From e611b132f9b8abe35b362e5870b74bce94a1e58e Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 16 May 2020 20:51:50 -0700 Subject: initial commit --- private/mvdm/softpc.new/base/bios/bios.c | 887 ++ private/mvdm/softpc.new/base/bios/bootstra.c | 186 + private/mvdm/softpc.new/base/bios/build_id.c | 77 + private/mvdm/softpc.new/base/bios/cmos_bis.c | 194 + private/mvdm/softpc.new/base/bios/cntlbop.c | 165 + private/mvdm/softpc.new/base/bios/emm_fncs.c | 2833 ++++++ private/mvdm/softpc.new/base/bios/equipmnt.c | 54 + private/mvdm/softpc.new/base/bios/ill_bop.c | 154 + private/mvdm/softpc.new/base/bios/makefile | 6 + private/mvdm/softpc.new/base/bios/mem_size.c | 55 + private/mvdm/softpc.new/base/bios/reset.c | 1118 +++ private/mvdm/softpc.new/base/bios/rom_basc.c | 45 + private/mvdm/softpc.new/base/bios/rtc_bios.c | 153 + private/mvdm/softpc.new/base/bios/slave_bs.c | 170 + private/mvdm/softpc.new/base/bios/sources | 70 + private/mvdm/softpc.new/base/bios/tape_io.c | 325 + private/mvdm/softpc.new/base/bios/virtual.c | 844 ++ private/mvdm/softpc.new/base/ccpu386/aaa.c | 58 + private/mvdm/softpc.new/base/ccpu386/aaa.h | 11 + private/mvdm/softpc.new/base/ccpu386/aad.c | 60 + private/mvdm/softpc.new/base/ccpu386/aad.h | 16 + private/mvdm/softpc.new/base/ccpu386/aam.c | 64 + private/mvdm/softpc.new/base/ccpu386/aam.h | 16 + private/mvdm/softpc.new/base/ccpu386/aas.c | 57 + private/mvdm/softpc.new/base/ccpu386/aas.h | 11 + private/mvdm/softpc.new/base/ccpu386/adc.c | 79 + private/mvdm/softpc.new/base/ccpu386/adc.h | 18 + private/mvdm/softpc.new/base/ccpu386/add.c | 79 + private/mvdm/softpc.new/base/ccpu386/add.h | 18 + private/mvdm/softpc.new/base/ccpu386/and.c | 59 + private/mvdm/softpc.new/base/ccpu386/and.h | 18 + private/mvdm/softpc.new/base/ccpu386/arpl.c | 56 + private/mvdm/softpc.new/base/ccpu386/arpl.h | 17 + private/mvdm/softpc.new/base/ccpu386/bound.c | 76 + private/mvdm/softpc.new/base/ccpu386/bound.h | 18 + private/mvdm/softpc.new/base/ccpu386/bsf.c | 64 + private/mvdm/softpc.new/base/ccpu386/bsf.h | 17 + private/mvdm/softpc.new/base/ccpu386/bsr.c | 70 + private/mvdm/softpc.new/base/ccpu386/bsr.h | 18 + private/mvdm/softpc.new/base/ccpu386/bswap.c | 64 + private/mvdm/softpc.new/base/ccpu386/bswap.h | 16 + private/mvdm/softpc.new/base/ccpu386/bt.c | 54 + private/mvdm/softpc.new/base/ccpu386/bt.h | 18 + private/mvdm/softpc.new/base/ccpu386/btc.c | 55 + private/mvdm/softpc.new/base/ccpu386/btc.h | 18 + private/mvdm/softpc.new/base/ccpu386/btr.c | 55 + private/mvdm/softpc.new/base/ccpu386/btr.h | 18 + private/mvdm/softpc.new/base/ccpu386/bts.c | 55 + private/mvdm/softpc.new/base/ccpu386/bts.h | 18 + private/mvdm/softpc.new/base/ccpu386/c-files | 129 + private/mvdm/softpc.new/base/ccpu386/c_addr.c | 652 ++ private/mvdm/softpc.new/base/ccpu386/c_addr.h | 39 + private/mvdm/softpc.new/base/ccpu386/c_bsic.c | 369 + private/mvdm/softpc.new/base/ccpu386/c_bsic.h | 138 + private/mvdm/softpc.new/base/ccpu386/c_debug.c | 386 + private/mvdm/softpc.new/base/ccpu386/c_debug.h | 45 + private/mvdm/softpc.new/base/ccpu386/c_div64.c | 147 + private/mvdm/softpc.new/base/ccpu386/c_div64.h | 29 + private/mvdm/softpc.new/base/ccpu386/c_getset.c | 290 + private/mvdm/softpc.new/base/ccpu386/c_intr.c | 515 ++ private/mvdm/softpc.new/base/ccpu386/c_intr.h | 20 + private/mvdm/softpc.new/base/ccpu386/c_main.c | 4940 ++++++++++ private/mvdm/softpc.new/base/ccpu386/c_main.h | 226 + private/mvdm/softpc.new/base/ccpu386/c_mem.h | 75 + private/mvdm/softpc.new/base/ccpu386/c_mul64.c | 185 + private/mvdm/softpc.new/base/ccpu386/c_mul64.h | 29 + private/mvdm/softpc.new/base/ccpu386/c_neg64.c | 66 + private/mvdm/softpc.new/base/ccpu386/c_neg64.h | 17 + private/mvdm/softpc.new/base/ccpu386/c_oprnd.h | 1135 +++ private/mvdm/softpc.new/base/ccpu386/c_page.c | 857 ++ private/mvdm/softpc.new/base/ccpu386/c_page.h | 226 + private/mvdm/softpc.new/base/ccpu386/c_prot.c | 287 + private/mvdm/softpc.new/base/ccpu386/c_prot.h | 56 + private/mvdm/softpc.new/base/ccpu386/c_reg.c | 1879 ++++ private/mvdm/softpc.new/base/ccpu386/c_reg.h | 508 ++ private/mvdm/softpc.new/base/ccpu386/c_seg.c | 396 + private/mvdm/softpc.new/base/ccpu386/c_seg.h | 58 + private/mvdm/softpc.new/base/ccpu386/c_stack.c | 679 ++ private/mvdm/softpc.new/base/ccpu386/c_stack.h | 149 + private/mvdm/softpc.new/base/ccpu386/c_tlb.c | 953 ++ private/mvdm/softpc.new/base/ccpu386/c_tlb.h | 39 + private/mvdm/softpc.new/base/ccpu386/c_tsksw.c | 589 ++ private/mvdm/softpc.new/base/ccpu386/c_tsksw.h | 31 + private/mvdm/softpc.new/base/ccpu386/c_xcptn.c | 641 ++ private/mvdm/softpc.new/base/ccpu386/c_xcptn.h | 59 + private/mvdm/softpc.new/base/ccpu386/c_xfer.c | 416 + private/mvdm/softpc.new/base/ccpu386/c_xfer.h | 70 + private/mvdm/softpc.new/base/ccpu386/c_xtrn.c | 135 + private/mvdm/softpc.new/base/ccpu386/c_xtrn.h | 38 + private/mvdm/softpc.new/base/ccpu386/call.c | 357 + private/mvdm/softpc.new/base/ccpu386/call.h | 30 + private/mvdm/softpc.new/base/ccpu386/cbw.c | 42 + private/mvdm/softpc.new/base/ccpu386/cbw.h | 11 + private/mvdm/softpc.new/base/ccpu386/ccpudefs.inc | 1 + private/mvdm/softpc.new/base/ccpu386/ccpupig.c | 320 + private/mvdm/softpc.new/base/ccpu386/ccpupig.h | 167 + private/mvdm/softpc.new/base/ccpu386/ccpusas4.c | 1960 ++++ private/mvdm/softpc.new/base/ccpu386/ccpusas4.h | 34 + private/mvdm/softpc.new/base/ccpu386/cdq.c | 42 + private/mvdm/softpc.new/base/ccpu386/cdq.h | 11 + private/mvdm/softpc.new/base/ccpu386/clc.c | 39 + private/mvdm/softpc.new/base/ccpu386/clc.h | 11 + private/mvdm/softpc.new/base/ccpu386/cld.c | 39 + private/mvdm/softpc.new/base/ccpu386/cld.h | 11 + private/mvdm/softpc.new/base/ccpu386/cli.c | 39 + private/mvdm/softpc.new/base/ccpu386/cli.h | 11 + private/mvdm/softpc.new/base/ccpu386/clts.c | 39 + private/mvdm/softpc.new/base/ccpu386/clts.h | 11 + private/mvdm/softpc.new/base/ccpu386/cmc.c | 39 + private/mvdm/softpc.new/base/ccpu386/cmc.h | 11 + private/mvdm/softpc.new/base/ccpu386/cmp.c | 81 + private/mvdm/softpc.new/base/ccpu386/cmp.h | 18 + private/mvdm/softpc.new/base/ccpu386/cmpxchg.c | 122 + private/mvdm/softpc.new/base/ccpu386/cmpxchg.h | 33 + private/mvdm/softpc.new/base/ccpu386/cpu4gen.h | 3086 +++++++ private/mvdm/softpc.new/base/ccpu386/cpuint_c.h | 42 + private/mvdm/softpc.new/base/ccpu386/cwd.c | 42 + private/mvdm/softpc.new/base/ccpu386/cwd.h | 11 + private/mvdm/softpc.new/base/ccpu386/cwde.c | 43 + private/mvdm/softpc.new/base/ccpu386/cwde.h | 11 + private/mvdm/softpc.new/base/ccpu386/daa.c | 65 + private/mvdm/softpc.new/base/ccpu386/daa.h | 11 + private/mvdm/softpc.new/base/ccpu386/das.c | 69 + private/mvdm/softpc.new/base/ccpu386/das.h | 11 + private/mvdm/softpc.new/base/ccpu386/dec.c | 66 + private/mvdm/softpc.new/base/ccpu386/dec.h | 17 + private/mvdm/softpc.new/base/ccpu386/div.c | 167 + private/mvdm/softpc.new/base/ccpu386/div.h | 30 + private/mvdm/softpc.new/base/ccpu386/enter.c | 199 + private/mvdm/softpc.new/base/ccpu386/enter.h | 25 + private/mvdm/softpc.new/base/ccpu386/evid_c.h | 146 + private/mvdm/softpc.new/base/ccpu386/evidfunc.h | 715 ++ private/mvdm/softpc.new/base/ccpu386/evidgen.h | 25 + private/mvdm/softpc.new/base/ccpu386/fault.h | 231 + private/mvdm/softpc.new/base/ccpu386/fpu.c | 5948 ++++++++++++ private/mvdm/softpc.new/base/ccpu386/fpu_c.h | 168 + private/mvdm/softpc.new/base/ccpu386/gdpvar.h | 1859 ++++ private/mvdm/softpc.new/base/ccpu386/idiv.c | 171 + private/mvdm/softpc.new/base/ccpu386/idiv.h | 30 + private/mvdm/softpc.new/base/ccpu386/imul.c | 243 + private/mvdm/softpc.new/base/ccpu386/imul.h | 51 + private/mvdm/softpc.new/base/ccpu386/in.c | 101 + private/mvdm/softpc.new/base/ccpu386/in.h | 33 + private/mvdm/softpc.new/base/ccpu386/inc.c | 66 + private/mvdm/softpc.new/base/ccpu386/inc.h | 17 + private/mvdm/softpc.new/base/ccpu386/into.c | 55 + private/mvdm/softpc.new/base/ccpu386/into.h | 11 + private/mvdm/softpc.new/base/ccpu386/intx.c | 57 + private/mvdm/softpc.new/base/ccpu386/intx.h | 16 + private/mvdm/softpc.new/base/ccpu386/invd.c | 45 + private/mvdm/softpc.new/base/ccpu386/invd.h | 11 + private/mvdm/softpc.new/base/ccpu386/invlpg.c | 49 + private/mvdm/softpc.new/base/ccpu386/invlpg.h | 16 + private/mvdm/softpc.new/base/ccpu386/iret.c | 330 + private/mvdm/softpc.new/base/ccpu386/iret.h | 11 + private/mvdm/softpc.new/base/ccpu386/jcxz.c | 60 + private/mvdm/softpc.new/base/ccpu386/jcxz.h | 23 + private/mvdm/softpc.new/base/ccpu386/jmp.c | 198 + private/mvdm/softpc.new/base/ccpu386/jmp.h | 30 + private/mvdm/softpc.new/base/ccpu386/jxx.c | 290 + private/mvdm/softpc.new/base/ccpu386/jxx.h | 121 + private/mvdm/softpc.new/base/ccpu386/lahf.c | 46 + private/mvdm/softpc.new/base/ccpu386/lahf.h | 11 + private/mvdm/softpc.new/base/ccpu386/lar.c | 101 + private/mvdm/softpc.new/base/ccpu386/lar.h | 17 + private/mvdm/softpc.new/base/ccpu386/lea.c | 46 + private/mvdm/softpc.new/base/ccpu386/lea.h | 17 + private/mvdm/softpc.new/base/ccpu386/leave.c | 65 + private/mvdm/softpc.new/base/ccpu386/leave.h | 13 + private/mvdm/softpc.new/base/ccpu386/lgdt.c | 68 + private/mvdm/softpc.new/base/ccpu386/lgdt.h | 23 + private/mvdm/softpc.new/base/ccpu386/lidt.c | 63 + private/mvdm/softpc.new/base/ccpu386/lidt.h | 23 + private/mvdm/softpc.new/base/ccpu386/lldt.c | 87 + private/mvdm/softpc.new/base/ccpu386/lldt.h | 16 + private/mvdm/softpc.new/base/ccpu386/lmsw.c | 56 + private/mvdm/softpc.new/base/ccpu386/lmsw.h | 16 + private/mvdm/softpc.new/base/ccpu386/localfm.c | 9 + private/mvdm/softpc.new/base/ccpu386/loopxx.c | 118 + private/mvdm/softpc.new/base/ccpu386/loopxx.h | 51 + private/mvdm/softpc.new/base/ccpu386/lsl.c | 101 + private/mvdm/softpc.new/base/ccpu386/lsl.h | 17 + private/mvdm/softpc.new/base/ccpu386/ltr.c | 67 + private/mvdm/softpc.new/base/ccpu386/ltr.h | 16 + private/mvdm/softpc.new/base/ccpu386/lxs.c | 149 + private/mvdm/softpc.new/base/ccpu386/lxs.h | 49 + private/mvdm/softpc.new/base/ccpu386/makefile | 6 + private/mvdm/softpc.new/base/ccpu386/mov.c | 239 + private/mvdm/softpc.new/base/ccpu386/mov.h | 49 + private/mvdm/softpc.new/base/ccpu386/movsx.c | 56 + private/mvdm/softpc.new/base/ccpu386/movsx.h | 18 + private/mvdm/softpc.new/base/ccpu386/mul.c | 147 + private/mvdm/softpc.new/base/ccpu386/mul.h | 33 + private/mvdm/softpc.new/base/ccpu386/neg.c | 66 + private/mvdm/softpc.new/base/ccpu386/neg.h | 17 + private/mvdm/softpc.new/base/ccpu386/newnpx.h | 73 + private/mvdm/softpc.new/base/ccpu386/nop.c | 38 + private/mvdm/softpc.new/base/ccpu386/nop.h | 11 + private/mvdm/softpc.new/base/ccpu386/not.c | 48 + private/mvdm/softpc.new/base/ccpu386/not.h | 16 + private/mvdm/softpc.new/base/ccpu386/ntstubs.c | 226 + private/mvdm/softpc.new/base/ccpu386/ntthread.c | 253 + private/mvdm/softpc.new/base/ccpu386/ntthread.h | 9 + private/mvdm/softpc.new/base/ccpu386/or.c | 59 + private/mvdm/softpc.new/base/ccpu386/or.h | 18 + private/mvdm/softpc.new/base/ccpu386/out.c | 91 + private/mvdm/softpc.new/base/ccpu386/out.h | 33 + private/mvdm/softpc.new/base/ccpu386/pigger_c.h | 4 + private/mvdm/softpc.new/base/ccpu386/pop.c | 78 + private/mvdm/softpc.new/base/ccpu386/pop.h | 23 + private/mvdm/softpc.new/base/ccpu386/popa.c | 61 + private/mvdm/softpc.new/base/ccpu386/popa.h | 13 + private/mvdm/softpc.new/base/ccpu386/popf.c | 67 + private/mvdm/softpc.new/base/ccpu386/popf.h | 13 + private/mvdm/softpc.new/base/ccpu386/push.c | 68 + private/mvdm/softpc.new/base/ccpu386/push.h | 23 + private/mvdm/softpc.new/base/ccpu386/pusha.c | 53 + private/mvdm/softpc.new/base/ccpu386/pusha.h | 11 + private/mvdm/softpc.new/base/ccpu386/pushf.c | 51 + private/mvdm/softpc.new/base/ccpu386/pushf.h | 11 + private/mvdm/softpc.new/base/ccpu386/rcl.c | 91 + private/mvdm/softpc.new/base/ccpu386/rcl.h | 18 + private/mvdm/softpc.new/base/ccpu386/rcr.c | 87 + private/mvdm/softpc.new/base/ccpu386/rcr.h | 18 + private/mvdm/softpc.new/base/ccpu386/ret.c | 270 + private/mvdm/softpc.new/base/ccpu386/ret.h | 23 + private/mvdm/softpc.new/base/ccpu386/rol.c | 91 + private/mvdm/softpc.new/base/ccpu386/rol.h | 18 + private/mvdm/softpc.new/base/ccpu386/ror.c | 91 + private/mvdm/softpc.new/base/ccpu386/ror.h | 18 + private/mvdm/softpc.new/base/ccpu386/rsrvd.c | 45 + private/mvdm/softpc.new/base/ccpu386/rsrvd.h | 11 + private/mvdm/softpc.new/base/ccpu386/sahf.c | 49 + private/mvdm/softpc.new/base/ccpu386/sahf.h | 11 + private/mvdm/softpc.new/base/ccpu386/sar.c | 82 + private/mvdm/softpc.new/base/ccpu386/sar.h | 18 + private/mvdm/softpc.new/base/ccpu386/sascdef.c | 142 + private/mvdm/softpc.new/base/ccpu386/sbb.c | 80 + private/mvdm/softpc.new/base/ccpu386/sbb.h | 18 + private/mvdm/softpc.new/base/ccpu386/setxx.c | 275 + private/mvdm/softpc.new/base/ccpu386/setxx.h | 121 + private/mvdm/softpc.new/base/ccpu386/sgdt.c | 70 + private/mvdm/softpc.new/base/ccpu386/sgdt.h | 23 + private/mvdm/softpc.new/base/ccpu386/shl.c | 88 + private/mvdm/softpc.new/base/ccpu386/shl.h | 18 + private/mvdm/softpc.new/base/ccpu386/shld.c | 125 + private/mvdm/softpc.new/base/ccpu386/shld.h | 19 + private/mvdm/softpc.new/base/ccpu386/shr.c | 87 + private/mvdm/softpc.new/base/ccpu386/shr.h | 18 + private/mvdm/softpc.new/base/ccpu386/shrd.c | 127 + private/mvdm/softpc.new/base/ccpu386/shrd.h | 19 + private/mvdm/softpc.new/base/ccpu386/sidt.c | 71 + private/mvdm/softpc.new/base/ccpu386/sidt.h | 23 + private/mvdm/softpc.new/base/ccpu386/sldt.c | 45 + private/mvdm/softpc.new/base/ccpu386/sldt.h | 16 + private/mvdm/softpc.new/base/ccpu386/smsw.c | 43 + private/mvdm/softpc.new/base/ccpu386/smsw.h | 16 + private/mvdm/softpc.new/base/ccpu386/sources | 183 + private/mvdm/softpc.new/base/ccpu386/stc.c | 39 + private/mvdm/softpc.new/base/ccpu386/stc.h | 11 + private/mvdm/softpc.new/base/ccpu386/std.c | 39 + private/mvdm/softpc.new/base/ccpu386/std.h | 11 + private/mvdm/softpc.new/base/ccpu386/sti.c | 39 + private/mvdm/softpc.new/base/ccpu386/sti.h | 11 + private/mvdm/softpc.new/base/ccpu386/str.c | 45 + private/mvdm/softpc.new/base/ccpu386/str.h | 16 + private/mvdm/softpc.new/base/ccpu386/stubs.c | 21 + private/mvdm/softpc.new/base/ccpu386/sub.c | 80 + private/mvdm/softpc.new/base/ccpu386/sub.h | 18 + private/mvdm/softpc.new/base/ccpu386/test.c | 58 + private/mvdm/softpc.new/base/ccpu386/test.h | 18 + private/mvdm/softpc.new/base/ccpu386/univer_c.h | 4 + private/mvdm/softpc.new/base/ccpu386/verr.c | 100 + private/mvdm/softpc.new/base/ccpu386/verr.h | 16 + private/mvdm/softpc.new/base/ccpu386/verw.c | 96 + private/mvdm/softpc.new/base/ccpu386/verw.h | 16 + private/mvdm/softpc.new/base/ccpu386/vglob.c | 451 + private/mvdm/softpc.new/base/ccpu386/wait.c | 38 + private/mvdm/softpc.new/base/ccpu386/wait.h | 11 + private/mvdm/softpc.new/base/ccpu386/wbinvd.c | 45 + private/mvdm/softpc.new/base/ccpu386/wbinvd.h | 11 + private/mvdm/softpc.new/base/ccpu386/xadd.c | 59 + private/mvdm/softpc.new/base/ccpu386/xadd.h | 18 + private/mvdm/softpc.new/base/ccpu386/xchg.c | 53 + private/mvdm/softpc.new/base/ccpu386/xchg.h | 17 + private/mvdm/softpc.new/base/ccpu386/xlat.c | 45 + private/mvdm/softpc.new/base/ccpu386/xlat.h | 16 + private/mvdm/softpc.new/base/ccpu386/xor.c | 59 + private/mvdm/softpc.new/base/ccpu386/xor.h | 18 + private/mvdm/softpc.new/base/ccpu386/zfrsrvd.c | 4871 ++++++++++ private/mvdm/softpc.new/base/ccpu386/zfrsrvd.h | 15 + private/mvdm/softpc.new/base/comms/com.c | 3254 +++++++ private/mvdm/softpc.new/base/comms/makefile | 6 + private/mvdm/softpc.new/base/comms/printer.c | 836 ++ private/mvdm/softpc.new/base/comms/printer_.c | 242 + private/mvdm/softpc.new/base/comms/prt_scrn.c | 7 + private/mvdm/softpc.new/base/comms/rs232_io.c | 294 + private/mvdm/softpc.new/base/comms/sources | 62 + .../mvdm/softpc.new/base/cpu/src/evid/ev_glue.c | 806 ++ .../mvdm/softpc.new/base/cpu/src/evid/ev_stubs.c | 18 + private/mvdm/softpc.new/base/cpu/src/evid/vglob.c | 451 + private/mvdm/softpc.new/base/cvidc/acc_efi.h | 512 ++ private/mvdm/softpc.new/base/cvidc/access_c.h | 37 + private/mvdm/softpc.new/base/cvidc/accessfn.c | 1622 ++++ private/mvdm/softpc.new/base/cvidc/add_c.h | 3 + private/mvdm/softpc.new/base/cvidc/adjust_c.h | 7 + private/mvdm/softpc.new/base/cvidc/axphst_c.h | 13 + private/mvdm/softpc.new/base/cvidc/bldr_c.h | 7 + private/mvdm/softpc.new/base/cvidc/bodge_c.h | 5 + private/mvdm/softpc.new/base/cvidc/bound_c.h | 3 + private/mvdm/softpc.new/base/cvidc/bpi_c.h | 108 + private/mvdm/softpc.new/base/cvidc/bswap_c.h | 3 + private/mvdm/softpc.new/base/cvidc/btest_c.h | 3 + private/mvdm/softpc.new/base/cvidc/buffer_c.h | 103 + private/mvdm/softpc.new/base/cvidc/c2cpug_c.h | 3 + private/mvdm/softpc.new/base/cvidc/c2cpusad.h | 364 + private/mvdm/softpc.new/base/cvidc/c2cput_c.h | 3 + private/mvdm/softpc.new/base/cvidc/ccpudefs.inc | 1 + private/mvdm/softpc.new/base/cvidc/chain2_c.h | 3 + private/mvdm/softpc.new/base/cvidc/chain4_c.h | 4 + private/mvdm/softpc.new/base/cvidc/cmp_c.h | 3 + private/mvdm/softpc.new/base/cvidc/contxt_c.h | 26 + private/mvdm/softpc.new/base/cvidc/conv_c.h | 3 + private/mvdm/softpc.new/base/cvidc/copies_c.h | 3 + private/mvdm/softpc.new/base/cvidc/cpnote_c.h | 8 + private/mvdm/softpc.new/base/cvidc/cpu4gen.h | 2957 ++++++ private/mvdm/softpc.new/base/cvidc/cpu_c.h | 118 + private/mvdm/softpc.new/base/cvidc/cpuint_c.h | 41 + private/mvdm/softpc.new/base/cvidc/cpumod_c.h | 3 + private/mvdm/softpc.new/base/cvidc/cpureg_c.h | 15 + private/mvdm/softpc.new/base/cvidc/dec_c.h | 3 + private/mvdm/softpc.new/base/cvidc/ea_c.h | 7 + private/mvdm/softpc.new/base/cvidc/enter_c.h | 3 + private/mvdm/softpc.new/base/cvidc/ev_glue.c | 803 ++ private/mvdm/softpc.new/base/cvidc/ev_stubs.c | 18 + private/mvdm/softpc.new/base/cvidc/evid_c.h | 146 + private/mvdm/softpc.new/base/cvidc/evidfunc.c | 863 ++ private/mvdm/softpc.new/base/cvidc/evidfunc.h | 715 ++ private/mvdm/softpc.new/base/cvidc/evidgen.h | 176 + private/mvdm/softpc.new/base/cvidc/flags_c.h | 19 + private/mvdm/softpc.new/base/cvidc/flagtb_c.h | 14 + private/mvdm/softpc.new/base/cvidc/fm_c.h | 62 + private/mvdm/softpc.new/base/cvidc/fmevid_c.h | 3 + private/mvdm/softpc.new/base/cvidc/fpu_c.h | 168 + private/mvdm/softpc.new/base/cvidc/frag_c.h | 415 + private/mvdm/softpc.new/base/cvidc/gdebug.h | 695 ++ private/mvdm/softpc.new/base/cvidc/gdinit_c.h | 3 + private/mvdm/softpc.new/base/cvidc/gdmain_c.h | 3 + private/mvdm/softpc.new/base/cvidc/gdpvar.h | 698 ++ private/mvdm/softpc.new/base/cvidc/gicvid_c.h | 3 + private/mvdm/softpc.new/base/cvidc/gldc_c.h | 179 + private/mvdm/softpc.new/base/cvidc/hpphst_c.h | 12 + private/mvdm/softpc.new/base/cvidc/idmain_c.h | 3 + private/mvdm/softpc.new/base/cvidc/inc_c.h | 3 + private/mvdm/softpc.new/base/cvidc/inst_c.h | 14 + private/mvdm/softpc.new/base/cvidc/io_c.h | 13 + private/mvdm/softpc.new/base/cvidc/j_c_lang.c | 210 + private/mvdm/softpc.new/base/cvidc/j_c_lang.h | 49 + private/mvdm/softpc.new/base/cvidc/lc_c.h | 156 + private/mvdm/softpc.new/base/cvidc/light_c.h | 3 + private/mvdm/softpc.new/base/cvidc/logic_c.h | 3 + private/mvdm/softpc.new/base/cvidc/lxs_c.h | 3 + private/mvdm/softpc.new/base/cvidc/makefile | 6 + private/mvdm/softpc.new/base/cvidc/mark_c.h | 3 + private/mvdm/softpc.new/base/cvidc/misc_c.h | 3 + private/mvdm/softpc.new/base/cvidc/move_c.h | 3 + private/mvdm/softpc.new/base/cvidc/muldiv_c.h | 8 + private/mvdm/softpc.new/base/cvidc/nano_c.h | 187 + private/mvdm/softpc.new/base/cvidc/nanoa_c.h | 3 + private/mvdm/softpc.new/base/cvidc/nanob_c.h | 3 + private/mvdm/softpc.new/base/cvidc/nanoc_c.h | 3 + private/mvdm/softpc.new/base/cvidc/nanod_c.h | 3 + private/mvdm/softpc.new/base/cvidc/nanoe_c.h | 3 + private/mvdm/softpc.new/base/cvidc/page_c.h | 40 + private/mvdm/softpc.new/base/cvidc/parser.h | 1005 +++ private/mvdm/softpc.new/base/cvidc/pigger_c.h | 128 + private/mvdm/softpc.new/base/cvidc/pm_c.h | 3 + private/mvdm/softpc.new/base/cvidc/ports_c.h | 4 + private/mvdm/softpc.new/base/cvidc/ppchst_c.h | 9 + private/mvdm/softpc.new/base/cvidc/prof_c.h | 12 + private/mvdm/softpc.new/base/cvidc/prot_c.h | 148 + private/mvdm/softpc.new/base/cvidc/pti_c.h | 3 + private/mvdm/softpc.new/base/cvidc/pxcptn_c.h | 27 + private/mvdm/softpc.new/base/cvidc/rdwr_c.h | 6 + private/mvdm/softpc.new/base/cvidc/read_c.h | 3 + private/mvdm/softpc.new/base/cvidc/rotate_c.h | 3 + private/mvdm/softpc.new/base/cvidc/sas4gen.h | 837 ++ private/mvdm/softpc.new/base/cvidc/sas_c.h | 14 + private/mvdm/softpc.new/base/cvidc/sascdef.c | 132 + private/mvdm/softpc.new/base/cvidc/segreg_c.h | 27 + private/mvdm/softpc.new/base/cvidc/sevid000.c | 3148 +++++++ private/mvdm/softpc.new/base/cvidc/sevid001.c | 3498 +++++++ private/mvdm/softpc.new/base/cvidc/sevid002.c | 4145 +++++++++ private/mvdm/softpc.new/base/cvidc/sevid003.c | 4708 ++++++++++ private/mvdm/softpc.new/base/cvidc/sevid004.c | 5179 +++++++++++ private/mvdm/softpc.new/base/cvidc/sevid005.c | 3874 ++++++++ private/mvdm/softpc.new/base/cvidc/sevid006.c | 4828 ++++++++++ private/mvdm/softpc.new/base/cvidc/sevid007.c | 5257 +++++++++++ private/mvdm/softpc.new/base/cvidc/sevid008.c | 4334 +++++++++ private/mvdm/softpc.new/base/cvidc/sevid009.c | 2827 ++++++ private/mvdm/softpc.new/base/cvidc/sevid010.c | 4989 ++++++++++ private/mvdm/softpc.new/base/cvidc/sevid011.c | 3792 ++++++++ private/mvdm/softpc.new/base/cvidc/sevid012.c | 4120 +++++++++ private/mvdm/softpc.new/base/cvidc/sevid013.c | 5153 +++++++++++ private/mvdm/softpc.new/base/cvidc/sevid014.c | 5345 +++++++++++ private/mvdm/softpc.new/base/cvidc/sevid015.c | 4711 ++++++++++ private/mvdm/softpc.new/base/cvidc/sevid016.c | 4530 ++++++++++ private/mvdm/softpc.new/base/cvidc/sevid017.c | 3361 +++++++ private/mvdm/softpc.new/base/cvidc/sevid018.c | 3581 ++++++++ private/mvdm/softpc.new/base/cvidc/sevid019.c | 4591 ++++++++++ private/mvdm/softpc.new/base/cvidc/sevid020.c | 3728 ++++++++ private/mvdm/softpc.new/base/cvidc/sevid021.c | 4413 +++++++++ private/mvdm/softpc.new/base/cvidc/sevid022.c | 4286 +++++++++ private/mvdm/softpc.new/base/cvidc/sevid023.c | 2875 ++++++ private/mvdm/softpc.new/base/cvidc/sevid024.c | 3181 +++++++ private/mvdm/softpc.new/base/cvidc/sevid025.c | 4209 +++++++++ private/mvdm/softpc.new/base/cvidc/sevid026.c | 3936 ++++++++ private/mvdm/softpc.new/base/cvidc/sevid027.c | 3725 ++++++++ private/mvdm/softpc.new/base/cvidc/sevid028.c | 4360 +++++++++ private/mvdm/softpc.new/base/cvidc/sevid029.c | 3784 ++++++++ private/mvdm/softpc.new/base/cvidc/sevid030.c | 2695 ++++++ private/mvdm/softpc.new/base/cvidc/sf_c.h | 42 + private/mvdm/softpc.new/base/cvidc/shift_c.h | 3 + private/mvdm/softpc.new/base/cvidc/simple_c.h | 3 + private/mvdm/softpc.new/base/cvidc/sinit011.c | 939 ++ private/mvdm/softpc.new/base/cvidc/sinit012.c | 1476 +++ private/mvdm/softpc.new/base/cvidc/sinit013.c | 2153 +++++ private/mvdm/softpc.new/base/cvidc/sources | 92 + private/mvdm/softpc.new/base/cvidc/stack_c.h | 45 + private/mvdm/softpc.new/base/cvidc/string_c.h | 3 + private/mvdm/softpc.new/base/cvidc/strint_c.h | 6 + private/mvdm/softpc.new/base/cvidc/strsub_c.h | 3 + private/mvdm/softpc.new/base/cvidc/stub_c.h | 3 + private/mvdm/softpc.new/base/cvidc/sub_c.h | 3 + private/mvdm/softpc.new/base/cvidc/sunhst_c.h | 10 + private/mvdm/softpc.new/base/cvidc/task_c.h | 9 + private/mvdm/softpc.new/base/cvidc/test_c.h | 3 + private/mvdm/softpc.new/base/cvidc/trace_c.h | 18 + private/mvdm/softpc.new/base/cvidc/unchn_c.h | 3 + private/mvdm/softpc.new/base/cvidc/univer_c.h | 35 + private/mvdm/softpc.new/base/cvidc/vglfunc.c | 169 + private/mvdm/softpc.new/base/cvidc/vglob.c | 0 private/mvdm/softpc.new/base/cvidc/vglob_c.h | 6 + private/mvdm/softpc.new/base/cvidc/xchg_c.h | 3 + private/mvdm/softpc.new/base/cvidc/xfer_c.h | 15 + private/mvdm/softpc.new/base/cvidc/xlat_c.h | 3 + private/mvdm/softpc.new/base/dasm386/build.c | 12 + private/mvdm/softpc.new/base/dasm386/dasm386.c | 1254 +++ private/mvdm/softpc.new/base/dasm386/decode.c | 2573 ++++++ private/mvdm/softpc.new/base/dasm386/makefile | 6 + private/mvdm/softpc.new/base/dasm386/sources | 68 + private/mvdm/softpc.new/base/debug/btrace.c | 193 + private/mvdm/softpc.new/base/debug/dasm.c | 2947 ++++++ private/mvdm/softpc.new/base/debug/debuggng.c | 53 + private/mvdm/softpc.new/base/debug/ega_dump.c | 226 + private/mvdm/softpc.new/base/debug/makefile | 6 + private/mvdm/softpc.new/base/debug/markfrom | 36 + private/mvdm/softpc.new/base/debug/pigyoda.c | 355 + private/mvdm/softpc.new/base/debug/profile.c | 3328 +++++++ private/mvdm/softpc.new/base/debug/sources | 68 + private/mvdm/softpc.new/base/debug/trace.c | 559 ++ private/mvdm/softpc.new/base/debug/yoda.c | 9518 ++++++++++++++++++++ private/mvdm/softpc.new/base/dirs | 38 + private/mvdm/softpc.new/base/disks/diskbios.c | 1474 +++ private/mvdm/softpc.new/base/disks/fdisk.c | 1919 ++++ private/mvdm/softpc.new/base/disks/fla.c | 1175 +++ private/mvdm/softpc.new/base/disks/floppy.c | 3306 +++++++ private/mvdm/softpc.new/base/disks/floppy_i.c | 496 + private/mvdm/softpc.new/base/disks/gfi.c | 379 + private/mvdm/softpc.new/base/disks/gfi_ibm.c | 530 ++ private/mvdm/softpc.new/base/disks/gfi_mpty.c | 299 + private/mvdm/softpc.new/base/disks/gfi_sflp.c | 774 ++ private/mvdm/softpc.new/base/disks/gfi_test.c | 276 + private/mvdm/softpc.new/base/disks/makefile | 6 + private/mvdm/softpc.new/base/disks/sources | 67 + private/mvdm/softpc.new/base/dos/emm_mngr.c | 2129 +++++ private/mvdm/softpc.new/base/dos/makefile | 6 + private/mvdm/softpc.new/base/dos/sources | 58 + private/mvdm/softpc.new/base/inc/acc_efi.h | 512 ++ private/mvdm/softpc.new/base/inc/base_def.h | 276 + private/mvdm/softpc.new/base/inc/bios.h | 409 + private/mvdm/softpc.new/base/inc/build_id.h | 45 + private/mvdm/softpc.new/base/inc/cdrom.h | 255 + private/mvdm/softpc.new/base/inc/cdrom_fn.h | 116 + private/mvdm/softpc.new/base/inc/cga.h | 112 + private/mvdm/softpc.new/base/inc/chkmallc.h | 29 + private/mvdm/softpc.new/base/inc/ckmalloc.h | 50 + private/mvdm/softpc.new/base/inc/cmos.h | 428 + private/mvdm/softpc.new/base/inc/cmosbios.h | 22 + private/mvdm/softpc.new/base/inc/cntlbop.h | 79 + private/mvdm/softpc.new/base/inc/config.h | 419 + private/mvdm/softpc.new/base/inc/cpu.h | 1460 +++ private/mvdm/softpc.new/base/inc/cpu2.h | 557 ++ private/mvdm/softpc.new/base/inc/cpu3.h | 1219 +++ private/mvdm/softpc.new/base/inc/cpu4.h | 134 + private/mvdm/softpc.new/base/inc/cpu_vid.h | 136 + private/mvdm/softpc.new/base/inc/d_inst.h | 425 + private/mvdm/softpc.new/base/inc/d_oper.h | 406 + private/mvdm/softpc.new/base/inc/dasm.h | 32 + private/mvdm/softpc.new/base/inc/debug.h | 385 + private/mvdm/softpc.new/base/inc/decode.h | 60 + private/mvdm/softpc.new/base/inc/dfa.h | 143 + private/mvdm/softpc.new/base/inc/disk_geo.h | 54 + private/mvdm/softpc.new/base/inc/dma.h | 528 ++ private/mvdm/softpc.new/base/inc/dpmi.h | 137 + private/mvdm/softpc.new/base/inc/dsktrace.h | 118 + private/mvdm/softpc.new/base/inc/dterm.h | 53 + private/mvdm/softpc.new/base/inc/egacpu.h | 468 + private/mvdm/softpc.new/base/inc/egagraph.h | 219 + private/mvdm/softpc.new/base/inc/egamode.h | 14 + private/mvdm/softpc.new/base/inc/egaports.h | 83 + private/mvdm/softpc.new/base/inc/egaread.h | 22 + private/mvdm/softpc.new/base/inc/egatrace.h | 51 + private/mvdm/softpc.new/base/inc/egavideo.h | 137 + private/mvdm/softpc.new/base/inc/emm.h | 311 + private/mvdm/softpc.new/base/inc/equip.h | 115 + private/mvdm/softpc.new/base/inc/error.h | 420 + private/mvdm/softpc.new/base/inc/fdisk.h | 44 + private/mvdm/softpc.new/base/inc/fla.h | 122 + private/mvdm/softpc.new/base/inc/flexlmif.h | 55 + private/mvdm/softpc.new/base/inc/floppy.h | 583 ++ private/mvdm/softpc.new/base/inc/ga_defs.h | 45 + private/mvdm/softpc.new/base/inc/ga_mark.h | 90 + private/mvdm/softpc.new/base/inc/gendrvr.h | 27 + private/mvdm/softpc.new/base/inc/get_env.h | 22 + private/mvdm/softpc.new/base/inc/getptis.h | 84 + private/mvdm/softpc.new/base/inc/gfi.h | 618 ++ private/mvdm/softpc.new/base/inc/gfiempty.h | 43 + private/mvdm/softpc.new/base/inc/gfirflop.h | 30 + private/mvdm/softpc.new/base/inc/gfisflop.h | 153 + private/mvdm/softpc.new/base/inc/gfitest.h | 29 + private/mvdm/softpc.new/base/inc/gfx_upd.h | 281 + private/mvdm/softpc.new/base/inc/gisp_sas.h | 59 + private/mvdm/softpc.new/base/inc/gispsvga.h | 29 + private/mvdm/softpc.new/base/inc/gmi.h | 84 + private/mvdm/softpc.new/base/inc/gore.h | 155 + private/mvdm/softpc.new/base/inc/gvi.h | 311 + private/mvdm/softpc.new/base/inc/harness.h | 93 + private/mvdm/softpc.new/base/inc/haw.h | 346 + private/mvdm/softpc.new/base/inc/herc.h | 37 + private/mvdm/softpc.new/base/inc/hfx.h | 738 ++ private/mvdm/softpc.new/base/inc/hg_cpu.h | 289 + private/mvdm/softpc.new/base/inc/hg_sas.h | 35 + private/mvdm/softpc.new/base/inc/hg_stat.h | 40 + private/mvdm/softpc.new/base/inc/host.h | 63 + private/mvdm/softpc.new/base/inc/host_cfg.h | 12 + private/mvdm/softpc.new/base/inc/host_com.h | 276 + private/mvdm/softpc.new/base/inc/host_fio.h | 97 + private/mvdm/softpc.new/base/inc/host_gwi.h | 13 + private/mvdm/softpc.new/base/inc/host_hun.h | 2 + private/mvdm/softpc.new/base/inc/host_lpt.h | 167 + private/mvdm/softpc.new/base/inc/host_msw.h | 659 ++ private/mvdm/softpc.new/base/inc/host_nls.h | 94 + private/mvdm/softpc.new/base/inc/host_pth.h | 44 + private/mvdm/softpc.new/base/inc/host_sas.h | 201 + private/mvdm/softpc.new/base/inc/host_sig.h | 20 + private/mvdm/softpc.new/base/inc/host_str.h | 24 + private/mvdm/softpc.new/base/inc/host_uis.h | 77 + private/mvdm/softpc.new/base/inc/hosthunt.h | 39 + private/mvdm/softpc.new/base/inc/hunter.h | 614 ++ private/mvdm/softpc.new/base/inc/hwvga.h | 97 + private/mvdm/softpc.new/base/inc/ica.h | 255 + private/mvdm/softpc.new/base/inc/idetect.h | 57 + private/mvdm/softpc.new/base/inc/ios.h | 600 ++ private/mvdm/softpc.new/base/inc/ipx.h | 211 + private/mvdm/softpc.new/base/inc/j_c_lang.h | 49 + private/mvdm/softpc.new/base/inc/jcgensyn.h | 24 + private/mvdm/softpc.new/base/inc/jformate.h | 819 ++ private/mvdm/softpc.new/base/inc/keyba.h | 51 + private/mvdm/softpc.new/base/inc/keyboard.h | 215 + private/mvdm/softpc.new/base/inc/keycaps.h | 151 + private/mvdm/softpc.new/base/inc/kybdmtx.h | 45 + private/mvdm/softpc.new/base/inc/lm_attr.h | 72 + private/mvdm/softpc.new/base/inc/lm_clien.h | 555 ++ private/mvdm/softpc.new/base/inc/lm_code.h | 58 + private/mvdm/softpc.new/base/inc/loader.h | 107 + private/mvdm/softpc.new/base/inc/lock.h | 40 + private/mvdm/softpc.new/base/inc/low_intp.h | 71 + private/mvdm/softpc.new/base/inc/lq2500.h | 73 + private/mvdm/softpc.new/base/inc/m_errorp.h | 15 + private/mvdm/softpc.new/base/inc/m_fs.h | 13 + private/mvdm/softpc.new/base/inc/m_keybdp.h | 148 + private/mvdm/softpc.new/base/inc/m_lpcmp.h | 20 + private/mvdm/softpc.new/base/inc/make_dis.h | 60 + private/mvdm/softpc.new/base/inc/mark_ima.h | 59 + private/mvdm/softpc.new/base/inc/mda.h | 34 + private/mvdm/softpc.new/base/inc/mouse.h | 104 + private/mvdm/softpc.new/base/inc/mouse16b.h | 64 + private/mvdm/softpc.new/base/inc/mouse_io.h | 1145 +++ private/mvdm/softpc.new/base/inc/ms_windo.h | 1203 +++ private/mvdm/softpc.new/base/inc/msw_dbg.h | 356 + private/mvdm/softpc.new/base/inc/msw_keyb.h | 232 + private/mvdm/softpc.new/base/inc/msw_snd.h | 193 + private/mvdm/softpc.new/base/inc/novell.h | 173 + private/mvdm/softpc.new/base/inc/ppi.h | 37 + private/mvdm/softpc.new/base/inc/printer.h | 64 + private/mvdm/softpc.new/base/inc/profile.h | 259 + private/mvdm/softpc.new/base/inc/quick_ev.h | 73 + private/mvdm/softpc.new/base/inc/rom.h | 40 + private/mvdm/softpc.new/base/inc/rommap.h | 55 + private/mvdm/softpc.new/base/inc/rs232.h | 453 + private/mvdm/softpc.new/base/inc/rtc_bios.h | 36 + private/mvdm/softpc.new/base/inc/sas.h | 1082 +++ private/mvdm/softpc.new/base/inc/sasp.h | 20 + private/mvdm/softpc.new/base/inc/smeg.h | 117 + private/mvdm/softpc.new/base/inc/smeg_hea.h | 99 + private/mvdm/softpc.new/base/inc/spc_icon.h | 129 + private/mvdm/softpc.new/base/inc/spcfile.h | 9 + private/mvdm/softpc.new/base/inc/standard.h | 85 + private/mvdm/softpc.new/base/inc/suplib.h | 70 + private/mvdm/softpc.new/base/inc/swinhelp.h | 72 + private/mvdm/softpc.new/base/inc/swinmgre.h | 49 + private/mvdm/softpc.new/base/inc/tape_io.h | 111 + private/mvdm/softpc.new/base/inc/tcpip.h | 159 + private/mvdm/softpc.new/base/inc/timer.h | 124 + private/mvdm/softpc.new/base/inc/timestmp.h | 26 + private/mvdm/softpc.new/base/inc/timeval.h | 66 + private/mvdm/softpc.new/base/inc/tmstrobe.h | 46 + private/mvdm/softpc.new/base/inc/trace.h | 147 + private/mvdm/softpc.new/base/inc/tredltr.h | 103 + private/mvdm/softpc.new/base/inc/umb.h | 111 + private/mvdm/softpc.new/base/inc/unix_asy.h | 44 + private/mvdm/softpc.new/base/inc/unix_cnf.h | 55 + private/mvdm/softpc.new/base/inc/unix_loc.h | 26 + private/mvdm/softpc.new/base/inc/vga_dac.h | 787 ++ private/mvdm/softpc.new/base/inc/vgaports.h | 2018 +++++ private/mvdm/softpc.new/base/inc/vgastate.h | 171 + private/mvdm/softpc.new/base/inc/video.h | 278 + private/mvdm/softpc.new/base/inc/virtual.h | 54 + private/mvdm/softpc.new/base/inc/winfiles.h | 50 + private/mvdm/softpc.new/base/inc/winhelp.h | 89 + private/mvdm/softpc.new/base/inc/worm.h | 115 + private/mvdm/softpc.new/base/inc/xt.h | 165 + private/mvdm/softpc.new/base/inc/yoda.h | 71 + private/mvdm/softpc.new/base/keymouse/keyba.c | 3241 +++++++ private/mvdm/softpc.new/base/keymouse/keybd_io.c | 2162 +++++ private/mvdm/softpc.new/base/keymouse/makefile | 6 + private/mvdm/softpc.new/base/keymouse/mouse.c | 419 + private/mvdm/softpc.new/base/keymouse/mouse_io.c | 6664 ++++++++++++++ private/mvdm/softpc.new/base/keymouse/ppi.c | 200 + private/mvdm/softpc.new/base/keymouse/sources | 62 + private/mvdm/softpc.new/base/support/get_env.c | 187 + private/mvdm/softpc.new/base/support/ios.c | 1021 +++ private/mvdm/softpc.new/base/support/main.c | 339 + private/mvdm/softpc.new/base/support/makefile | 6 + private/mvdm/softpc.new/base/support/sources | 63 + private/mvdm/softpc.new/base/support/terminat.c | 143 + private/mvdm/softpc.new/base/support/time_day.c | 828 ++ private/mvdm/softpc.new/base/support/xt.c | 652 ++ private/mvdm/softpc.new/base/system/at_dma.c | 925 ++ private/mvdm/softpc.new/base/system/cmos.c | 1318 +++ private/mvdm/softpc.new/base/system/cmosnt.c | 1212 +++ private/mvdm/softpc.new/base/system/dummy_nt.c | 32 + private/mvdm/softpc.new/base/system/ica.c | 2244 +++++ private/mvdm/softpc.new/base/system/ica.old | 2011 +++++ private/mvdm/softpc.new/base/system/idetect.c | 505 ++ private/mvdm/softpc.new/base/system/illegalp.c | 395 + private/mvdm/softpc.new/base/system/makefile | 6 + private/mvdm/softpc.new/base/system/qevnt.c | 611 ++ private/mvdm/softpc.new/base/system/quick_ev.c | 1556 ++++ private/mvdm/softpc.new/base/system/rom.c | 723 ++ private/mvdm/softpc.new/base/system/sources | 68 + private/mvdm/softpc.new/base/system/timer.c | 2881 ++++++ private/mvdm/softpc.new/base/system/timestrb.c | 120 + private/mvdm/softpc.new/base/system/unexp_nt.c | 95 + private/mvdm/softpc.new/base/unix/makefile | 6 + private/mvdm/softpc.new/base/unix/sources | 57 + private/mvdm/softpc.new/base/video/cga.c | 1490 +++ private/mvdm/softpc.new/base/video/ega_dmmy.c | 47 + private/mvdm/softpc.new/base/video/ega_mode.c | 798 ++ private/mvdm/softpc.new/base/video/ega_prts.c | 3459 +++++++ private/mvdm/softpc.new/base/video/ega_read.c | 1002 +++ private/mvdm/softpc.new/base/video/ega_trcr.c | 278 + private/mvdm/softpc.new/base/video/ega_vide.c | 2356 +++++ private/mvdm/softpc.new/base/video/ega_writ.c | 861 ++ private/mvdm/softpc.new/base/video/egawrtm0.c | 1366 +++ private/mvdm/softpc.new/base/video/egwrtm12.c | 1218 +++ private/mvdm/softpc.new/base/video/ga_glue.c | 349 + private/mvdm/softpc.new/base/video/gfx_updt.c | 4845 ++++++++++ private/mvdm/softpc.new/base/video/gvi.c | 341 + private/mvdm/softpc.new/base/video/makefile | 6 + private/mvdm/softpc.new/base/video/sources | 77 + private/mvdm/softpc.new/base/video/v7_ports.c | 771 ++ private/mvdm/softpc.new/base/video/v7_video.c | 524 ++ private/mvdm/softpc.new/base/video/vga_mode.c | 575 ++ private/mvdm/softpc.new/base/video/vga_prts.c | 3315 +++++++ private/mvdm/softpc.new/base/video/vga_vide.c | 1021 +++ private/mvdm/softpc.new/base/video/video.c | 2861 ++++++ private/mvdm/softpc.new/base/video/video_io.c | 70 + 689 files changed, 333761 insertions(+) create mode 100644 private/mvdm/softpc.new/base/bios/bios.c create mode 100644 private/mvdm/softpc.new/base/bios/bootstra.c create mode 100644 private/mvdm/softpc.new/base/bios/build_id.c create mode 100644 private/mvdm/softpc.new/base/bios/cmos_bis.c create mode 100644 private/mvdm/softpc.new/base/bios/cntlbop.c create mode 100644 private/mvdm/softpc.new/base/bios/emm_fncs.c create mode 100644 private/mvdm/softpc.new/base/bios/equipmnt.c create mode 100644 private/mvdm/softpc.new/base/bios/ill_bop.c create mode 100644 private/mvdm/softpc.new/base/bios/makefile create mode 100644 private/mvdm/softpc.new/base/bios/mem_size.c create mode 100644 private/mvdm/softpc.new/base/bios/reset.c create mode 100644 private/mvdm/softpc.new/base/bios/rom_basc.c create mode 100644 private/mvdm/softpc.new/base/bios/rtc_bios.c create mode 100644 private/mvdm/softpc.new/base/bios/slave_bs.c create mode 100644 private/mvdm/softpc.new/base/bios/sources create mode 100644 private/mvdm/softpc.new/base/bios/tape_io.c create mode 100644 private/mvdm/softpc.new/base/bios/virtual.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/aaa.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/aaa.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/aad.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/aad.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/aam.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/aam.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/aas.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/aas.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/adc.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/adc.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/add.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/add.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/and.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/and.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/arpl.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/arpl.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/bound.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/bound.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/bsf.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/bsf.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/bsr.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/bsr.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/bswap.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/bswap.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/bt.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/bt.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/btc.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/btc.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/btr.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/btr.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/bts.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/bts.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/c-files create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_addr.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_addr.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_bsic.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_bsic.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_debug.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_debug.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_div64.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_div64.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_getset.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_intr.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_intr.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_main.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_main.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_mem.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_mul64.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_mul64.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_neg64.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_neg64.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_oprnd.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_page.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_page.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_prot.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_prot.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_reg.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_reg.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_seg.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_seg.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_stack.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_stack.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_tlb.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_tlb.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_tsksw.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_tsksw.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_xcptn.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_xcptn.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_xfer.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_xfer.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_xtrn.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/c_xtrn.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/call.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/call.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/cbw.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/cbw.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/ccpudefs.inc create mode 100644 private/mvdm/softpc.new/base/ccpu386/ccpupig.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/ccpupig.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/ccpusas4.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/ccpusas4.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/cdq.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/cdq.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/clc.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/clc.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/cld.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/cld.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/cli.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/cli.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/clts.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/clts.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/cmc.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/cmc.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/cmp.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/cmp.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/cmpxchg.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/cmpxchg.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/cpu4gen.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/cpuint_c.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/cwd.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/cwd.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/cwde.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/cwde.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/daa.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/daa.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/das.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/das.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/dec.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/dec.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/div.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/div.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/enter.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/enter.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/evid_c.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/evidfunc.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/evidgen.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/fault.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/fpu.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/fpu_c.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/gdpvar.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/idiv.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/idiv.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/imul.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/imul.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/in.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/in.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/inc.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/inc.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/into.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/into.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/intx.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/intx.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/invd.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/invd.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/invlpg.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/invlpg.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/iret.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/iret.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/jcxz.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/jcxz.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/jmp.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/jmp.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/jxx.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/jxx.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/lahf.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/lahf.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/lar.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/lar.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/lea.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/lea.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/leave.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/leave.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/lgdt.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/lgdt.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/lidt.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/lidt.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/lldt.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/lldt.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/lmsw.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/lmsw.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/localfm.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/loopxx.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/loopxx.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/lsl.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/lsl.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/ltr.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/ltr.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/lxs.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/lxs.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/makefile create mode 100644 private/mvdm/softpc.new/base/ccpu386/mov.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/mov.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/movsx.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/movsx.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/mul.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/mul.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/neg.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/neg.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/newnpx.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/nop.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/nop.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/not.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/not.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/ntstubs.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/ntthread.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/ntthread.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/or.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/or.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/out.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/out.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/pigger_c.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/pop.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/pop.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/popa.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/popa.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/popf.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/popf.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/push.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/push.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/pusha.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/pusha.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/pushf.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/pushf.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/rcl.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/rcl.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/rcr.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/rcr.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/ret.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/ret.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/rol.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/rol.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/ror.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/ror.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/rsrvd.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/rsrvd.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/sahf.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/sahf.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/sar.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/sar.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/sascdef.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/sbb.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/sbb.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/setxx.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/setxx.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/sgdt.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/sgdt.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/shl.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/shl.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/shld.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/shld.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/shr.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/shr.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/shrd.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/shrd.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/sidt.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/sidt.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/sldt.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/sldt.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/smsw.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/smsw.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/sources create mode 100644 private/mvdm/softpc.new/base/ccpu386/stc.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/stc.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/std.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/std.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/sti.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/sti.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/str.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/str.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/stubs.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/sub.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/sub.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/test.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/test.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/univer_c.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/verr.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/verr.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/verw.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/verw.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/vglob.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/wait.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/wait.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/wbinvd.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/wbinvd.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/xadd.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/xadd.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/xchg.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/xchg.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/xlat.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/xlat.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/xor.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/xor.h create mode 100644 private/mvdm/softpc.new/base/ccpu386/zfrsrvd.c create mode 100644 private/mvdm/softpc.new/base/ccpu386/zfrsrvd.h create mode 100644 private/mvdm/softpc.new/base/comms/com.c create mode 100644 private/mvdm/softpc.new/base/comms/makefile create mode 100644 private/mvdm/softpc.new/base/comms/printer.c create mode 100644 private/mvdm/softpc.new/base/comms/printer_.c create mode 100644 private/mvdm/softpc.new/base/comms/prt_scrn.c create mode 100644 private/mvdm/softpc.new/base/comms/rs232_io.c create mode 100644 private/mvdm/softpc.new/base/comms/sources create mode 100644 private/mvdm/softpc.new/base/cpu/src/evid/ev_glue.c create mode 100644 private/mvdm/softpc.new/base/cpu/src/evid/ev_stubs.c create mode 100644 private/mvdm/softpc.new/base/cpu/src/evid/vglob.c create mode 100644 private/mvdm/softpc.new/base/cvidc/acc_efi.h create mode 100644 private/mvdm/softpc.new/base/cvidc/access_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/accessfn.c create mode 100644 private/mvdm/softpc.new/base/cvidc/add_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/adjust_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/axphst_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/bldr_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/bodge_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/bound_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/bpi_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/bswap_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/btest_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/buffer_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/c2cpug_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/c2cpusad.h create mode 100644 private/mvdm/softpc.new/base/cvidc/c2cput_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/ccpudefs.inc create mode 100644 private/mvdm/softpc.new/base/cvidc/chain2_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/chain4_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/cmp_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/contxt_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/conv_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/copies_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/cpnote_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/cpu4gen.h create mode 100644 private/mvdm/softpc.new/base/cvidc/cpu_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/cpuint_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/cpumod_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/cpureg_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/dec_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/ea_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/enter_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/ev_glue.c create mode 100644 private/mvdm/softpc.new/base/cvidc/ev_stubs.c create mode 100644 private/mvdm/softpc.new/base/cvidc/evid_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/evidfunc.c create mode 100644 private/mvdm/softpc.new/base/cvidc/evidfunc.h create mode 100644 private/mvdm/softpc.new/base/cvidc/evidgen.h create mode 100644 private/mvdm/softpc.new/base/cvidc/flags_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/flagtb_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/fm_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/fmevid_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/fpu_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/frag_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/gdebug.h create mode 100644 private/mvdm/softpc.new/base/cvidc/gdinit_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/gdmain_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/gdpvar.h create mode 100644 private/mvdm/softpc.new/base/cvidc/gicvid_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/gldc_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/hpphst_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/idmain_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/inc_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/inst_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/io_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/j_c_lang.c create mode 100644 private/mvdm/softpc.new/base/cvidc/j_c_lang.h create mode 100644 private/mvdm/softpc.new/base/cvidc/lc_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/light_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/logic_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/lxs_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/makefile create mode 100644 private/mvdm/softpc.new/base/cvidc/mark_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/misc_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/move_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/muldiv_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/nano_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/nanoa_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/nanob_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/nanoc_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/nanod_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/nanoe_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/page_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/parser.h create mode 100644 private/mvdm/softpc.new/base/cvidc/pigger_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/pm_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/ports_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/ppchst_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/prof_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/prot_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/pti_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/pxcptn_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/rdwr_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/read_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/rotate_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/sas4gen.h create mode 100644 private/mvdm/softpc.new/base/cvidc/sas_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/sascdef.c create mode 100644 private/mvdm/softpc.new/base/cvidc/segreg_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid000.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid001.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid002.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid003.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid004.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid005.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid006.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid007.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid008.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid009.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid010.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid011.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid012.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid013.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid014.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid015.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid016.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid017.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid018.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid019.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid020.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid021.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid022.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid023.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid024.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid025.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid026.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid027.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid028.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid029.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sevid030.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sf_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/shift_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/simple_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/sinit011.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sinit012.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sinit013.c create mode 100644 private/mvdm/softpc.new/base/cvidc/sources create mode 100644 private/mvdm/softpc.new/base/cvidc/stack_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/string_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/strint_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/strsub_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/stub_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/sub_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/sunhst_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/task_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/test_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/trace_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/unchn_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/univer_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/vglfunc.c create mode 100644 private/mvdm/softpc.new/base/cvidc/vglob.c create mode 100644 private/mvdm/softpc.new/base/cvidc/vglob_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/xchg_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/xfer_c.h create mode 100644 private/mvdm/softpc.new/base/cvidc/xlat_c.h create mode 100644 private/mvdm/softpc.new/base/dasm386/build.c create mode 100644 private/mvdm/softpc.new/base/dasm386/dasm386.c create mode 100644 private/mvdm/softpc.new/base/dasm386/decode.c create mode 100644 private/mvdm/softpc.new/base/dasm386/makefile create mode 100644 private/mvdm/softpc.new/base/dasm386/sources create mode 100644 private/mvdm/softpc.new/base/debug/btrace.c create mode 100644 private/mvdm/softpc.new/base/debug/dasm.c create mode 100644 private/mvdm/softpc.new/base/debug/debuggng.c create mode 100644 private/mvdm/softpc.new/base/debug/ega_dump.c create mode 100644 private/mvdm/softpc.new/base/debug/makefile create mode 100644 private/mvdm/softpc.new/base/debug/markfrom create mode 100644 private/mvdm/softpc.new/base/debug/pigyoda.c create mode 100644 private/mvdm/softpc.new/base/debug/profile.c create mode 100644 private/mvdm/softpc.new/base/debug/sources create mode 100644 private/mvdm/softpc.new/base/debug/trace.c create mode 100644 private/mvdm/softpc.new/base/debug/yoda.c create mode 100644 private/mvdm/softpc.new/base/dirs create mode 100644 private/mvdm/softpc.new/base/disks/diskbios.c create mode 100644 private/mvdm/softpc.new/base/disks/fdisk.c create mode 100644 private/mvdm/softpc.new/base/disks/fla.c create mode 100644 private/mvdm/softpc.new/base/disks/floppy.c create mode 100644 private/mvdm/softpc.new/base/disks/floppy_i.c create mode 100644 private/mvdm/softpc.new/base/disks/gfi.c create mode 100644 private/mvdm/softpc.new/base/disks/gfi_ibm.c create mode 100644 private/mvdm/softpc.new/base/disks/gfi_mpty.c create mode 100644 private/mvdm/softpc.new/base/disks/gfi_sflp.c create mode 100644 private/mvdm/softpc.new/base/disks/gfi_test.c create mode 100644 private/mvdm/softpc.new/base/disks/makefile create mode 100644 private/mvdm/softpc.new/base/disks/sources create mode 100644 private/mvdm/softpc.new/base/dos/emm_mngr.c create mode 100644 private/mvdm/softpc.new/base/dos/makefile create mode 100644 private/mvdm/softpc.new/base/dos/sources create mode 100644 private/mvdm/softpc.new/base/inc/acc_efi.h create mode 100644 private/mvdm/softpc.new/base/inc/base_def.h create mode 100644 private/mvdm/softpc.new/base/inc/bios.h create mode 100644 private/mvdm/softpc.new/base/inc/build_id.h create mode 100644 private/mvdm/softpc.new/base/inc/cdrom.h create mode 100644 private/mvdm/softpc.new/base/inc/cdrom_fn.h create mode 100644 private/mvdm/softpc.new/base/inc/cga.h create mode 100644 private/mvdm/softpc.new/base/inc/chkmallc.h create mode 100644 private/mvdm/softpc.new/base/inc/ckmalloc.h create mode 100644 private/mvdm/softpc.new/base/inc/cmos.h create mode 100644 private/mvdm/softpc.new/base/inc/cmosbios.h create mode 100644 private/mvdm/softpc.new/base/inc/cntlbop.h create mode 100644 private/mvdm/softpc.new/base/inc/config.h create mode 100644 private/mvdm/softpc.new/base/inc/cpu.h create mode 100644 private/mvdm/softpc.new/base/inc/cpu2.h create mode 100644 private/mvdm/softpc.new/base/inc/cpu3.h create mode 100644 private/mvdm/softpc.new/base/inc/cpu4.h create mode 100644 private/mvdm/softpc.new/base/inc/cpu_vid.h create mode 100644 private/mvdm/softpc.new/base/inc/d_inst.h create mode 100644 private/mvdm/softpc.new/base/inc/d_oper.h create mode 100644 private/mvdm/softpc.new/base/inc/dasm.h create mode 100644 private/mvdm/softpc.new/base/inc/debug.h create mode 100644 private/mvdm/softpc.new/base/inc/decode.h create mode 100644 private/mvdm/softpc.new/base/inc/dfa.h create mode 100644 private/mvdm/softpc.new/base/inc/disk_geo.h create mode 100644 private/mvdm/softpc.new/base/inc/dma.h create mode 100644 private/mvdm/softpc.new/base/inc/dpmi.h create mode 100644 private/mvdm/softpc.new/base/inc/dsktrace.h create mode 100644 private/mvdm/softpc.new/base/inc/dterm.h create mode 100644 private/mvdm/softpc.new/base/inc/egacpu.h create mode 100644 private/mvdm/softpc.new/base/inc/egagraph.h create mode 100644 private/mvdm/softpc.new/base/inc/egamode.h create mode 100644 private/mvdm/softpc.new/base/inc/egaports.h create mode 100644 private/mvdm/softpc.new/base/inc/egaread.h create mode 100644 private/mvdm/softpc.new/base/inc/egatrace.h create mode 100644 private/mvdm/softpc.new/base/inc/egavideo.h create mode 100644 private/mvdm/softpc.new/base/inc/emm.h create mode 100644 private/mvdm/softpc.new/base/inc/equip.h create mode 100644 private/mvdm/softpc.new/base/inc/error.h create mode 100644 private/mvdm/softpc.new/base/inc/fdisk.h create mode 100644 private/mvdm/softpc.new/base/inc/fla.h create mode 100644 private/mvdm/softpc.new/base/inc/flexlmif.h create mode 100644 private/mvdm/softpc.new/base/inc/floppy.h create mode 100644 private/mvdm/softpc.new/base/inc/ga_defs.h create mode 100644 private/mvdm/softpc.new/base/inc/ga_mark.h create mode 100644 private/mvdm/softpc.new/base/inc/gendrvr.h create mode 100644 private/mvdm/softpc.new/base/inc/get_env.h create mode 100644 private/mvdm/softpc.new/base/inc/getptis.h create mode 100644 private/mvdm/softpc.new/base/inc/gfi.h create mode 100644 private/mvdm/softpc.new/base/inc/gfiempty.h create mode 100644 private/mvdm/softpc.new/base/inc/gfirflop.h create mode 100644 private/mvdm/softpc.new/base/inc/gfisflop.h create mode 100644 private/mvdm/softpc.new/base/inc/gfitest.h create mode 100644 private/mvdm/softpc.new/base/inc/gfx_upd.h create mode 100644 private/mvdm/softpc.new/base/inc/gisp_sas.h create mode 100644 private/mvdm/softpc.new/base/inc/gispsvga.h create mode 100644 private/mvdm/softpc.new/base/inc/gmi.h create mode 100644 private/mvdm/softpc.new/base/inc/gore.h create mode 100644 private/mvdm/softpc.new/base/inc/gvi.h create mode 100644 private/mvdm/softpc.new/base/inc/harness.h create mode 100644 private/mvdm/softpc.new/base/inc/haw.h create mode 100644 private/mvdm/softpc.new/base/inc/herc.h create mode 100644 private/mvdm/softpc.new/base/inc/hfx.h create mode 100644 private/mvdm/softpc.new/base/inc/hg_cpu.h create mode 100644 private/mvdm/softpc.new/base/inc/hg_sas.h create mode 100644 private/mvdm/softpc.new/base/inc/hg_stat.h create mode 100644 private/mvdm/softpc.new/base/inc/host.h create mode 100644 private/mvdm/softpc.new/base/inc/host_cfg.h create mode 100644 private/mvdm/softpc.new/base/inc/host_com.h create mode 100644 private/mvdm/softpc.new/base/inc/host_fio.h create mode 100644 private/mvdm/softpc.new/base/inc/host_gwi.h create mode 100644 private/mvdm/softpc.new/base/inc/host_hun.h create mode 100644 private/mvdm/softpc.new/base/inc/host_lpt.h create mode 100644 private/mvdm/softpc.new/base/inc/host_msw.h create mode 100644 private/mvdm/softpc.new/base/inc/host_nls.h create mode 100644 private/mvdm/softpc.new/base/inc/host_pth.h create mode 100644 private/mvdm/softpc.new/base/inc/host_sas.h create mode 100644 private/mvdm/softpc.new/base/inc/host_sig.h create mode 100644 private/mvdm/softpc.new/base/inc/host_str.h create mode 100644 private/mvdm/softpc.new/base/inc/host_uis.h create mode 100644 private/mvdm/softpc.new/base/inc/hosthunt.h create mode 100644 private/mvdm/softpc.new/base/inc/hunter.h create mode 100644 private/mvdm/softpc.new/base/inc/hwvga.h create mode 100644 private/mvdm/softpc.new/base/inc/ica.h create mode 100644 private/mvdm/softpc.new/base/inc/idetect.h create mode 100644 private/mvdm/softpc.new/base/inc/ios.h create mode 100644 private/mvdm/softpc.new/base/inc/ipx.h create mode 100644 private/mvdm/softpc.new/base/inc/j_c_lang.h create mode 100644 private/mvdm/softpc.new/base/inc/jcgensyn.h create mode 100644 private/mvdm/softpc.new/base/inc/jformate.h create mode 100644 private/mvdm/softpc.new/base/inc/keyba.h create mode 100644 private/mvdm/softpc.new/base/inc/keyboard.h create mode 100644 private/mvdm/softpc.new/base/inc/keycaps.h create mode 100644 private/mvdm/softpc.new/base/inc/kybdmtx.h create mode 100644 private/mvdm/softpc.new/base/inc/lm_attr.h create mode 100644 private/mvdm/softpc.new/base/inc/lm_clien.h create mode 100644 private/mvdm/softpc.new/base/inc/lm_code.h create mode 100644 private/mvdm/softpc.new/base/inc/loader.h create mode 100644 private/mvdm/softpc.new/base/inc/lock.h create mode 100644 private/mvdm/softpc.new/base/inc/low_intp.h create mode 100644 private/mvdm/softpc.new/base/inc/lq2500.h create mode 100644 private/mvdm/softpc.new/base/inc/m_errorp.h create mode 100644 private/mvdm/softpc.new/base/inc/m_fs.h create mode 100644 private/mvdm/softpc.new/base/inc/m_keybdp.h create mode 100644 private/mvdm/softpc.new/base/inc/m_lpcmp.h create mode 100644 private/mvdm/softpc.new/base/inc/make_dis.h create mode 100644 private/mvdm/softpc.new/base/inc/mark_ima.h create mode 100644 private/mvdm/softpc.new/base/inc/mda.h create mode 100644 private/mvdm/softpc.new/base/inc/mouse.h create mode 100644 private/mvdm/softpc.new/base/inc/mouse16b.h create mode 100644 private/mvdm/softpc.new/base/inc/mouse_io.h create mode 100644 private/mvdm/softpc.new/base/inc/ms_windo.h create mode 100644 private/mvdm/softpc.new/base/inc/msw_dbg.h create mode 100644 private/mvdm/softpc.new/base/inc/msw_keyb.h create mode 100644 private/mvdm/softpc.new/base/inc/msw_snd.h create mode 100644 private/mvdm/softpc.new/base/inc/novell.h create mode 100644 private/mvdm/softpc.new/base/inc/ppi.h create mode 100644 private/mvdm/softpc.new/base/inc/printer.h create mode 100644 private/mvdm/softpc.new/base/inc/profile.h create mode 100644 private/mvdm/softpc.new/base/inc/quick_ev.h create mode 100644 private/mvdm/softpc.new/base/inc/rom.h create mode 100644 private/mvdm/softpc.new/base/inc/rommap.h create mode 100644 private/mvdm/softpc.new/base/inc/rs232.h create mode 100644 private/mvdm/softpc.new/base/inc/rtc_bios.h create mode 100644 private/mvdm/softpc.new/base/inc/sas.h create mode 100644 private/mvdm/softpc.new/base/inc/sasp.h create mode 100644 private/mvdm/softpc.new/base/inc/smeg.h create mode 100644 private/mvdm/softpc.new/base/inc/smeg_hea.h create mode 100644 private/mvdm/softpc.new/base/inc/spc_icon.h create mode 100644 private/mvdm/softpc.new/base/inc/spcfile.h create mode 100644 private/mvdm/softpc.new/base/inc/standard.h create mode 100644 private/mvdm/softpc.new/base/inc/suplib.h create mode 100644 private/mvdm/softpc.new/base/inc/swinhelp.h create mode 100644 private/mvdm/softpc.new/base/inc/swinmgre.h create mode 100644 private/mvdm/softpc.new/base/inc/tape_io.h create mode 100644 private/mvdm/softpc.new/base/inc/tcpip.h create mode 100644 private/mvdm/softpc.new/base/inc/timer.h create mode 100644 private/mvdm/softpc.new/base/inc/timestmp.h create mode 100644 private/mvdm/softpc.new/base/inc/timeval.h create mode 100644 private/mvdm/softpc.new/base/inc/tmstrobe.h create mode 100644 private/mvdm/softpc.new/base/inc/trace.h create mode 100644 private/mvdm/softpc.new/base/inc/tredltr.h create mode 100644 private/mvdm/softpc.new/base/inc/umb.h create mode 100644 private/mvdm/softpc.new/base/inc/unix_asy.h create mode 100644 private/mvdm/softpc.new/base/inc/unix_cnf.h create mode 100644 private/mvdm/softpc.new/base/inc/unix_loc.h create mode 100644 private/mvdm/softpc.new/base/inc/vga_dac.h create mode 100644 private/mvdm/softpc.new/base/inc/vgaports.h create mode 100644 private/mvdm/softpc.new/base/inc/vgastate.h create mode 100644 private/mvdm/softpc.new/base/inc/video.h create mode 100644 private/mvdm/softpc.new/base/inc/virtual.h create mode 100644 private/mvdm/softpc.new/base/inc/winfiles.h create mode 100644 private/mvdm/softpc.new/base/inc/winhelp.h create mode 100644 private/mvdm/softpc.new/base/inc/worm.h create mode 100644 private/mvdm/softpc.new/base/inc/xt.h create mode 100644 private/mvdm/softpc.new/base/inc/yoda.h create mode 100644 private/mvdm/softpc.new/base/keymouse/keyba.c create mode 100644 private/mvdm/softpc.new/base/keymouse/keybd_io.c create mode 100644 private/mvdm/softpc.new/base/keymouse/makefile create mode 100644 private/mvdm/softpc.new/base/keymouse/mouse.c create mode 100644 private/mvdm/softpc.new/base/keymouse/mouse_io.c create mode 100644 private/mvdm/softpc.new/base/keymouse/ppi.c create mode 100644 private/mvdm/softpc.new/base/keymouse/sources create mode 100644 private/mvdm/softpc.new/base/support/get_env.c create mode 100644 private/mvdm/softpc.new/base/support/ios.c create mode 100644 private/mvdm/softpc.new/base/support/main.c create mode 100644 private/mvdm/softpc.new/base/support/makefile create mode 100644 private/mvdm/softpc.new/base/support/sources create mode 100644 private/mvdm/softpc.new/base/support/terminat.c create mode 100644 private/mvdm/softpc.new/base/support/time_day.c create mode 100644 private/mvdm/softpc.new/base/support/xt.c create mode 100644 private/mvdm/softpc.new/base/system/at_dma.c create mode 100644 private/mvdm/softpc.new/base/system/cmos.c create mode 100644 private/mvdm/softpc.new/base/system/cmosnt.c create mode 100644 private/mvdm/softpc.new/base/system/dummy_nt.c create mode 100644 private/mvdm/softpc.new/base/system/ica.c create mode 100644 private/mvdm/softpc.new/base/system/ica.old create mode 100644 private/mvdm/softpc.new/base/system/idetect.c create mode 100644 private/mvdm/softpc.new/base/system/illegalp.c create mode 100644 private/mvdm/softpc.new/base/system/makefile create mode 100644 private/mvdm/softpc.new/base/system/qevnt.c create mode 100644 private/mvdm/softpc.new/base/system/quick_ev.c create mode 100644 private/mvdm/softpc.new/base/system/rom.c create mode 100644 private/mvdm/softpc.new/base/system/sources create mode 100644 private/mvdm/softpc.new/base/system/timer.c create mode 100644 private/mvdm/softpc.new/base/system/timestrb.c create mode 100644 private/mvdm/softpc.new/base/system/unexp_nt.c create mode 100644 private/mvdm/softpc.new/base/unix/makefile create mode 100644 private/mvdm/softpc.new/base/unix/sources create mode 100644 private/mvdm/softpc.new/base/video/cga.c create mode 100644 private/mvdm/softpc.new/base/video/ega_dmmy.c create mode 100644 private/mvdm/softpc.new/base/video/ega_mode.c create mode 100644 private/mvdm/softpc.new/base/video/ega_prts.c create mode 100644 private/mvdm/softpc.new/base/video/ega_read.c create mode 100644 private/mvdm/softpc.new/base/video/ega_trcr.c create mode 100644 private/mvdm/softpc.new/base/video/ega_vide.c create mode 100644 private/mvdm/softpc.new/base/video/ega_writ.c create mode 100644 private/mvdm/softpc.new/base/video/egawrtm0.c create mode 100644 private/mvdm/softpc.new/base/video/egwrtm12.c create mode 100644 private/mvdm/softpc.new/base/video/ga_glue.c create mode 100644 private/mvdm/softpc.new/base/video/gfx_updt.c create mode 100644 private/mvdm/softpc.new/base/video/gvi.c create mode 100644 private/mvdm/softpc.new/base/video/makefile create mode 100644 private/mvdm/softpc.new/base/video/sources create mode 100644 private/mvdm/softpc.new/base/video/v7_ports.c create mode 100644 private/mvdm/softpc.new/base/video/v7_video.c create mode 100644 private/mvdm/softpc.new/base/video/vga_mode.c create mode 100644 private/mvdm/softpc.new/base/video/vga_prts.c create mode 100644 private/mvdm/softpc.new/base/video/vga_vide.c create mode 100644 private/mvdm/softpc.new/base/video/video.c create mode 100644 private/mvdm/softpc.new/base/video/video_io.c (limited to 'private/mvdm/softpc.new/base') diff --git a/private/mvdm/softpc.new/base/bios/bios.c b/private/mvdm/softpc.new/base/bios/bios.c new file mode 100644 index 000000000..75e0a6a9c --- /dev/null +++ b/private/mvdm/softpc.new/base/bios/bios.c @@ -0,0 +1,887 @@ +#include "insignia.h" +#include "host_def.h" +/* + * VPC-XT Revision 1.0 + * + * Title : bios + * + * Description : Vector of BOP calls which map to appropriate BIOS functions + * + * Author : Rod MacGregor + * + * Notes : hard disk int (0D) and command_check (B0) added DAR + * + * Mods: (r2.14): Replaced the entry against BOP 18 (not_supported()) + * with the dummy routine rom_basic(). + * + */ + +#ifdef SCCSID +static char SccsID[]="@(#)bios.c 1.64 06/28/95 Copyright Insignia Solutions Ltd."; +#endif + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "BIOS_SUPPORT.seg" +#endif + + +/* + * O/S include files. + */ +#include +#include TypesH + +/* + * SoftPC include files + */ +#include "xt.h" +#include "bios.h" +#include CpuH +#include "host.h" +#include "cntlbop.h" + +#include "host_hfx.h" +#include "hfx.h" +#include "virtual.h" +#include "gispsvga.h" +#ifdef SWIN_HFX +#include "winfiles.h" +#endif + + +#ifdef RDCHK +extern void get_lar(); +#endif /* RDCHK */ + +#ifdef CPU_40_STYLE +#define SWAP_INSTANCE virtual_swap_instance() +#else +#define SWAP_INSTANCE +#endif + +/* + Traps for BOP's requiring virtualisation. + */ +#ifdef SWIN_HFX +LOCAL void v_SwinRedirector IFN0() { SWAP_INSTANCE; SwinRedirector(); } +#endif +LOCAL void v_mouse_install1 IFN0() { SWAP_INSTANCE; mouse_install1(); } +LOCAL void v_mouse_install2 IFN0() { SWAP_INSTANCE; mouse_install2(); } +LOCAL void v_mouse_io_interrupt IFN0() { SWAP_INSTANCE; mouse_io_interrupt(); } +LOCAL void v_mouse_io_language IFN0() { SWAP_INSTANCE; mouse_io_language(); } +LOCAL void v_mouse_video_io IFN0() { SWAP_INSTANCE; mouse_video_io(); } +LOCAL void v_mouse_int1 IFN0() { SWAP_INSTANCE; mouse_int1(); } +LOCAL void v_mouse_int2 IFN0() { SWAP_INSTANCE; mouse_int2(); } +#if defined(XWINDOW) || defined(NTVDM) +LOCAL void v_host_mouse_install1 IFN0() {SWAP_INSTANCE; host_mouse_install1(); } +LOCAL void v_host_mouse_install2 IFN0() {SWAP_INSTANCE; host_mouse_install2(); } +#endif /* XWINDOW || NTVDM */ +#ifdef HFX +LOCAL void v_test_for_us IFN0() { SWAP_INSTANCE; test_for_us(); } +LOCAL void v_redirector IFN0() { SWAP_INSTANCE; redirector(); } +#endif /* HFX */ +LOCAL void v_mouse_EM_callback IFN0() { SWAP_INSTANCE; mouse_EM_callback(); } + +#ifdef PROFILE +extern void dump_profile IPT0(); +extern void reset_profile IPT0(); +#endif + +#ifdef SIGNAL_PROFILING +extern void Start_sigprof IPT0(); +extern void Stop_sigprof IPT0(); +extern void Dump_sigprof IPT0(); +#endif + +#if !defined(PROD) && defined(CPU_40_STYLE) +extern void FmDebugBop IPT0(); +#endif + +#if defined(CPU_40_STYLE) && !defined(NTVDM) +extern void VDD_Func IPT0(); +#endif + +#ifndef PROD +extern void trace_msg_bop IPT0(); +extern void dvr_bop_trace IPT0(); +#endif + +#ifdef NTVDM +void rtc_int(void); +#endif + +#ifndef MAC_LIKE + +void (*BIOS[])() = { + reset, /* BOP 00 */ + dummy_int, /* BOP 01 */ + unexpected_int, /* BOP 02 */ +#ifdef DOS_APP_LIC + DOS_AppLicense, /* BOP 03 */ +#else + illegal_bop, /* BOP 03 */ +#endif /* DOS_APP_LIC */ +#ifdef WDCTRL_BOP + wdctrl_bop, /* BOP 04 */ +#else /* WDCTRL_BOP */ + illegal_bop, /* BOP 04 */ +#endif /* WDCTRL_BOP */ +#if !defined(PROD) && defined(CPU_40_STYLE) + FmDebugBop, /* BOP 05 */ +#else + illegal_bop, /* BOP 05 */ +#endif /* !PROD && CPU_40_STYLE */ + illegal_op_int, /* BOP 06 */ + illegal_dvr_bop,/* BOP 07 */ +#if defined(NTVDM) || defined(CPU_40_STYLE) + illegal_bop, /* BOP 08 */ +#else /* !(NTVDM || CPU_40_STYLE) */ + time_int, /* BOP 08 */ +#endif /* !(NTVDM || CPU_40_STYLE) */ + keyboard_int, /* BOP 09 */ + illegal_bop, /* BOP 0A */ + illegal_bop, /* BOP 0B */ + illegal_bop, /* BOP 0C */ + /* disk interrupts on vector 76 .. no BOP required though! + * diskbios() uses re-entrant CPU to get disk interrupt + * and the disk ISR is pure Intel assembler (with no BOPs) + */ + illegal_bop, /* BOP 0D */ + diskette_int, /* BOP 0E */ + illegal_bop, /* BOP 0F */ + video_io, /* BOP 10 */ + equipment, /* BOP 11 */ + memory_size, /* BOP 12 */ + disk_io, /* BOP 13 */ + rs232_io, /* BOP 14 */ + cassette_io, /* BOP 15 */ + keyboard_io, /* BOP 16 */ + printer_io, /* BOP 17 */ + rom_basic, /* BOP 18 */ +#ifdef NTVDM +/* NT port, kill vdm instance, instead of warmbooting */ + terminate, +#else + bootstrap, /* BOP 19 */ +#endif + time_of_day, /* BOP 1A */ + illegal_bop, /* BOP 1B */ + illegal_bop, /* BOP 1C */ + kb_idle_poll, /* BOP 1D */ + illegal_bop, /* BOP 1E */ + illegal_bop, /* BOP 1F */ +#if defined(RDCHK) && !defined(PROD) + get_lar, /* BOP 20, used to debug read checks */ +#else + illegal_bop, /* BOP 20 */ +#endif + Get_build_id, /* BOP 21 */ +#ifdef WIN_VTD + VtdTickSync, /* BOP 22 */ +#else + illegal_bop, /* BOP 22 */ +#endif /* WIN_VTD */ + illegal_bop, /* BOP 23 */ + illegal_bop, /* BOP 24 */ +#if defined(CPU_40_STYLE) && !defined(NTVDM) + VDD_Func, /* BOP 25 */ +#else + illegal_bop, /* BOP 25 */ +#endif /* CPU_40_STYLE */ + illegal_bop, /* BOP 26 */ + illegal_bop, /* BOP 27 */ + illegal_bop, /* BOP 28 */ + illegal_bop, /* BOP 29 */ + illegal_bop, /* BOP 2A */ +#ifndef NTVDM + cmd_install, /* BOP 2B */ + cmd_load, /* BOP 2C */ +#else /* NTVDM */ + illegal_bop, /* BOP 2B */ + illegal_bop, /* BOP 2C */ +#endif /* NTVDM */ + illegal_bop, /* BOP 2D */ +#ifdef HFX + v_test_for_us, /* BOP 2E */ /* test_for_us */ + v_redirector, /* BOP 2F */ /* redirector */ +#else + illegal_bop, /* BOP 2E */ + illegal_bop, /* BOP 2F */ +#endif +#ifdef DPMI + DPMI_2F, /* BOP 30 */ + DPMI_31, /* BOP 31 */ + DPMI_general, /* BOP 32 */ + DPMI_int, /* BOP 33 */ +#else + illegal_bop, /* BOP 30 */ + illegal_bop, /* BOP 31 */ + illegal_bop, /* BOP 32 */ + illegal_bop, /* BOP 33 */ +#endif /* DPMI */ +#ifdef NOVELL + DriverInitialize, /* BOP 34 */ + DriverReadPacket, /* BOP 35 */ + DriverSendPacket, /* BOP 36 */ + DriverMulticastChange, /* BOP 37 */ + DriverReset, /* BOP 38 */ + DriverShutdown, /* BOP 39 */ + DriverAddProtocol, /* BOP 3A */ + DriverChangePromiscuous, /* BOP 3B */ + DriverOpenSocket, /* BOP 3C */ + DriverCloseSocket, /* BOP 3D */ +#ifdef NOVELL_CFM + DriverCheckForMore, /* BOP 3E */ +#else + illegal_bop, /* Spare BOP 3E */ +#endif +#ifdef V4CLIENT + DriverChangeIntStatus, /* BOP 3F */ +#else + illegal_bop, /* Spare BOP 3F */ +#endif /* V4CLIENT */ +#else /* NOVELL */ + illegal_bop, /* BOP 34 */ + illegal_bop, /* BOP 35 */ + illegal_bop, /* BOP 36 */ + illegal_bop, /* BOP 37 */ + illegal_bop, /* BOP 38 */ + illegal_bop, /* BOP 39 */ + illegal_bop, /* BOP 3A */ + illegal_bop, /* BOP 3B */ + illegal_bop, /* BOP 3C */ + illegal_bop, /* BOP 3D */ + illegal_bop, /* BOP 3E */ + illegal_bop, /* BOP 3F */ +#endif /* NOVELL */ + diskette_io, /* BOP 40 */ + illegal_bop, /* BOP 41 */ +#ifdef EGG + ega_video_io, /* BOP 42 */ +#else + illegal_bop, /* BOP 42 */ +#endif + illegal_bop, /* BOP 43 */ + illegal_bop, /* BOP 44 */ + illegal_bop, /* BOP 45 */ + illegal_bop, /* BOP 46 */ + illegal_bop, /* BOP 47 */ + illegal_bop, /* BOP 48 */ +#ifdef DPMI + DPMI_r0_int, /* BOP 49 */ + DPMI_exc, /* BOP 4A */ + DPMI_4B, /* BOP 4B */ +#else + illegal_bop, /* BOP 49 */ + illegal_bop, /* BOP 4A */ + illegal_bop, /* BOP 4B */ +#endif /* DPMI */ + illegal_bop, /* BOP 4C */ + illegal_bop, /* BOP 4D */ + illegal_bop, /* BOP 4E */ + illegal_bop, /* BOP 4F */ +#ifdef NTVDM +/* + Note that this precludes SMEG and NT existing together which seems + reasonable given the Unix & X dependencies of SMEG +*/ + MS_bop_0, /* BOP 50 - MS reserved */ + MS_bop_1, /* BOP 51 - MS reserved */ + MS_bop_2, /* BOP 52 - MS reserved */ + MS_bop_3, /* BOP 53 - MS reserved */ + MS_bop_4, /* BOP 54 - MS reserved */ + MS_bop_5, /* BOP 55 - MS reserved */ + MS_bop_6, /* BOP 56 - MS reserved */ + MS_bop_7, /* BOP 57 - MS reserved */ + MS_bop_8, /* BOP 58 - MS reserved */ + MS_bop_9, /* BOP 59 - MS reserved */ + MS_bop_A, /* BOP 5A - MS reserved */ + MS_bop_B, /* BOP 5B - MS reserved */ + MS_bop_C, /* BOP 5C - MS reserved */ + MS_bop_D, /* BOP 5D - MS reserved */ + MS_bop_E, /* BOP 5E - MS reserved */ + MS_bop_F, /* BOP 5F - MS reserved */ +#else +#ifdef SMEG + smeg_collect_data,/* BOP 50 */ + smeg_freeze_data, /* BOP 51 */ +#else + illegal_bop, /* BOP 50 */ + illegal_bop, /* BOP 51 */ +#endif /* SMEG */ +#if defined(IRET_HOOKS) && defined(GISP_CPU) + Cpu_hook_bop, /* BOP 52 */ +#else + illegal_bop, /* BOP 52 */ +#endif /* IRET_HOOKS && GISP_CPU */ +#ifdef GISP_SVGA + romMessageAddress, /* BOP 53 */ +#else + illegal_bop, /* BOP 53 */ +#endif + illegal_bop, /* BOP 54 */ + illegal_bop, /* BOP 55 */ + illegal_bop, /* BOP 56 */ + illegal_bop, /* BOP 57 */ + illegal_bop, /* BOP 58 */ + illegal_bop, /* BOP 59 */ + illegal_bop, /* BOP 5A */ + illegal_bop, /* BOP 5B */ + illegal_bop, /* BOP 5C */ + illegal_bop, /* BOP 5D */ + illegal_bop, /* BOP 5E */ + illegal_bop, /* BOP 5F */ +#endif /* NTVDM */ + softpc_version, /* BOP 60 */ + illegal_bop, /* BOP 61 */ + illegal_bop, /* BOP 62 */ +#ifdef PTY + com_bop_pty, /* BOP 63 */ +#else + illegal_bop, /* BOP 63 */ +#endif + illegal_bop, /* BOP 64 */ +#ifdef PC_CONFIG + pc_config, /* BOP 65 */ +#else + illegal_bop, /* BOP 65 */ +#endif +#ifdef LIM + emm_init, /* BOP 66 */ + emm_io, /* BOP 67 */ + return_from_call, /* BOP 68 */ +#else + illegal_bop, /* BOP 66 */ + illegal_bop, /* BOP 67 */ + illegal_bop, /* BOP 68 */ +#endif +#ifdef SUSPEND + suspend_softpc, /* BOP 69 */ + terminate, /* BOP 6A */ +#else + illegal_bop, /* BOP 69 */ + illegal_bop, /* BOP 6A */ +#endif +#ifdef GEN_DRVR + gen_driver_io, /* BOP 6B */ +#else + illegal_bop, /* BOP 6B */ +#endif +#ifdef SUSPEND + send_script, /* BOP 6C */ +#else + illegal_bop, /* BOP 6C */ +#endif + illegal_bop, /* BOP 6D */ + illegal_bop, /* BOP 6E */ +#ifdef CDROM + bcdrom_io, /* BOP 6F */ +#else + illegal_bop, /* BOP 6F */ +#endif + +#ifdef NTVDM + rtc_int, /* BOP 70 */ +#else + illegal_bop, /* BOP 70 */ +#endif + re_direct, /* BOP 71 */ + D11_int, /* BOP 72 */ + D11_int, /* BOP 73 */ + D11_int, /* BOP 74 */ + int_287, /* BOP 75 */ + D11_int, /* BOP 76 */ + D11_int, /* BOP 77 */ +#ifndef NTVDM + worm_init, /* BOP 78 */ + worm_io, /* BOP 79 */ +#else /* NTVDM */ + illegal_bop, /* BOP 78 */ + illegal_bop, /* BOP 79 */ +#endif /* NTVDM */ + illegal_bop, /* BOP 7A */ + illegal_bop, /* BOP 7B */ + illegal_bop, /* BOP 7C */ + illegal_bop, /* BOP 7D */ + illegal_bop, /* BOP 7E */ + illegal_bop, /* BOP 7F */ + illegal_bop, /* BOP 80 */ + illegal_bop, /* BOP 81 */ + illegal_bop, /* BOP 82 */ + illegal_bop, /* BOP 83 */ + illegal_bop, /* BOP 84 */ + illegal_bop, /* BOP 85 */ + illegal_bop, /* BOP 86 */ + illegal_bop, /* BOP 87 */ + illegal_bop, /* BOP 88 */ + illegal_bop, /* BOP 89 */ + illegal_bop, /* BOP 8A */ + illegal_bop, /* BOP 8B */ + illegal_bop, /* BOP 8C */ + illegal_bop, /* BOP 8D */ + illegal_bop, /* BOP 8E */ + illegal_bop, /* BOP 8F */ + +#ifdef NTVDM +/* No bootstrap on NT */ + illegal_bop, /* BOP 90 */ + illegal_bop, /* BOP 91 */ + illegal_bop, /* BOP 92 */ +#else + bootstrap1, /* BOP 90 */ + bootstrap2, /* BOP 91 */ + bootstrap3, /* BOP 92 */ +#endif + +#ifdef SWINAPI + Gdi_call, /* BOP 93 */ + User_call, /* BOP 94 */ + Swinapi_bop, /* BOP 95 */ +#else /* SWINAPI */ + + illegal_bop, /* BOP 93 */ + illegal_bop, /* BOP 94 */ + illegal_bop, /* BOP 95 */ +#endif /* SWINAPI */ + + illegal_bop, /* BOP 96 */ + illegal_bop, /* BOP 97 */ +#ifdef MSWDVR + ms_windows, /* BOP 98 */ + msw_mouse, /* BOP 99 */ + msw_copy, /* BOP 9A */ + msw_keybd, /* BOP 9B */ +#else + illegal_bop, /* BOP 98 */ + illegal_bop, /* BOP 99 */ + illegal_bop, /* BOP 9A */ + illegal_bop, /* BOP 9B */ +#endif +#if defined(SOFTWIN_API) || defined(SWIN_HFX) + SoftWindowsInit, /* BOP 9C */ + SoftWindowsTerm, /* BOP 9D */ +#else + illegal_bop, /* BOP 9C */ + illegal_bop, /* BOP 9D */ +#endif /* SOFTWIN_API or SWIN_HFX */ +#if defined(SOFTWIN_API) + SoftWindowsApi, /* BOP 9E */ +#else + illegal_bop, /* BOP 9E */ +#endif /* SOFTWIN_API */ +#ifdef SWIN_HAW + msw_sound, /* BOP 9F */ +#else + illegal_bop, /* BOP 9F */ +#endif /* SWIN_HAW */ + +#ifdef NOVELL_IPX + IPXResInit, /* BOP A0 */ + IPXResEntry, /* BOP A1 */ + IPXResInterrupt,/* BOP A2 */ + illegal_bop, /* BOP A3 */ +#else /* NOVELL_IPX */ + illegal_bop, /* BOP A0 */ + illegal_bop, /* BOP A1 */ + illegal_bop, /* BOP A2 */ + illegal_bop, /* BOP A3 */ +#endif /* NOVELL_IPX */ + +#ifdef NOVELL_TCPIP + TCPResInit, /* BOP A4 */ + TCPResEntry, /* BOP A5 */ +#else /* NOVELL_TCPIP */ + + illegal_bop, /* BOP A4 */ + illegal_bop, /* BOP A5 */ + +#endif /* NOVELL_TCPIP */ + +#ifdef WINSOCK + ISWSEntry, /* BOP A6 */ + illegal_bop, /* BOP A7 */ +#else /* WINSOCK */ + illegal_bop, /* BOP A6 */ + illegal_bop, /* BOP A7 */ +#endif /* WINSOCK */ + illegal_bop, /* BOP A8 */ + illegal_bop, /* BOP A9 */ +#ifdef SWIN_HFX + v_SwinRedirector, /* BOP AA */ /* SwinRedirector */ + SwinFileOpened, /* BOP AB */ + SwinHfxTaskTerm, /* BOP AC */ +#else + illegal_bop, /* BOP AA */ + illegal_bop, /* BOP AB */ + illegal_bop, /* BOP AC */ +#endif + +#ifdef MSWDVR + msw_copyInit, /* BOP AD */ + illegal_bop, /* BOP AE */ + illegal_bop, /* BOP AF */ + illegal_bop, /* BOP B0 */ +#else + illegal_bop, /* BOP AD */ + illegal_bop, /* BOP AE */ + illegal_bop, /* BOP AF */ + illegal_bop, /* BOP B0 */ +#endif + +#ifdef CPU_40_STYLE + virtual_device_trap, /* BOP B1 */ +#else + illegal_bop, /* BOP B1 */ +#endif + illegal_bop, /* BOP B2 */ + illegal_bop, /* BOP B3 */ + illegal_bop, /* BOP B4 */ + illegal_bop, /* BOP B5 */ + illegal_bop, /* BOP B6 */ + illegal_bop, /* BOP B7 */ + v_mouse_install1, /* BOP B8 */ /* mouse_install1 */ + v_mouse_install2, /* BOP B9 */ /* mouse_install2 */ + v_mouse_int1, /* BOP BA */ /* mouse_int1 */ + v_mouse_int2, /* BOP BB */ /* mouse_int2 */ + v_mouse_io_language, /* BOP BC */ /* mouse_io_language */ + v_mouse_io_interrupt, /* BOP BD */ /* mouse_io_interrupt */ + v_mouse_video_io, /* BOP BE */ /* mouse_video_io */ + v_mouse_EM_callback, /* BOP BF */ /* mouse_EM_callback */ + illegal_bop, /* BOP C0 */ + illegal_bop, /* BOP C1 */ + illegal_bop, /* BOP C2 */ + illegal_bop, /* BOP C3 */ + illegal_bop, /* BOP C4 */ + illegal_bop, /* BOP C5 */ + illegal_bop, /* BOP C6 */ + illegal_bop, /* BOP C7 */ +#if defined(XWINDOW) || defined(NTVDM) + v_host_mouse_install1, /* BOP C8 */ /* host_mouse_install1 */ + v_host_mouse_install2, /* BOP C9 */ /* host_mouse_install2 */ +#else +#ifdef GISP_SVGA + mouse_install1, + mouse_install2, +#else /* GISP_SVGA */ + illegal_bop, /* BOP C8 */ + illegal_bop, /* BOP C9 */ +#endif /* GISP_SVGA */ +#endif /* defined(XWINDOW) || defined(NTVDM) */ + illegal_bop, /* BOP CA */ + illegal_bop, /* BOP CB */ + illegal_bop, /* BOP CC */ + illegal_bop, /* BOP CD */ + illegal_bop, /* BOP CE */ + illegal_bop, /* BOP CF */ +#ifdef PROFILE + reset_profile, /* BOP D0 */ + dump_profile, /* BOP D1 */ +#else + illegal_bop, /* BOP D0 */ + illegal_bop, /* BOP D1 */ +#endif + illegal_bop, /* BOP D2 */ + illegal_bop, /* BOP D3 */ +#ifdef SIGNAL_PROFILING + Start_sigprof, /* BOP D4 */ + Stop_sigprof, /* BOP D5 */ + Dump_sigprof, /* BOP D6 */ +#else + illegal_bop, /* BOP D4 */ + illegal_bop, /* BOP D5 */ + illegal_bop, /* BOP D6 */ +#endif + illegal_bop, /* BOP D7 */ + illegal_bop, /* BOP D8 */ + illegal_bop, /* BOP D9 */ + illegal_bop, /* BOP DA */ + illegal_bop, /* BOP DB */ + illegal_bop, /* BOP DC */ + illegal_bop, /* BOP DD */ + illegal_bop, /* BOP DE */ + illegal_bop, /* BOP DF */ + illegal_bop, /* BOP E0 */ + illegal_bop, /* BOP E1 */ + illegal_bop, /* BOP E2 */ + illegal_bop, /* BOP E3 */ + illegal_bop, /* BOP E4 */ + illegal_bop, /* BOP E5 */ + illegal_bop, /* BOP E6 */ + illegal_bop, /* BOP E7 */ + illegal_bop, /* BOP E8 */ + illegal_bop, /* BOP E9 */ + illegal_bop, /* BOP EA */ + illegal_bop, /* BOP EB */ + illegal_bop, /* BOP EC */ + illegal_bop, /* BOP ED */ + illegal_bop, /* BOP EE */ + illegal_bop, /* BOP EF */ + illegal_bop, /* BOP F0 */ + illegal_bop, /* BOP F1 */ + illegal_bop, /* BOP F2 */ + illegal_bop, /* BOP F3 */ + illegal_bop, /* BOP F4 */ + illegal_bop, /* BOP F5 */ + illegal_bop, /* BOP F6 */ + illegal_bop, /* BOP F7 */ + +#ifndef PROD + dvr_bop_trace, /* BOP F8 */ + trace_msg_bop, /* BOP F9 -- pic*/ +#else + illegal_bop, /* BOP F8 */ + illegal_bop, /* BOP F9 */ +#endif +#ifndef GISP_CPU + illegal_bop, /* BOP FA */ + illegal_bop, /* BOP FB */ + illegal_bop, /* BOP FC */ +#if defined(NTVDM) && defined(MONITOR) + switch_to_real_mode, /* BOP FD */ +#else + illegal_bop, /* BOP FD */ +#endif /* NTVDM && MONITOR */ +#if !defined(LDBIOS) && !defined(CPU_30_STYLE) + host_unsimulate,/* BOP FE */ +#else +#if defined(NTVDM) && defined(MONITOR) + host_unsimulate, /* BOP FE */ +#else + illegal_bop, /* BOP FE */ +#endif /* NTVDM && MONITOR */ +#endif /* !LDBIOS && !CPU_30_STYLE */ + +#else /* ndef GISP_CPU */ + +/* In the GISP technology, BOPs FA, FC, FD and FE are + assumed to be handled directly by the host operating system and cannot + be used inside SoftPC. + */ + illegal_bop, /* BOP FA */ + hg_bop_handler, /* BOP FB */ /* in hg_cpu.c */ + illegal_bop, /* BOP FC */ + illegal_bop, /* BOP FD */ + illegal_bop, /* BOP FE */ + +#endif /* GISP_CPU */ + + control_bop /* BOP FF */ + /* Don't put anymore entries after FF because + we only have a byte quantity */ + }; +#endif /* MAC_LIKE */ + + + +#ifndef PROD +#ifdef MAC_LIKE +GLOBAL char *bop_name IFN1(IU8, bop_num) +{ + return (NULL); +} +#else /* !MAC_LIKE */ + +typedef void (*BOP_proc) IPT0(); +struct BOP_name { + BOP_proc proc; + char *name; +}; +#define BOP_NAME(proc) { proc, STRINGIFY(proc) } + +LOCAL struct BOP_name BOP_names[] = { + BOP_NAME(reset), + BOP_NAME(illegal_op_int), +#if !defined(NTVDM) && !defined(CPU_40_STYLE) + BOP_NAME(time_int), +#endif /* !NTVDM && !CPU_40_STYLE */ + BOP_NAME(keyboard_int), + BOP_NAME(diskette_int), + BOP_NAME(video_io), + BOP_NAME(equipment), + BOP_NAME(memory_size), + BOP_NAME(disk_io), + BOP_NAME(rs232_io), + BOP_NAME(cassette_io), + BOP_NAME(keyboard_io), + BOP_NAME(printer_io), + BOP_NAME(rom_basic), + BOP_NAME(softpc_version), + BOP_NAME(diskette_io), + BOP_NAME(time_of_day), + BOP_NAME(kb_idle_poll), +#ifndef NTVDM + BOP_NAME(cmd_install), + BOP_NAME(cmd_load), +#endif /* NTVDM */ + BOP_NAME(diskette_io), + BOP_NAME(v_mouse_install1), + BOP_NAME(v_mouse_install2), + BOP_NAME(v_mouse_int1), + BOP_NAME(v_mouse_int2), + BOP_NAME(v_mouse_io_language), + BOP_NAME(v_mouse_io_interrupt), + BOP_NAME(v_mouse_video_io), + BOP_NAME(v_mouse_EM_callback), +#ifdef PROFILE + BOP_NAME(reset_profile), + BOP_NAME(dump_profile), +#endif +#ifdef SIGNAL_PROFILING + BOP_NAME(Start_sigprof), + BOP_NAME(Stop_sigprof), + BOP_NAME(Dump_sigprof), +#endif + BOP_NAME(re_direct), + BOP_NAME(D11_int), + BOP_NAME(D11_int), + BOP_NAME(D11_int), + BOP_NAME(int_287), + BOP_NAME(D11_int), + BOP_NAME(D11_int), +#ifndef NTVDM + BOP_NAME(worm_init), + BOP_NAME(worm_io), +#endif /* NTVDM */ + +#if defined(RDCHK) && !defined(PROD) + BOP_NAME(get_lar), +#endif +#ifdef HFX + BOP_NAME(v_test_for_us), + BOP_NAME(v_redirector), +#endif +#ifdef DPMI + BOP_NAME(DPMI_2F), BOP_NAME(DPMI_31), + BOP_NAME(DPMI_general), BOP_NAME(DPMI_int), + BOP_NAME(DPMI_r0_int), BOP_NAME(DPMI_exc), + BOP_NAME(DPMI_4B), +#endif /* DPMI */ +#ifdef DOS_APP_LIC + BOP_NAME(DOS_AppLicense), +#endif +#ifdef NOVELL + BOP_NAME(DriverInitialize), BOP_NAME(DriverReadPacket), + BOP_NAME(DriverSendPacket), BOP_NAME(DriverMulticastChange), + BOP_NAME(DriverReset), BOP_NAME(DriverShutdown), + BOP_NAME(DriverAddProtocol), BOP_NAME(DriverChangePromiscuous), + BOP_NAME(DriverOpenSocket), BOP_NAME(DriverCloseSocket), +#endif +#ifdef EGG + BOP_NAME(ega_video_io), +#endif +#ifdef NTVDM + BOP_NAME(MS_bop_0), BOP_NAME(MS_bop_1), + BOP_NAME(MS_bop_2), BOP_NAME(MS_bop_3), + BOP_NAME(MS_bop_4), BOP_NAME(MS_bop_5), + BOP_NAME(MS_bop_6), BOP_NAME(MS_bop_7), + BOP_NAME(MS_bop_8), BOP_NAME(MS_bop_9), + BOP_NAME(MS_bop_A), BOP_NAME(MS_bop_B), + BOP_NAME(MS_bop_C), BOP_NAME(MS_bop_D), + BOP_NAME(MS_bop_E), BOP_NAME(MS_bop_F), + BOP_NAME(terminate), +#else + BOP_NAME(bootstrap), BOP_NAME(bootstrap1), + BOP_NAME(bootstrap2), BOP_NAME(bootstrap3), +#endif /* NTVDM */ +#ifdef SMEG + BOP_NAME(smeg_collect_data), BOP_NAME(smeg_freeze_data), +#endif /* SMEG */ +#if defined(IRET_HOOKS) && defined(GISP_CPU) + BOP_NAME(Cpu_hook_bop), +#endif /* IRET_HOOKS && GISP_CPU */ +#ifdef GISP_SVGA + BOP_NAME(romMessageAddress), +#endif +#ifdef PTY + BOP_NAME(com_bop_pty), +#endif +#ifdef PC_CONFIG + BOP_NAME(pc_config), +#endif +#ifdef LIM + BOP_NAME(emm_init), BOP_NAME(emm_io), + BOP_NAME(return_from_call), +#endif +#ifdef SUSPEND + BOP_NAME(suspend_softpc), BOP_NAME(terminate), +#endif +#ifdef GEN_DRVR + BOP_NAME(gen_driver_io), +#endif +#ifdef SUSPEND + BOP_NAME(send_script), +#endif +#ifdef CDROM + BOP_NAME(bcdrom_io), +#endif +#ifdef SWINAPI + BOP_NAME(Gdi_call), BOP_NAME(User_call), + BOP_NAME(Swinapi_bop), +#endif /* SWINAPI */ +#ifdef MSWDVR + BOP_NAME(ms_windows), BOP_NAME(msw_mouse), + BOP_NAME(msw_copy), BOP_NAME(msw_keybd), + BOP_NAME(msw_copyInit), +#endif +#if defined(SOFTWIN_API) || defined(SWIN_HFX) + BOP_NAME(SoftWindowsInit), BOP_NAME(SoftWindowsTerm), +#endif /* SOFTWIN_API or SWIN_HFX */ +#ifdef SOFTWIN_API + BOP_NAME(SoftWindowsApi), +#endif /* SOFTWIN_API */ +#ifdef NOVELL_IPX + BOP_NAME(IPXResInit), BOP_NAME(IPXResEntry), + BOP_NAME(IPXResInterrupt), +#endif /* NOVELL_IPX */ + +#ifdef NOVELL_TCPIP + BOP_NAME(TCPResInit), BOP_NAME(TCPResEntry), +#endif /* NOVELL_TCPIP */ +#ifdef SWIN_HFX + BOP_NAME(v_SwinRedirector), BOP_NAME(SwinFileOpened), + BOP_NAME(SwinHfxTaskTerm), +#endif +#if defined(XWINDOW) || defined(NTVDM) + BOP_NAME(v_host_mouse_install1), + BOP_NAME(v_host_mouse_install2), +#else +#ifdef GISP_SVGA + BOP_NAME(mouse_install1), + BOP_NAME(mouse_install2), +#endif /* GISP_SVGA */ +#endif /* defined(XWINDOW) || defined(NTVDM) */ +#if defined(NTVDM) && defined(MONITOR) + BOP_NAME(switch_to_real_mode), +#endif /* NTVDM && MONITOR */ + BOP_NAME(control_bop), +#ifdef WDCTRL_BOP + BOP_NAME(wdctrl_bop), +#endif /* WDCTRL_BOP */ +#ifndef PROD + BOP_NAME(trace_msg_bop), + BOP_NAME(dvr_bop_trace), +#endif + BOP_NAME(illegal_bop), + { 0, NULL } +}; + +GLOBAL char *bop_name IFN1(IU8, bop_num) +{ + struct BOP_name *bnp = BOP_names; + BOP_proc proc = BIOS[bop_num]; + + if (bop_num == 0xFE) + return "UNSIMULATE"; + + while ((bnp->name != NULL) && (proc != bnp->proc)) + bnp++; + + return (bnp->name); +} +#endif /* !MAC_LIKE */ +#endif /* PROD */ diff --git a/private/mvdm/softpc.new/base/bios/bootstra.c b/private/mvdm/softpc.new/base/bios/bootstra.c new file mode 100644 index 000000000..f91cd8f20 --- /dev/null +++ b/private/mvdm/softpc.new/base/bios/bootstra.c @@ -0,0 +1,186 @@ +#include "insignia.h" +#include "host_def.h" +#ifdef SECURE +#include "xt.h" +#include "config.h" +#endif +/* + * VPC-XT Revision 1.0 + * + * Title : Bios bootstrap function + * + * Description : This function is called by the BIOS reset function, using + * the bop call, to load the first sector of DOS into memory + * and then jump to this loaded section. + * + * The bootstrap function uses other parts of the Bios. Since + * at the time this code is run it is impossible for anyone + * to have patched the interrupt vector table, you would have + * thought we could call the Bios C code directly (using bop()). + * However, this is only true if the C code we are calling does + * not use interrupts itself. The Bios disk/diskette code does + * of course use interrupts and hence we must call this via a + * software interrupt. It is therefore split into a number + * of functions order that the CPU can service the interrupt + * before procceeding to the next part. + * + * Software interrupts to the disk_io function are loaded + * into Intel memory by sas_init(), viz + * + * BOP bootstrap() + * INT disk_io() + * BOP bootstrap1() + * INT disk_io() + * BOP bootstrap2() + * INT disk_io() + * BOP bootstrap3() + * + * Author : Henry Nash + * + * Notes : The Jump to DOS is actually coded as an 8088 instruction + * in memory following the above BOPs. + * + */ + +#ifdef SCCSID +static char SccsID[]="@(#)bootstrap.c 1.9 09/19/94 Copyright Insignia Solutions Ltd."; +#endif + +#ifdef SEGMENTATION +/* + * The following #include define specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_INIT.seg" +#endif + + + +/* + * O/S include files. + */ +#include +#include TypesH + +/* + * SoftPC include files + */ +#include "xt.h" +#include "bios.h" +#include "sas.h" +#include CpuH + +#ifdef SECURE +LOCAL IBOOL boot_has_finished = FALSE; +GLOBAL void end_secure_boot IFN0() +{ + boot_has_finished = TRUE; +} +GLOBAL IBOOL has_boot_finished IFN0() +{ + return boot_has_finished; +} +#endif + +/* + * ============================================================================ + * External functions + * ============================================================================ + */ + +void bootstrap() +{ + /* + * First reset the disk and diskette. + */ + +#ifdef SECURE + boot_has_finished = FALSE; +#endif + setAX(0); /* reset floppy */ + setDX(0x80); /* drive 0 */ +} + +void bootstrap1() +{ + /* + * Try and read the first sector off the diskette + */ + + setAH(2); /* read */ + setAL(1); /* 1 block */ +#ifdef SECURE + if ((IBOOL) config_inquire(C_SECURE, NULL)) + { + setDH(0); /* Head 0 */ + setDL(0x80); /* on Hard Disk */ + } + else + { + setDX(0); /* head 0 on drive 0 (floppy)*/ + } +#else + setDX(0); /* head 0 on drive 0 (floppy)*/ +#endif + setCX(1); /* track 0, sector 1 */ + setES(DOS_SEGMENT); /* Load address */ + setBX(DOS_OFFSET); +} + + +void bootstrap2() +{ + /* + * If the Carry Flag is set then the previous read failed and we go and + * try the hard disk. + */ + + if (getCF()) + { + /* + * Load up the registers to call the disk routine that will load + * the first sector of DOS into memory. This ALWAYS resides on the + * first sector of the disk. + */ + + setAH(2); /* Read sector */ + setAL(1); /* 1 block */ + setCH(0); /* Cylinder 0 */ + setCL(1); /* Sector 1 */ + setDH(0); /* Head 0 */ + setDL(0x80); /* Hard disk */ + setES(DOS_SEGMENT); /* Load address */ + setBX(DOS_OFFSET); + } +} + +void bootstrap3() +{ + char *p; + char error_str[80]; + + if (getCF()) + { + /* + * Write error on PC screen - assumes reset has positioned the + * cursor for us. Note that we can call the video using a BOP since + * the video code does not itself use interrupts. + */ + + sprintf(error_str,"DOS boot error - cannot open hard disk file"); + p = error_str; + while (*p != '\0') + { + setAH(14); + setAL(*p++); + bop(BIOS_VIDEO_IO); + } + } + + /* + * enable hardware interrupts before we jump to DOS + */ + + setIF(1); +} diff --git a/private/mvdm/softpc.new/base/bios/build_id.c b/private/mvdm/softpc.new/base/bios/build_id.c new file mode 100644 index 000000000..9fc778ba4 --- /dev/null +++ b/private/mvdm/softpc.new/base/bios/build_id.c @@ -0,0 +1,77 @@ +/*[ + * ======================================================================= + * + * Name: build_id.c + * + * Derived from: (original) + * + * Author: John Box + * + * Created on: May 26th 1994 + * + * SccsID: @(#)build_id.c 1.2 07/18/94 + * + * Coding Stds: 2.2 + * + * Purpose: This file contains the routine required for returning + * Build ID Nos. + * + * + * (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved. + * + * ======================================================================= +]*/ +#include "insignia.h" +#include "host_def.h" +#include "xt.h" +#include CpuH +#include "sas.h" + +#include "build_id.h" +enum +{ + BASE_MODULE = 1 +}; +/* + * The following module names must be terminated by a '$'. The Dos print utility + * recognises this as end of string. The length should include the '$'. + */ +LOCAL char base_name[] = {"Base$"}; +#define base_name_len 5 +/*( +=======================================Get_build_id ============================ +PURPOSE: + Returns a modules' Build IDs + +INPUT: + Module No. passed in AL. + +OUTPUT: + Module name written to DS:CX + The BUILD ID is returned in BX in the form YMMDD + (See build_id.h for details) + Next Module No. returned in AH. ( 0 if AL is the last one ). + 0 returned in AL to indicate no errors. + (Note: A SoftPC that doesn't support this Bop will leave AL set to the + INPUT module Number, thus indicating an error in the call ). +================================================================================ +)*/ +GLOBAL void Get_build_id IFN0( ) + +{ + +/* + * The name of the module needs to be written to Intel space at DS:CX + */ + + switch( getAL() ) + { + case BASE_MODULE: + write_intel_byte_string( getDS(), getCX(), (host_addr)base_name, base_name_len ); + setBX( BUILD_ID_CODE ); + setAX( 0 ); + break; + } + return; +} + diff --git a/private/mvdm/softpc.new/base/bios/cmos_bis.c b/private/mvdm/softpc.new/base/bios/cmos_bis.c new file mode 100644 index 000000000..2216ec62e --- /dev/null +++ b/private/mvdm/softpc.new/base/bios/cmos_bis.c @@ -0,0 +1,194 @@ +#include "insignia.h" +#include "host_def.h" +/* INSIGNIA MODULE SPECIFICATION + ----------------------------- + +MODULE NAME : Bios code for accessing the cmos + + THIS PROGRAM SOURCE FILE IS SUPPLIED IN CONFIDENCE TO THE + CUSTOMER, THE CONTENTS OR DETAILS OF ITS OPERATION MAY + ONLY BE DISCLOSED TO PERSONS EMPLOYED BY THE CUSTOMER WHO + REQUIRE A KNOWLEDGE OF THE SOFTWARE CODING TO CARRY OUT + THEIR JOB. DISCLOSURE TO ANY OTHER PERSON MUST HAVE PRIOR + AUTHORISATION FROM THE DIRECTORS OF INSIGNIA SOLUTIONS INC. + +DESIGNER : J.P.Box +DATE : September '88 + +PURPOSE : To provide routines to initialise and access the + CMOS + +The Following Routines are defined: + 1. set_tod + 2. cmos_read + 3. cmos_write + +========================================================================= + +AMENDMENTS : + +========================================================================= +*/ + +/* + * static char SccsID[]="@(#)cmos_bios.c 1.7 08/25/93 Copyright Insignia Solutions Ltd."; + */ + + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_CMOS.seg" +#endif + +#include "xt.h" +#include "bios.h" +#include "sas.h" +#include "cmos.h" +#include "cmosbios.h" +#include "ios.h" +#include "rtc_bios.h" + +#ifndef NTVDM +/* +========================================================================= + +FUNCTION : set_tod + +PURPOSE : Reads the time from the CMOS and sets the timer + data area in the BIOS + +RETURNED STATUS : None + +DESCRIPTION : + + +======================================================================= +*/ +#define BCD_TO_BIN( n ) ((n & 0x0f) + (((n >> 4) & 0x0f) * 10)) + +void set_tod() +{ + half_word value; /* time value read from CMOS */ + DOUBLE_TIME timer_tics; /* time converted to ticks */ + double_word tics_temp; /* prevent floating point code */ + + /* set data area to 0 in case of error return */ + sas_storew(TIMER_LOW, 0); + sas_storew(TIMER_HIGH, 0); + sas_store(TIMER_OVFL, 0); + + /* read seconds */ + value = cmos_read( CMOS_SECONDS + NMI_DISABLE ); + if( value > 0x59) + { + value = cmos_read( CMOS_DIAG + NMI_DISABLE ); + cmos_write( CMOS_DIAG + NMI_DISABLE, (value | CMOS_CLK_FAIL) ); + return; + } + tics_temp = BCD_TO_BIN( value ) * 73; /* was 18.25 */ + tics_temp /= 4; + timer_tics.total = tics_temp; + + /* read minutes */ + value = cmos_read( CMOS_MINUTES + NMI_DISABLE ); + if( value > 0x59) + { + value = cmos_read( CMOS_DIAG + NMI_DISABLE ); + cmos_write( CMOS_DIAG + NMI_DISABLE, (value | CMOS_CLK_FAIL) ); + return; + } + tics_temp = BCD_TO_BIN( value ) * 2185; /* was 1092.5 */ + tics_temp /= 2; + timer_tics.total += tics_temp; + + /* read hours */ + value = cmos_read( CMOS_HOURS + NMI_DISABLE ); + if( value > 0x23) + { + value = cmos_read( CMOS_DIAG + NMI_DISABLE ); + cmos_write( CMOS_DIAG + NMI_DISABLE, (value | CMOS_CLK_FAIL) ); + return; + } + timer_tics.total += BCD_TO_BIN( value ) * 65543L; + + /* write total to bios data area */ + + sas_storew(TIMER_LOW, timer_tics.half.low); + sas_storew(TIMER_HIGH, timer_tics.half.high); + + return; +} +#endif + + +/* +========================================================================= + +FUNCTION : cmos_read + +PURPOSE : Reads a byte from the cmos system clock configuration table + from the CMOS address specified + +RETURNED STATUS : The value read from the CMOS + +DESCRIPTION : + + +======================================================================= +*/ +half_word cmos_read(table_address) + +/* IN */ +half_word table_address; /* cmos table address to be read */ + +{ + half_word value; /* value read from cmos */ + + outb( CMOS_PORT, (table_address | NMI_DISABLE) ); + + inb( CMOS_DATA, &value ); + + /* + * Set bit 7 if it was previously set in table_address + */ + outb( CMOS_PORT, (CMOS_SHUT_DOWN | (table_address & NMI_DISABLE)) ); + + return ( value ); +} + +/* +========================================================================= + +FUNCTION : cmos_read + +PURPOSE : Writes a byte to the cmos system clock configuration table + at the CMOS address specified + +RETURNED STATUS : none + +DESCRIPTION : + + +======================================================================= +*/ +void cmos_write(table_address, value) +/* IN */ +half_word table_address, /* cmos table address to be written */ + value; /* value to be written */ + +{ + outb( CMOS_PORT, (table_address | NMI_DISABLE) ); + + outb( CMOS_DATA, value ); + + /* + * Set bit 7 if it was previously set in table_address + */ + outb( CMOS_PORT, (CMOS_SHUT_DOWN | (table_address & NMI_DISABLE)) ); + + return; +} diff --git a/private/mvdm/softpc.new/base/bios/cntlbop.c b/private/mvdm/softpc.new/base/bios/cntlbop.c new file mode 100644 index 000000000..5a5af89ea --- /dev/null +++ b/private/mvdm/softpc.new/base/bios/cntlbop.c @@ -0,0 +1,165 @@ +#include "insignia.h" +#include "host_def.h" +/* +========================================================================== + INSIGNIA MODULE SPECIFICATION + ----------------------------- + + + THIS PROGRAM SOURCE FILE IS SUPPLIED IN CONFIDENCE TO THE + CUSTOMER, THE CONTENTS OR DETAILS OF ITS OPERATION MUST + NOT BE DISCLOSED TO ANY OTHER PARTIES WITHOUT THE EXPRESS + AUTHORISATION FROM THE DIRECTORS OF INSIGNIA SOLUTIONS LTD. + + +DESIGNER : J. Koprowski + +REVISION HISTORY : +First version : 18th January 1989 + +MODULE NAME : cntlbop + +SOURCE FILE NAME : cntlbop.c + +SCCS ID : @(#)cntlbop.c 1.12 05/15/95 + +PURPOSE : Supply a BOP FF function for implementation + of various control functions, which may be + base or host specific. + +========================================================================== +*/ + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "AT_STUFF.seg" +#endif + +#include TypesH +#include "xt.h" +#include CpuH +#include "host.h" +#include "cntlbop.h" +#include "host_bop.h" + +#ifdef SCCSID +static char SccsID[] = "@(#)cntlbop.c 1.12 05/15/95 Copyright Insignia Solutions Ltd."; +#endif + +#ifdef SECURE +void end_secure_boot IPT0(); +#endif + +#if defined(RUNUX) +IMPORT void runux IPT0(); +#endif + +static control_bop_array base_bop_table[] = +{ +#ifdef SECURE + 9, end_secure_boot, +#endif +#if defined(RUNUX) + 8, runux, /* BCN 2328 run a host (unix) script file */ +#endif +#if defined(DUMB_TERMINAL) && !defined(NO_SERIAL_UIF) + 7, flatog, +#ifdef FLOPPY_B + 6, flbtog, +#endif /* FLOPPY_B */ +#ifdef SLAVEPC + 5, slvtog, +#endif /* SLAVEPC */ + 4, comtog, + 3, D_kyhot, /* Flush the COM/LPT ports */ + 2, D_kyhot2, /* Rock the screen */ +#endif /* DUMB_TERMINAL && !NO_SERIAL_UIF */ +#ifndef NTVDM + 1, exitswin, +#endif + 0, NULL +}; + + + +/* +========================================================================== +FUNCTION : do_bop +PURPOSE : Look up bop function and execute it. +EXTERNAL OBJECTS: None +RETURN VALUE : (in AX) + ERR_NO_FUNCTION + Various codes according to the subsequent function + called. + +INPUT PARAMS : struct control_bop_array *bop_table[] + function code (in AL) +RETURN PARAMS : None +========================================================================== +*/ + +static void do_bop IFN1(control_bop_array *, bop_table) +{ + unsigned int i; +/* + * Search for the function in the table. + * If found, call it, else return error. + */ + for (i = 0; (bop_table[i].code != getAL()) && (bop_table[i].code != 0); i++) + ; + if (bop_table[i].code == 0) + setAX(ERR_NO_FUNCTION); + else + (*bop_table[i].function)(); +} + + +/* +========================================================================= +PROCEDURE : control_bop() + +PURPOSE : Execute a BOP FF control function. + +PARAMETERS : AH - Host type. + AL - Function code + (others are function specific) + +GLOBALS : None + +RETURNED VALUE : (in AX) 0 - Success + 1 - Function not implemented (returned by + do_bop) + 2 - Wrong host type + Other error codes can be returned by the + individual functions called. + +DESCRIPTION : Invokes a base or host specific BOP function. + +ERROR INDICATIONS : Error code returned in AX + +ERROR RECOVERY : No call made +========================================================================= +*/ + +void control_bop IFN0() +{ + unsigned short host_type; + +/* + * If the host type is generic then look up the function in the + * base bop table, otherwise see if the function is specific to the + * host that we are running on. If it is then look up the function + * in the host bop table, otherwise return an error. + */ + if ((host_type = getAH()) == GENERIC) + do_bop(base_bop_table); + else + if (host_type == HOST_TYPE) + do_bop(host_bop_table); + else + setAX(ERR_WRONG_HOST); +} diff --git a/private/mvdm/softpc.new/base/bios/emm_fncs.c b/private/mvdm/softpc.new/base/bios/emm_fncs.c new file mode 100644 index 000000000..66bbea843 --- /dev/null +++ b/private/mvdm/softpc.new/base/bios/emm_fncs.c @@ -0,0 +1,2833 @@ +#include "insignia.h" +#include "host_def.h" + +#ifdef SUN_VA +#define MAXPATHLEN 1024 +#define NL 0x0a +#define CR 0x0d +#include +#endif + +/* INSIGNIA MODULE SPECIFICATION + ----------------------------- + +MODULE NAME : 'Top layer' of Expanded Memory Manager + + THIS PROGRAM SOURCE FILE IS SUPPLIED IN CONFIDENCE TO THE + CUSTOMER, THE CONTENTS OR DETAILS OF ITS OPERATION MUST + NOT BE DISCLOSED TO ANY OTHER PARTIES WITHOUT THE EXPRESS + AUTHORISATION FROM THE DIRECTORS OF INSIGNIA SOLUTIONS INC. + +DESIGNER : J.P.Box +DATE : May '88 + +PURPOSE : Contains all the top level calls to the Expanded + Memory Manager. Data is received and returned to the + calling application via Intel registers + +The Following Routines are defined: + 0. emm_io() + 1. Get_Status() + 2. Get_Page_Frame_Address() + 3. Get_Unallocated_Page() + 4. Allocate_Pages() + 5. Map_Unmap_Handle_Page() + 6. Deallocate_Pages() + 7. Get_Version() + 8. Save_Page_Map() + 9. Restore_Page_Map() + 10. Reserved() + 12. Get_Handle_Count() + 13. Get_Handle_pages() + 14. Get_All_Handle_Pages() + 15. Get_Set_Page_Map() + 16. Get_Set_Partial_Page_Map() + 17. Map_Unmap_Multiple_Handle_Pages() + 18. Reallocate_Pages() + 19. Get_Set_Handle_Attribute() + 20. Get_Set_Handle_Name() + 21. Get_Handle_Directory() + 22. Alter_Page_Map_And_Jump() + 23. Alter_Page_Map_And_Call() + 24. Move_Exchange_Memory_Region() + 25. Get_Mappable_Physical_Address_Array() + 26. Get_Hardware_Configuration_Array() + 27. Allocate_Raw_Pages() + 28. Alternate_Map_Register_Support() + 29. Prepare_Expanded_Memory_HW_For_Warm_Boot() + 30. Enable_Disable_OSE_Function_Set_Functions() + 31. reset_emm_funcs() + +========================================================================= + +AMMENDMENTS : + +========================================================================= +*/ +#ifdef LIM + + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_LIM.seg" +#endif + + +#include +#include TypesH +#include +#include TimeH + +#include "xt.h" +#include "sas.h" +#include CpuH +#include "emm.h" +#if defined(SUN_VA) || defined(NTVDM) +#include "error.h" +#include "config.h" +#endif /* SUN or NTVDM */ +#include "timeval.h" +#include "debug.h" +#ifndef PROD +#include "trace.h" +#endif +#include "timer.h" +#include +#include "gisp_sas.h" + +/* Global Variables */ +#ifdef SCCSID +static char SccsID[]="@(#)emm_funcs.c 1.27 2/22/94 Copyright Insignia Solutions Ltd."; +#endif + +/* Forward Declarations */ + +/* External Declarations */ +IMPORT void dma_lim_setup IPT0(); +IMPORT void host_get_access_key IPT1(unsigned short *, access_key); + +#if defined(A2CPU) && defined(DELTA) +IMPORT void reset_delta_data_structures IPT0(); +#endif /* A2CPU && DELTA */ + +/* Local Variables */ +static short map_on_return[MAX_NO_PAGES]; /* list of pages to be */ + /* mapped on return from func 23*/ + +static unsigned short segment68, /* segment address of BOP 0x68 */ + offset68; /* offset address of BOP 0x68 */ + +static boolean disabled = FALSE; /* flag used to disable funcs. */ + /* 26, 28 and 30 */ + +static unsigned short alt_map_segment, /* segment address of map array */ + alt_map_offset; /* offset of map array */ + /* in function 28 */ + +#ifndef NTVDM +static boolean set_called; /* flag to indicate if the 'set'*/ + /* sub-function has been called */ + /* in function 28 */ + +#endif + +#ifndef PROD +static FILE *fp; +static boolean trace_flag = FALSE; +#endif + +/* Internal Function Declarations */ + +LOCAL void Get_Status(); +LOCAL void Get_Page_Frame_Address(); +LOCAL void Get_Unallocated_Page_Count(); +LOCAL void Allocate_Pages(); +LOCAL void Map_Unmap_Handle_Pages(); +LOCAL void Deallocate_Pages(); +LOCAL void Get_Version(); +LOCAL void Save_Page_Map(); +LOCAL void Restore_Page_Map(); +LOCAL void Reserved(); +LOCAL void Get_Handle_Count(); +LOCAL void Get_Handle_Pages(); +LOCAL void Get_All_Handle_Pages(); +LOCAL void Get_Set_Page_Map(); +LOCAL void Get_Set_Partial_Page_Map(); +LOCAL void Map_Unmap_Multiple_Handle_Pages(); +LOCAL void Reallocate_Pages(); +LOCAL void Get_Set_Handle_Attribute(); +LOCAL void Get_Set_Handle_Name(); +LOCAL void Get_Handle_Directory(); +LOCAL void Alter_Page_Map_And_Jump(); +LOCAL void Alter_Page_Map_And_Call(); +LOCAL void Move_Exchange_Memory_Region(); +LOCAL void Get_Mappable_Physical_Address_Array(); +LOCAL void Get_Hardware_Configuration_Array(); +LOCAL void Allocate_Raw_Pages(); +LOCAL void Alternate_Map_Register_Support(); +LOCAL void Prepare_Expanded_Memory_HW_For_Warm_Boot(); +LOCAL void Enable_Disable_OSE_Function_Set_Functions(); +LOCAL void Increment_Address IPT4(unsigned short *,seg_or_page, + unsigned short *,offset, + unsigned long, increment_by, + unsigned char, memory_type); +#ifndef PROD +LOCAL void Start_Trace(); +LOCAL void End_Trace(); +#endif + +void (*emm_func[]) () = { + Get_Status, + Get_Page_Frame_Address, + Get_Unallocated_Page_Count, + Allocate_Pages, + Map_Unmap_Handle_Pages, + Deallocate_Pages, + Get_Version, + Save_Page_Map, + Restore_Page_Map, + Reserved, + Reserved, + Get_Handle_Count, + Get_Handle_Pages, + Get_All_Handle_Pages, + Get_Set_Page_Map, + Get_Set_Partial_Page_Map, + Map_Unmap_Multiple_Handle_Pages, + Reallocate_Pages, + Get_Set_Handle_Attribute, + Get_Set_Handle_Name, + Get_Handle_Directory, + Alter_Page_Map_And_Jump, + Alter_Page_Map_And_Call, + Move_Exchange_Memory_Region, + Get_Mappable_Physical_Address_Array, + Get_Hardware_Configuration_Array, + Allocate_Raw_Pages, + Alternate_Map_Register_Support, + Prepare_Expanded_Memory_HW_For_Warm_Boot, + Enable_Disable_OSE_Function_Set_Functions +#ifndef PROD + ,Start_Trace, + End_Trace +#endif + }; + +#ifndef PROD +char *func_names[] = { + "Get_Status", + "Get_Page_Frame_Address", + "Get_Unallocated_Page_Count", + "Allocate_Pages", + "Map_Unmap_Handle_Pages", + "Deallocate_Pages", + "Get_Version", + "Save_Page_Map", + "Restore_Page_Map", + "Reserved", + "Reserved", + "Get_Handle_Count", + "Get_Handle_Pages", + "Get_All_Handle_Pages", + "Get_Set_Page_Map", + "Get_Set_Partial_Page_Map", + "Map_Unmap_Multiple_Handle_Pages", + "Reallocate_Pages", + "Get_Set_Handle_Attribute", + "Get_Set_Handle_Name", + "Get_Handle_Directory", + "Alter_Page_Map_And_Jump", + "Alter_Page_Map_And_Call", + "Move_Exchange_Memory_Region", + "Get_Mappable_Physical_Address_Array", + "Get_Hardware_Configuration_Array", + "Allocate_Raw_Pages", + "Alternate_Map_Register_Support", + "Prepare_Expanded_Memory_HW_For_Warm_Boot", + "Enable_Disable_OSE_Function_Set_Functions" +#ifndef PROD + ,"Start_Trace", + "End_Trace" +#endif + }; +#endif + +/* Defintion of this is non-standard */ + +#ifndef min +#define min(a,b) (((a)<(b)) ? (a) : (b)) +#endif + +/* +=========================================================================== + +FUNCTION : emm_io + +PURPOSE : This is THE top level call to the EMM + +RETURNED STATUS : none + +DESCRIPTION : uses a function jump table to call the appropriate + routine for each EMM function. The type of function is + encoded into the AH register + + +========================================================================= +*/ +GLOBAL void emm_io IFN0() + +{ + int func_num; + + if(getAH() >= MIN_FUNC_NO && getAH() <= MAX_FUNC_NO) { + + func_num = getAH() - MIN_FUNC_NO; + + sure_note_trace5(LIM_VERBOSE, "func %s - AX %#x BX %#x CX %#x DX %#x ", + func_names[func_num],getAX(),getBX(),getCX(),getDX()); + +#ifdef EMM_DEBUG + printf("emm_io entry: func=%s, AX=%x, BX=%x, CX=%x, DX=%x\n", + func_names[func_num],getAX(),getBX(),getCX(),getDX() + ); +#endif + (*emm_func[func_num])(); + +#ifdef EMM_DEBUG + printf("emm_io exit: AX=%x, BX=%x, CX=%x, DX=%x\n", + getAX(),getBX(),getCX(),getDX() + ); +#endif + + if (getAH() != SUCCESS) { + sure_note_trace5(LIM_VERBOSE, "func %s failed - AX %#x BX %#x CX %#x DX %#x\n", + func_names[func_num],getAX(),getBX(),getCX(),getDX()); + } else { + sure_note_trace5(LIM_VERBOSE, "func %s succeeded - AX %#x BX %#x CX %#x DX %#x\n", + func_names[func_num],getAX(),getBX(),getCX(),getDX()); + } + + } else { + sure_note_trace1(LIM_VERBOSE,"Bad LIM call %#x\n", getAH()); + setAH(BAD_FUNC_CODE); + } + +} + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_INIT.seg" +#endif + +/* +=========================================================================== + +FUNCTION : emm_init + +PURPOSE : This routine is called from the driver to pass back + the address of the bop 68 (return_from_call) call and + to find out how many pages have been installed + +RETURNED STATUS : none + +DESCRIPTION : DS:DX contains the segment:offset of the bop68 call + the number of pages is returned in BX + +========================================================================= +*/ + + +GLOBAL void emm_init IFN0() + +{ + short total_pages; + +#ifdef GISP_SVGA + /* + * Check whether LIM is possible. If it isn't (because the page + * frame's already been used for the ROMs) + * warn the user, and bail out. + */ + + if (LimBufferInUse()) { + host_error(EG_NO_ROOM_FOR_LIM, ERR_CONT | ERR_QUIT, ""); + setBX((word)0); /* return error to driver */ + return; + } +#endif /* GISP_SVGA */ + +#ifdef SUN_VA + half_word emm_all[256]; + half_word *cptr; + half_word temp; + int i; + int found_mb = FALSE; +#endif + +#if defined(SUN_VA) || defined(NTVDM) + SHORT limSize, backFill; +#endif + + segment68 = getDS(); + offset68 = getDX(); + +#ifdef SUN_VA + + /* + * config.sys command line pointer is passed in the DI:DX registers + from the driver. + */ + + ea = effective_addr(getDI(), getCX()); + + i = 0; + do{ + sas_load(ea + i, &temp); + emm_all[i] = temp; + if (temp == '/'){ + found_mb = TRUE; + cptr = &emm_all[i+1]; /* point to digit after flag */ + } + i++; + } while ( (temp != NULL) && (temp != NL) && (temp != CR)); + emm_all[i-1] = NULL; /* In cased it is not NULL */ + + + /* + * Search for #MB of EMM requested + */ + + if ((found_mb == TRUE) && isdigit(*cptr) ) { + temp = atoi(cptr); + } else { /* EMM size not specified */ + temp = 2; /* default to 2MB */ + } + + /* + * Initialise the LIM + * + */ + if (limSize = (SHORT)config_inquire(C_LIM_SIZE, NULL)){ + backFill = 640; /* We will always have at least 640k */ + limSize--; /* Subtract 1M of regular DOS memory */ + /* + * Check that we have enough raw memory for the EMM request. + * If not, set to the available memory size. + */ + if ( temp <= limSize) + limSize = temp; + + while (init_expanded_memory(limSize, backFill) != SUCCESS ) + { + free_expanded_memory(); + host_error(EG_EXPANDED_MEM_FAILURE, ERR_QU_CO, NULL); + } + } + +#endif /* SUN_VA */ +#ifdef NTVDM /* Similar to SUN_VA but without command line sizing */ + if ((limSize = (SHORT)config_inquire(C_LIM_SIZE, NULL)) && get_no_phys_pages()) + { + backFill = 640; + if (init_expanded_memory(limSize, backFill) == FAILURE) + { + if (get_total_pages() == (short)0xffff) /* config error */ + { + setBX((word)0xffff); /* return error to driver */ + return; + } + else + { /* out of memory */ + setBX((word)0); /* return error to driver */ + return; + } + } + } + +#endif /* NTVDM */ + + total_pages = get_total_pages(); + setBX(total_pages); + + /* Let the rest of SoftPC know that Expanded Memory is present + * and active + */ + if( total_pages ) + { + dma_lim_setup(); +#if defined(A2CPU) && defined(DELTA) + reset_delta_data_structures(); +#endif /* A2CPU && DELTA */ + } + return; +} + + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_LIM.seg" +#endif + +/* +=========================================================================== + +FUNCTION : Get_Status + +PURPOSE : Returns the status indicating whether the memory manager + has been initialised successfuly + +RETURNED STATUS : in AH register + SUCCESS - everything OK + EMM_HW_ERROR - memory manager not initialised successfuly + +DESCRIPTION : checks the number of pages available + +========================================================================= +*/ +LOCAL void Get_Status IFN0() +{ + if(get_total_pages() == 0) + setAH(EMM_HW_ERROR); + else + setAH(SUCCESS); + + return; +} + +/* +=========================================================================== + +FUNCTION : Get_Page_Frame_Address + +PURPOSE : Returns the segment address where the page frame is + located + +RETURNED STATUS : in AH register + SUCCESS - Allocation successful + +DESCRIPTION : + +========================================================================= +*/ +LOCAL void Get_Page_Frame_Address IFN0() +{ + setBX(get_base_address()); + setAH(SUCCESS); + + return; +} + +/* +=========================================================================== + +FUNCTION : Get_Unallocated_Page_Count + +PURPOSE : Returns the number of unallocated (available) expanded + memory pages and the total number of pages + +RETURNED STATUS : in AH register + SUCCESS - Allocation successful + +DESCRIPTION : + +========================================================================= +*/ +LOCAL void Get_Unallocated_Page_Count IFN0() +{ + setBX(get_unallocated_pages()); + setDX(get_total_pages()); + setAH(SUCCESS); + + return; +} + +/* +=========================================================================== + +FUNCTION : Allocate_Pages + +PURPOSE : Allocates a number of Expanded Memory Pages to the next + available handle number + +RETURNED STATUS : in AH register + SUCCESS - Allocation successful + NOT_ENOUGH_PAGES - not enough pages in the system + NO_MORE_PAGES - not enough free pages available + NO_MORE_HANDLES - no more free handles available + EMM_HW_ERROR - memory allocation error + +DESCRIPTION : + +========================================================================= +*/ +LOCAL void Allocate_Pages IFN0() +{ + short handle_no, + no_of_pages, /* no of pages to be allocated */ + i, /* loop counter */ + EM_page_no; /* Expanded Memory page number */ + + no_of_pages = getBX(); + if(get_total_open_handles() >= get_total_handles()) + { + setAH(NO_MORE_HANDLES); + return; + } + if(no_of_pages > get_total_pages()) + { + setAH(NOT_ENOUGH_PAGES); + return; + } + if(no_of_pages > get_unallocated_pages()) + { + setAH(NO_MORE_PAGES); + return; + } + if((handle_no = get_new_handle(no_of_pages)) == FAILURE) + { + setAH(EMM_HW_ERROR); + return; + } + set_no_pages(handle_no, no_of_pages); + + for(i=0; i= get_no_phys_pages()) + { + setAH(BAD_PHYS_PAGE); + return; + } + no_of_pages = get_no_pages(handle_no); + if((logical_page_no < -1) || (logical_page_no >= no_of_pages)) + { + setAH(BAD_LOG_PAGE); + return; + } + /* + * If you get to here, all parameters must be ok - so start mapping + */ + if(logical_page_no == -1) + { + /* + * Unmapping required + */ + if(unmap_page(physical_page_no) != SUCCESS) + { + setAH(EMM_HW_ERROR); + return; + } + } + else + { + /* + * Mapping required + */ + EM_page_no = get_EMpage_no(handle_no, logical_page_no); + if(map_page(EM_page_no, physical_page_no) != SUCCESS) + { + setAH(EMM_HW_ERROR); + return; + } + } + setAH(SUCCESS); + return; +} + +/* +=========================================================================== + +FUNCTION : Deallocate_Pages + +PURPOSE : Deallocates all pages assigned to the specified handle + number, freeing them for further use, also frees the handle + number itself. + +RETURNED STATUS : in AH register + SUCCESS - Deallocation successful + BAD_HANDLE - couldn't find specified handle + MAP_SAVED - there is a map context saved in this handle + EMM_HW_ERROR - unable to free page or memory + +DESCRIPTION : + +========================================================================= +*/ +LOCAL void Deallocate_Pages IFN0() + +{ + short handle_no, + no_of_pages, /* no of pages in handle */ + i, /* loop counter */ + EM_page_no; /* Expanded Memory page number */ + + + handle_no = getDX(); + + if (!handle_ok(handle_no)) + { + setAH(BAD_HANDLE); + return; + } + if(map_saved(handle_no)) + { + setAH(MAP_SAVED); + return; + } + /* + * Free pages + */ + no_of_pages = get_no_pages(handle_no); + for(i = 0; i < no_of_pages; i++) + { + EM_page_no = get_EMpage_no(handle_no, i); + if (free_page(EM_page_no) != SUCCESS) + { + setAH(EMM_HW_ERROR); + return; + } + } + /* + * free handle + */ + if (handle_no != 0) /* reserved handle no */ + if (free_handle(handle_no) != SUCCESS) + { + setAH(EMM_HW_ERROR); + return; + } + + setAH(SUCCESS); + + return; +} + +/* +=========================================================================== + +FUNCTION : Get Version + +PURPOSE : Returns the version number of the memory manager software + +RETURNED STATUS : in AH register + SUCCESS - returned successfuly + +DESCRIPTION : + +========================================================================= +*/ +LOCAL void Get_Version IFN0() +{ + setAL(VERSION); + setAH(SUCCESS); + + return; +} + +/* +=========================================================================== + +FUNCTION : Save_Page_Map + +PURPOSE : Saves the contents of the page mapping registers + + +RETURNED STATUS : in AH register + SUCCESS - Mapping context saved successfuly + BAD_HANDLE - couldn't find specified handle + MAP_IN_USE - mapping already saved for this handle + +DESCRIPTION : + +========================================================================= +*/ +LOCAL void Save_Page_Map IFN0() +{ + short handle_no; + + handle_no = getDX(); + + + if(!handle_ok(handle_no)) + { + setAH(BAD_HANDLE); + return; + } + if(map_saved(handle_no)) + { + setAH(MAP_IN_USE); + return; + } + + save_map(handle_no, 0, 0, 0, 0); + + setAH(SUCCESS); + + return; +} + +/* +=========================================================================== + +FUNCTION : Restore_Page_Map + +PURPOSE : restores the mapping context associated with a particular + handle + This function only restores the map for the 4 physical pages that existed in LIM 3. + +RETURNED STATUS : in AH register + SUCCESS - mapping restored successfuly + BAD_HANDLE - couldn't find specified handle + NO_MAP - No map has been saved for this handle + EMM_HW_ERROR - error occurred in mapping or unmapping + +DESCRIPTION : + +========================================================================= +*/ +LOCAL void Restore_Page_Map IFN0() +{ + short handle_no, + pages_out[MAX_NO_PAGES], /* pages to map out */ + pages_in[MAX_NO_PAGES], /* pages to map in */ + i; /* loop counter */ + + handle_no = getDX(); + + + if(!handle_ok(handle_no)) + { + setAH(BAD_HANDLE); + return; + } + if(!map_saved(handle_no)) + { + setAH(NO_MAP); + return; + } + + restore_map(handle_no, 0, 0, pages_out, pages_in); + + for(i = 0; i < 4; i++) /* Only do the 4 pages supported by EMS 3 !! */ + { + if(pages_out[i] != EMPTY) + if(unmap_page(i) != SUCCESS) + { + setAH(EMM_HW_ERROR); + return; + } + if(pages_in[i] != EMPTY) + if(map_page(pages_in[i], i) != SUCCESS) + { + setAH(EMM_HW_ERROR); + return; + } + } + + setAH(SUCCESS); + return; +} + +/* +=========================================================================== + +FUNCTION : + +PURPOSE : + + +RETURNED STATUS : in AH register + SUCCESS - + +DESCRIPTION : + +========================================================================= +*/ +LOCAL void Reserved IFN0() +{ + setAH(BAD_FUNC_CODE); + return; +} + +/* +=========================================================================== + +FUNCTION : Get_Handle_Count + +PURPOSE : Returns the number of open EMM handles + + +RETURNED STATUS : in AH register + SUCCESS - number returned successfuly + +DESCRIPTION : + +========================================================================= +*/ +LOCAL void Get_Handle_Count IFN0() +{ + setBX(get_total_open_handles()); + + setAH(SUCCESS); + return; +} + +/* +=========================================================================== + +FUNCTION : Get_Handle_Pages + +PURPOSE : returns the number of pages assigned to a particular + handle + +RETURNED STATUS : in AH register + SUCCESS - Page count returned successfuly + BAD_HANDLE - couldn't find specified handle + +DESCRIPTION : + +========================================================================= +*/ +LOCAL void Get_Handle_Pages IFN0() +{ + short handle_no; + + handle_no = getDX(); + if (!handle_ok(handle_no)) + { + setAH(BAD_HANDLE); + return; + } + + setBX(get_no_pages(handle_no)); + setAH(SUCCESS); + + return; +} + +/* +=========================================================================== + +FUNCTION : Get_All_Handle_Pages + +PURPOSE : Returns a list of all open handles and the number of + pages assigned to each handle + + +RETURNED STATUS : in AH register + SUCCESS - Everything ok + +DESCRIPTION : + +========================================================================= +*/ +LOCAL void Get_All_Handle_Pages IFN0() +{ + unsigned short segment, /* segment address of position */ + /* to return data to */ + offset; /* offset within segment */ + short no_of_handles, /* no. of open handles */ + no_of_pages, /* no of pages in each handle */ + i, /* Loop counter */ + handle_no; + + segment = getES(); + offset = getDI(); + + no_of_handles = get_total_open_handles(); + handle_no = 0; + + for (i = 0; i < no_of_handles; i++) + { + while(!handle_ok(handle_no)) + handle_no++; + no_of_pages = get_no_pages(handle_no); + + write_intel_word(segment, offset, handle_no); + offset += 2; + write_intel_word(segment, offset, no_of_pages); + offset += 2; + handle_no++; + } + setBX(no_of_handles); + setAH(SUCCESS); + + return; +} + + +/* +=========================================================================== + +FUNCTION : Get_Set_Page_Map + +PURPOSE : saves mapping context in a user supplied array and restores + a previously saved context from a given array + + +RETURNED STATUS : in AH register + SUCCESS - Everything ok + BAD_SUB_FUNC - Invalid sub-function + BAD_MAP - The contents of the map are a load of cak + +DESCRIPTION : + +========================================================================= +*/ +LOCAL void Get_Set_Page_Map IFN0() +{ + unsigned short src_segment, /* segment address of src array */ + src_offset, /* offset of source array */ + dst_segment, /* segment address of dst array */ + dst_offset; /* offset of destination array */ + unsigned char sub_func; /* sub-function code */ + short pages_out[MAX_NO_PAGES],/* pages to map out */ + pages_in[MAX_NO_PAGES], /* pages to map in */ + no_phys_pages, /* no. of phys. pages available */ + i; /* loop counter */ + + sub_func = getAL(); + switch(sub_func) + { + case 0: + case 2: + dst_segment = getES(); + dst_offset = getDI(); + save_map(-1, dst_segment, dst_offset, 0, 0); + if(sub_func == 0 ) + break; + case 1: + src_segment = getDS(); + src_offset = getSI(); + if(restore_map(-1 , src_segment, src_offset, pages_out, pages_in) != SUCCESS) + { + setAH(BAD_MAP); + return; + } + + no_phys_pages = get_no_phys_pages(); + for(i = 0; i < no_phys_pages; i++) + { + if(pages_out[i] != EMPTY) + if(unmap_page(i) != SUCCESS) + { + setAH(EMM_HW_ERROR); + return; + } + if(pages_in[i] != EMPTY) + if(map_page(pages_in[i], i) != SUCCESS) + { + setAH(EMM_HW_ERROR); + return; + } + } + break; + + case 3: setAL((unsigned char)get_map_size()); + break; + + + default: setAH(BAD_SUB_FUNC); + return; + } + + setAH(SUCCESS); + return; +} + +/* +=========================================================================== + +FUNCTION : Get_Set_Partial_Page_map + +PURPOSE : Only saves or restores part of a complete page map + as specified by a user supplied array + + +RETURNED STATUS : in AH register + SUCCESS - Everything ok + BAD_SEGMENT - one of the specified segments is incorrect + BAD_SUB_FUNC - Invalid sub-function + BAD_MAP - The contents of the map are a load of cak + +DESCRIPTION : Note in this implementation the size of array used for + storing the partial mapping context is the same as for + storing a full context as the pages that are'nt specified + are marked in the array as being empty + +========================================================================= +*/ +LOCAL void Get_Set_Partial_Page_Map IFN0() +{ + unsigned short src_segment, /* segment address of src array */ + src_offset, /* offset of source array */ + dst_segment, /* segment address of dst array */ + dst_offset; /* offset of destination array */ + unsigned char sub_func; /* sub-function code */ + short pages_out[MAX_NO_PAGES],/* pages to map out */ + pages_in[MAX_NO_PAGES], /* pages to map in */ + no_phys_pages, /* no. of phys. pages available */ + i; /* loop counter */ + + sub_func = getAL(); + switch(sub_func) + { + case 0: dst_segment = getES(); + dst_offset = getDI(); + src_segment = getDS(); + src_offset = getSI(); + if(save_map(-2, dst_segment, dst_offset, src_segment, src_offset) != SUCCESS) + { + setAH(BAD_PHYS_PAGE); + return; + } + break; + + case 1: src_segment = getDS(); + src_offset = getSI(); + if(restore_map(-1 , src_segment, src_offset, pages_out, pages_in) != SUCCESS) + { + setAH(BAD_MAP); + return; + } + + no_phys_pages = get_no_phys_pages(); + for(i = 0; i < no_phys_pages; i++) + { + if(pages_out[i] != EMPTY) + if(unmap_page(i) != SUCCESS) + { + setAH(EMM_HW_ERROR); + return; + } + if(pages_in[i] != EMPTY) + if(map_page(pages_in[i], i) != SUCCESS) + { + setAH(EMM_HW_ERROR); + return; + } + } + break; + + case 2: setAL((unsigned char)get_map_size()); + break; + + + default: setAH(BAD_SUB_FUNC); + return; + } + setAH(SUCCESS); + return; +} + +/* +=========================================================================== + +FUNCTION : Map_Unmap_Multiple_Handle_Pages + +PURPOSE : maps and umaps the requested Expanded Memory pages into + and out of Intel physical address space + +RETURNED STATUS : in AH register + SUCCESS - Mapping/Unmapping successful + BAD_HANDLE - couldn't find specified handle + BAD_LOG_PAGE - invalid logical page number + BAD_PHYS_PAGE - invalid physical page number + BAD_SUB_FUNC - invalid sub-function code + EMM_HW_ERROR - unable to map/unmap for some unspecified + reason + +DESCRIPTION : + +========================================================================= +*/ +LOCAL void Map_Unmap_Multiple_Handle_Pages IFN0() +{ + unsigned short segment, /* segment address of map array */ + offset, /* offset address of map array */ + value; /* segment address or page no. */ + + short handle_no, + logical_page_no, /* page no. within handle */ + EM_page_no, /* Expanded memory page */ + no_of_pages, /* No. of pages in handle */ + no_phys_pages, /* no. of phys. pages available */ + pages_to_map, /* total no of pages to map */ + i; /* loop counter */ + + unsigned char + sub_func, /* sub-function code */ + physical_page_no; + + sub_func = getAL(); + if(sub_func > 1) + { + setAH(BAD_SUB_FUNC); + return; + } + handle_no = getDX(); + if(!handle_ok(handle_no)) + { + setAH(BAD_HANDLE); + return; + } + no_of_pages = get_no_pages(handle_no); + pages_to_map = getCX(); + segment = getDS(); + offset = getSI(); + + for(i = 0; i < pages_to_map; i++) + { + read_intel_word(segment, offset, (word *)&logical_page_no); + offset += 2; + read_intel_word(segment, offset, &value); + offset += 2; + no_phys_pages = get_no_phys_pages(); + if(sub_func == 1) + { + physical_page_no = 0; + do + if(value == get_page_seg(physical_page_no)) + break; + while(++physical_page_no < no_phys_pages); + } + else + physical_page_no = (unsigned char)value; + + if(physical_page_no >= no_phys_pages) + { + setAH(BAD_PHYS_PAGE); + return; + } + if((logical_page_no < -1) || (logical_page_no >= no_of_pages)) + { + setAH(BAD_LOG_PAGE); + return; + } + /* + * If you get to here, all parameters must be ok - so start mapping + */ + if(logical_page_no == -1) + { + /* + * Unmapping required + */ + if(unmap_page(physical_page_no) != SUCCESS) + { + setAH(EMM_HW_ERROR); + return; + } + } + else + { + /* + * Mapping required + */ + EM_page_no = get_EMpage_no(handle_no, logical_page_no); + if(map_page(EM_page_no, physical_page_no) != SUCCESS) + { + setAH(EMM_HW_ERROR); + return; + } + } + } + setAH(SUCCESS); + return; +} + +/* +=========================================================================== + +FUNCTION : Reallocate_Pages + +PURPOSE : Changes the number of pages assigned to a handle + + +RETURNED STATUS : in AH register + SUCCESS - Everything ok + BAD_HANDLE - invalid handle number + NOT_ENOUGH_PAGES - Not enough pages in the system + NO_MORE_PAGES - not enough free pages available + EMM_HW_ERROR - memory allocation error + +DESCRIPTION : + +========================================================================= +*/ +LOCAL void Reallocate_Pages IFN0() +{ + short handle_no, + EM_page_no, /* Expanded Memory page number */ + old_page_count, /* no. of pages in handle */ + new_page_count, /* required pages in handle */ + i; /* loop counter */ + + handle_no = getDX(); + if(!handle_ok(handle_no)) + { + setAH(BAD_HANDLE); + return; + } + new_page_count = getBX(); + if(new_page_count > get_total_pages()) + { + setAH(NOT_ENOUGH_PAGES); + return; + } + old_page_count = get_no_pages(handle_no); + if((new_page_count - old_page_count) > get_unallocated_pages()) + { + setAH(NO_MORE_PAGES); + return; + } + if(new_page_count > old_page_count) + { + if(reallocate_handle(handle_no, old_page_count, new_page_count) != SUCCESS) + { + setAH(EMM_HW_ERROR); + return; + } + set_no_pages(handle_no, new_page_count); + for(i = old_page_count; i < new_page_count; i++) + { + if((EM_page_no = alloc_page()) < SUCCESS) + { + setAH(EMM_HW_ERROR); + return; + } + set_EMpage_no(handle_no, i, EM_page_no); + } + } + else if(new_page_count < old_page_count) + { + set_no_pages(handle_no, new_page_count); + for(i = new_page_count; i < old_page_count; i++) + { + EM_page_no = get_EMpage_no(handle_no, i); + if(free_page(EM_page_no) != SUCCESS) + { + setAH(EMM_HW_ERROR); + return; + } + } + } + + setBX(new_page_count); + setAH(SUCCESS); + return; +} + +/* +=========================================================================== + +FUNCTION : Get_Set_Handle_Attribute + +PURPOSE : + + +RETURNED STATUS : in AH register + SUCCESS - everything ok (Al set to 0 also) + NOT_SUPPORTED - this function not supported + BAD_SUB_FUNC - invalid sub_function + +DESCRIPTION : Non - volatile handles are currently not supported + +========================================================================= +*/ +LOCAL void Get_Set_Handle_Attribute IFN0() +{ + unsigned char sub_func; /* sub_function code */ + + sub_func = getAL(); + if(sub_func > 2) + { + setAH(BAD_SUB_FUNC); + return; + } + if(sub_func < 2) + { + setAH(NOT_SUPPORTED); + return; + } + /* + * Setting AL to 0 here indicates support of volatile handles only + */ + + setAL(0); + setAH(SUCCESS); + return; +} + +/* +=========================================================================== + +FUNCTION : Get_Set_Handle_Name + +PURPOSE : Assigns or retrieves a name to or from a given handle + + +RETURNED STATUS : in AH register + SUCCESS - Everything ok + BAD_HANDLE - Invalid handle + BAD_SUB_FUNC -Invalid sub-function code + NAME_EXISTS - Name already exists in another handle + +DESCRIPTION : + +========================================================================= +*/ +LOCAL void Get_Set_Handle_Name IFN0() +{ + unsigned char sub_func; /* sub-function code */ + + short handle_no, + no_of_handles, /* no of open(allocated) handles*/ + tmp_hndl_no, /* temp. variable for handle no */ + i; /* loop counter */ + + unsigned short segment, /* segment address of name */ + offset; /* offset address of name */ + + char name[NAME_LENGTH], /* array for holding name */ + *name_ptr; /* pointer to existing names */ + + sub_func = getAL(); + if(sub_func > 1) + { + setAH(BAD_SUB_FUNC); + return; + } + handle_no = getDX(); + if(!handle_ok(handle_no)) + { + setAH(BAD_HANDLE); + return; + } + if(sub_func == 0) + { + segment = getES(); + offset = getDI(); + name_ptr = get_name(handle_no); + write_intel_byte_string(segment, offset, (host_addr)name_ptr, NAME_LENGTH); + } + else if(sub_func == 1) + { + segment = getDS(); + offset = getSI(); + read_intel_byte_string(segment, offset, (host_addr)name, NAME_LENGTH); + /* + * check all existing names + */ + no_of_handles = get_total_open_handles(); + tmp_hndl_no = 0; + for(i = 0; i < no_of_handles; i++) + { + while(!handle_ok(tmp_hndl_no)) + tmp_hndl_no++; + name_ptr = get_name(tmp_hndl_no); + + if(strncmp(name, name_ptr, NAME_LENGTH) == 0) + { + setAH(NAME_EXISTS); + return; + } + tmp_hndl_no++; + } + /* + * If you get here - name must be ok + */ + set_name(handle_no, name); + } + + setAH(SUCCESS); + return; +} + +/* +=========================================================================== + +FUNCTION : Get_Handle_Directory + +PURPOSE : Returns a list of handles and their names + + +RETURNED STATUS : in AH register + SUCCESS - Everything ok + BAD_SUB_FUNC - Invalid sub-function + HANDLE_NOT_FOUND - could not find handle with specified name + +DESCRIPTION : + +========================================================================= +*/ +LOCAL void Get_Handle_Directory IFN0() +{ + unsigned char sub_func; /* sub-function code */ + unsigned short segment, /* segment address of name array*/ + offset; /* offset of name array */ + short handle_no, + no_of_handles, /* no. of open handles */ + i; /* loop counter */ + char *name_ptr, /* pointer to name */ + name[NAME_LENGTH]; /* name to search for */ + + sub_func = getAL(); + switch(sub_func) + { + case 0: segment = getES(); + offset = getDI(); + no_of_handles = get_total_open_handles(); + handle_no = 0; + for(i = 0; i < no_of_handles; i++) + { + while(!handle_ok(handle_no)) + handle_no++; + name_ptr = get_name(handle_no); + write_intel_word(segment, offset, handle_no); + offset += 2; + write_intel_byte_string(segment, offset, (host_addr)name_ptr, NAME_LENGTH); + offset += NAME_LENGTH; + handle_no++; + } + setAL((unsigned char)no_of_handles); + break; + + case 1: segment = getDS(); + offset = getSI(); + read_intel_byte_string(segment, offset, (host_addr)name, NAME_LENGTH); + no_of_handles = get_total_open_handles(); + handle_no = 0; + for(i = 0; i < no_of_handles; i++) + { + while(!handle_ok(handle_no)) + handle_no++; + name_ptr = get_name(handle_no); + + if(strncmp(name, name_ptr, NAME_LENGTH) == 0) + break; + handle_no++; + } + if(i >= no_of_handles) + { + setAH(HANDLE_NOT_FOUND); + return; + } + setDX(handle_no); + break; + + case 2: setBX(get_total_handles()); + break; + + default: setAH(BAD_SUB_FUNC); + return; + } + setAH(SUCCESS); + return; +} + +/* +=========================================================================== + +FUNCTION : Alter_Page_Map_And_Jump + +PURPOSE : Map a selection of pages and jump to a new address + + +RETURNED STATUS : in AH register + SUCCESS - Everything ok + BAD_HANDLE - Couldn't find specified handle + BAD_SUB_FUNC - Invalid sub-function code + BAD_LOG_PAGE - Invalid logical page number + BAD_PHYS_PAGE - Invalid physical page number + EMM_HW_ERROR - Unable to map or unmap for some undefined + reason + +DESCRIPTION : + +========================================================================= +*/ + +LOCAL void Alter_Page_Map_And_Jump IFN0() +{ + short handle_no, + no_of_pages, /* pages assigned to handle */ + no_phys_pages, /* no. of phys. pages available */ + EM_page_no, /* Expanded memory page no. */ + i; /* Loop counter */ + + unsigned short segment, /* segment of data structure */ + offset, /* offset of data structure */ + jmp_segment, /* segment of address to jump to*/ + jmp_offset, /* offset of address to jump to */ + map_segment, /* segment of mapping data */ + map_offset, /* offset of mapping data */ + logical_page_no,/* number of logical page */ + value; /* segment/page no. (AL=0 or 1) */ + + unsigned char sub_func, /* sub-function code */ + pages_to_map, /* no of pages to be mapped in */ + physical_page_no; /* number of physical page */ + + handle_no = getDX(); + if(!handle_ok(handle_no)) + { + setAH(BAD_HANDLE); + return; + } + sub_func = getAL(); + if(sub_func > 1) + { + setAH(BAD_SUB_FUNC); + return; + } + segment = getDS(); + offset = getSI(); + + read_intel_word(segment, offset, &jmp_offset); + offset += 2; + read_intel_word(segment, offset, &jmp_segment); + offset += 2; + read_intel_byte(segment, offset, &pages_to_map); + offset++; + read_intel_word(segment, offset, &map_offset); + offset += 2; + read_intel_word(segment, offset, &map_segment); + offset += 2; + + no_of_pages = get_no_pages(handle_no); + for(i = 0; i < pages_to_map; i++) + { + read_intel_word(map_segment, map_offset, &logical_page_no); + map_offset += 2; + if(logical_page_no >= no_of_pages) + { + setAH(BAD_LOG_PAGE); + return; + } + read_intel_word(map_segment, map_offset, &value); + map_offset += 2; + + no_phys_pages = get_no_phys_pages(); + if(sub_func == 1) + { + physical_page_no = 0; + do + if(value == get_page_seg(physical_page_no)) + break; + while(++physical_page_no < no_phys_pages); + } + else + physical_page_no = (unsigned char)value; + + if(physical_page_no >= no_phys_pages) + { + setAH(BAD_PHYS_PAGE); + return; + } + + EM_page_no = get_EMpage_no(handle_no, logical_page_no); + if(map_page(EM_page_no, physical_page_no) != SUCCESS) + { + setAH(EMM_HW_ERROR); + return; + } + } + /* + * Push flags and segment:offset of target address onto stack + * to enable iret in driver to transfer control + */ + push_word((word)getSTATUS()); + push_word(jmp_segment); + push_word(jmp_offset); + + setAH(SUCCESS); + return; +} + +/* +=========================================================================== + +FUNCTION : Alter_Page_Map_And_Call + return_from_call + +PURPOSE : Map a selection of pages and transfer control to a new + address. Upon return map in a different set of pages + + +RETURNED STATUS : in AH register + SUCCESS - Everything ok + BAD_HANDLE - Couldn't find specified handle + BAD_SUB_FUNC - Invalid sub-function code + BAD_LOG_PAGE - Invalid logical page number + BAD_PHYS_PAGE - Invalid physical page number + EMM_HW_ERROR - Unable to map or unmap for some undefined + reason + +DESCRIPTION : The return is handled by loading the segment and offset + of the BOP 0x68 call onto the stack. This BOP will initiate + a call to 'return_from_call()' which will handle the + remapping. + +========================================================================= +*/ +LOCAL void Alter_Page_Map_And_Call IFN0() +{ + short handle_no, + no_of_pages, /* pages assigned to handle */ + no_phys_pages, /* no. of phys. pages available */ + EM_page_no, /* Expanded memory page no. */ + i; /* Loop counter */ + + unsigned short segment, /* segment of data structure */ + offset, /* offset of data structure */ + call_segment, /* segment of address to jump to*/ + call_offset, /* offset of address to jump to */ + map_segment, /* segment of mapping data */ + map_offset, /* offset of mapping data */ + logical_page_no,/* number of logical page */ + value; /* segment/page no. (AL=0 or 1) */ + + unsigned char sub_func, /* sub-function code */ + pages_to_map, /* no of pages to be mapped in */ + physical_page_no; /* number of physical page */ + + sub_func = getAL(); + if(sub_func > 2) + { + setAH(BAD_SUB_FUNC); + return; + } + if(sub_func != 2) + { + handle_no = getDX(); + if(!handle_ok(handle_no)) + { + setAH(BAD_HANDLE); + return; + } + segment = getDS(); + offset = getSI(); + + read_intel_word(segment, offset, &call_offset); + offset += 2; + read_intel_word(segment, offset, &call_segment); + offset += 2; + read_intel_byte(segment, offset, &pages_to_map); + offset++; + read_intel_word(segment, offset, &map_offset); + offset += 2; + read_intel_word(segment, offset, &map_segment); + offset += 2; + + no_of_pages = get_no_pages(handle_no); + for(i = 0; i < pages_to_map; i++) + { + read_intel_word(map_segment, map_offset, &logical_page_no); + map_offset += 2; + if(logical_page_no >= no_of_pages) + { + setAH(BAD_LOG_PAGE); + return; + } + read_intel_word(map_segment, map_offset, &value); + map_offset += 2; + + no_phys_pages = get_no_phys_pages(); + if(sub_func == 1) + { + physical_page_no = 0; + do + if(value == get_page_seg(physical_page_no)) + break; + while(++physical_page_no < no_phys_pages); + } + else + physical_page_no = (unsigned char)value; + + if(physical_page_no >= no_phys_pages) + { + setAH(BAD_PHYS_PAGE); + return; + } + + EM_page_no = get_EMpage_no(handle_no, logical_page_no); + if(map_page(EM_page_no, physical_page_no) != SUCCESS) + { + setAH(EMM_HW_ERROR); + return; + } + } + /* + * Now set up mapping data for return + * read new segment, offset and pages to map data + */ + + read_intel_byte(segment, offset, &pages_to_map); + offset++; + read_intel_word(segment, offset, &map_offset); + offset += 2; + read_intel_word(segment, offset, &map_segment); + offset += 2; + + for(i = 0; i < no_phys_pages; map_on_return[i++] = EMPTY); + + for(i = 0; i < pages_to_map; i++) + { + read_intel_word(map_segment, map_offset, &logical_page_no); + map_offset += 2; + if(logical_page_no >= no_of_pages) + { + setAH(BAD_LOG_PAGE); + return; + } + read_intel_word(map_segment, map_offset, &value); + map_offset += 2; + + if(sub_func == 1) + { + physical_page_no = 0; + do + if(value == get_page_seg(physical_page_no)) + break; + while(++physical_page_no < no_phys_pages); + } + else + physical_page_no = (unsigned char)value; + + if(physical_page_no >= no_phys_pages) + { + setAH(BAD_PHYS_PAGE); + return; + } + + EM_page_no = get_EMpage_no(handle_no, logical_page_no); + map_on_return[physical_page_no] = EM_page_no; + } + /* + * Push segment:offset of bop68 onto stack to trap far return + */ + push_word(segment68); + push_word(offset68); + /* + * Push flags and segment:offset of target address onto stack + * to enable iret in driver to transfer control + */ + push_word((word)getSTATUS()); + push_word(call_segment); + push_word(call_offset); + } + else /* if sub_func == 2 */ + setBX(10); + + setAH(SUCCESS); + return; +} + + +GLOBAL void return_from_call IFN0() + +{ + unsigned char page_no; /* physical page number */ + short no_phys_pages; /* no. of phys. pages available */ + + no_phys_pages = get_no_phys_pages(); + for(page_no = 0; page_no < no_phys_pages; page_no++) + { + if(map_on_return[page_no] != EMPTY) + if(map_page(map_on_return[page_no], page_no) != SUCCESS) + { + setAH(EMM_HW_ERROR); + return; + } + } + setAH(SUCCESS); + return; +} + +/* +=========================================================================== + +FUNCTION : Move_Exchange_Memory_Region + +PURPOSE : copies a region of memory from either, conventional or + expanded memory to either, conventional or expanded memory. + + +RETURNED STATUS : in AH register + SUCCESS - Everything ok + BAD_SUB_FUNC - Invalid sub-function code + BAD_HANDLE - couldn't find specified handle + BAD_LOG_PAGE - invalid logical page number + MOVE_MEM_OVERLAP - Source and destination regions overlap during move + XCHG_MEM_OVERLAP - Source and destination regions overlap during exchange + TOO_FEW_PAGES - Insufficient pages in handle for operation + OFFSET_TOO_BIG - Offsey exceeds size of page + LENGTH_GT_1M - Memory length to be moved exceeds 1 M byte + BAD_TYPE - Unsupported memory type + WRAP_OVER_1M - Attempt made to wrap around the 1 Mbyte address + EMM_HW_ERROR - Undefined error occurred during copying + +DESCRIPTION : type - uses a bit pattern, bit 0 represents destination, + bit 1 represents source, a set bit means expanded, a clear + bit means conventional memory + bit 2 represents exchange if set or move if it is clear + + e.g. 0 (0000) = move conventional to conventional + 1 (0001) = move conventional to expanded + 6 (0110) = exchange expanded to conventional + 7 (0111) = exchange expanded to expanded + +========================================================================= +*/ +LOCAL void Move_Exchange_Memory_Region IFN0() +{ + unsigned char sub_func, /* sub-function code */ + type, /* see description above */ + mem_type; /* type of src or dest memory */ + + unsigned short segment, /* segment address of structure */ + offset, /* offset address of structure */ + half_length, /* tmp store for reading length */ + src_offset, /* offset of source memory */ + src_seg_page, /* segment or page of src memory*/ + dst_offset, /* offset of destination memory */ + dst_seg_page; /* segment or page of dst memory*/ + + unsigned long + length, /* length of memory region */ + src_start, /* start of src within handle */ + src_end, /* end of src within handle */ + dst_start, /* start of dest within handle */ + dst_end, /* end of dest within handle */ + data_block_size,/* transfer data block size */ + bytes_available;/* no. bytes to end of handle */ + + short src_handle_no, /* source handle number */ + dst_handle_no, /* dest handle number */ + no_of_pages; /* no. of pages within handle */ + + boolean overlap; /* indicates a memory overlap */ + + + sub_func = getAL(); + if(sub_func > 1) + { + setAH(BAD_SUB_FUNC); + return; + } + type = sub_func << 2; + segment = getDS(); + offset = getSI(); + + read_intel_word(segment, offset, &half_length); + offset += 2; + length = half_length; + read_intel_word(segment, offset, &half_length); + offset += 2; + length += (((long)half_length) << 16); + if(length > 0x100000) + { + setAH(LENGTH_GT_1M); + return; + } + /* + * READ SOURCE DATA + */ + read_intel_byte(segment, offset, &mem_type); + offset++; + if(mem_type > 1) + { + setAH(BAD_TYPE); + return; + } + type |= (mem_type << 1); + read_intel_word(segment, offset, (word *)&src_handle_no); + offset += 2; + if(mem_type == 1) { + if(!handle_ok(src_handle_no)) + { + setAH(BAD_HANDLE); + return; + } + } + + read_intel_word(segment, offset, &src_offset); + offset += 2; + read_intel_word(segment, offset, &src_seg_page); + offset += 2; + if(mem_type == 1) + { + no_of_pages = get_no_pages(src_handle_no); + if(src_seg_page >= no_of_pages) + { + setAH(BAD_LOG_PAGE); + return; + } + if(src_offset >= EMM_PAGE_SIZE) + { + setAH(OFFSET_TOO_BIG); + return; + } + bytes_available = ((no_of_pages - src_seg_page + 1) * EMM_PAGE_SIZE) - src_offset; + if(length > bytes_available) + { + setAH(TOO_FEW_PAGES); + return; + } + } + else { + if((effective_addr(src_seg_page, src_offset) + length) >= 0x100000) + { + setAH(WRAP_OVER_1M); + return; + } + } + /* + * READ DESTINATION DATA + */ + read_intel_byte(segment, offset, &mem_type); + offset++; + if(mem_type > 1) + { + setAH(BAD_TYPE); + return; + } + type |= mem_type; + read_intel_word(segment, offset, (word *)&dst_handle_no); + offset += 2; + if(mem_type == 1) { + if(!handle_ok(dst_handle_no)) + { + setAH(BAD_HANDLE); + return; + } + } + + read_intel_word(segment, offset, &dst_offset); + offset += 2; + read_intel_word(segment, offset, &dst_seg_page); + offset += 2; + if(mem_type == 1) + { + no_of_pages = get_no_pages(dst_handle_no); + if(dst_seg_page >= no_of_pages) + { + setAH(BAD_LOG_PAGE); + return; + } + if(dst_offset >= EMM_PAGE_SIZE) + { + setAH(OFFSET_TOO_BIG); + return; + } + bytes_available = ((no_of_pages - dst_seg_page + 1) * EMM_PAGE_SIZE) - dst_offset; + if(length > bytes_available) + { + setAH(TOO_FEW_PAGES); + return; + } + } + else + if(((((unsigned long)dst_seg_page) << 4) + dst_offset + length) >= 0x100000) + { + setAH(WRAP_OVER_1M); + return; + } + /* + * Check for overlap - ( only on expanded to expanded cases ) + */ + overlap = FALSE; + if((type & 3) == 3) + if(src_handle_no == dst_handle_no) + { + /* + * calc start and end positions of src and dst + * within handle + */ + src_start = (src_seg_page * EMM_PAGE_SIZE) + src_offset; + src_end = src_start + length - 1; + dst_start = (dst_seg_page * EMM_PAGE_SIZE) + dst_offset; + dst_end = dst_start + length - 1; + if((dst_start <= src_end && dst_start >= src_start) || + (src_start <= dst_end && src_start >= dst_start)) + { + if(sub_func == 1) + { + setAH(XCHG_MEM_OVERLAP); + return; + } + else + overlap = TRUE; + } + } + /* + * If we get here everything is ok. Copy memory a page at a time, catering + * for the fact that expanded memory pages might not be contiguous and may be + * mapped into the intel address space. Remember that Intel memory may be + * treated as contiguous memory. So an Intel address need only be incremented + * if a copy spans more than one page of LIM memory. + */ + + while (length>0) { + int min_src, min_dst; + + min_src = (type & 2) ? min(EMM_PAGE_SIZE - src_offset, length) : length; + min_dst = (type & 1) ? min(EMM_PAGE_SIZE - dst_offset, length) : length; + + data_block_size = min(min_src, min_dst); + + if(copy_exchange_data(type, src_handle_no, src_seg_page, src_offset, + dst_handle_no, dst_seg_page, dst_offset, data_block_size) != SUCCESS) { + setAH(EMM_HW_ERROR); + return; + } + + Increment_Address(&src_seg_page, &src_offset, data_block_size, (type & 2)); + Increment_Address(&dst_seg_page, &dst_offset, data_block_size, (type & 1)); + length -= data_block_size; + + } + + if(overlap) + setAH(MOVE_MEM_OVERLAP); + else + setAH(SUCCESS); + + return; +} + +/* +=========================================================================== + +FUNCTION : Increment address + +PURPOSE : Increments an address, correctly catering for whether the address + is an Intel (conventional memory) address or a LIM (expanded memory) + address. + +RETURNED STATUS : None + +DESCRIPTION : + +========================================================================= +*/ + +#define SEG_SIZE 0x10000 + +LOCAL void Increment_Address IFN4(unsigned short *,seg_or_page, + unsigned short *,offset, + unsigned long, increment_by, + unsigned char, memory_type) +{ + if (memory_type) { + /* A LIM address, code makes assumption that increment across + * page boundary will always be to page boundary. */ + if (*offset + increment_by >= EMM_PAGE_SIZE) { + (*seg_or_page)++; + *offset = 0; + } else { + *offset += increment_by; + } + } else { + /* Conventional memory */ + if (*offset + increment_by >= SEG_SIZE) { + unsigned long address; + + /* Make new segment value as high as possible, to + * minimise chances of further segment wrap */ + address = (*seg_or_page << 4) + *offset + increment_by; + *seg_or_page = address >> 4; + *offset = address & 0xf; + } else { + *offset += increment_by; + } + } +} + +/* +=========================================================================== + +FUNCTION : Get_Mappable_Physical_address_Array + +PURPOSE : returns an array of the sector address for each mappable + page in physical address space + +RETURNED STATUS : in AH register + SUCCESS - Everything ok + BAD_SUB_FUNC - The sub function is invalid + +DESCRIPTION : + +========================================================================= +*/ +LOCAL void Get_Mappable_Physical_Address_Array IFN0() +{ + unsigned short segment, /* segment address of position */ + /* to return data to */ + offset, /* offset within segment */ + page_seg, /* segment address of page */ + low_seg; /* lowest segment address */ + short no_phys_pages; /* no. of phys. pages available */ + unsigned char sub_func, /* sub-function */ + page_no, /* physical page number */ + lowest; /* page no. having lowest seg. */ + + sub_func = getAL(); + no_phys_pages = get_no_phys_pages(); + + switch(sub_func) + { + case 0: + segment = getES(); + offset = getDI(); + /* + * must be written in address order - lowest first + * if we are back filling page 0 is not the lowest + */ + lowest = 0; + low_seg = get_page_seg(0); + for(page_no = 1; page_no < no_phys_pages; page_no++) + if((page_seg = get_page_seg(page_no)) < low_seg) + { + lowest = page_no; + low_seg = page_seg; + } + for(page_no = lowest; page_no < no_phys_pages; page_no++) + { + page_seg = get_page_seg(page_no); + write_intel_word(segment, offset, page_seg); + offset += 2; + write_intel_word(segment, offset, (short)page_no); + offset += 2; + } + for(page_no = 0; page_no < lowest; page_no++) + { + page_seg = get_page_seg(page_no); + write_intel_word(segment, offset, page_seg); + offset += 2; + write_intel_word(segment, offset, (short)page_no); + offset += 2; + } + case 1: + break; + + default: + setAH(BAD_SUB_FUNC); + return; + } + + setCX(no_phys_pages); + setAH(SUCCESS); + return; +} + +/* +=========================================================================== + +FUNCTION : Get_Expanded_Memory_Hardware_Information + +PURPOSE : Returns an array containing hardware configuration + information + + +RETURNED STATUS : in AH register + SUCCESS - Everything ok + BAD_SUB_FUNC - invalid sub-function + ACCESS_DENIED - the OS has denied access to this function + +DESCRIPTION : + +========================================================================= +*/ +LOCAL void Get_Hardware_Configuration_Array IFN0() +{ + unsigned short segment, /* segment address of position */ + /* to return data to */ + offset; /* offset within segment */ + short sub_func, /* sub-function */ + unallocated_raw_pages, + total_raw_pages, + context_save_area_size; + sub_func = getAL(); + switch(sub_func) + { + case 0: if(disabled) + { + setAH(ACCESS_DENIED); + return; + } + segment = getES(); + offset = getDI(); + context_save_area_size = get_map_size(); + + write_intel_word(segment, offset, RAW_PAGE_SIZE); + offset += 2; +#ifdef NTVDM + + write_intel_word(segment, offset, get_no_altreg_sets()); +#else + write_intel_word(segment, offset, ALT_REGISTER_SETS); +#endif + + offset += 2; + write_intel_word(segment, offset, context_save_area_size); + offset += 2; + write_intel_word(segment, offset, DMA_CHANNELS); + offset += 2; + write_intel_word(segment, offset, DMA_CHANNEL_OPERATION); + break; + + /* + * Our raw pages are the same size as the std pages + */ + case 1: unallocated_raw_pages = get_unallocated_pages(); + total_raw_pages = get_total_pages(); + setBX(unallocated_raw_pages); + setDX(total_raw_pages); + break; + + default: setAH(BAD_SUB_FUNC); + return; + } + + setAH(SUCCESS); + return; +} + + +/* +=========================================================================== + +FUNCTION : Allocate_Raw_Pages + +PURPOSE : Allocates the requested number of raw pages, in this case + our Raw pages are exactly the same as conventional pages. + +RETURNED STATUS : in AH register + SUCCESS - Allocation successful + NOT_ENOUGH_PAGES - not enough pages in the system + NO_MORE_PAGES - not enough free pages available + NO_MORE_HANDLES - no more free handles available + EMM_HW_ERROR - memory allocation error + + BAD_FUNC_CODE - invalid function code + +DESCRIPTION : + +========================================================================= +*/ +LOCAL void Allocate_Raw_Pages IFN0() +{ + short handle_no, + no_of_pages, /* no of pages to be allocated */ + i, /* loop counter */ + EM_page_no; /* Expanded Memory page number */ + + no_of_pages = getBX(); + + if(no_of_pages > get_total_pages()) + { + setAH(NOT_ENOUGH_PAGES); + return; + } + if(no_of_pages > get_unallocated_pages()) + { + setAH(NO_MORE_PAGES); + return; + } + if((handle_no = get_new_handle(no_of_pages)) < SUCCESS) + { + setAH(EMM_HW_ERROR); + return; + } + set_no_pages(handle_no, no_of_pages); + + for(i=0; i= get_no_altreg_sets()){ + setAH(UNSUPPORTED_ALT_REGS); + break; + } + else if (!altreg_set_ok(map_register)) { + setAH(INVALID_ALT_REG); + break; + } + + pages_in_override = FALSE; + + if (map_register == 0) { + alt_map_segment = getES(); + alt_map_offset = getDI(); + + if (alt_map_segment && alt_map_offset) { + no_phys_pages = get_no_phys_pages(); + offset = alt_map_offset; + for (i = 0; i < no_phys_pages; i++) { + sas_loadw(effective_addr(alt_map_segment, offset), &pages_in[i]); + offset += sizeof(word); + } + pages_in_override = TRUE; + } + } + if (activate_altreg_set(map_register, + (pages_in_override) ? pages_in : NULL + )) + setAH(EMM_SUCCESS); + else + setAH(EMM_HW_ERROR); + break; + + + case 2: setDX(get_map_size()); + break; + + + case 3: + if (allocate_altreg_set(&map_register)) { + setBL(map_register); + setAH(EMM_SUCCESS); + } + else { + setBL(0); + setAH(NO_FREE_ALT_REGS); + } + break; + + case 4: + map_register = getBL(); + /* immediately retrun okay if trying to deallocate alt reg 0 */ + if (map_register == 0) + setAH(EMM_SUCCESS); + else if (map_register == get_active_altreg_set()) + if (get_no_altreg_sets() == 1) + setAH(NO_ALT_REGS); + else + setAH(INVALID_ALT_REG); + + else if(deallocate_altreg_set(map_register)) + setAH(EMM_SUCCESS); + else + setAH(EMM_HW_ERROR); + break; + + case 5: + case 6: + case 7: + case 8: + map_register = getBL(); + if(map_register != 0) + { + setAH(NO_ALT_REGS); + return; + } + break; + + default: setAH(BAD_SUB_FUNC); + return; + } + + setAH(SUCCESS); + return; + +#else + unsigned char sub_func, /* sub-function code */ + map_register; /* No. of alternate register */ + + short pages_out[MAX_NO_PAGES],/* pages to map out */ + pages_in[MAX_NO_PAGES], /* pages to map in */ + no_phys_pages, /* no. of phys. pages available */ + i; /* loop counter */ + + if(disabled) + { + setAH(ACCESS_DENIED); + return; + } + sub_func = getAL(); + switch(sub_func) + { + case 0: + if(set_called) + save_map(-1, alt_map_segment, alt_map_offset, 0, 0); + setES(alt_map_segment); + setDI(alt_map_offset); + break; + case 1: + set_called = TRUE; + map_register = getBL(); + if(map_register != 0) + { + setAH(NO_ALT_REGS); + return; + } + alt_map_segment = getES(); + alt_map_offset = getDI(); + + /* + * Undocumented feature (???) to restore the + * alternative mappings back to their original + * state a NULL ptr is passed into here (ES:DI == 0) + * We must therefore set things as if set_alt had + * never been called + */ + if ((alt_map_segment == 0) && (alt_map_offset == 0)) + { + set_called = FALSE; + break; + } + if(restore_map(-1 , alt_map_segment, alt_map_offset, pages_out, pages_in) != SUCCESS) + { + setAH(BAD_MAP); + return; + } + + no_phys_pages = get_no_phys_pages(); + for(i = 0; i < no_phys_pages; i++) + { + if(pages_out[i] != EMPTY) + if(unmap_page(i) != SUCCESS) + { + setAH(EMM_HW_ERROR); + return; + } + if(pages_in[i] != EMPTY) + if(map_page(pages_in[i], i) != SUCCESS) + { + setAH(EMM_HW_ERROR); + return; + } + } + + break; + + + case 2: setDX(get_map_size()); + break; + + case 3: + case 5: + setBL(0); + break; + + case 4: + case 6: + case 7: + case 8: + map_register = getBL(); + if(map_register != 0) + { + setAH(NO_ALT_REGS); + return; + } + break; + + default: setAH(BAD_SUB_FUNC); + return; + } + + setAH(SUCCESS); + return; +#endif + +} + +/* +=========================================================================== + +FUNCTION : Prepare_Expanded_Memory_HW_For_Warm_Boot + +PURPOSE : + +RETURNED STATUS : in AH register + SUCCESS - + +DESCRIPTION : We don't actually do anything here, we just pretend + that we do + +========================================================================= +*/ +LOCAL void Prepare_Expanded_Memory_HW_For_Warm_Boot IFN0() +{ + setAH(SUCCESS); + return; +} + +/* +=========================================================================== + +FUNCTION : Enable_Disable_OSE_Function_Set_Functions + +PURPOSE : Enables or disables the functions:- + Get Expanded Memory Hardware Information, + Alternate Map Register Sets + Enable Disable OS/E Function Set Functions + +RETURNED STATUS : in AH register + SUCCESS - Everything OK + BAD_SUB_FUNC - invalid sub-function code + ACCESS_DENIED - the OS has denied access to this function + +DESCRIPTION : + +========================================================================= +*/ +LOCAL void Enable_Disable_OSE_Function_Set_Functions IFN0() +{ + static unsigned short + access_key[2]; /* random access key in BX & CX */ + static boolean + first_time = TRUE; /* first time through flag */ + + unsigned char sub_func; /* sub-function code */ + + if(!first_time) + { + /* + * We must check the 'access key' + */ + if((access_key[0] != getBX()) || (access_key[1] != getCX())) + { + setAH(ACCESS_DENIED); + return; + } + } + sub_func = getAL(); + switch(sub_func) + { + case 0: if(first_time) + { + host_get_access_key(access_key); + setBX(access_key[0]); + setCX(access_key[1]); + first_time = FALSE; + } + disabled = FALSE; + break; + + case 1: if(first_time) + { + host_get_access_key(access_key); + setBX(access_key[0]); + setCX(access_key[1]); + first_time = FALSE; + } + disabled = TRUE; + break; + + case 2: disabled = FALSE; + first_time = TRUE; + break; + + default: setAH(BAD_SUB_FUNC); + return; + } + + setAH(SUCCESS); + return; +} + +/* +=========================================================================== + +FUNCTION : reset_emm_funcs + +PURPOSE : sets up variables to their initial value, used mainly + for SoftPC reboot + +RETURNED STATUS : none + +DESCRIPTION : + +========================================================================= +*/ +GLOBAL void reset_emm_funcs IFN0() +{ + /* + * These variables are used in function 28 + * (Alternate Map Register Support) + */ + alt_map_segment = 0; + alt_map_offset = 0; +#ifndef NTVDM + set_called = FALSE; +#endif + + return; +} + +#ifndef PROD +/* +=========================================================================== + +FUNCTION : Routines to start and end a trace of all EMM calls + +PURPOSE : + +RETURNED STATUS : in AH register + SUCCESS + +DESCRIPTION : + +========================================================================= +*/ +LOCAL void Start_Trace IFN0() +{ + if ((fp = fopen("emm_trace","w")) == NULL) + { + setAH(EMM_HW_ERROR); + return; + } + + setbuf(fp, NULL); + trace_flag = TRUE; + + setAH(SUCCESS); + return; +} + + +LOCAL void End_Trace IFN0() +{ + fflush(fp); + fclose(fp); + trace_flag = FALSE; + + setAH(SUCCESS); + return; +} +#endif /* PROD */ +#endif /* LIM */ diff --git a/private/mvdm/softpc.new/base/bios/equipmnt.c b/private/mvdm/softpc.new/base/bios/equipmnt.c new file mode 100644 index 000000000..c6be40b00 --- /dev/null +++ b/private/mvdm/softpc.new/base/bios/equipmnt.c @@ -0,0 +1,54 @@ +#include "insignia.h" +#include "host_def.h" +/* + * SoftPC Revision 3.0 + * + * Title : equipment.c + * + * Description : BIOS equipment function. Returns a word containing + * a bit pattern representing the equipment supported + * by the virtual bios. + * + * Author : Henry Nash / David Rees + * + * Notes : Now reads the word from the appropriate place within + * the BIOS data area (40:10H). + */ + +/* + * static char SccsID[]="@(#)equipment.c 1.6 08/03/93 Copyright Insignia Solutions Ltd."; + */ + + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_BIOS.seg" +#endif + + +/* + * O/S include files. + */ +#include +#include TypesH + +/* + * SoftPC include files + */ +#include "xt.h" +#include CpuH +#include "bios.h" +#include "sas.h" +#include "equip.h" + +void equipment() +{ + EQUIPMENT_WORD equip_flag; + + sas_loadw(EQUIP_FLAG, &equip_flag.all); + setAX(equip_flag.all); +} diff --git a/private/mvdm/softpc.new/base/bios/ill_bop.c b/private/mvdm/softpc.new/base/bios/ill_bop.c new file mode 100644 index 000000000..dcd3360f0 --- /dev/null +++ b/private/mvdm/softpc.new/base/bios/ill_bop.c @@ -0,0 +1,154 @@ +#include "insignia.h" +#include "host_def.h" +/* + * VPC-XT Revision 1.0 + * + * Title : illegal_bop.c + * + * Description : A bop instuction has been executed for which + * no VPC function exists. + * + * Author : Henry Nash + * + * Notes : None + * + */ + +#ifdef SCCSID +static char SccsID[]="@(#)ill_bop.c 1.11 12/07/94 Copyright Insignia Solutions Ltd."; +#endif + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_BIOS.seg" +#endif + + +/* + * O/S include files. + */ +#include +#include +#include +#include TypesH +#include StringH + +/* + * SoftPC include files + */ +#include "xt.h" +#include "sas.h" +#include CpuH +#include "debug.h" + +#ifndef PROD + +#define MAX_IGNORE_BOPS 8 +LOCAL IU8 ignoreBops[MAX_IGNORE_BOPS]; +LOCAL IU8 maxIgnore = 0; +LOCAL IBOOL ignoreAll = FALSE; +LOCAL IBOOL doForceYoda = FALSE; + +#endif /* PROD */ + +#if defined(NTVDM) && defined(MONITOR) +#define GetInstructionPointer() getEIP() +#endif + +void illegal_bop() +{ +#ifndef PROD + static IBOOL first = TRUE; + IU8 bop_number; + double_word ea; + IU8 i; + char *ignEnv; + char *pIgn; + + if (first) + { +#ifdef YODA + /* Check whether YODA is defined or not. */ + + if (ignEnv = (char *)host_getenv("YODA")) + doForceYoda = TRUE; +#endif /* YODA */ + + /* Sort out which illegal bops to ignore. These are set + ** in the environment variable IGNORE_ILLEGAL_BOPS + ** which is set to either "all" to ignore all illegal + ** bops, or to a colon-separated list of hex numbers + ** to ignore specific bops. + */ + + if (ignEnv = (char*)host_getenv("IGNORE_ILLEGAL_BOPS")) + { + if (strcasecmp(ignEnv, "all") == 0) + { + ignoreAll = TRUE; + } + else + { + for (pIgn = ignEnv; *pIgn && + (maxIgnore < (MAX_IGNORE_BOPS - 1)); ) + { + int ignValue; + + /* Find the first hex digit. */ + + for ( ; *pIgn && !isxdigit(*pIgn); + pIgn++) + ; + + /* Read in the bop number. */ + + if (isxdigit(*pIgn) && + (sscanf(pIgn, "%x", + &ignValue) == 1)) + { + ignoreBops[maxIgnore++] = + ignValue; + } + + /* Skip the bop number. */ + + for ( ; isxdigit(*pIgn); pIgn++) + ; + } + } + } + + first = FALSE; /* no need to repeat this palaver */ + } + + ea = effective_addr(getCS(), GetInstructionPointer() - 1); + bop_number = sas_hw_at(ea); + + /* Why is the bop there at all if it's illegal? Alway trace + * such BOPs rather than silently ignoring them. + */ + + always_trace3( + "Illegal BOP %02x precedes CS:EIP %04x:%04x", + bop_number, getCS(), GetInstructionPointer()); + + if (ignoreAll) + return; + + for (i = 0; i < maxIgnore; i++) + { + if (ignoreBops[i] == bop_number) + return; + } + + /* This BOP isn't ignored - drop into Yoda if possible */ +#ifdef YODA + if (doForceYoda) + force_yoda(); +#endif /* YODA */ +#endif /* PROD */ +} diff --git a/private/mvdm/softpc.new/base/bios/makefile b/private/mvdm/softpc.new/base/bios/makefile new file mode 100644 index 000000000..6ee4f43fa --- /dev/null +++ b/private/mvdm/softpc.new/base/bios/makefile @@ -0,0 +1,6 @@ +# +# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source +# file to this component. This file merely indirects to the real make file +# that is shared by all the components of NT OS/2 +# +!INCLUDE $(NTMAKEENV)\makefile.def diff --git a/private/mvdm/softpc.new/base/bios/mem_size.c b/private/mvdm/softpc.new/base/bios/mem_size.c new file mode 100644 index 000000000..1a6d69c4b --- /dev/null +++ b/private/mvdm/softpc.new/base/bios/mem_size.c @@ -0,0 +1,55 @@ +#include "insignia.h" +#include "host_def.h" +/* + * VPC-XT Revision 1.0 + * + * Title : memory_size + * + * Description : Returns the memory size of the virtual PC memory + * + * Author : Henry Nash + * + * Notes : None + * + */ + +#ifdef SCCSID +static char SccsID[]="@(#)mem_size.c 1.7 08/03/93 Copyright Insignia Solutions Ltd."; +#endif + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_BIOS.seg" +#endif + + +/* + * O/S include files. + */ +#include +#include TypesH + +/* + * SoftPC include files + */ +#include "xt.h" +#include CpuH +#include "bios.h" +#include "sas.h" + +void memory_size() +{ + word memory_size; + + /* + * Return the memory size in AX. This is read in from the BIOS, as + * certain applications can write to this area. + */ + sas_loadw(MEMORY_VAR, &memory_size); + + setAX(memory_size); +} diff --git a/private/mvdm/softpc.new/base/bios/reset.c b/private/mvdm/softpc.new/base/bios/reset.c new file mode 100644 index 000000000..c342d8b3a --- /dev/null +++ b/private/mvdm/softpc.new/base/bios/reset.c @@ -0,0 +1,1118 @@ +#include "insignia.h" +#include "host_def.h" +/*[ + Name: reset.c + Derived From: base 2.0 + Author: Henry Nash + Created On: Unknown + Sccs ID: @(#)reset.c 1.81 06/20/95 + Purpose: + This function is called once the system memory has been + initialised. It builds the interrupt vector table, + initiailises any physical devices and BIOS handlers. + The CPU will execute a call to the BIOS bootstrap + function after this routine has returned. + + + (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved. + +]*/ + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_INIT.seg" +#endif + + +/* + * O/S include files. + */ +#include +#include +#include TypesH +#include StringH + +/* + * SoftPC include files + */ +#include "xt.h" +#include "bios.h" +#include "sas.h" +#include CpuH +#include "cmos.h" +#include "error.h" +#include "config.h" +#include "dma.h" +#include "fla.h" +#include "gfi.h" +#include "floppy.h" +#include "gmi.h" +#include "gfx_upd.h" +#include "gvi.h" +#include "ica.h" +#include "keyboard.h" +#include "mouse.h" +#include "mouse_io.h" +#include "ppi.h" +#include "printer.h" +#include "ios.h" +#include "equip.h" +#include "rs232.h" +#include "timer.h" +#include "gendrvr.h" +#include "virtual.h" +#ifdef PRINTER +#include "host_lpt.h" +#endif +#include "fdisk.h" +#include "trace.h" +#include "debug.h" +#include "video.h" +#ifdef NOVELL +#include "novell.h" +#endif +#include "emm.h" +#include "quick_ev.h" +#include "keyba.h" +#include "rom.h" +#ifdef GISP_SVGA +#include "gisp_sas.h" +#endif /* GISP_SVGA */ +#include "hunter.h" +#ifdef LICENSING +#include "host_lic.h" +#endif /* LICENSING */ + +/* Exports */ + +/* + * These are the working function pointer structures for the GWI. + */ + +VIDEOFUNCS *working_video_funcs; +KEYBDFUNCS *working_keybd_funcs; +#ifndef NTVDM +ERRORFUNCS *working_error_funcs; +#endif +HOSTMOUSEFUNCS *working_mouse_funcs; + +/* Imports */ +#ifdef NPX +IMPORT void initialise_npx IPT0(); +#endif /* NPX */ + +#ifdef DPMI +IMPORT void DPMI_reset IPT0(); +#endif /* DPMI */ + +#ifdef GISP_SVGA +#include HostHwVgaH +#include "hwvga.h" +#endif /* GISP_SVGA */ + +#if defined(DELTA) && defined(A2CPU) +extern void reset_delta_data_structures(); +#endif /* DELTA && A2CPU */ + +/* + * ============================================================================ + * Local static data and defines + * ============================================================================ + */ + +/* + * Macro to produce an interrupt table location from an interrupt number + */ + +#define int_addr(int_no) (int_no * 4) + +/* + * global variable for keyboard requested interrupts. After the + * initial boot treat any subsequent reset as 'soft'. This allows + * for user installed reboots which will not be able to set this flag. + */ + +int soft_reset = 0; + +/* + * ============================================================================ + * External functions + * ============================================================================ + */ + +extern word msw; + +IMPORT CHAR *host_get_version IPT0(); +IMPORT CHAR *host_get_unpublished_version IPT0(); +IMPORT CHAR *host_get_years IPT0(); +IMPORT CHAR *host_get_copyright IPT0(); + +#ifdef PIG +extern long pig_gfx_adapter; +#endif + +#define STATUS_PORT 0x64 /* keyboard status port */ +#define SYS_FLAG 0x4 /* shutdown bit of keyboard status port */ +#define PORT_A 0x60 /* keyboard port a */ +#define IO_ROM_SEG 0x69 /* User Stack Pointer(SS) */ +#define IO_ROM_INIT 0x67 /* User Stack Pointer(SP) */ + +static void setup_ivt() +{ + IUH count; + + /* make all vectors between 0 and 78 (apart from + ** 60-67 inclusive) point to the unexpected + ** interrupt routine + */ + for (count=0; count<=0x78; count++) + { + sas_storew(int_addr(count), UNEXP_INT_OFFSET); + sas_storew(int_addr(count) + 2, UNEXP_INT_SEGMENT); + } + for (count=0x60; count<=0x67; count++) + { + sas_storew(int_addr(count), 0); + sas_storew(int_addr(count) + 2, 0); + } + + /* now put in any vectors that should be set up + */ + + sas_storew(int_addr(0x5), PRINT_SCREEN_OFFSET); + sas_storew(int_addr(0x5) + 2, PRINT_SCREEN_SEGMENT); + sas_storew(int_addr(0x6), ILL_OP_INT_OFFSET); + sas_storew(int_addr(0x6) + 2, ILL_OP_INT_SEGMENT); + sas_storew(int_addr(0x8), TIMER_INT_OFFSET); + sas_storew(int_addr(0x8) + 2, TIMER_INT_SEGMENT); + sas_storew(int_addr(0x9), KB_INT_OFFSET); + sas_storew(int_addr(0x9) + 2, KB_INT_SEGMENT); + /* disk h/w interrupt arrives on slave ica, at line 6 + * (gets setup by fixed disk POST (disk_post()) + */ + sas_storew(int_addr(0xE), DISKETTE_INT_OFFSET); + sas_storew(int_addr(0xE) + 2, DISKETTE_INT_SEGMENT); +#ifdef GISP_SVGA + if((ULONG) config_inquire(C_GFX_ADAPTER, NULL) == CGA ) + { + sas_storew(int_addr(0x10), CGA_VIDEO_IO_OFFSET); + sas_storew( int_addr(0x10) + 2 , VIDEO_IO_SEGMENT ); + } + else + { + sas_storew(int_addr(0x10), GISP_INT_10_ADDR_OFFSET ); + sas_storew( int_addr(0x10) + 2 , EgaROMSegment ); + } +#else /* GISP_SVGA */ + sas_storew(int_addr(0x10), VIDEO_IO_OFFSET); + sas_storew(int_addr(0x10) + 2, VIDEO_IO_SEGMENT); +#endif /* GISP_SVGA */ + sas_storew(int_addr(0x11), EQUIPMENT_OFFSET); + sas_storew(int_addr(0x11) + 2, EQUIPMENT_SEGMENT); + sas_storew(int_addr(0x12), MEMORY_SIZE_OFFSET); + sas_storew(int_addr(0x12) + 2, MEMORY_SIZE_SEGMENT); + /* disk_post() will revector this to INT 40h + */ + sas_storew(int_addr(0x13), DISKETTE_IO_OFFSET); + sas_storew(int_addr(0x13) + 2, DISKETTE_IO_SEGMENT); + sas_storew(int_addr(0x14), RS232_IO_OFFSET); + sas_storew(int_addr(0x14) + 2, RS232_IO_SEGMENT); + sas_storew(int_addr(0x15), CASSETTE_IO_OFFSET); + sas_storew(int_addr(0x15) + 2, CASSETTE_IO_SEGMENT); + sas_storew(int_addr(0x16), KEYBOARD_IO_OFFSET); + sas_storew(int_addr(0x16) + 2, KEYBOARD_IO_SEGMENT); + sas_storew(int_addr(0x17), PRINTER_IO_OFFSET); + sas_storew(int_addr(0x17) + 2, PRINTER_IO_SEGMENT); + sas_storew(int_addr(0x18), BASIC_OFFSET); + sas_storew(int_addr(0x18) + 2, BASIC_SEGMENT); + sas_storew(int_addr(0x19), BOOT_STRAP_OFFSET); + sas_storew(int_addr(0x19) + 2, BOOT_STRAP_SEGMENT); + sas_storew(int_addr(0x1A), TIME_OF_DAY_OFFSET); + sas_storew(int_addr(0x1A) + 2, TIME_OF_DAY_SEGMENT); + sas_storew(int_addr(0x1B), DUMMY_INT_OFFSET); + sas_storew(int_addr(0x1B) + 2, DUMMY_INT_SEGMENT); + sas_storew(int_addr(0x1C), DUMMY_INT_OFFSET); + sas_storew(int_addr(0x1C) + 2, DUMMY_INT_SEGMENT); + sas_storew(int_addr(0x1D), VIDEO_PARM_OFFSET); + sas_storew(int_addr(0x1D) + 2, VIDEO_PARM_SEGMENT); + sas_storew(int_addr(0x1E), DISKETTE_TB_OFFSET); + sas_storew(int_addr(0x1E) + 2, DISKETTE_TB_SEGMENT); + sas_storew(int_addr(0x1F), EXTEND_CHAR_OFFSET); + sas_storew(int_addr(0x1F) + 2, EXTEND_CHAR_SEGMENT); + /* disk_post() will set this up + */ + sas_storew(int_addr(0x40), DUMMY_INT_OFFSET); + sas_storew(int_addr(0x40) + 2, DUMMY_INT_SEGMENT); + sas_storew(int_addr(0x41), DISK_TB_OFFSET); + sas_storew(int_addr(0x41) + 2, DISK_TB_SEGMENT); + + sas_storew(int_addr(0x6F), DUMMY_INT_OFFSET); /* Needed for Windows 3.1 */ + sas_storew(int_addr(0x6F) + 2, DUMMY_INT_SEGMENT); + + sas_storew(int_addr(0x70), RTC_INT_OFFSET); + sas_storew(int_addr(0x70) + 2, RTC_INT_SEGMENT); + + sas_storew(int_addr(0x71), REDIRECT_INT_OFFSET); + sas_storew(int_addr(0x71) + 2, REDIRECT_INT_SEGMENT); + sas_storew(int_addr(0x72), D11_INT_OFFSET); + sas_storew(int_addr(0x72) + 2, D11_INT_SEGMENT); + sas_storew(int_addr(0x73), D11_INT_OFFSET); + sas_storew(int_addr(0x73) + 2, D11_INT_SEGMENT); + sas_storew(int_addr(0x74), D11_INT_OFFSET); + sas_storew(int_addr(0x74) + 2, D11_INT_SEGMENT); + sas_storew(int_addr(0x75), X287_INT_OFFSET); + sas_storew(int_addr(0x75) + 2, X287_INT_SEGMENT); + sas_storew(int_addr(0x76), D11_INT_OFFSET); + sas_storew(int_addr(0x76) + 2, D11_INT_SEGMENT); + sas_storew(int_addr(0x77), D11_INT_OFFSET); + sas_storew(int_addr(0x77) + 2, D11_INT_SEGMENT); +} + +/* Low Switch Settings */ +#define RAM_64KB 0x0 +#define RAM_128KB 0x4 +#define RAM_192KB 0x8 +#define RAM_256KB 0xC +#define PPI_CO_PROCESSOR_PRESENT 0x2 +#define PPI_CO_PROCESSOR_NOT_PRESENT 0x0 +#define NO_LOOP_ON_POST 0x1 +#define DO_LOOP_ON_POST 0x0 + +/* High Switch Settings */ +#define PPI_ONE_DRIVE 0x0 +#define PPI_TWO_DRIVES 0x4 +#define PPI_THREE_DRIVES 0x8 +#define PPI_FOUR_DRIVES 0xC +#define PPI_CGA_40_COLUMN 0x1 +#define PPI_CGA_80_COLUMN 0x2 +#define MDA_OR_MULTI 0x3 +#define EGA_INSTALLED 0x0 + +static void ppi_get_switches(low,high) +half_word *low, *high; +{ + half_word low_switches = 0, high_switches = 0; + +#ifdef NPX + /* + ** Switchable NPX + */ + + if (host_runtime_inquire(C_NPX_ENABLED)) + { +#ifdef SWITCHNPX + Npx_enabled = 1; +#endif + low_switches |= (RAM_256KB | PPI_CO_PROCESSOR_PRESENT | NO_LOOP_ON_POST); + } + else + { +#ifdef SWITCHNPX + Npx_enabled = 0; +#endif + low_switches |= (RAM_256KB | PPI_CO_PROCESSOR_NOT_PRESENT | NO_LOOP_ON_POST); + } +#else + low_switches |= (RAM_256KB | PPI_CO_PROCESSOR_NOT_PRESENT | NO_LOOP_ON_POST); +#endif + +#ifdef FLOPPY_B + /* only indicate two floppies if a second is configured */ + if (strlen(config_inquire(C_FLOPPY_B_DEVICE, NULL))) + high_switches |= (PPI_TWO_DRIVES); + else + high_switches |= (PPI_ONE_DRIVE); +#else + high_switches |= (PPI_ONE_DRIVE); +#endif + + + /* set the value of the high switches from the config settings */ + + switch((ULONG)config_inquire(C_GFX_ADAPTER, NULL)) + { + case CGA: +#ifdef CGAMONO + case CGA_MONO: +#endif + high_switches |= (PPI_CGA_80_COLUMN); + break; + case MDA: + high_switches |= (MDA_OR_MULTI); + break; +#ifdef EGG + case EGA: +#ifdef VGG + case VGA: +#endif + high_switches |= EGA_INSTALLED; + break; +#endif + case HERCULES: +#ifdef HERC + break; +#endif + default: + break; + } + + *low = low_switches; + *high = high_switches; +} + +#define PRE_RELEASE_PRECAUTION "\012\015This version is subject to confidentiality provisions and should not\012\015be distributed." + +GLOBAL CHAR *get_copyright IFN0() +{ + LOCAL CHAR buffer[300]; + CHAR *unpublished_version; + + unpublished_version = host_get_unpublished_version(); + if (*unpublished_version) + sprintf(buffer, "%s %s%s\012\015Copyright %s, an unpublished work by Insignia Solutions Inc.%s\012\015", SPC_Product_Name, host_get_version(), unpublished_version, host_get_years(), PRE_RELEASE_PRECAUTION ); + else + sprintf(buffer, "%s %s\012\015Copyright %s by Insignia Solutions Inc. All rights reserved.\012\015", SPC_Product_Name, host_get_version(), host_get_years()); + assert1(sizeof(buffer) > strlen(buffer), "get_copyright buffer overflow (strlen = %d)", strlen(buffer)); + return(buffer); +} + + + +#ifndef PROD +LOCAL void announce_variant IFN0() +{ + CHAR buff[4*80], *p; + + strcpy (buff, "Non-PROD build variant:"); + +#if defined(CPU_30_STYLE) && !defined(CPU_40_STYLE) + strcat (buff, " CPU_30_STYLE"); +#endif /* CPU_30_STYLE && ! CPU_40_STYLE*/ + +#ifdef CPU_40_STYLE + strcat (buff, " CPU_40_STYLE"); +#endif /* CPU_40_STYLE */ + +#ifdef CCPU + strcat (buff, " CCPU"); +#endif /* CCPU */ + +#ifdef A2CPU + strcat (buff, " A2CPU"); +#endif /* A2CPU */ + +#ifdef A3CPU + strcat (buff, " A3CPU"); +#endif /* A3CPU */ + +#ifdef GISP_CPU + strcat( buff , " GISP_CPU" ); +#endif /* GISP_CPU */ + +#if (defined(SPC386) && !defined(SPC486)) + strcat( buff , " SPC386" ); +#endif /* SPC386 && !SPC486 */ + +#ifdef SPC486 + strcat( buff , " SPC486" ); +#endif /* SPC486 */ + +#ifdef PIG + strcat (buff, " PIG"); +#endif /* PIG */ + +#ifdef A_VID + strcat (buff, " A_VID"); +#endif /* A_VID */ + +#ifdef C_VID + strcat (buff, " C_VID"); +#endif /* C_VID */ + +#ifdef MSWDVR + strcat( buff , " MSWDVR" ); +#endif /* MSWDVR */ + +#ifdef BACK_M + strcat (buff, " BACK_M"); +#endif /* BACK_M */ + +#ifdef GISP_SVGA + strcat( buff , " GISP_SVGA" ); +#endif /* GISP_SVGA */ + +#ifdef DPMI + strcat( buff , " DPMI" ); +#endif /* DPMI */ + +#ifdef IRET_HOOKS + strcat( buff , " IRET_HOOKS" ); +#endif /* IRET_HOOKS */ + +#ifdef SECURE + strcat( buff , " SECURE" ); +#endif + +#ifdef SYNCH_TIMERS + strcat( buff , " SYNCH_TIMERS" ); +#endif + + p = buff; + while (strlen(p) >= 80) + { + while( *(--p) != ' ' ) + ; + *p++ = (char)0xFF; /* Mark last space on line */ + } + p = buff; + while(*p != '\0') + { + if( (IU8)*p == 0xFF ) /* Marker from above */ + { + setAH( 14 ); + setAL( VD_CR ); + bop(BIOS_VIDEO_IO); + setAH( 14 ); + setAL( VD_LF ); + bop(BIOS_VIDEO_IO); + } + else + { + setAH(14); + setAL(*p); + bop(BIOS_VIDEO_IO); + } + + p++; + } + + /* + * Set the cursor to the next line + */ + + setAH(14); + setAL(0xd); + bop(BIOS_VIDEO_IO); + setAH(14); + setAL(0xa); + bop(BIOS_VIDEO_IO); + setAH(14); + setAL(0xa); + bop(BIOS_VIDEO_IO); +} +#endif /* PROD */ + +void reset() +{ +#ifndef NTVDM + char *cp; + char temp_str[256]; +#ifdef LIM + SHORT limSize, backFill; +#endif /* LIM */ +#endif /* NTVDM */ + EQUIPMENT_WORD equip_flag; + half_word low_switches, high_switches; + SHORT gfxAdapt; + int adapter; +#ifdef PM + half_word status_byte; + half_word cmos_shutdown; + sys_addr user_stack; + word temp_word; +#ifdef NTVDM + half_word cmos_diskette; +#endif + + /* iff not first time thru find out reset cause */ + if ( soft_reset ) + { + /* read keyboard status port */ + inb(STATUS_PORT, &status_byte); + + /* iff shutdown bit is set */ + if ( status_byte & SYS_FLAG ) + { + /* read cmos shutdown byte */ + outb(CMOS_PORT, CMOS_SHUT_DOWN); + inb(CMOS_DATA, &cmos_shutdown); + + switch (cmos_shutdown) + { + + case 0: + break; /* nothing special */ + + case BLOCK_MOVE: + /* clear shut down byte */ + outb(CMOS_PORT, CMOS_SHUT_DOWN); + outb(CMOS_DATA, (half_word)0); + + /* force A20 low */ + outb(STATUS_PORT, 0xd1); /* 8042 cmd */ + outb(PORT_A, 0xdd); + + /* + * After a block move IO_ROM_SEG:IO_ROM_INIT + * points to User Stack, which holds:- + * + * -----> DS POP'ed by real bios + * ES POP'ed by real bios + * DI POPA'ed by real bios + * SI .. + * BP .. + * -- .. + * BX .. + * DX .. + * CX .. + * AX .. + * IP RETF 2'ed by real bios + * CS .. + * -- .. + * + * We just haul off all the registers and + * then set SP. + */ + sas_loadw(effective_addr(BIOS_VAR_SEGMENT, + IO_ROM_INIT), &temp_word); + setSP(temp_word); + sas_loadw(effective_addr(BIOS_VAR_SEGMENT, + IO_ROM_SEG), &temp_word); + setSS(temp_word); + + user_stack = effective_addr(getSS(), getSP()); + + sas_loadw(user_stack, &temp_word); + setDS(temp_word); + user_stack += 2; + sas_loadw(user_stack, &temp_word); + setES(temp_word); + user_stack += 2; + sas_loadw(user_stack, &temp_word); + setDI(temp_word); + user_stack += 2; + sas_loadw(user_stack, &temp_word); + setSI(temp_word); + user_stack += 2; + sas_loadw(user_stack, &temp_word); + setBP(temp_word); + user_stack += 2; + /* forget SP value */ + user_stack += 2; + sas_loadw(user_stack, &temp_word); + setBX(temp_word); + user_stack += 2; + sas_loadw(user_stack, &temp_word); + setDX(temp_word); + user_stack += 2; + sas_loadw(user_stack, &temp_word); + setCX(temp_word); + user_stack += 2; + sas_loadw(user_stack, &temp_word); + setAX(temp_word); + user_stack += 2; + sas_loadw(user_stack, &temp_word); +#ifndef CPU_30_STYLE + temp_word = temp_word + HOST_BOP_IP_FUDGE; +#endif /* CPU_30_STYLE */ + setIP(temp_word); + user_stack += 2; + sas_loadw(user_stack, &temp_word); + setCS(temp_word); + + /* now adjust SP */ + temp_word = getSP(); + temp_word += 26; + setSP(temp_word); + + /* finally set ok */ + setAH(0); + setCF(0); + setZF(1); + setIF(1); + return; + + case JMP_DWORD_ICA: + { + half_word dummy; + + /* Reset ICA and 287 before jumping to + ** stored double word. + */ +#ifdef NPX + npx_reset(); +#endif /* NPX */ + outb(ICA0_PORT_0, (half_word)0x11); + outb(ICA0_PORT_1, (half_word)0x08); + outb(ICA0_PORT_1, (half_word)0x04); + outb(ICA0_PORT_1, (half_word)0x01); + /* mask all interrupts off */ + outb(ICA0_PORT_1, (half_word)0xff); + + outb(ICA1_PORT_0, (half_word)0x11); + outb(ICA1_PORT_1, (half_word)0x70); + outb(ICA1_PORT_1, (half_word)0x02); + outb(ICA1_PORT_1, (half_word)0x01); + /* mask all interrupts off */ + outb(ICA1_PORT_1, (half_word)0xff); + + /* flush keyboard buffer */ + inb(PORT_A, &dummy); + + /* flush timer req and allow timer ints */ + outb(ICA0_PORT_0,END_INTERRUPT); + host_clear_hw_int(); + } + /* deliberate fall-through */ + + case JMP_DWORD_NOICA: + /* clear shut down byte */ + outb(CMOS_PORT, CMOS_SHUT_DOWN); + outb(CMOS_DATA, (half_word)0); + + /* set up stack just like post */ + setSS(0); + setSP(0x400); + + /* fake up jump to indicated point */ + sas_loadw(effective_addr(BIOS_VAR_SEGMENT, IO_ROM_INIT), &temp_word); +#ifndef CPU_30_STYLE + temp_word = temp_word + HOST_BOP_IP_FUDGE; +#endif /* CPU_30_STYLE */ + setIP(temp_word); + sas_loadw(effective_addr(BIOS_VAR_SEGMENT, IO_ROM_SEG), &temp_word); + setCS(temp_word); + + return; + + default: + always_trace1("Unsupported shutdown (%x)", + cmos_shutdown); + + /* clear shut down byte */ + outb(CMOS_PORT, CMOS_SHUT_DOWN); + outb(CMOS_DATA, (half_word)0); + break; + } + } + } +#ifdef DPMI + /* ensure DPMI host is not still active */ + DPMI_reset(); +#endif /* DPMI */ +#endif /* PM */ + + /* + * Ensure any paint routines are nulled out. + */ + + reset_paint_routines(); + + cmos_write_byte(CMOS_DISKETTE, + (half_word) gfi_drive_type(0) << 4 | gfi_drive_type(1)); + + /* + * NTVDM: if soft reset We will never get here... + */ +#ifndef NTVDM + /* + * If this isn't the first (re)set, then allow hosts to close down + * timer and keyboard systems. Most ports will need to disable ALRM and + * IO signals during this call, so that the respective signal handlers + * will not be executed at undefined points during the adapter + * initialisation + */ + if (soft_reset) + { + /* Allow Windows 3.x compliant DOS Drivers to correctly handle + any data instances. To do this we:- + 1) Close down (terminate) the driver, thus freeing any data + instances. + 2) Restart (initialise) the driver, ensuring one data instance + is available [for config or whoever else thinks they know + that DOS Driver data must always exist]. */ + + /* FIRST Inform NIDDB that reboot is happening.. */ + NIDDB_System_Reboot(); + +#ifdef HFX + hfx_driver_termination(); /* ..then each driver */ + hfx_driver_initialisation(); +#endif + mouse_driver_termination(); /* ..then each driver */ + mouse_driver_initialisation(); + + q_event_init(); + tic_event_init(); + + host_timer_shutdown(); + host_kb_shutdown(); + host_disable_timer2_sound(); +#ifdef NTVDM +/* + * MS NT VDM cannot reboot in SoftPC conventional terms so exits in preparation + * for new VDM startup. + */ + cmdRebootVDM(); + host_terminate(); +#endif /* NTVDM */ + } +#endif /* NTVDM */ + + /* + * Shutdown ODI network driver in case it was running + */ +#ifdef NOVELL + net_term(); +#endif + + /* Shutdown SmartCopy */ + +#ifndef HostProcessClipData +#ifdef MSWDVR + msw_smcpy_term(); +#endif +#endif + +#if !defined(NTVDM) || (defined(NTVDM) && !defined(X86GFX)) + /* Clear out the bottom 32K of memory. */ + sas_fills (0, '\0', 640L * 1024L); + + /* Now set up the interrupt vector table. */ + setup_ivt(); +#endif /* !defined(NTVDM) || (defined(NTVDM) && !defined(X86GFX)) */ + +#ifndef NTVDM + + /* Initialise the physical devices */ + SWPIC_init_funcptrs (); + + /* IO initialisation moved earlier to allow support for 3rd party + * VDDs. (see host\src\nt_msscs.c). + */ + io_init(); +#endif /* NTVDM */ + + ica0_init(); + ica0_post(); + ica1_init(); + ica1_post(); + + /* + * Initialise the ppi and set up the BIOS data area equipment flag + * using the system board dip switches and configuration details + * Note that bit 1 of both the equipment flag and the low_switches + * indicates the existance ( or otherwise ) of a co-processor, such as + * an 8087 floating point chip. + */ +#ifdef IPC + init_subprocs(); +#endif /* IPC */ + + cmos_init(); + cmos_post(); + + ppi_init(); + ppi_get_switches(&low_switches,&high_switches); + + equip_flag.all = (low_switches & 0xE) | (high_switches<<4); +#ifdef PRINTER + equip_flag.bits.printer_count = NUM_PARALLEL_PORTS; +#else /* PRINTER */ + equip_flag.bits.printer_count = 0; +#endif /* PRINTER */ + equip_flag.bits.game_io_present = FALSE; + equip_flag.bits.rs232_count = NUM_SERIAL_PORTS; + equip_flag.bits.ram_size = 0; + +#ifdef NTVDM + equip_flag.bits.diskette_present = FALSE; + equip_flag.bits.max_diskette = 0; + if (cmos_read_byte(CMOS_DISKETTE, &cmos_diskette) == SUCCESS && + cmos_diskette != 0) + { + equip_flag.bits.diskette_present = TRUE; + if ((cmos_diskette & 0xF) && (cmos_diskette >> 4)) + equip_flag.bits.max_diskette++; + } +#else + + /* 20/10/93 PaulC - set the diskette_present bit regardless of */ + /* whether or not any floppies are configured. Not having the */ + /* bit set confuses DOS and Windows. See BCN 2262. */ + + equip_flag.bits.diskette_present = TRUE; + +#endif /* NTVDM */ + + sas_storew(EQUIP_FLAG, equip_flag.all); + + /* Load up the amount of memory into the BIOS. */ + sas_storew(MEMORY_VAR, host_get_memory_size()); + + gfxAdapt = (ULONG)config_inquire(C_GFX_ADAPTER, NULL); + +#ifdef GISP_SVGA + + /* The gisp build needs to do all its setup and then + ** build the SoftPC ivt. + */ + initHWVGA( ); + setup_ivt( ); + +#endif /* GISP_SVGA */ + + gvi_init((half_word) gfxAdapt); +#ifdef PIG + /* tell the pig what video adapter we are using */ + pig_gfx_adapter = gfxAdapt; +#endif + + SWTMR_init_funcptrs (); + time_of_day_init(); + timer_init(); + timer_post(); + keyboard_init(); + keyboard_post(); + AT_kbd_init(); + AT_kbd_post(); + + video_init(); + +#ifdef SWIN_SNDBLST_NULL + sb_init(); +#endif /* SWIN_SNDBLST_NULL */ + +#ifndef NTVDM /* No signon for NTVDM - transparent integration */ + if (soft_reset == 0) + { + sprintf(temp_str,"%d KB OK", sas_w_at(MEMORY_VAR) + + ((sas_memory_size()/1024) - 1024)); + + cp = temp_str; + while(*cp != '\0') + { + setAH(14); + setAL(*cp++); + bop(BIOS_VIDEO_IO); + } + + /* Set the cursor to the next line */ + setAH(14); + setAL(0xd); + bop(BIOS_VIDEO_IO); + setAH(14); + setAL(0xa); + bop(BIOS_VIDEO_IO); + setAH(14); + setAL(0xa); + bop(BIOS_VIDEO_IO); + } + + /* + * Print Insignia Copyright and Version No. + * + * was in bios as: + * p = &M[COPYRIGHT_ADDR]; + * but this is a pain to change so call host routine that can be easily + * changed. host_get_(Mr)_Copyright() + */ + cp = get_copyright(); + while(*cp != '\0') + { + setAH(14); + setAL(*cp++); + bop(BIOS_VIDEO_IO); + } + + cp = host_get_copyright(); + if (*cp) + { + while(*cp != '\0') + { + setAH(14); + setAL(*cp++); + bop(BIOS_VIDEO_IO); + } + setAH(14); + setAL(0xd); /* carriage return feed */ + bop(BIOS_VIDEO_IO); + setAH(14); + setAL(0xa); /* line feed */ + bop(BIOS_VIDEO_IO); + } + +#ifdef LICENSING + if (host_lic_tick) + host_lic_tick(); + + cp = host_lic_string(); + if (*cp) + { + while(*cp != '\0') + { + setAH(14); + setAL(*cp++); + bop(BIOS_VIDEO_IO); + } + setAH(14); + setAL(0xd); /* carriage return feed */ + bop(BIOS_VIDEO_IO); + setAH(14); + setAL(0xa); /* line feed */ + bop(BIOS_VIDEO_IO); + } +#endif /* LICENSING */ + + /* skip another 1 line */ + setAH(14); + setAL(0xa); /* line feed */ + bop(BIOS_VIDEO_IO); + + /* + * Print a line in a non-PROD build to give the developer a clue what + * sort of a SoftPC they are running. + */ +#ifndef PROD + announce_variant(); +#endif /* PROD */ + +#endif /* NTVDM */ + + /* Now search for extra ROM modules */ + search_for_roms(); + + /* Now initialise the other BIOS handlers */ +#if defined (GEN_DRVR) || defined (CDROM) + init_gen_drivers(); +#endif /* GEN_DRVR || CDROM */ + + for (adapter = 0; adapter < NUM_SERIAL_PORTS; adapter++) + { + com_init(adapter); + com_post(adapter); + } + +#ifdef NPX + initialise_npx(); +#endif + dma_init(); + dma_post(); + fla_init(); + mouse_init(); + hda_init(); + +#ifdef PRINTER + for (adapter = 0; adapter < NUM_PARALLEL_PORTS;adapter++) + { + printer_init(adapter); + printer_post(adapter); + } +#endif /* PRINTER */ + +#if defined(DELTA) && defined(A2CPU) + reset_delta_data_structures(); +#endif /* DELTA && A2CPU */ + +#ifdef SOFTWIN_API + ApiReset() ; + ApiDisable() ; +#endif + +#ifdef HUNTER + /* Initialise the Hunter program -- the bug finder */ + hunter_init(); +#endif + +#ifdef LIM +#if !defined(SUN_VA) && !defined(NTVDM) +/* + Temporary removal of LIM for SUN_VA until this issue is sorted out +*/ + /* + * Initialise the LIM + * + * 'free expanded memory' only does anything if expanded memory + * has previously been initialised + * + * GISP_SVGAs may need to disable LIM if there isn't room in the + * UMA for the page frame, so don't insist on LIM for these. + */ + +#ifdef GISP_SVGA + if(!LimBufferInUse()) { +#endif /*GISP_SVGA */ + if (soft_reset) /* if LIM already initialised */ + free_expanded_memory(); + + backFill = (SHORT) (config_inquire(C_MEM_LIMIT, NULL)? 256: 640); + if (limSize = (ULONG)config_inquire(C_LIM_SIZE, NULL)) + while (init_expanded_memory(limSize, backFill) != SUCCESS) + { + free_expanded_memory(); + host_error(EG_EXPANDED_MEM_FAILURE, ERR_QU_CO, NULL); + } +#ifdef GISP_SVGA + } /* end of additional check for no LIM buffer */ +#endif /*GISP_SVGA */ +#endif /* !SUN_VA & !NTVDM */ + +#endif /* LIM */ + +#ifdef NTVDM +/* lim stuff has been moved to config.c */ +#endif + +#ifndef NTVDM + host_reset(); +#endif + + /* Do diskette BIOS POST */ + diskette_post(); + + disk_post(); + +#ifdef NTVDM + /* On NT do this after everything else is done */ + host_reset(); + q_event_init(); +#endif + + /* + * allow routines to distinguish between the initial boot and the 'soft' + * or ctl-alt-del variety + */ + soft_reset = 1; + + + /* Now perform any other initialisation of DOS Drivers */ +#ifdef HFX + hfx_init(); +#endif +} + +/*( +================================ reset_bios_flags ============================= +PURPOSE: To ensure that we reset "cleanly" + -- clear out the keyboard flags and the CMOS shutdown byte. + This fixes things like Lotus 123r31 giving an "Involuntary + return to real mode" error when rebooting via the user interface. +INPUT: +OUTPUT: +=============================================================================== +)*/ + +GLOBAL void reset_bios_flags IFN0() +{ + sas_PW16(RESET_FLAG, SOFT_FLAG); + sas_PW8 (kb_flag, 0); + sas_PW8 (kb_flag_1, 0); + sas_PW8 (alt_input, 0); + + /* clear shut down byte */ + cmos_clear_shutdown_byte(); +} diff --git a/private/mvdm/softpc.new/base/bios/rom_basc.c b/private/mvdm/softpc.new/base/bios/rom_basc.c new file mode 100644 index 000000000..25b534921 --- /dev/null +++ b/private/mvdm/softpc.new/base/bios/rom_basc.c @@ -0,0 +1,45 @@ +#include "insignia.h" +#include "host_def.h" +/*[ + Name: rom_basic.c + Derived From: Base 1.0 + Author: David Rees. + Created On: Unknown + Sccs ID: 08/03/93 @(#)rom_basic.c 1.7 + Purpose: A function which reports an error when an attempt + is made to run ROM BASIC. + + (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved. + +]*/ + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_SUPPORT.seg" +#endif + + +/* + * O/S include files. + */ +#include +#include TypesH + +/* + * SoftPC include files + */ +#include "xt.h" +#include CpuH +#include "host.h" +#include "error.h" +#include "sas.h" + + +void rom_basic() +{ + host_error(EG_NO_ROM_BASIC, ERR_CONT, NULL); +} diff --git a/private/mvdm/softpc.new/base/bios/rtc_bios.c b/private/mvdm/softpc.new/base/bios/rtc_bios.c new file mode 100644 index 000000000..531e461ee --- /dev/null +++ b/private/mvdm/softpc.new/base/bios/rtc_bios.c @@ -0,0 +1,153 @@ +/* + * @(#)rtc_bios.c 1.12 06/28/95 + * + * This file has been deleted, its functionality has been replaced by + * a pure Intel implementation in bios4.rom + */ + + + + +/* + * But not for ntvdm! + */ + + +#include "insignia.h" +#include "host_def.h" +#include "xt.h" +#include CpuH +#include "host.h" +#include "bios.h" +#include "cmos.h" +#include "sas.h" +#include "ios.h" +#include "rtc_bios.h" + +#ifdef NTVDM + +/* +========================================================================= + +FUNCTION : rtc_int + +PURPOSE : interrupt called from real time clock + +RETURNED STATUS : None + +DESCRIPTION : + + +======================================================================= +*/ +#ifdef MONITOR + + /* + ** Tim, June 92, for Microsoft pseudo-ROM. + ** Call the NTIO.SYS int 4a routine, not + ** the one in real ROM. + */ +extern word rcpu_int4A_seg; /* in keybd_io.c */ +extern word rcpu_int4A_off; /* in keybd_io.c */ + +#ifdef RCPU_INT4A_SEGMENT +#undef RCPU_INT4A_SEGMENT +#endif +#ifdef RCPU_INT4A_OFFSET +#undef RCPU_INT4A_OFFSET +#endif + +#define RCPU_INT4A_SEGMENT rcpu_int4A_seg +#define RCPU_INT4A_OFFSET rcpu_int4A_off + +#endif + + + + +void rtc_int(void) + +{ + half_word regC_value, /* value read from cmos register C */ + regB_value, /* value read from cmos register B */ + regB_value2; /* 2nd value read from register B */ + DOUBLE_TIME time_count; /* timer count in microseconds */ + double_word orig_time_count; /* timer count before decrement */ + word flag_seg, /* segment address of users flag */ + flag_off, /* offset address of users flag */ + CS_saved, /* CS before calling re-entrant CPU */ + IP_saved; /* IP before calling re-entrant CPU */ + + outb( CMOS_PORT, (CMOS_REG_C + NMI_DISABLE) ); + inb( CMOS_DATA, ®C_value ); /* read register C */ + + outb( CMOS_PORT, (CMOS_REG_B + NMI_DISABLE) ); + inb( CMOS_DATA, ®B_value ); /* read register B */ + + outb( CMOS_PORT, CMOS_SHUT_DOWN ); + + regB_value &= regC_value; + + if (regB_value & PIE) + { + /* decrement wait count */ + sas_loadw( RTC_LOW, &time_count.half.low ); + sas_loadw( RTC_HIGH, &time_count.half.high ); + orig_time_count = time_count.total; + time_count.total -= TIME_DEC; + sas_storew( RTC_LOW, time_count.half.low ); + sas_storew( RTC_HIGH, time_count.half.high ); + + /* Has countdown finished */ + if ( time_count.total > orig_time_count ) /* time_count < 0 ? */ + { + /* countdown finished */ + /* turn off PIE */ + outb( CMOS_PORT, (CMOS_REG_B + NMI_DISABLE) ); + inb( CMOS_DATA, ®B_value2 ); + outb( CMOS_PORT, (CMOS_REG_B + NMI_DISABLE) ); + outb( CMOS_DATA, (regB_value2 & 0xbf) ); + + /* set users flag */ + sas_loadw( USER_FLAG_SEG, &flag_seg ); + sas_loadw( USER_FLAG, &flag_off ); + sas_store( effective_addr(flag_seg, flag_off), 0x80 ); + + /* check for wait active */ + if( sas_hw_at(rtc_wait_flag) & 2 ) + sas_store (rtc_wait_flag, 0x83); + else + sas_store (rtc_wait_flag, 0); + + } + } + + + /* + * If alarm interrupt, call interrupt 4ah + */ + if (regB_value & AIE) { + CS_saved = getCS(); + IP_saved = getIP(); + setCS( RCPU_INT4A_SEGMENT ); + setIP( RCPU_INT4A_OFFSET ); + host_simulate(); + setCS( CS_saved ); + setIP( IP_saved ); + } + + + + /* + * Eoi rtc interrupt + */ + outb( ICA1_PORT_0, 0x20 ); + outb( ICA0_PORT_0, 0x20 ); + + return; +} + + + + +#endif /* NTVDM */ diff --git a/private/mvdm/softpc.new/base/bios/slave_bs.c b/private/mvdm/softpc.new/base/bios/slave_bs.c new file mode 100644 index 000000000..adad25705 --- /dev/null +++ b/private/mvdm/softpc.new/base/bios/slave_bs.c @@ -0,0 +1,170 @@ +#include "insignia.h" +#include "host_def.h" +/* INSIGNIA MODULE SPECIFICATION + ----------------------------- + +MODULE NAME : Slave Interrupt Bios + + THIS PROGRAM SOURCE FILE IS SUPPLIED IN CONFIDENCE TO THE + CUSTOMER, THE CONTENTS OR DETAILS OF ITS OPERATION MAY + ONLY BE DISCLOSED TO PERSONS EMPLOYED BY THE CUSTOMER WHO + REQUIRE A KNOWLEDGE OF THE SOFTWARE CODING TO CARRY OUT + THEIR JOB. DISCLOSURE TO ANY OTHER PERSON MUST HAVE PRIOR + AUTHORISATION FROM THE DIRECTORS OF INSIGNIA SOLUTIONS INC. + +DESIGNER : J.P.Box +DATE : October '88 + +PURPOSE : To provide BIOS code used by the interrupts from + the slave ICA + +The Following Routines are defined: + 1. D11_int + 2. re_direct + 3. int_287 + +========================================================================= + +AMMENDMENTS : + +========================================================================= +*/ + +#ifdef SCCSID +static char SccsID[]=" @(#)slave_bios.c 1.6 08/10/92 Copyright Insignia Solutions Ltd."; +#endif + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "AT_STUFF.seg" +#endif + +#include "xt.h" +#include "ios.h" +#include "sas.h" + + +/* +========================================================================= + +FUNCTION : D11_int + +PURPOSE : Services unused interrupt vectors + +RETURNED STATUS : None + +DESCRIPTION : + + +======================================================================= +*/ +#define intr_flag 0x46b + +void D11_int() +{ + half_word level, /* int. level being serviced */ + level2, /* ica2 level being serviced */ + mask; /* interrupt mask */ + + /* read in-service register */ + outb( ICA0_PORT_0, 0x0B ); + inb( ICA0_PORT_0, &level ); + + if( level == 0 ) + { + /* Not a H/w interrupt */ + level = 0xff; + } + else + { + /* read in-service register from int controller 2 */ + outb( ICA1_PORT_0, 0x0B ); + inb( ICA1_PORT_0, &level2 ); + + if( level2 == 0 ) + { + /* get current mask value */ + inb( ICA0_PORT_1, &mask ); + + /* don't disable 2nd controller */ + level &= 0xfb; + + /* set new interrupt mask */ + mask |= level; + outb( ICA0_PORT_1, mask ); + } + else + { + /* get 2nd interrupt mask */ + inb( ICA1_PORT_1, &mask ); + + /* mask off level being serviced */ + mask |= level2; + outb( ICA1_PORT_1, mask ); + + /* send EOI to 2nd chip */ + outb( ICA1_PORT_1, 0x20 ); + } + /* send EOI to 1st chip */ + outb( ICA0_PORT_0, 0x20 ); + } + /* set flag */ + sas_store (intr_flag , level); + + return; +} + +/* +========================================================================= + +FUNCTION : re_direct + +PURPOSE : re direct slave interrupt 9 to level 2 + +RETURNED STATUS : None + +DESCRIPTION : + +======================================================================= +*/ +void re_direct() + +{ + /* EOI to slave interrupt controller */ + + outb( ICA1_PORT_0, 0x20 ); + + return; +} + +/* +========================================================================= + +FUNCTION : int_287 + +PURPOSE : service X287 interrupts + +RETURNED STATUS : none + +DESCRIPTION : + +======================================================================= +*/ +void int_287() + +{ + /* remove the interrupt request */ + outb(0xf0, 0); + + /* enable the interrupt */ + outb( ICA1_PORT_0, 0x20 ); /* Slave */ + outb( ICA0_PORT_0, 0x20 ); /* Master */ + + /* int 02 is now called from bios1.rom */ + + return; +} diff --git a/private/mvdm/softpc.new/base/bios/sources b/private/mvdm/softpc.new/base/bios/sources new file mode 100644 index 000000000..179eed096 --- /dev/null +++ b/private/mvdm/softpc.new/base/bios/sources @@ -0,0 +1,70 @@ +!IF 0 + +Copyright (c) 1989 Microsoft Corporation + +Module Name: + + sources. + +Abstract: + + This file specifies the target component being built and the list of + sources files needed to build that component. Also specifies optional + compiler switches and libraries that are unique for the component being + built. + + +Author: + + Steve Wood (stevewo) 12-Apr-1990 + +NOTE: Commented description of this file is in \nt\bak\bin\sources.tpl + +!ENDIF + + +MAJORCOMP=spcbase +MINORCOMP=bios + + +TARGETNAME=bios + +TARGETPATH=obj + + +NTPROFILEINPUT=yes + +# Pick one of the following and delete the others +TARGETTYPE=LIBRARY + + +TARGETLIBS= + +SOFTPC_TREE=$(BASEDIR)\private\mvdm\softpc.new + +INCLUDES=$(SOFTPC_TREE)\host\inc;$(SOFTPC_TREE)\base\inc;$(BASEDIR)\private\inc +!IF $(ALPHA) +GPSIZE=0 +!ELSE +GPSIZE=0 +!ENDIF + + +SOURCES=bios.c \ + cmos_bis.c \ + cntlbop.c \ + emm_fncs.c \ + reset.c \ + rom_basc.c \ + rtc_bios.c \ + slave_bs.c \ + tape_io.c \ + equipmnt.c \ + ill_bop.c \ + build_id.c \ + virtual.c \ + mem_size.c + +!INCLUDE $(SOFTPC_TREE)\obj.vdm\CDEFINE.INC + +UMTYPE=console diff --git a/private/mvdm/softpc.new/base/bios/tape_io.c b/private/mvdm/softpc.new/base/bios/tape_io.c new file mode 100644 index 000000000..e1fd245f0 --- /dev/null +++ b/private/mvdm/softpc.new/base/bios/tape_io.c @@ -0,0 +1,325 @@ +#include "insignia.h" +#include "host_def.h" +/* + * SoftPC Revision 3.0 + * + * Title : cassette_io + * + * Description : Cassette i/o functions - interrupt 15H. + * + * Notes : None + * + */ + +/* + * static char SccsID[]="@(#)tape_io.c 1.26 06/28/95 Copyright Insignia Solutions Ltd."; + */ + + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_BIOS.seg" +#endif + +/* + * O/S include files. + */ +#include +#include TypesH + +/* + * SoftPC include files + */ +#include "xt.h" +#include CpuH +#include "sas.h" +#include "ios.h" +#include "bios.h" +#include "tape_io.h" +#include "ica.h" +#include "cmos.h" +#include "rtc_bios.h" +#include "cmosbios.h" +#include "trace.h" +#include "debug.h" +#include "quick_ev.h" + + +#define ONE_MEGABYTE (1024 * 1024) +#define SIXTY_FOUR_K (64 * 1024) +#define WRAP_AREA(addr) (addr) >= ONE_MEGABYTE && (addr) < ONE_MEGABYTE + SIXTY_FOUR_K + +LOCAL q_ev_handle wait_event_handle = (q_ev_handle)0; + +/* Call back routine that needs to set a user's flag byte */ +LOCAL void wait_event IFN1(long, parm) +{ + LIN_ADDR addr = (LIN_ADDR)parm; + + note_trace1(CMOS_VERBOSE, "INT15_EVENT_WAIT: delay complete: flag at %05x\n", addr); + + sas_store( addr, sas_hw_at( addr ) | 0x80 ); + wait_event_handle = (q_ev_handle)0; +} + +void cassette_io() +{ +#ifdef PM +#ifndef CPU_30_STYLE +IMPORT void retrieve_descr_fields IPT4(half_word *, AR, sys_addr *, base, + word *, limit, sys_addr, descr_addr); +#endif /* not CPU_30_STYLE */ +half_word cmos_u_m_s_hi; +half_word cmos_u_m_s_lo; +sys_addr gdt; +sys_addr source; +sys_addr source_base; +sys_addr target; +#if (!defined(PROD) || !defined(CPU_30_STYLE)) +word source_limit; +word target_limit; +#endif +sys_addr target_base; +sys_addr byte_count; /* Max size is 0x8000 * 2 = 10000 */ +#ifdef CPU_30_STYLE +DESCR src_entry; +DESCR dst_entry; +#else +half_word source_AR; +half_word target_AR; +#endif /* CPU_30_STYLE */ +#endif /* PM */ + + half_word mask, /* interrupt mask */ + alarm; /* value read from alarm register */ + +#if defined(NTVDM) && defined(MONITOR) + IMPORT word conf_15_seg, conf_15_off; +#endif /* NTVDM & MONITOR */ + /* + * Determine function + */ + switch ( getAH() ) + { + case INT15_DEVICE_OPEN: + case INT15_DEVICE_CLOSE: + case INT15_PROGRAM_TERMINATION: + case INT15_REQUEST_KEY: + case INT15_DEVICE_BUSY: + setAH( 0 ); + setCF( 0 ); + break; + + case INT15_EMS_DETERMINE: +#if 0 /* I'm sure we've all had enough of this one */ + always_trace0("INT15 Extended Memory Access"); +#endif +#ifdef PM + outb(CMOS_PORT, CMOS_U_M_S_LO); + inb(CMOS_DATA, &cmos_u_m_s_lo); + outb(CMOS_PORT, CMOS_U_M_S_HI); + inb(CMOS_DATA, &cmos_u_m_s_hi); + setAH(cmos_u_m_s_hi); + setAL(cmos_u_m_s_lo); +#else + setAX ( 0 ); +#endif /* PM */ + break; + case INT15_MOVE_BLOCK: +#ifdef PM + /* Unlike the real PC we don't have to go into protected + mode in order to address memory above 1MB, thanks to + the wonders of C this function becomes much simpler + than the contortions of the bios */ + + gdt = effective_addr(getES(), getSI()); + source = gdt + 0x10; /* see layout in bios listing */ + target = gdt + 0x18; + +#ifdef CPU_30_STYLE + read_descriptor(source, &src_entry); + read_descriptor(target, &dst_entry); + source_base = src_entry.base; + target_base = dst_entry.base; +#ifndef PROD + source_limit = src_entry.limit; + target_limit = dst_entry.limit; +#endif + + assert1( (src_entry.AR & 0x9e) == 0x92, "Bad source access rights %x", src_entry.AR ); + assert1( (dst_entry.AR & 0x9e) == 0x92, "Bad dest access rights %x", dst_entry.AR ); + +#else /* CPU_30_STYLE */ + /* retrieve descriptor information for source */ + retrieve_descr_fields(&source_AR, &source_base, &source_limit, source); + + /* retrieve descriptor information for target */ + retrieve_descr_fields(&target_AR, &target_base, &target_limit, target); +#endif /* CPU_30_STYLE */ + + /* make word count into a byte count */ + byte_count = getCX() << 1; + + assert1( byte_count <= 0x10000, "Invalid byte_count %x", byte_count ); + + /* Check count not outside limits of target + and source blocks. */ + + assert0( byte_count <= source_limit + 1, "Count outside source limit" ); + assert0( byte_count <= target_limit + 1, "Count outside target limit" ); + + /* TO DO: Check base addresses of target and source + fall within the area of extended memory + that we support */ + + /* Go to it */ + if (sas_twenty_bit_wrapping_enabled()) + { +#ifdef NTVDM + /* call xms functions to deal with A20 line */ + xmsDisableA20Wrapping(); + sas_move_words_forward ( source_base, target_base, byte_count >> 1); + xmsEnableA20Wrapping(); +#else + sas_disable_20_bit_wrapping(); + sas_move_words_forward ( source_base, target_base, byte_count >> 1); + sas_enable_20_bit_wrapping(); +#endif /* NTVDM */ + } + else + sas_move_words_forward ( source_base, target_base, byte_count >> 1); + + /* set for good completion, just like bios after reset */ + setAH(0); + setCF(0); + setZF(1); + setIF(1); +#else + setCF(1); + setAH(INT15_INVALID); +#endif + break; + + case INT15_VIRTUAL_MODE: + always_trace0("INT15 Virtual Mode (Go into PM)"); +#ifdef PM + /* + * This function returns to the user in protected mode. + * + * See BIOS listing 5-174 AT Tech Ref for full details + * + * Upon entry the following is expected to be set up:- + * + * ES - GDT segment + * SI - GDT offset + * BH - hardware int level 1 offset + * BL - hardware int level 2 offset + * + * Also + * + * (ES:SI) -> 0 +-------------+ + * | DUMMY | + * 8 +-------------+ + * | GDT | + * 16+-------------+ + * | IDT | + * 24+-------------+ + * | DS | + * 32+-------------+ + * | ES | + * 40+-------------+ + * | SS | + * 48+-------------+ + * | CS | + * 52+-------------+ + * | (BIOS CS) | + * +-------------+ + */ + + /* Clear interrupt flag - no ints allowed in this mode. */ + setIF(0); + + /* Enable a20. */ + sas_disable_20_bit_wrapping(); + + /* Reinitialise ICA0 to the offset given in BH. */ + outb(ICA0_PORT_0, (half_word)0x11); + outb(ICA0_PORT_1, (half_word)getBH()); + outb(ICA0_PORT_1, (half_word)0x04); + outb(ICA0_PORT_1, (half_word)0x01); + outb(ICA0_PORT_1, (half_word)0xff); + + /* Reinitialise ICA1 to the offset given in BL. */ + outb(ICA1_PORT_0, (half_word)0x11); + outb(ICA1_PORT_1, (half_word)getBL()); + outb(ICA1_PORT_1, (half_word)0x02); + outb(ICA1_PORT_1, (half_word)0x01); + outb(ICA1_PORT_1, (half_word)0xff); + + /* Set DS to the ES value for the bios rom to do the rest. */ + setDS(getES()); + +#else + setCF(1); + setAH(INT15_INVALID); +#endif /* PM */ + break; + + case INT15_INTERRUPT_COMPLETE: + break; + case INT15_CONFIGURATION: +#if defined(NTVDM) && defined(MONITOR) + setES( conf_15_seg ); + setBX( conf_15_off ); +#else + setES( getCS() ); + setBX( CONF_TABLE_OFFSET ); +#endif + setAH( 0 ); + setCF( 0 ); + break; + +#ifdef SPC486 + case 0xc9: + setCF( 0 ); + setAH( 0 ); + setCX( 0xE401 ); + note_trace0(GENERAL_VERBOSE, "INT15: C9 chip revision"); + break; +#endif /* SPC486 */ + + /* Keyboard intercept 0x4f, wait_event 83, wait 86 are all no longer + * passed through from ROM. + */ + + default: + /* + * All other functions invalid. + */ +#ifndef PROD + { + LIN_ADDR stack=effective_addr(getSS(),getSP()); + + IU16 ip = sas_w_at(stack); + IU16 cs = sas_w_at(stack+2); + + note_trace3(GENERAL_VERBOSE, "INT15: AH=%02x @ %04x:%04x", getAH(), cs, ip); + } +#endif /* PROD */ + + /* Fall through */ + + case INT15_JOYSTICK: + case 0x24: /* A20 wrapping control */ + case 0xd8: /* EISA device access */ + case 0x41: /* Laptop wait event */ + setCF(1); + setAH(INT15_INVALID); + break; + } +} + diff --git a/private/mvdm/softpc.new/base/bios/virtual.c b/private/mvdm/softpc.new/base/bios/virtual.c new file mode 100644 index 000000000..1b9d6d2e7 --- /dev/null +++ b/private/mvdm/softpc.new/base/bios/virtual.c @@ -0,0 +1,844 @@ +#include "insignia.h" +#include "host_def.h" +/* + * + * Title : virtual.c + * + * Description : Virtual Machine support for Windows 3.x. + * aka Non-Intel Driver Data Block (NIDDB) Manager. + * + * + */ + +#ifdef SCCSID +static char SccsID[]="@(#)virtual.c 1.9 07/05/95 Copyright Insignia Solutions Ltd."; +#endif + +/* + * O/S include files. + */ +#include +#if defined(NTVDM) && defined(MONITOR) +#include +#endif + +#include TypesH +#include StringH + +/* + * SoftPC include files + */ +#include "xt.h" +#include CpuH +#include "sas.h" +#include "bios.h" +#include "virtual.h" +#include "error.h" +#include "debug.h" + +/* + This file implements the Non-Intel Driver Data Block (NIDDB) Manager. This + service allows Insignia DOS Device Drivers or TSRs with C code and data to + operate correctly under the Virtual Machines of Windows 3.x Enhanced Mode. + Essentially the Device Driver informs this manager of the C (or Non-Intel) + data area associated with the Driver and this manager does the rest, providing + specific instances (copies) of the data area for each Virtual Machine. It + performs it's work in cooperation with INSIGNIA.386 a Virtual Device Driver + (VxD) written for the Windows 3.x enviroment. + + First a quick summary of the Device Drivers viewpoint. All driver data is + assembled into one data structure:- + + typedef struct + { + IU32 my_var_1; + IU8 my_var_2; + } MY_INSTANCE_DATA, **MY_INSTANCE_DATA_HANDLE; + + and a variable is reserved to hold a handle (a handle is merely a pointer to + a pointer) to the data structure:- + + MY_INSTANCE_DATA_HANDLE my_handle; + + Optionally a create callback procedure can be defined:- + + void create_callback IFN1 + ( + MY_INSTANCE_DATA_HANDLE, orig_handle + ) + { + .... + } + + Optionally a terminate callback procedure can be defined:- + + void terminate_callback IFN0() + { + .... + } + + When the driver is initialised (as DOS boots) the initial data area is + requested from the NIDDB Manager:- + + my_handle = (MY_INSTANCE_DATA_HANDLE)NIDDB_Allocate_Instance_Data( + sizeof(MY_INSTANCE_DATA), + create_callback, (0 if no callback required) + terminate_callback); (0 if no callback required) + + A return value of 0 indicates an error has occured and the data area can't be + supported, otherwise the NIDDB Manager has taken control of the data area. + After this all accesses to the data area should be via the handle, further + dereferenced variables within the data area should not be saved over BOP + invocations. Correct access is as follows:- + + (*my_handle)->my_var_1 = 1; + (*my_handle)->my_var_2 = 2; + + The NIDDB Manager will call the create_callback function during the initial + NIDDB_Allocate_Instance_Data call (initial_instance is TRUE) or during the + creation of each Virtual Machine (initial_instance is FALSE). Typically the + create callback is used to initialise any data variables for the new instance. + It is particularly important that, for example, pointers to dynamically + allocated host memory are initialised, otherwise duplicate host pointers may + result. Note for the creation of Virtual Machines all variables will have + been copied from the initial instance before the create callback routine is + called. However the create_callback function must copy any dynamically + allocated data structures referenced from the instanced variables, the + parameter 'orig_handle' points to the source instance. + + The NIDDB Manager will call the terminate_callback function just before a + Virtual Machine (and hence its associated data) is terminated. The data + variables active will be those of the terminating Virtual Machine. During + the terminate callback the device driver can perform housekeeping as required. + For example, if a variable is a pointer to dynamically allocated host memory, + then the host memory may be freed. + + When the device driver terminates (just ahead of reboot) it should inform the + NIDDB Manager that the data area is no longer required:- + + NIDDB_Deallocate_Instance_Data(my_handle); + + + Now an internal viewpoint. We are driven by two masters, firstly the + NIDDB_Allocate_Instance_Data and NIDDB_Deallocate_Instance_Data calls which + require memory allocation and freeing, and secondly the VxD messages (from + INSIGNIA.386) which require creation, swapping and deletion of any defined + data areas. It is possible that these two masters make contradictory requests. + + The NIDDB Manager makes a couple of simplyfing assumptions to ease the + implementation and clarify it's responses to conflicting requests. + + 1) Only a very small number of data areas are expected to be allocated, there + being only a few Insignia device drivers. Hence a very small fixed table is + used to hold each allocated handle. This avoids the slightly more complex + use of linked lists. + + 2) Once we have started instancing the data areas (Sys_VM_Init) no new data + areas may be allocated or deallocated until after all instancing has been + terminated (System_Exit, Device_Reboot_Notify). + + 3) A specific entry point (NIDDB_System_Reboot) is used to catch reboots + (usually from User Interface) which bypass the normal Windows exit sequence. + + + Now an overview of of the data structures employed:- + + master_ptrs Fixed length table of master pointers. + Pointed to by handles returned to Device Driver, hence can + not be moved or have entries re-assigned. A zero entry + indicates that the handle is free for allocation. It in + effect holds the current pointers for the exported handles. + + snapshot_ptrs Fixed length table of snapshot pointers. + While initial allocation is in progress, this table mirrors + the master_ptrs table. Once instancing starts the table + holds the pointers to the initial data. This data is used + to initialise each new instance, it is also restored as + the current data when instancing terminates. + + instance_size Fixed length table of byte sizes. + Holds data area size for each allocated data area. + + create_callback Fixed length table of function pointers. + Holds create callback function pointer for each + allocated data area. A zero value indicates no + callback exists. + + terminate_callback Fixed length table of function pointers. + Holds terminate callback function pointer for each + allocated data area. A zero value indicates no + callback exists. + + vrecs Fixed length table of 'virtual records'. + Each virtual record hold two entries, the instance handle + of the Windows Virtual Machine and a pointer to the + associated instance_ptrs. It is indexed via the BIOS + virtualising byte value. It hooks together the Virtual + Machine messages and our native data area allocations. + + instance_ptrs Fixed length table which is dynamically allocated for + each new instance, its layout and meaning follows that of + the master_ptrs, except the pointers are to the instance + copy of the data areas. When an instance is swapped to, the + pointers held here are copied to master_ptrs. + + allocation_allowed Boolean which controls Device Driver allocation and + deallocation requests. + + And an overview of the functions employed (minus error handling):- + + NIDDB_Allocate_Instance_Data + + Allocate (host_malloc) data area of requested size. + Find entry in master_ptrs(and snapshot_ptrs) and set to pointer to + allocated data area. + Save size of data area in instance_size. + Save create and terminate callbacks. + Return pointer to master_ptrs entry, ie the handle. + + NIDDB_Deallocate_Instance_Data + + Deallocate (host_free) data area given by input handle. + Set master_ptrs(and snapshot_ptrs) entry to 0. + + allocate_NIDDB + + Allocate new instance_ptrs table. + Allocate space for all data areas requested for instancing, storing + pointers in new instance_ptrs table. + Set up new entry in vrecs and return index to it. + + copy_instance_data + + Copy data in one instanced data block (typically the snapshot, ie + using the pointers in snapshot_ptrs) to another instanced data block + (typically a new instance, ie using the pointers in instance_ptrs). + + restore_snapshot + + Copy snapshot_ptrs to master_ptrs. + + NIDDB_is_active + + Return true if the driver is active (ie allocation is disallowed) + + NIDDB_present + + Return true if any vrec is active (ie holds non zero pointer). + + delete_NIDDB + + Given index to vrecs, access instance_ptrs table. + Call terminate callbacks. + Deallocate (host_free) all data areas in instance_ptrs table. + Deallocate (host_free) instance_ptrs table. + Zero vrec entry. + + deallocate_specific_NIDDB + + Search vrec table for given instance handle to Windows Virtual Machine, + then call delete_NIDDB to remove the instance. + + deallocate_all_NIDDB + + Search vrec table for all active instance handles to Windows Virtual + Machines, calling delete_NIDDB to remove each instance. + + swap_NIDDB + + Given current virtualising byte, look up appropriate vrec entry for + pointer to instance_ptrs table. + Copy instance_ptrs to master_ptrs. + */ + +/* Control Messages received by Virtual Device Drivers (Windows 3.1) */ +#define VxD_Sys_Critical_Init 0x00 +#define VxD_Device_Init 0x01 +#define VxD_Init_Complete 0x02 +#define VxD_Sys_VM_Init 0x03 +#define VxD_Sys_VM_Terminate 0x04 +#define VxD_System_Exit 0x05 +#define VxD_Sys_Critical_Exit 0x06 +#define VxD_Create_VM 0x07 +#define VxD_VM_Critical_Init 0x08 +#define VxD_VM_Init 0x09 +#define VxD_VM_Terminate 0x0A +#define VxD_VM_Not_Executeable 0x0B +#define VxD_Destroy_VM 0x0C +#define VxD_VM_Suspend 0x0D +#define VxD_VM_Resume 0x0E +#define VxD_Set_Device_Focus 0x0F +#define VxD_Begin_Message_Mode 0x10 +#define VxD_End_Message_Mode 0x11 +#define VxD_Reboot_Processor 0x12 +#define VxD_Query_Destroy 0x13 +#define VxD_Debug_Query 0x14 +#define VxD_Begin_PM_App 0x15 +#define VxD_End_PM_App 0x16 +#define VxD_Device_Reboot_Notify 0x17 +#define VxD_Crit_Reboot_Notify 0x18 +#define VxD_Close_VM_Notify 0x19 +#define VxD_Power_Event 0x1A + +/* + Define number of data instances we are prepared to manage. + Note by design this is kept to a very small number. + */ +#define MAX_INSTANCES 4 + +/* + Define number of Virtual Machines we are prepared to support. + The virtualising byte would allow a maximuum of 256. + */ +#define MAX_VMS 80 + +typedef struct + { + IU32 vr_inst_handle; /* Windows instance handle for Virtual Machine */ + IHP *vr_pinst_tbl; /* Pointer to host instance_ptr table */ + } VIRTUAL_RECORD; + +/* + The static data structures. + */ +LOCAL IHP master_ptrs[MAX_INSTANCES]; +LOCAL IHP snapshot_ptrs[MAX_INSTANCES]; +LOCAL IU32 instance_size[MAX_INSTANCES]; /* in bytes */ + +LOCAL NIDDB_CR_CALLBACK create_callback[MAX_INSTANCES]; +LOCAL NIDDB_TM_CALLBACK terminate_callback[MAX_INSTANCES]; + +LOCAL VIRTUAL_RECORD vrecs[MAX_VMS]; + +LOCAL IBOOL allocation_allowed = TRUE; +LOCAL IU32 insignia_386_version; /* Version number of out intel VxD code */ +LOCAL last_virtual_byte = 0; /* ID of last Virtual Machine seen */ + +/* + Prototype local routines. + */ +LOCAL IBOOL allocate_NIDDB IPT2 + ( + IU32, inst_handle, + int *, record_id + ); + +LOCAL void copy_instance_data IPT2 + ( + IHP *, to, + IHP *, from + ); + +LOCAL void deallocate_all_NIDDB IPT0(); + +LOCAL void deallocate_specific_NIDDB IPT1 + ( + IU32, inst_handle + ); + +LOCAL void delete_NIDDB IPT1 + ( + int, record_id + ); + +LOCAL IBOOL NIDDB_present IPT0(); + +LOCAL void restore_snapshot IPT0(); + +LOCAL void swap_NIDDB IPT1 + ( + IU8, vb + ); + +/* =========================================================================== */ +/* LOCAL ROUTINES */ +/* =========================================================================== */ + +/* Allocate data structures required for new data instance. */ +LOCAL IBOOL allocate_NIDDB IFN2 + ( + IU32, inst_handle, /* (I ) Windows handle for Virtual Machine */ + int *, record_id /* ( 0) Record ID (ie virtualising byte value) */ + ) + { + int v; + int i; + IHP *p; + IHP *instance_ptr; + + /* Search for empty virtual record */ + for (v = 0; v < MAX_VMS; v++) + { + if ( vrecs[v].vr_pinst_tbl == (IHP *)0 ) + break; /* found empty slot */ + } + + /* Ensure we found empty slot */ + if ( v == MAX_VMS ) + { + /* No free slot! */ + always_trace0("NIDDB: Too many Virtual Machines being requested."); + return FALSE; + } + + /* Allocate new instance table - ensure it is zero */ + if ( (instance_ptr = (IHP *)host_calloc(1, sizeof(master_ptrs))) == (IHP *)0 ) + { + /* No room at the inn */ + return FALSE; + } + + /* Allocate new data areas */ + for (i = 0, p = instance_ptr; i < MAX_INSTANCES; i++, p++) + { + /* Use master pointer as the 'creation template' */ + if ( master_ptrs[i] != (IHP *)0 ) + { + if ( (*p = (IHP)host_malloc(instance_size[i])) == (IHP)0 ) + { + /* No room at the inn */ + + /* Clean up any blocks which may have been allocated */ + for (i = 0, p = instance_ptr; i < MAX_INSTANCES; i++, p++) + { + if ( *p != (IHP)0 ) + host_free(*p); + } + + return FALSE; + } + } + } + + /* Finally fill in virtual record */ + vrecs[v].vr_inst_handle = inst_handle; + vrecs[v].vr_pinst_tbl = instance_ptr; + *record_id = v; + return TRUE; + } + +/* Copy data items from one instance to another */ +LOCAL void copy_instance_data IFN2 + ( + IHP *, to, /* (I ) Pntr to table of destination area pointers */ + IHP *, from /* (I ) Pntr to table of source area pointers */ + ) + { + int i; + + /* + Note the 'from' instance is assumed to be currently active, ie activated + by the caller. + */ + + /* Process each possible data area */ + for (i = 0; i < MAX_INSTANCES; i++, to++, from++) + { + if ( *to != (IHP)0 ) + { + /* Copy data for this instance */ + memcpy(*to, *from, instance_size[i]); + + /* Action any create callback */ + if ( create_callback[i] != (NIDDB_CR_CALLBACK)0 ) + { + (create_callback[i])(from); + } + } + } + } + +/* Find all data instances and delete them. */ +LOCAL void deallocate_all_NIDDB IFN0() + { + int v; + + /* Search (linear) table for all extant data instances */ + for (v = 0; v < MAX_VMS; v++ ) + { + if ( vrecs[v].vr_pinst_tbl != (IHP *)0 ) + { + /* Found extant instance - eliminate */ + delete_NIDDB(v); + } + } + } + +/* Find given data instance and delte it.*/ +LOCAL void deallocate_specific_NIDDB IFN1 + ( + IU32, inst_handle /* Windows handle for Virtual Machine */ + ) + { + int v; + + /* Search (linear) table for given VM handle */ + for (v = 0; v < MAX_VMS; v++ ) + { + if ( vrecs[v].vr_inst_handle == inst_handle ) + { + /* Found deletion candidate - eliminate */ + delete_NIDDB(v); + return; /* all done, handles are unique */ + } + } + + /* Search fails - moan */ + always_trace0("NIDDB: Attempt to remove non existant VM data instance."); + } + +/* Deallocate all data and structues for given data instance. */ +LOCAL void delete_NIDDB IFN1 + ( + int, record_id /* (I ) Record ID (ie virtualising byte value) */ + ) + { + int i; + IHP *instance_ptr; + + /* Ensure instance is active (for terminate callback). */ + swap_NIDDB(record_id); + + instance_ptr = vrecs[record_id].vr_pinst_tbl; + + /* Deallocate all data areas in instance_ptr table. */ + for (i = 0; i < MAX_INSTANCES; i++, instance_ptr++) + { + if ( *instance_ptr != (IHP)0 ) + { + /* Action any terminate callback */ + if ( terminate_callback[i] != (NIDDB_TM_CALLBACK)0 ) + { + (terminate_callback[i])(); + } + + /* free up memory */ + host_free(*instance_ptr); + } + } + + /* Deallocate the instance_ptr table itself */ + host_free((IHP)vrecs[record_id].vr_pinst_tbl); + + /* Initialise virtual record entry */ + vrecs[record_id].vr_pinst_tbl = (IHP *)0; + vrecs[record_id].vr_inst_handle = (IU32)0; + } + +/* Return true if any data instance is extant */ +LOCAL IBOOL NIDDB_present IFN0() + { + int v; + + /* Search (linear) table for any extant data instances */ + for (v = 0; v < MAX_VMS; v++ ) + { + if ( vrecs[v].vr_pinst_tbl != (IHP *)0 ) + return TRUE; /* Found extant instance */ + } + + return FALSE; /* Nothing found */ + } + +/* Restore master pointers to point to snapshot (initial) data */ +LOCAL void restore_snapshot IFN0() + { + int i; + + for (i= 0; i < MAX_INSTANCES; i++ ) + { + master_ptrs[i] = snapshot_ptrs[i]; + } + + last_virtual_byte = 0; + + allocation_allowed = TRUE; /* Remove lock on Insignia Device Driver calls */ + } + +/* Set up pointers to new instance data in master pointers */ +LOCAL void swap_NIDDB IFN1 + ( + IU8, vb + ) + { + int i; + IHP *instance_ptrs; + + instance_ptrs = vrecs[vb].vr_pinst_tbl; + + for (i = 0; i < MAX_INSTANCES; i++, instance_ptrs++) + { + master_ptrs[i] = *instance_ptrs; + } + + last_virtual_byte = vb; + } + +/* =========================================================================== */ +/* GLOBAL ROUTINES */ +/* =========================================================================== */ + +/* Allocate per Virtual Machine data area for Device Driver. */ +GLOBAL IHP *NIDDB_Allocate_Instance_Data IFN3 + ( + int, size, /* Size of data area required */ + NIDDB_CR_CALLBACK, create_cb, /* create callback */ + NIDDB_TM_CALLBACK, terminate_cb /* terminate callback */ + ) + { + int i; + + if ( !allocation_allowed ) + { + /* We are still managing instances for Windows, we can't add more data + Instances on the fly! */ + return (IHP *)0; + } + + /* Find available instance slot */ + for (i = 0; i < MAX_INSTANCES; i++) + { + if ( master_ptrs[i] == (IHP)0 ) + break; /* found empty slot */ + } + + if ( i == MAX_INSTANCES ) + { + /* No free slot */ + always_trace0("NIDDB: Too many Data Instances being requested."); + return (IHP)0; + } + + /* Allocate data area */ + if ( (master_ptrs[i] = (IHP)host_malloc(size)) == (IHP)0 ) + { + return (IHP)0; /* No room at inn */ + } + + /* Save details of this instance */ + snapshot_ptrs[i] = master_ptrs[i]; + instance_size[i] = size; + + /* Save callbacks */ + create_callback[i] = create_cb; + terminate_callback[i] = terminate_cb; + + return &master_ptrs[i]; /* return handle */ + } + +/* Deallocate per Virtual Machine data area for Device Driver. */ +GLOBAL void NIDDB_Deallocate_Instance_Data IFN1 + ( + IHP *, handle /* Handle to data area */ + ) + { + int i; + + if ( !allocation_allowed ) + { + /* + We are still managing instances for Windows, or at least we think we + are. Has the user escaped from Windows without our VxD being informed, + or is the Insignia Device Driver giving us a bum steer? + */ + always_trace0("NIDDB: Unexpected call to NIDDB_Deallocate_Instance_Data."); + + /* We might give the Insignia Device Driver the benefit of the doubt and + act like a System_Exit message. - Then again we might just ignore em. */ + return; + } + + /* Find index to master_ptrs, etc. */ + i = handle - &master_ptrs[0]; + if ( i < 0 || i >= MAX_INSTANCES ) + { + always_trace0("NIDDB: Bad handle passed to NIDDB_Deallocate_Instance_Data."); + return; + } + + /* Free data area */ + host_free(master_ptrs[i]); + + /* Initialise entry */ + master_ptrs[i] = snapshot_ptrs[i] = (IHP)0; + instance_size[i] = (IU32)0; + create_callback[i] = (NIDDB_CR_CALLBACK)0; + terminate_callback[i] = (NIDDB_TM_CALLBACK)0; + + return; + } + +/* Catch System Reboot (if all else fails) and destroy data instances. */ +GLOBAL void NIDDB_System_Reboot IFN0() + { + /* Act like a Windows Device_Reboot_Notify */ + deallocate_all_NIDDB(); + restore_snapshot(); + } + +#ifdef CPU_40_STYLE +/* Indicate if NIDDB is active, based on whether Device Driver allocation is allowed */ +GLOBAL IBOOL NIDDB_is_active IFN0() +{ + return(!allocation_allowed); +} + +/* + Entry point from Windows 386 Virtual Device Driver (INSIGNIA.386) - Provide + virtualising services as required. + */ +GLOBAL void +virtual_device_trap IFN0() + { + int new_vb; + + switch ( getEAX() ) + { + case VxD_Device_Init: + /* We can check that the Intel version is valid */ + + insignia_386_version = getDX(); + + always_trace2("386 VxD: Device_Init version %d.%02d", + insignia_386_version / 100, + insignia_386_version % 100); + + /* pm selectors for virtualisation are in ebx and ecx */ + + if ((getBX() !=0) && (getCX() !=0)) + sas_init_pm_selectors (getBX(), getCX()); + else + always_trace0("386 VxD: Device_Init. Failed to get pm selectors!!"); + + /* Compatibility test: + * Return in top half of EDX the the "current" Intel version of the driver. + * This allows an incompatible future driver to reject an old SoftWindows. + */ +#define INTEL_VERSION 102 + setEDX(INTEL_VERSION << 16); + break; + + case VxD_Sys_VM_Init: + always_trace0("386 VxD: Sys_VM_Init."); + + /* As safety measure undo anything which may be currently active */ + deallocate_all_NIDDB(); + restore_snapshot(); + + /* Lock out Insignia Device Driver requests */ + allocation_allowed = FALSE; + + /* Form new instance */ + if ( allocate_NIDDB(getEBX(), &new_vb) ) + { + /* Make new instance active (for create callback) */ + swap_NIDDB(new_vb); + + /* Copy instance data and action create callback */ + copy_instance_data(vrecs[new_vb].vr_pinst_tbl, snapshot_ptrs); + + /* Return virtualising byte to INSIGNIA.386 */ + setEAX(new_vb); + } + else + { + /* We can't do it */ + setCF(1); /* Inform Windows that Virtual Machine can't be created */ + host_error(EG_MALLOC_FAILURE, ERR_CONT , ""); + } + break; + + case VxD_VM_Init: + always_trace0("386 VxD: VM_Init."); + /* Form new instance */ + if ( allocate_NIDDB(getEBX(), &new_vb) ) + { + /* Make new instance active (for create callback) */ + swap_NIDDB(new_vb); + + /* Copy instance data and action create callback */ + copy_instance_data(vrecs[new_vb].vr_pinst_tbl, snapshot_ptrs); + + /* Return virtualising byte to INSIGNIA.386 */ + setEAX(new_vb); + } + else + { + /* We can't do it */ + setCF(1); /* Inform Windows that Virtual Machine can't be created */ + host_error(EG_MALLOC_FAILURE, ERR_CONT , ""); + } + break; + + case VxD_VM_Not_Executeable: + always_trace0("386 VxD: VM_Not_Executeable."); + deallocate_specific_NIDDB(getEBX()); + break; + + case VxD_Device_Reboot_Notify: + always_trace0("386 VxD: Device_Reboot_Notify."); + deallocate_all_NIDDB(); + restore_snapshot(); + + /* Clear our version number in case we are changing disks */ + insignia_386_version = 0; + break; + + case VxD_System_Exit: + always_trace0("386 VxD: System_Exit."); + deallocate_all_NIDDB(); + restore_snapshot(); + ClearInstanceDataMarking(); + +#ifndef NTVDM + host_mswin_disable(); +#endif /* ! NTVDM */ + + /* Clear our version number in case we are changing disks */ + insignia_386_version = 0; + break; + + default: + always_trace1("386 VxD: Unrecognised Control Message. 0x%02x", getEAX()); + } + } + +/* Ensure correct instance in place for Device Drivers. */ +/* Called by BOP handler(bios.c) for any Device Driver BOP. */ +GLOBAL void +virtual_swap_instance IFN0() + { + IU8 current_virtual_byte; + + /* If instances can be created then Windows isn't active yet */ + if ( allocation_allowed ) + return; + + /* read virtualising byte and compare with current ID */ + sas_load(BIOS_VIRTUALISING_BYTE, ¤t_virtual_byte); + + if ( current_virtual_byte == last_virtual_byte ) + return; /* Nothing to do */ + + /* Swap data areas */ + always_trace0("Swapping data instances."); + swap_NIDDB(current_virtual_byte); + return; + } +#endif /* CPU_40_STYLE */ + + +#ifdef CPU_40_STYLE +/* To support a mis-matched disk spcmswd.drv and insignia.386 we + * do the setting of virtualisation selectors here, if the + * insignia.386 driver is less than version 1. Later drivers + * use VxD_Device_Init to set the selectors. + */ +GLOBAL void set_virtual_selectors_from_mswdvr IFN0() +{ + if (insignia_386_version < 1) + { + sas_init_pm_selectors (getCX(), getDX()); + } +} +#endif /* CPU_40_STYLE */ diff --git a/private/mvdm/softpc.new/base/ccpu386/aaa.c b/private/mvdm/softpc.new/base/ccpu386/aaa.c new file mode 100644 index 000000000..88791b560 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/aaa.c @@ -0,0 +1,58 @@ +/*[ + +aaa.c + +LOCAL CHAR SccsID[]="@(#)aaa.c 1.5 02/09/94"; + +AAA CPU functions. +------------------ + +]*/ + + +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +GLOBAL VOID +AAA() + { + if ( (GET_AL() & 0xf) > 9 || GET_AF() ) + { + SET_AX(GET_AX() + 6); + SET_AH(GET_AH() + 1); + SET_CF(1); SET_AF(1); + } + else + { + SET_CF(0); SET_AF(0); + } + SET_AL(GET_AL() & 0xf); + + /* Set undefined flag(s) */ +#ifdef SET_UNDEFINED_FLAG + SET_OF(UNDEFINED_FLAG); + SET_SF(UNDEFINED_FLAG); + SET_ZF(UNDEFINED_FLAG); + SET_PF(UNDEFINED_FLAG); +#endif + } diff --git a/private/mvdm/softpc.new/base/ccpu386/aaa.h b/private/mvdm/softpc.new/base/ccpu386/aaa.h new file mode 100644 index 000000000..7f5cb4bcb --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/aaa.h @@ -0,0 +1,11 @@ +/* + aaa.h + + Define all AAA CPU functions. + */ + +/* + static char SccsID[]="@(#)aaa.h 1.4 09/01/94"; + */ + +IMPORT VOID AAA IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/aad.c b/private/mvdm/softpc.new/base/ccpu386/aad.c new file mode 100644 index 000000000..16046d50f --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/aad.c @@ -0,0 +1,60 @@ +/*[ + +aad.c + +LOCAL CHAR SccsID[]="@(#)aad.c 1.5 02/09/94"; + +AAD CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +GLOBAL VOID +AAD + +IFN1( + IU32, op1 + ) + + + { + IU8 temp_al; + + temp_al = GET_AH() * op1 + GET_AL(); + SET_AL(temp_al); + SET_AH(0); + + /* set ZF,SF,PF according to result */ + SET_ZF(temp_al == 0); + SET_SF((temp_al & BIT7_MASK) != 0); + SET_PF(pf_table[temp_al]); + + /* Set undefined flag(s) to zero */ +#ifdef SET_UNDEFINED_FLAG + SET_AF(UNDEFINED_FLAG); + SET_OF(UNDEFINED_FLAG); + SET_CF(UNDEFINED_FLAG); +#endif + } diff --git a/private/mvdm/softpc.new/base/ccpu386/aad.h b/private/mvdm/softpc.new/base/ccpu386/aad.h new file mode 100644 index 000000000..e97bf5aeb --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/aad.h @@ -0,0 +1,16 @@ +/* + aad.h + + Define all AAD CPU functions. + */ + +/* + static char SccsID[]="@(#)aad.h 1.4 02/09/94"; + */ + +IMPORT VOID AAD + +IPT1( + IU32, op1 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/aam.c b/private/mvdm/softpc.new/base/ccpu386/aam.c new file mode 100644 index 000000000..107c60d40 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/aam.c @@ -0,0 +1,64 @@ +/*[ + +aam.c + +LOCAL CHAR SccsID[]="@(#)aam.c 1.5 02/09/94"; + +AAM CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +GLOBAL VOID +AAM + +IFN1( + IU32, op1 + ) + + + { + IU8 temp_al; + + if ( op1 == 0 ) + Int0(); + + SET_AH(GET_AL() / op1); + SET_AL(GET_AL() % op1); + + /* set ZF,SF,PF according to result */ + temp_al = GET_AL(); + SET_ZF(temp_al == 0); + SET_SF((temp_al & BIT7_MASK) != 0); + SET_PF(pf_table[temp_al]); + + /* Set undefined flag(s) */ +#ifdef SET_UNDEFINED_FLAG + SET_AF(UNDEFINED_FLAG); + SET_OF(UNDEFINED_FLAG); + SET_CF(UNDEFINED_FLAG); +#endif + } diff --git a/private/mvdm/softpc.new/base/ccpu386/aam.h b/private/mvdm/softpc.new/base/ccpu386/aam.h new file mode 100644 index 000000000..cbb3b74ae --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/aam.h @@ -0,0 +1,16 @@ +/* + aam.h + + Define all AAM CPU functions. + */ + +/* + static char SccsID[]="@(#)aam.h 1.4 02/09/94"; + */ + +IMPORT VOID AAM + +IPT1( + IU32, op1 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/aas.c b/private/mvdm/softpc.new/base/ccpu386/aas.c new file mode 100644 index 000000000..b222cd191 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/aas.c @@ -0,0 +1,57 @@ +/*[ + +aas.c + +LOCAL CHAR SccsID[]="@(#)aas.c 1.5 02/09/94"; + +AAS CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +GLOBAL VOID +AAS() + { + if ( (GET_AL() & 0xf) > 9 || GET_AF() ) + { + SET_AX(GET_AX() - 6); + SET_AH(GET_AH() - 1); + SET_CF(1); SET_AF(1); + } + else + { + SET_CF(0); SET_AF(0); + } + SET_AL(GET_AL() & 0xf); + + /* Set undefined flag(s) */ +#ifdef SET_UNDEFINED_FLAG + SET_OF(UNDEFINED_FLAG); + SET_SF(UNDEFINED_FLAG); + SET_ZF(UNDEFINED_FLAG); + SET_PF(UNDEFINED_FLAG); +#endif + } diff --git a/private/mvdm/softpc.new/base/ccpu386/aas.h b/private/mvdm/softpc.new/base/ccpu386/aas.h new file mode 100644 index 000000000..0ee14d609 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/aas.h @@ -0,0 +1,11 @@ +/* + aas.h + + Define all AAS CPU functions. + */ + +/* + static char SccsID[]="@(#)aas.h 1.5 09/01/94"; + */ + +IMPORT VOID AAS IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/adc.c b/private/mvdm/softpc.new/base/ccpu386/adc.c new file mode 100644 index 000000000..779d80034 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/adc.c @@ -0,0 +1,79 @@ +/*[ + +adc.c + +LOCAL CHAR SccsID[]="@(#)adc.c 1.5 02/09/94"; + +ADC CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'adc'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +ADC + +IFN3( + IU32 *, pop1, /* pntr to dst/lsrc operand */ + IU32, op2, /* rsrc operand */ + IUM8, op_sz /* 8, 16 or 32-bit */ + ) + + + { + IU32 result; + IU32 carry; + IU32 msb; + IU32 op1_msb; + IU32 op2_msb; + IU32 res_msb; + + msb = SZ2MSB(op_sz); + /* Do operation */ + result = *pop1 + op2 + GET_CF() & SZ2MASK(op_sz); + op1_msb = (*pop1 & msb) != 0; /* Isolate all msb's */ + op2_msb = (op2 & msb) != 0; + res_msb = (result & msb) != 0; + carry = *pop1 ^ op2 ^ result; /* Isolate carries */ + /* Determine flags */ + /* + OF = (op1 == op2) & (op2 ^ res) + ie if operand signs same and res sign different set OF. + */ + SET_OF((op1_msb == op2_msb) & (op2_msb ^ res_msb)); + /* + Formally:- CF = op1 & op2 | !res & op1 | !res & op2 + Equivalently:- CF = OF ^ op1 ^ op2 ^ res + */ + SET_CF(((carry & msb) != 0) ^ GET_OF()); + SET_PF(pf_table[result & BYTE_MASK]); + SET_ZF(result == 0); + SET_SF((result & msb) != 0); /* SF = MSB */ + SET_AF((carry & BIT4_MASK) != 0); /* AF = Bit 4 carry */ + *pop1 = result; /* Return answer */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/adc.h b/private/mvdm/softpc.new/base/ccpu386/adc.h new file mode 100644 index 000000000..38bbe84b8 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/adc.h @@ -0,0 +1,18 @@ +/* + adc.h + + Define all ADC CPU functions. + */ + +/* + static char SccsID[]="@(#)adc.h 1.4 02/09/94"; + */ + +IMPORT VOID ADC + +IPT3( + IU32 *, pop1, + IU32, op2, + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/add.c b/private/mvdm/softpc.new/base/ccpu386/add.c new file mode 100644 index 000000000..05a95d92a --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/add.c @@ -0,0 +1,79 @@ +/*[ + +add.c + +LOCAL CHAR SccsID[]="@(#)add.c 1.5 02/09/94"; + +ADD CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'add'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +ADD + +IFN3( + IU32 *, pop1, /* pntr to dst/lsrc operand */ + IU32, op2, /* rsrc operand */ + IUM8, op_sz /* 8, 16 or 32-bit */ + ) + + + { + IU32 result; + IU32 carry; + IU32 msb; + IU32 op1_msb; + IU32 op2_msb; + IU32 res_msb; + + msb = SZ2MSB(op_sz); + /* Do operation */ + result = *pop1 + op2 & SZ2MASK(op_sz); + op1_msb = (*pop1 & msb) != 0; /* Isolate all msb's */ + op2_msb = (op2 & msb) != 0; + res_msb = (result & msb) != 0; + carry = *pop1 ^ op2 ^ result; /* Isolate carries */ + /* Determine flags */ + /* + OF = (op1 == op2) & (op2 ^ res) + ie if operand signs same and res sign different set OF. + */ + SET_OF((op1_msb == op2_msb) & (op2_msb ^ res_msb)); + /* + Formally:- CF = op1 & op2 | !res & op1 | !res & op2 + Equivalently:- CF = OF ^ op1 ^ op2 ^ res + */ + SET_CF(((carry & msb) != 0) ^ GET_OF()); + SET_PF(pf_table[result & BYTE_MASK]); + SET_ZF(result == 0); + SET_SF((result & msb) != 0); /* SF = MSB */ + SET_AF((carry & BIT4_MASK) != 0); /* AF = Bit 4 carry */ + *pop1 = result; /* Return answer */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/add.h b/private/mvdm/softpc.new/base/ccpu386/add.h new file mode 100644 index 000000000..9257a0a8a --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/add.h @@ -0,0 +1,18 @@ +/* + add.h + + Define all ADD CPU functions. + */ + +/* + static char SccsID[]="@(#)add.h 1.4 02/09/94"; + */ + +IMPORT VOID ADD + +IPT3( + IU32 *, pop1, + IU32, op2, + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/and.c b/private/mvdm/softpc.new/base/ccpu386/and.c new file mode 100644 index 000000000..b1bda5d71 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/and.c @@ -0,0 +1,59 @@ +/*[ + +and.c + +LOCAL CHAR SccsID[]="@(#)and.c 1.5 02/09/94"; + +AND CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'and'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +AND + +IFN3( + IU32 *, pop1, /* pntr to dst/lsrc operand */ + IU32, op2, /* rsrc operand */ + IUM8, op_sz /* 8, 16 or 32-bit */ + ) + + + { + IU32 result; + + result = *pop1 & op2; /* Do operation */ + SET_CF(0); /* Determine flags */ + SET_OF(0); + SET_AF(0); + SET_PF(pf_table[result & BYTE_MASK]); + SET_ZF(result == 0); + SET_SF((result & SZ2MSB(op_sz)) != 0); /* SF = MSB */ + *pop1 = result; /* Return answer */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/and.h b/private/mvdm/softpc.new/base/ccpu386/and.h new file mode 100644 index 000000000..911946ff9 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/and.h @@ -0,0 +1,18 @@ +/* + and.h + + Define all AND CPU functions. + */ + +/* + static char SccsID[]="@(#)and.h 1.4 02/09/94"; + */ + +IMPORT VOID AND + +IPT3( + IU32 *, pop1, + IU32, op2, + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/arpl.c b/private/mvdm/softpc.new/base/ccpu386/arpl.c new file mode 100644 index 000000000..5b87ac31d --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/arpl.c @@ -0,0 +1,56 @@ +/*[ + +arpl.c + +LOCAL CHAR SccsID[]="@(#)arpl.c 1.5 02/09/94"; + +ARPL CPU Functions. +------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE + ===================================================================== + */ + +GLOBAL VOID +ARPL + +IFN2( + IU32 *, pop1, + IU32, op2 + ) + + + { + IU32 rpl; + + /* Reduce op1 RPL to lowest privilege (highest value) */ + if ( GET_SELECTOR_RPL(*pop1) < (rpl = GET_SELECTOR_RPL(op2)) ) + { + SET_SELECTOR_RPL(*pop1, rpl); + SET_ZF(1); + } + else + { + SET_ZF(0); + } + } diff --git a/private/mvdm/softpc.new/base/ccpu386/arpl.h b/private/mvdm/softpc.new/base/ccpu386/arpl.h new file mode 100644 index 000000000..8eb1e75e0 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/arpl.h @@ -0,0 +1,17 @@ +/* + arpl.h + + Define all ARPL CPU functions. + */ + +/* + static char SccsID[]="@(#)arpl.h 1.4 02/09/94"; + */ + +IMPORT VOID ARPL + +IPT2( + IU32 *, pop1, + IU32, op2 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/bound.c b/private/mvdm/softpc.new/base/ccpu386/bound.c new file mode 100644 index 000000000..a1b59ae66 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/bound.c @@ -0,0 +1,76 @@ +/*[ + +bound.c + +LOCAL CHAR SccsID[]="@(#)bound.c 1.6 03/28/94"; + +BOUND CPU functions. +-------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +GLOBAL VOID +BOUND +#ifdef ANSI + ( + IU32 op1, /* lsrc(test value) operand */ + IU32 op2[2], /* rsrc(lower:upper pair) operand */ + IUM8 op_sz /* 16 or 32-bit */ + ) +#else + (op1, op2, op_sz) + IU32 op1; + IU32 op2[2]; + IUM8 op_sz; +#endif + { + IS32 value; + IS32 lower; + IS32 upper; + + /* transfer to local signed variables */ + value = op1; + lower = op2[0]; + upper = op2[1]; + + if ( op_sz == 16 ) + { + /* sign extend operands */ + if ( value & BIT15_MASK ) + value |= ~WORD_MASK; + + if ( lower & BIT15_MASK ) + lower |= ~WORD_MASK; + + if ( upper & BIT15_MASK ) + upper |= ~WORD_MASK; + } + + op_sz = op_sz / 8; /* determine number of bytes in operand */ + + if ( value < lower || value > upper ) + Int5(); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/bound.h b/private/mvdm/softpc.new/base/ccpu386/bound.h new file mode 100644 index 000000000..d41220bcf --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/bound.h @@ -0,0 +1,18 @@ +/* + bound.h + + Define all BOUND CPU functions. + */ + +/* + static char SccsID[]="@(#)bound.h 1.4 02/09/94"; + */ + +IMPORT VOID BOUND + +IPT3( + IU32, op1, + IU32, op2[2], + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/bsf.c b/private/mvdm/softpc.new/base/ccpu386/bsf.c new file mode 100644 index 000000000..45c592967 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/bsf.c @@ -0,0 +1,64 @@ +/*[ + +bsf.c + +LOCAL CHAR SccsID[]="@(#)bsf.c 1.5 02/09/94"; + +BSF CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'bsf'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +BSF + +IFN2( + IU32 *, pop1, /* pntr to dst operand */ + IU32, op2 /* rsrc (ie scanned) operand */ + ) + + + { + IU32 temp = 0; + + if ( op2 == 0 ) + { + SET_ZF(1); + /* leave dst unaltered */ + } + else + { + SET_ZF(0); + while ( (op2 & BIT0_MASK) == 0 ) + { + temp += 1; + op2 >>= 1; + } + *pop1 = temp; + } + } diff --git a/private/mvdm/softpc.new/base/ccpu386/bsf.h b/private/mvdm/softpc.new/base/ccpu386/bsf.h new file mode 100644 index 000000000..300fcaed5 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/bsf.h @@ -0,0 +1,17 @@ +/* + bsf.h + + BSF CPU functions. + */ + +/* + static char SccsID[]="@(#)bsf.h 1.4 02/09/94"; + */ + +IMPORT VOID BSF + +IPT2( + IU32 *, pop1, + IU32, op2 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/bsr.c b/private/mvdm/softpc.new/base/ccpu386/bsr.c new file mode 100644 index 000000000..959d1bdc7 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/bsr.c @@ -0,0 +1,70 @@ +/*[ + +bsr.c + +LOCAL CHAR SccsID[]="@(#)bsr.c 1.5 02/09/94"; + +BSR CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'bsr'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +BSR + +IFN3( + IU32 *, pop1, /* pntr to dst operand */ + IU32, op2, /* rsrc (ie scanned) operand */ + IUM8, op_sz /* 16 or 32-bit */ + ) + + + { + IU32 temp; + IU32 msb; + + if ( op2 == 0 ) + { + SET_ZF(1); + /* leave dst unaltered */ + } + else + { + SET_ZF(0); + temp = op_sz - 1; + msb = SZ2MSB(op_sz); + + while ( (op2 & msb) == 0 ) + { + temp -= 1; + op2 <<= 1; + } + + *pop1 = temp; + } + } diff --git a/private/mvdm/softpc.new/base/ccpu386/bsr.h b/private/mvdm/softpc.new/base/ccpu386/bsr.h new file mode 100644 index 000000000..d12566f7f --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/bsr.h @@ -0,0 +1,18 @@ +/* + bsr.h + + BSR CPU functions. + */ + +/* + static char SccsID[]="@(#)bsr.h 1.4 02/09/94"; + */ + +IMPORT VOID BSR + +IPT3( + IU32 *, pop1, + IU32, op2, + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/bswap.c b/private/mvdm/softpc.new/base/ccpu386/bswap.c new file mode 100644 index 000000000..8b83d1e7d --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/bswap.c @@ -0,0 +1,64 @@ +/*[ + +bswap.c + +LOCAL CHAR SccsID[]="@(#)bswap.c 1.6 11/30/94"; + +BSWAP CPU functions. +-------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +#ifdef SPC486 + +GLOBAL VOID +BSWAP + +IFN1( + IU32 *, pop1 /* pntr to dst/src operand */ + ) + + + { + IU32 src; /* temp for source */ + IU32 dst; /* temp for destination */ + + src = *pop1; /* get source operand */ + + /* + ================= ================= + Munge bytes from | A | B | C | D | to | D | C | B | A | + ================= ================= + */ + dst = ((src & 0xff000000) >> 24) | /* A->D */ + ((src & 0x00ff0000) >> 8) | /* B->C */ + ((src & 0x0000ff00) << 8) | /* C->B */ + ((src & 0x000000ff) << 24); /* D->A */ + + *pop1 = dst; /* return destination operand */ + } + +#endif /* SPC486 */ diff --git a/private/mvdm/softpc.new/base/ccpu386/bswap.h b/private/mvdm/softpc.new/base/ccpu386/bswap.h new file mode 100644 index 000000000..a56472cd8 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/bswap.h @@ -0,0 +1,16 @@ +/* + bswap.h + + BSWAP CPU functions. + */ + +/* + static char SccsID[]="@(#)bswap.h 1.4 02/09/94"; + */ + +IMPORT VOID BSWAP + +IPT1( + IU32 *, pop1 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/bt.c b/private/mvdm/softpc.new/base/ccpu386/bt.c new file mode 100644 index 000000000..7cf507c6d --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/bt.c @@ -0,0 +1,54 @@ +/*[ + +bt.c + +LOCAL CHAR SccsID[]="@(#)bt.c 1.5 02/09/94"; + +BT CPU functions. +----------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'bt'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +BT + +IFN3( + IU32, op1, /* lsrc operand */ + IU32, op2, /* rsrc (ie bit nr.) operand */ + IUM8, op_sz /* 16 or 32-bit */ + ) + + + { + IU32 bit_mask; + + op2 = op2 % op_sz; /* take bit nr. modulo operand size */ + bit_mask = 1 << op2; /* form mask for bit */ + SET_CF((op1 & bit_mask) != 0); /* set CF to given bit */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/bt.h b/private/mvdm/softpc.new/base/ccpu386/bt.h new file mode 100644 index 000000000..dabb31087 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/bt.h @@ -0,0 +1,18 @@ +/* + bt.h + + BT CPU functions. + */ + +/* + static char SccsID[]="@(#)bt.h 1.4 02/09/94"; + */ + +IMPORT VOID BT + +IPT3( + IU32, op1, + IU32, op2, + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/btc.c b/private/mvdm/softpc.new/base/ccpu386/btc.c new file mode 100644 index 000000000..daa69489b --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/btc.c @@ -0,0 +1,55 @@ +/*[ + +btc.c + +LOCAL CHAR SccsID[]="@(#)btc.c 1.5 02/09/94"; + +BTC CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'btc'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +BTC + +IFN3( + IU32 *, pop1, /* pntr to lsrc/dst operand */ + IU32, op2, /* rsrc (ie bit nr.) operand */ + IUM8, op_sz /* 16 or 32-bit */ + ) + + + { + IU32 bit_mask; + + op2 = op2 % op_sz; /* take bit nr. modulo operand size */ + bit_mask = 1 << op2; /* form mask for bit */ + SET_CF((*pop1 & bit_mask) != 0); /* set CF to given bit */ + *pop1 = *pop1 ^ bit_mask; /* Set Bit = !Bit */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/btc.h b/private/mvdm/softpc.new/base/ccpu386/btc.h new file mode 100644 index 000000000..f78211394 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/btc.h @@ -0,0 +1,18 @@ +/* + btc.h + + BTC CPU functions. + */ + +/* + static char SccsID[]="@(#)btc.h 1.4 02/09/94"; + */ + +IMPORT VOID BTC + +IPT3( + IU32 *, pop1, + IU32, op2, + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/btr.c b/private/mvdm/softpc.new/base/ccpu386/btr.c new file mode 100644 index 000000000..5d00cde29 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/btr.c @@ -0,0 +1,55 @@ +/*[ + +btr.c + +LOCAL CHAR SccsID[]="@(#)btr.c 1.5 02/09/94"; + +BTR CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'btr'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +BTR + +IFN3( + IU32 *, pop1, /* pntr to lsrc/dst operand */ + IU32, op2, /* rsrc (ie bit nr.) operand */ + IUM8, op_sz /* 16 or 32-bit */ + ) + + + { + IU32 bit_mask; + + op2 = op2 % op_sz; /* take bit nr. modulo operand size */ + bit_mask = 1 << op2; /* form mask for bit */ + SET_CF((*pop1 & bit_mask) != 0); /* set CF to given bit */ + *pop1 = *pop1 & ~bit_mask; /* Set Bit = 0 */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/btr.h b/private/mvdm/softpc.new/base/ccpu386/btr.h new file mode 100644 index 000000000..c058d582e --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/btr.h @@ -0,0 +1,18 @@ +/* + btr.h + + BTR CPU functions. + */ + +/* + static char SccsID[]="@(#)btr.h 1.4 02/09/94"; + */ + +IMPORT VOID BTR + +IPT3( + IU32 *, pop1, + IU32, op2, + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/bts.c b/private/mvdm/softpc.new/base/ccpu386/bts.c new file mode 100644 index 000000000..5fd166a84 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/bts.c @@ -0,0 +1,55 @@ +/*[ + +bts.c + +LOCAL CHAR SccsID[]="@(#)bts.c 1.5 02/09/94"; + +BTS CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'bts'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +BTS + +IFN3( + IU32 *, pop1, /* pntr to lsrc/dst operand */ + IU32, op2, /* rsrc (ie bit nr.) operand */ + IUM8, op_sz /* 16 or 32-bit */ + ) + + + { + IU32 bit_mask; + + op2 = op2 % op_sz; /* take bit nr. modulo operand size */ + bit_mask = 1 << op2; /* form mask for bit */ + SET_CF((*pop1 & bit_mask) != 0); /* set CF to given bit */ + *pop1 = *pop1 | bit_mask; /* Set Bit = 1 */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/bts.h b/private/mvdm/softpc.new/base/ccpu386/bts.h new file mode 100644 index 000000000..a98015dc9 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/bts.h @@ -0,0 +1,18 @@ +/* + bts.h + + BTS CPU functions. + */ + +/* + static char SccsID[]="@(#)bts.h 1.4 02/09/94"; + */ + +IMPORT VOID BTS + +IPT3( + IU32 *, pop1, + IU32, op2, + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/c-files b/private/mvdm/softpc.new/base/ccpu386/c-files new file mode 100644 index 000000000..95eb66cb8 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c-files @@ -0,0 +1,129 @@ +aaa.c +aad.c +aam.c +aas.c +adc.c +add.c +and.c +arpl.c +bound.c +bsf.c +bsr.c +bswap.c +bt.c +btc.c +btr.c +bts.c +call.c +cbw.c +ccpupig.c +ccpusas4.c +cdq.c +clc.c +cld.c +cli.c +clts.c +cmc.c +cmp.c +cmpxchg.c +cwd.c +cwde.c +c_addr.c +c_bsic.c +c_debug.c +c_div64.c +c_getset.c +c_intr.c +c_main.c +c_mul64.c +c_neg64.c +c_page.c +c_prot.c +c_reg.c +c_seg.c +c_stack.c +c_tlb.c +c_tsksw.c +c_xcptn.c +c_xfer.c +c_xtrn.c +daa.c +das.c +dec.c +div.c +enter.c +fpu.c +idiv.c +imul.c +in.c +inc.c +into.c +intx.c +invd.c +invlpg.c +iret.c +jcxz.c +jmp.c +jxx.c +lahf.c +lar.c +lea.c +leave.c +lgdt.c +lidt.c +lldt.c +lmsw.c +loopxx.c +lsl.c +ltr.c +lxs.c +mov.c +movsx.c +mul.c +neg.c +nop.c +not.c +or.c +out.c +p.c_main.c +p.c_tsksw.c +pop.c +popa.c +popf.c +push.c +pusha.c +pushf.c +rcl.c +rcr.c +ret.c +rol.c +ror.c +rsrvd.c +sahf.c +sar.c +sbb.c +setxx.c +sgdt.c +shl.c +shld.c +shr.c +shrd.c +sidt.c +sldt.c +smsw.c +stc.c +std.c +sti.c +str.c +stubs.c +sub.c +test.c +verr.c +verw.c +wait.c +wbinvd.c +xadd.c +xchg.c +xlat.c +xor.c +zfrsrvd.c diff --git a/private/mvdm/softpc.new/base/ccpu386/c_addr.c b/private/mvdm/softpc.new/base/ccpu386/c_addr.c new file mode 100644 index 000000000..e8b8d8a26 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_addr.c @@ -0,0 +1,652 @@ +/*[ + +c_addr.c + +LOCAL CHAR SccsID[]="@(#)c_addr.c 1.10 7/19/94"; + +Memory Addressing Support. +-------------------------- + +]*/ + + +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + Allowable memory addressing types. + */ + +/* */ +#define A_1600 (IU8) 0 /* [BX + SI] */ +#define A_1601 (IU8) 1 /* [BX + DI] */ +#define A_1602 (IU8) 2 /* [BP + SI] */ +#define A_1603 (IU8) 3 /* [BP + DI] */ +#define A_1604 (IU8) 4 /* [SI] */ +#define A_1605 (IU8) 5 /* [DI] */ +#define A_1606 (IU8) 6 /* [d16] */ +#define A_1607 (IU8) 7 /* [BX] */ + +#define A_1610 (IU8) 8 /* [BX + SI + d8] */ +#define A_1611 (IU8) 9 /* [BX + DI + d8] */ +#define A_1612 (IU8)10 /* [BP + SI + d8] */ +#define A_1613 (IU8)11 /* [BP + DI + d8] */ +#define A_1614 (IU8)12 /* [SI + d8] */ +#define A_1615 (IU8)13 /* [DI + d8] */ +#define A_1616 (IU8)14 /* [BP + d8] */ +#define A_1617 (IU8)15 /* [BX + d8] */ + +#define A_1620 (IU8)16 /* [BX + SI + d16] */ +#define A_1621 (IU8)17 /* [BX + DI + d16] */ +#define A_1622 (IU8)18 /* [BP + SI + d16] */ +#define A_1623 (IU8)19 /* [BP + DI + d16] */ +#define A_1624 (IU8)20 /* [SI + d16] */ +#define A_1625 (IU8)21 /* [DI + d16] */ +#define A_1626 (IU8)22 /* [BP + d16] */ +#define A_1627 (IU8)23 /* [BX + d16] */ + +/* */ +#define A_3200 (IU8)24 /* [EAX] */ +#define A_3201 (IU8)25 /* [ECX] */ +#define A_3202 (IU8)26 /* [EDX] */ +#define A_3203 (IU8)27 /* [EBX] */ +#define A_3205 (IU8)28 /* [d32] */ +#define A_3206 (IU8)29 /* [ESI] */ +#define A_3207 (IU8)30 /* [EDI] */ + +#define A_3210 (IU8)31 /* [EAX + d8] */ +#define A_3211 (IU8)32 /* [ECX + d8] */ +#define A_3212 (IU8)33 /* [EDX + d8] */ +#define A_3213 (IU8)34 /* [EBX + d8] */ +#define A_3215 (IU8)35 /* [EBP + d8] */ +#define A_3216 (IU8)36 /* [ESI + d8] */ +#define A_3217 (IU8)37 /* [EDI + d8] */ + +#define A_3220 (IU8)38 /* [EAX + d32] */ +#define A_3221 (IU8)39 /* [ECX + d32] */ +#define A_3222 (IU8)40 /* [EDX + d32] */ +#define A_3223 (IU8)41 /* [EBX + d32] */ +#define A_3225 (IU8)42 /* [EBP + d32] */ +#define A_3226 (IU8)43 /* [ESI + d32] */ +#define A_3227 (IU8)44 /* [EDI + d32] */ + +/* */ +#define A_32S00 (IU8)45 /* [EAX + si] */ +#define A_32S01 (IU8)46 /* [ECX + si] */ +#define A_32S02 (IU8)47 /* [EDX + si] */ +#define A_32S03 (IU8)48 /* [EBX + si] */ +#define A_32S04 (IU8)49 /* [ESP + si] */ +#define A_32S05 (IU8)50 /* [d32 + si] */ +#define A_32S06 (IU8)51 /* [ESI + si] */ +#define A_32S07 (IU8)52 /* [EDI + si] */ + +#define A_32S10 (IU8)53 /* [EAX + si + d8] */ +#define A_32S11 (IU8)54 /* [ECX + si + d8] */ +#define A_32S12 (IU8)55 /* [EDX + si + d8] */ +#define A_32S13 (IU8)56 /* [EBX + si + d8] */ +#define A_32S14 (IU8)57 /* [ESP + si + d8] */ +#define A_32S15 (IU8)58 /* [EBP + si + d8] */ +#define A_32S16 (IU8)59 /* [ESI + si + d8] */ +#define A_32S17 (IU8)60 /* [EDI + si + d8] */ + +#define A_32S20 (IU8)61 /* [EAX + si + d32] */ +#define A_32S21 (IU8)62 /* [ECX + si + d32] */ +#define A_32S22 (IU8)63 /* [EDX + si + d32] */ +#define A_32S23 (IU8)64 /* [EBX + si + d32] */ +#define A_32S24 (IU8)65 /* [ESP + si + d32] */ +#define A_32S25 (IU8)66 /* [EBP + si + d32] */ +#define A_32S26 (IU8)67 /* [ESI + si + d32] */ +#define A_32S27 (IU8)68 /* [EDI + si + d32] */ + +/* Table fillers - never actually referenced */ +#define A_3204 (IU8)0 +#define A_3214 (IU8)0 +#define A_3224 (IU8)0 + +/* [addr_sz][mode][r/m] */ +/* addr_sz 0 = 16-bit */ +/* addr_sz 1 = 32-bit */ +/* addr_sz 2 = 32-bit (+SIB) */ +LOCAL IU8 addr_maintype[3] [3] [8] = + { + { {A_1600, A_1601, A_1602, A_1603, A_1604, A_1605, A_1606, A_1607}, + {A_1610, A_1611, A_1612, A_1613, A_1614, A_1615, A_1616, A_1617}, + {A_1620, A_1621, A_1622, A_1623, A_1624, A_1625, A_1626, A_1627} }, + + { {A_3200, A_3201, A_3202, A_3203, A_3204, A_3205, A_3206, A_3207}, + {A_3210, A_3211, A_3212, A_3213, A_3214, A_3215, A_3216, A_3217}, + {A_3220, A_3221, A_3222, A_3223, A_3224, A_3225, A_3226, A_3227} }, + + { {A_32S00, A_32S01, A_32S02, A_32S03, A_32S04, A_32S05, A_32S06, A_32S07}, + {A_32S10, A_32S11, A_32S12, A_32S13, A_32S14, A_32S15, A_32S16, A_32S17}, + {A_32S20, A_32S21, A_32S22, A_32S23, A_32S24, A_32S25, A_32S26, A_32S27} } + }; + +/* + Allowable memory addressing sub types. + */ + +/* */ +#define A_SINO (IU8) 0 /* No SIB byte */ +#define A_SI00 (IU8) 1 /* EAX */ +#define A_SI01 (IU8) 2 /* ECX */ +#define A_SI02 (IU8) 3 /* EDX */ +#define A_SI03 (IU8) 4 /* EBX */ +#define A_SI04 (IU8) 5 /* none */ +#define A_SI05 (IU8) 6 /* EBP */ +#define A_SI06 (IU8) 7 /* ESI */ +#define A_SI07 (IU8) 8 /* EDI */ + +#define A_SI10 (IU8) 9 /* EAX x 2 */ +#define A_SI11 (IU8)10 /* ECX x 2 */ +#define A_SI12 (IU8)11 /* EDX x 2 */ +#define A_SI13 (IU8)12 /* EBX x 2 */ +#define A_SI14 (IU8)13 /* undefined */ +#define A_SI15 (IU8)14 /* EBP x 2 */ +#define A_SI16 (IU8)15 /* ESI x 2 */ +#define A_SI17 (IU8)16 /* EDI x 2 */ + +#define A_SI20 (IU8)17 /* EAX x 4 */ +#define A_SI21 (IU8)18 /* ECX x 4 */ +#define A_SI22 (IU8)19 /* EDX x 4 */ +#define A_SI23 (IU8)20 /* EBX x 4 */ +#define A_SI24 (IU8)21 /* undefined */ +#define A_SI25 (IU8)22 /* EBP x 4 */ +#define A_SI26 (IU8)23 /* ESI x 4 */ +#define A_SI27 (IU8)24 /* EDI x 4 */ + +#define A_SI30 (IU8)25 /* EAX x 8 */ +#define A_SI31 (IU8)26 /* ECX x 8 */ +#define A_SI32 (IU8)27 /* EDX x 8 */ +#define A_SI33 (IU8)28 /* EBX x 8 */ +#define A_SI34 (IU8)29 /* undefined */ +#define A_SI35 (IU8)30 /* EBP x 8 */ +#define A_SI36 (IU8)31 /* ESI x 8 */ +#define A_SI37 (IU8)32 /* EDI x 8 */ + +/* [ss][index] */ +LOCAL IU8 addr_subtype[4] [8] = + { + {A_SI00, A_SI01, A_SI02, A_SI03, A_SI04, A_SI05, A_SI06, A_SI07}, + {A_SI10, A_SI11, A_SI12, A_SI13, A_SI14, A_SI15, A_SI16, A_SI17}, + {A_SI20, A_SI21, A_SI22, A_SI23, A_SI24, A_SI25, A_SI26, A_SI27}, + {A_SI30, A_SI31, A_SI32, A_SI33, A_SI34, A_SI35, A_SI36, A_SI37} + }; + +/* + Displacement information. + */ +#define D_NO (IU8)0 +#define D_S8 (IU8)1 +#define D_S16 (IU8)2 +#define D_Z16 (IU8)3 +#define D_32 (IU8)4 + +/* [addr_sz][mode][r/m] */ +LOCAL IU8 addr_disp[2] [3] [8] = + { + { {D_NO , D_NO , D_NO , D_NO , D_NO , D_NO , D_Z16, D_NO }, + {D_S8 , D_S8 , D_S8 , D_S8 , D_S8 , D_S8 , D_S8 , D_S8 }, + {D_S16, D_S16, D_S16, D_S16, D_S16, D_S16, D_S16, D_S16} }, + + { {D_NO , D_NO , D_NO , D_NO , D_NO , D_32 , D_NO , D_NO }, + {D_S8 , D_S8 , D_S8 , D_S8 , D_S8 , D_S8 , D_S8 , D_S8 }, + {D_32 , D_32 , D_32 , D_32 , D_32 , D_32 , D_32 , D_32 } } + }; + +/* + Default Segment information. + */ +/* [addr_sz][mode][r/m] */ +LOCAL IU8 addr_default_seg[2] [3] [8] = + { + { {DS_REG, DS_REG, SS_REG, SS_REG, DS_REG, DS_REG, DS_REG, DS_REG}, + {DS_REG, DS_REG, SS_REG, SS_REG, DS_REG, DS_REG, SS_REG, DS_REG}, + {DS_REG, DS_REG, SS_REG, SS_REG, DS_REG, DS_REG, SS_REG, DS_REG} }, + + { {DS_REG, DS_REG, DS_REG, DS_REG, SS_REG, DS_REG, DS_REG, DS_REG}, + {DS_REG, DS_REG, DS_REG, DS_REG, SS_REG, SS_REG, DS_REG, DS_REG}, + {DS_REG, DS_REG, DS_REG, DS_REG, SS_REG, SS_REG, DS_REG, DS_REG} } + }; + +/* + + SIB + --- + + 7 6 5 4 3 2 1 0 + ================= + |ss |index|base | + ================= + + */ + +#define GET_SS(x) ((x) >> 6 & 0x3) +#define GET_INDEX(x) ((x) >> 3 & 0x7) +#define GET_BASE(x) ((x) & 0x7) + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Perform arithmetic for addressing functions. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL IU32 +address_add + +IFN2( + IU32, offset, + IS32, delta + ) + + + { + IU32 retval; + + if ( GET_ADDRESS_SIZE() == USE32 ) + retval = offset + delta; + else + retval = offset + delta & WORD_MASK; + + return retval; + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Decode memory address. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +d_mem + +IFN5( + IU8, modRM, /* (I ) current mode R/M byte */ + IU8 **, p, /* (IO) Intel opcode stream */ + IU8, segment_override, /* (I ) current segment_override */ + ISM32 *, seg, /* ( O) Segment register index */ + IU32 *, off /* ( O) Memory offset */ + ) + + /* ANSI */ + { + IU8 mode; /* Working copy of 'mode' field */ + IU8 r_m; /* Working copy of 'R/M' field */ + IU32 disp; /* Working copy of displacement */ + IU32 mem_off; /* Working copy of memory offset */ + IU8 identifier; /* Memory addressing type */ + IU8 sub_id; /* Memory addressing sub type */ + + mode = GET_MODE(modRM); + r_m = GET_R_M(modRM); + + /* + DECODE IT. + */ + + /* check for presence of SIB byte */ + if ( r_m == 4 && GET_ADDRESS_SIZE() == USE32 ) + { + /* process SIB byte */ + modRM = GET_INST_BYTE(*p); /* get SIB byte */ + + /* subvert the original r_m value with the base value, + then addressing mode, displacements and default + segments all fall out in the wash */ + r_m = GET_BASE(modRM); + + /* determine decoded type and sub type */ + identifier = addr_maintype[2][mode][r_m]; /* 2 = 32-bit addr + SIB */ + sub_id = addr_subtype[GET_SS(modRM)][GET_INDEX(modRM)]; + } + else + { + /* no SIB byte */ + identifier = addr_maintype[GET_ADDRESS_SIZE()][mode][r_m]; + sub_id = A_SINO; + } + + /* encode displacement */ + switch ( addr_disp[GET_ADDRESS_SIZE()][mode][r_m] ) + { + case D_NO: /* No displacement */ + disp = 0; + break; + + case D_S8: /* Sign extend Intel byte */ + disp = GET_INST_BYTE(*p); + if ( disp & BIT7_MASK ) + disp |= ~BYTE_MASK; + break; + + case D_S16: /* Sign extend Intel word */ + disp = GET_INST_BYTE(*p); + disp |= (IU32)GET_INST_BYTE(*p) << 8; + if ( disp & BIT15_MASK ) + disp |= ~WORD_MASK; + break; + + case D_Z16: /* Zero extend Intel word */ + disp = GET_INST_BYTE(*p); + disp |= (IU32)GET_INST_BYTE(*p) << 8; + break; + + case D_32: /* Intel double word */ + disp = GET_INST_BYTE(*p); + disp |= (IU32)GET_INST_BYTE(*p) << 8; + disp |= (IU32)GET_INST_BYTE(*p) << 16; + disp |= (IU32)GET_INST_BYTE(*p) << 24; + break; + } + + /* + DO IT. + */ + + /* encode segment register */ + if ( segment_override == SEG_CLR ) + segment_override = addr_default_seg[GET_ADDRESS_SIZE()][mode][r_m]; + *seg = segment_override; + + /* caclculate offset */ + switch ( identifier ) + { + case A_1600: case A_1610: case A_1620: + mem_off = GET_BX() + GET_SI() + disp & WORD_MASK; + break; + + case A_1601: case A_1611: case A_1621: + mem_off = GET_BX() + GET_DI() + disp & WORD_MASK; + break; + + case A_1602: case A_1612: case A_1622: + mem_off = GET_BP() + GET_SI() + disp & WORD_MASK; + break; + + case A_1603: case A_1613: case A_1623: + mem_off = GET_BP() + GET_DI() + disp & WORD_MASK; + break; + + case A_1604: case A_1614: case A_1624: + mem_off = GET_SI() + disp & WORD_MASK; + break; + + case A_1605: case A_1615: case A_1625: + mem_off = GET_DI() + disp & WORD_MASK; + break; + + case A_1606: + mem_off = disp & WORD_MASK; + break; + + case A_1616: case A_1626: + mem_off = GET_BP() + disp & WORD_MASK; + break; + + case A_1607: case A_1617: case A_1627: + mem_off = GET_BX() + disp & WORD_MASK; + break; + + case A_3200: case A_3210: case A_3220: + case A_32S00: case A_32S10: case A_32S20: + mem_off = GET_EAX() + disp; + break; + + case A_3201: case A_3211: case A_3221: + case A_32S01: case A_32S11: case A_32S21: + mem_off = GET_ECX() + disp; + break; + + case A_3202: case A_3212: case A_3222: + case A_32S02: case A_32S12: case A_32S22: + mem_off = GET_EDX() + disp; + break; + + case A_3203: case A_3213: case A_3223: + case A_32S03: case A_32S13: case A_32S23: + mem_off = GET_EBX() + disp; + break; + + case A_32S04: case A_32S14: case A_32S24: + mem_off = GET_ESP() + GET_POP_DISP() + disp; + break; + + case A_3205: + case A_32S05: + mem_off = disp; + break; + + case A_3215: case A_3225: + case A_32S15: case A_32S25: + mem_off = GET_EBP() + disp; + break; + + case A_3206: case A_3216: case A_3226: + case A_32S06: case A_32S16: case A_32S26: + mem_off = GET_ESI() + disp; + break; + + case A_3207: case A_3217: case A_3227: + case A_32S07: case A_32S17: case A_32S27: + mem_off = GET_EDI() + disp; + break; + } /* end switch */ + + /* add 'si', scale and index into offset */ + switch ( sub_id ) + { + case A_SINO: /* No SIB byte */ break; + + case A_SI00: mem_off += GET_EAX(); break; + case A_SI01: mem_off += GET_ECX(); break; + case A_SI02: mem_off += GET_EDX(); break; + case A_SI03: mem_off += GET_EBX(); break; + case A_SI04: break; + case A_SI05: mem_off += GET_EBP(); break; + case A_SI06: mem_off += GET_ESI(); break; + case A_SI07: mem_off += GET_EDI(); break; + + case A_SI10: mem_off += GET_EAX() << 1; break; + case A_SI11: mem_off += GET_ECX() << 1; break; + case A_SI12: mem_off += GET_EDX() << 1; break; + case A_SI13: mem_off += GET_EBX() << 1; break; + case A_SI14: break; + case A_SI15: mem_off += GET_EBP() << 1; break; + case A_SI16: mem_off += GET_ESI() << 1; break; + case A_SI17: mem_off += GET_EDI() << 1; break; + + case A_SI20: mem_off += GET_EAX() << 2; break; + case A_SI21: mem_off += GET_ECX() << 2; break; + case A_SI22: mem_off += GET_EDX() << 2; break; + case A_SI23: mem_off += GET_EBX() << 2; break; + case A_SI24: break; + case A_SI25: mem_off += GET_EBP() << 2; break; + case A_SI26: mem_off += GET_ESI() << 2; break; + case A_SI27: mem_off += GET_EDI() << 2; break; + + case A_SI30: mem_off += GET_EAX() << 3; break; + case A_SI31: mem_off += GET_ECX() << 3; break; + case A_SI32: mem_off += GET_EDX() << 3; break; + case A_SI33: mem_off += GET_EBX() << 3; break; + case A_SI34: break; + case A_SI35: mem_off += GET_EBP() << 3; break; + case A_SI36: mem_off += GET_ESI() << 3; break; + case A_SI37: mem_off += GET_EDI() << 3; break; + } /* end switch */ + + *off = mem_off; + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Perform limit checking. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +limit_check + +IFN4( + ISM32, index, /* (I) segment register identifier */ + IU32, offset, /* (I) offset for first (lowest memory) + data item */ + ISM32, nr_items, /* (I) number of items to be accessed */ + IUM8, op_sz /* (I) number of bytes in each item */ + ) + + + { + /* + As documented by Intel the basic limit check failures are: + + IU8:- address > limit + IU16:- address > (limit-1) + IU32:- address > (limit-3) + + We (for efficiency) extend the algorithm to handle multiple + operands with one check:- address > (limit-(total_nr_bytes-1)). + + Further we must account for the different interpretation of + limit in expand down segments. This leads to two algorithms. + + EXPAND UP:- + + Check address > (limit-(total_nr_bytes-1)) with two caveats. + One, beware that the subtraction from limit may underflow + (eg a IU32 accessed in a 3 byte segment). Two, beware that + wraparound can occur if each individual operand is stored + contiguously and we have a 'full sized' segment. + + EXPAND DOWN:- + + Check address <= limit || + address > (segment_top-(total_nr_bytes-1)). + Because total_nr_bytes is always a relatively small number + the subtraction never underflows. And as you can never have + a full size expand down segment you can never have wraparound. + + Additionally although 32-bit addressing mode may be used in Real + Mode, all offsets must fit in the range 0 - 0xffff. + */ + + /* + Note a quick summary of inclusive valid bounds is:- + + ================================================= + | E | G | X | lower bound | upper bound | + ================================================= + | 0 | 0 | 0 | 0 | limit | + | 0 | 0 | 1 | 0 | limit | + | 0 | 1 | 0 | 0 | limit<<12|fff | + | 0 | 1 | 1 | 0 | limit<<12|fff | + | 1 | 0 | 0 | limit+1 | ffff | + | 1 | 0 | 1 | limit+1 | ffffffff | + | 1 | 1 | 0 | (limit<<12|fff)+1 | ffff | + | 1 | 1 | 1 | (limit<<12|fff)+1 | ffffffff | + ================================================= + */ + + /* + We "pre-process" the G-bit when the segment is first loaded + and store the limit to reflect the G-bit as required. Hence we + don't need to refer to the G-bit here. + */ + + ISM32 range; + BOOL bad_limit = FALSE; + IU32 segment_top; + + range = nr_items * op_sz - 1; + + if ( GET_SR_AR_E(index) ) + { + /* expand down */ + if ( GET_SR_AR_X(index) == USE32 ) + segment_top = 0xffffffff; + else + segment_top = 0xffff; + + if ( offset <= GET_SR_LIMIT(index) || /* out of range */ + offset > segment_top - range ) /* segment too small */ + { + bad_limit = TRUE; + } + } + else + { + /* expand up */ + segment_top = GET_SR_LIMIT(index); + + if ( offset > segment_top || /* out of range */ + segment_top < range ) /* segment too small */ + { + bad_limit = TRUE; + } + else + { + if ( offset > segment_top - range ) + { + /* data extends past end of segment */ + if ( offset % op_sz != 0 ) + { + /* Data mis-aligned, so basic operand won't be + contiguously stored */ + bad_limit = TRUE; + } + else + { + /* If 'full sized' segment wraparound can occur */ + if ( GET_SR_AR_X(index) == USE16 ) + { + if ( GET_SR_LIMIT(index) != 0xffff ) + bad_limit = TRUE; + } + else /* USE32 */ + { + if ( GET_SR_LIMIT(index) != 0xffffffff ) + bad_limit = TRUE; + } + } + } + } + } + + + +#ifndef TAKE_REAL_MODE_LIMIT_FAULT + + /* The Soft486 EDL CPU does not take Real Mode limit failures. + * Since the Ccpu486 is used as a "reference" cpu we wish it + * to behave a C version of the EDL Cpu rather than as a C + * version of a i486. + */ + + if ( GET_PE() == 0 || GET_VM() == 1 ) + return; +#endif /* TAKE_REAL_MODE_LIMIT_FAULT */ + + if ( bad_limit ) + { + if ( index == SS_REG ) + { + SF((IU16)0, FAULT_LIMITCHK_SEG_LIMIT); + } + else + { + GP((IU16)0, FAULT_LIMITCHK_SEG_LIMIT); + } + } + } diff --git a/private/mvdm/softpc.new/base/ccpu386/c_addr.h b/private/mvdm/softpc.new/base/ccpu386/c_addr.h new file mode 100644 index 000000000..44a195430 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_addr.h @@ -0,0 +1,39 @@ +/*[ + +c_addr.h + +LOCAL CHAR SccsID[]="@(#)c_addr.h 1.4 02/09/94"; + +Memory Addressing Support. +-------------------------- + +]*/ + +IMPORT IU32 address_add + +IPT2( + IU32, offset, + IS32, delta + + ); + +IMPORT VOID d_mem + +IPT5( + IU8, modRM, + IU8 **, p, + IU8, segment_override, + ISM32 *, seg, + IU32 *, off + + ); + +IMPORT VOID limit_check + +IPT4( + ISM32, indx, + IU32, offset, + ISM32, nr_items, + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/c_bsic.c b/private/mvdm/softpc.new/base/ccpu386/c_bsic.c new file mode 100644 index 000000000..ca248fee8 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_bsic.c @@ -0,0 +1,369 @@ +/*[ + +c_bsic.c + +LOCAL CHAR SccsID[]="@(#)c_bsic.c 1.7 09/20/94"; + +Basic Protected Mode Support and Flag Support. +---------------------------------------------- + +]*/ + + +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Determine 'super' type from access rights. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL ISM32 +descriptor_super_type + +IFN1( + IU16, AR /* (I) access rights */ + ) + + + { + ISM32 super; + + switch ( super = GET_AR_SUPER(AR) ) + { + case 0x0: case 0x8: case 0xa: case 0xd: + /* We have just one bad case */ + return INVALID; + + + case 0x1: case 0x2: case 0x3: + case 0x4: case 0x5: case 0x6: case 0x7: + case 0x9: case 0xb: case 0xc: case 0xe: case 0xf: + /* system/control segments have one to one mapping */ + return super; + + case 0x10: case 0x11: case 0x12: case 0x13: + case 0x14: case 0x15: case 0x16: case 0x17: + case 0x18: case 0x19: case 0x1a: case 0x1b: + case 0x1c: case 0x1d: case 0x1e: case 0x1f: + /* data/code segments map as if accessed */ + return super | ACCESSED; + } + + /* We 'know' we never get here, but the C compiler doesn't */ + return 0; + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Set OF flag after multiple shift or rotate instruction. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +do_multiple_shiftrot_of + +IFN1( + ISM32, new_of /* (I) overflow that would be written by last bit + shift or rotate */ + ) + + + { + SAVED IBOOL cold = TRUE; + SAVED IBOOL shiftrot_of_undef = FALSE; + + if( cold ) + { + /* + * Determine whether to have the multiple shift/rotates + * OF undefined or calculated by the count == 1 algorithm. + * The default is the count == 1 option. + */ + + shiftrot_of_undef = ( host_getenv( "SHIFTROT_OF_UNDEF" ) != NULL ); + cold = FALSE; + } + /* + There are three possible actions:- + + 1) Set OF based on the last bit shift or rotate. + + 2) Leave OF unchanged + + 3) Set OF to a specific undefined value. + */ + + if( shiftrot_of_undef ) + { + /* Set undefined flag(s) */ + SET_OF(UNDEFINED_FLAG); + } + else + { + /* Just like count of one case */ + SET_OF(new_of); + } + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Retrieve Intel EFLAGS register value */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL IU32 +c_getEFLAGS IFN0() + { + IU32 flags; + + flags = getFLAGS(); /* get lower word */ + + flags = flags | GET_VM() << 17 | GET_RF() << 16; + +#ifdef SPC486 + flags = flags | GET_AC() << 18; +#endif /* SPC486 */ + + return flags; + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Retrieve Intel FLAGS register value */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL IU32 +getFLAGS() + { + IU32 flags; + + flags = GET_NT() << 14 | GET_IOPL() << 12 | GET_OF() << 11 | + GET_DF() << 10 | GET_IF() << 9 | GET_TF() << 8 | + GET_SF() << 7 | GET_ZF() << 6 | GET_AF() << 4 | + GET_PF() << 2 | GET_CF() | 0x2; + + return flags; + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Read a descriptor table at given linear address. */ +/* Take #PF if descriptor not in linear address space. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +read_descriptor_linear + +IFN2( + IU32, addr, /* (I) Linear address of descriptor */ + CPU_DESCR *, descr /* (O) Pntr to our internal descriptor structure */ + ) + + + { + IU32 first_dword; + IU32 second_dword; + IU32 limit; + + /* + The format of a 286 descriptor is:- + + =========================== + +1 | LIMIT 15-0 | +0 + =========================== + +3 | BASE 15-0 | +2 + =========================== + +5 | AR | BASE 23-16 | +4 + =========================== + +7 | RESERVED | +6 + =========================== + */ + + /* + The format of a 386 descriptor is:- + + ============================= AR = Access Rights. + +1 | LIMIT 15-0 | +0 AVL = Available. + ============================= D = Default Operand + +3 | BASE 15-0 | +2 Size, = 0 16-bit + ============================= = 1 32-bit. + +5 | AR | BASE 23-16 | +4 G = Granularity, + ============================= = 0 byte limit + | | | | |A|LIMIT| = 1 page limit. + +7 | BASE 31-24 |G|D|0|V|19-16| +6 + | | | | |L| | + ============================= + + */ + + /* read in descriptor with minimum interaction with memory */ + first_dword = spr_read_dword(addr); + second_dword = spr_read_dword(addr+4); + + /* load attributes and access rights */ + descr->AR = second_dword >> 8 & WORD_MASK; + + /* unpack the base */ + descr->base = (first_dword >> 16) | + (second_dword << 16 & 0xff0000 ) | + (second_dword & 0xff000000); + + /* unpack the limit */ + limit = (first_dword & WORD_MASK) | (second_dword & 0xf0000); + + if ( second_dword & BIT23_MASK ) + { + /* Granularity Bit Set. Limit is expressed in pages + (4k bytes), convert to byte limit */ + limit = limit << 12 | 0xfff; + } + descr->limit = limit; + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Check for null selector */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL BOOL +selector_is_null + +IFN1( + IU16, selector /* selector to be checked */ + ) + + + { + if ( GET_SELECTOR_INDEX(selector) == 0 && GET_SELECTOR_TI(selector) == 0 ) + return TRUE; + return FALSE; + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Check if selector outside bounds of GDT */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL BOOL +selector_outside_GDT + +IFN2( + IU16, selector, /* (I) selector to be checked */ + IU32 *, descr_addr /* (O) address of related descriptor */ + ) + + + { + IU16 offset; + + offset = GET_SELECTOR_INDEX_TIMES8(selector); + + /* make sure GDT then trap NULL selector or outside table */ + if ( GET_SELECTOR_TI(selector) == 1 || + offset == 0 || offset + 7 > GET_GDT_LIMIT() ) + return TRUE; + + *descr_addr = GET_GDT_BASE() + offset; + return FALSE; + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Check if selector outside bounds of GDT or LDT */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL BOOL +selector_outside_GDT_LDT + +IFN2( + IU16, selector, /* (I) selector to be checked */ + IU32 *, descr_addr /* (O) address of related descriptor */ + ) + + + { + IU16 offset; + + offset = GET_SELECTOR_INDEX_TIMES8(selector); + + /* choose a table */ + if ( GET_SELECTOR_TI(selector) == 0 ) + { + /* GDT - trap NULL selector or outside table */ + if ( offset == 0 || offset + 7 > GET_GDT_LIMIT() ) + return TRUE; + *descr_addr = GET_GDT_BASE() + offset; + } + else + { + /* LDT - trap invalid LDT or outside table */ +#ifndef DONT_CLEAR_LDTR_ON_INVALID + if ( GET_LDT_SELECTOR() <= 3 || offset + 7 > GET_LDT_LIMIT() ) +#else + if ( GET_LDT_SELECTOR() == 0 || offset + 7 > GET_LDT_LIMIT() ) +#endif /* DONT_CLEAR_LDTR_ON_INVALID */ + return TRUE; + *descr_addr = GET_LDT_BASE() + offset; + } + + return FALSE; + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Store new value in Intel EFLAGS register. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +c_setEFLAGS + +IFN1( + IU32, flags + ) + + + { + setFLAGS(flags); /* set lower word */ + + SET_RF((flags & BIT16_MASK) != 0); + + if ( GET_CPL() == 0 ) + SET_VM((flags & BIT17_MASK) != 0); + +#ifdef SPC486 + SET_AC((flags & BIT18_MASK) != 0); +#endif /* SPC486 */ + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Store new value in Intel FLAGS register */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +setFLAGS + +IFN1( + IU32, flags + ) + + + { + SET_CF((flags & BIT0_MASK) != 0); + SET_PF((flags & BIT2_MASK) != 0); + SET_AF((flags & BIT4_MASK) != 0); + SET_ZF((flags & BIT6_MASK) != 0); + SET_SF((flags & BIT7_MASK) != 0); + SET_TF((flags & BIT8_MASK) != 0); + SET_DF((flags & BIT10_MASK) != 0); + SET_OF((flags & BIT11_MASK) != 0); + + /* IF only updated if CPL <= IOPL */ + if ( GET_CPL() <= GET_IOPL() ) + SET_IF((flags & BIT9_MASK) != 0); + + SET_NT((flags & BIT14_MASK) != 0); + + /* IOPL only updated at highest privilege */ + if ( GET_CPL() == 0 ) + SET_IOPL((flags >> 12) & 3); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/c_bsic.h b/private/mvdm/softpc.new/base/ccpu386/c_bsic.h new file mode 100644 index 000000000..ba656c371 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_bsic.h @@ -0,0 +1,138 @@ +/*[ + +c_bsic.h + +Basic Protected Mode Support and Flag Support. +---------------------------------------------- + +LOCAL CHAR SccsID[]="@(#)c_bsic.h 1.5 09/01/94"; + +]*/ + + +/* + Define descriptor 'super' types. + */ +#define INVALID 0x00 +#define AVAILABLE_TSS 0x01 +#define LDT_SEGMENT 0x02 +#define BUSY_TSS 0x03 +#define CALL_GATE 0x04 +#define TASK_GATE 0x05 +#define INTERRUPT_GATE 0x06 +#define TRAP_GATE 0x07 +#define XTND_AVAILABLE_TSS 0x09 +#define XTND_BUSY_TSS 0x0b +#define XTND_CALL_GATE 0x0c +#define XTND_INTERRUPT_GATE 0x0e +#define XTND_TRAP_GATE 0x0f +#define EXPANDUP_READONLY_DATA 0x11 +#define EXPANDUP_WRITEABLE_DATA 0x13 +#define EXPANDDOWN_READONLY_DATA 0x15 +#define EXPANDDOWN_WRITEABLE_DATA 0x17 +#define NONCONFORM_NOREAD_CODE 0x19 +#define NONCONFORM_READABLE_CODE 0x1b +#define CONFORM_NOREAD_CODE 0x1d +#define CONFORM_READABLE_CODE 0x1f + + +/* + Macros for access to SELECTOR bit fields. + + 15 3 2 1 0 + ================================= + SELECTOR | INDEX |T|RPL| + | |I| | + ================================= + */ +#define GET_SELECTOR_INDEX_TIMES8(x) ((x) & 0xfff8) +#define GET_SELECTOR_INDEX(x) (((x) & 0xfff8) >> 3) +#define GET_SELECTOR_TI(x) (((x) & 0x0004) >> 2) +#define GET_SELECTOR_RPL(x) ((x) & 0x3) +#define SET_SELECTOR_RPL(x,y) (x = ((x) & ~0x3) | y) + +/* + Macros for access to ACCESS RIGHTS bit fields. + + 1 1 1 1 1 1 + 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 + ================================= + ACCESS RIGHTS |-|X|-|-|-|-|-|-|P|DPL| SUPER | + ================================= + + Code Segment: Data Segment: + 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 + ================= ================= + |P|DPL|1|1|C|R|A| |P|DPL|1|0|E|W|A| + ================= ================= + + */ +#define GET_AR_P(x) (((x) & BIT7_MASK) != 0) /* present */ +#define GET_AR_E(x) (((x) & BIT2_MASK) != 0) /* expand down */ +#define GET_AR_C(x) (((x) & BIT2_MASK) != 0) /* conforming */ +#define GET_AR_W(x) (((x) & BIT1_MASK) != 0) /* writeable */ +#define GET_AR_R(x) (((x) & BIT1_MASK) != 0) /* readable */ +#define GET_AR_X(x) (((x) & BIT14_MASK) != 0) /* big/default */ + +#define GET_AR_DPL(x) (((x) & 0x60) >> 5) +#define GET_AR_SUPER(x) ((x) & 0x1f) + +#define NOT_PRESENT 0 +#define PRESENT 1 +#define ACCESSED 1 + + +IMPORT ISM32 descriptor_super_type + +IPT1( + IU16, AR + + ); + +IMPORT VOID do_multiple_shiftrot_of + +IPT1( + ISM32, new_of + + ); + + +IMPORT IU32 getFLAGS IPT0(); + +IMPORT VOID read_descriptor_linear + +IPT2( + IU32, addr, + CPU_DESCR *, descr + + ); + +IMPORT BOOL selector_is_null + +IPT1( + IU16, selector + + ); + +IMPORT BOOL selector_outside_GDT + +IPT2( + IU16, selector, + IU32 *, descr_addr + + ); + +IMPORT BOOL selector_outside_GDT_LDT + +IPT2( + IU16, selector, + IU32 *, descr_addr + + ); + +IMPORT VOID setFLAGS + +IPT1( + IU32, flags + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/c_debug.c b/private/mvdm/softpc.new/base/ccpu386/c_debug.c new file mode 100644 index 000000000..e3fc7f26d --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_debug.c @@ -0,0 +1,386 @@ +/*[ + +c_debug.c + +LOCAL CHAR SccsID[]="@(#)c_debug.c 1.5 02/09/94"; + +Debugging Register and Breakpoint Support +----------------------------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + IMPLEMENTATION NOTE. We ignore the GE and LE bits, effectively like + the 486 we will always generate exact exceptions. As we have no + pipeline architecture and have always finished the last instruction + before starting the next one, we can easily provide exact exceptions. + + For the same reason we never need to set the BD bit, with no + pipelining the debug registers may be freely written to at any time. + */ + + +/* + We hold instruction breakpoints as a linear address, plus + an index which identifies the debug register. + */ +typedef struct + { + IU32 addr; /* Linear address of breakpoint */ + IU32 id; /* debug register identifier */ + } INST_BREAK; + +/* + We hold data breakpoints as start and end linear addresses, type + and an index which identifies the debug register. + */ +typedef struct + { + IU32 start_addr; /* Linear start address of breakpoint (incl) */ + IU32 end_addr; /* Linear end address of breakpoint (incl) */ + ISM32 type; /* D_WO (write) or D_RW (read/write) */ + IU32 id; /* debug register identifier */ + } DATA_BREAK; + +/* + Data breakpoint types. + */ +#define D_WO 0 /* write only */ +#define D_RW 1 /* read or write */ + +#define NR_BRKS 4 /* Intel has 4 breakpoint address regs */ + +/* + Our breakpoint structure. + */ +GLOBAL IU32 nr_inst_break = 0; /* number of inst breakpoints active */ +GLOBAL IU32 nr_data_break = 0; /* number of data breakpoints active */ + +LOCAL INST_BREAK i_brk[NR_BRKS]; +LOCAL DATA_BREAK d_brk[NR_BRKS]; + +/* + Define masks and shifts for components of Debug Control Register. + + DCR = Debug Control Register:- + + 33 22 22 22 22 22 11 11 1 1 + 10 98 76 54 32 10 98 76 5 0 9 8 7 6 5 4 3 2 1 0 + ==================================================== + |L |R |L |R |L |R |L |R | 0 |G|L|G|L|G|L|G|L|G|L| + |E |/ |E |/ |E |/ |E |/ | |E|E|3|3|2|2|1|1|0|0| + |N |W |N |W |N |W |N |W | | | | | | | | | | | | + |3 |3 |2 |2 |1 |1 |0 |0 | | | | | | | | | | | | + ==================================================== + + */ + +LOCAL IU32 g_l_shift[NR_BRKS] = + { + 0, /* access G0 L0 */ + 2, /* access G1 L1 */ + 4, /* access G2 L2 */ + 6 /* access G3 L3 */ + }; + +LOCAL IU32 r_w_shift[NR_BRKS] = + { + 16, /* access R/W0 */ + 20, /* access R/W1 */ + 24, /* access R/W2 */ + 28 /* access R/W3 */ + }; + +LOCAL IU32 len_shift[NR_BRKS] = + { + 18, /* access LEN0 */ + 22, /* access LEN1 */ + 26, /* access LEN2 */ + 30 /* access LEN3 */ + }; + +#define COMP_MASK 0x3 /* all fields are 2-bit */ + + +/* + ===================================================================== + INTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Map Intel length indicator to start and end address form. */ +/* RETURNS true if valid len processed */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +LOCAL BOOL +len_to_addr + +IFN3( + ISM32, index, /* (I) debug register holding breakpoint */ + IU32 *, start, /* (O) pntr to start address (inclusive) for + debug area */ + IU32 *, end /* (O) pntr to end address (inclusive) for + debug area */ + ) + + + { + BOOL retval; + + /* map length into start and end addresses */ + switch ( GET_DR(DR_DCR) >> len_shift[index] & COMP_MASK ) + { + case 0: /* one byte */ + *start = *end = GET_DR(index); + retval = TRUE; + break; + + case 1: /* two byte */ + *start = GET_DR(index) & ~BIT0_MASK; + *end = *start + 1; + retval = TRUE; + break; + + case 3: /* four byte */ + *start = GET_DR(index) & ~(BIT1_MASK | BIT0_MASK); + *end = *start + 3; + retval = TRUE; + break; + + case 2: /* undefined */ + default: + retval = FALSE; + break; + } + + return retval; + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Put Intel inst breakpoint into our internal form. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +LOCAL VOID +setup_inst_break + +IFN1( + ISM32, index /* debug register holding breakpoint */ + ) + + + { + INST_BREAK *p; + + p = &i_brk[nr_inst_break]; + + p->addr = GET_DR(index); + p->id = index; + + nr_inst_break++; + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Put Intel data breakpoint into our internal form. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +LOCAL VOID +setup_data_break + +IFN2( + ISM32, type, /* (I) D_WO(write) or D_RW(read/write) breakpoint */ + ISM32, index /* (I) debug register holding breakpoint */ + ) + + + { + DATA_BREAK *p; + + p = &d_brk[nr_data_break]; + + if ( len_to_addr(index, &p->start_addr, &p->end_addr) ) + { + p->id = index; + p->type = type; + nr_data_break++; + } + } + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Check Memory Access for Data Breakpoint Exception. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +check_for_data_exception + +IFN3( + IU32, la, /* linear address */ + ISM32, attr, /* read or write access to memory */ + ISM32, size /* encoded IU8, IU16 or IU32 size indicator */ + ) + + + { + ISM32 i; /* index thru active data breakpoints */ + ISM32 ii; /* index thru all Intel breakpoints */ + ISM32 trig; /* id of breakpoint which first triggers */ + IU32 end_la; /* end (inclusive) address of memory access */ + IU32 start; /* start (inclusive) address of brkpnt. */ + IU32 end; /* end (inclusive) address of brkpnt. */ + BOOL data_brk; /* current breakpoint needs range check */ + DATA_BREAK *p; + + end_la = la + size; /* calc. end address (inclusive) */ + + /* look for debugging hit among active breakpoints */ + for ( i = 0; i < nr_data_break; i++ ) + { + p = &d_brk[i]; + + if ( la > p->end_addr || end_la < p->start_addr || + attr == D_R && p->type == D_WO ) + { + ; /* no hit */ + } + else + { + /* Data breakpoint triggered */ + trig = p->id; /* get Intel identifier */ + SET_DR(DR_DSR, GET_DR(DR_DSR) | 1 << trig); /* set B bit */ + + /* + Now all breakpoints are checked regardless of the + enable bits and the appropriate B bit set if the + breakpoint would trigger if enabled. + */ + for ( ii = 0; ii < NR_BRKS; ii++ ) + { + if ( ii == trig ) + continue; /* we have already processed the tigger */ + + data_brk = FALSE; + + /* action according to R/W field */ + switch ( GET_DR(DR_DCR) >> r_w_shift[ii] & COMP_MASK ) + { + case 1: /* data write only */ + if ( attr == D_W ) + { + data_brk = len_to_addr(ii, &start, &end); + } + break; + + case 3: /* data read or write */ + data_brk = len_to_addr(ii, &start, &end); + break; + } + + if ( data_brk ) + { + if ( la > end || end_la < start ) + { + ; /* no hit */ + } + else + { + /* set appropriate B bit */ + SET_DR(DR_DSR, GET_DR(DR_DSR) | 1 << ii); + } + } + } + + break; /* all done after one trigger */ + } + } + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Check Memory Access for Instruction Breakpoint Exception. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +check_for_inst_exception + +IFN1( + IU32, la /* linear address */ + ) + + + { + ISM32 i; /* index thru active inst breakpoints */ + ISM32 trig; + INST_BREAK *p; + + /* look for debugging hit among active breakpoints */ + for ( i = 0; i < nr_inst_break; i++ ) + { + p = &i_brk[i]; + + if ( p->addr == la ) + { + /* Inst breakpoint triggered */ + trig = p->id; /* get Intel identifier */ + SET_DR(DR_DSR, GET_DR(DR_DSR) | 1 << trig); /* set B bit */ + } + } + } + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Put Intel debugging registers into internal breakpoint form. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +setup_breakpoints() + { + ISM32 i; + + nr_inst_break = nr_data_break = 0; /* set no breakpoints */ + + /* look for breakpoints set in DCR */ + for ( i = DR_DAR0; i <= DR_DAR3; i++ ) + { + /* look for globally or locally active */ + if ( GET_DR(DR_DCR) >> g_l_shift[i] & COMP_MASK ) + { + /* action according to R/W field */ + switch ( GET_DR(DR_DCR) >> r_w_shift[i] & COMP_MASK ) + { + case 0: /* instruction breakpoint */ + setup_inst_break(i); + break; + + case 1: /* data write only */ + setup_data_break(D_WO, i); + break; + + case 2: /* undefined */ + /* do nothing */ + break; + + case 3: /* data read or write */ + setup_data_break(D_RW, i); + break; + } + } + } + } diff --git a/private/mvdm/softpc.new/base/ccpu386/c_debug.h b/private/mvdm/softpc.new/base/ccpu386/c_debug.h new file mode 100644 index 000000000..82790e622 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_debug.h @@ -0,0 +1,45 @@ +/*[ + +c_debug.h + +Debugging Register and Breakpoint Support +----------------------------------------- + +LOCAL CHAR SccsID[]="@(#)c_debug.h 1.5 09/01/94"; + +]*/ + + +/* + Debug breakpoint status variables. + */ +IMPORT IU32 nr_inst_break; +IMPORT IU32 nr_data_break; + +/* + Debug attributes. + */ +#define D_R 0 /* memory read */ +#define D_W 1 /* memory write */ + +#define D_BYTE 0 +#define D_WORD 1 +#define D_DWORD 3 + +IMPORT VOID setup_breakpoints IPT0(); + +IMPORT VOID check_for_data_exception + +IPT3( + IU32, la, + ISM32, attr, + ISM32, size + + ); + +IMPORT VOID check_for_inst_exception + +IPT1( + IU32, la + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/c_div64.c b/private/mvdm/softpc.new/base/ccpu386/c_div64.c new file mode 100644 index 000000000..ae5826b56 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_div64.c @@ -0,0 +1,147 @@ +/*[ + +c_div64.c + +LOCAL CHAR SccsID[]="@(#)c_div64.c 1.5 02/09/94"; + +64-bit Divide Functions. +------------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Do 64bit = 64bit / 32bit Divide (Signed). */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +div64 + +IFN4( + IS32 *, hr, /* High 32 bits of dividend/quotient */ + IS32 *, lr, /* Low 32 bits of dividend/quotient */ + IS32, divisor, + IS32 *, rem /* Remainder */ + ) + + + { + if ( *hr & BIT31_MASK ) + { + if ( divisor & BIT31_MASK ) + { + /* Negative Dividend :: Negative Divisor */ + neg64(hr, lr); + divisor = -divisor; + divu64((IU32 *)hr, (IU32 *)lr, (IU32)divisor, (IU32 *)rem); + *rem = -*rem; + } + else + { + /* Negative Dividend :: Positive Divisor */ + neg64(hr, lr); + divu64((IU32 *)hr, (IU32 *)lr, (IU32)divisor, (IU32 *)rem); + neg64(hr, lr); + *rem = -*rem; + } + } + else + { + if ( divisor & BIT31_MASK ) + { + /* Positive Dividend :: Negative Divisor */ + divisor = -divisor; + divu64((IU32 *)hr, (IU32 *)lr, (IU32)divisor, (IU32 *)rem); + neg64(hr, lr); + } + else + { + /* Positive Dividend :: Positive Divisor */ + divu64((IU32 *)hr, (IU32 *)lr, (IU32)divisor, (IU32 *)rem); + } + } + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Do 64bit = 64bit / 32bit Divide (Unsigned). */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +divu64 + +IFN4( + IU32 *, hr, /* High 32 bits of dividend/quotient */ + IU32 *, lr, /* Low 32 bits of dividend/quotient */ + IU32, divisor, + IU32 *, rem /* Remainder */ + ) + + + { + ISM32 count; + IU32 hd; /* High 32 bits of dividend/quotient */ + IU32 ld; /* Low 32 bits of dividend/quotient */ + IU32 par_div; /* partial dividend */ + IU32 carry1; + IU32 carry2; + IU32 carry3; + + hd = *hr; /* Get local copies */ + ld = *lr; + count = 64; /* Initialise */ + par_div = 0; + + while ( count != 0 ) + { + /* shift left. + We have to watch out for carries from + ld to hd (carry1) and + hd to par_div (carry2) and + par_div to 'carry' (carry3). + */ + carry1 = carry2 = carry3 = 0; + if ( ld & BIT31_MASK ) + carry1 = 1; + if ( hd & BIT31_MASK ) + carry2 = 1; + if ( par_div & BIT31_MASK ) + carry3 = 1; + ld = ld << 1; + hd = hd << 1 | carry1; + par_div = par_div << 1 | carry2; + + /* check if divisor 'goes into' partial dividend */ + if ( carry3 || divisor <= par_div ) + { + /* Yes it does */ + par_div = par_div - divisor; + ld = ld | 1; /* output a 1 bit */ + } + count--; + } + + *rem = par_div; /* Return results */ + *hr = hd; + *lr = ld; + } diff --git a/private/mvdm/softpc.new/base/ccpu386/c_div64.h b/private/mvdm/softpc.new/base/ccpu386/c_div64.h new file mode 100644 index 000000000..69d29237b --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_div64.h @@ -0,0 +1,29 @@ +/* + c_div64.h + + Define all 64-bit Divide Functions. + */ + +/* + static char SccsID[]="@(#)c_div64.h 1.4 02/09/94"; + */ + +IMPORT VOID divu64 + +IPT4( + IU32 *, hr, + IU32 *, lr, + IU32, divisor, + IU32 *, rem + + ); + +IMPORT VOID div64 + +IPT4( + IS32 *, hr, + IS32 *, lr, + IS32, divisor, + IS32 *, rem + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/c_getset.c b/private/mvdm/softpc.new/base/ccpu386/c_getset.c new file mode 100644 index 000000000..299917388 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_getset.c @@ -0,0 +1,290 @@ +#include "insignia.h" +#include "host_def.h" + +/*[ + * ============================================================================ + * + * Name: c_getset.c + * + * Derived From: pig/getsetc.c + * + * Author: Andrew Ogle + * + * Created On: 9th Febuary 1993 + * + * Sccs ID: @(#)c_getset.c 1.25 12/06/94 + * + * Purpose: + * + * Defines procedures for getting and setting the complete + * C CPU status required for instruction and application testing + * against the assembler CPU. + * These routines are used by both the instruction and application + * piggers. + * + * (c)Copyright Insignia Solutions Ltd., 1993. All rights reserved. + * + * ============================================================================ +]*/ + +#if defined(PIG) + + +/* + * Get access to C CPU's global defintions. + */ +#include +#define CPU_PRIVATE +#include CpuH +#include + +/* + * Local structure definitions. + */ +#include "c_reg.h" +#include +#include +#include +#include + +LOCAL cpustate_t *p_current_state; /* used to check if NPX regs valid */ + +/*( +============================ c_setCpuNpxRegisters ============================= +PURPOSE: + The NPX registers are only transfered on demand from the CPU + under test (EDL) to the CCPU. This is because the information + involved is large and costly to process since it must be stored + textually in the state structure. +=============================================================================== +)*/ +GLOBAL void c_setCpuNpxRegisters IFN1(cpustate_t *, p_state) +{ + setNpxControlReg(p_state->NPX_regs.NPX_control); + setNpxStatusReg(p_state->NPX_regs.NPX_status); + setNpxStackRegs(p_state->NPX_regs.NPX_ST); + setNpxTagwordReg(p_state->NPX_regs.NPX_tagword); +} + +/*( +============================ c_checkCpuNpxRegisters =========================== +PURPOSE: + retrieves the NPX state from the assembler CPU and updates the Ccpu. +=============================================================================== +)*/ +GLOBAL void c_checkCpuNpxRegisters IFN0() +{ + if (p_current_state->NPX_valid) + { + /* The CCPU already has the NPX registers */ + return; + } + GetAcpuNpxRegisters(p_current_state); + p_current_state->NPX_valid = TRUE; + c_setCpuNpxRegisters(p_current_state); +} + + +/*( +============================ c_getCpuState ===================================== +PURPOSE: + Saves the complete current state of the C CPU in the passed + state structure. +=============================================================================== +)*/ + +GLOBAL void +c_getCpuState IFN1( + cpustate_t *, p_state +) +{ + /* + * Recover machine status word, privilege level and instruction + */ + p_state->cpu_regs.CR0 = GET_CR(0); + p_state->cpu_regs.PFLA = GET_CR(2); + p_state->cpu_regs.PDBR = GET_CR(3); + + p_state->cpu_regs.CPL = GET_CPL(); + p_state->cpu_regs.EIP = GET_EIP(); + + /* + * Recover general registers + */ + p_state->cpu_regs.EAX = GET_EAX(); + p_state->cpu_regs.EBX = GET_EBX(); + p_state->cpu_regs.ECX = GET_ECX(); + p_state->cpu_regs.EDX = GET_EDX(); + p_state->cpu_regs.ESP = GET_ESP(); + p_state->cpu_regs.EBP = GET_EBP(); + p_state->cpu_regs.ESI = GET_ESI(); + p_state->cpu_regs.EDI = GET_EDI(); + + /* + * Recover processor status flags. + */ + p_state->cpu_regs.EFLAGS = c_getEFLAGS(); + + /* + * Recover descriptor table registers. + */ + p_state->cpu_regs.GDT_base = GET_GDT_BASE(); + p_state->cpu_regs.GDT_limit = GET_GDT_LIMIT(); + + p_state->cpu_regs.IDT_base = GET_IDT_BASE(); + p_state->cpu_regs.IDT_limit = GET_IDT_LIMIT(); + + p_state->cpu_regs.LDT_selector = GET_LDT_SELECTOR(); + p_state->cpu_regs.LDT_base = GET_LDT_BASE(); + p_state->cpu_regs.LDT_limit = GET_LDT_LIMIT(); + + p_state->cpu_regs.TR_selector = GET_TR_SELECTOR(); + p_state->cpu_regs.TR_base = GET_TR_BASE(); + p_state->cpu_regs.TR_limit = GET_TR_LIMIT(); + p_state->cpu_regs.TR_ar = c_getTR_AR(); + + /* + * Recover segment register details + */ + p_state->cpu_regs.DS_selector = GET_DS_SELECTOR(); + p_state->cpu_regs.DS_base = GET_DS_BASE(); + p_state->cpu_regs.DS_limit = GET_DS_LIMIT(); + p_state->cpu_regs.DS_ar = c_getDS_AR(); + + p_state->cpu_regs.ES_selector = GET_ES_SELECTOR(); + p_state->cpu_regs.ES_base = GET_ES_BASE(); + p_state->cpu_regs.ES_limit = GET_ES_LIMIT(); + p_state->cpu_regs.ES_ar = c_getES_AR(); + + p_state->cpu_regs.SS_selector = GET_SS_SELECTOR(); + p_state->cpu_regs.SS_base = GET_SS_BASE(); + p_state->cpu_regs.SS_limit = GET_SS_LIMIT(); + p_state->cpu_regs.SS_ar = c_getSS_AR(); + + p_state->cpu_regs.CS_selector = GET_CS_SELECTOR(); + p_state->cpu_regs.CS_base = GET_CS_BASE(); + p_state->cpu_regs.CS_limit = GET_CS_LIMIT(); + p_state->cpu_regs.CS_ar = c_getCS_AR(); + + p_state->cpu_regs.FS_selector = GET_FS_SELECTOR(); + p_state->cpu_regs.FS_base = GET_FS_BASE(); + p_state->cpu_regs.FS_limit = GET_FS_LIMIT(); + p_state->cpu_regs.FS_ar = c_getFS_AR(); + + p_state->cpu_regs.GS_selector = GET_GS_SELECTOR(); + p_state->cpu_regs.GS_base = GET_GS_BASE(); + p_state->cpu_regs.GS_limit = GET_GS_LIMIT(); + p_state->cpu_regs.GS_ar = c_getGS_AR(); + + p_state->video_latches = Cpu.Video->GetVideolatches(); + + p_state->NPX_valid = FALSE; + + if ((p_current_state != (cpustate_t *)0) && p_current_state->NPX_valid) + { + p_state->NPX_regs.NPX_control = getNpxControlReg(); + p_state->NPX_regs.NPX_status = getNpxStatusReg(); + p_state->NPX_regs.NPX_tagword = getNpxTagwordReg(); + getNpxStackRegs(&p_state->NPX_regs.NPX_ST); + p_state->NPX_valid = TRUE; + } + p_state->twenty_bit_wrap = (SasWrapMask == 0xFFFFF); + p_state->synch_index = ccpu_synch_count; +} + +/*( +============================ c_setCpuState ===================================== +PURPOSE: + Takes the saved CPU state from the passed state structure and + uses it to set the current state of the C CPU. +=============================================================================== +)*/ + +GLOBAL void +c_setCpuState IFN1( + cpustate_t *, p_new_state +) +{ + c_setCPL(0); /* Allow manipulation of IO flags */ + + /* + * Setup machine status word, privilege level and instruction + * pointer. + */ + MOV_CR(0,(IU32)p_new_state->cpu_regs.CR0); + MOV_CR(2,(IU32)p_new_state->cpu_regs.PFLA); + MOV_CR(3,(IU32)p_new_state->cpu_regs.PDBR); + + SET_EIP(p_new_state->cpu_regs.EIP); + + /* + * Setup general registers + */ + SET_EAX(p_new_state->cpu_regs.EAX); + SET_EBX(p_new_state->cpu_regs.EBX); + SET_ECX(p_new_state->cpu_regs.ECX); + SET_EDX(p_new_state->cpu_regs.EDX); + SET_ESP(p_new_state->cpu_regs.ESP); + SET_EBP(p_new_state->cpu_regs.EBP); + SET_ESI(p_new_state->cpu_regs.ESI); + SET_EDI(p_new_state->cpu_regs.EDI); + + /* + * Setup processor status flags. + */ + c_setEFLAGS(p_new_state->cpu_regs.EFLAGS); + + SET_CPL(p_new_state->cpu_regs.CPL); + + /* + * Setup descriptor table registers. + */ + c_setGDT_BASE_LIMIT(p_new_state->cpu_regs.GDT_base, p_new_state->cpu_regs.GDT_limit); + + c_setIDT_BASE_LIMIT(p_new_state->cpu_regs.IDT_base, p_new_state->cpu_regs.IDT_limit); + + SET_LDT_SELECTOR(p_new_state->cpu_regs.LDT_selector); + c_setLDT_BASE_LIMIT(p_new_state->cpu_regs.LDT_base, p_new_state->cpu_regs.LDT_limit); + + SET_TR_SELECTOR(p_new_state->cpu_regs.TR_selector); + c_setTR_BASE_LIMIT_AR(p_new_state->cpu_regs.TR_base, p_new_state->cpu_regs.TR_limit, p_new_state->cpu_regs.TR_ar); + + /* + * Setup segment register details + */ + SET_DS_SELECTOR(p_new_state->cpu_regs.DS_selector); + c_setDS_BASE_LIMIT_AR(p_new_state->cpu_regs.DS_base, p_new_state->cpu_regs.DS_limit, p_new_state->cpu_regs.DS_ar); + + SET_ES_SELECTOR(p_new_state->cpu_regs.ES_selector); + c_setES_BASE_LIMIT_AR(p_new_state->cpu_regs.ES_base, p_new_state->cpu_regs.ES_limit, p_new_state->cpu_regs.ES_ar); + + SET_SS_SELECTOR(p_new_state->cpu_regs.SS_selector); + c_setSS_BASE_LIMIT_AR(p_new_state->cpu_regs.SS_base, p_new_state->cpu_regs.SS_limit, p_new_state->cpu_regs.SS_ar); + + SET_CS_SELECTOR(p_new_state->cpu_regs.CS_selector); + c_setCS_BASE_LIMIT_AR(p_new_state->cpu_regs.CS_base, p_new_state->cpu_regs.CS_limit, p_new_state->cpu_regs.CS_ar); + + SET_FS_SELECTOR(p_new_state->cpu_regs.FS_selector); + c_setFS_BASE_LIMIT_AR(p_new_state->cpu_regs.FS_base, p_new_state->cpu_regs.FS_limit, p_new_state->cpu_regs.FS_ar); + + SET_GS_SELECTOR(p_new_state->cpu_regs.GS_selector); + c_setGS_BASE_LIMIT_AR(p_new_state->cpu_regs.GS_base, p_new_state->cpu_regs.GS_limit, p_new_state->cpu_regs.GS_ar); + + Cpu.Video->SetVideolatches(p_new_state->video_latches); + + /* The NPX registers are not loaded here, since the extraction + * from the EDL Cpu is expensive. Instead we note that we have + * not loaded them yet, and will obtain them (if needed) when + * the first NPX instruction if encountered. + * N.B. we need a pointer to this state structure so that we can + * update the NPX registers when the CCPU does require them. + */ + p_new_state->NPX_valid = FALSE; + p_current_state = p_new_state; + if (p_new_state->twenty_bit_wrap) + SasWrapMask = 0xFFFFF; + else + SasWrapMask = -1; +} + +#endif /* PIG */ diff --git a/private/mvdm/softpc.new/base/ccpu386/c_intr.c b/private/mvdm/softpc.new/base/ccpu386/c_intr.c new file mode 100644 index 000000000..f4084cfcc --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_intr.c @@ -0,0 +1,515 @@ +/*[ + +c_intr.c + +LOCAL CHAR SccsID[]="@(#)c_intr.c 1.21 03/07/95"; + +Interrupt Support. +------------------ + +]*/ + + +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef PIG +#include +#endif + +/* + Prototype our internal functions. + */ +LOCAL ISM32 validate_int_dest + +IPT6( + IU16, vector, + BOOL, do_priv, + IU16 *, cs, + IU32 *, ip, + IU32 *, descr_addr, + ISM32 *, dest_type + + ); + + +/* + ===================================================================== + INTERNAL FUNCTIONS STARTS HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Validate int destination. Essentially decode int instruction. */ +/* Take #GP_INT(vector) if invalid. */ +/* Take #NP_INT(vector) if not present. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +LOCAL ISM32 +validate_int_dest + +IFN6( + IU16, vector, /* (I) vector to be checked */ + BOOL, do_priv, /* (I) if true do privilege check */ + IU16 *, cs, /* (O) segment of target address */ + IU32 *, ip, /* (O) offset of target address */ + IU32 *, descr_addr, /* (O) related descriptor memory address */ + ISM32 *, dest_type /* (O) destination type */ + ) + + + { + IU16 offset; + IU8 AR; + ISM32 super; + + /* calc address within IDT */ + offset = vector * 8; + + /* check within IDT */ + if ( offset + 7 > GET_IDT_LIMIT() ) + GP_INT(vector, FAULT_INT_DEST_NOT_IN_IDT); + + *descr_addr = GET_IDT_BASE() + offset; + + AR = spr_read_byte((*descr_addr)+5); + + /* check type */ + switch ( super = descriptor_super_type((IU16)AR) ) + { + case INTERRUPT_GATE: + case TRAP_GATE: + SET_OPERAND_SIZE(USE16); + break; + + case XTND_INTERRUPT_GATE: + case XTND_TRAP_GATE: + SET_OPERAND_SIZE(USE32); + break; + + case TASK_GATE: + break; /* ok */ + + default: + GP_INT(vector, FAULT_INT_DEST_BAD_SEG_TYPE); + } + + /* access check requires CPL <= DPL */ + if ( do_priv && (GET_CPL() > GET_AR_DPL(AR)) ) + GP_INT(vector, FAULT_INT_DEST_ACCESS); + + /* gate must be present */ + if ( GET_AR_P(AR) == NOT_PRESENT ) + NP_INT(vector, FAULT_INT_DEST_NOTPRESENT); + + /* ok, get real destination from gate */ + *cs = spr_read_word((*descr_addr)+2); + + /* action gate type */ + if ( super == TASK_GATE ) + { + /* Need to set operand size here so that any + * error code is push with correct size. + */ + switch (validate_task_dest(*cs, descr_addr)) + { + case BUSY_TSS: + case AVAILABLE_TSS: + SET_OPERAND_SIZE(USE16); + break; + case XTND_BUSY_TSS: + case XTND_AVAILABLE_TSS: + SET_OPERAND_SIZE(USE32); + break; + } + *dest_type = NEW_TASK; + } + else + { + /* INTERRUPT or TRAP GATE */ + + *ip = (IU32)spr_read_word(*descr_addr); + if ( super == XTND_INTERRUPT_GATE || super == XTND_TRAP_GATE ) + *ip = (IU32)spr_read_word((*descr_addr)+6) << 16 | *ip; + + validate_gate_dest(INT_ID, *cs, descr_addr, dest_type); + } + + return super; + } + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Process interrupt. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +do_intrupt + +IFN4( + IU16, vector, /* (I) interrupt vector to call */ + BOOL, priv_check, /* (I) if true access check is needed */ + BOOL, has_error_code, /* (I) if true needs error code pushing + on stack */ + IU16, error_code /* (I) error code to be pushed */ + ) + + + { + /* GLOBALS USED */ + /* doing_contributory cleared on success of interrupt */ + /* doing_page_fault cleared on success of interrupt */ + /* doing_double_fault cleared on success of interrupt */ + /* doing_fault indicates RF should be set in pushed + flags, cleared on success */ + + IU32 flags; /* temp store for FLAGS register */ + IU32 ivt_addr; /* address of ivt entry */ + + IU16 new_cs; /* The destination */ + IU32 new_ip; + + IU32 cs_descr_addr; /* code segment descriptor address */ + CPU_DESCR cs_entry; /* code segment descriptor entry */ + + ISM32 dest_type; /* category for destination */ + ISM32 super; /* super type of destination */ + IU32 dpl; /* new privilege level (if used) */ + + ISM32 stk_sz; /* space (in bytes) reqd on stack */ + IU16 new_ss; /* The new stack */ + IU32 new_sp; + + IU32 ss_descr_addr; /* stack segment descriptor address */ + CPU_DESCR ss_entry; /* stack segment descriptor entry */ + + IU32 old_ss; /* Variables used while making stack */ + IU32 old_sp; + + if ( GET_PE() == 0 ) + { + /* Real Mode */ + + /* must be able to push FLAGS:CS:IP */ + validate_stack_space(USE_SP, (ISM32)NR_ITEMS_3); + + /* get new destination */ + ivt_addr = (IU32)vector * 4; + new_ip = (IU32)phy_read_word(ivt_addr); + new_cs = phy_read_word(ivt_addr+2); + +#ifdef TAKE_REAL_MODE_LIMIT_FAULT + /* + * In real mode, there is still an IP limit check. The new IP is + * compared against the last CS limit from when the program was last + * in protected mode (or 64K if it never was). For us, this is stored + * in the CS limit field. (cf i486PRM page 22-4) + */ + + if ( new_ip > GET_CS_LIMIT() ) + GP((IU16)0, FAULT_INTR_RM_CS_LIMIT); + +#else /* TAKE_REAL_MODE_LIMIT_FAULT */ + + /* The Soft486 EDL CPU does not take Real Mode limit failures. + * Since the Ccpu486 is used as a "reference" cpu we wish it + * to behave a C version of the EDL Cpu rather than as a C + * version of a i486. + */ + +#endif /* TAKE_REAL_MODE_LIMIT_FAULT */ + + /* ALL SYSTEMS GO */ + + flags = c_getEFLAGS(); + + if ( doing_fault ) + { +#ifdef PIG + if (GLOBAL_RF_OnXcptnWanted) + flags |= BIT16_MASK; /* SET RF bit */ +#else + flags |= BIT16_MASK; /* SET RF bit */ +#endif + } + +#ifdef PIG + if (vector < 31 && (((1 << vector) & NO_FLAGS_EXCEPTION_MASK) != 0)) + spush_flags(flags); + else +#endif /* PIG */ + spush(flags); + + spush16((IU32)GET_CS_SELECTOR()); + spush((IU32)GET_EIP()); + + load_CS_cache(new_cs, (IU32)0, (CPU_DESCR *)0); + SET_EIP(new_ip); + SET_IF(0); + SET_TF(0); + } + else + { + /* Protected Mode */ + + super = validate_int_dest(vector, priv_check, &new_cs, &new_ip, + &cs_descr_addr, &dest_type); + + /* check type of indirect target */ + switch ( dest_type ) + { + case NEW_TASK: + switch_tasks(NOT_RETURNING, NESTING, new_cs, cs_descr_addr, GET_EIP()); + + /* save error code on new stack */ + if ( has_error_code ) + { + validate_stack_space(USE_SP, (ISM32)NR_ITEMS_1); + spush((IU32)error_code); + } + + /* limit check new IP (now in new task) */ + if ( GET_EIP() > GET_CS_LIMIT() ) + GP((IU16)0, FAULT_INTR_TASK_CS_LIMIT); + + break; + + case SAME_LEVEL: + read_descriptor_linear(cs_descr_addr, &cs_entry); + + /* stamp new selector with CPL */ + SET_SELECTOR_RPL(new_cs, GET_CPL()); + + /* check room for return address CS:(E)IP:(E)FLAGS:(Error) */ + if ( has_error_code ) + stk_sz = NR_ITEMS_4; + else + stk_sz = NR_ITEMS_3; + validate_stack_space(USE_SP, stk_sz); + + if ( new_ip > cs_entry.limit ) + GP((IU16)0, FAULT_INTR_PM_CS_LIMIT_1); + + /* ALL SYSTEMS GO */ + + /* push flags */ + flags = c_getEFLAGS(); + + if ( doing_fault ) + { +#ifdef PIG + if (GLOBAL_RF_OnXcptnWanted) + flags |= BIT16_MASK; /* SET RF bit */ +#else + flags |= BIT16_MASK; /* SET RF bit */ +#endif + } + +#ifdef PIG + if (vector < 31 && (((1 << vector) & NO_FLAGS_EXCEPTION_MASK) != 0)) + spush_flags(flags); + else +#endif /* PIG */ + spush(flags); + + + /* push return address */ + spush16((IU32)GET_CS_SELECTOR()); + spush((IU32)GET_EIP()); + + /* finally push error code if required */ + if ( has_error_code ) + { + spush((IU32)error_code); + } + + load_CS_cache(new_cs, cs_descr_addr, &cs_entry); + SET_EIP(new_ip); + + /* finally action IF, TF and NT flags */ + if ((super == INTERRUPT_GATE) || (super == XTND_INTERRUPT_GATE)) + SET_IF(0); + SET_TF(0); + SET_NT(0); + break; + + default: /* MORE PRIVILEGE(0|1|2) */ + read_descriptor_linear(cs_descr_addr, &cs_entry); + + dpl = dest_type; + + /* stamp new selector with new CPL */ + SET_SELECTOR_RPL(new_cs, dpl); + + /* find out about new stack */ + get_stack_selector_from_TSS(dpl, &new_ss, &new_sp); + + /* check new stack selector */ + validate_SS_on_stack_change(dpl, new_ss, + &ss_descr_addr, &ss_entry); + + /* check room for (GS:FS:DS:ES) + SS:(E)SP + (E)FLAGS + CS:(E)IP + (ERROR) */ + if ( GET_VM() == 1 ) + stk_sz = NR_ITEMS_9; + else + stk_sz = NR_ITEMS_5; + + if ( has_error_code ) + stk_sz = stk_sz + NR_ITEMS_1; + + validate_new_stack_space(stk_sz, new_sp, &ss_entry, new_ss); + + if ( new_ip > cs_entry.limit ) + GP((IU16)0, FAULT_INTR_PM_CS_LIMIT_2); + + /* ALL SYSTEMS GO */ + + flags = c_getEFLAGS(); + + if ( doing_fault ) + { +#ifdef PIG + if (GLOBAL_RF_OnXcptnWanted) + flags |= BIT16_MASK; /* SET RF bit */ +#else + flags |= BIT16_MASK; /* SET RF bit */ +#endif + } + + SET_CPL(dpl); + SET_VM(0); + + /* update stack segment */ + old_ss = (IU32)GET_SS_SELECTOR(); + old_sp = GET_ESP(); + + load_SS_cache(new_ss, ss_descr_addr, &ss_entry); + set_current_SP(new_sp); + + /* + FORM NEW STACK, VIZ + + ============== + new SS:IP -> | error code | + | old IP | + | old CS | + | FLAGS | + | old SP | + | old SS | + ============== + | old ES | + | old DS | + | old FS | + | old GS | + ============== + */ + + if ( stk_sz >= NR_ITEMS_9 ) + { + /* interrupt from V86 mode */ + spush16((IU32)GET_GS_SELECTOR()); + spush16((IU32)GET_FS_SELECTOR()); + spush16((IU32)GET_DS_SELECTOR()); + spush16((IU32)GET_ES_SELECTOR()); + + /* invalidate data segments */ + load_data_seg(GS_REG, (IU16)0); + load_data_seg(FS_REG, (IU16)0); + load_data_seg(DS_REG, (IU16)0); + load_data_seg(ES_REG, (IU16)0); + } + + /* push old stack values */ + spush16(old_ss); + spush(old_sp); + + /* push old flags */ +#ifdef PIG + if (vector < 31 && (((1 << vector) & NO_FLAGS_EXCEPTION_MASK) != 0)) + spush_flags(flags); + else +#endif /* PIG */ + spush(flags); + + /* push return address */ + spush16((IU32)GET_CS_SELECTOR()); + spush((IU32)GET_EIP()); + + /* finally push error code if required */ + if ( has_error_code ) + { + spush((IU32)error_code); + } + + /* update code segment */ + load_CS_cache(new_cs, cs_descr_addr, &cs_entry); + SET_EIP(new_ip); + + /* finally action IF, TF and NT flags */ + if ((super == INTERRUPT_GATE) || (super == XTND_INTERRUPT_GATE)) + SET_IF(0); + SET_TF(0); + SET_NT(0); + break; + } + + } + EXT = INTERNAL; +#ifdef PIG + save_last_inst_details("do_intr"); + pig_cpu_action = CHECK_ALL; + /* If the destination is going to page fault, or need + * accessing, then the EDL CPU will do so before issuing + * the pig synch. We use the dasm386 decode to prefetch + * a single instruction which mimics the EDL Cpu's behaviour + * when close to a page boundary. + */ + prefetch_1_instruction(); /* Will PF if destination not present */ + ccpu_synch_count++; +#else /* !PIG */ +#ifdef SYNCH_TIMERS + if (doing_fault) + { + extern void SynchTick IPT0(); + SynchTick(); + } +#endif /* SYNCH_TIMERS */ +#endif /* PIG */ + /* mark successful end to interrupt */ + doing_fault = FALSE; + doing_contributory = FALSE; + doing_page_fault = FALSE; + doing_double_fault = FALSE; +#ifdef PIG + c_cpu_unsimulate(); +#endif /* PIG */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/c_intr.h b/private/mvdm/softpc.new/base/ccpu386/c_intr.h new file mode 100644 index 000000000..8a3310e8e --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_intr.h @@ -0,0 +1,20 @@ +/*[ + +c_intr.h + +LOCAL CHAR SccsID[]="@(#)c_intr.h 1.4 02/09/94"; + +Interrupt Support. +------------------ + +]*/ + +IMPORT VOID do_intrupt + +IPT4( + IU16, vector, + BOOL, priv_check, + BOOL, has_error_code, + IU16, error_code + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/c_main.c b/private/mvdm/softpc.new/base/ccpu386/c_main.c new file mode 100644 index 000000000..24b5582a5 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_main.c @@ -0,0 +1,4940 @@ +/*[ + +c_main.c + +LOCAL CHAR SccsID[]="@(#)c_main.c 1.96 04/11/95"; + +Main routine for CPU emulator. +------------------------------ + +All instruction decoding and addressing is controlled here. +Actual worker routines are spun off elsewhere. + +]*/ + +#include +#include + +#include +#include +#include + +#include /* needed by bios.h */ +#include /* need memory(M) */ +#include /* the cpu internal sas bits */ +#ifdef PIG +#include /* Intel pointer manipulation macros */ +#endif /* PIG */ +#include CpuH +/* #include "event.h" */ /* Event Manager */ +#include /* need access to bop */ +#include +#include +#ifdef NTVDM +#include +#endif + +#include /* C CPU definitions-interfaces */ +#include /* Paging Interface */ +#include /* CPU - Memory Interface */ +#include /* Interrupt Interface */ +#include /* Debug Regs and Breakpoint Interface */ +#include /* Operand decoding functions(macros) */ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include /* The workers */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* CMP, CMPS, SCAS */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* INT, INT 3 */ +#include /* ... */ +#include /* JCXZ, JECXZ */ +#include /* ... */ +#include /* JB, JBE, JL, JLE, JNB, JNBE, JNL, JNLE, */ + /* JNO, JNP, JNS, JNZ, JO, JP, JS, JZ */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* LOOP, LOOPE, LOOPNE */ +#include /* ... */ +#include /* ... */ +#include /* LDS, LES, LFS, LGS, LSS */ +#include /* LODS, MOV, MOVZX, MOVS, STOS */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* SETB, SETBE, SETL, SETLE, SETNB, SETNBE, */ + /* SETNL, SETNLE, SETNO, SETNP, SETNS, SETNZ, */ + /* SETO, SETP, SETS, SETZ */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ + +#ifdef CPU_486 +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#include /* ... */ +#endif /* CPU_486 */ + +#define FIX_BT_BUG /* Of course we want the bug fixed! */ + +#define SYNCH_BOTH_WAYS /* Do a PIG_SYNCH() on not-taken conditionals as well */ + +/* + Types and constants local to this module. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + */ + +typedef union + { + IU32 sng; /* Single Part Operand */ + IU32 mlt[2]; /* Multiple (two) Part Operand */ + DOUBLE flt; /* Floating Point Operand */ + IU8 npxbuff[108]; + } OPERAND; + +/* + The allowable types of repeat prefix. + */ +#define REP_CLR (IU8)0 +#define REP_NE (IU8)1 +#define REP_E (IU8)2 + +/* + Offsets to Low byte, High byte and Word parts of Double Word Regs. + */ +#ifdef LITTLEND + +#define L_OFF 0 +#define H_OFF 1 +#define X_OFF 0 + +#else /* BIGEND */ + +#define L_OFF 3 +#define H_OFF 2 +#define X_OFF 2 + +#endif /* LITTLEND */ + +/* CPU hardware interrupt definitions */ +#define CPU_HW_INT_MASK (1 << 0) + +#ifdef SFELLOW + /* for raising NPX interrupt */ +#define IRQ5_SLAVE_PIC 5 +#endif /* SFELLOW */ + +/* CPU hardware interrupt definitions */ +#define CPU_HW_INT_MASK (1 << 0) + +/* Masks for external CPU events. */ +#define CPU_SIGIO_EXCEPTION_MASK (1 << 12) +#define CPU_SAD_EXCEPTION_MASK (1 << 13) +#define CPU_RESET_EXCEPTION_MASK (1 << 14) +#define CPU_SIGALRM_EXCEPTION_MASK (1 << 15) +#ifdef SFELLOW +#define CPU_HW_NPX_INT_MASK (1 << 16) +#endif /* SFELLOW */ + +LOCAL IU16 cpu_hw_interrupt_number; +#if defined(SFELLOW) +extern IU32 cpu_interrupt_map ; +#else +LOCAL IUM32 cpu_interrupt_map = 0; +#endif /* SFELLOW */ + + +GLOBAL IBOOL took_relative_jump; +extern IBOOL NpxIntrNeeded; +GLOBAL IBOOL took_absolute_toc; +LOCAL IBOOL single_instruction_delay ; +LOCAL IBOOL single_instruction_delay_enable ; + +/* + Define Maximun valid segment register in a 3-bit 'reg' field. + */ +#define MAX_VALID_SEG 5 + +/* + Define lowest modRM for register (rather than memory) addressing. + */ +#define LOWEST_REG_MODRM 0xc0 + +GLOBAL VOID clear_any_thingies IFN0() +{ + cpu_interrupt_map &= ~CPU_SIGALRM_EXCEPTION_MASK; +} + + +/* + Prototype our internal functions. + */ +LOCAL VOID ccpu + +IPT1( + ISM32, single_step + + ); + +LOCAL VOID check_io_permission_map IPT2(IU32, port_addr, IUM8, port_width); + +/* + FRIG for delayed interrupts to *not* occur when IO registers + are accessed from our non CPU C code. + */ +ISM32 in_C; + +LOCAL BOOL quick_mode = FALSE; /* true if no special processing (trap + flag, interrupts, yoda...) is needed + between instructions. All flow of + control insts. and I/O insts. force + an exit from quick mode. IE. linear + sequences of CPU functions should + normally run in quick mode. */ + + +#ifdef PIG + +/* We must delay the actual synch (i.e. the c_cpu_unsimulate) + * until after processing any trap/breakpoint stuff. + */ +#define PIG_SYNCH(action) \ + SYNCH_TICK(); \ + if (ccpu_pig_enabled) \ + { \ + pig_cpu_action = (action); \ + quick_mode = FALSE; \ + pig_synch_required = TRUE; \ + CANCEL_HOST_IP(); \ + } + + +LOCAL IBOOL pig_synch_required = FALSE; /* This indicates that the current + * instruction needs a pig synch, + * and after trap/breakpoint + * processing we must return to + * the pigger. + */ +#else + +#define PIG_SYNCH(action) \ + SYNCH_TICK(); \ + /* No pig operations */ + +#endif /* PIG */ +/* + Recursive CPU variables. Exception Handling. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + */ + +#define FRAMES 9 + +/* keep track of each CPU recursion */ +GLOBAL IS32 simulate_level = 0; +LOCAL jmp_buf longjmp_env_stack[FRAMES]; + +/* each level has somewhere for exception processing to bail out to */ +LOCAL jmp_buf next_inst[FRAMES]; + + +/* When Pigging we save each opcode byte in the last_inst record. + * We must check the prefix length so that we dont overflow + * our buffer. + */ +#ifdef PIG +LOCAL int prefix_length = 0; +#define CHECK_PREFIX_LENGTH() \ + if (++prefix_length >= MAX_INTEL_PREFIX) \ + Int6(); +#else /* !PIG */ +#define CHECK_PREFIX_LENGTH() +#endif /* PIG */ + +/* + The emulation register set. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + */ + +GLOBAL SEGMENT_REGISTER CCPU_SR[6]; /* Segment Registers */ + +GLOBAL IU32 CCPU_TR[8]; /* Test Registers */ + +GLOBAL IU32 CCPU_DR[8]; /* Debug Registers */ + +GLOBAL IU32 CCPU_CR[4]; /* Control Registers */ + +GLOBAL IU32 CCPU_GR[8]; /* Double Word General Registers */ + +/* + * WARNING: in the initialisation below, (IU8 *) casts are used + * to satify dominatrix compilers that will not allow the use of + * IHPE casts for pointer types _in initialisation_. + */ +GLOBAL IU16 *CCPU_WR[8] = /* Pointers to the Word Registers */ + { + (IU16 *)((IU8 *)&CCPU_GR[0] + X_OFF), + (IU16 *)((IU8 *)&CCPU_GR[1] + X_OFF), + (IU16 *)((IU8 *)&CCPU_GR[2] + X_OFF), + (IU16 *)((IU8 *)&CCPU_GR[3] + X_OFF), + (IU16 *)((IU8 *)&CCPU_GR[4] + X_OFF), + (IU16 *)((IU8 *)&CCPU_GR[5] + X_OFF), + (IU16 *)((IU8 *)&CCPU_GR[6] + X_OFF), + (IU16 *)((IU8 *)&CCPU_GR[7] + X_OFF) + }; + +GLOBAL IU8 *CCPU_BR[8] = /* Pointers to the Byte Registers */ + { + (IU8 *)((IU8 *)&CCPU_GR[0] + L_OFF), + (IU8 *)((IU8 *)&CCPU_GR[1] + L_OFF), + (IU8 *)((IU8 *)&CCPU_GR[2] + L_OFF), + (IU8 *)((IU8 *)&CCPU_GR[3] + L_OFF), + (IU8 *)((IU8 *)&CCPU_GR[0] + H_OFF), + (IU8 *)((IU8 *)&CCPU_GR[1] + H_OFF), + (IU8 *)((IU8 *)&CCPU_GR[2] + H_OFF), + (IU8 *)((IU8 *)&CCPU_GR[3] + H_OFF) + }; + +GLOBAL IU32 CCPU_IP; /* The Instruction Pointer */ +GLOBAL SYSTEM_TABLE_ADDRESS_REGISTER CCPU_STAR[2]; /* GDTR and IDTR */ + +GLOBAL SYSTEM_ADDRESS_REGISTER CCPU_SAR[2]; /* LDTR and TR */ + +GLOBAL IU32 CCPU_CPL; /* Current Privilege Level */ + +GLOBAL IU32 CCPU_FLAGS[32]; /* The flags. (EFLAGS) */ + + /* We allocate one integer per bit posn, multiple + bit fields are aligned to the least significant + posn. hence:- + CF = 0 PF = 2 AF = 4 ZF = 6 + SF = 7 TF = 8 IF = 9 DF = 10 + OF = 11 IOPL = 12 NT = 14 RF = 16 + VM = 17 AC = 18 */ + + +GLOBAL IU32 CCPU_MODE[3]; /* Current Operating Mode */ + + /* We allocate one integer per modal condition, as follows:- + [0] = current operand size (0=16-bit, 1=32-bit) + [1] = current address size (0=16-bit, 1=32-bit) + [2] = 'POP' displacement. (0=None, + 2=Pop word, + 4=Pop double word) + Set by POP used by [ESP] addressing modes. */ + +/* + Trap Flag Support. + + Basically if the trap flag is set before an instruction, then when + the instruction has been executed a trap is taken. This is why + instructions which set the trap flag have a one instruction delay + (or apparent one instruction delay) before a trap is first taken. + However INT's will clear the trap flag and clear any pending trap + at the end of the INT. + */ +LOCAL IU32 start_trap; + +/* + Host Pointer to Instruction Start. + (Used in Host IP optimisation) + */ +LOCAL IU8 *p_start; + +/* + Host pointer to point to where host may safely read instruction + stream bytes. + (Used in Host IP optimisation) + */ +GLOBAL IU8 *pg_end; + +/* + Flag support. + */ +GLOBAL IU8 pf_table[] = + { + 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, + 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, + 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, + 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, + 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, + 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, + 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, + 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, + 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, + 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, + 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, + 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, + 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, + 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, + 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, + 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1 + }; + +/* + CPU Heart Beat. A counter is decremented if not zero, and if it becomes + zero, this means that an external routine requires an event to occur. + The event handling is done through the quick event manager, all we need + to do is count down and then call the manager when we get to zero. This + mechanism is used to simulate an accurate micro-second + timer. + */ +LOCAL IU32 cpu_heartbeat; +GLOBAL IUH PigSynchCount = 0; + +IMPORT VOID dispatch_q_event(); + +#ifndef SFELLOW +#ifdef SYNCH_TIMERS + +#define SYNCH_TICK() \ + { \ + PigSynchCount += 1; \ + if (cpu_heartbeat != 0) \ + { \ + if ((--cpu_heartbeat) == 0) \ + { \ + dispatch_q_event(); \ + quick_mode = FALSE; \ + } \ + } \ + } + +#define QUICK_EVENT_TICK() /* Nothing */ + +GLOBAL void SynchTick IFN0() +{ + quick_mode = FALSE; + SYNCH_TICK(); +} + +#else /* !SYNCH_TIMERS */ + +#define SYNCH_TICK() /* Nothing */ + +#define QUICK_EVENT_TICK() \ + { \ + if (cpu_heartbeat != 0) \ + { \ + if ((--cpu_heartbeat) == 0) { \ + dispatch_q_event(); \ + quick_mode = FALSE; \ + } \ + } \ + } + +#endif /* SYNCH_TIMERS */ +#else /* SFELLOW */ + +extern IBOOL qEventsToDo; +extern IBOOL checkForQEvent IPT0(); + +#define SYNCH_TICK() + +#define QUICK_EVENT_TICK() \ + { \ + if (qEventsToDo) \ + { \ + if (checkForQEvent()) \ + { \ + dispatch_q_event(); \ + quick_mode = FALSE; \ + } \ + } \ + } + +#ifdef host_timer_event +#undef host_timer_event +#endif + +#define host_timer_event() +#endif /* SFELLOW */ + +#ifdef SFELLOW +extern int ica_intack IPT0(); +extern int VectorBase8259Slave IPT0(); +#if !defined(PROD) +IMPORT IBOOL sf_debug_char_waiting(); +#endif /* !PROD */ +#endif /* SFELLOW */ + + +/* debugging stuff */ +IMPORT int do_condition_checks; +IMPORT void check_I(); + +/* + Define macros which allow Intel and host IP formats to be maintained + seperately. This is an 'unclean' implementation but does give a + significant performance boost. Specifically it means during the + decode of one Intel instruction we can use a host pointer into + memory and avoid incrementing the Intel IP on a byte by byte basis. + */ + +/* + * SasWrapMask + */ + +GLOBAL PHY_ADDR SasWrapMask = 0xfffff; + +/* update Intel format EIP from host format IP + * Note we only mask to 16 bits if the original EIP was 16bits so that + * pigger scripts that result in very large EIP values pig correctly. + */ +#define UPDATE_INTEL_IP(x) \ + { int len = DIFF_INST_BYTE(x, p_start); \ + IU32 mask = 0xFFFFFFFF; \ + IU32 oldEIP = GET_EIP(); \ + if ((oldEIP < 0x10000) && (GET_CS_AR_X() == USE16)) \ + mask = 0xFFFF; \ + SET_EIP((oldEIP + len) & mask); \ + } + +/* update Intel format EIP from host format IP (mask if 16 operand) */ +#define UPDATE_INTEL_IP_USE_OP_SIZE(x) \ + if ( GET_OPERAND_SIZE() == USE16 ) \ + SET_EIP(GET_EIP() + DIFF_INST_BYTE(x, p_start) & WORD_MASK);\ + else \ + SET_EIP(GET_EIP() + DIFF_INST_BYTE(x, p_start)); + +/* mark host format IP as inoperative */ +#define CANCEL_HOST_IP() \ + quick_mode = FALSE; \ + p_start = p = (IU8 *)0; + +/* setup host format IP from Intel format IP */ +/* and set up end of page marker */ +#ifdef PIG +#define SETUP_HOST_IP(x) \ + ip_phy_addr = usr_chk_byte(GET_CS_BASE() + GET_EIP(), PG_R) & SasWrapMask; \ + x = Sas.SasPtrToPhysAddrByte(ip_phy_addr); \ + pg_end = AddCpuPtrLS8(CeilingIntelPageLS8(x), 1); +#else /* !PIG */ +GLOBAL UTINY *CCPU_M; +#ifdef BACK_M +#define SETUP_HOST_IP(x) \ + ip_phy_addr = usr_chk_byte(GET_CS_BASE() + GET_EIP(), PG_R) & \ + SasWrapMask; \ + x = &CCPU_M[-ip_phy_addr]; \ + ip_phy_addr = (ip_phy_addr & ~0xfff) + 0x1000; \ + pg_end = &CCPU_M[-ip_phy_addr]; +#else +#define SETUP_HOST_IP(x) \ + ip_phy_addr = usr_chk_byte(GET_CS_BASE() + GET_EIP(), PG_R) & \ + SasWrapMask; \ + x = &CCPU_M[ip_phy_addr]; \ + ip_phy_addr = (ip_phy_addr & ~0xfff) + 0x1000; \ + pg_end = &CCPU_M[ip_phy_addr]; +#endif /* BACK_M */ +#endif /* PIG */ + +GLOBAL INT m_seg[3]; /* Memory Operand segment reg. index. */ +GLOBAL ULONG m_off[3]; /* Memory Operand offset. */ +GLOBAL ULONG m_la[3]; /* Memory Operand Linear Addr. */ +GLOBAL ULONG m_pa[3]; /* Memory Operand Physical Addr. */ +GLOBAL UTINY modRM; /* The modRM byte. */ +GLOBAL UTINY segment_override; /* Segment Prefix for current inst. */ +GLOBAL UTINY *p; /* Pntr. to Intel Opcode Stream. */ +GLOBAL BOOL m_isreg[3]; /* Memory Operand Register(true)/ + Memory(false) indicator */ +GLOBAL OPERAND ops[3]; /* Inst. Operands. */ +GLOBAL ULONG save_id[3]; /* Saved state for Inst. Operands. */ +GLOBAL ULONG m_la2[3]; /* Memory Operand(2) Linear Addr. */ +GLOBAL ULONG m_pa2[3]; /* Memory Operand(2) Physical Addr. */ + +#if defined(PIG) && defined(SFELLOW) +/* + * memory-mapped I/O information. Counts number of memory-mapped inputs and + * outputs since the last pig synch. + */ +GLOBAL struct pig_mmio_info pig_mmio_info; + +#endif /* PIG && SFELLOW */ + +extern void InitNpx IPT1(IBOOL, disable); + +/* + ===================================================================== + INTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + +/* + * invalidFunction + * + * This function will get called if we try to call through the wrong instruction + * pointer. + */ + +LOCAL VOID +invalidFunction IFN0() +{ + always_trace0("Invalid Instruction Function Pointer"); + force_yoda(); +} + +/* + * note_486_instruction + * + * This function will get called if we execute a 486-only instruction + */ + +GLOBAL VOID +note_486_instruction IFN1(char *, text) +{ + SAVED IBOOL first = TRUE; + SAVED IBOOL want_yoda; + SAVED IBOOL want_trace; + + if (first) + { + char *env = getenv("NOTE_486_INSTRUCTION"); + + if (env) + { + want_yoda = FALSE; + want_trace = TRUE; + if (strcmp(env, "YODA") == 0) + { + want_yoda = TRUE; + want_trace = TRUE; + } + if (strcmp(env, "FALSE") == 0) + want_trace = FALSE; + if (strcmp(env, "TRUE") == 0) + want_trace = TRUE; + } + first = FALSE; + } + if (want_trace) + always_trace0(text); + if (want_yoda) + force_yoda(); +} + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Internal entry point to CPU. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +LOCAL VOID +ccpu + +IFN1( + ISM32, single_step + ) + + + { + /* Decoding variables */ + IU8 opcode; /* Last Opcode Byte Read. */ + + /* + * A set of function pointers used for pointing to the instruction + * emmulation function for the current instruction. We have different + * ones because they need to be of different types. + * + * The name encoding uses 32, 16, or 8 for the size of the parameters, + * preceded by a p if it is a pointer. If the parameter string is preceded + * by a 2, then this is the second function required by some instructions. + * + * For safety, these are all set to point at invalidFunction() at the start + * of each instruction. + */ + + VOID (*inst32) IPT1(IU32, op1); + VOID (*instp32) IPT1(IU32 *, pop1); + VOID (*instp328) IPT2(IU32 *, pop1, IUM8, op_sz); + VOID (*instp3232) IPT2(IU32 *, pop1, IU32, op2); + VOID (*instp32p32) IPT2(IU32 *, pop1, IU32 *, pop2); + VOID (*inst32328) IPT3(IU32, op1, IU32, op2, IUM8, op_sz); + VOID (*instp32328) IPT3(IU32 *, pop1, IU32, op2, IUM8, op_sz); + VOID (*instp3232328) IPT4(IU32 *, pop1, IU32, op2, IU32, op3, IUM8, op_sz); + + VOID (*inst232) IPT1(IU32, op1); + VOID (*inst2p32) IPT1(IU32 *, pop1); + VOID (*inst2p3232) IPT2(IU32 *, pop1, IU32, op2); + + /* Operand State variables */ + + /* Prefix handling variables */ + IU8 repeat; /* Repeat Prefix for current inst. */ + IU32 rep_count; /* Repeat Count for string insts. */ + + /* General CPU variables */ + IU32 ip_phy_addr; /* Used when setting up IP */ + + /* Working variables */ + IU32 immed; /* For immediate generation. */ + + ISM32 i; + /* + Initialise. ---------------------------------------------------- + */ + + single_instruction_delay = FALSE; + took_relative_jump = FALSE; + took_absolute_toc = FALSE; +#ifdef PIG + pig_synch_required = FALSE; +#if defined(SFELLOW) + pig_mmio_info.flags &= ~(MM_INPUT_OCCURRED | MM_OUTPUT_OCCURRED); +#endif /* SFELLOW */ +#endif /* PIG */ + + /* somewhere for exceptions to return to */ +#ifdef NTVDM + setjmp(ccpu386ThrdExptnPtr()); +#else + setjmp(next_inst[simulate_level-1]); +#endif + +#ifdef SYNCH_TIMERS + /* If we have taken a fault the EDL Cpu will have checked on + * the resulting transfer of control. + */ + if (took_absolute_toc || took_relative_jump) + goto CHECK_INTERRUPT; + quick_mode = TRUE; +#else /* SYNCH_TIMERS */ + /* go slow until we are sure we can go fast */ + quick_mode = FALSE; +#endif /* SYNCH_TIMERS */ + + goto NEXT_INST; + +DO_INST: + + + /* INSIGNIA debugging */ +#ifdef PIG + /* We do not want to do check_I() in both CPUs */ +#else /* PIG */ + if ( do_condition_checks ) + { + check_I(); + CCPU_save_EIP = GET_EIP(); /* in case yoda changed IP */ + } +#endif /* !PIG */ + +#ifdef PIG + save_last_inst_details(NULL); + prefix_length = 0; +#endif + + QUICK_EVENT_TICK(); + + /* save beginning of the current instruction */ + + p_start = p; + + /* + Decode instruction. -------------------------------------------- + */ + + /* 'zero' all prefix byte indicators */ + segment_override = SEG_CLR; + repeat = REP_CLR; + + /* + Decode and Action instruction. + */ +DECODE: + + opcode = GET_INST_BYTE(p); /* get next byte */ + /* + NB. Each opcode is categorised by a type, instruction name + and operand names. The type and operand names are explained + further in c_oprnd.h. + */ + switch ( opcode ) + { + case 0x00: /* T5 ADD Eb Gb */ + instp32328 = ADD; +TYPE00: + + modRM = GET_INST_BYTE(p); + D_Eb(0, RW0, PG_W); + D_Gb(1); + F_Eb(0); + F_Gb(1); + (*instp32328)(&ops[0].sng, ops[1].sng, 8); + P_Eb(0); + break; + + case 0x01: /* T5 ADD Ev Gv */ + instp32328 = ADD; +TYPE01: + + modRM = GET_INST_BYTE(p); + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Ew(0, RW0, PG_W); + D_Gw(1); + F_Ew(0); + F_Gw(1); + (*instp32328)(&ops[0].sng, ops[1].sng, 16); + P_Ew(0); + } + else /* USE32 */ + { + D_Ed(0, RW0, PG_W); + D_Gd(1); + F_Ed(0); + F_Gd(1); + (*instp32328)(&ops[0].sng, ops[1].sng, 32); + P_Ed(0); + } + break; + + case 0x02: /* T5 ADD Gb Eb */ + instp32328 = ADD; +TYPE02: + + modRM = GET_INST_BYTE(p); + D_Gb(0); + D_Eb(1, RO1, PG_R); + F_Gb(0); + F_Eb(1); + (*instp32328)(&ops[0].sng, ops[1].sng, 8); + P_Gb(0); + break; + + case 0x03: /* T5 ADD Gv Ev */ + instp32328 = ADD; +TYPE03: + + modRM = GET_INST_BYTE(p); + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Gw(0); + D_Ew(1, RO1, PG_R); + F_Gw(0); + F_Ew(1); + (*instp32328)(&ops[0].sng, ops[1].sng, 16); + P_Gw(0); + } + else /* USE32 */ + { + D_Gd(0); + D_Ed(1, RO1, PG_R); + F_Gd(0); + F_Ed(1); + (*instp32328)(&ops[0].sng, ops[1].sng, 32); + P_Gd(0); + } + break; + + case 0x04: /* T5 ADD Fal Ib */ + instp32328 = ADD; +TYPE04: + + D_Ib(1); + F_Fal(0); + (*instp32328)(&ops[0].sng, ops[1].sng, 8); + P_Fal(0); + break; + + case 0x05: /* T5 ADD F(e)ax Iv */ + instp32328 = ADD; +TYPE05: + + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Iw(1); + F_Fax(0); + (*instp32328)(&ops[0].sng, ops[1].sng, 16); + P_Fax(0); + } + else /* USE32 */ + { + D_Id(1); + F_Feax(0); + (*instp32328)(&ops[0].sng, ops[1].sng, 32); + P_Feax(0); + } + break; + + case 0x06: /* T2 PUSH Pw */ + case 0x0e: + case 0x16: + case 0x1e: + D_Pw(0); + F_Pw(0); + PUSH_SR(ops[0].sng); + break; + + case 0x07: /* T3 POP Pw */ + case 0x17: + case 0x1f: + D_Pw(0); + POP_SR(ops[0].sng); + if ( ops[0].sng == SS_REG ) + { + /* locally update IP - interrupts are supressed after POP SS */ + UPDATE_INTEL_IP(p); + + goto NEXT_INST; + } + break; + + case 0x08: /* T5 OR Eb Gb */ instp32328 = OR; goto TYPE00; + case 0x09: /* T5 OR Ev Gv */ instp32328 = OR; goto TYPE01; + case 0x0a: /* T5 OR Gb Eb */ instp32328 = OR; goto TYPE02; + case 0x0b: /* T5 OR Gv Ev */ instp32328 = OR; goto TYPE03; + case 0x0c: /* T5 OR Fal Ib */ instp32328 = OR; goto TYPE04; + case 0x0d: /* T5 OR F(e)ax Iv */ instp32328 = OR; goto TYPE05; + + case 0x0f: + opcode = GET_INST_BYTE(p); /* get next opcode byte */ + + /* Remove Empty Top of Table here. */ + if ( opcode >= 0xd0 ) + Int6(); + + switch ( opcode ) + { + case 0x00: + if ( GET_PE() == 0 || GET_VM() == 1 ) + Int6(); + modRM = GET_INST_BYTE(p); + switch ( GET_XXX(modRM) ) + { + case 0: /* T3 SLDT Ew */ + instp32 = SLDT; +TYPE0F00_0: + + D_Ew(0, WO0, PG_W); + (*instp32)(&ops[0].sng); + P_Ew(0); + break; + + case 1: /* T3 STR Ew */ instp32 = STR; goto TYPE0F00_0; + + case 2: /* T2 LLDT Ew */ + if ( GET_CPL() != 0 ) + GP((IU16)0, FAULT_CCPU_LLDT_ACCESS); + inst32 = LLDT; +TYPE0F00_2: + + D_Ew(0, RO0, PG_R); + F_Ew(0); + (*inst32)(ops[0].sng); + break; + + case 3: /* T2 LTR Ew */ + if ( GET_CPL() != 0 ) + GP((IU16)0, FAULT_CCPU_LTR_ACCESS); + inst32 = LTR; + goto TYPE0F00_2; + + case 4: /* T2 VERR Ew */ inst32 = VERR; goto TYPE0F00_2; + case 5: /* T2 VERW Ew */ inst32 = VERW; goto TYPE0F00_2; + + case 6: case 7: + + Int6(); + break; + } /* end switch ( GET_XXX(modRM) ) */ + break; + + case 0x01: + modRM = GET_INST_BYTE(p); + switch ( GET_XXX(modRM) ) + { + case 0: /* T3 SGDT Ms */ + instp32 = SGDT16; + inst2p32 = SGDT32; +TYPE0F01_0: + + if ( GET_MODE(modRM) == 3 ) + Int6(); /* Register operand not allowed */ + + D_Ms(0, WO0, PG_W); + if ( GET_OPERAND_SIZE() == USE16 ) + { + (*instp32)(ops[0].mlt); + } + else /* USE32 */ + { + (*inst2p32)(ops[0].mlt); + } + P_Ms(0); + break; + + case 1: /* T3 SIDT Ms */ + instp32 = SIDT16; + inst2p32 = SIDT32; + goto TYPE0F01_0; + + case 2: /* T2 LGDT Ms */ + instp32 = LGDT16; + inst2p32 = LGDT32; +TYPE0F01_2: + + if ( GET_MODE(modRM) == 3 ) + Int6(); /* Register operand not allowed */ + + if ( GET_CPL() != 0 ) + GP((IU16)0, FAULT_CCPU_LGDT_ACCESS); + + D_Ms(0, RO0, PG_R); + F_Ms(0); + if ( GET_OPERAND_SIZE() == USE16 ) + { + (*instp32)(ops[0].mlt); + } + else /* USE32 */ + { + (*inst2p32)(ops[0].mlt); + } + break; + + case 3: /* T2 LIDT Ms */ + instp32 = LIDT16; + inst2p32 = LIDT32; + goto TYPE0F01_2; + + case 4: /* T3 SMSW Ew */ + instp32 = SMSW; + goto TYPE0F00_0; + + case 5: + Int6(); + break; + + case 6: /* T2 LMSW Ew */ + if ( GET_CPL() != 0 ) + GP((IU16)0, FAULT_CCPU_LMSW_ACCESS); + inst32 = LMSW; + goto TYPE0F00_2; + + case 7: /* T2 INVLPG Mm */ + +#ifdef SPC486 + note_486_instruction("INVLPG"); + + if ( GET_CPL() != 0 ) + GP((IU16)0, FAULT_CCPU_INVLPG_ACCESS); + D_Mm(0); + F_Mm(0); + INVLPG(ops[0].sng); +#else + Int6(); +#endif /* SPC486 */ + + break; + } /* end switch ( GET_XXX(modRM) ) */ + break; + + case 0x02: /* T5 LAR Gv Ew */ + instp3232 = LAR; +TYPE0F02: + + if ( GET_PE() == 0 || GET_VM() == 1 ) + Int6(); + modRM = GET_INST_BYTE(p); + + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Gw(0); + D_Ew(1, RO1, PG_R); + F_Gw(0); + F_Ew(1); + (*instp3232)(&ops[0].sng, ops[1].sng); + P_Gw(0); + } + else /* USE32 */ + { + D_Gd(0); + D_Ew(1, RO1, PG_R); + F_Gd(0); + F_Ew(1); + (*instp3232)(&ops[0].sng, ops[1].sng); + P_Gd(0); + } + break; + + case 0x03: /* T5 LSL Gv Ew */ + instp3232 = LSL; + goto TYPE0F02; + + case 0x04: case 0x05: case 0x0a: case 0x0b: + case 0x0c: case 0x0d: case 0x0e: + + case 0x14: case 0x15: case 0x16: case 0x17: + case 0x18: case 0x19: case 0x1a: case 0x1b: + case 0x1c: case 0x1d: case 0x1e: case 0x1f: + + case 0x25: case 0x27: + case 0x28: case 0x29: case 0x2a: case 0x2b: + case 0x2c: case 0x2d: case 0x2e: case 0x2f: + + case 0x30: case 0x31: case 0x32: case 0x33: + case 0x34: case 0x35: case 0x36: case 0x37: + case 0x38: case 0x39: case 0x3a: case 0x3b: + case 0x3c: case 0x3d: case 0x3e: case 0x3f: + + case 0x40: case 0x41: case 0x42: case 0x43: + case 0x44: case 0x45: case 0x46: case 0x47: + case 0x48: case 0x49: case 0x4a: case 0x4b: + case 0x4c: case 0x4d: case 0x4e: case 0x4f: + + case 0x50: case 0x51: case 0x52: case 0x53: + case 0x54: case 0x55: case 0x56: case 0x57: + case 0x58: case 0x59: case 0x5a: case 0x5b: + case 0x5c: case 0x5d: case 0x5e: case 0x5f: + + case 0x60: case 0x61: case 0x62: case 0x63: + case 0x64: case 0x65: case 0x66: case 0x67: + case 0x68: case 0x69: case 0x6a: case 0x6b: + case 0x6c: case 0x6d: case 0x6e: case 0x6f: + + case 0x70: case 0x71: case 0x72: case 0x73: + case 0x74: case 0x75: case 0x76: case 0x77: + case 0x78: case 0x79: case 0x7a: case 0x7b: + case 0x7c: case 0x7d: case 0x7e: case 0x7f: + + case 0xae: case 0xb8: case 0xb9: + + case 0xc2: case 0xc3: case 0xc4: case 0xc5: + case 0xc6: case 0xc7: + Int6(); + break; + + case 0xa2: + /* Pentium CPUID instruction */ + note_486_instruction("CPUID"); + Int6(); + break; + + case 0xa6: case 0xa7: + /* 386, A-Step archaic instruction */ + note_486_instruction("A-step CMPXCHG"); + Int6(); + break; + + case 0xaa: + /* Pentium RSM instruction, used by Windows95 */ + note_486_instruction("RSM"); + RSRVD(); + break; + + case 0x06: /* T0 CLTS */ + if ( GET_CPL() != 0 ) + GP((IU16)0, FAULT_CCPU_CLTS_ACCESS); + CLTS(); + break; + + case 0x07: /* T0 "RESERVED" */ + case 0x10: + case 0x11: + case 0x12: + case 0x13: + RSRVD(); + break; + + case 0x08: /* T0 INVD */ + +#ifdef SPC486 + note_486_instruction("INVD"); + + if ( GET_CPL() != 0 ) + GP((IU16)0, FAULT_CCPU_INVD_ACCESS); + INVD(); +#else + Int6(); +#endif /* SPC486 */ + + break; + + case 0x09: /* T0 WBINVD */ + +#ifdef SPC486 + note_486_instruction("WBINVD"); + + if ( GET_CPL() != 0 ) + GP((IU16)0, FAULT_CCPU_WBIND_ACCESS); + WBINVD(); +#else + Int6(); +#endif /* SPC486 */ + + break; + + case 0x0f: +#ifdef PIG + SET_EIP(CCPU_save_EIP); + CANCEL_HOST_IP(); + PIG_SYNCH(CHECK_NO_EXEC); +#else + Int6(); +#endif /* PIG */ + break; + + case 0x20: /* T4 MOV Rd Cd */ + if ( GET_CPL() != 0 ) + GP((IU16)0, FAULT_CCPU_MOV_R_C_ACCESS); + modRM = GET_INST_BYTE(p); + D_Rd(0); + D_Cd(1); + F_Cd(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + P_Rd(0); + break; + + case 0x21: /* T4 MOV Rd Dd */ + if ( GET_CPL() != 0 ) + GP((IU16)0, FAULT_CCPU_MOV_R_D_ACCESS); + modRM = GET_INST_BYTE(p); + D_Rd(0); + D_Dd(1); + F_Dd(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + P_Rd(0); + break; + + case 0x22: /* T4 MOV Cd Rd */ + if ( GET_CPL() != 0 ) + GP((IU16)0, FAULT_CCPU_MOV_C_R_ACCESS); + modRM = GET_INST_BYTE(p); + D_Cd(0); + D_Rd(1); + F_Rd(1); + MOV_CR(ops[0].sng, ops[1].sng); + break; + + case 0x23: /* T4 MOV Dd Rd */ + if ( GET_CPL() != 0 ) + GP((IU16)0, FAULT_CCPU_MOV_D_R_ACCESS); + modRM = GET_INST_BYTE(p); + D_Dd(0); + D_Rd(1); + F_Rd(1); + MOV_DR(ops[0].sng, ops[1].sng); + quick_mode = FALSE; + break; + + case 0x24: /* T4 MOV Rd Td */ + if ( GET_CPL() != 0 ) + GP((IU16)0, FAULT_CCPU_MOV_R_T_ACCESS); + modRM = GET_INST_BYTE(p); + D_Rd(0); + D_Td(1); + F_Td(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + P_Rd(0); + break; + + case 0x26: /* T4 MOV Td Rd */ + if ( GET_CPL() != 0 ) + GP((IU16)0, FAULT_CCPU_MOV_T_R_ACCESS); + modRM = GET_INST_BYTE(p); + D_Td(0); + D_Rd(1); + F_Rd(1); + MOV_TR(ops[0].sng, ops[1].sng); + break; + + case 0x80: /* T2 JO Jv */ + inst32 = JO; +TYPE0F80: + + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Jw(0); + } + else + { + D_Jd(0); + } + UPDATE_INTEL_IP_USE_OP_SIZE(p); + (*inst32)(ops[0].sng); + CANCEL_HOST_IP(); +#ifdef SYNCH_BOTH_WAYS + took_relative_jump = TRUE; +#endif /* SYNCH_BOTH_WAYS */ + if (took_relative_jump) + { + PIG_SYNCH(CHECK_ALL); + } + break; + + case 0x81: /* T2 JNO Jv */ inst32 = JNO; goto TYPE0F80; + case 0x82: /* T2 JB Jv */ inst32 = JB; goto TYPE0F80; + case 0x83: /* T2 JNB Jv */ inst32 = JNB; goto TYPE0F80; + case 0x84: /* T2 JZ Jv */ inst32 = JZ; goto TYPE0F80; + case 0x85: /* T2 JNZ Jv */ inst32 = JNZ; goto TYPE0F80; + case 0x86: /* T2 JBE Jv */ inst32 = JBE; goto TYPE0F80; + case 0x87: /* T2 JNBE Jv */ inst32 = JNBE; goto TYPE0F80; + case 0x88: /* T2 JS Jv */ inst32 = JS; goto TYPE0F80; + case 0x89: /* T2 JNS Jv */ inst32 = JNS; goto TYPE0F80; + case 0x8a: /* T2 JP Jv */ inst32 = JP; goto TYPE0F80; + case 0x8b: /* T2 JNP Jv */ inst32 = JNP; goto TYPE0F80; + case 0x8c: /* T2 JL Jv */ inst32 = JL; goto TYPE0F80; + case 0x8d: /* T2 JNL Jv */ inst32 = JNL; goto TYPE0F80; + case 0x8e: /* T2 JLE Jv */ inst32 = JLE; goto TYPE0F80; + case 0x8f: /* T2 JNLE Jv */ inst32 = JNLE; goto TYPE0F80; + + case 0x90: /* T3 SETO Eb */ + instp32 = SETO; +TYPE0F90: + + modRM = GET_INST_BYTE(p); + D_Eb(0, WO0, PG_W); + (*instp32)(&ops[0].sng); + P_Eb(0); + break; + + case 0x91: /* T3 SETNO Eb */ instp32 = SETNO; goto TYPE0F90; + case 0x92: /* T3 SETB Eb */ instp32 = SETB; goto TYPE0F90; + case 0x93: /* T3 SETNB Eb */ instp32 = SETNB; goto TYPE0F90; + case 0x94: /* T3 SETZ Eb */ instp32 = SETZ; goto TYPE0F90; + case 0x95: /* T3 SETNZ Eb */ instp32 = SETNZ; goto TYPE0F90; + case 0x96: /* T3 SETBE Eb */ instp32 = SETBE; goto TYPE0F90; + case 0x97: /* T3 SETNBE Eb */ instp32 = SETNBE; goto TYPE0F90; + case 0x98: /* T3 SETS Eb */ instp32 = SETS; goto TYPE0F90; + case 0x99: /* T3 SETNS Eb */ instp32 = SETNS; goto TYPE0F90; + case 0x9a: /* T3 SETP Eb */ instp32 = SETP; goto TYPE0F90; + case 0x9b: /* T3 SETNP Eb */ instp32 = SETNP; goto TYPE0F90; + case 0x9c: /* T3 SETL Eb */ instp32 = SETL; goto TYPE0F90; + case 0x9d: /* T3 SETNL Eb */ instp32 = SETNL; goto TYPE0F90; + case 0x9e: /* T3 SETLE Eb */ instp32 = SETLE; goto TYPE0F90; + case 0x9f: /* T3 SETNLE Eb */ instp32 = SETNLE; goto TYPE0F90; + + case 0xa0: /* T2 PUSH Qw */ + case 0xa8: + D_Qw(0); + F_Qw(0); + PUSH_SR(ops[0].sng); + break; + + case 0xa1: /* T3 POP Qw */ + case 0xa9: + D_Qw(0); + POP_SR(ops[0].sng); + break; + + case 0xa3: /* T6 BT Ev Gv */ + inst32328 = BT; +#ifndef FIX_BT_BUG + goto TYPE39; +#endif + modRM = GET_INST_BYTE(p); + if ( GET_OPERAND_SIZE() == USE16 ) + { + BT_OPSw(RO0, PG_R); + (*inst32328)(ops[0].sng, ops[1].sng, 16); + } + else /* USE32 */ + { + BT_OPSd(RO0, PG_R); + (*inst32328)(ops[0].sng, ops[1].sng, 32); + } + break; + + case 0xa4: /* T9 SHLD Ev Gv Ib */ + instp3232328 = SHLD; +TYPE0FA4: + + modRM = GET_INST_BYTE(p); + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Ew(0, RW0, PG_W); + D_Gw(1); + D_Ib(2); + F_Ew(0); + F_Gw(1); + (*instp3232328)(&ops[0].sng, ops[1].sng, ops[2].sng, 16); + P_Ew(0); + } + else + { + D_Ed(0, RW0, PG_W); + D_Gd(1); + D_Ib(2); + F_Ed(0); + F_Gd(1); + (*instp3232328)(&ops[0].sng, ops[1].sng, ops[2].sng, 32); + P_Ed(0); + } + break; + + case 0xa5: /* T9 SHLD Ev Gv Fcl */ + instp3232328 = SHLD; +TYPE0FA5: + + modRM = GET_INST_BYTE(p); + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Ew(0, RW0, PG_W); + D_Gw(1); + F_Ew(0); + F_Gw(1); + F_Fcl(2); + (*instp3232328)(&ops[0].sng, ops[1].sng, ops[2].sng, 16); + P_Ew(0); + } + else + { + D_Ed(0, RW0, PG_W); + D_Gd(1); + F_Ed(0); + F_Gd(1); + F_Fcl(2); + (*instp3232328)(&ops[0].sng, ops[1].sng, ops[2].sng, 32); + P_Ed(0); + } + break; + + case 0xab: /* T5 BTS Ev Gv */ + instp32328 = BTS; +#ifndef FIX_BT_BUG + goto TYPE01; +#endif +TYPE0FAB: + modRM = GET_INST_BYTE(p); + if ( GET_OPERAND_SIZE() == USE16 ) + { + BT_OPSw(RW0, PG_W); + (*instp32328)(&ops[0].sng, ops[1].sng, 16); + P_Ew(0); + } + else /* USE32 */ + { + BT_OPSd(RW0, PG_W); + (*instp32328)(&ops[0].sng, ops[1].sng, 32); + P_Ed(0); + } + break; + + case 0xac: /* T9 SHRD Ev Gv Ib */ + instp3232328 = SHRD; + goto TYPE0FA4; + + case 0xad: /* T9 SHRD Ev Gv Fcl */ + instp3232328 = SHRD; + goto TYPE0FA5; + + case 0xaf: /* T5 IMUL Gv Ev */ + modRM = GET_INST_BYTE(p); + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Gw(0); + D_Ew(1, RO1, PG_R); + F_Gw(0); + F_Ew(1); + IMUL16T(&ops[0].sng, ops[0].sng, ops[1].sng); + P_Gw(0); + } + else + { + D_Gd(0); + D_Ed(1, RO1, PG_R); + F_Gd(0); + F_Ed(1); + IMUL32T(&ops[0].sng, ops[0].sng, ops[1].sng); + P_Gd(0); + } + break; + + case 0xb0: /* T5 CMPXCHG Eb Gb */ + +#ifdef SPC486 + note_486_instruction("CMPXCHG Eb Gb"); + + modRM = GET_INST_BYTE(p); + D_Eb(0, RW0, PG_W); + D_Gb(1); + F_Eb(0); + F_Gb(1); + CMPXCHG8(&ops[0].sng, ops[1].sng); + P_Eb(0); +#else + Int6(); +#endif /* SPC486 */ + + break; + + case 0xb1: /* T5 CMPXCHG Ev Gv */ + +#ifdef SPC486 + note_486_instruction("CMPXCHG Ev Gv"); + + modRM = GET_INST_BYTE(p); + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Ew(0, RW0, PG_W); + D_Gw(1); + F_Ew(0); + F_Gw(1); + CMPXCHG16(&ops[0].sng, ops[1].sng); + P_Ew(0); + } + else /* USE32 */ + { + D_Ed(0, RW0, PG_W); + D_Gd(1); + F_Ed(0); + F_Gd(1); + CMPXCHG32(&ops[0].sng, ops[1].sng); + P_Ed(0); + } +#else + Int6(); +#endif /* SPC486 */ + + break; + + case 0xb2: /* T4 LSS Gv Mp */ instp32p32 = LSS; goto TYPEC4; +#ifndef FIX_BT_BUG + case 0xb3: /* T5 BTR Ev Gv */ instp32328 = BTR; goto TYPE01; +#else + case 0xb3: /* T5 BTR Ev Gv */ instp32328 = BTR; goto TYPE0FAB; +#endif + case 0xb4: /* T4 LFS Gv Mp */ instp32p32 = LFS; goto TYPEC4; + case 0xb5: /* T4 LGS Gv Mp */ instp32p32 = LGS; goto TYPEC4; + + case 0xb6: /* T4 MOVZX Gv Eb */ + modRM = GET_INST_BYTE(p); + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Gw(0); + D_Eb(1, RO1, PG_R); + F_Eb(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + P_Gw(0); + } + else + { + D_Gd(0); + D_Eb(1, RO1, PG_R); + F_Eb(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + P_Gd(0); + } + break; + + case 0xb7: /* T4 MOVZX Gd Ew */ + modRM = GET_INST_BYTE(p); + D_Gd(0); + D_Ew(1, RO1, PG_R); + F_Ew(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + P_Gd(0); + break; + + case 0xba: + modRM = GET_INST_BYTE(p); + switch ( GET_XXX(modRM) ) + { + case 0: case 1: case 2: case 3: + Int6(); + break; + + case 4: /* T6 BT Ev Ib */ + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Ew(0, RO0, PG_R); + D_Ib(1); + F_Ew(0); + BT(ops[0].sng, ops[1].sng, 16); + } + else + { + D_Ed(0, RO0, PG_R); + D_Ib(1); + F_Ed(0); + BT(ops[0].sng, ops[1].sng, 32); + } + break; + + case 5: /* T5 BTS Ev Ib */ instp32328 = BTS; goto TYPEC1; + case 6: /* T5 BTR Ev Ib */ instp32328 = BTR; goto TYPEC1; + case 7: /* T5 BTC Ev Ib */ instp32328 = BTC; goto TYPEC1; + } /* end switch ( GET_XXX(modRM) ) */ + break; + + case 0xbb: /* T5 BTC Ev Gv */ + instp32328 = BTC; +#ifndef FIX_BT_BUG + goto TYPE01; +#else + goto TYPE0FAB; +#endif + case 0xbc: /* T5 BSF Gv Ev */ + modRM = GET_INST_BYTE(p); + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Gw(0); + D_Ew(1, RO1, PG_R); + F_Gw(0); + F_Ew(1); + BSF(&ops[0].sng, ops[1].sng); + P_Gw(0); + } + else + { + D_Gd(0); + D_Ed(1, RO1, PG_R); + F_Gd(0); + F_Ed(1); + BSF(&ops[0].sng, ops[1].sng); + P_Gd(0); + } + break; + + case 0xbd: /* T5 BSR Gv Ev */ + instp32328 = BSR; + goto TYPE03; + + case 0xbe: /* T4 MOVSX Gv Eb */ + modRM = GET_INST_BYTE(p); + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Gw(0); + D_Eb(1, RO1, PG_R); + F_Eb(1); + MOVSX(&ops[0].sng, ops[1].sng, 8); + P_Gw(0); + } + else + { + D_Gd(0); + D_Eb(1, RO1, PG_R); + F_Eb(1); + MOVSX(&ops[0].sng, ops[1].sng, 8); + P_Gd(0); + } + break; + + case 0xbf: /* T4 MOVSX Gd Ew */ + modRM = GET_INST_BYTE(p); + D_Gd(0); + D_Ew(1, RO1, PG_R); + F_Ew(1); + MOVSX(&ops[0].sng, ops[1].sng, 16); + P_Gd(0); + break; + + case 0xc0: /* T8 XADD Eb Gb */ + +#ifdef SPC486 + note_486_instruction("XADD Eb Gb"); + + modRM = GET_INST_BYTE(p); + D_Eb(0, RW0, PG_W); + D_Gb(1); + F_Eb(0); + F_Gb(1); + XADD(&ops[0].sng, &ops[1].sng, 8); + P_Eb(0); + P_Gb(1); +#else + Int6(); +#endif /* SPC486 */ + + break; + + case 0xc1: /* T8 XADD Ev Gv */ + +#ifdef SPC486 + note_486_instruction("XADD Ev Gv"); + + modRM = GET_INST_BYTE(p); + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Ew(0, RW0, PG_W); + D_Gw(1); + F_Ew(0); + F_Gw(1); + XADD(&ops[0].sng, &ops[1].sng, 16); + P_Ew(0); + P_Gw(1); + } + else /* USE32 */ + { + D_Ed(0, RW0, PG_W); + D_Gd(1); + F_Ed(0); + F_Gd(1); + XADD(&ops[0].sng, &ops[1].sng, 32); + P_Ed(0); + P_Gd(1); + } +#else + Int6(); +#endif /* SPC486 */ + + break; + + case 0xc8: /* T1 BSWAP Hv */ + case 0xc9: + case 0xca: + case 0xcb: + case 0xcc: + case 0xcd: + case 0xce: + case 0xcf: + +#ifdef SPC486 + note_486_instruction("BSWAP Hv"); + + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Hd(0); /* BSWAP 16 bit reads 32 bit & writes 16 */ + F_Hd(0); /* so getting EAX -> EAX' -> AX */ + BSWAP(&ops[0].sng); + P_Hw(0); + } + else /* USE32 */ + { + D_Hd(0); + F_Hd(0); + BSWAP(&ops[0].sng); + P_Hd(0); + } +#else + Int6(); +#endif /* SPC486 */ + + break; + } /* end switch ( opcode ) 0F */ + break; + + case 0x10: /* T5 ADC Eb Gb */ instp32328 = ADC; goto TYPE00; + case 0x11: /* T5 ADC Ev Gv */ instp32328 = ADC; goto TYPE01; + case 0x12: /* T5 ADC Gb Eb */ instp32328 = ADC; goto TYPE02; + case 0x13: /* T5 ADC Gv Ev */ instp32328 = ADC; goto TYPE03; + case 0x14: /* T5 ADC Fal Ib */ instp32328 = ADC; goto TYPE04; + case 0x15: /* T5 ADC F(e)ax Iv */ instp32328 = ADC; goto TYPE05; + + case 0x18: /* T5 SBB Eb Gb */ instp32328 = SBB; goto TYPE00; + case 0x19: /* T5 SBB Ev Gv */ instp32328 = SBB; goto TYPE01; + case 0x1a: /* T5 SBB Gb Eb */ instp32328 = SBB; goto TYPE02; + case 0x1b: /* T5 SBB Gv Ev */ instp32328 = SBB; goto TYPE03; + case 0x1c: /* T5 SBB Fal Ib */ instp32328 = SBB; goto TYPE04; + case 0x1d: /* T5 SBB F(e)ax Iv */ instp32328 = SBB; goto TYPE05; + + case 0x20: /* T5 AND Eb Gb */ instp32328 = AND; goto TYPE00; + case 0x21: /* T5 AND Ev Gv */ instp32328 = AND; goto TYPE01; + case 0x22: /* T5 AND Gb Eb */ instp32328 = AND; goto TYPE02; + case 0x23: /* T5 AND Gb Eb */ instp32328 = AND; goto TYPE03; + case 0x24: /* T5 AND Fal Ib */ instp32328 = AND; goto TYPE04; + case 0x25: /* T5 AND F(e)ax Iv */ instp32328 = AND; goto TYPE05; + + case 0x26: + segment_override = ES_REG; + CHECK_PREFIX_LENGTH(); + goto DECODE; + + case 0x27: /* T0 DAA */ + DAA(); + break; + + case 0x28: /* T5 SUB Eb Gb */ instp32328 = SUB; goto TYPE00; + case 0x29: /* T5 SUB Ev Gv */ instp32328 = SUB; goto TYPE01; + case 0x2a: /* T5 SUB Gb Eb */ instp32328 = SUB; goto TYPE02; + case 0x2b: /* T5 SUB Gv Ev */ instp32328 = SUB; goto TYPE03; + case 0x2c: /* T5 SUB Fal Ib */ instp32328 = SUB; goto TYPE04; + case 0x2d: /* T5 SUB F(e)ax Iv */ instp32328 = SUB; goto TYPE05; + + case 0x2e: + segment_override = CS_REG; + CHECK_PREFIX_LENGTH(); + goto DECODE; + + case 0x2f: /* T0 DAS */ + DAS(); + break; + + case 0x30: /* T5 XOR Eb Gb */ instp32328 = XOR; goto TYPE00; + case 0x31: /* T5 XOR Ev Gv */ instp32328 = XOR; goto TYPE01; + case 0x32: /* T5 XOR Gb Eb */ instp32328 = XOR; goto TYPE02; + case 0x33: /* T5 XOR Gv Ev */ instp32328 = XOR; goto TYPE03; + case 0x34: /* T5 XOR Fal Ib */ instp32328 = XOR; goto TYPE04; + case 0x35: /* T5 XOR F(e)ax Iv */ instp32328 = XOR; goto TYPE05; + + case 0x36: + segment_override = SS_REG; + CHECK_PREFIX_LENGTH(); + goto DECODE; + + case 0x37: /* T0 AAA */ + AAA(); + break; + + case 0x38: /* T6 CMP Eb Gb */ + inst32328 = CMP; +TYPE38: + + modRM = GET_INST_BYTE(p); + D_Eb(0, RO0, PG_R); + D_Gb(1); + F_Eb(0); + F_Gb(1); + (*inst32328)(ops[0].sng, ops[1].sng, 8); + break; + + case 0x39: /* T6 CMP Ev Gv */ + inst32328 = CMP; +TYPE39: + + modRM = GET_INST_BYTE(p); + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Ew(0, RO0, PG_R); + D_Gw(1); + F_Ew(0); + F_Gw(1); + (*inst32328)(ops[0].sng, ops[1].sng, 16); + } + else /* USE32 */ + { + D_Ed(0, RO0, PG_R); + D_Gd(1); + F_Ed(0); + F_Gd(1); + (*inst32328)(ops[0].sng, ops[1].sng, 32); + } + break; + + case 0x3a: /* T6 CMP Gb Eb */ + modRM = GET_INST_BYTE(p); + D_Gb(0); + D_Eb(1, RO1, PG_R); + F_Gb(0); + F_Eb(1); + CMP(ops[0].sng, ops[1].sng, 8); + break; + + case 0x3b: /* T6 CMP Gv Ev */ + modRM = GET_INST_BYTE(p); + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Gw(0); + D_Ew(1, RO1, PG_R); + F_Gw(0); + F_Ew(1); + CMP(ops[0].sng, ops[1].sng, 16); + } + else /* USE32 */ + { + D_Gd(0); + D_Ed(1, RO1, PG_R); + F_Gd(0); + F_Ed(1); + CMP(ops[0].sng, ops[1].sng, 32); + } + break; + + case 0x3c: /* T6 CMP Fal Ib */ + inst32328 = CMP; +TYPE3C: + + D_Ib(1); + F_Fal(0); + (*inst32328)(ops[0].sng, ops[1].sng, 8); + break; + + case 0x3d: /* T6 CMP F(e)ax Iv */ + inst32328 = CMP; +TYPE3D: + + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Iw(1); + F_Fax(0); + (*inst32328)(ops[0].sng, ops[1].sng, 16); + } + else /* USE32 */ + { + D_Id(1); + F_Feax(0); + (*inst32328)(ops[0].sng, ops[1].sng, 32); + } + break; + + case 0x3e: + segment_override = DS_REG; + CHECK_PREFIX_LENGTH(); + goto DECODE; + + case 0x3f: /* T0 AAS */ + AAS(); + break; + + case 0x40: /* T1 INC Hv */ + case 0x41: + case 0x42: + case 0x43: + case 0x44: + case 0x45: + case 0x46: + case 0x47: + instp328 = INC; +TYPE40: + + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Hw(0); + F_Hw(0); + (*instp328)(&ops[0].sng, 16); + P_Hw(0); + } + else /* USE32 */ + { + D_Hd(0); + F_Hd(0); + (*instp328)(&ops[0].sng, 32); + P_Hd(0); + } + break; + + case 0x48: /* T1 DEC Hv */ + case 0x49: + case 0x4a: + case 0x4b: + case 0x4c: + case 0x4d: + case 0x4e: + case 0x4f: + instp328 = DEC; + goto TYPE40; + + case 0x50: /* T2 PUSH Hv */ + case 0x51: + case 0x52: + case 0x53: + case 0x54: + case 0x55: + case 0x56: + case 0x57: + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Hw(0); + F_Hw(0); + } + else /* USE32 */ + { + D_Hd(0); + F_Hd(0); + } + PUSH(ops[0].sng); + break; + + case 0x58: /* T3 POP Hv */ + case 0x59: + case 0x5a: + case 0x5b: + case 0x5c: + case 0x5d: + case 0x5e: + case 0x5f: + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Hw(0); + POP(&ops[0].sng); + P_Hw(0); + } + else /* USE32 */ + { + D_Hd(0); + POP(&ops[0].sng); + P_Hd(0); + } + break; + + case 0x60: /* T0 PUSHA */ + PUSHA(); + break; + + case 0x61: /* T0 POPA */ + if ( GET_OPERAND_SIZE() == USE16 ) + { + POPA(); + } + else /* USE32 */ + { + POPAD(); + } + break; + + case 0x62: /* T6 BOUND Gv Ma */ + modRM = GET_INST_BYTE(p); + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Gw(0); + D_Ma16(1, RO1, PG_R); + F_Gw(0); + F_Ma16(1); + BOUND(ops[0].sng, ops[1].mlt, 16); + } + else /* USE32 */ + { + D_Gd(0); + D_Ma32(1, RO1, PG_R); + F_Gd(0); + F_Ma32(1); + BOUND(ops[0].sng, ops[1].mlt, 32); + } + break; + + case 0x63: /* T5 ARPL Ew Gw */ + if ( GET_PE() == 0 || GET_VM() == 1 ) + Int6(); + modRM = GET_INST_BYTE(p); + D_Ew(0, RW0, PG_W); + D_Gw(1); + F_Ew(0); + F_Gw(1); + ARPL(&ops[0].sng, ops[1].sng); + P_Ew(0); + break; + + case 0x64: + segment_override = FS_REG; + CHECK_PREFIX_LENGTH(); + goto DECODE; + + case 0x65: + segment_override = GS_REG; + CHECK_PREFIX_LENGTH(); + goto DECODE; + + case 0x66: + SET_OPERAND_SIZE(GET_CS_AR_X()); + if ( GET_OPERAND_SIZE() == USE16 ) + SET_OPERAND_SIZE(USE32); + else /* USE32 */ + SET_OPERAND_SIZE(USE16); + CHECK_PREFIX_LENGTH(); + goto DECODE; + + case 0x67: + SET_ADDRESS_SIZE(GET_CS_AR_X()); + if ( GET_ADDRESS_SIZE() == USE16 ) + SET_ADDRESS_SIZE(USE32); + else /* USE32 */ + SET_ADDRESS_SIZE(USE16); + CHECK_PREFIX_LENGTH(); + goto DECODE; + + case 0x68: /* T2 PUSH Iv */ + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Iw(0); + } + else /* USE32 */ + { + D_Id(0); + } + PUSH(ops[0].sng); + break; + + case 0x69: /* T7 IMUL Gv Ev Iv */ + modRM = GET_INST_BYTE(p); + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Gw(0); + D_Ew(1, RO1, PG_R); + D_Iw(2); + F_Gw(0); + F_Ew(1); + IMUL16T(&ops[0].sng, ops[1].sng, ops[2].sng); + P_Gw(0); + } + else /* USE32 */ + { + D_Gd(0); + D_Ed(1, RO1, PG_R); + D_Id(2); + F_Gd(0); + F_Ed(1); + IMUL32T(&ops[0].sng, ops[1].sng, ops[2].sng); + P_Gd(0); + } + break; + + case 0x6a: /* T2 PUSH Ib */ + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Ix(0); + } + else /* USE32 */ + { + D_Iy(0); + } + PUSH(ops[0].sng); + break; + + case 0x6b: /* T7 IMUL Gv Ev Ib */ + modRM = GET_INST_BYTE(p); + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Gw(0); + D_Ew(1, RO1, PG_R); + D_Ix(2); + F_Gw(0); + F_Ew(1); + IMUL16T(&ops[0].sng, ops[1].sng, ops[2].sng); + P_Gw(0); + } + else /* USE32 */ + { + D_Gd(0); + D_Ed(1, RO1, PG_R); + D_Iy(2); + F_Gd(0); + F_Ed(1); + IMUL32T(&ops[0].sng, ops[1].sng, ops[2].sng); + P_Gd(0); + } + break; + + case 0x6c: /* T4 INSB Yb Fdx */ + STRING_COUNT; + F_Fdx(1); + + if ( GET_CPL() > GET_IOPL() || GET_VM() ) + check_io_permission_map(ops[1].sng, BYTE_WIDTH); + + while ( rep_count ) + { + D_Yb(0, WO0, PG_W); + IN8(&ops[0].sng, ops[1].sng); + rep_count--; + C_Yb(0); + PIG_P_Yb(0); + /* + KNOWN BUG #1. + We should check for pending interrupts here, at least:- + Single step trap + Debug trap + */ + } +#ifdef PIG + UPDATE_INTEL_IP(p); +#endif + PIG_SYNCH(CHECK_SOME_MEM); + quick_mode = FALSE; + break; + + case 0x6d: /* T4 INSW Yv Fdx */ + STRING_COUNT; + F_Fdx(1); + + if ( GET_OPERAND_SIZE() == USE16 ) + { + if ( GET_CPL() > GET_IOPL() || GET_VM() ) + check_io_permission_map(ops[1].sng, WORD_WIDTH); + + while ( rep_count ) + { + D_Yw(0, WO0, PG_W); + IN16(&ops[0].sng, ops[1].sng); + rep_count--; + C_Yw(0); + PIG_P_Yw(0); + /* KNOWN BUG #1. */ + } + } + else /* USE32 */ + { + if ( GET_CPL() > GET_IOPL() || GET_VM() ) + check_io_permission_map(ops[1].sng, DWORD_WIDTH); + + while ( rep_count ) + { + D_Yd(0, WO0, PG_W); + IN32(&ops[0].sng, ops[1].sng); + rep_count--; + C_Yd(0); + PIG_P_Yd(0); + /* KNOWN BUG #1. */ + } + } +#ifdef PIG + UPDATE_INTEL_IP(p); +#endif + PIG_SYNCH(CHECK_SOME_MEM); + quick_mode = FALSE; + break; + + case 0x6e: /* T6 OUTSB Fdx Xb */ + STRING_COUNT; + F_Fdx(0); + + if ( GET_CPL() > GET_IOPL() || GET_VM() ) + check_io_permission_map(ops[0].sng, BYTE_WIDTH); + + while ( rep_count ) + { + D_Xb(1, RO1, PG_R); + F_Xb(1); + OUT8(ops[0].sng, ops[1].sng); + rep_count--; + C_Xb(1); + /* KNOWN BUG #1. */ + } +#ifdef PIG + UPDATE_INTEL_IP(p); +#endif + PIG_SYNCH(CHECK_ALL); + quick_mode = FALSE; + break; + + case 0x6f: /* T6 OUTSW Fdx Xv */ + STRING_COUNT; + F_Fdx(0); + + if ( GET_OPERAND_SIZE() == USE16 ) + { + if ( GET_CPL() > GET_IOPL() || GET_VM() ) + check_io_permission_map(ops[0].sng, WORD_WIDTH); + + while ( rep_count ) + { + D_Xw(1, RO1, PG_R); + F_Xw(1); + OUT16(ops[0].sng, ops[1].sng); + rep_count--; + C_Xw(1); + /* KNOWN BUG #1. */ + } + } + else /* USE32 */ + { + if ( GET_CPL() > GET_IOPL() || GET_VM() ) + check_io_permission_map(ops[0].sng, DWORD_WIDTH); + + while ( rep_count ) + { + D_Xd(1, RO1, PG_R); + F_Xd(1); + OUT32(ops[0].sng, ops[1].sng); + rep_count--; + C_Xd(1); + /* KNOWN BUG #1. */ + } + } +#ifdef PIG + UPDATE_INTEL_IP(p); +#endif + PIG_SYNCH(CHECK_ALL); + quick_mode = FALSE; + break; + + case 0x70: /* T2 JO Jb */ + inst32 = JO; +TYPE70: + + D_Jb(0); + UPDATE_INTEL_IP_USE_OP_SIZE(p); +#ifdef PIG + if ((opcode != 0xeb) && (ops[0].sng == 3)) + { + /* Convert the EDL cpu super-instructions + * + * Jcc .+03 + * JMPN dst + * + * into + * + * Jcc' dest + */ + int offset_in_page = DiffCpuPtrsLS8(FloorIntelPageLS8(p), p); + + if ((GET_CS_AR_X() == 0) + && (offset_in_page != 0) + && (offset_in_page <= 0xFFD) + && (*p == 0xe9)) + { + p_start = p; + (void)GET_INST_BYTE(p); + switch (opcode) + { + case 0x70: /* T2 JO Jb */ inst32 = JNO; goto TYPE0F80; + case 0x71: /* T2 JNO Jb */ inst32 = JO; goto TYPE0F80; + case 0x72: /* T2 JB Jb */ inst32 = JNB; goto TYPE0F80; + case 0x73: /* T2 JNB Jb */ inst32 = JB; goto TYPE0F80; + case 0x74: /* T2 JZ Jb */ inst32 = JNZ; goto TYPE0F80; + case 0x75: /* T2 JNZ Jb */ inst32 = JZ; goto TYPE0F80; + case 0x76: /* T2 JBE Jb */ inst32 = JNBE; goto TYPE0F80; + case 0x77: /* T2 JNBE Jb */ inst32 = JBE; goto TYPE0F80; + case 0x78: /* T2 JS Jb */ inst32 = JNS; goto TYPE0F80; + case 0x79: /* T2 JNS Jb */ inst32 = JS; goto TYPE0F80; + case 0x7a: /* T2 JP Jb */ inst32 = JNP; goto TYPE0F80; + case 0x7b: /* T2 JNP Jb */ inst32 = JP; goto TYPE0F80; + case 0x7c: /* T2 JL Jb */ inst32 = JNL; goto TYPE0F80; + case 0x7d: /* T2 JNL Jb */ inst32 = JL; goto TYPE0F80; + case 0x7e: /* T2 JLE Jb */ inst32 = JNLE; goto TYPE0F80; + case 0x7f: /* T2 JNLE Jb */ inst32 = JLE; goto TYPE0F80; + default: + break; + } + } + } +#endif /* PIG */ + (*inst32)(ops[0].sng); + CANCEL_HOST_IP(); + +#ifdef PIG + if (single_instruction_delay && !took_relative_jump) + { + if (single_instruction_delay_enable) + { + save_last_xcptn_details("STI/POPF blindspot\n", 0, 0, 0, 0, 0); + PIG_SYNCH(CHECK_NO_EXEC); + } + else + { + save_last_xcptn_details("STI/POPF problem\n", 0, 0, 0, 0, 0); + } + break; + } +#ifdef SYNCH_BOTH_WAYS + took_relative_jump = TRUE; +#endif /* SYNCH_BOTH_WAYS */ + if (took_relative_jump) + { + PIG_SYNCH(CHECK_ALL); + } +#endif /* PIG */ + break; + + case 0x71: /* T2 JNO Jb */ inst32 = JNO; goto TYPE70; + case 0x72: /* T2 JB Jb */ inst32 = JB; goto TYPE70; + case 0x73: /* T2 JNB Jb */ inst32 = JNB; goto TYPE70; + case 0x74: /* T2 JZ Jb */ inst32 = JZ; goto TYPE70; + case 0x75: /* T2 JNZ Jb */ inst32 = JNZ; goto TYPE70; + case 0x76: /* T2 JBE Jb */ inst32 = JBE; goto TYPE70; + case 0x77: /* T2 JNBE Jb */ inst32 = JNBE; goto TYPE70; + case 0x78: /* T2 JS Jb */ inst32 = JS; goto TYPE70; + case 0x79: /* T2 JNS Jb */ inst32 = JNS; goto TYPE70; + case 0x7a: /* T2 JP Jb */ inst32 = JP; goto TYPE70; + case 0x7b: /* T2 JNP Jb */ inst32 = JNP; goto TYPE70; + case 0x7c: /* T2 JL Jb */ inst32 = JL; goto TYPE70; + case 0x7d: /* T2 JNL Jb */ inst32 = JNL; goto TYPE70; + case 0x7e: /* T2 JLE Jb */ inst32 = JLE; goto TYPE70; + case 0x7f: /* T2 JNLE Jb */ inst32 = JNLE; goto TYPE70; + + case 0x80: + case 0x82: + modRM = GET_INST_BYTE(p); + switch ( GET_XXX(modRM) ) + { + case 0: /* T5 ADD Eb Ib */ + instp32328 = ADD; +TYPE80_0: + + D_Eb(0, RW0, PG_W); + D_Ib(1); + F_Eb(0); + (*instp32328)(&ops[0].sng, ops[1].sng, 8); + P_Eb(0); + break; + + case 1: /* T5 OR Eb Ib */ instp32328 = OR; goto TYPE80_0; + case 2: /* T5 ADC Eb Ib */ instp32328 = ADC; goto TYPE80_0; + case 3: /* T5 SBB Eb Ib */ instp32328 = SBB; goto TYPE80_0; + case 4: /* T5 AND Eb Ib */ instp32328 = AND; goto TYPE80_0; + case 5: /* T5 SUB Eb Ib */ instp32328 = SUB; goto TYPE80_0; + case 6: /* T5 XOR Eb Ib */ instp32328 = XOR; goto TYPE80_0; + + case 7: /* T6 CMP Eb Ib */ + inst32328 = CMP; +TYPE80_7: + + D_Eb(0, RO0, PG_R); + D_Ib(1); + F_Eb(0); + (*inst32328)(ops[0].sng, ops[1].sng, 8); + break; + } /* end switch ( GET_XXX(modRM) ) */ + break; + + case 0x81: + modRM = GET_INST_BYTE(p); + switch ( GET_XXX(modRM) ) + { + case 0: /* T5 ADD Ev Iv */ + instp32328 = ADD; +TYPE81_0: + + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Ew(0, RW0, PG_W); + D_Iw(1); + F_Ew(0); + (*instp32328)(&ops[0].sng, ops[1].sng, 16); + P_Ew(0); + } + else /* USE32 */ + { + D_Ed(0, RW0, PG_W); + D_Id(1); + F_Ed(0); + (*instp32328)(&ops[0].sng, ops[1].sng, 32); + P_Ed(0); + } + break; + + case 1: /* T5 OR Ev Iv */ instp32328 = OR; goto TYPE81_0; + case 2: /* T5 ADC Ev Iv */ instp32328 = ADC; goto TYPE81_0; + case 3: /* T5 SBB Ev Iv */ instp32328 = SBB; goto TYPE81_0; + case 4: /* T5 AND Ev Iv */ instp32328 = AND; goto TYPE81_0; + case 5: /* T5 SUB Ev Iv */ instp32328 = SUB; goto TYPE81_0; + case 6: /* T5 XOR Ev Iv */ instp32328 = XOR; goto TYPE81_0; + + case 7: /* T6 CMP Ev Iv */ + inst32328 = CMP; +TYPE81_7: + + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Ew(0, RO0, PG_R); + D_Iw(1); + F_Ew(0); + (*inst32328)(ops[0].sng, ops[1].sng, 16); + } + else /* USE32 */ + { + D_Ed(0, RO0, PG_R); + D_Id(1); + F_Ed(0); + (*inst32328)(ops[0].sng, ops[1].sng, 32); + } + break; + } /* end switch ( GET_XXX(modRM) ) */ + break; + + case 0x83: + modRM = GET_INST_BYTE(p); + switch ( GET_XXX(modRM) ) + { + case 0: /* T5 ADD Ev Ib */ + instp32328 = ADD; +TYPE83_0: + + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Ew(0, RW0, PG_W); + D_Ix(1); + F_Ew(0); + (*instp32328)(&ops[0].sng, ops[1].sng, 16); + P_Ew(0); + } + else /* USE32 */ + { + D_Ed(0, RW0, PG_W); + D_Iy(1); + F_Ed(0); + (*instp32328)(&ops[0].sng, ops[1].sng, 32); + P_Ed(0); + } + break; + + case 1: /* T5 OR Ev Ib */ instp32328 = OR; goto TYPE83_0; + case 2: /* T5 ADC Ev Ib */ instp32328 = ADC; goto TYPE83_0; + case 3: /* T5 SBB Ev Ib */ instp32328 = SBB; goto TYPE83_0; + case 4: /* T5 AND Ev Ib */ instp32328 = AND; goto TYPE83_0; + case 5: /* T5 SUB Ev Ib */ instp32328 = SUB; goto TYPE83_0; + case 6: /* T5 XOR Ev Ib */ instp32328 = XOR; goto TYPE83_0; + + case 7: /* T6 CMP Ev Ib */ + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Ew(0, RO0, PG_R); + D_Ix(1); + F_Ew(0); + CMP(ops[0].sng, ops[1].sng, 16); + } + else /* USE32 */ + { + D_Ed(0, RO0, PG_R); + D_Iy(1); + F_Ed(0); + CMP(ops[0].sng, ops[1].sng, 32); + } + break; + } /* end switch ( GET_XXX(modRM) ) */ + break; + + case 0x84: /* T6 TEST Eb Gb */ inst32328 = TEST; goto TYPE38; + case 0x85: /* T6 TEST Ev Gv */ inst32328 = TEST; goto TYPE39; + + case 0x86: /* T8 XCHG Eb Gb */ + modRM = GET_INST_BYTE(p); + D_Eb(0, RW0, PG_W); + D_Gb(1); + F_Eb(0); + F_Gb(1); + XCHG(&ops[0].sng, &ops[1].sng); + P_Eb(0); + P_Gb(1); + break; + + case 0x87: /* T8 XCHG Ev Gv */ + modRM = GET_INST_BYTE(p); + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Ew(0, RW0, PG_W); + D_Gw(1); + F_Ew(0); + F_Gw(1); + XCHG(&ops[0].sng, &ops[1].sng); + P_Ew(0); + P_Gw(1); + } + else /* USE32 */ + { + D_Ed(0, RW0, PG_W); + D_Gd(1); + F_Ed(0); + F_Gd(1); + XCHG(&ops[0].sng, &ops[1].sng); + P_Ed(0); + P_Gd(1); + } + break; + + case 0x88: /* T4 MOV Eb Gb */ + modRM = GET_INST_BYTE(p); + D_Eb(0, WO0, PG_W); + D_Gb(1); + F_Gb(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + P_Eb(0); + break; + + case 0x89: /* T4 MOV Ev Gv */ + modRM = GET_INST_BYTE(p); + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Ew(0, WO0, PG_W); + D_Gw(1); + F_Gw(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + P_Ew(0); + } + else /* USE32 */ + { + D_Ed(0, WO0, PG_W); + D_Gd(1); + F_Gd(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + P_Ed(0); + } + break; + + case 0x8a: /* T4 MOV Gb Eb */ + modRM = GET_INST_BYTE(p); + D_Gb(0); + D_Eb(1, RO1, PG_R); + F_Eb(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + P_Gb(0); + break; + + case 0x8b: /* T4 MOV Gv Ev */ + modRM = GET_INST_BYTE(p); + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Gw(0); + D_Ew(1, RO1, PG_R); + F_Ew(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + P_Gw(0); + } + else /* USE32 */ + { + D_Gd(0); + D_Ed(1, RO1, PG_R); + F_Ed(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + P_Gd(0); + } + break; + + case 0x8c: /* T4 MOV Ew Nw */ + modRM = GET_INST_BYTE(p); + if ( GET_SEG(modRM) > MAX_VALID_SEG ) + Int6(); + + if ( GET_OPERAND_SIZE() == USE16 || modRM < LOWEST_REG_MODRM ) + { + D_Ew(0, WO0, PG_W); + D_Nw(1); + F_Nw(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + P_Ew(0); + } + else /* USE32 and REGISTER */ + { + D_Rd(0); + D_Nw(1); + F_Nw(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + P_Rd(0); + } + break; + + case 0x8d: /* T4 LEA Gv M */ + modRM = GET_INST_BYTE(p); + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Gw(0); + D_M(1); + F_M(1); + LEA(&ops[0].sng, ops[1].sng); + P_Gw(0); + } + else /* USE32 */ + { + D_Gd(0); + D_M(1); + F_M(1); + LEA(&ops[0].sng, ops[1].sng); + P_Gd(0); + } + break; + + case 0x8e: /* T4 MOV Nw Ew */ + modRM = GET_INST_BYTE(p); + if ( GET_SEG(modRM) > MAX_VALID_SEG || GET_SEG(modRM) == CS_REG ) + Int6(); + D_Nw(0); + D_Ew(1, RO1, PG_R); + F_Ew(1); + MOV_SR(ops[0].sng, ops[1].sng); + if ( GET_SEG(modRM) == SS_REG ) + { + /* locally update IP - interrupts are supressed after MOV SS,xx */ + UPDATE_INTEL_IP(p); + + goto NEXT_INST; + } + break; + + case 0x8f: + modRM = GET_INST_BYTE(p); + switch ( GET_XXX(modRM) ) + { + case 0: /* T3 POP Ev */ + if ( GET_OPERAND_SIZE() == USE16 ) + { + SET_POP_DISP(2); /* in case they use [ESP] */ + D_Ew(0, WO0, PG_W); + POP(&ops[0].sng); + P_Ew(0); + } + else /* USE32 */ + { + SET_POP_DISP(4); /* in case they use [ESP] */ + D_Ed(0, WO0, PG_W); + POP(&ops[0].sng); + P_Ed(0); + } + SET_POP_DISP(0); + break; + + case 1: case 2: case 3: case 4: case 5: case 6: case 7: + Int6(); + break; + } /* end switch ( GET_XXX(modRM) ) */ + break; + + case 0x90: /* T0 NOP */ + break; + + case 0x91: /* T8 XCHG F(e)ax Hv */ + case 0x92: + case 0x93: + case 0x94: + case 0x95: + case 0x96: + case 0x97: + if ( GET_OPERAND_SIZE() == USE16 ) + { + F_Fax(0); + D_Hw(1); + F_Hw(1); + XCHG(&ops[0].sng, &ops[1].sng); + P_Fax(0); + P_Hw(1); + } + else /* USE32 */ + { + F_Feax(0); + D_Hd(1); + F_Hd(1); + XCHG(&ops[0].sng, &ops[1].sng); + P_Feax(0); + P_Hd(1); + } + break; + + case 0x98: /* T0 CBW */ + if ( GET_OPERAND_SIZE() == USE16 ) + { + CBW(); + } + else /* USE32 */ + { + CWDE(); + } + break; + + case 0x99: /* T0 CWD */ + if ( GET_OPERAND_SIZE() == USE16 ) + { + CWD(); + } + else /* USE32 */ + { + CDQ(); + } + break; + + case 0x9a: /* T2 CALL Ap */ + instp32 = CALLF; + took_absolute_toc = TRUE; +TYPE9A: + + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Aw(0); + } + else /* USE32 */ + { + D_Ad(0); + } + UPDATE_INTEL_IP_USE_OP_SIZE(p); + (*instp32)(ops[0].mlt); + CANCEL_HOST_IP(); + PIG_SYNCH(CHECK_ALL); + break; + + case 0x9b: /* T0 WAIT */ + if ( GET_MP() && GET_TS() ) + Int7(); + WAIT(); + break; + + case 0x9c: /* T0 PUSHF */ + if ( GET_VM() == 1 && GET_CPL() > GET_IOPL() ) + GP((IU16)0, FAULT_CCPU_PUSHF_ACCESS); + PUSHF(); + break; + + case 0x9d: /* T0 POPF */ + { + int oldIF; + + if ( GET_VM() == 1 && GET_CPL() > GET_IOPL() ) + GP((IU16)0, FAULT_CCPU_POPF_ACCESS); + + oldIF = getIF(); + + if ( GET_OPERAND_SIZE() == USE16 ) + { + POPF(); + } + else /* USE32 */ + { + POPFD(); + } +#ifdef PIG + if (getIF()==1 && oldIF==0) + { + /* locally update IP - interrupts are supressed after POPF */ + UPDATE_INTEL_IP(p); + + /* We need to pig sync one instr *after* an POPF that enabled + * interrupts, because the A4CPU might need to take a H/W interrupt + */ + + single_instruction_delay = TRUE; + PIG_SYNCH(CHECK_ALL); + + goto NEXT_INST; + } +#endif /* PIG */ + + quick_mode = FALSE; + break; + } + + case 0x9e: /* T0 SAHF */ + SAHF(); + break; + + case 0x9f: /* T0 LAHF */ + LAHF(); + break; + + case 0xa0: /* T4 MOV Fal Ob */ + D_Ob(1, RO1, PG_R); + F_Ob(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + P_Fal(0); + break; + + case 0xa1: /* T4 MOV F(e)ax Ov */ + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Ow(1, RO1, PG_R); + F_Ow(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + P_Fax(0); + } + else /* USE32 */ + { + D_Od(1, RO1, PG_R); + F_Od(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + P_Feax(0); + } + break; + + case 0xa2: /* T4 MOV Ob Fal */ + D_Ob(0, WO0, PG_W); + F_Fal(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + P_Ob(0); + break; + + case 0xa3: /* T4 MOV Ov F(e)ax */ + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Ow(0, WO0, PG_W); + F_Fax(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + P_Ow(0); + } + else /* USE32 */ + { + D_Od(0, WO0, PG_W); + F_Feax(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + P_Od(0); + } + break; + + case 0xa4: /* T4 MOVSB Yb Xb */ + STRING_COUNT; + + while ( rep_count ) + { + D_Xb(1, RO1, PG_R); + D_Yb(0, WO0, PG_W); + F_Xb(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + rep_count--; + C_Yb(0); + C_Xb(1); + P_Yb(0); + /* KNOWN BUG #1. */ + } + break; + + case 0xa5: /* T4 MOVSW Yv Xv */ + STRING_COUNT; + + if ( GET_OPERAND_SIZE() == USE16 ) + { + while ( rep_count ) + { + D_Xw(1, RO1, PG_R); + D_Yw(0, WO0, PG_W); + F_Xw(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + rep_count--; + C_Yw(0); + C_Xw(1); + P_Yw(0); + /* KNOWN BUG #1. */ + } + } + else /* USE32 */ + { + while ( rep_count ) + { + D_Xd(1, RO1, PG_R); + D_Yd(0, WO0, PG_W); + F_Xd(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + rep_count--; + C_Yd(0); + C_Xd(1); + P_Yd(0); + /* KNOWN BUG #1. */ + } + } + break; + + case 0xa6: /* T6 CMPSB Xb Yb */ + STRING_COUNT; + + while ( rep_count ) + { + D_Xb(0, RO0, PG_R); + D_Yb(1, RO1, PG_R); + F_Xb(0); + F_Yb(1); + CMP(ops[0].sng, ops[1].sng, 8); + rep_count--; + C_Xb(0); + C_Yb(1); + if ( rep_count && + ( repeat == REP_E && GET_ZF() == 0 || + repeat == REP_NE && GET_ZF() == 1 ) + ) + break; + /* KNOWN BUG #1. */ + } + break; + + case 0xa7: /* T6 CMPSW Xv Yv */ + STRING_COUNT; + + if ( GET_OPERAND_SIZE() == USE16 ) + { + while ( rep_count ) + { + D_Xw(0, RO0, PG_R); + D_Yw(1, RO1, PG_R); + F_Xw(0); + F_Yw(1); + CMP(ops[0].sng, ops[1].sng, 16); + rep_count--; + C_Xw(0); + C_Yw(1); + if ( rep_count && + ( repeat == REP_E && GET_ZF() == 0 || + repeat == REP_NE && GET_ZF() == 1 ) + ) + break; + /* KNOWN BUG #1. */ + } + } + else /* USE32 */ + { + while ( rep_count ) + { + D_Xd(0, RO0, PG_R); + D_Yd(1, RO1, PG_R); + F_Xd(0); + F_Yd(1); + CMP(ops[0].sng, ops[1].sng, 32); + rep_count--; + C_Xd(0); + C_Yd(1); + if ( rep_count && + ( repeat == REP_E && GET_ZF() == 0 || + repeat == REP_NE && GET_ZF() == 1 ) + ) + break; + /* KNOWN BUG #1. */ + } + } + break; + + case 0xa8: /* T6 TEST Fal Ib */ inst32328 = TEST; goto TYPE3C; + case 0xa9: /* T6 TEST F(e)ax Iv */ inst32328 = TEST; goto TYPE3D; + + case 0xaa: /* T4 STOSB Yb Fal */ + STRING_COUNT; + + F_Fal(1); + while ( rep_count ) + { + D_Yb(0, WO0, PG_W); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + rep_count--; + C_Yb(0); + P_Yb(0); + /* KNOWN BUG #1. */ + } + break; + + case 0xab: /* T4 STOSW Yv F(e)ax */ + STRING_COUNT; + + if ( GET_OPERAND_SIZE() == USE16 ) + { + F_Fax(1); + while ( rep_count ) + { + D_Yw(0, WO0, PG_W); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + rep_count--; + C_Yw(0); + P_Yw(0); + /* KNOWN BUG #1. */ + } + } + else /* USE32 */ + { + F_Feax(1); + while ( rep_count ) + { + D_Yd(0, WO0, PG_W); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + rep_count--; + C_Yd(0); + P_Yd(0); + /* KNOWN BUG #1. */ + } + } + break; + + case 0xac: /* T4 LODSB Fal Xb */ + STRING_COUNT; + + while ( rep_count ) + { + D_Xb(1, RO1, PG_R); + F_Xb(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + rep_count--; + P_Fal(0); + C_Xb(1); + /* KNOWN BUG #1. */ + } + break; + + case 0xad: /* T4 LODSW F(e)ax Xv */ + STRING_COUNT; + + if ( GET_OPERAND_SIZE() == USE16 ) + { + while ( rep_count ) + { + D_Xw(1, RO1, PG_R); + F_Xw(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + rep_count--; + P_Fax(0); + C_Xw(1); + /* KNOWN BUG #1. */ + } + } + else /* USE32 */ + { + while ( rep_count ) + { + D_Xd(1, RO1, PG_R); + F_Xd(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + rep_count--; + P_Feax(0); + C_Xd(1); + /* KNOWN BUG #1. */ + } + } + break; + + case 0xae: /* T6 SCASB Fal Yb */ + STRING_COUNT; + + F_Fal(0); + while ( rep_count ) + { + D_Yb(1, RO1, PG_R); + F_Yb(1); + CMP(ops[0].sng, ops[1].sng, 8); + rep_count--; + C_Yb(1); + if ( rep_count && + ( repeat == REP_E && GET_ZF() == 0 || + repeat == REP_NE && GET_ZF() == 1 ) + ) + break; + /* KNOWN BUG #1. */ + } + break; + + case 0xaf: /* T6 SCASW F(e)ax Yv */ + STRING_COUNT; + + if ( GET_OPERAND_SIZE() == USE16 ) + { + F_Fax(0); + while ( rep_count ) + { + D_Yw(1, RO1, PG_R); + F_Yw(1); + CMP(ops[0].sng, ops[1].sng, 16); + rep_count--; + C_Yw(1); + if ( rep_count && + ( repeat == REP_E && GET_ZF() == 0 || + repeat == REP_NE && GET_ZF() == 1 ) + ) + break; + /* KNOWN BUG #1. */ + } + } + else /* USE32 */ + { + F_Feax(0); + while ( rep_count ) + { + D_Yd(1, RO1, PG_R); + F_Yd(1); + CMP(ops[0].sng, ops[1].sng, 32); + rep_count--; + C_Yd(1); + if ( rep_count && + ( repeat == REP_E && GET_ZF() == 0 || + repeat == REP_NE && GET_ZF() == 1 ) + ) + break; + /* KNOWN BUG #1. */ + } + } + break; + + case 0xb0: /* T4 MOV Hb Ib */ + case 0xb1: + case 0xb2: + case 0xb3: + case 0xb4: + case 0xb5: + case 0xb6: + case 0xb7: + D_Hb(0); + D_Ib(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + P_Hb(0); + break; + + case 0xb8: /* T4 MOV Hv Iv */ + case 0xb9: + case 0xba: + case 0xbb: + case 0xbc: + case 0xbd: + case 0xbe: + case 0xbf: + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Hw(0); + D_Iw(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + P_Hw(0); + } + else /* USE32 */ + { + D_Hd(0); + D_Id(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + P_Hd(0); + } + break; + + case 0xc0: + modRM = GET_INST_BYTE(p); + switch ( GET_XXX(modRM) ) + { + case 0: /* T5 ROL Eb Ib */ instp32328 = ROL; goto TYPE80_0; + case 1: /* T5 ROR Eb Ib */ instp32328 = ROR; goto TYPE80_0; + case 2: /* T5 RCL Eb Ib */ instp32328 = RCL; goto TYPE80_0; + case 3: /* T5 RCR Eb Ib */ instp32328 = RCR; goto TYPE80_0; + case 4: /* T5 SHL Eb Ib */ instp32328 = SHL; goto TYPE80_0; + case 5: /* T5 SHR Eb Ib */ instp32328 = SHR; goto TYPE80_0; + case 6: /* T5 SHL Eb Ib */ instp32328 = SHL; goto TYPE80_0; + case 7: /* T5 SAR Eb Ib */ instp32328 = SAR; goto TYPE80_0; + } + + case 0xc1: + modRM = GET_INST_BYTE(p); + + switch ( GET_XXX(modRM) ) + { + case 0: /* T5 ROL Ev Ib */ instp32328 = ROL; break; + case 1: /* T5 ROR Ev Ib */ instp32328 = ROR; break; + case 2: /* T5 RCL Ev Ib */ instp32328 = RCL; break; + case 3: /* T5 RCR Ev Ib */ instp32328 = RCR; break; + case 4: /* T5 SHL Ev Ib */ instp32328 = SHL; break; + case 5: /* T5 SHR Ev Ib */ instp32328 = SHR; break; + case 6: /* T5 SHL Ev Ib */ instp32328 = SHL; break; + case 7: /* T5 SAR Ev Ib */ instp32328 = SAR; break; + } + +TYPEC1: + + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Ew(0, RW0, PG_W); + D_Ib(1); + F_Ew(0); + (*instp32328)(&ops[0].sng, ops[1].sng, 16); + P_Ew(0); + } + else /* USE32 */ + { + D_Ed(0, RW0, PG_W); + D_Ib(1); + F_Ed(0); + (*instp32328)(&ops[0].sng, ops[1].sng, 32); + P_Ed(0); + } + break; + + case 0xc2: /* T2 RET Iw */ + inst32 = RETN; + took_absolute_toc = TRUE; +TYPEC2: + + D_Iw(0); + UPDATE_INTEL_IP_USE_OP_SIZE(p); + (*inst32)(ops[0].sng); + CANCEL_HOST_IP(); + PIG_SYNCH(CHECK_ALL); + break; + + case 0xc3: /* T2 RET I0 */ + inst32 = RETN; + took_absolute_toc = TRUE; +TYPEC3: + + F_I0(0); + UPDATE_INTEL_IP_USE_OP_SIZE(p); + (*inst32)(ops[0].sng); + CANCEL_HOST_IP(); + PIG_SYNCH(CHECK_ALL); + break; + + case 0xc4: /* T4 LES Gv Mp */ + instp32p32 = LES; +TYPEC4: + + modRM = GET_INST_BYTE(p); + if (((modRM & 0xfc) == 0xc4) && (instp32p32 == LES)) { + /* + * It's a c4c? BOP. + * The bop routine itself will read the argument, but + * we read it here so that we get the next EIP correct. + */ + int nField, i; + + D_Ib(0); + nField = modRM & 3; + immed = 0; + for (i = 0; i < nField; i++) + { + immed |= (ULONG)GET_INST_BYTE(p); + immed <<= 8; + } + immed |= ops[0].sng; +#ifdef PIG + if (immed == 0xfe) + SET_EIP(CCPU_save_EIP); + else + UPDATE_INTEL_IP(p); + CANCEL_HOST_IP(); + PIG_SYNCH(CHECK_NO_EXEC); /* Everything checkable up to this point */ +#else /* PIG */ + UPDATE_INTEL_IP(p); + if ((immed & 0xff) == 0xfe) + { + switch(immed) + { +#if defined(SFELLOW) + case 0x03fe: + SfdelayUSecs(); + break; + case 0x05fe: + SfsasTouchBop(); + break; + case 0x06fe: + SfscatterGatherSasTouch(); + break; +#endif /* SFELLOW */ + case 0xfe: + c_cpu_unsimulate(); + /* Never returns (?) */ + default: + EDL_fast_bop(immed); + break; + } + } + else + { + in_C = 1; + bop(ops[0].sng); + in_C = 0; + } + CANCEL_HOST_IP(); + SYNCH_TICK(); +#endif /* PIG */ + break; + } + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Gw(0); + D_Mp16(1, RO1, PG_R); + F_Mp16(1); + (*instp32p32)(&ops[0].sng, ops[1].mlt); + P_Gw(0); + } + else /* USE32 */ + { + D_Gd(0); + D_Mp32(1, RO1, PG_R); + F_Mp32(1); + (*instp32p32)(&ops[0].sng, ops[1].mlt); + P_Gd(0); + } + break; + + case 0xc5: /* T4 LDS Gv Mp */ + instp32p32 = LDS; + goto TYPEC4; + + case 0xc6: + modRM = GET_INST_BYTE(p); + switch ( GET_XXX(modRM) ) + { + case 0: /* T4 MOV Eb Ib */ + D_Eb(0, WO0, PG_W); + D_Ib(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + P_Eb(0); + break; + + case 1: case 2: case 3: case 4: case 5: case 6: case 7: + Int6(); + break; + } /* end switch ( GET_XXX(modRM) ) */ + break; + + case 0xc7: + modRM = GET_INST_BYTE(p); + switch ( GET_XXX(modRM) ) + { + case 0: /* T4 MOV Ev Iv */ + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Ew(0, WO0, PG_W); + D_Iw(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + P_Ew(0); + } + else /* USE32 */ + { + D_Ed(0, WO0, PG_W); + D_Id(1); + ops[0].sng = ops[1].sng; /*MOV(&ops[0].sng, ops[1].sng);*/ + P_Ed(0); + } + break; + + case 1: case 2: case 3: case 4: case 5: case 6: case 7: + Int6(); + break; + } /* end switch ( GET_XXX(modRM) ) */ + break; + + case 0xc8: /* T6 ENTER Iw Ib */ + D_Iw(0); + D_Ib(1); + if ( GET_OPERAND_SIZE() == USE16 ) + { + ENTER16(ops[0].sng, ops[1].sng); + } + else /* USE32 */ + { + ENTER32(ops[0].sng, ops[1].sng); + } + break; + + case 0xc9: /* T0 LEAVE */ + if ( GET_OPERAND_SIZE() == USE16 ) + { + LEAVE16(); + } + else /* USE32 */ + { + LEAVE32(); + } + break; + + case 0xca: /* T2 RET Iw */ + inst32 = RETF; + took_absolute_toc = TRUE; + goto TYPEC2; + case 0xcb: /* T2 RET I0 */ + inst32 = RETF; + took_absolute_toc = TRUE; + goto TYPEC3; + + case 0xcc: /* T2 INT I3 */ + took_absolute_toc = TRUE; + F_I3(0); + UPDATE_INTEL_IP(p); + start_trap = 0; /* clear any pending TF exception */ + INTx(ops[0].sng); + CANCEL_HOST_IP(); + PIG_SYNCH(CHECK_ALL); + break; + + case 0xcd: /* T2 INT Ib */ + if ( GET_VM() == 1 && GET_CPL() > GET_IOPL() ) + GP((IU16)0, FAULT_CCPU_INT_ACCESS); + took_absolute_toc = TRUE; + D_Ib(0); + UPDATE_INTEL_IP(p); + start_trap = 0; /* clear any pending TF exception */ + INTx(ops[0].sng); + CANCEL_HOST_IP(); + PIG_SYNCH(CHECK_ALL); + break; + + case 0xce: /* T0 INTO */ + if ( GET_OF() ) + { + took_absolute_toc = TRUE; + UPDATE_INTEL_IP(p); + start_trap = 0; /* clear any pending TF exception */ + INTO(); + CANCEL_HOST_IP(); + PIG_SYNCH(CHECK_ALL); + } + break; + + case 0xcf: /* T0 IRET */ + if ( GET_VM() == 1 && GET_CPL() > GET_IOPL() ) + GP((IU16)0, FAULT_CCPU_IRET_ACCESS); + took_absolute_toc = TRUE; + UPDATE_INTEL_IP(p); + IRET(); + CANCEL_HOST_IP(); + PIG_SYNCH(CHECK_ALL); + /* Dont do interrupt checks etc after an IRET */ +#ifdef PIG + /* If the destination is going to page fault, or need + * accessing, then the EDL CPU will do so before issuing + * the pig synch. We use the dasm386 decode to prefetch + * a single instruction which mimics the EDL Cpu's behaviour + * when close to a page boundary. + */ + prefetch_1_instruction(); /* Will PF if destination not present */ + ccpu_synch_count++; + c_cpu_unsimulate(); +#endif /* PIG */ + + goto NEXT_INST; + break; + + case 0xd0: + modRM = GET_INST_BYTE(p); + switch ( GET_XXX(modRM) ) + { + case 0: /* T5 ROL Eb I1 */ instp32328 = ROL; break; + case 1: /* T5 ROR Eb I1 */ instp32328 = ROR; break; + case 2: /* T5 RCL Eb I1 */ instp32328 = RCL; break; + case 3: /* T5 RCR Eb I1 */ instp32328 = RCR; break; + case 4: /* T5 SHL Eb I1 */ instp32328 = SHL; break; + case 5: /* T5 SHR Eb I1 */ instp32328 = SHR; break; + case 6: /* T5 SHL Eb I1 */ instp32328 = SHL; break; + case 7: /* T5 SAR Eb I1 */ instp32328 = SAR; break; + } + D_Eb(0, RW0, PG_W); + F_Eb(0); + F_I1(1); + (*instp32328)(&ops[0].sng, ops[1].sng, 8); + P_Eb(0); + break; + + case 0xd1: + modRM = GET_INST_BYTE(p); + + switch ( GET_XXX(modRM) ) + { + case 0: /* T5 ROL Ev I1 */ instp32328 = ROL; break; + case 1: /* T5 ROR Ev I1 */ instp32328 = ROR; break; + case 2: /* T5 RCL Ev I1 */ instp32328 = RCL; break; + case 3: /* T5 RCR Ev I1 */ instp32328 = RCR; break; + case 4: /* T5 SHL Ev I1 */ instp32328 = SHL; break; + case 5: /* T5 SHR Ev I1 */ instp32328 = SHR; break; + case 6: /* T5 SHL Ev I1 */ instp32328 = SHL; break; + case 7: /* T5 SAR Ev I1 */ instp32328 = SAR; break; + } + + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Ew(0, RW0, PG_W); + F_Ew(0); + F_I1(1); + (*instp32328)(&ops[0].sng, ops[1].sng, 16); + P_Ew(0); + } + else /* USE32 */ + { + D_Ed(0, RW0, PG_W); + F_Ed(0); + F_I1(1); + (*instp32328)(&ops[0].sng, ops[1].sng, 32); + P_Ed(0); + } + break; + + case 0xd2: + modRM = GET_INST_BYTE(p); + switch ( GET_XXX(modRM) ) + { + case 0: /* T5 ROL Eb Fcl */ instp32328 = ROL; break; + case 1: /* T5 ROR Eb Fcl */ instp32328 = ROR; break; + case 2: /* T5 RCL Eb Fcl */ instp32328 = RCL; break; + case 3: /* T5 RCR Eb Fcl */ instp32328 = RCR; break; + case 4: /* T5 SHL Eb Fcl */ instp32328 = SHL; break; + case 5: /* T5 SHR Eb Fcl */ instp32328 = SHR; break; + case 6: /* T5 SHL Eb Fcl */ instp32328 = SHL; break; + case 7: /* T5 SAR Eb Fcl */ instp32328 = SAR; break; + } + D_Eb(0, RW0, PG_W); + F_Eb(0); + F_Fcl(1); + (*instp32328)(&ops[0].sng, ops[1].sng, 8); + P_Eb(0); + break; + + case 0xd3: + modRM = GET_INST_BYTE(p); + + switch ( GET_XXX(modRM) ) + { + case 0: /* T5 ROL Ev Fcl */ instp32328 = ROL; break; + case 1: /* T5 ROR Ev Fcl */ instp32328 = ROR; break; + case 2: /* T5 RCL Ev Fcl */ instp32328 = RCL; break; + case 3: /* T5 RCR Ev Fcl */ instp32328 = RCR; break; + case 4: /* T5 SHL Ev Fcl */ instp32328 = SHL; break; + case 5: /* T5 SHR Ev Fcl */ instp32328 = SHR; break; + case 6: /* T5 SHL Ev Fcl */ instp32328 = SHL; break; + case 7: /* T5 SAR Ev Fcl */ instp32328 = SAR; break; + } + + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Ew(0, RW0, PG_W); + F_Ew(0); + F_Fcl(1); + (*instp32328)(&ops[0].sng, ops[1].sng, 16); + P_Ew(0); + } + else /* USE32 */ + { + D_Ed(0, RW0, PG_W); + F_Ed(0); + F_Fcl(1); + (*instp32328)(&ops[0].sng, ops[1].sng, 32); + P_Ed(0); + } + break; + + case 0xd4: /* T2 AAM Ib */ + inst32 = AAM; +TYPED4: + + D_Ib(0); + (*inst32)(ops[0].sng); + break; + + case 0xd5: /* T2 AAD Ib */ inst32 = AAD; goto TYPED4; + + case 0xd6: /* T2 BOP Ib */ + D_Ib(0); + UPDATE_INTEL_IP(p); + + PIG_SYNCH(CHECK_NO_EXEC); + +#ifndef PIG + if (ops[0].sng == 0xfe) + { + c_cpu_unsimulate(); + } + in_C = 1; + bop(ops[0].sng); + in_C = 0; + CANCEL_HOST_IP(); +#endif /* PIG */ + SYNCH_TICK(); + break; + + case 0xd7: /* T2 XLAT Z */ + D_Z(0, RO0, PG_R); + F_Z(0); + XLAT(ops[0].sng); + break; + + case 0xd8: /* T2 NPX ??? */ + case 0xd9: + case 0xda: + case 0xdb: + case 0xdc: + case 0xdd: + case 0xde: + case 0xdf: + if ( GET_EM() || GET_TS() ) + Int7(); + + if (NpxIntrNeeded) + { + TakeNpxExceptionInt(); /* should set up ISR */ + goto DO_INST; /* run ISR */ + } + +#ifdef PIG + /* Must get npx registers from test CPU + * This is lazily done for efficiency. + */ + c_checkCpuNpxRegisters(); +#endif /* PIG */ + + modRM = GET_INST_BYTE(p); + ZFRSRVD(((opcode-0xd8)*0x100) + modRM); + break; + + case 0xe0: /* T2 LOOPNE Jb */ + inst32 = LOOPNE16; + inst232 = LOOPNE32; +TYPEE0: + + D_Jb(0); + UPDATE_INTEL_IP_USE_OP_SIZE(p); + if ( GET_ADDRESS_SIZE() == USE16 ) + { + (*inst32)(ops[0].sng); + } + else /* USE32 */ + { + (*inst232)(ops[0].sng); + } + CANCEL_HOST_IP(); + +#ifdef PIG + if (single_instruction_delay && !took_relative_jump) + { + if (single_instruction_delay_enable) + { + save_last_xcptn_details("STI/POPF blindspot\n", 0, 0, 0, 0, 0); + PIG_SYNCH(CHECK_NO_EXEC); + } + else + { + save_last_xcptn_details("STI/POPF problem\n", 0, 0, 0, 0, 0); + } + break; + } +#ifdef SYNCH_BOTH_WAYS + took_relative_jump = TRUE; +#endif /* SYNCH_BOTH_WAYS */ + if (took_relative_jump) + { + PIG_SYNCH(CHECK_ALL); + } +#endif /* PIG */ + break; + + case 0xe1: /* T2 LOOPE Jb */ + inst32 = LOOPE16; + inst232 = LOOPE32; + goto TYPEE0; + + case 0xe2: /* T2 LOOP Jb */ + inst32 = LOOP16; + inst232 = LOOP32; + goto TYPEE0; + + case 0xe3: /* T2 JCXZ Jb */ + inst32 = JCXZ; + inst232 = JECXZ; + goto TYPEE0; + + case 0xe4: /* T4 INB Fal Ib */ + D_Ib(1); + + if ( GET_CPL() > GET_IOPL() || GET_VM() ) + check_io_permission_map(ops[1].sng, BYTE_WIDTH); + + IN8(&ops[0].sng, ops[1].sng); + P_Fal(0); +#ifdef PIG + UPDATE_INTEL_IP(p); +#endif + PIG_SYNCH(CHECK_NO_AL); + quick_mode = FALSE; + break; + + case 0xe5: /* T4 INW F(e)ax Ib */ + D_Ib(1); + + if ( GET_OPERAND_SIZE() == USE16 ) + { + if ( GET_CPL() > GET_IOPL() || GET_VM() ) + check_io_permission_map(ops[1].sng, WORD_WIDTH); + + IN16(&ops[0].sng, ops[1].sng); + P_Fax(0); +#ifdef PIG + UPDATE_INTEL_IP(p); +#endif + PIG_SYNCH(CHECK_NO_AX); + } + else /* USE32 */ + { + if ( GET_CPL() > GET_IOPL() || GET_VM() ) + check_io_permission_map(ops[1].sng, DWORD_WIDTH); + + IN32(&ops[0].sng, ops[1].sng); + P_Feax(0); +#ifdef PIG + UPDATE_INTEL_IP(p); +#endif + PIG_SYNCH(CHECK_NO_EAX); + } + quick_mode = FALSE; + break; + + case 0xe6: /* T6 OUTB Ib Fal */ + D_Ib(0); + + if ( GET_CPL() > GET_IOPL() || GET_VM() ) + check_io_permission_map(ops[0].sng, BYTE_WIDTH); + + F_Fal(1); + OUT8(ops[0].sng, ops[1].sng); +#ifdef PIG + UPDATE_INTEL_IP(p); + if (ops[0].sng == 0x60) + { + /* This may be a change of A20 wrap status */ + PIG_SYNCH(CHECK_NO_A20); + } + else + { + PIG_SYNCH(CHECK_ALL); + } +#else + SYNCH_TICK(); +#endif + break; + + case 0xe7: /* T6 OUTW Ib F(e)ax */ + D_Ib(0); + + if ( GET_OPERAND_SIZE() == USE16 ) + { + if ( GET_CPL() > GET_IOPL() || GET_VM() ) + check_io_permission_map(ops[0].sng, WORD_WIDTH); + + F_Fax(1); + OUT16(ops[0].sng, ops[1].sng); + } + else /* USE32 */ + { + if ( GET_CPL() > GET_IOPL() || GET_VM() ) + check_io_permission_map(ops[0].sng, DWORD_WIDTH); + + F_Feax(1); + OUT32(ops[0].sng, ops[1].sng); + } +#ifdef PIG + UPDATE_INTEL_IP(p); +#endif + PIG_SYNCH(CHECK_ALL); + quick_mode = FALSE; + break; + + case 0xe8: /* T2 CALL Jv */ + inst32 = CALLR; + took_absolute_toc = TRUE; +TYPEE8: + + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Jw(0); + } + else /* USE32 */ + { + D_Jd(0); + } + + UPDATE_INTEL_IP_USE_OP_SIZE(p); + (*inst32)(ops[0].sng); + CANCEL_HOST_IP(); + PIG_SYNCH(CHECK_ALL); + break; + + case 0xe9: /* T2 JMP Jv */ + inst32 = JMPR; + took_absolute_toc = TRUE; + goto TYPEE8; + case 0xea: /* T2 JMP Ap */ + instp32 = JMPF; + took_absolute_toc = TRUE; + goto TYPE9A; + case 0xeb: /* T2 JMP Jb */ + inst32 = JMPR; + took_absolute_toc = TRUE; + goto TYPE70; + + case 0xec: /* T4 INB Fal Fdx */ + F_Fdx(1); + + if ( GET_CPL() > GET_IOPL() || GET_VM() ) + check_io_permission_map(ops[1].sng, BYTE_WIDTH); + + IN8(&ops[0].sng, ops[1].sng); + P_Fal(0); +#ifdef PIG + UPDATE_INTEL_IP(p); +#endif + PIG_SYNCH(CHECK_NO_AL); + quick_mode = FALSE; + break; + + case 0xed: /* T4 INW F(e)ax Fdx */ + F_Fdx(1); + + if ( GET_OPERAND_SIZE() == USE16 ) + { + if ( GET_CPL() > GET_IOPL() || GET_VM() ) + check_io_permission_map(ops[1].sng, WORD_WIDTH); + + IN16(&ops[0].sng, ops[1].sng); + P_Fax(0); +#ifdef PIG + UPDATE_INTEL_IP(p); +#endif + PIG_SYNCH(CHECK_NO_AX); + } + else /* USE32 */ + { + if ( GET_CPL() > GET_IOPL() || GET_VM() ) + check_io_permission_map(ops[1].sng, DWORD_WIDTH); + + IN32(&ops[0].sng, ops[1].sng); + P_Feax(0); +#ifdef PIG + UPDATE_INTEL_IP(p); +#endif + PIG_SYNCH(CHECK_NO_EAX); + } + quick_mode = FALSE; + break; + + case 0xee: /* T6 OUTB Fdx Fal */ + F_Fdx(0); + + if ( GET_CPL() > GET_IOPL() || GET_VM() ) + check_io_permission_map(ops[0].sng, BYTE_WIDTH); + + F_Fal(1); + OUT8(ops[0].sng, ops[1].sng); +#ifdef PIG + UPDATE_INTEL_IP(p); +#endif + PIG_SYNCH(CHECK_ALL); + quick_mode = FALSE; + break; + + case 0xef: /* T6 OUTW Fdx F(e)ax */ + F_Fdx(0); + + if ( GET_OPERAND_SIZE() == USE16 ) + { + if ( GET_CPL() > GET_IOPL() || GET_VM() ) + check_io_permission_map(ops[0].sng, WORD_WIDTH); + + F_Fax(1); + OUT16(ops[0].sng, ops[1].sng); + } + else /* USE32 */ + { + if ( GET_CPL() > GET_IOPL() || GET_VM() ) + check_io_permission_map(ops[0].sng, DWORD_WIDTH); + + F_Feax(1); + OUT32(ops[0].sng, ops[1].sng); + } +#ifdef PIG + UPDATE_INTEL_IP(p); +#endif + PIG_SYNCH(CHECK_ALL); + quick_mode = FALSE; + break; + + case 0xf0: /* T0 LOCK */ + CHECK_PREFIX_LENGTH(); + goto DECODE; /* NB. Incorrect Emulation! */ + + case 0xf1: + CHECK_PREFIX_LENGTH(); + goto DECODE; + + case 0xf2: + repeat = REP_NE; + CHECK_PREFIX_LENGTH(); + goto DECODE; + + case 0xf3: + repeat = REP_E; + CHECK_PREFIX_LENGTH(); + goto DECODE; + + case 0xf4: /* T0 HLT */ + if ( GET_CPL() != 0 ) + GP((IU16)0, FAULT_CCPU_HLT_ACCESS); + + /* Wait for an interrupt */ + + UPDATE_INTEL_IP(p); + PIG_SYNCH(CHECK_ALL); + +#ifndef PIG + + while ( TRUE ) + { + /* RESET ends the halt state. */ + if ( cpu_interrupt_map & CPU_RESET_EXCEPTION_MASK ) + break; + + /* An enabled INTR ends the halt state. */ + if ( GET_IF() && cpu_interrupt_map & CPU_HW_INT_MASK ) + break; + + /* As time goes by. */ + if (cpu_interrupt_map & CPU_SIGALRM_EXCEPTION_MASK) + { + cpu_interrupt_map &= ~CPU_SIGALRM_EXCEPTION_MASK; + host_timer_event(); + } + +#ifndef PROD + if (cpu_interrupt_map & CPU_SAD_EXCEPTION_MASK) + { + cpu_interrupt_map &= ~CPU_SAD_EXCEPTION_MASK; + force_yoda(); + } +#endif /* PROD */ + + SYNCH_TICK(); + QUICK_EVENT_TICK(); + } + quick_mode = FALSE; + +#endif /* PIG */ + + break; + + case 0xf5: /* T0 CMC */ + CMC(); + break; + + case 0xf6: + modRM = GET_INST_BYTE(p); + switch ( GET_XXX(modRM) ) + { + case 0: /* T6 TEST Eb Ib */ + case 1: + inst32328 = TEST; + goto TYPE80_7; + + case 2: /* T1 NOT Eb */ + D_Eb(0, RW0, PG_W); + F_Eb(0); + NOT(&ops[0].sng); + P_Eb(0); + break; + + case 3: /* T1 NEG Eb */ + instp328 = NEG; +TYPEF6_3: + + D_Eb(0, RW0, PG_W); + F_Eb(0); + (*instp328)(&ops[0].sng, 8); + P_Eb(0); + break; + + case 4: /* T5 MUL Fal Eb */ + instp3232 = MUL8; +TYPEF6_4: + + D_Eb(1, RO1, PG_R); + F_Fal(0); + F_Eb(1); + (*instp3232)(&ops[0].sng, ops[1].sng);; + P_Fal(0); + break; + + case 5: /* T5 IMUL Fal Eb */ instp3232 = IMUL8; goto TYPEF6_4; + + case 6: /* T2 DIV Eb */ + inst32 = DIV8; +TYPEF6_6: + + D_Eb(0, RO0, PG_R); + F_Eb(0); + (*inst32)(ops[0].sng); + break; + + case 7: /* T2 IDIV Eb */ inst32 = IDIV8; goto TYPEF6_6; + } /* end switch ( GET_XXX(modRM) ) */ + break; + + case 0xf7: + modRM = GET_INST_BYTE(p); + switch ( GET_XXX(modRM) ) + { + case 0: /* T6 TEST Ev Iv */ + case 1: + inst32328 = TEST; + goto TYPE81_7; + + case 2: /* T1 NOT Ew */ + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Ew(0, RW0, PG_W); + F_Ew(0); + NOT(&ops[0].sng); + P_Ew(0); + } + else /* USE32 */ + { + D_Ed(0, RW0, PG_W); + F_Ed(0); + NOT(&ops[0].sng); + P_Ed(0); + } + break; + + case 3: /* T1 NEG Ew */ + instp328 = NEG; +TYPEF7_3: + + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Ew(0, RW0, PG_W); + F_Ew(0); + (*instp328)(&ops[0].sng, 16); + P_Ew(0); + } + else /* USE32 */ + { + D_Ed(0, RW0, PG_W); + F_Ed(0); + (*instp328)(&ops[0].sng, 32); + P_Ed(0); + } + break; + + case 4: /* T5 MUL F(e)ax Ev */ + instp3232 = MUL16; + inst2p3232 = MUL32; +TYPEF7_4: + + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Ew(1, RO1, PG_R); + F_Fax(0); + F_Ew(1); + (*instp3232)(&ops[0].sng, ops[1].sng);; + P_Fax(0); + } + else /* USE32 */ + { + D_Ed(1, RO1, PG_R); + F_Feax(0); + F_Ed(1); + (*inst2p3232)(&ops[0].sng, ops[1].sng); + P_Feax(0); + } + break; + + case 5: /* T5 IMUL F(e)ax Ev */ + instp3232 = IMUL16; + inst2p3232 = IMUL32; + goto TYPEF7_4; + + case 6: /* T2 DIV Ev */ + inst32 = DIV16; + inst232 = DIV32; +TYPEF7_6: + + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Ew(0, RO0, PG_R); + F_Ew(0); + (*inst32)(ops[0].sng); + } + else /* USE32 */ + { + D_Ed(0, RO0, PG_R); + F_Ed(0); + (*inst232)(ops[0].sng); + } + break; + + case 7: /* T5 IDIV Ev */ + inst32 = IDIV16; + inst232 = IDIV32; + goto TYPEF7_6; + } /* end switch ( GET_XXX(modRM) ) */ + break; + + case 0xf8: /* T0 CLC */ + CLC(); + break; + + case 0xf9: /* T0 STC */ + STC(); + break; + + case 0xfa: /* T0 CLI */ + if ( GET_CPL() > GET_IOPL() ) + GP((IU16)0, FAULT_CCPU_CLI_ACCESS); + CLI(); + break; + + case 0xfb: /* T0 STI */ + if ( GET_CPL() > GET_IOPL() ) + GP((IU16)0, FAULT_CCPU_STI_ACCESS); + STI(); + + /* locally update IP - interrupts are supressed after STI */ + UPDATE_INTEL_IP(p); + +#ifdef PIG + /* We need to pig sync one instr *after* an STI that enabled + * interrupts, because the A4CPU might need to take a H/W interrupt + */ + single_instruction_delay = TRUE; + PIG_SYNCH(CHECK_ALL); +#endif /* PIG */ + goto NEXT_INST; + + case 0xfc: /* T0 CLD */ + CLD(); + break; + + case 0xfd: /* T0 STD */ + STD(); + break; + + case 0xfe: + modRM = GET_INST_BYTE(p); + switch ( GET_XXX(modRM) ) + { + case 0: /* T1 INC Eb */ instp328 = INC; goto TYPEF6_3; + case 1: /* T1 DEC Eb */ instp328 = DEC; goto TYPEF6_3; + + case 2: case 3: case 4: case 5: case 6: case 7: + Int6(); + break; + } + break; + + case 0xff: + modRM = GET_INST_BYTE(p); + switch ( GET_XXX(modRM) ) + { + case 0: /* T1 INC Ev */ instp328 = INC; goto TYPEF7_3; + case 1: /* T1 DEC Ev */ instp328 = DEC; goto TYPEF7_3; + + case 2: /* T2 CALL Ev */ + inst32 = CALLN; + took_absolute_toc = TRUE; +TYPEFF_2: + + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Ew(0, RO0, PG_R); + F_Ew(0); + } + else /* USE32 */ + { + D_Ed(0, RO0, PG_R); + F_Ed(0); + } + + UPDATE_INTEL_IP_USE_OP_SIZE(p); + (*inst32)(ops[0].sng); + CANCEL_HOST_IP(); + PIG_SYNCH(CHECK_ALL); + break; + + case 3: /* T2 CALL Mp */ + instp32 = CALLF; + took_absolute_toc = TRUE; +TYPEFF_3: + + if ( GET_OPERAND_SIZE() == USE16 ) + { + D_Mp16(0, RO0, PG_R); + F_Mp16(0); + } + else /* USE32 */ + { + D_Mp32(0, RO0, PG_R); + F_Mp32(0); + } + + UPDATE_INTEL_IP_USE_OP_SIZE(p); + (*instp32)(ops[0].mlt); + CANCEL_HOST_IP(); + PIG_SYNCH(CHECK_ALL); + break; + + case 4: /* T2 JMP Ev */ + inst32 = JMPN; + took_absolute_toc = TRUE; + goto TYPEFF_2; + case 5: /* T2 JMP Mp */ + instp32 = JMPF; + took_absolute_toc = TRUE; + goto TYPEFF_3; + case 6: /* T2 PUSH Ev */ + inst32 = PUSH; + inst232 = PUSH; + goto TYPEF7_6; + + case 7: + Int6(); + break; + } /* end switch ( GET_XXX(modRM) ) */ + break; + } /* end switch ( opcode ) */ + + /* >>>>> Instruction Completed. <<<<< */ + + /* Reset default mode */ + SET_OPERAND_SIZE(GET_CS_AR_X()); + SET_ADDRESS_SIZE(GET_CS_AR_X()); + + /* + Increment instruction pointer. + NB. For most instructions we increment the IP after processing + the instruction, however all users of the IP (eg flow of control) + instructions are coded on the basis that IP has already been + updated, so where necessary we update IP before the instruction. + In those cases p_start is also updated so that this code can + tell that IP has already been updated. + */ + if ( p != p_start ) + UPDATE_INTEL_IP(p); + + /* + Move start of inst to the next inst. We have successfully + completed instruction and are now going on to inter-instruction + checks. + */ + CCPU_save_EIP = GET_EIP(); + + /* + Now check for interrupts/external events/breakpoints... + */ + + if ( quick_mode && GET_DR(DR_DSR) == 0 ) + goto DO_INST; + +#ifdef SYNCH_TIMERS + CHECK_INTERRUPT: +#endif /* SYNCH_TIMERS */ + quick_mode = FALSE; + + /* Action RESET first. <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ +#ifdef SYNCH_TIMERS + if (took_absolute_toc || took_relative_jump) +#endif /* SYNCH_TIMERS */ + if (cpu_interrupt_map & CPU_RESET_EXCEPTION_MASK) + { + cpu_interrupt_map &= ~CPU_RESET_EXCEPTION_MASK; + c_cpu_reset(); + doing_contributory = FALSE; + doing_page_fault = FALSE; + doing_double_fault = FALSE; + doing_fault = FALSE; + EXT = INTERNAL; + SET_POP_DISP(0); + goto NEXT_INST; + } + + /* Action Insignia (ie non Intel) Processing. <<<<<<<<<<<<<<< */ + +#ifdef SYNCH_TIMERS + if (took_absolute_toc || took_relative_jump) +#endif /* SYNCH_TIMERS */ + if (cpu_interrupt_map & CPU_SIGALRM_EXCEPTION_MASK) + { + cpu_interrupt_map &= ~CPU_SIGALRM_EXCEPTION_MASK; + host_timer_event(); + } + + if (cpu_interrupt_map & CPU_SAD_EXCEPTION_MASK) + { + cpu_interrupt_map &= ~CPU_SAD_EXCEPTION_MASK; + force_yoda(); + } + + /* INTEL inter instruction processing. <<<<<<<<<<<<<<<<<<<<<<<*/ + + /* Reset default mode */ + SET_OPERAND_SIZE(GET_CS_AR_X()); + SET_ADDRESS_SIZE(GET_CS_AR_X()); + + /* Check for single step trap */ + if ( start_trap ) + { + SET_DR(DR_DSR, GET_DR(DR_DSR) | DSR_BS_MASK); /* set BS */ + Int1_t(); /* take TF trap */ + } + + /* check for debug traps */ + if ( GET_DR(DR_DSR) & + (DSR_BT_MASK | DSR_B3_MASK | DSR_B2_MASK | DSR_B1_MASK | + DSR_B0_MASK) ) + { + Int1_t(); /* at least one breakpoint set from:- + T-bit or DATA Breakpoints */ + } + + if ( nr_inst_break && GET_RF() == 0 ) + { + check_for_inst_exception(GET_CS_BASE() + GET_EIP()); + if ( GET_DR(DR_DSR) ) + { + Int1_f(); /* a CODE Breakpoint triggered */ + } + } + +#ifdef SYNCH_TIMERS + if (took_absolute_toc || took_relative_jump) +#endif /* SYNCH_TIMERS */ +#ifndef SFELLOW + if (GET_IF() && (cpu_interrupt_map & CPU_HW_INT_MASK)) + { + +/* + * IRET hooks aren't yet used by the C CPU, but we might want to do in + * future. + */ + + IU32 hook_address; + + cpu_hw_interrupt_number = ica_intack(&hook_address); + cpu_interrupt_map &= ~CPU_HW_INT_MASK; + EXT = EXTERNAL; + SYNCH_TICK(); + do_intrupt(cpu_hw_interrupt_number, FALSE, FALSE, (IU16)0); + CCPU_save_EIP = GET_EIP(); /* to reflect IP change */ + } +#else /* SFELLOW */ + if (GET_IF() && (cpu_interrupt_map & (CPU_HW_INT_MASK | CPU_HW_NPX_INT_MASK))) + { + /* service any pending real H/W interrupt first */ + if (cpu_interrupt_map & CPU_HW_INT_MASK) + { + cpu_hw_interrupt_number = ica_intack(); + cpu_interrupt_map &= ~CPU_HW_INT_MASK; + EXT = EXTERNAL; + do_intrupt(cpu_hw_interrupt_number, FALSE, FALSE, (IU16)0); + CCPU_save_EIP = GET_EIP(); /* to reflect IP change */ + } + else + if (cpu_interrupt_map & CPU_HW_NPX_INT_MASK) + { + cpu_hw_interrupt_number = IRQ5_SLAVE_PIC + VectorBase8259Slave(); + cpu_interrupt_map &= ~CPU_HW_NPX_INT_MASK; + EXT = EXTERNAL; + do_intrupt(cpu_hw_interrupt_number, FALSE, FALSE, (IU16)0); + CCPU_save_EIP = GET_EIP(); /* to reflect IP change */ + } + } +#endif /* SFELLOW */ + +#ifdef PIG + if ( pig_synch_required ) + { + if (IgnoringThisSynchPoint(GET_CS_SELECTOR(), GET_EIP())) + { + pig_synch_required = FALSE; + } + else + { + /* If the destination is going to page fault, or need + * accessing, then the EDL CPU will do so before issuing + * the pig synch. We use the dasm386 decode to prefetch + * a single instruction which mimics the EDL Cpu's behaviour + * when close to a page boundary. + */ + prefetch_1_instruction(); /* Will PF if destination not present */ +#if defined(SFELLOW) + /* + * Check for occurrence of memory-mapped input. + * This initial crude implementation just leaves the entire synch + * section unchecked. + */ + if ( pig_mmio_info.flags & MM_INPUT_OCCURRED ) + { + pig_cpu_action = CHECK_NONE; /* cos' its effects are unknown */ +#if COLLECT_MMIO_STATS + if ( ++pig_mmio_info.mm_input_section_count == 0 ) + pig_mmio_info.flags |= MM_INPUT_SECTION_COUNT_WRAPPED; +#endif /* COLLECT_MMIO_STATS */ + } + if ( pig_mmio_info.flags & MM_OUTPUT_OCCURRED ) + { +#if COLLECT_MMIO_STATS + if ( ++pig_mmio_info.mm_output_section_count == 0 ) + pig_mmio_info.flags |= MM_OUTPUT_SECTION_COUNT_WRAPPED; +#endif /* COLLECT_MMIO_STATS */ + } +#endif /* SFELLOW */ + ccpu_synch_count++; + c_cpu_unsimulate(); + } + } +#endif /* PIG */ + +NEXT_INST: + + CCPU_save_EIP = GET_EIP(); /* to reflect IP change */ + +#if defined(SFELLOW) && !defined(PROD) + if (sf_debug_char_waiting()) + { + force_yoda(); + } +#endif /* SFELLOW && !PROD */ + + /* Reset default mode */ + SET_OPERAND_SIZE(GET_CS_AR_X()); + SET_ADDRESS_SIZE(GET_CS_AR_X()); + took_relative_jump = FALSE; + took_absolute_toc = FALSE; + + SETUP_HOST_IP(p); + + /* + THIS IS A CHEAT. + The Intel documentation says RF is cleared AFTER all instructions + except (POPF, IRET or TASK SWITCH). To save clearing RF for each + and every instruction with a special test for the named exceptions + we clear RF before the instruction, we are assuming the + instruction will now be successful. As all the fault handlers set + RF in the pushed flags it will appear that RF was left set when + instructions don't run to completion from this point. + So although we cheat we intend to have the same effect as the + real thing. + */ + SET_RF(0); + + start_trap = GET_TF(); + + /* Determine if we can go into quick mode */ + if ( cpu_interrupt_map == 0 && + start_trap == 0 && + nr_inst_break == 0 +#ifdef PIG + && !pig_synch_required +#endif + ) + { + quick_mode = TRUE; + } + + goto DO_INST; + } + +#define MAP_BASE_ADDR 0x66 + +LOCAL IUM32 width_mask[4] = { 0x1, 0x3, 0, 0xf }; + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Check IO access against Permission Map in TSS. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +LOCAL VOID + check_io_permission_map IFN2 + ( + IU32, port, /* address of 1st port being accessed */ + IUM8, width /* bytes (1|2|4) accessed */ + ) + { + IU16 map_start_offset; + IU16 map_word_offset; + IU16 map_word; + + /* if invalid or 286 TSS, just take exception */ + if ( GET_TR_SELECTOR() == 0 || GET_TR_AR_SUPER() == BUSY_TSS ) + GP((IU16)0, FAULT_CHKIOMAP_BAD_TSS); + + if ( MAP_BASE_ADDR >= GET_TR_LIMIT() ) + GP((IU16)0, FAULT_CHKIOMAP_BAD_MAP); /* No I/O Map Base Address. */ + + /* Read bit map start address */ + map_start_offset = spr_read_word(GET_TR_BASE() + MAP_BASE_ADDR); + + /* Now try to read reqd word from bit map */ + map_word_offset = map_start_offset + port/8; + if ( map_word_offset >= GET_TR_LIMIT() ) + GP((IU16)0, FAULT_CHKIOMAP_BAD_TR); /* Map truncated before current port */ + + /* Actually read word and check appropriate bits */ + map_word = spr_read_word(GET_TR_BASE() + map_word_offset); + map_word = map_word >> port%8; /* bits to lsb's */ + if ( map_word & width_mask[width-1] ) + GP((IU16)0, FAULT_CHKIOMAP_ACCESS); /* Access dis-allowed */ + + /* ACCESS OK */ + } + + /* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + +#ifndef SFELLOW + + /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + /* Set the CPU heartbeat timer (for quick events). */ + /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + GLOBAL VOID c_cpu_q_ev_set_count IFN1( IU32, countval ) + { +/* printf("setting q counter to %d\n", countval); */ + cpu_heartbeat = countval; + } + + /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + /* Calculate (ie guess) the number of CPU heartbeat timer ticks to */ + /* will have gone by for a given number of microseconds. */ + /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + GLOBAL IU32 c_cpu_calc_q_ev_inst_for_time IFN1( IU32, time ) + { + return ( time ); + } + + /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + /* Get the CPU heartbeat timer (for quick events). */ + /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + GLOBAL IU32 c_cpu_q_ev_get_count() + { +/* printf("returning q counter as %d\n", cpu_heartbeat); */ + return cpu_heartbeat; + } + +#endif /* SFELLOW */ + + /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + /* Set up new page for fast Instruction Decoding. */ + /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + GLOBAL IU8 + ccpu_new_code_page + + IFN1( + IU8 **, q /* pntr. to host format IP pointer */ + ) + + /* ANSI */ + { + IU32 ip_phy_addr; /* Used when setting up IP (cf SETUP_HOST_IP) */ + + /* update Intel IP up to end of the old page */ + SET_EIP(GET_EIP() + DIFF_INST_BYTE(*q, p_start)); + + /* move onto new page in host format */ + SETUP_HOST_IP(*q) + p_start = *q; + +#ifdef PIG + return *IncCpuPtrLS8(*q); +#else /* PIG */ +#ifdef BACK_M + return *(*q)--; +#else + return *(*q)++; +#endif /* BACK_M */ +#endif /* PIG */ + } + + /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + /* Initialise the CPU. */ + /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + GLOBAL VOID + c_cpu_init IFN0() + { + SAVED IBOOL first = TRUE; + +#ifdef PIG + SAVED char default_flags[] = "faults accessed"; + + if (first) + { + char *s = getenv("FLAGS_IGNORE_DEFAULT"); + if (s) + set_flags_ignore(s); + else + set_flags_ignore(default_flags); + single_instruction_delay_enable = FALSE; + s = getenv("SINGLE_INSTRUCTION_BLIND_SPOT"); + if (s) + { + if (strcmp(s, "TRUE") == 0) + single_instruction_delay_enable = TRUE; + else if (strcmp(s, "FALSE") == 0) + single_instruction_delay_enable = FALSE; + else + printf("*** Ignoring getenv(\"SINGLE_INSTRUCTION_BLIND_SPOT\") value\n"); + printf("STI/POPF %s cause a blind spot after next conditional\n", + single_instruction_delay_enable ? "will": "will not"); + } + first = FALSE; + } +#endif /* PIG */ + +#ifdef NTVDM + ccpu386InitThreadStuff(); +#endif + + c_cpu_reset(); + SET_POP_DISP(0); + doing_contributory = FALSE; + doing_page_fault = FALSE; + doing_double_fault = FALSE; + doing_fault = FALSE; + EXT = INTERNAL; + } + + /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * Make CPU aware that external event is pending. + * Be careful about modifying this function, as much of the base and host + * in A2CPU will modify cpu_interrupt_map directly, rather than going through + * this function. + *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + */ + GLOBAL VOID + c_cpu_interrupt IFN2(CPU_INT_TYPE, type, IU16, number) + { + switch ( type ) + { + case CPU_HW_RESET: + cpu_interrupt_map |= CPU_RESET_EXCEPTION_MASK; + break; + case CPU_TIMER_TICK: + cpu_interrupt_map |= CPU_SIGALRM_EXCEPTION_MASK; + break; + case CPU_SIGIO_EVENT: + cpu_interrupt_map |= CPU_SIGIO_EXCEPTION_MASK; + break; + case CPU_HW_INT: + cpu_interrupt_map |= CPU_HW_INT_MASK; + break; + case CPU_SAD_INT: + cpu_interrupt_map |= CPU_SAD_EXCEPTION_MASK; + break; + } + quick_mode = FALSE; + } + + /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + /* Act like CPU 'reset' line activated. (Well nearly) */ + /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + GLOBAL VOID + c_cpu_reset IFN0() + { + IBOOL disableNpx = FALSE; + + /* All FLAGS are cleared */ + /* NB. VM MUST BE CLEARED BEFORE SEGMENT REGISTERS ARE LOADED. */ +#ifdef SPC486 + SET_AC(0); +#endif /* SPC486 */ + SET_RF(0); SET_VM(0); SET_NT(0); SET_IOPL(0); + SET_PF(0); SET_CF(0); SET_AF(0); SET_ZF(0); SET_SF(0); SET_OF(0); + SET_TF(0); SET_IF(0); SET_DF(0); + + SET_EIP(0xFFF0); + SET_CPL(0); + + SET_CS_SELECTOR(0xF000); + SET_CS_BASE(0xf0000); /* Really 0xffff0000 */ + load_pseudo_descr(CS_REG); + + SET_SS_SELECTOR(0); + SET_SS_BASE(0); + load_pseudo_descr(SS_REG); + + SET_DS_SELECTOR(0); + SET_DS_BASE(0); + load_pseudo_descr(DS_REG); + + SET_ES_SELECTOR(0); + SET_ES_BASE(0); + load_pseudo_descr(ES_REG); + + SET_FS_SELECTOR(0); + SET_FS_BASE(0); + load_pseudo_descr(FS_REG); + + SET_GS_SELECTOR(0); + SET_GS_BASE(0); + load_pseudo_descr(GS_REG); + + SET_CR(CR_STAT, 0); +#ifdef SPC486 + SET_CD(1); + SET_NW(1); +#endif /* SPC486 */ + + SET_DR(DR_DAR0, 0); /* Really Undefined */ + SET_DR(DR_DAR1, 0); /* Really Undefined */ + SET_DR(DR_DAR2, 0); /* Really Undefined */ + SET_DR(DR_DAR3, 0); /* Really Undefined */ + SET_DR(DR_DSR, 0); /* Really Undefined */ + MOV_DR((IU32) DR_DCR, (IU32) 0); /* Disable Breakpoints */ + + SET_TR(TR_TCR, 0); /* Really Undefined */ + SET_TR(TR_TDR, 0); /* Really Undefined */ + + SET_IDT_BASE(0); SET_IDT_LIMIT(0x3ff); + + /* Really Undefined */ + SET_GDT_BASE(0); SET_GDT_LIMIT(0); + + SET_LDT_SELECTOR(0); SET_LDT_BASE(0); SET_LDT_LIMIT(0); + + SET_TR_SELECTOR(0); SET_TR_BASE(0); SET_TR_LIMIT(0); + SET_TR_AR_SUPER(3); + + SET_EAX(0); + SET_ECX(0); /* Really Undefined */ +#ifdef SPC486 + SET_EDX(0x0000E401); /* Give component ID : revision ID */ +#else + SET_EDX(0x00000303); /* Give component ID : revision ID */ +#endif + SET_EBX(0); /* Really Undefined */ + SET_ESP(0); /* Really Undefined */ + SET_EBP(0); /* Really Undefined */ + SET_ESI(0); /* Really Undefined */ + SET_EDI(0); /* Really Undefined */ + + +#if defined(SWITCHNPX) + if (!config_inquire(C_SWITCHNPX, NULL)) + disableNpx = TRUE; +#endif /* SWITCHNPX */ + + if ( disableNpx ) + SET_ET(0); + else + SET_ET(1); + + InitNpx(disableNpx); + } + + + + /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + /* Entry point to CPU. */ + /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + GLOBAL VOID + c_cpu_simulate IFN0() + { + SYNCH_TICK(); + if (simulate_level >= FRAMES) + fprintf(stderr, "Stack overflow in host_simulate()!\n"); + + /* Save current context and invoke a new CPU level */ +#ifdef NTVDM + if ( setjmp(ccpu386SimulatePtr()) == 0) +#else + if ( setjmp(longjmp_env_stack[simulate_level++]) == 0 ) +#endif + { + in_C = 0; + ccpu(FALSE); + } + } + + /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + /* Restart (Continue) point for CPU. */ + /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + GLOBAL VOID + c_cpu_continue IFN0() + { +#ifdef NTVDM + ccpu386GotoThrdExptnPt(); +#else + longjmp(next_inst[simulate_level-1], 1); +#endif + } + + /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + /* Exit point from CPU. */ + /* Called from CPU via 'BOP FE' to exit the current CPU invocation */ + /* Or from CPU via '0F 0F' for the PIG_TESTER. */ + /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + GLOBAL VOID + c_cpu_unsimulate IFN0() + { +#ifdef NTVDM + ccpu386Unsimulate(); +#else + if (simulate_level == 0) + { + fprintf(stderr, "host_unsimulate() - already at base of stack!\n"); +#ifndef PROD + force_yoda(); +#endif /* PROD */ + } + else + { + /* Return to previous context */ + in_C = 1; + longjmp(longjmp_env_stack[--simulate_level], 1); + } +#endif + } + +#ifdef PIG + /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + /* To push an interrupt frame in response to an external interrupt. */ + /* Called from CPU under test, just before it processes the interrupt */ + /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + GLOBAL VOID + c_pig_interrupt + IFN1( + IU8, vector + ) + + { + if (simulate_level >= FRAMES) + fprintf(stderr, "Stack overflow in c_do_interrupt()!\n"); + + /* Save current context and invoke a new CPU level */ +#ifdef NTVDM + if ( setjmp(ccpu386SimulatePtr()) == 0) +#else + if ( setjmp(longjmp_env_stack[simulate_level++]) == 0 ) +#endif + { + in_C = 0; + EXT = EXTERNAL; + + /* Reset default mode */ + SET_OPERAND_SIZE(GET_CS_AR_X()); + SET_ADDRESS_SIZE(GET_CS_AR_X()); + + do_intrupt((IU16)vector, FALSE, FALSE, (IU16)0); + } + } +#endif /* PIG */ + + + /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + /* End of application hook. */ + /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + GLOBAL VOID + c_cpu_EOA_hook IFN0() + { + /* Do nothing */ + } + + /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + /* SoftPC termination hook. */ + /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + GLOBAL VOID + c_cpu_terminate IFN0() + { + /* Do nothing */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/c_main.h b/private/mvdm/softpc.new/base/ccpu386/c_main.h new file mode 100644 index 000000000..77d245ad7 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_main.h @@ -0,0 +1,226 @@ +/*[ + +c_main.h + +LOCAL CHAR SccsID[]="@(#)c_main.h 1.11 09/02/94"; + +C CPU definitions and interfaces. +--------------------------------- + +]*/ + + +/* + Define major CPU varients here. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + */ +/* Indicator that multiple shifts or rotates (ie count n != 1) should + treat the Overflow Flag as undefined. */ +#define SHIFTROT_N_OF_UNDEFINED + +/* Indicator to set MUL undefined flags to a specific value (else they + are left unchanged). */ +#define SET_UNDEFINED_MUL_FLAG + +/* Indicator to set DIV undefined flags to a specific value (else they + are left unchanged). */ +#define SET_UNDEFINED_DIV_FLAG + +/* Indicator to set SHRD/SHLD undefined flags (i.e. OF with shift > 1) + to a specific value (else they are left unchanged). */ +#define SET_UNDEFINED_SHxD_FLAG + +/* Indicator to set all other undefined flags to a specific value (else they + are left unchanged). */ +#define SET_UNDEFINED_FLAG + +/* Value to set undefined flags to (if they are not left unchanged). */ +#define UNDEFINED_FLAG 0 + + +/* + Rational definition of TRUE/FALSE. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Leads to more efficient tests than other definitions. +typedef int BOOL; +#define FALSE ((BOOL)0) +#define TRUE ((BOOL)1) + */ + + +/* + Allowable types of segment prefixs. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Actually we define here only a type for no segment prefix, + otherwise the segment register names (CS_REG,DS_REG,...) are used. + */ +#define SEG_CLR 6 + + +/* + Frequently used constants. + ~~~~~~~~~~~~~~~~~~~~~~~~~~ + */ + +/* Masks for bits 0 - 32. */ +#define BIT0_MASK 0x1 +#define BIT1_MASK 0x2 +#define BIT2_MASK 0x4 +#define BIT3_MASK 0x8 +#define BIT4_MASK 0x10 +#define BIT5_MASK 0x20 +#define BIT6_MASK 0x40 +#define BIT7_MASK 0x80 +#define BIT8_MASK 0x100 +#define BIT9_MASK 0x200 +#define BIT10_MASK 0x400 +#define BIT11_MASK 0x800 +#define BIT12_MASK 0x1000 +#define BIT13_MASK 0x2000 +#define BIT14_MASK 0x4000 +#define BIT15_MASK 0x8000 +#define BIT16_MASK 0x10000 +#define BIT17_MASK 0x20000 +#define BIT18_MASK 0x40000 +#define BIT19_MASK 0x80000 +#define BIT20_MASK 0x100000 +#define BIT21_MASK 0x200000 +#define BIT22_MASK 0x400000 +#define BIT23_MASK 0x800000 +#define BIT24_MASK 0x1000000 +#define BIT25_MASK 0x2000000 +#define BIT26_MASK 0x4000000 +#define BIT27_MASK 0x8000000 +#define BIT28_MASK 0x10000000 +#define BIT29_MASK 0x20000000 +#define BIT30_MASK 0x40000000 +#define BIT31_MASK 0x80000000 + +/* Various Intel component masks */ +#define BYTE_MASK 0xff +#define WORD_MASK 0xffff + +/* Widths for IO permission map checks */ +#define BYTE_WIDTH ((IUM8)1) +#define WORD_WIDTH ((IUM8)2) +#define DWORD_WIDTH ((IUM8)4) + +/* + Data structures. + ~~~~~~~~~~~~~~~~ + */ + +/* Our model for the data extracted from a decriptor entry. */ +typedef struct + { + IU32 base; /* 32-bit base address */ + IU32 limit; /* 32-bit offset limit */ + IU16 AR; /* 16-bit attributes/access rights */ + } CPU_DESCR; + + +/* + Table for converting byte quantity to Parity Flag. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + */ +IMPORT IU8 pf_table[]; + +#ifdef PIG +IMPORT IBOOL took_relative_jump; +#endif /* PIG */ + + +/* + External interface provided to outside world. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + */ + +typedef IU16 IO_ADDR; + +#ifndef DOUBLE_CPU +/* + Note we can't include "cpu.h" as this would overwrite our macro + names, hence we must redefine the external subroutines here. + */ +IMPORT IU32 effective_addr IPT2( + IU16, selector, + IU32, offset + ); + +IMPORT VOID c_cpu_enable_a20 IPT0(); + +IMPORT VOID c_cpu_force_a20_low IPT0(); + +IMPORT VOID c_cpu_init IPT0(); + +IMPORT VOID c_cpu_reset IPT0(); + +IMPORT VOID c_cpu_continue IPT0(); + +IMPORT VOID c_cpu_simulate IPT0(); + +IMPORT VOID c_pig_interrupt IPT1(IU8, vector); + +IMPORT VOID c_cpu_unsimulate IPT0(); + + +#if 0 /* ROG */ +IMPORT VOID read_descriptor IPT2( + IU32, addr, + CPU_DESCR *, descr + ); + +IMPORT ISM32 selector_outside_table IPT2( + IU16, selector, + IU32 *, descr_addr + ); + +#endif /* 0 ROG */ + +#endif /* !DOUBLE_CPU */ + +/* + Useful mini functions (macros). + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + */ + +/* + Macros for access to MODRM bit fields. + + 7 6 5 4 3 2 1 0 + ================= + MODRM | | | | + ================= + MODE REG R_M + XXX LOW3 + SEG + EEE + SEG3 + SEG2 + + */ +#define GET_MODE(x) ((x) >> 6 & 0x3) +#define GET_R_M(x) ((x) & 0x7) +#define GET_REG(x) ((x) >> 3 & 0x7) +#define GET_XXX(x) ((x) >> 3 & 0x7) +#define GET_SEG(x) ((x) >> 3 & 0x7) +#define GET_EEE(x) ((x) >> 3 & 0x7) +#define GET_SEG3(x) ((x) >> 3 & 0x7) +#define GET_SEG2(x) ((x) >> 3 & 0x7) +#define GET_LOW3(x) ((x) & 0x7) + +/* Turn operand size into mask for Most Significant Bit. */ +#define SZ2MSB(x) ((IU32)0x80000000 >> 32 - x ) + +/* Turn operand size into mask for Operand. */ +#define SZ2MASK(x) ((IU32)0xffffffff >> 32 - x ) + +#ifdef DOUBLE_CPU + +#define HARD_CPU 0 +#define SOFT_CPU 1 + +IMPORT VOID double_switch_to IPT1(IU8, cpu_type); + +#endif + diff --git a/private/mvdm/softpc.new/base/ccpu386/c_mem.h b/private/mvdm/softpc.new/base/ccpu386/c_mem.h new file mode 100644 index 000000000..e32c38826 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_mem.h @@ -0,0 +1,75 @@ +/*[ + +c_mem.h + +LOCAL CHAR SccsID[]="@(#)c_mem.h 1.8 02/28/95"; + +CPU to Memory interface. +------------------------ + +]*/ + +/* >>>>>>>>>>>>>>>> NON KOSHER FORM <<<<<<<<<<<<<<<< */ + +/* Use only for decoding the Intel Opcode Stream. */ +/* DIRECT ACCESS to memory! */ + +IMPORT UTINY ccpu_new_code_page IPT1(UTINY **, q ); + +IMPORT UTINY *pg_end; /* point up to which host may safely read + instruction stream bytes */ + +/* To return difference between two points in the inst. stream. + n = new posn, o = old posn. */ + +#ifdef PIG +#include +#define DIFF_INST_BYTE(n, o) DiffCpuPtrsLS8((o), (n)) +#else /* !PIG */ +#ifdef BACK_M +#define DIFF_INST_BYTE(n, o) ((o) - (n)) +#else +#define DIFF_INST_BYTE(n, o) ((n) - (o)) +#endif /* BACK_M */ +#endif /* PIG */ + +/* To get next inst. byte and move pointer to next inst. byte. */ +#ifdef PIG +#define GET_INST_BYTE(x) \ + save_instruction_byte( DiffCpuPtrsLS8((x), pg_end) <= 0 ? ccpu_new_code_page(&(x)) : *IncCpuPtrLS8(x) ) +#else /* !PIG */ +#ifdef BACK_M +#define GET_INST_BYTE(x) \ + ( (x) <= pg_end ? ccpu_new_code_page(&(x)) : *(x)-- ) +#else +#define GET_INST_BYTE(x) \ + ( (x) >= pg_end ? ccpu_new_code_page(&(x)) : *(x)++ ) +#endif /* BACK_M */ +#endif /* PIG */ + + +/* >>>>>>>>>>>>>>>> KOSHER FORM <<<<<<<<<<<<<<<< */ + +#ifdef PIG + +IMPORT IU8 phy_read_byte IPT1(LIN_ADDR, address ); +IMPORT IU16 phy_read_word IPT1(LIN_ADDR, address ); +IMPORT IU32 phy_read_dword IPT1(LIN_ADDR, address ); +IMPORT VOID phy_write_byte IPT2(LIN_ADDR, address, IU8, data); +IMPORT VOID phy_write_word IPT2(LIN_ADDR, address, IU16, data); +IMPORT VOID phy_write_dword IPT2(LIN_ADDR, address, IU32, data); + +IMPORT VOID cannot_phy_write_byte IPT2(LIN_ADDR, address, IU8, valid_mask); +IMPORT VOID cannot_phy_write_word IPT2(LIN_ADDR, address, IU16, valid_mask); +IMPORT VOID cannot_phy_write_dword IPT2(LIN_ADDR, address, IU32, valid_mask); +#else + +#define phy_read_byte(x) ((IU8)(phy_r8((PHY_ADDR)x))) +#define phy_read_word(x) ((IU16)(phy_r16((PHY_ADDR)x))) +#define phy_read_dword(x) ((IU32)(phy_r32((PHY_ADDR)x))) + +#define phy_write_byte(x, y) phy_w8((PHY_ADDR)x, (IU8)y) +#define phy_write_word(x, y) phy_w16((PHY_ADDR)x, (IU16)y) +#define phy_write_dword(x, y) phy_w32((PHY_ADDR)x, (IU32)y) + +#endif /* PIG */ diff --git a/private/mvdm/softpc.new/base/ccpu386/c_mul64.c b/private/mvdm/softpc.new/base/ccpu386/c_mul64.c new file mode 100644 index 000000000..514498f19 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_mul64.c @@ -0,0 +1,185 @@ +/*[ + +c_mul64.c + +LOCAL CHAR SccsID[]="@(#)c_mul64.c 1.5 02/09/94"; + +64-bit Multiplication Functions. +-------------------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Do 64bit = 32bit X 32bit Signed Multiply. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +mul64 + +IFN4( + IS32 *, hr, /* Pntr to high 32 bits of result */ + IS32 *, lr, /* Pntr to low 32 bits of result */ + IS32, mcand, /* multiplicand */ + IS32, mpy /* multiplier */ + ) + + + { + if ( mcand & BIT31_MASK ) + { + if ( mpy & BIT31_MASK ) + { + /* Negative Multiplicand :: Negative Multiplier */ + mcand = -mcand; + mpy = -mpy; + mulu64((IU32 *)hr, (IU32 *)lr, (IU32)mcand, (IU32)mpy); + } + else + { + /* Negative Multiplicand :: Positive Multiplier */ + mcand = -mcand; + mulu64((IU32 *)hr, (IU32 *)lr, (IU32)mcand, (IU32)mpy); + neg64(hr, lr); + } + } + else + { + if ( mpy & BIT31_MASK ) + { + /* Positive Multiplicand :: Negative Multiplier */ + mpy = -mpy; + mulu64((IU32 *)hr, (IU32 *)lr, (IU32)mcand, (IU32)mpy); + neg64(hr, lr); + } + else + { + /* Positive Multiplicand :: Positive Multiplier */ + mulu64((IU32 *)hr, (IU32 *)lr, (IU32)mcand, (IU32)mpy); + } + } + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Do 64bit = 32bit X 32bit Unsigned Multiply. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +mulu64 + +IFN4( + IU32 *, hr, /* Pntr to high 32 bits of result */ + IU32 *, lr, /* Pntr to low 32 bits of result */ + IU32, mcand, /* multiplicand */ + IU32, mpy /* multiplier */ + ) + + + { + IU32 ha, la, hb, lb; + IU32 res1, res2, res3, res4; + IU32 temp; + + /* Our algorithm:- + + a) Split the operands up into two 16 bit parts, + + 3 1 1 + 1 6 5 0 + =================== + mcand = | ha | la | + =================== + + =================== + mpy = | hb | lb | + =================== + + b) Form four partial results, + + res1 = la * lb + res2 = ha * lb + res3 = la * hb + res4 = ha * hb + + c) Shift results to correct posn and sum. The tricky bit is + allowing for the carry between bits 31 and 32. + + 6 3 3 + 3 2 1 0 + ===================================== + | hr | lr | + ===================================== + <------res1-------> + <------res2-------> + <------res3-------> + <------res4-------> + */ + + /* a) */ + + la = mcand & WORD_MASK; + ha = mcand >> 16 & WORD_MASK; + lb = mpy & WORD_MASK; + hb = mpy >> 16 & WORD_MASK; + + /* b) */ + + res1 = la * lb; + res2 = ha * lb; + res3 = la * hb; + res4 = ha * hb; + + /* c) */ + + /* Form:- + <------res1-------> + <------res2-------> + */ + *hr = res2 >> 16; + *lr = res1 + (res2 << 16); + /* determine carry for res1 + res2 */ + if ( (res1 & BIT31_MASK) && (res2 & BIT15_MASK) || + ( !(*lr & BIT31_MASK) && + ((res1 & BIT31_MASK) | (res2 & BIT15_MASK)) ) + ) + *hr = *hr + 1; + + /* Add in:- + <------res3-------> + */ + *hr = *hr + (res3 >> 16); + temp = *lr + (res3 << 16); + /* determine carry for ... + res3 */ + if ( (*lr & BIT31_MASK) && (res3 & BIT15_MASK) || + ( !(temp & BIT31_MASK) && + ((*lr & BIT31_MASK) | (res3 & BIT15_MASK)) ) + ) + *hr = *hr + 1; + *lr = temp; + + /* Add in:- + <------res4-------> + */ + *hr = *hr + res4; + } diff --git a/private/mvdm/softpc.new/base/ccpu386/c_mul64.h b/private/mvdm/softpc.new/base/ccpu386/c_mul64.h new file mode 100644 index 000000000..892d1e508 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_mul64.h @@ -0,0 +1,29 @@ +/* + c_mul64.h + + Define all 64-bit Multiplication Functions. + */ + +/* + static char SccsID[]="@(#)c_mul64.h 1.4 02/09/94"; + */ + +IMPORT VOID mul64 + +IPT4( + IS32 *, hr, + IS32 *, lr, + IS32, mcand, + IS32, mpy + + ); + +IMPORT VOID mulu64 + +IPT4( + IU32 *, hr, + IU32 *, lr, + IU32, mcand, + IU32, mpy + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/c_neg64.c b/private/mvdm/softpc.new/base/ccpu386/c_neg64.c new file mode 100644 index 000000000..be36685cf --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_neg64.c @@ -0,0 +1,66 @@ +/*[ + +c_neg64.c + +LOCAL CHAR SccsID[]="@(#)c_neg64.c 1.5 02/09/94"; + +64-bit Negate Functions. +------------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Do 64bit Negate. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +neg64 + +IFN2( + IS32 *, hr, /* Pntr to high 32 bits of operand */ + IS32 *, lr /* Pntr to low 32 bits of operand */ + ) + + + { + *hr = ~(*hr); /* 1's complement */ + *lr = ~(*lr); + + /* +1 ==> 2's complement */ + /* + The only tricky case is when the addition causes a carry from + the low to high 32-bits, but this only happens when all low + bits are set. + */ + if ( *lr == 0xffffffff ) + { + *lr = 0; + *hr = *hr + 1; + } + else + { + *lr = *lr + 1; + } + } diff --git a/private/mvdm/softpc.new/base/ccpu386/c_neg64.h b/private/mvdm/softpc.new/base/ccpu386/c_neg64.h new file mode 100644 index 000000000..e97e2aabe --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_neg64.h @@ -0,0 +1,17 @@ +/* + c_neg64.h + + Define all 64-bit Negate Functions. + */ + +/* + static char SccsID[]="@(#)c_neg64.h 1.4 02/09/94"; + */ + +IMPORT VOID neg64 + +IPT2( + IS32 *, hr, + IS32 *, lr + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/c_oprnd.h b/private/mvdm/softpc.new/base/ccpu386/c_oprnd.h new file mode 100644 index 000000000..191b07629 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_oprnd.h @@ -0,0 +1,1135 @@ +/*[ + +c_oprnd.h + +LOCAL CHAR SccsID[]="@(#)c_oprnd.h 1.12 03/07/95"; + +Operand Decoding Functions (Macros). +------------------------------------ + +]*/ + + +/*[ + + There exists 51 different Intel argument types, for each type a + Decode (D_), Fetch (F_), Commit (C_) and Put (P_) 'function' may + be written. (In fact 'null' functions aren't actually defined.) + + The Decode (D_) 'function' decodes and validates the argument and + stores information in an easy to handle form (host variables). For + example memory addressing is resolved to a segment identifier and + offset, access to the memory location is checked at this point. + + The Fetch (F_) 'function' uses the easy to handle host variables to + actually retrieve the operand. + + The Commit (C_) 'function' handles any post instruction operand + functions. At present only string operands actually use this function + to update SI, DI and CX. This update can only be 'committed' after we + are sure no exception can be generated, which is why the Fetch macro + can not handle this update. + + The Put (P_) 'function' stores the operand, it may reference the easy + to handle host variables when deciding where the operand is stored. + + These 'functions' are invoked as follows for the 3 operand cases:- + + ------------------------------- + | src | dst | dst/src | + | r- | -w | rw | + |-----------------------------| + | D_ | D_ | D_ | + | F_ | | F_ | + | <> | + | C_ | C_ | C_ | + | | P_ | P_ | + ------------------------------- + + ie: Decode and Commit (if they exist) are called for all arguments; + Fetch (if it exists) is only called for source arguments; Put is only + called for destination arguments. + + Operand type naming conventions are broadly based on "Appendix A - + Opcode Map in 80386 Programmer's Reference Manual" A brief one line + description of each type is given below before the actual 'function' + definitions. + + The 51 types are composed of those available on the 286,386 and 486:- + + Aw Eb Ew Fal Fax Fcl + Fdx Gb Gw Hb Hw I0 + I1 I3 Ib Iw Ix Jb + Jw M Ma16 Mp16 Ms Nw + Ob Ow Pw Xb Xw Yb + Yw Z + + those available on the 386 and 486:- + + Ad Cd Dd Ed Feax Gd + Hd Id Iy Jd Ma32 Mp32 + Od Qw Rd Td Xd Yd + + and those available on the 486:- + + Mm + + The following table indicates which functions actually exist. A + dot(.) indicates a 'null' or undefined function. + + =================================================== + D F C P| D F C P| D F C P| D F C P + ------------|------------|------------|------------ + Aw D . . .|Ib D . . .|Xw D F C .|Ma32 D F . . + Eb D F . P|Iw D . . .|Yb D F C P|Mm D F . . + Ew D F . P|Ix D . . .|Yw D F C P|Mp32 D F . . + Fal . F . P|Jb D . . .|Z D F . .|Od D F . P + Fax . F . P|Jw D . . .|Ad D . . .|Qw D F . . + Fcl . F . P|M D F . .|Cd D F . .|Rd D F . P + Fdx . F . P|Ma16 D F . .|Dd D F . .|Td D F . . + Gb D F . P|Mp16 D F . .|Ed D F . P|Xd D F C . + Gw D F . P|Ms D F . P|Feax . F . P|Yd D F C P + Hb D F . P|Nw D F . P|Gd D F . P| + Hw D F . P|Ob D F . P|Hd D F . P| + I0 . F . .|Ow D F . P|Id D . . .| + I1 . F . .|Pw D F . P|Iy D . . .| + I3 . F . .|Xb D F C .|Jd D . . .| + =================================================== + + Each Intel combination of source and destination is categorised by + a numeric instruction type as follows:- + + -------------------------------------------------- + | Id | Intel assembler | arg1 | arg2 | arg3 | + |----|----------------------|------|------|------| + | 0 | INST | -- | -- | -- | + | 1 | INST dst/src | rw | -- | -- | + | 2 | INST src | r- | -- | -- | + | 3 | INST dst | -w | -- | -- | + | 4 | INST dst,src | -w | r- | -- | + | 5 | INST dst/src,src | rw | r- | -- | + | 6 | INST src,src | r- | r- | -- | + | 7 | INST dst,src,src | -w | r- | r- | + | 8 | INST dst/src,dst/src | rw | rw | -- | + | 9 | INST dst/src,src,src | rw | r- | r- | + -------------------------------------------------- + + Each instruction type defines the calling sequences for the + pre-instruction (Leading) 'functions' (D_, F_) and the post- + instruction (Trailing) 'functions' (C_, P_). + + + BUT (Mike says) + --- + +This is all OK, until we get to the BT (bit test) familly of instructions, +where unfortunately the manual is a little economic with the truth. If the +bit offset parameter is specified by a register, part of the value in +the register will actually be used as a (d)word offset if the other operand +is in memory. + +This means that the bit offset operand must be fetched before the other +operand can be decoded. Yuck. + +So for these instructions we're not going to use separate fetch and decode +stages. Maybe there's a better way of doing this, but I don't know it. +(Note that this doesn't apply to the BTx instructions with an immediate +operand) +]*/ + + +/* Segment access checking functions <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ +/* RO = Read Only */ +/* WO = Write Only */ +/* RW = Read and Write */ + +#define RO0 \ + if ( !GET_SR_AR_R(m_seg[0]) ) \ + GP((USHORT)0, FAULT_OP0_SEG_NOT_READABLE); + +#define WO0 \ + if ( !GET_SR_AR_W(m_seg[0]) ) \ + GP((USHORT)0, FAULT_OP0_SEG_NOT_WRITABLE); + +#define RW0 \ + if ( !GET_SR_AR_R(m_seg[0]) || !GET_SR_AR_W(m_seg[0]) ) \ + GP((USHORT)0, FAULT_OP0_SEG_NO_READ_OR_WRITE); + +#define RO1 \ + if ( !GET_SR_AR_R(m_seg[1]) ) \ + GP((USHORT)0, FAULT_OP1_SEG_NOT_READABLE); + +#define WO1 \ + if ( !GET_SR_AR_W(m_seg[1]) ) \ + GP((USHORT)0, FAULT_OP1_SEG_NOT_WRITABLE); + +#define RW1 \ + if ( !GET_SR_AR_R(m_seg[1]) || !GET_SR_AR_W(m_seg[1]) ) \ + GP((USHORT)0, FAULT_OP1_SEG_NO_READ_OR_WRITE); + +/* String Count access function <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ + +#define STRING_COUNT \ + if ( repeat == REP_CLR ) \ + { \ + rep_count = 1; \ + } \ + else \ + { \ + if ( GET_ADDRESS_SIZE() == USE16 ) \ + rep_count = GET_CX(); \ + else /* USE32 */ \ + rep_count = GET_ECX(); \ + } + + +/* <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ +/* 286,386 and 486 */ +/* <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ + + + +/* Aw == direct address in instruction stream <<<<<<<<<< */ + +#define D_Aw(ARG) \ + immed = GET_INST_BYTE(p); \ + immed |= (ULONG)GET_INST_BYTE(p) << 8; \ + ops[ARG].mlt[0] = immed; \ + immed = GET_INST_BYTE(p); \ + immed |= (ULONG)GET_INST_BYTE(p) << 8; \ + ops[ARG].mlt[1] = immed; + +#define D_E08(ARG, TYPE, PAGE) \ + m_isreg[ARG] = FALSE; \ + d_mem(modRM, &p, segment_override, \ + &m_seg[ARG], &m_off[ARG]); \ + TYPE \ + limit_check(m_seg[ARG], m_off[ARG], (INT)1, (INT)8); \ + m_la[ARG] = GET_SR_BASE(m_seg[ARG]) + m_off[ARG]; \ + m_pa[ARG] = usr_chk_word(m_la[ARG], PAGE); + +#define F_E08(ARG) \ + vir_read_bytes(&ops[ARG].npxbuff[0], m_la[ARG], m_pa[ARG], 0x08); + +#define P_E08(ARG) \ + vir_write_bytes(m_la[ARG], m_pa[ARG], &ops[ARG].npxbuff[0], 0x08); + +#define D_E0a(ARG, TYPE, PAGE) \ + m_isreg[ARG] = FALSE; \ + d_mem(modRM, &p, segment_override, \ + &m_seg[ARG], &m_off[ARG]); \ + TYPE \ + limit_check(m_seg[ARG], m_off[ARG], (INT)1, (INT)10); \ + m_la[ARG] = GET_SR_BASE(m_seg[ARG]) + m_off[ARG]; \ + m_pa[ARG] = usr_chk_word(m_la[ARG], PAGE); + +#define F_E0a(ARG) \ + vir_read_bytes(&ops[ARG].npxbuff[0], m_la[ARG], m_pa[ARG], 0x0a); + +#define P_E0a(ARG) \ + vir_write_bytes(m_la[ARG], m_pa[ARG], &ops[ARG].npxbuff[0], 0x0a); + +#define D_E0e(ARG, TYPE, PAGE) \ + m_isreg[ARG] = FALSE; \ + d_mem(modRM, &p, segment_override, \ + &m_seg[ARG], &m_off[ARG]); \ + TYPE \ + if (NPX_ADDRESS_SIZE_32) { \ + limit_check(m_seg[ARG], m_off[ARG], (INT)1, (INT)28); \ + } else { \ + limit_check(m_seg[ARG], m_off[ARG], (INT)1, (INT)14); \ + } \ + m_la[ARG] = GET_SR_BASE(m_seg[ARG]) + m_off[ARG]; \ + m_pa[ARG] = usr_chk_word(m_la[ARG], PAGE); + +#define F_E0e(ARG) \ + if (NPX_ADDRESS_SIZE_32) { \ + vir_read_bytes(&ops[ARG].npxbuff[0], m_la[ARG], m_pa[ARG], 0x1c); \ + } else { \ + vir_read_bytes(&ops[ARG].npxbuff[0], m_la[ARG], m_pa[ARG], 0x0e); \ + } + +#define P_E0e(ARG) \ + if (NPX_ADDRESS_SIZE_32) { \ + vir_write_bytes(m_la[ARG], m_pa[ARG], &ops[ARG].npxbuff[0], 0x1c); \ + } else { \ + vir_write_bytes(m_la[ARG], m_pa[ARG], &ops[ARG].npxbuff[0], 0x0e); \ + } + +#define D_E5e(ARG, TYPE, PAGE) \ + m_isreg[ARG] = FALSE; \ + d_mem(modRM, &p, segment_override, \ + &m_seg[ARG], &m_off[ARG]); \ + TYPE \ + if (NPX_ADDRESS_SIZE_32) { \ + limit_check(m_seg[ARG], m_off[ARG], (INT)1, (INT)94); \ + } else { \ + limit_check(m_seg[ARG], m_off[ARG], (INT)1, (INT)106); \ + } \ + m_la[ARG] = GET_SR_BASE(m_seg[ARG]) + m_off[ARG]; \ + m_pa[ARG] = usr_chk_word(m_la[ARG], PAGE); + +#define F_E5e(ARG) \ + if (NPX_ADDRESS_SIZE_32) { \ + vir_read_bytes(&ops[ARG].npxbuff[0], m_la[ARG], m_pa[ARG], 0x6c); \ + } else { \ + vir_read_bytes(&ops[ARG].npxbuff[0], m_la[ARG], m_pa[ARG], 0x5e); \ + } + +#define P_E5e(ARG) \ + if (NPX_ADDRESS_SIZE_32) { \ + vir_write_bytes(m_la[ARG], m_pa[ARG], &ops[ARG].npxbuff[0], 0x6c); \ + } else { \ + vir_write_bytes(m_la[ARG], m_pa[ARG], &ops[ARG].npxbuff[0], 0x5e); \ + } + + +/* Eb == 'mode'+'r/m' fields refer to byte register/memory <<<<<<<<<< */ + +#define D_Eb(ARG, TYPE, PAGE) \ + if ( GET_MODE(modRM) == 3 ) \ + { \ + save_id[ARG] = GET_R_M(modRM); \ + m_isreg[ARG] = TRUE; \ + } \ + else \ + { \ + m_isreg[ARG] = FALSE; \ + d_mem(modRM, &p, segment_override, \ + &m_seg[ARG], &m_off[ARG]); \ + TYPE \ + limit_check(m_seg[ARG], m_off[ARG], (INT)1, (INT)1); \ + m_la[ARG] = GET_SR_BASE(m_seg[ARG]) + m_off[ARG]; \ + m_pa[ARG] = usr_chk_byte(m_la[ARG], PAGE); \ + } + +#define F_Eb(ARG) \ + if ( m_isreg[ARG] ) \ + ops[ARG].sng = GET_BR(save_id[ARG]); \ + else \ + ops[ARG].sng = vir_read_byte(m_la[ARG], m_pa[ARG]); + +#define P_Eb(ARG) \ + if ( m_isreg[ARG] ) \ + SET_BR(save_id[ARG], ops[ARG].sng); \ + else \ + vir_write_byte(m_la[ARG], m_pa[ARG], (UTINY)ops[ARG].sng); + +/* Ew == 'mode'+'r/m' fields refer to word register/memory <<<<<<<<<< */ + +#define D_Ew(ARG, TYPE, PAGE) \ + if ( GET_MODE(modRM) == 3 ) \ + { \ + save_id[ARG] = GET_R_M(modRM); \ + m_isreg[ARG] = TRUE; \ + } \ + else \ + { \ + m_isreg[ARG] = FALSE; \ + d_mem(modRM, &p, segment_override, \ + &m_seg[ARG], &m_off[ARG]); \ + TYPE \ + limit_check(m_seg[ARG], m_off[ARG], (INT)1, (INT)2); \ + m_la[ARG] = GET_SR_BASE(m_seg[ARG]) + m_off[ARG]; \ + m_pa[ARG] = usr_chk_word(m_la[ARG], PAGE); \ + } + +#define F_Ew(ARG) \ + if ( m_isreg[ARG] ) \ + ops[ARG].sng = GET_WR(save_id[ARG]); \ + else \ + ops[ARG].sng = vir_read_word(m_la[ARG], m_pa[ARG]); + +#define P_Ew(ARG) \ + if ( m_isreg[ARG] ) \ + SET_WR(save_id[ARG], ops[ARG].sng); \ + else \ + vir_write_word(m_la[ARG], m_pa[ARG], (USHORT)ops[ARG].sng); + +/* Fal == fixed register, AL <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ + +#define F_Fal(ARG) ops[ARG].sng = GET_BR(A_AL); + +#define P_Fal(ARG) SET_BR(A_AL, ops[ARG].sng); + +/* Fax == fixed register, AX <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ + +#define F_Fax(ARG) ops[ARG].sng = GET_WR(A_AX); + +#define P_Fax(ARG) SET_WR(A_AX, ops[ARG].sng); + +/* Fcl == fixed register, CL <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ + +#define F_Fcl(ARG) ops[ARG].sng = GET_BR(A_CL); + +#define P_Fcl(ARG) SET_BR(A_CL, ops[ARG].sng); + +/* Fdx == fixed register, DX <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ + +#define F_Fdx(ARG) ops[ARG].sng = GET_WR(A_DX); + +#define P_Fdx(ARG) SET_WR(A_DX, ops[ARG].sng); + +/* Gb == 'reg' field of modR/M byte denotes byte reg <<<<<<<<<<<<<<<< */ + +#define D_Gb(ARG) save_id[ARG] = GET_REG(modRM); + +#define F_Gb(ARG) ops[ARG].sng = GET_BR(save_id[ARG]); + +#define P_Gb(ARG) SET_BR(save_id[ARG], ops[ARG].sng); + +/* Gw == 'reg' field of modR/M byte denotes word reg <<<<<<<<<<<<<<<< */ + +#define D_Gw(ARG) save_id[ARG] = GET_REG(modRM); + +#define F_Gw(ARG) ops[ARG].sng = GET_WR(save_id[ARG]); + +#define P_Gw(ARG) SET_WR(save_id[ARG], ops[ARG].sng); + +/* Hb == low 3 bits of opcode denote byte register <<<<<<<<<<<<<<<<<< */ + +#define D_Hb(ARG) save_id[ARG] = GET_LOW3(opcode); + +#define F_Hb(ARG) ops[ARG].sng = GET_BR(save_id[ARG]); + +#define P_Hb(ARG) SET_BR(save_id[ARG], ops[ARG].sng); + +/* Hw == low 3 bits of opcode denote word register <<<<<<<<<<<<<<<<<< */ + +#define D_Hw(ARG) save_id[ARG] = GET_LOW3(opcode); + +#define F_Hw(ARG) ops[ARG].sng = GET_WR(save_id[ARG]); + +#define P_Hw(ARG) SET_WR(save_id[ARG], ops[ARG].sng); + +/* I0 == immediate(0) implied within instruction <<<<<<<<<<<<<<<<<<<< */ + +#define F_I0(ARG) ops[ARG].sng = 0; + +/* I1 == immediate(1) implied within instruction <<<<<<<<<<<<<<<<<<<< */ + +#define F_I1(ARG) ops[ARG].sng = 1; + +/* I3 == immediate(3) implied within instruction <<<<<<<<<<<<<<<<<<<< */ + +#define F_I3(ARG) ops[ARG].sng = 3; + +/* Ib == immediate byte <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ + +#define D_Ib(ARG) ops[ARG].sng = GET_INST_BYTE(p); + +/* Iw == immediate word <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ + +#define D_Iw(ARG) \ + immed = GET_INST_BYTE(p); \ + immed |= (ULONG)GET_INST_BYTE(p) << 8; \ + ops[ARG].sng = immed; + +/* Ix == immediate byte sign extended to word <<<<<<<<<<<<<<<<<<<<<<< */ + +#define D_Ix(ARG) \ + immed = GET_INST_BYTE(p); \ + if ( immed & 0x80 ) \ + immed |= 0xff00; \ + ops[ARG].sng = immed; + +/* Jb == relative offset byte sign extended to double word <<<<<<<<<< */ + +#define D_Jb(ARG) \ + immed = GET_INST_BYTE(p); \ + if ( immed & 0x80 ) \ + immed |= 0xffffff00; \ + ops[ARG].sng = immed; + +/* Jw == relative offset word sign extended to double word <<<<<<<<<< */ + +#define D_Jw(ARG) \ + immed = GET_INST_BYTE(p); \ + immed |= (ULONG)GET_INST_BYTE(p) << 8; \ + if ( immed & 0x8000 ) \ + immed |= 0xffff0000; \ + ops[ARG].sng = immed; + +/* M == address (ie offset) of memory operand <<<<<<<<<<<<<<<<<<<<<<< */ + +#define D_M(ARG) \ + if ( GET_MODE(modRM) == 3 ) \ + Int6(); /* Register operand not allowed */ \ + else \ + { \ + d_mem(modRM, &p, segment_override, &m_seg[ARG], \ + &m_off[ARG]); \ + } + +#define F_M(ARG) ops[ARG].sng = m_off[ARG]; + +/* Ma16 == word operand pair, as used by BOUND <<<<<<<<<<<<<<<<<<<<< */ + +#define D_Ma16(ARG, TYPE, PAGE) \ + if ( GET_MODE(modRM) == 3 ) \ + { \ + Int6(); /* Register operand not allowed */ \ + } \ + else \ + { \ + d_mem(modRM, &p, segment_override, \ + &m_seg[ARG], &m_off[ARG]); \ + TYPE \ + limit_check(m_seg[ARG], m_off[ARG], (INT)2, (INT)2); \ + m_la[ARG] = GET_SR_BASE(m_seg[ARG]) + m_off[ARG]; \ + m_pa[ARG] = usr_chk_word(m_la[ARG], PAGE); \ + m_off[ARG] = address_add(m_off[ARG], (LONG)2); \ + m_la2[ARG] = GET_SR_BASE(m_seg[ARG]) + m_off[ARG]; \ + m_pa2[ARG] = usr_chk_word(m_la2[ARG], PAGE); \ + } + +#define F_Ma16(ARG) \ + ops[ARG].mlt[0] = vir_read_word(m_la[ARG], m_pa[ARG]); \ + ops[ARG].mlt[1] = vir_read_word(m_la2[ARG], m_pa2[ARG]); + +/* Mp16 == 32-bit far pointer:- (16:16) <<<<<<<<<<<<<<<< */ + +#define D_Mp16(ARG, TYPE, PAGE) \ + if ( GET_MODE(modRM) == 3 ) \ + { \ + Int6(); /* Register operand not allowed */ \ + } \ + else \ + { \ + d_mem(modRM, &p, segment_override, \ + &m_seg[ARG], &m_off[ARG]); \ + TYPE \ + limit_check(m_seg[ARG], m_off[ARG], (INT)2, (INT)2); \ + m_la[ARG] = GET_SR_BASE(m_seg[ARG]) + m_off[ARG]; \ + m_pa[ARG] = usr_chk_word(m_la[ARG], PAGE); \ + m_off[ARG] = address_add(m_off[ARG], (LONG)2); \ + m_la2[ARG] = GET_SR_BASE(m_seg[ARG]) + m_off[ARG]; \ + m_pa2[ARG] = usr_chk_word(m_la2[ARG], PAGE); \ + } + +#define F_Mp16(ARG) \ + ops[ARG].mlt[0] = vir_read_word(m_la[ARG], m_pa[ARG]); \ + ops[ARG].mlt[1] = vir_read_word(m_la2[ARG], m_pa2[ARG]); + +/* Ms == six byte pseudo decriptor <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ + +#define D_Ms(ARG, TYPE, PAGE) \ + d_mem(modRM, &p, segment_override, &m_seg[ARG], &m_off[ARG]);\ + TYPE \ + limit_check(m_seg[ARG], m_off[ARG], (INT)3, (INT)2); \ + m_la[ARG] = GET_SR_BASE(m_seg[ARG]) + m_off[ARG]; \ + m_pa[ARG] = usr_chk_word(m_la[ARG], PAGE); \ + m_off[ARG] = address_add(m_off[ARG], (LONG)2); \ + m_la2[ARG] = GET_SR_BASE(m_seg[ARG]) + m_off[ARG]; \ + m_pa2[ARG] = usr_chk_dword(m_la2[ARG], PAGE); + +#define F_Ms(ARG) \ + ops[ARG].mlt[0] = vir_read_word(m_la[ARG], m_pa[ARG]); \ + ops[ARG].mlt[1] = vir_read_dword(m_la2[ARG], m_pa2[ARG]); + +#define P_Ms(ARG) \ + vir_write_word(m_la[ARG], m_pa[ARG], (USHORT)ops[ARG].mlt[0]); \ + vir_write_dword(m_la2[ARG], m_pa2[ARG], (ULONG)ops[ARG].mlt[1]); + +/* Nw == 'reg' field of modR/M byte denotes segment register <<<<<<<< */ + +#define D_Nw(ARG) ops[ARG].sng = GET_SEG(modRM); + +#define F_Nw(ARG) ops[ARG].sng = GET_SR_SELECTOR(ops[ARG].sng); + +/* Ob == offset to byte encoded in instruction stream <<<<<<<<<<<<<<< */ + +#define D_Ob(ARG, TYPE, PAGE) \ + m_seg[ARG] = (segment_override == SEG_CLR) ? \ + DS_REG : segment_override; \ + immed = GET_INST_BYTE(p); \ + immed |= (ULONG)GET_INST_BYTE(p) << 8; \ + if ( GET_ADDRESS_SIZE() == USE32 ) \ + { \ + immed |= (ULONG)GET_INST_BYTE(p) << 16; \ + immed |= (ULONG)GET_INST_BYTE(p) << 24; \ + } \ + m_off[ARG] = immed; \ + TYPE \ + limit_check(m_seg[ARG], m_off[ARG], (INT)1, (INT)1); \ + m_la[ARG] = GET_SR_BASE(m_seg[ARG]) + m_off[ARG]; \ + m_pa[ARG] = usr_chk_byte(m_la[ARG], PAGE); + +#define F_Ob(ARG) ops[ARG].sng = vir_read_byte(m_la[ARG], m_pa[ARG]); + +#define P_Ob(ARG) \ + vir_write_byte(m_la[ARG], m_pa[ARG], (UTINY)ops[ARG].sng); + +/* Ow == offset to word encoded in instruction stream <<<<<<<<<<<<<<< */ + +#define D_Ow(ARG, TYPE, PAGE) \ + m_seg[ARG] = (segment_override == SEG_CLR) ? \ + DS_REG : segment_override; \ + immed = GET_INST_BYTE(p); \ + immed |= (ULONG)GET_INST_BYTE(p) << 8; \ + if ( GET_ADDRESS_SIZE() == USE32 ) \ + { \ + immed |= (ULONG)GET_INST_BYTE(p) << 16; \ + immed |= (ULONG)GET_INST_BYTE(p) << 24; \ + } \ + m_off[ARG] = immed; \ + TYPE \ + limit_check(m_seg[ARG], m_off[ARG], (INT)1, (INT)2); \ + m_la[ARG] = GET_SR_BASE(m_seg[ARG]) + m_off[ARG]; \ + m_pa[ARG] = usr_chk_word(m_la[ARG], PAGE); + +#define F_Ow(ARG) \ + ops[ARG].sng = vir_read_word(m_la[ARG], m_pa[ARG]); + +#define P_Ow(ARG) \ + vir_write_word(m_la[ARG], m_pa[ARG], (USHORT)ops[ARG].sng); + +/* Pw == 2 bits(4-3) of opcode byte denote segment register <<<<<<<<< */ + +#define D_Pw(ARG) ops[ARG].sng = GET_SEG2(opcode); + +#define F_Pw(ARG) ops[ARG].sng = GET_SR_SELECTOR(ops[ARG].sng); + +/* Xb == byte string source addressing <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ + +#define D_Xb(ARG, TYPE, PAGE) \ + m_seg[ARG] = (segment_override == SEG_CLR) ? \ + DS_REG : segment_override; \ + if ( GET_ADDRESS_SIZE() == USE16 ) \ + m_off[ARG] = GET_SI(); \ + else /* USE32 */ \ + m_off[ARG] = GET_ESI(); \ + TYPE \ + limit_check(m_seg[ARG], m_off[ARG], (INT)1, (INT)1); \ + m_la[ARG] = GET_SR_BASE(m_seg[ARG]) + m_off[ARG]; \ + m_pa[ARG] = usr_chk_byte(m_la[ARG], PAGE); + +#define F_Xb(ARG) ops[ARG].sng = vir_read_byte(m_la[ARG], m_pa[ARG]); + +#define C_Xb(ARG) \ + if ( GET_ADDRESS_SIZE() == USE16 ) \ + { \ + if ( GET_DF() ) \ + SET_SI(GET_SI() - 1); \ + else \ + SET_SI(GET_SI() + 1); \ + if ( repeat != REP_CLR ) \ + SET_CX(rep_count); \ + } \ + else /* USE32 */ \ + { \ + if ( GET_DF() ) \ + SET_ESI(GET_ESI() - 1); \ + else \ + SET_ESI(GET_ESI() + 1); \ + if ( repeat != REP_CLR ) \ + SET_ECX(rep_count); \ + } + +/* Xw == word string source addressing <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ + +#define D_Xw(ARG, TYPE, PAGE) \ + m_seg[ARG] = (segment_override == SEG_CLR) ? \ + DS_REG : segment_override; \ + if ( GET_ADDRESS_SIZE() == USE16 ) \ + m_off[ARG] = GET_SI(); \ + else /* USE32 */ \ + m_off[ARG] = GET_ESI(); \ + TYPE \ + limit_check(m_seg[ARG], m_off[ARG], (INT)1, (INT)2); \ + m_la[ARG] = GET_SR_BASE(m_seg[ARG]) + m_off[ARG]; \ + m_pa[ARG] = usr_chk_word(m_la[ARG], PAGE); + +#define F_Xw(ARG) \ + ops[ARG].sng = vir_read_word(m_la[ARG], m_pa[ARG]); + +#define C_Xw(ARG) \ + if ( GET_ADDRESS_SIZE() == USE16 ) \ + { \ + if ( GET_DF() ) \ + SET_SI(GET_SI() - 2); \ + else \ + SET_SI(GET_SI() + 2); \ + if ( repeat != REP_CLR ) \ + SET_CX(rep_count); \ + } \ + else /* USE32 */ \ + { \ + if ( GET_DF() ) \ + SET_ESI(GET_ESI() - 2); \ + else \ + SET_ESI(GET_ESI() + 2); \ + if ( repeat != REP_CLR ) \ + SET_ECX(rep_count); \ + } + +/* Yb == byte string 'destination' addressing <<<<<<<<<<<<<<<<<<<<<<< */ + +#define D_Yb(ARG, TYPE, PAGE) \ + m_seg[ARG] = ES_REG; \ + if ( GET_ADDRESS_SIZE() == USE16 ) \ + m_off[ARG] = GET_DI(); \ + else /* USE32 */ \ + m_off[ARG] = GET_EDI(); \ + TYPE \ + limit_check(m_seg[ARG], m_off[ARG], (INT)1, (INT)1); \ + m_la[ARG] = GET_SR_BASE(m_seg[ARG]) + m_off[ARG]; \ + m_pa[ARG] = usr_chk_byte(m_la[ARG], PAGE); + +#define F_Yb(ARG) ops[ARG].sng = vir_read_byte(m_la[ARG], m_pa[ARG]); + +#define C_Yb(ARG) \ + if ( GET_ADDRESS_SIZE() == USE16 ) \ + { \ + if ( GET_DF() ) \ + SET_DI(GET_DI() - 1); \ + else \ + SET_DI(GET_DI() + 1); \ + if ( repeat != REP_CLR ) \ + SET_CX(rep_count); \ + } \ + else /* USE32 */ \ + { \ + if ( GET_DF() ) \ + SET_EDI(GET_EDI() - 1); \ + else \ + SET_EDI(GET_EDI() + 1); \ + if ( repeat != REP_CLR ) \ + SET_ECX(rep_count); \ + } + +#define P_Yb(ARG) \ + vir_write_byte(m_la[ARG], m_pa[ARG], (IU8)ops[ARG].sng); + +#ifdef PIG +#define PIG_P_Yb(ARG) \ + cannot_vir_write_byte(m_la[ARG], m_pa[ARG], 0x00); +#else +#define PIG_P_Yb(ARG) \ + vir_write_byte(m_la[ARG], m_pa[ARG], (IU8)ops[ARG].sng); +#endif /* PIG */ + + +/* Yw == word string 'destination' addressing <<<<<<<<<<<<<<<<<<<<<<< */ + +#define D_Yw(ARG, TYPE, PAGE) \ + m_seg[ARG] = ES_REG; \ + if ( GET_ADDRESS_SIZE() == USE16 ) \ + m_off[ARG] = GET_DI(); \ + else /* USE32 */ \ + m_off[ARG] = GET_EDI(); \ + TYPE \ + limit_check(m_seg[ARG], m_off[ARG], (INT)1, (INT)2); \ + m_la[ARG] = GET_SR_BASE(m_seg[ARG]) + m_off[ARG]; \ + m_pa[ARG] = usr_chk_word(m_la[ARG], PAGE); + +#define F_Yw(ARG) \ + ops[ARG].sng = vir_read_word(m_la[ARG], m_pa[ARG]); + +#define C_Yw(ARG) \ + if ( GET_ADDRESS_SIZE() == USE16 ) \ + { \ + if ( GET_DF() ) \ + SET_DI(GET_DI() - 2); \ + else \ + SET_DI(GET_DI() + 2); \ + if ( repeat != REP_CLR ) \ + SET_CX(rep_count); \ + } \ + else /* USE32 */ \ + { \ + if ( GET_DF() ) \ + SET_EDI(GET_EDI() - 2); \ + else \ + SET_EDI(GET_EDI() + 2); \ + if ( repeat != REP_CLR ) \ + SET_ECX(rep_count); \ + } + +#define P_Yw(ARG) \ + vir_write_word(m_la[ARG], m_pa[ARG], (IU16)ops[ARG].sng); + +#ifdef PIG +#define PIG_P_Yw(ARG) \ + cannot_vir_write_word(m_la[ARG], m_pa[ARG], 0x0000); +#else +#define PIG_P_Yw(ARG) \ + vir_write_word(m_la[ARG], m_pa[ARG], (IU16)ops[ARG].sng); +#endif /* PIG */ + +/* Z == 'xlat' addressing form <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ + +#define D_Z(ARG, TYPE, PAGE) \ + m_seg[ARG] = (segment_override == SEG_CLR) ? \ + DS_REG : segment_override; \ + if ( GET_ADDRESS_SIZE() == USE16 ) \ + m_off[ARG] = GET_BX() + GET_AL() & WORD_MASK; \ + else /* USE32 */ \ + m_off[ARG] = GET_EBX() + GET_AL(); \ + TYPE \ + limit_check(m_seg[ARG], m_off[ARG], (INT)1, (INT)1); \ + m_la[ARG] = GET_SR_BASE(m_seg[ARG]) + m_off[ARG]; \ + m_pa[ARG] = usr_chk_byte(m_la[ARG], PAGE); + +#define F_Z(ARG) ops[ARG].sng = vir_read_byte(m_la[ARG], m_pa[ARG]); + + +/* <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ +/* 386 and 486 */ +/* <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ + + +/* Ad == direct address in instruction stream <<<<<<<<<< */ + +#define D_Ad(ARG) \ + immed = GET_INST_BYTE(p); \ + immed |= (ULONG)GET_INST_BYTE(p) << 8; \ + immed |= (ULONG)GET_INST_BYTE(p) << 16; \ + immed |= (ULONG)GET_INST_BYTE(p) << 24; \ + ops[ARG].mlt[0] = immed; \ + immed = GET_INST_BYTE(p); \ + immed |= (ULONG)GET_INST_BYTE(p) << 8; \ + ops[ARG].mlt[1] = immed; + +/* Cd == 'reg' field of modR/M byte denotes control register <<<<<<<< */ + +#define D_Cd(ARG) ops[ARG].sng = GET_EEE(modRM); + +#define F_Cd(ARG) ops[ARG].sng = GET_CR(ops[ARG].sng); + +/* Dd == 'reg' field of modR/M byte denotes debug register <<<<<<<<<< */ + +#define D_Dd(ARG) ops[ARG].sng = GET_EEE(modRM); + +#define F_Dd(ARG) ops[ARG].sng = GET_DR(ops[ARG].sng); + +/* Ed == 'mode'+'r/m' fields refer to double word register/memory <<< */ + +#define D_Ed(ARG, TYPE, PAGE) \ + if ( GET_MODE(modRM) == 3 ) \ + { \ + save_id[ARG] = GET_R_M(modRM); \ + m_isreg[ARG] = TRUE; \ + } \ + else \ + { \ + m_isreg[ARG] = FALSE; \ + d_mem(modRM, &p, segment_override, \ + &m_seg[ARG], &m_off[ARG]); \ + TYPE \ + limit_check(m_seg[ARG], m_off[ARG], (INT)1, (INT)4); \ + m_la[ARG] = GET_SR_BASE(m_seg[ARG]) + m_off[ARG]; \ + m_pa[ARG] = usr_chk_dword(m_la[ARG], PAGE); \ + } + +#define F_Ed(ARG) \ + if ( m_isreg[ARG] ) \ + ops[ARG].sng = GET_GR(save_id[ARG]); \ + else \ + ops[ARG].sng = vir_read_dword(m_la[ARG], m_pa[ARG]); + +#define P_Ed(ARG) \ + if ( m_isreg[ARG] ) \ + SET_GR(save_id[ARG], ops[ARG].sng); \ + else \ + vir_write_dword(m_la[ARG], m_pa[ARG], (ULONG)ops[ARG].sng); + +/* Feax == fixed register, EAX <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ + +#define F_Feax(ARG) ops[ARG].sng = GET_GR(A_EAX); + +#define P_Feax(ARG) SET_GR(A_EAX, ops[ARG].sng); + +/* Gd == 'reg' field of modR/M byte denotes double word reg <<<<<<<<< */ + +#define D_Gd(ARG) save_id[ARG] = GET_REG(modRM); + +#define F_Gd(ARG) ops[ARG].sng = GET_GR(save_id[ARG]); + +#define P_Gd(ARG) SET_GR(save_id[ARG], ops[ARG].sng); + +/* Hd == low 3 bits of opcode denote double word register <<<<<<<<<<< */ + +#define D_Hd(ARG) save_id[ARG] = GET_LOW3(opcode); + +#define F_Hd(ARG) ops[ARG].sng = GET_GR(save_id[ARG]); + +#define P_Hd(ARG) SET_GR(save_id[ARG], ops[ARG].sng); + +/* Id == immediate double word <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ + +#define D_Id(ARG) \ + immed = GET_INST_BYTE(p); \ + immed |= (ULONG)GET_INST_BYTE(p) << 8; \ + immed |= (ULONG)GET_INST_BYTE(p) << 16; \ + immed |= (ULONG)GET_INST_BYTE(p) << 24; \ + ops[ARG].sng = immed; + +/* Iy == immediate byte sign extended to double word <<<<<<<<<<<<<<<< */ + +#define D_Iy(ARG) \ + immed = GET_INST_BYTE(p); \ + if ( immed & 0x80 ) \ + immed |= 0xffffff00; \ + ops[ARG].sng = immed; + +/* Jd == relative offset double word <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ + +#define D_Jd(ARG) \ + immed = GET_INST_BYTE(p); \ + immed |= (ULONG)GET_INST_BYTE(p) << 8; \ + immed |= (ULONG)GET_INST_BYTE(p) << 16; \ + immed |= (ULONG)GET_INST_BYTE(p) << 24; \ + ops[ARG].sng = immed; + +/* Ma32 == double word operand pair, as used by BOUND <<<<<<<<<<<<<<< */ + +#define D_Ma32(ARG, TYPE, PAGE) \ + if ( GET_MODE(modRM) == 3 ) \ + { \ + Int6(); /* Register operand not allowed */ \ + } \ + else \ + { \ + d_mem(modRM, &p, segment_override, \ + &m_seg[ARG], &m_off[ARG]); \ + TYPE \ + limit_check(m_seg[ARG], m_off[ARG], (INT)2, (INT)4); \ + m_la[ARG] = GET_SR_BASE(m_seg[ARG]) + m_off[ARG]; \ + m_pa[ARG] = usr_chk_dword(m_la[ARG], PAGE); \ + m_off[ARG] = address_add(m_off[ARG], (LONG)4); \ + m_la2[ARG] = GET_SR_BASE(m_seg[ARG]) + m_off[ARG]; \ + m_pa2[ARG] = usr_chk_dword(m_la2[ARG], PAGE); \ + } + +#define F_Ma32(ARG) \ + ops[ARG].mlt[0] = vir_read_dword(m_la[ARG], m_pa[ARG]); \ + ops[ARG].mlt[1] = vir_read_dword(m_la2[ARG], m_pa2[ARG]); + +/* Mp32 == 48-bit far pointer:- (32:16) <<<<<<<<< */ + +#define D_Mp32(ARG, TYPE, PAGE) \ + if ( GET_MODE(modRM) == 3 ) \ + { \ + Int6(); /* Register operand not allowed */ \ + } \ + else \ + { \ + d_mem(modRM, &p, segment_override, \ + &m_seg[ARG], &m_off[ARG]); \ + TYPE \ + limit_check(m_seg[ARG], m_off[ARG], (INT)1, (INT)4); \ + m_la[ARG] = GET_SR_BASE(m_seg[ARG]) + m_off[ARG]; \ + m_off[ARG] = address_add(m_off[ARG], (LONG)4); \ + limit_check(m_seg[ARG], m_off[ARG], (INT)1, (INT)2); \ + m_la2[ARG] = GET_SR_BASE(m_seg[ARG]) + m_off[ARG]; \ + m_pa[ARG] = usr_chk_dword(m_la[ARG], PAGE); \ + m_pa2[ARG] = usr_chk_word(m_la2[ARG], PAGE); \ + } + +#define F_Mp32(ARG) \ + ops[ARG].mlt[0] = vir_read_dword(m_la[ARG], m_pa[ARG]); \ + ops[ARG].mlt[1] = vir_read_word(m_la2[ARG], m_pa2[ARG]); + +/* Od == offset to double word encoded in instruction stream <<<<<<<< */ + +#define D_Od(ARG, TYPE, PAGE) \ + m_seg[ARG] = (segment_override == SEG_CLR) ? \ + DS_REG : segment_override; \ + immed = GET_INST_BYTE(p); \ + immed |= (ULONG)GET_INST_BYTE(p) << 8; \ + if ( GET_ADDRESS_SIZE() == USE32 ) \ + { \ + immed |= (ULONG)GET_INST_BYTE(p) << 16; \ + immed |= (ULONG)GET_INST_BYTE(p) << 24; \ + } \ + m_off[ARG] = immed; \ + TYPE \ + limit_check(m_seg[ARG], m_off[ARG], (INT)1, (INT)4); \ + m_la[ARG] = GET_SR_BASE(m_seg[ARG]) + m_off[ARG]; \ + m_pa[ARG] = usr_chk_dword(m_la[ARG], PAGE); + +#define F_Od(ARG) \ + ops[ARG].sng = vir_read_dword(m_la[ARG], m_pa[ARG]); + +#define P_Od(ARG) \ + vir_write_dword(m_la[ARG], m_pa[ARG], (ULONG)ops[ARG].sng); + +/* Qw == 3 bits(5-3) of opcode byte denote segment register <<<<<<<<< */ + +#define D_Qw(ARG) ops[ARG].sng = GET_SEG3(opcode); + +#define F_Qw(ARG) ops[ARG].sng = GET_SR_SELECTOR(ops[ARG].sng); + +/* Rd == ('mode') + 'r/m' fields refer to a double word register <<<< */ + +#define D_Rd(ARG) save_id[ARG] = GET_R_M(modRM); + +#define F_Rd(ARG) ops[ARG].sng = GET_GR(save_id[ARG]); + +#define P_Rd(ARG) SET_GR(save_id[ARG], ops[ARG].sng); + +/* Td == 'reg' field of modR/M byte denotes test register <<<<<<<<<<< */ + +#define D_Td(ARG) ops[ARG].sng = GET_EEE(modRM); + +#define F_Td(ARG) ops[ARG].sng = GET_TR(ops[ARG].sng); + +/* Xd == double word string source addressing <<<<<<<<<<<<<<<<<<<<<<< */ + +#define D_Xd(ARG, TYPE, PAGE) \ + m_seg[ARG] = (segment_override == SEG_CLR) ? \ + DS_REG : segment_override; \ + if ( GET_ADDRESS_SIZE() == USE16 ) \ + m_off[ARG] = GET_SI(); \ + else /* USE32 */ \ + m_off[ARG] = GET_ESI(); \ + TYPE \ + limit_check(m_seg[ARG], m_off[ARG], (INT)1, (INT)4); \ + m_la[ARG] = GET_SR_BASE(m_seg[ARG]) + m_off[ARG]; \ + m_pa[ARG] = usr_chk_dword(m_la[ARG], PAGE); + +#define F_Xd(ARG) \ + ops[ARG].sng = vir_read_dword(m_la[ARG], m_pa[ARG]); + +#define C_Xd(ARG) \ + if ( GET_ADDRESS_SIZE() == USE16 ) \ + { \ + if ( GET_DF() ) \ + SET_SI(GET_SI() - 4); \ + else \ + SET_SI(GET_SI() + 4); \ + if ( repeat != REP_CLR ) \ + SET_CX(rep_count); \ + } \ + else /* USE32 */ \ + { \ + if ( GET_DF() ) \ + SET_ESI(GET_ESI() - 4); \ + else \ + SET_ESI(GET_ESI() + 4); \ + if ( repeat != REP_CLR ) \ + SET_ECX(rep_count); \ + } + +/* Yd == double word string 'destination' addressing <<<<<<<<<<<<<<<< */ + +#define D_Yd(ARG, TYPE, PAGE) \ + m_seg[ARG] = ES_REG; \ + if ( GET_ADDRESS_SIZE() == USE16 ) \ + m_off[ARG] = GET_DI(); \ + else /* USE32 */ \ + m_off[ARG] = GET_EDI(); \ + TYPE \ + limit_check(m_seg[ARG], m_off[ARG], (INT)1, (INT)4); \ + m_la[ARG] = GET_SR_BASE(m_seg[ARG]) + m_off[ARG]; \ + m_pa[ARG] = usr_chk_dword(m_la[ARG], PAGE); + +#define F_Yd(ARG) \ + ops[ARG].sng = vir_read_dword(m_la[ARG], m_pa[ARG]); + +#define C_Yd(ARG) \ + if ( GET_ADDRESS_SIZE() == USE16 ) \ + { \ + if ( GET_DF() ) \ + SET_DI(GET_DI() - 4); \ + else \ + SET_DI(GET_DI() + 4); \ + if ( repeat != REP_CLR ) \ + SET_CX(rep_count); \ + } \ + else /* USE32 */ \ + { \ + if ( GET_DF() ) \ + SET_EDI(GET_EDI() - 4); \ + else \ + SET_EDI(GET_EDI() + 4); \ + if ( repeat != REP_CLR ) \ + SET_ECX(rep_count); \ + } + +#define P_Yd(ARG) \ + vir_write_dword(m_la[ARG], m_pa[ARG], (IU32)ops[ARG].sng); + +#ifdef PIG +#define PIG_P_Yd(ARG) \ + cannot_vir_write_dword(m_la[ARG], m_pa[ARG], 0x00000000); +#else +#define PIG_P_Yd(ARG) \ + vir_write_dword(m_la[ARG], m_pa[ARG], (IU32)ops[ARG].sng); +#endif /* PIG */ + + +/* + * The macros for decoding and fetching the operands for a BTx instruction. + * See the file header for a description of why these are required. + */ + +#define BT_OPSw(TYPE, PAGE) \ + if ( GET_MODE(modRM) == 3 ) { \ + /* \ + * Register operand, no frigging required. \ + */ \ + \ + save_id[0] = GET_R_M(modRM); \ + m_isreg[0] = TRUE; \ + D_Gw(1) \ + F_Ew(0) \ + F_Gw(1) \ + } else { \ + D_Gw(1) \ + F_Gw(1) \ + m_isreg[0] = FALSE; \ + d_mem(modRM, &p, segment_override, \ + &m_seg[0], &m_off[0]); \ + m_off[0] += (ops[1].sng >> 3) & ~1; \ + TYPE \ + limit_check(m_seg[0], m_off[0], (INT)1, (INT)2); \ + m_la[0] = GET_SR_BASE(m_seg[0]) + m_off[0]; \ + m_pa[0] = usr_chk_word(m_la[0], PAGE); \ + F_Ew(0) \ + } \ + +#define BT_OPSd(TYPE, PAGE) \ + if ( GET_MODE(modRM) == 3 ) { \ + /* \ + * Register operand, no frigging required. \ + */ \ + \ + save_id[0] = GET_R_M(modRM); \ + m_isreg[0] = TRUE; \ + D_Gd(1) \ + F_Ed(0) \ + F_Gd(1) \ + } else { \ + D_Gd(1) \ + F_Gd(1) \ + m_isreg[0] = FALSE; \ + d_mem(modRM, &p, segment_override, \ + &m_seg[0], &m_off[0]); \ + m_off[0] += (ops[1].sng >> 3) & ~3; \ + TYPE \ + limit_check(m_seg[0], m_off[0], (INT)1, (INT)4); \ + m_la[0] = GET_SR_BASE(m_seg[0]) + m_off[0]; \ + m_pa[0] = usr_chk_dword(m_la[0], PAGE); \ + F_Ed(0) \ + } \ + +/* <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ +/* 486 only */ +/* <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ + + +/* Mm == address of memory operand <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ + +#define D_Mm(ARG) \ + if ( GET_MODE(modRM) == 3 ) \ + Int6(); /* Register operand not allowed */ \ + else \ + { \ + d_mem(modRM, &p, segment_override, &m_seg[ARG], \ + &m_off[ARG]); \ + m_la[ARG] = GET_SR_BASE(m_seg[ARG]) + m_off[ARG]; \ + } + +#define F_Mm(ARG) ops[ARG].sng = m_la[ARG]; diff --git a/private/mvdm/softpc.new/base/ccpu386/c_page.c b/private/mvdm/softpc.new/base/ccpu386/c_page.c new file mode 100644 index 000000000..540e554f0 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_page.c @@ -0,0 +1,857 @@ +/*[ + +c_page.c + +LOCAL CHAR SccsID[]="@(#)c_page.c 1.10 02/28/95"; + +Paging Support. +--------------- + +]*/ + + +#include + +#include +#include /* SoftPC types */ +#include /* C CPU definitions-interfaces */ +#include +#include +#include +#include +#include +#include +#include +#include /* our interface */ +#include /* CPU - Physical Memory interface */ +#include /* Translation Lookaside Buffer interface */ +#include /* CPU <-> sas interface */ +#include /* Debugging Regs and Breakpoint interface */ + + +/*[ + + Various levels of interface are provided to the paging system (to + allow fairly optimal emulation) these levels are:- + + spr_chk_ Checks Supervisor Access to given data item, caller + aware that #PF may occur. 'A/D' bits will be set. No + other action is taken. + + usr_chk_ Checks User Access to given data item, caller aware + that #PF may occur. 'A/D' bits will be set. No other + action is taken. + + spr_ Perform Supervisor Access, caller aware that #PF may + occur. Action (Read/Write) is performed immediately. + Will update A/D bits. + + vir_ Perform Virtual Memory Operation (Read/Write). No checks + are made and no fault will be generated, only call after + a spr_chk or usr_chk function. + + NB. At present no super optimal vir_ implementation + exists. If a spr_chk or usr_chk function is not + called before a vir_ function, then the vir_ + function may cause #PF, this condition will become + a fatal error in an optimised implementation. + For the moment we assume that after a 'chk' call it + is virtually 100% certain that the 'vir' call will + get a cache hit. + +]*/ + +#define LAST_DWORD_ON_PAGE 0xffc +#define LAST_WORD_ON_PAGE 0xffe + +#define OFFSET_MASK 0xfff + +#ifdef PIG +LOCAL VOID cannot_spr_write_byte IPT2( LIN_ADDR, lin_addr, IU8, valid_mask); +LOCAL VOID cannot_spr_write_word IPT2( LIN_ADDR, lin_addr, IU16, valid_mask); +LOCAL VOID cannot_spr_write_dword IPT2( LIN_ADDR, lin_addr, IU32, valid_mask); +#endif /* PIG */ + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Check Supervisor Byte access. */ +/* May cause #PF. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL PHY_ADDR +spr_chk_byte + +IFN2( + LIN_ADDR, lin_addr, /* Linear Address */ + ISM32, access /* Read(PG_R) or Write(PG_W) */ + ) + + + { + if ( GET_PG() == 1 ) + { + access |= PG_S; + lin_addr = lin2phy(lin_addr, access); + } + + return lin_addr; + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Check Supervisor Double Word access. */ +/* May cause #PF. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +spr_chk_dword + +IFN2( + LIN_ADDR, lin_addr, /* Linear Address */ + ISM32, access /* Read(PG_R) or Write(PG_W) */ + ) + + + { + if ( GET_PG() == 1 ) + { + access |= PG_S; + (VOID)lin2phy(lin_addr, access); + if ( (lin_addr & OFFSET_MASK) > LAST_DWORD_ON_PAGE ) + (VOID)lin2phy(lin_addr + 3, access); + } + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Check Supervisor Word access. */ +/* May cause #PF. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +spr_chk_word + +IFN2( + LIN_ADDR, lin_addr, /* Linear Address */ + ISM32, access /* Read(PG_R) or Write(PG_W) */ + ) + + + { + if ( GET_PG() == 1 ) + { + access |= PG_S; + (VOID)lin2phy(lin_addr, access); + if ( (lin_addr & OFFSET_MASK) > LAST_WORD_ON_PAGE ) + (VOID)lin2phy(lin_addr + 1, access); + } + } + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Check User Byte access. */ +/* May cause #PF. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL IU32 +usr_chk_byte + +IFN2( + LIN_ADDR, lin_addr, /* Linear Address */ + ISM32, access /* Read(PG_R) or Write(PG_W) */ + ) + + + { + PHY_ADDR phy_addr; + + phy_addr = lin_addr; + + if ( GET_PG() == 1 ) + { + if ( GET_CPL() == 3 ) + access |= PG_U; + else + access |= PG_S; + + phy_addr = lin2phy(lin_addr, access); + } + + return phy_addr; + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Check User Double Word access. */ +/* May cause #PF. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL IU32 +usr_chk_dword + +IFN2( + LIN_ADDR, lin_addr, /* Linear Address */ + ISM32, access /* Read(PG_R) or Write(PG_W) */ + ) + + + { + PHY_ADDR phy_addr; + + phy_addr = lin_addr; + + if ( GET_PG() == 1 ) + { + if ( GET_CPL() == 3 ) + access |= PG_U; + else + access |= PG_S; + + phy_addr = lin2phy(lin_addr, access); + + if ( (lin_addr & OFFSET_MASK) > LAST_DWORD_ON_PAGE ) + { + (VOID)lin2phy(lin_addr + 3, access); + phy_addr = NO_PHYSICAL_MAPPING; + } + } + + return phy_addr; + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Check User Word access. */ +/* May cause #PF. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL IU32 +usr_chk_word + +IFN2( + LIN_ADDR, lin_addr, /* Linear Address */ + ISM32, access /* Read(PG_R) or Write(PG_W) */ + ) + + + { + PHY_ADDR phy_addr; + + phy_addr = lin_addr; + + if ( GET_PG() == 1 ) + { + if ( GET_CPL() == 3 ) + access |= PG_U; + else + access |= PG_S; + + phy_addr = lin2phy(lin_addr, access); + if ( (lin_addr & OFFSET_MASK) > LAST_WORD_ON_PAGE ) + { + (VOID)lin2phy(lin_addr + 1, access); + phy_addr = NO_PHYSICAL_MAPPING; + } + } + + return phy_addr; + } + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Supervisor Read a Byte from memory. */ +/* May cause #PF. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL IU8 +spr_read_byte + +IFN1( + LIN_ADDR, lin_addr /* Linear Address */ + ) + + + { + if ( GET_PG() == 1 ) + { + lin_addr = lin2phy(lin_addr, PG_R | PG_S); + } + + return phy_read_byte(lin_addr); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Supervisor Read a Double Word from memory. */ +/* May cause #PF. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL IU32 +spr_read_dword + +IFN1( + LIN_ADDR, lin_addr /* Linear Address */ + ) + + + { + IU16 low_word; + IU16 high_word; + + if ( GET_PG() == 1 ) + { + if ( (lin_addr & OFFSET_MASK) > LAST_DWORD_ON_PAGE ) + { + /* Spans two pages */ + low_word = spr_read_word(lin_addr); + high_word = spr_read_word(lin_addr + 2); + return (IU32)high_word << 16 | low_word; + } + else + { + lin_addr = lin2phy(lin_addr, PG_R | PG_S); + } + } + + return phy_read_dword(lin_addr); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Supervisor Read a Word from memory. */ +/* May cause #PF. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL IU16 +spr_read_word + +IFN1( + LIN_ADDR, lin_addr /* Linear Address */ + ) + + + { + IU8 low_byte; + IU8 high_byte; + + if ( GET_PG() == 1 ) + { + if ( (lin_addr & OFFSET_MASK) > LAST_WORD_ON_PAGE ) + { + /* Spans two pages */ + low_byte = spr_read_byte(lin_addr); + high_byte = spr_read_byte(lin_addr + 1); + return (IU16)high_byte << 8 | low_byte; + } + else + { + lin_addr = lin2phy(lin_addr, PG_R | PG_S); + } + } + + return phy_read_word(lin_addr); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Supervisor Write a Byte to memory. */ +/* May cause #PF. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +spr_write_byte + +IFN2( + LIN_ADDR, lin_addr, /* Linear Address */ + IU8, data + ) + + + { + if ( GET_PG() == 1 ) + { + lin_addr = lin2phy(lin_addr, PG_W | PG_S); + } + + phy_write_byte(lin_addr, data); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Supervisor Write a Double Word to memory. */ +/* May cause #PF. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +spr_write_dword + +IFN2( + LIN_ADDR, lin_addr, /* Linear Address */ + IU32, data + ) + + + { + if ( GET_PG() == 1 ) + { + if ( (lin_addr & OFFSET_MASK) > LAST_DWORD_ON_PAGE ) + { + /* Spans two pages */ + spr_write_word(lin_addr, (IU16)data); + spr_write_word(lin_addr + 2, (IU16)(data >> 16)); + return; + } + else + { + lin_addr = lin2phy(lin_addr, PG_W | PG_S); + } + } + + phy_write_dword(lin_addr, data); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Supervisor Write a Word to memory. */ +/* May cause #PF. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +spr_write_word + +IFN2( + LIN_ADDR, lin_addr, /* Linear Address */ + IU16, data + ) + + + { + if ( GET_PG() == 1 ) + { + if ( (lin_addr & OFFSET_MASK) > LAST_WORD_ON_PAGE ) + { + /* Spans two pages */ + spr_write_byte(lin_addr, (IU8)data); + spr_write_byte(lin_addr + 1, (IU8)(data >> 8)); + return; + } + else + { + lin_addr = lin2phy(lin_addr, PG_W | PG_S); + } + } + + phy_write_word(lin_addr, data); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Virtual Read Bytes from memory. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL void +vir_read_bytes + +IFN4( + IU8 *, destbuff, /* Where the data goes */ + LIN_ADDR, lin_addr, /* Linear Address */ + PHY_ADDR, phy_addr, /* Physical Address, if non zero */ + IU32, num_bytes + ) + { + if ( nr_data_break ) + { + check_for_data_exception(lin_addr, D_R, D_BYTE); + } + if ( phy_addr ) { + phy_addr += (num_bytes-1); + while (num_bytes--) { + *destbuff++ = phy_read_byte(phy_addr); + phy_addr--; + } + } else { + lin_addr += (num_bytes-1); + while (num_bytes--) { + *destbuff++ = spr_read_byte(lin_addr); + lin_addr--; + } + } +} + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Virtual Read a Byte from memory. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL IU8 +vir_read_byte + +IFN2( + LIN_ADDR, lin_addr, /* Linear Address */ + PHY_ADDR, phy_addr /* Physical Address, if non zero */ + ) + + + { + if ( nr_data_break ) + { + check_for_data_exception(lin_addr, D_R, D_BYTE); + } + + if ( phy_addr ) + { + return phy_read_byte(phy_addr); + } + else + { + return spr_read_byte(lin_addr); + } + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Virtual Read a Double Word from memory. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL IU32 +vir_read_dword + +IFN2( + LIN_ADDR, lin_addr, /* Linear Address */ + PHY_ADDR, phy_addr /* Physical Address, if non zero */ + ) + + + { + if ( nr_data_break ) + { + check_for_data_exception(lin_addr, D_R, D_DWORD); + } + + if ( phy_addr ) + { + return phy_read_dword(phy_addr); + } + else + { + return spr_read_dword(lin_addr); + } + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Virtual Read a Word from memory. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL IU16 +vir_read_word + +IFN2( + LIN_ADDR, lin_addr, /* Linear Address */ + PHY_ADDR, phy_addr /* Physical Address, if non zero */ + ) + + + { + if ( nr_data_break ) + { + check_for_data_exception(lin_addr, D_R, D_WORD); + } + + if ( phy_addr ) + { + return phy_read_word(phy_addr); + } + else + { + return spr_read_word(lin_addr); + } + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Virtual Write Bytes to memory. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +vir_write_bytes + +IFN4( + LIN_ADDR, lin_addr, /* Linear Address */ + PHY_ADDR, phy_addr, /* Physical Address, if non zero */ + IU8 *, data, /* Pointer to data to be written */ + IU32, num_bytes /* Number of bytes to act on */ + ) + { + IU8 data_byte; + + check_D(lin_addr, num_bytes); + if ( nr_data_break ) { + check_for_data_exception(lin_addr, D_W, D_BYTE); + } + if ( phy_addr ) { + phy_addr += (num_bytes - 1); + while (num_bytes--) { + data_byte = *data++; + phy_write_byte(phy_addr, data_byte); + phy_addr--; + } + } else { + lin_addr += (num_bytes - 1); + while (num_bytes--) { + data_byte = *data++; + spr_write_byte(lin_addr, data_byte); + lin_addr--; + } + } +} + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Virtual Write a Byte to memory. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +vir_write_byte + +IFN3( + LIN_ADDR, lin_addr, /* Linear Address */ + PHY_ADDR, phy_addr, /* Physical Address, if non zero */ + IU8, data + ) + + + { + check_D(lin_addr, 1); + if ( nr_data_break ) + { + check_for_data_exception(lin_addr, D_W, D_BYTE); + } + + if ( phy_addr ) + { + phy_write_byte(phy_addr, data); + } + else + { + spr_write_byte(lin_addr, data); + } + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Virtual Write a Double Word to memory. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +vir_write_dword + +IFN3( + LIN_ADDR, lin_addr, /* Linear Address */ + PHY_ADDR, phy_addr, /* Physical Address, if non zero */ + IU32, data + ) + + + { + check_D(lin_addr, 4); + if ( nr_data_break ) + { + check_for_data_exception(lin_addr, D_W, D_DWORD); + } + + if ( phy_addr ) + { + phy_write_dword(phy_addr, data); + } + else + { + spr_write_dword(lin_addr, data); + } + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Virtual Write a Word to memory. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +vir_write_word + +IFN3( + LIN_ADDR, lin_addr, /* Linear Address */ + PHY_ADDR, phy_addr, /* Physical Address, if non zero */ + IU16, data + ) + + + { + check_D(lin_addr, 2); + if ( nr_data_break ) + { + check_for_data_exception(lin_addr, D_W, D_WORD); + } + + if ( phy_addr ) + { + phy_write_word(phy_addr, data); + } + else + { + spr_write_word(lin_addr, data); + } + } + + + +#ifdef PIG +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Supervisor Write a Byte to memory */ +/* But when Pigging INSD we have no data to write. Just flag address. */ +/* May cause #PF. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +LOCAL VOID +cannot_spr_write_byte + +IFN2( + LIN_ADDR, lin_addr, /* Linear Address */ + IU8, valid_mask + ) + + + { + if ( GET_PG() == 1 ) + { + lin_addr = lin2phy(lin_addr, PG_W | PG_S); + } + + cannot_phy_write_byte(lin_addr, valid_mask); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Supervisor Write a Double Word to memory */ +/* But when Pigging INSD we have no data to write. Just flag address. */ +/* May cause #PF. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +LOCAL VOID +cannot_spr_write_dword + +IFN2( + LIN_ADDR, lin_addr, /* Linear Address */ + IU32, valid_mask + ) + + + { + if ( GET_PG() == 1 ) + { + if ( (lin_addr & OFFSET_MASK) > LAST_DWORD_ON_PAGE ) + { + /* Spans two pages */ + cannot_spr_write_word(lin_addr, valid_mask & 0xffff); + cannot_spr_write_word(lin_addr + 2, valid_mask >> 16); + return; + } + else + { + lin_addr = lin2phy(lin_addr, PG_W | PG_S); + } + } + + cannot_phy_write_dword(lin_addr, valid_mask); + } +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Supervisor Write a Word to memory. */ +/* But when Pigging INSW we have no data to write. Just flag address. */ +/* May cause #PF. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +LOCAL VOID +cannot_spr_write_word + +IFN2( + LIN_ADDR, lin_addr, /* Linear Address */ + IU16, valid_mask + ) + + + { + if ( GET_PG() == 1 ) + { + if ( (lin_addr & OFFSET_MASK) > LAST_WORD_ON_PAGE ) + { + /* Spans two pages */ + cannot_spr_write_byte(lin_addr, valid_mask & 0xff); + cannot_spr_write_byte(lin_addr + 1, valid_mask >> 8); + return; + } + else + { + lin_addr = lin2phy(lin_addr, PG_W | PG_S); + } + } + + cannot_phy_write_word(lin_addr, valid_mask); + } + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Virtual Write a Byte to memory. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +cannot_vir_write_byte + +IFN3( + LIN_ADDR, lin_addr, /* Linear Address */ + LIN_ADDR, phy_addr, /* Physical Address, if non zero */ + IU8, valid_mask + ) + + + { + check_D(lin_addr, 1); + if ( nr_data_break ) + { + check_for_data_exception(lin_addr, D_W, D_BYTE); + } + + if ( phy_addr ) + { + cannot_phy_write_byte(phy_addr, valid_mask); + } + else + { + cannot_spr_write_byte(lin_addr, valid_mask); + } + } +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Virtual Write a Double Word to memory. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +cannot_vir_write_dword + +IFN3( + LIN_ADDR, lin_addr, /* Linear Address */ + PHY_ADDR, phy_addr, /* Physical Address, if non zero */ + IU32, valid_mask + ) + + + { + check_D(lin_addr, 4); + if ( nr_data_break ) + { + check_for_data_exception(lin_addr, D_W, D_DWORD); + } + + if ( phy_addr ) + { + cannot_phy_write_dword(phy_addr, valid_mask); + } + else + { + cannot_spr_write_dword(lin_addr, valid_mask); + } + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Virtual Write a Word to memory. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +cannot_vir_write_word + +IFN3( + LIN_ADDR, lin_addr, /* Linear Address */ + PHY_ADDR, phy_addr, /* Physical Address, if non zero */ + IU16, valid_mask + ) + + + { + check_D(lin_addr, 2); + if ( nr_data_break ) + { + check_for_data_exception(lin_addr, D_W, D_WORD); + } + + if ( phy_addr ) + { + cannot_phy_write_word(phy_addr, valid_mask); + } + else + { + cannot_spr_write_word(lin_addr, valid_mask); + } + } +#endif /* PIG */ + + diff --git a/private/mvdm/softpc.new/base/ccpu386/c_page.h b/private/mvdm/softpc.new/base/ccpu386/c_page.h new file mode 100644 index 000000000..1fa17eefb --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_page.h @@ -0,0 +1,226 @@ +/*[ + +c_page.h + +Paging Support. +--------------- + +LOCAL CHAR SccsID[]="@(#)c_page.h 1.7 02/28/95"; + +]*/ + + +/* + Page Access Types. + */ +#define PG_R 0x0 /* Read */ +#define PG_W 0x1 /* Write */ + +/* + Supervisor Memory Access Check Functions. + + Will Check Access as per Supervisor (taking #PF if reqd.), 'A/D' bits + will be set in the Page Entries, no other action occurs. + Normally these routines will be followed by vir_.. calls. + */ +IMPORT IU32 spr_chk_byte + +IPT2( + IU32, lin_addr, + ISM32, access_type + + ); + +IMPORT VOID spr_chk_dword + +IPT2( + IU32, lin_addr, + ISM32, access_type + + ); + +IMPORT VOID spr_chk_word + +IPT2( + IU32, lin_addr, + ISM32, access_type + + ); + + +/* + User Memory Access Check Functions. + + Will Check Access as per User (taking #PF if reqd.), 'A/D' bits will + be set in the Page Entries, no other action occurs. + Normally these routines will be followed by vir_.. calls. + */ +IMPORT IU32 usr_chk_byte + +IPT2( + IU32, lin_addr, + ISM32, access_type + + ); + +IMPORT IU32 usr_chk_dword + +IPT2( + IU32, lin_addr, + ISM32, access_type + + ); + +IMPORT IU32 usr_chk_word + +IPT2( + IU32, lin_addr, + ISM32, access_type + + ); + + +/* + Supervisor Memory Access Functions. + + Will Check Access as per Supervisor (taking #PF if reqd.), 'A/D' + bits will be set in the Page Entries, Map Address and Perform + Read or Write. + */ +IMPORT IU8 spr_read_byte + +IPT1( + IU32, lin_addr + + ); + +IMPORT IU32 spr_read_dword + +IPT1( + IU32, lin_addr + + ); + +IMPORT IU16 spr_read_word + +IPT1( + IU32, lin_addr + + ); + +IMPORT VOID spr_write_byte + +IPT2( + IU32, lin_addr, + IU8, data + + ); + +IMPORT VOID spr_write_dword + +IPT2( + IU32, lin_addr, + IU32, data + + ); + +IMPORT VOID spr_write_word + +IPT2( + IU32, lin_addr, + IU16, data + + ); + + +/* + Virtual Memory Access Functions. + + No Checks are made (assumed already done), just Perform Read or + Write. + This is also the point at which data breakpoints are checked. + */ + +#define NO_PHYSICAL_MAPPING 0 /* Indicates no physical address is + available, the linear address will be + re-mapped. */ + +IMPORT IU8 vir_read_byte + +IPT2( + IU32, lin_addr, + IU32, phy_addr + + ); + +IMPORT IU32 vir_read_dword + +IPT2( + IU32, lin_addr, + IU32, phy_addr + + ); + +IMPORT IU16 vir_read_word + +IPT2( + IU32, lin_addr, + IU32, phy_addr + + ); + +IMPORT VOID vir_write_byte + +IPT3( + IU32, lin_addr, + IU32, phy_addr, + IU8, data + + ); + +IMPORT VOID vir_write_dword + +IPT3( + IU32, lin_addr, + IU32, phy_addr, + IU32, data + + ); + +IMPORT VOID vir_write_word + +IPT3( + IU32, lin_addr, + IU32, phy_addr, + IU16, data + + ); + +#ifdef PIG +IMPORT VOID cannot_vir_write_byte + +IPT3( + IU32, lin_addr, + IU32, phy_addr, + IU8, valid_mask + ); + +IMPORT VOID cannot_vir_write_dword + +IPT3( + IU32, lin_addr, + IU32, phy_addr, + IU32, valid_mask + ); + +IMPORT VOID cannot_vir_write_word + +IPT3( + IU32, lin_addr, + IU32, phy_addr, + IU16, valid_mask + ); +#endif /* PIG */ + +extern void vir_write_bytes IPT4(LIN_ADDR, lin_addr,PHY_ADDR, phy_addr, IU8 *, data, IU32, num_bytes); +extern void vir_read_bytes IPT4(IU8 *, destbuff, LIN_ADDR, lin_addr, PHY_ADDR, phy_addr, IU32, num_bytes); diff --git a/private/mvdm/softpc.new/base/ccpu386/c_prot.c b/private/mvdm/softpc.new/base/ccpu386/c_prot.c new file mode 100644 index 000000000..074ed5ce3 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_prot.c @@ -0,0 +1,287 @@ +/*[ + +c_prot.c + +LOCAL CHAR SccsID[]="@(#)c_prot.c 1.7 01/19/95"; + +Protected Mode Support (Misc). +------------------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Check selector is valid for load into SS register. */ +/* Only invoked in protected mode. */ +/* Take GP if segment not valid. */ +/* Take SF if segment not present. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +check_SS + +IFN4( + IU16, selector, /* (I) 16-bit selector to stack segment */ + ISM32, privilege, /* (I) privilege level to check against */ + IU32 *, descr_addr, /* (O) address of stack segment descriptor */ + CPU_DESCR *, entry /* (O) the decoded descriptor */ + ) + + + { + /* must be within GDT or LDT */ + if ( selector_outside_GDT_LDT(selector, descr_addr) ) + GP(selector, FAULT_CHECKSS_SELECTOR); + + read_descriptor_linear(*descr_addr, entry); + + /* must be writable data */ + switch ( descriptor_super_type(entry->AR) ) + { + case EXPANDUP_WRITEABLE_DATA: + case EXPANDDOWN_WRITEABLE_DATA: + break; /* good type */ + + default: + GP(selector, FAULT_CHECKSS_BAD_SEG_TYPE); /* bad type */ + } + + /* access check requires RPL == DPL == privilege */ + if ( GET_SELECTOR_RPL(selector) != privilege || + GET_AR_DPL(entry->AR) != privilege ) + GP(selector, FAULT_CHECKSS_ACCESS); + + /* finally it must be present */ + if ( GET_AR_P(entry->AR) == NOT_PRESENT ) + SF(selector, FAULT_CHECKSS_NOTPRESENT); + + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Get SS:(E)SP for a given privilege from the TSS */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +get_stack_selector_from_TSS + +IFN3( + IU32, priv, /* (I) priv level for which stack is reqd */ + IU16 *, new_ss, /* (O) SS as retrieved from TSS */ + IU32 *, new_sp /* (O) (E)SP as retrieved from TSS */ + ) + + + { + IU32 address; + + if ( GET_TR_AR_SUPER() == BUSY_TSS ) + { + /* 286 TSS */ + switch ( priv ) + { + case 0: address = 0x02; break; + case 1: address = 0x06; break; + case 2: address = 0x0a; break; + } + + address += GET_TR_BASE(); + + *new_sp = (IU32)spr_read_word(address); + *new_ss = spr_read_word(address+2); + } + else + { + /* 386 TSS */ + switch ( priv ) + { + case 0: address = 0x04; break; + case 1: address = 0x0c; break; + case 2: address = 0x14; break; + } + + address += GET_TR_BASE(); + + *new_sp = spr_read_dword(address); + *new_ss = spr_read_word(address+4); + } + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Check a Data Segment Register (DS, ES, FS, GS) during */ +/* a Privilege Change. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +load_data_seg_new_privilege + +IFN1( + ISM32, indx /* Segment Register identifier */ + ) + + + { + IU16 selector; /* selector to be examined */ + IU32 descr; /* ... its associated decriptor location */ + ISM32 dpl; /* ... its associated DPL */ + BOOL valid; /* selector validity */ + + selector = GET_SR_SELECTOR(indx); /* take local copy */ + + if ( !selector_outside_GDT_LDT(selector, &descr) ) + { + valid = TRUE; /* at least its in table */ + + /* Type must be ok, else it would not have been loaded. */ + + /* for data and non-conforming code the access check applies */ + if ( GET_SR_AR_C(indx) == 0 ) + { + /* The access check is:- DPL >= CPL and DPL >= RPL */ + dpl = GET_SR_AR_DPL(indx); + if ( dpl >= GET_CPL() && dpl >= GET_SELECTOR_RPL(selector) ) + ; /* ok */ + else + valid = FALSE; /* fails privilege check */ + } + } + else + { + valid = FALSE; /* not in table */ + } + + if ( !valid ) + { + /* segment can't be seen at new privilege */ + SET_SR_SELECTOR(indx, 0); + SET_SR_AR_W(indx, 0); /* deny write */ + SET_SR_AR_R(indx, 0); /* deny read */ + + /* the following lines were added to make the C-CPU act like the Soft-486 + * in this respect... an investigation is under way to see how the real + * i486 behaves - this code may need to be changed in the future + */ + SET_SR_BASE(indx, 0); + SET_SR_LIMIT(indx, 0); + } + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Validate a stack segment selector, during a stack change */ +/* Take #TS(selector) if not valid stack selector */ +/* Take #SF(selector) if segment not present */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +validate_SS_on_stack_change + +IFN4( + IU32, priv, /* (I) privilege level to check against */ + IU16, selector, /* (I) selector to be checked */ + IU32 *, descr, /* (O) address of related descriptor */ + CPU_DESCR *, entry /* (O) the decoded descriptor */ + ) + + + { + if ( selector_outside_GDT_LDT(selector, descr) ) + TS(selector, FAULT_VALSS_CHG_SELECTOR); + + read_descriptor_linear(*descr, entry); + + /* do access check */ + if ( GET_SELECTOR_RPL(selector) != priv || + GET_AR_DPL(entry->AR) != priv ) + TS(selector, FAULT_VALSS_CHG_ACCESS); + + /* do type check */ + switch ( descriptor_super_type(entry->AR) ) + { + case EXPANDUP_WRITEABLE_DATA: + case EXPANDDOWN_WRITEABLE_DATA: + break; /* ok */ + + default: + TS(selector, FAULT_VALSS_CHG_BAD_SEG_TYPE); /* wrong type */ + } + + /* finally check it is present */ + if ( GET_AR_P(entry->AR) == NOT_PRESENT ) + SF(selector, FAULT_VALSS_CHG_NOTPRESENT); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Validate TSS selector. */ +/* Take #GP(selector) or #TS(selector) if not valid TSS. */ +/* Take #NP(selector) if TSS not present */ +/* Return super type of TSS decscriptor. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL ISM32 +validate_TSS + +IFN3( + IU16, selector, /* (I) selector to be checked */ + IU32 *, descr_addr, /* (O) address of related descriptor */ + BOOL, is_switch /* (I) if true we are in task switch */ + ) + + + { + BOOL is_ok = TRUE; + IU8 AR; + ISM32 super; + + /* must be in GDT */ + if ( selector_outside_GDT(selector, descr_addr) ) + { + is_ok = FALSE; + } + else + { + /* is it really an available TSS segment (is_switch false) or + is it really a busy TSS segment (is_switch true) */ + AR = spr_read_byte((*descr_addr)+5); + super = descriptor_super_type((IU16)AR); + if ( ( !is_switch && + (super == AVAILABLE_TSS || super == XTND_AVAILABLE_TSS) ) + || + ( is_switch && + (super == BUSY_TSS || super == XTND_BUSY_TSS) ) ) + ; /* ok */ + else + is_ok = FALSE; + } + + /* handle invalid TSS */ + if ( !is_ok ) + { + if ( is_switch ) + TS(selector, FAULT_VALTSS_SELECTOR); + else + GP(selector, FAULT_VALTSS_SELECTOR); + } + + /* must be present */ + if ( GET_AR_P(AR) == NOT_PRESENT ) + NP(selector, FAULT_VALTSS_NP); + + return super; + } diff --git a/private/mvdm/softpc.new/base/ccpu386/c_prot.h b/private/mvdm/softpc.new/base/ccpu386/c_prot.h new file mode 100644 index 000000000..fe61a1317 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_prot.h @@ -0,0 +1,56 @@ +/*[ + +c_prot.h + +Protected Mode Support (Misc). +------------------------------ + +LOCAL CHAR SccsID[]="@(#)c_prot.h 1.4 02/09/94"; + +]*/ + + +IMPORT VOID check_SS + +IPT4( + IU16, selector, + ISM32, privilege, + IU32 *, descr_addr, + CPU_DESCR *, entry + + ); + +IMPORT VOID get_stack_selector_from_TSS + +IPT3( + IU32, priv, + IU16 *, new_ss, + IU32 *, new_sp + + ); + +IMPORT VOID load_data_seg_new_privilege + +IPT1( + ISM32, indx + + ); + +IMPORT VOID validate_SS_on_stack_change + +IPT4( + IU32, priv, + IU16, selector, + IU32 *, descr, + CPU_DESCR *, entry + + ); + +IMPORT ISM32 validate_TSS + +IPT3( + IU16, selector, + IU32 *, descr_addr, + BOOL, is_switch + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/c_reg.c b/private/mvdm/softpc.new/base/ccpu386/c_reg.c new file mode 100644 index 000000000..d6541729a --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_reg.c @@ -0,0 +1,1879 @@ +/*[ + +c_reg.c + +LOCAL CHAR SccsID[]="@(#)c_reg.c 1.24 02/13/95 Copyright Insignia Solutions Ltd."; + +Provide External Interface to CPU Registers. +-------------------------------------------- + +]*/ + +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + /* NB our own interface is actually defined + in 'cpu.h', however we can not include it + here as it would redefine all the internal + macros. This is the only file were the + internal register definitions meet the + external definitions. Obviously the external + definitions here and in 'cpu.h' must aggree + with each other. We just can't get the + compiler to prove it for us! */ +#include +#include + +#include +#include +#ifdef PIG +#include +#define AR_FIXUP \ +{ \ + if (GLOBAL_AR_FixupWanted) \ + { \ + if (GET_PE()==0) \ + return 0x93; \ + if (GET_VM()!=0) \ + return 0xF3; \ + } \ +} +#else /* PIG */ +#define AR_FIXUP +#endif /* PIG */ + +/* + Prototype our internal functions. + */ +LOCAL IU16 get_seg_ar IPT1(ISM32, indx); + +LOCAL VOID set_seg_ar IPT2(ISM32, indx, IU16, val); + +LOCAL IU32 get_seg_limit IPT1(ISM32, indx); + +LOCAL VOID set_seg_limit IPT2(ISM32, indx, IU32, val); + +/* + ===================================================================== + INTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Get segment register access rights. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +LOCAL IU16 +get_seg_ar + +IFN1( + ISM32, indx /* index to segment register */ + ) + + + { + IU16 ar; + + /* + Note we return only the essentials that describe the current + semantics we are applying to the segment, not necessarily the + access rights actually loaded. However the value provided may be + used to restore the segment register via the associated 'set' + function. + + We don't provide G or AVL. P and A are assumed to be set. + + We do provide DPL, X(B), E, W for DATA(SS,DS,ES,FS,GS) segments. + We do provide DPL, X(D), C, R for CODE(CS) or DATA(SS,DS,ES,FS,GS) + segments. + */ + + if ( GET_SR_AR_W(indx) == 0 && GET_SR_AR_R(indx) == 0 && indx != CS_REG ) + return (IU16)0; /* Invalid */ + + /* Conforming attribute or CS_REG with non writeable segment + means CODE segment */ + if ( GET_SR_AR_C(indx) || (indx == CS_REG && !GET_SR_AR_W(indx)) ) + { + /* Set Bits 4 and 3 and output C and R attributes */ + ar = BIT4_MASK | BIT3_MASK | + GET_SR_AR_C(indx) << 2 | + GET_SR_AR_R(indx) << 1; + } + else /* DATA segment */ + { + /* Set Bit 4 and output E and W attributes */ + ar = BIT4_MASK | + GET_SR_AR_E(indx) << 2 | + GET_SR_AR_W(indx) << 1; + } + + /* Add in DPL and X attributes */ + ar = ar | GET_SR_AR_DPL(indx) << 5 | GET_SR_AR_X(indx) << 14; + + /* Add in P and A (always set) */ + ar = ar | BIT7_MASK | BIT0_MASK; + + return ar; + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Set segment register access rights. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +LOCAL VOID +set_seg_ar + +IFN2( + ISM32, indx, /* index to segment register */ + IU16, val + ) + + + { + /* + Note we expect to be given an access rights similar to the one + provided by the get_seg_ar() function. We extract the essential + information from it into our internal variables. + + We ignore P and A, and Bit 4. + + We use DPL, X(B), E, W for CODE(CS) or DATA(SS,DS,ES,FS,GS) + segments. + We use DPL, X(D), C, R for CODE(CS) segments. + */ + + if ( val == 0x0 ) + { + /* Invalid */ + SET_SR_AR_R(indx, 0); /* !read */ + SET_SR_AR_W(indx, 0); /* !write */ + return; + } + + SET_SR_AR_X(indx, GET_AR_X(val)); + SET_SR_AR_DPL(indx, GET_AR_DPL(val)); + + if ( val & BIT3_MASK ) + { + /* CODE segment */ + SET_SR_AR_W(indx, 0); /* !write */ + SET_SR_AR_E(indx, 0); /* expand up */ + SET_SR_AR_R(indx, GET_AR_R(val)); + SET_SR_AR_C(indx, GET_AR_C(val)); + } + else + { + /* DATA segment */ + SET_SR_AR_R(indx, 1); /* readable */ + SET_SR_AR_C(indx, 0); /* !conform */ + SET_SR_AR_W(indx, GET_AR_W(val)); + SET_SR_AR_E(indx, GET_AR_E(val)); + } + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Get segment register limit. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +LOCAL IU32 +get_seg_limit + +IFN1( + ISM32, indx /* index to segment register */ + ) + + + { + /* Note limit already expanded to take account of G bit */ + return GET_SR_LIMIT(indx); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Set segment register limit. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +LOCAL VOID +set_seg_limit + +IFN2( + ISM32, indx, /* index to segment register */ + IU32, val /* new value for limit */ + ) + + + { + /* Note limit assumed already expanded to take account of G bit */ + SET_SR_LIMIT(indx, val); + } + + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Provide Access to Byte Registers. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +GLOBAL IU8 +c_getAL() + { + return (IU8)GET_AL(); + } + +GLOBAL IU8 +c_getCL() + { + return (IU8)GET_CL(); + } + +GLOBAL IU8 +c_getDL() + { + return (IU8)GET_DL(); + } + +GLOBAL IU8 +c_getBL() + { + return (IU8)GET_BL(); + } + +GLOBAL IU8 +c_getAH() + { + return (IU8)GET_AH(); + } + +GLOBAL IU8 +c_getCH() + { + return (IU8)GET_CH(); + } + +GLOBAL IU8 +c_getDH() + { + return (IU8)GET_DH(); + } + +GLOBAL IU8 +c_getBH() + { + return (IU8)GET_BH(); + } + +GLOBAL VOID +c_setAL + +IFN1( + IU8, val + ) + + + { + SET_AL(val); + } + +GLOBAL VOID +c_setCL + +IFN1( + IU8, val + ) + + + { + SET_CL(val); + } + +GLOBAL VOID +c_setDL + +IFN1( + IU8, val + ) + + + { + SET_DL(val); + } + +GLOBAL VOID +c_setBL + +IFN1( + IU8, val + ) + + + { + SET_BL(val); + } + +GLOBAL VOID +c_setAH + +IFN1( + IU8, val + ) + + + { + SET_AH(val); + } + +GLOBAL VOID +c_setCH + +IFN1( + IU8, val + ) + + + { + SET_CH(val); + } + +GLOBAL VOID +c_setDH + +IFN1( + IU8, val + ) + + + { + SET_DH(val); + } + +GLOBAL VOID +c_setBH + +IFN1( + IU8, val + ) + + + { + SET_BH(val); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Provide Access to Word Registers. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +GLOBAL IU16 +c_getAX() + { + return (IU16)GET_AX(); + } + +GLOBAL IU16 +c_getCX() + { + return (IU16)GET_CX(); + } + +GLOBAL IU16 +c_getDX() + { + return (IU16)GET_DX(); + } + +GLOBAL IU16 +c_getBX() + { + return (IU16)GET_BX(); + } + +GLOBAL IU16 +c_getSP() + { + return (IU16)GET_SP(); + } + +GLOBAL IU16 +c_getBP() + { + return (IU16)GET_BP(); + } + +GLOBAL IU16 +c_getSI() + { + return (IU16)GET_SI(); + } + +GLOBAL IU16 +c_getDI() + { + return (IU16)GET_DI(); + } + +GLOBAL IU32 +c_getEIP() + { + return (IU32)GET_EIP(); + } + +GLOBAL IU16 +c_getIP() + { + return (IU16)GET_EIP(); + } + +GLOBAL VOID +c_setAX + +IFN1( + IU16, val + ) + + + { + SET_AX(val); + } + +GLOBAL VOID +c_setCX + +IFN1( + IU16, val + ) + + + { + SET_CX(val); + } + +GLOBAL VOID +c_setDX + +IFN1( + IU16, val + ) + + + { + SET_DX(val); + } + +GLOBAL VOID +c_setBX + +IFN1( + IU16, val + ) + + + { + SET_BX(val); + } + +GLOBAL VOID +c_setSP + +IFN1( + IU16, val + ) + + + { + SET_SP(val); + } + +GLOBAL VOID +c_setBP + +IFN1( + IU16, val + ) + + + { + SET_BP(val); + } + +GLOBAL VOID +c_setSI + +IFN1( + IU16, val + ) + + + { + SET_SI(val); + } + +GLOBAL VOID +c_setDI + +IFN1( + IU16, val + ) + + + { + SET_DI(val); + } + +GLOBAL VOID +c_setEIP + +IFN1( + IU32, val + ) + + + { + SET_EIP(val); + } + +GLOBAL VOID +c_setIP + +IFN1( + IU16, val + ) + + + { + SET_EIP(val); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Provide Access to Double Word Registers. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +GLOBAL IU32 +c_getEAX() + { + return (IU32)GET_EAX(); + } + +GLOBAL IU32 +c_getECX() + { + return (IU32)GET_ECX(); + } + +GLOBAL IU32 +c_getEDX() + { + return (IU32)GET_EDX(); + } + +GLOBAL IU32 +c_getEBX() + { + return (IU32)GET_EBX(); + } + +GLOBAL IU32 +c_getESP() + { + return (IU32)GET_ESP(); + } + +GLOBAL IU32 +c_getEBP() + { + return (IU32)GET_EBP(); + } + +GLOBAL IU32 +c_getESI() + { + return (IU32)GET_ESI(); + } + +GLOBAL IU32 +c_getEDI() + { + return (IU32)GET_EDI(); + } + +GLOBAL VOID +c_setEAX + +IFN1( + IU32, val + ) + + + { + SET_EAX(val); + } + +GLOBAL VOID +c_setECX + +IFN1( + IU32, val + ) + + + { + SET_ECX(val); + } + +GLOBAL VOID +c_setEDX + +IFN1( + IU32, val + ) + + + { + SET_EDX(val); + } + +GLOBAL VOID +c_setEBX + +IFN1( + IU32, val + ) + + + { + SET_EBX(val); + } + +GLOBAL VOID +c_setESP + +IFN1( + IU32, val + ) + + + { + SET_ESP(val); + } + +GLOBAL VOID +c_setEBP + +IFN1( + IU32, val + ) + + + { + SET_EBP(val); + } + +GLOBAL VOID +c_setESI + +IFN1( + IU32, val + ) + + + { + SET_ESI(val); + } + +GLOBAL VOID +c_setEDI + +IFN1( + IU32, val + ) + + + { + SET_EDI(val); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Provide Access to Segment Registers. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +GLOBAL IU16 +c_getES() + { + return (IU16)GET_ES_SELECTOR(); + } + +GLOBAL IU16 +c_getCS() + { + return (IU16)GET_CS_SELECTOR(); + } + +GLOBAL IU16 +c_getSS() + { + return (IU16)GET_SS_SELECTOR(); + } + +GLOBAL IU16 +c_getDS() + { + return (IU16)GET_DS_SELECTOR(); + } + +GLOBAL IU16 +c_getFS() + { + return (IU16)GET_FS_SELECTOR(); + } + +GLOBAL IU16 +c_getGS() + { + return (IU16)GET_GS_SELECTOR(); + } + +GLOBAL ISM32 +c_setES + +IFN1( + IU16, val + ) + + + { + return call_cpu_function((CALL_CPU *)load_data_seg, TYPE_I_W, ES_REG, val); + } + +GLOBAL ISM32 +c_setCS + +IFN1( + IU16, val + ) + + + { + return call_cpu_function((CALL_CPU *)load_code_seg, TYPE_W, CS_REG, val); + } + +GLOBAL ISM32 +c_setSS + +IFN1( + IU16, val + ) + + + { + return call_cpu_function((CALL_CPU *)load_stack_seg, TYPE_W, SS_REG, val); + } + +GLOBAL ISM32 +c_setDS + +IFN1( + IU16, val + ) + + + { + return call_cpu_function((CALL_CPU *)load_data_seg, TYPE_I_W, DS_REG, val); + } + +GLOBAL ISM32 +c_setFS + +IFN1( + IU16, val + ) + + + { + return call_cpu_function((CALL_CPU *)load_data_seg, TYPE_I_W, FS_REG, val); + } + +GLOBAL ISM32 +c_setGS + +IFN1( + IU16, val + ) + + + { + return call_cpu_function((CALL_CPU *)load_data_seg, TYPE_I_W, GS_REG, val); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Provide Access to Full(Private) Segment Registers. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +GLOBAL IU16 +c_getES_SELECTOR() + { + return (IU16)GET_ES_SELECTOR(); + } + +GLOBAL IU16 +c_getCS_SELECTOR() + { + return (IU16)GET_CS_SELECTOR(); + } + +GLOBAL IU16 +c_getSS_SELECTOR() + { + return (IU16)GET_SS_SELECTOR(); + } + +GLOBAL IU16 +c_getDS_SELECTOR() + { + return (IU16)GET_DS_SELECTOR(); + } + +GLOBAL IU16 +c_getFS_SELECTOR() + { + return (IU16)GET_FS_SELECTOR(); + } + +GLOBAL IU16 +c_getGS_SELECTOR() + { + return (IU16)GET_GS_SELECTOR(); + } + +GLOBAL IU32 +c_getES_BASE() + { + return (IU32)GET_ES_BASE(); + } + +GLOBAL IU32 +c_getCS_BASE() + { + return (IU32)GET_CS_BASE(); + } + +GLOBAL IU32 +c_getSS_BASE() + { + return (IU32)GET_SS_BASE(); + } + +GLOBAL IU32 +c_getDS_BASE() + { + return (IU32)GET_DS_BASE(); + } + +GLOBAL IU32 +c_getFS_BASE() + { + return (IU32)GET_FS_BASE(); + } + +GLOBAL IU32 +c_getGS_BASE() + { + return (IU32)GET_GS_BASE(); + } + +GLOBAL IU32 +c_getES_LIMIT() + { + return (IU32)get_seg_limit(ES_REG); + } + +GLOBAL IU32 +c_getCS_LIMIT() + { + return (IU32)get_seg_limit(CS_REG); + } + +GLOBAL IU32 +c_getSS_LIMIT() + { + return (IU32)get_seg_limit(SS_REG); + } + +GLOBAL IU32 +c_getDS_LIMIT() + { + return (IU32)get_seg_limit(DS_REG); + } + +GLOBAL IU32 +c_getFS_LIMIT() + { + return (IU32)get_seg_limit(FS_REG); + } + +GLOBAL IU32 +c_getGS_LIMIT() + { + return (IU32)get_seg_limit(GS_REG); + } + +GLOBAL IU16 +c_getES_AR() + { + AR_FIXUP; + return (IU16)get_seg_ar(ES_REG); + } + +GLOBAL IU16 +c_getCS_AR() + { + AR_FIXUP; + return (IU16)get_seg_ar(CS_REG); + } + +GLOBAL IU16 +c_getSS_AR() + { + AR_FIXUP; + return (IU16)get_seg_ar(SS_REG); + } + +GLOBAL IU16 +c_getDS_AR() + { + AR_FIXUP; + return (IU16)get_seg_ar(DS_REG); + } + +GLOBAL IU16 +c_getFS_AR() + { + AR_FIXUP; + return (IU16)get_seg_ar(FS_REG); + } + +GLOBAL IU16 +c_getGS_AR() + { + AR_FIXUP; + return (IU16)get_seg_ar(GS_REG); + } + +GLOBAL VOID +c_setES_SELECTOR + +IFN1( + IU16, val + ) + + + { + SET_ES_SELECTOR(val); + } + +GLOBAL VOID +c_setCS_SELECTOR + +IFN1( + IU16, val + ) + + + { + SET_CS_SELECTOR(val); + } + +GLOBAL VOID +c_setSS_SELECTOR + +IFN1( + IU16, val + ) + + + { + SET_SS_SELECTOR(val); + } + +GLOBAL VOID +c_setDS_SELECTOR + +IFN1( + IU16, val + ) + + + { + SET_DS_SELECTOR(val); + } + +GLOBAL VOID +c_setFS_SELECTOR + +IFN1( + IU16, val + ) + + + { + SET_FS_SELECTOR(val); + } + +GLOBAL VOID +c_setGS_SELECTOR + +IFN1( + IU16, val + ) + + + { + SET_GS_SELECTOR(val); + } + +GLOBAL VOID +c_setES_BASE_LIMIT_AR + +IFN3( + IU32, base, + IU32, limit, + IU16, ar + ) + { + SET_ES_BASE(base); + set_seg_limit(ES_REG, limit); + set_seg_ar(ES_REG, ar); + } + +GLOBAL VOID +c_setCS_BASE_LIMIT_AR + +IFN3( + IU32, base, + IU32, limit, + IU16, ar + ) + { + SET_CS_BASE(base); + set_seg_limit(CS_REG, limit); + set_seg_ar(CS_REG, ar); + } + +GLOBAL VOID +c_setSS_BASE_LIMIT_AR + +IFN3( + IU32, base, + IU32, limit, + IU16, ar + ) + { + SET_SS_BASE(base); + set_seg_limit(SS_REG, limit); + set_seg_ar(SS_REG, ar); + } + +GLOBAL VOID +c_setDS_BASE_LIMIT_AR + +IFN3( + IU32, base, + IU32, limit, + IU16, ar + ) + { + SET_DS_BASE(base); + set_seg_limit(DS_REG, limit); + set_seg_ar(DS_REG, ar); + } + +GLOBAL VOID +c_setFS_BASE_LIMIT_AR + +IFN3( + IU32, base, + IU32, limit, + IU16, ar + ) + { + SET_FS_BASE(base); + set_seg_limit(FS_REG, limit); + set_seg_ar(FS_REG, ar); + } + +GLOBAL VOID +c_setGS_BASE_LIMIT_AR + +IFN3( + IU32, base, + IU32, limit, + IU16, ar + ) + { + SET_GS_BASE(base); + set_seg_limit(GS_REG, limit); + set_seg_ar(GS_REG, ar); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Provide Access to Flags. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +GLOBAL ISM32 +c_getAF() + { + return (ISM32)GET_AF(); + } + +GLOBAL ISM32 +c_getCF() + { + return (ISM32)GET_CF(); + } + +GLOBAL ISM32 +c_getDF() + { + return (ISM32)GET_DF(); + } + +GLOBAL ISM32 +c_getIF() + { + return (ISM32)GET_IF(); + } + +GLOBAL ISM32 +c_getOF() + { + return (ISM32)GET_OF(); + } + +GLOBAL ISM32 +c_getPF() + { + return (ISM32)GET_PF(); + } + +GLOBAL ISM32 +c_getSF() + { + return (ISM32)GET_SF(); + } + +GLOBAL ISM32 +c_getTF() + { + return (ISM32)GET_TF(); + } + +GLOBAL ISM32 +c_getZF() + { + return (ISM32)GET_ZF(); + } + +GLOBAL ISM32 +c_getIOPL() + { + return (ISM32)GET_IOPL(); + } + +GLOBAL ISM32 +c_getNT() + { + return (ISM32)GET_NT(); + } + +GLOBAL ISM32 +c_getRF() + { + return (ISM32)GET_RF(); + } + +GLOBAL ISM32 +c_getVM() + { + return (ISM32)GET_VM(); + } + +#ifdef SPC486 +GLOBAL ISM32 +c_getAC() + { + return (ISM32)GET_AC(); + } + +GLOBAL ISM32 +c_getET() + { + return (ISM32)GET_ET(); + } + +GLOBAL ISM32 +c_getNE() + { + return (ISM32)GET_NE(); + } + +GLOBAL ISM32 +c_getWP() + { + return (ISM32)GET_WP(); + } + +GLOBAL ISM32 +c_getAM() + { + return (ISM32)GET_AM(); + } + +GLOBAL ISM32 +c_getNW() + { + return (ISM32)GET_NW(); + } + +GLOBAL ISM32 +c_getCD() + { + return (ISM32)GET_CD(); + } +#endif /* SPC486 */ + +GLOBAL IU16 +c_getSTATUS() + { + return (IU16)getFLAGS(); + } + +GLOBAL VOID +c_setAF + +IFN1( + ISM32, val + ) + + + { + SET_AF(val); + } + +GLOBAL VOID +c_setCF + +IFN1( + ISM32, val + ) + + + { + SET_CF(val); + } + +GLOBAL VOID +c_setDF + +IFN1( + ISM32, val + ) + + + { + SET_DF(val); + } + +GLOBAL VOID +c_setIF + +IFN1( + ISM32, val + ) + + + { + SET_IF(val); + } + +GLOBAL VOID +c_setOF + +IFN1( + ISM32, val + ) + + + { + SET_OF(val); + } + +GLOBAL VOID +c_setPF + +IFN1( + ISM32, val + ) + + + { + SET_PF(val); + } + +GLOBAL VOID +c_setSF + +IFN1( + ISM32, val + ) + + + { + SET_SF(val); + } + +GLOBAL VOID +c_setTF + +IFN1( + ISM32, val + ) + + + { + SET_TF(val); + } + +GLOBAL VOID +c_setZF + +IFN1( + ISM32, val + ) + + + { + SET_ZF(val); + } + +GLOBAL VOID +c_setIOPL + +IFN1( + ISM32, val + ) + + + { + SET_IOPL(val); + } + +GLOBAL VOID +c_setNT + +IFN1( + ISM32, val + ) + + + { + SET_NT(val); + } + +GLOBAL VOID +c_setRF + +IFN1( + ISM32, val + ) + + + { + SET_RF(val); + } + +GLOBAL VOID +c_setVM + +IFN1( + ISM32, val + ) + + + { + SET_VM(val); + } + + + +#ifdef SPC486 +GLOBAL VOID +c_setAC + +IFN1( + ISM32, val + ) + + + { + SET_AC(val); + } +#endif /* SPC486 */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Provide Access to Control Registers. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +GLOBAL ISM32 +c_getPE() + { + return (ISM32)GET_PE(); + } + +GLOBAL ISM32 +c_getMP() + { + return (ISM32)GET_MP(); + } + +GLOBAL ISM32 +c_getEM() + { + return (ISM32)GET_EM(); + } + +GLOBAL ISM32 +c_getTS() + { + return (ISM32)GET_TS(); + } + +GLOBAL ISM32 +c_getPG() + { + return (ISM32)GET_PG(); + } + +GLOBAL IU16 +c_getMSW() + { + return (IU16)GET_MSW(); + } + +GLOBAL IU32 +c_getCR0 +IFN0() + { + return (IU32)GET_CR(0); + } + +GLOBAL IU32 +c_getCR2 +IFN0() + { + return (IU32)GET_CR(2); + } + +GLOBAL IU32 +c_getCR3 +IFN0() + { + return (IU32)GET_CR(3); + } + +GLOBAL VOID +c_setPE + +IFN1( + ISM32, val + ) + + + { + SET_PE(val); + } + +GLOBAL VOID +c_setMP + +IFN1( + ISM32, val + ) + + + { + SET_MP(val); + } + +GLOBAL VOID +c_setEM + +IFN1( + ISM32, val + ) + + + { + SET_EM(val); + } + +GLOBAL VOID +c_setTS + +IFN1( + ISM32, val + ) + + + { + SET_TS(val); + } + +GLOBAL VOID +c_setET + +IFN1( + ISM32, val + ) + + + { + /* Quietly ignore outside interference. Once set at RESET + time ET remains unchanged. */ + UNUSED(val); + } + +#ifdef SPC486 +GLOBAL VOID +c_setNE + +IFN1( + ISM32, val + ) + + + { + SET_NE(val); + } + +GLOBAL VOID +c_setWP + +IFN1( + ISM32, val + ) + + + { + SET_WP(val); + } + +GLOBAL VOID +c_setAM + +IFN1( + ISM32, val + ) + + + { + SET_AM(val); + } + +GLOBAL VOID +c_setNW + +IFN1( + ISM32, val + ) + + + { + SET_NW(val); + } + +GLOBAL VOID +c_setCD + +IFN1( + ISM32, val + ) + + + { + SET_CD(val); + } +#endif /* SPC486 */ + +GLOBAL VOID +c_setPG + +IFN1( + ISM32, val + ) + + + { + SET_PG(val); + } + +GLOBAL VOID +c_setMSW + +IFN1( + IU16, val + ) + + + { + IU32 keep_et; + /* + Does not allow ET to be changed! + Ideally this external interface should be removed. + */ + keep_et = GET_ET(); + SET_MSW(val); + SET_ET(keep_et); + MOV_CR(0, (IU32)((GET_CR(0)&0xFFFF0000) | ((IU32)val))); + } + +GLOBAL VOID +c_setCR0 +IFN1( + IU32, val + ) + { + MOV_CR(0, (IU32)val); + } + +/* CR1 is reserved on the 486 */ + +GLOBAL VOID +c_setCR2 +IFN1( + IU32, val + ) + { + MOV_CR(2, (IU32)val); + } + +GLOBAL VOID +c_setCR3 +IFN1( + IU32, val + ) + { + MOV_CR(3, (IU32)val); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Provide Access to Descriptor Registers. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +GLOBAL IU32 +c_getGDT_BASE() + { + return (IU32)GET_GDT_BASE(); + } + +GLOBAL IU16 +c_getGDT_LIMIT() + { + return (IU16)GET_GDT_LIMIT(); + } + +GLOBAL IU32 +c_getIDT_BASE() + { + return (IU32)GET_IDT_BASE(); + } + +GLOBAL IU16 +c_getIDT_LIMIT() + { + return (IU16)GET_IDT_LIMIT(); + } + +GLOBAL IU16 +c_getLDT_SELECTOR() + { + return (IU16)GET_LDT_SELECTOR(); + } + +GLOBAL IU32 +c_getLDT_BASE() + { + return (IU32)GET_LDT_BASE(); + } + +GLOBAL IU32 +c_getLDT_LIMIT() + { + return (IU32)GET_LDT_LIMIT(); + } + +GLOBAL IU16 +c_getTR_SELECTOR() + { + return (IU16)GET_TR_SELECTOR(); + } + +GLOBAL IU32 +c_getTR_BASE() + { + return (IU32)GET_TR_BASE(); + } + +GLOBAL IU32 +c_getTR_LIMIT() + { + return (IU32)GET_TR_LIMIT(); + } + +GLOBAL IU16 +c_getTR_AR() + { + return (IU16)GET_TR_AR_SUPER(); + } + +GLOBAL VOID +c_setGDT_BASE_LIMIT + +IFN2( + IU32, base, + IU16, limit + ) + + + { + SET_GDT_BASE(base); + SET_GDT_LIMIT(limit); + } + +GLOBAL VOID +c_setIDT_BASE_LIMIT + +IFN2( + IU32, base, + IU16, limit + ) + + + { + SET_IDT_BASE(base); + SET_IDT_LIMIT(limit); + } + +GLOBAL VOID +c_setLDT_SELECTOR + +IFN1( + IU16, val + ) + + + { + SET_LDT_SELECTOR(val); + } + +GLOBAL VOID +c_setLDT_BASE_LIMIT + +IFN2( + IU32, base, + IU32, limit + ) + + + { + SET_LDT_BASE(base); + SET_LDT_LIMIT(limit); + } + +GLOBAL VOID +c_setTR_SELECTOR + +IFN1( + IU16, val + ) + + + { + SET_TR_SELECTOR(val); + } + +GLOBAL VOID +c_setTR_BASE_LIMIT + +IFN2( + IU32, base, + IU32, limit + ) + + + { + SET_TR_BASE(base); + SET_TR_LIMIT(limit); + SET_TR_AR_SUPER(BUSY_TSS); + } + + +GLOBAL VOID +c_setTR_BASE_LIMIT_AR + +IFN3( + IU32, base, + IU32, limit, + IU16, ar + ) + + + { + if (GET_AR_SUPER(ar) == BUSY_TSS || GET_AR_SUPER(ar) == XTND_BUSY_TSS) + { + SET_TR_BASE(base); + SET_TR_LIMIT(limit); + SET_TR_AR_SUPER(GET_AR_SUPER(ar)); + } + else + { + if (ar != 0) + printf ("%s:%d Invalid Task Reg AR byte %02x supplied.\n", + __FILE__, __LINE__, ar); + SET_TR_BASE(base); + SET_TR_LIMIT(limit); + SET_TR_AR_SUPER(BUSY_TSS); + } + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Provide Access to Current Privilege Level. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +GLOBAL ISM32 +c_getCPL() + { + return (ISM32)GET_CPL(); + } + +GLOBAL VOID +c_setCPL + +IFN1( + ISM32, val + ) + + + { + SET_CPL(val); + } + diff --git a/private/mvdm/softpc.new/base/ccpu386/c_reg.h b/private/mvdm/softpc.new/base/ccpu386/c_reg.h new file mode 100644 index 000000000..705b73030 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_reg.h @@ -0,0 +1,508 @@ +/*[ + +c_reg.h + +LOCAL CHAR SccsID[]="@(#)c_reg.h 1.8 08/26/94"; + +Access to CPU Registers. +------------------------ + +NB. This file is *NOT* a description of the 'c_reg.c' functions. Those + are given in 'cpu.h'. However it is analogous in that 'c_reg.c' + defines the CPU Registers for the outside world. This file defines + the CPU Registers for access internal to the C CPU. + +]*/ + + +/* CS, SS, DS, ES, FS and GS */ +typedef struct + { + IU16 selector; /* 16-bit selector */ + IU32 ar_dpl; /* privilege */ + IU32 ar_e; /* expansion direction */ + IU32 ar_r; /* readable */ + IU32 ar_w; /* writable */ + IU32 ar_c; /* conforming */ + IU32 ar_x; /* default (CS) big (SS,DS,ES,FS,GS) */ + IU32 base; /* 32-bit base address (286 = 24-bit) */ + IU32 limit; /* 32-bit offset limit (286 = 16-bit) */ + } SEGMENT_REGISTER; + +/* LDTR and TR */ +typedef struct + { + IU16 selector; /* 16-bit selector */ + ISM32 ar_super; /* descriptor type (only used for TR) */ + IU32 base; /* 32-bit base address (286 = 24-bit) */ + IU32 limit; /* 32-bit offset limit (286 = 16-bit) */ + } SYSTEM_ADDRESS_REGISTER; + +/* GDTR and IDTR */ +typedef struct + { + IU32 base; /* 32-bit base (286 = 24-bit) */ + IU16 limit; /* 16-bit limit */ + } SYSTEM_TABLE_ADDRESS_REGISTER; + + +/* + C CPU Registers. (See c_main.c for full description.) + */ +IMPORT IU32 CCPU_TR[]; +IMPORT IU32 CCPU_DR[]; +IMPORT IU32 CCPU_CR[]; +IMPORT IU32 CCPU_GR[]; +IMPORT IU16 *CCPU_WR[]; +IMPORT IU8 *CCPU_BR[]; +IMPORT IU32 CCPU_IP; +IMPORT IU32 CCPU_FLAGS[]; +IMPORT IU32 CCPU_CPL; +IMPORT IU32 CCPU_MODE[]; +IMPORT SEGMENT_REGISTER CCPU_SR[]; +IMPORT SYSTEM_ADDRESS_REGISTER CCPU_SAR[]; +IMPORT SYSTEM_TABLE_ADDRESS_REGISTER CCPU_STAR[]; + + +/* + Access to the emulation register set. + */ + + +/* Double Word General Registers */ +#define GET_GR(i) CCPU_GR[(i)] +#define SET_GR(i, x) CCPU_GR[(i)] = (x) + +#define A_EAX 0 +#define A_ECX 1 +#define A_EDX 2 +#define A_EBX 3 +#define A_ESP 4 +#define A_EBP 5 +#define A_ESI 6 +#define A_EDI 7 + +#define GET_EAX() GET_GR(A_EAX) +#define GET_ECX() GET_GR(A_ECX) +#define GET_EDX() GET_GR(A_EDX) +#define GET_EBX() GET_GR(A_EBX) +#define GET_ESP() GET_GR(A_ESP) +#define GET_EBP() GET_GR(A_EBP) +#define GET_ESI() GET_GR(A_ESI) +#define GET_EDI() GET_GR(A_EDI) + +#define SET_EAX(x) SET_GR(A_EAX, (x)) +#define SET_ECX(x) SET_GR(A_ECX, (x)) +#define SET_EDX(x) SET_GR(A_EDX, (x)) +#define SET_EBX(x) SET_GR(A_EBX, (x)) +#define SET_ESP(x) SET_GR(A_ESP, (x)) +#define SET_EBP(x) SET_GR(A_EBP, (x)) +#define SET_ESI(x) SET_GR(A_ESI, (x)) +#define SET_EDI(x) SET_GR(A_EDI, (x)) + +/* Word Registers */ +#define GET_WR(i) (*CCPU_WR[(i)]) +#define SET_WR(i, x) *CCPU_WR[(i)] = (x) + +#define A_AX 0 +#define A_CX 1 +#define A_DX 2 +#define A_BX 3 +#define A_SP 4 +#define A_BP 5 +#define A_SI 6 +#define A_DI 7 + +#define GET_AX() GET_WR(A_AX) +#define GET_CX() GET_WR(A_CX) +#define GET_DX() GET_WR(A_DX) +#define GET_BX() GET_WR(A_BX) +#define GET_SP() GET_WR(A_SP) +#define GET_BP() GET_WR(A_BP) +#define GET_SI() GET_WR(A_SI) +#define GET_DI() GET_WR(A_DI) + +#define SET_AX(x) SET_WR(A_AX, (x)) +#define SET_CX(x) SET_WR(A_CX, (x)) +#define SET_DX(x) SET_WR(A_DX, (x)) +#define SET_BX(x) SET_WR(A_BX, (x)) +#define SET_SP(x) SET_WR(A_SP, (x)) +#define SET_BP(x) SET_WR(A_BP, (x)) +#define SET_SI(x) SET_WR(A_SI, (x)) +#define SET_DI(x) SET_WR(A_DI, (x)) + +#define GET_EIP() CCPU_IP +#define SET_EIP(x) CCPU_IP = (x) + +/* Byte Registers */ +#define GET_BR(i) (*CCPU_BR[(i)]) +#define SET_BR(i, x) *CCPU_BR[(i)] = (x) + +#define A_AL 0 +#define A_CL 1 +#define A_DL 2 +#define A_BL 3 +#define A_AH 4 +#define A_CH 5 +#define A_DH 6 +#define A_BH 7 + +#define GET_AL() GET_BR(A_AL) +#define GET_CL() GET_BR(A_CL) +#define GET_DL() GET_BR(A_DL) +#define GET_BL() GET_BR(A_BL) +#define GET_AH() GET_BR(A_AH) +#define GET_CH() GET_BR(A_CH) +#define GET_DH() GET_BR(A_DH) +#define GET_BH() GET_BR(A_BH) + +#define SET_AL(x) SET_BR(A_AL, (x)) +#define SET_CL(x) SET_BR(A_CL, (x)) +#define SET_DL(x) SET_BR(A_DL, (x)) +#define SET_BL(x) SET_BR(A_BL, (x)) +#define SET_AH(x) SET_BR(A_AH, (x)) +#define SET_CH(x) SET_BR(A_CH, (x)) +#define SET_DH(x) SET_BR(A_DH, (x)) +#define SET_BH(x) SET_BR(A_BH, (x)) + +/* Segment Registers */ +#define GET_SR_SELECTOR(i) CCPU_SR[(i)].selector +#define GET_SR_BASE(i) CCPU_SR[(i)].base +#define GET_SR_LIMIT(i) CCPU_SR[(i)].limit +#define GET_SR_AR_DPL(i) CCPU_SR[(i)].ar_dpl +#define GET_SR_AR_E(i) CCPU_SR[(i)].ar_e +#define GET_SR_AR_W(i) CCPU_SR[(i)].ar_w +#define GET_SR_AR_R(i) CCPU_SR[(i)].ar_r +#define GET_SR_AR_C(i) CCPU_SR[(i)].ar_c +#define GET_SR_AR_X(i) CCPU_SR[(i)].ar_x + +#define SET_SR_SELECTOR(i, x) CCPU_SR[(i)].selector = (x) +#define SET_SR_BASE(i, x) CCPU_SR[(i)].base = (x) +#define SET_SR_LIMIT(i, x) CCPU_SR[(i)].limit = (x) +#define SET_SR_AR_DPL(i, x) CCPU_SR[(i)].ar_dpl = (x) +#define SET_SR_AR_E(i, x) CCPU_SR[(i)].ar_e = (x) +#define SET_SR_AR_W(i, x) CCPU_SR[(i)].ar_w = (x) +#define SET_SR_AR_R(i, x) CCPU_SR[(i)].ar_r = (x) +#define SET_SR_AR_C(i, x) CCPU_SR[(i)].ar_c = (x) +#define SET_SR_AR_X(i, x) CCPU_SR[(i)].ar_x = (x) + +#define ES_REG 0 +#define CS_REG 1 +#define SS_REG 2 +#define DS_REG 3 +#define FS_REG 4 +#define GS_REG 5 + +#define GET_ES_SELECTOR() GET_SR_SELECTOR(ES_REG) +#define GET_ES_BASE() GET_SR_BASE(ES_REG) +#define GET_ES_LIMIT() GET_SR_LIMIT(ES_REG) +#define GET_ES_AR_DPL() GET_SR_AR_DPL(ES_REG) +#define GET_ES_AR_E() GET_SR_AR_E(ES_REG) +#define GET_ES_AR_W() GET_SR_AR_W(ES_REG) +#define GET_ES_AR_R() GET_SR_AR_R(ES_REG) +#define GET_ES_AR_C() GET_SR_AR_C(ES_REG) +#define GET_ES_AR_X() GET_SR_AR_X(ES_REG) + +#define SET_ES_SELECTOR(x) SET_SR_SELECTOR(ES_REG, (x)) +#define SET_ES_BASE(x) SET_SR_BASE(ES_REG, (x)) +#define SET_ES_LIMIT(x) SET_SR_LIMIT(ES_REG, (x)) +#define SET_ES_AR_DPL(x) SET_SR_AR_DPL(ES_REG, (x)) +#define SET_ES_AR_E(x) SET_SR_AR_E(ES_REG, (x)) +#define SET_ES_AR_W(x) SET_SR_AR_W(ES_REG, (x)) +#define SET_ES_AR_R(x) SET_SR_AR_R(ES_REG, (x)) +#define SET_ES_AR_C(x) SET_SR_AR_C(ES_REG, (x)) +#define SET_ES_AR_X(x) SET_SR_AR_X(ES_REG, (x)) + +#define GET_CS_SELECTOR() GET_SR_SELECTOR(CS_REG) +#define GET_CS_BASE() GET_SR_BASE(CS_REG) +#define GET_CS_LIMIT() GET_SR_LIMIT(CS_REG) +#define GET_CS_AR_DPL() GET_SR_AR_DPL(CS_REG) +#define GET_CS_AR_E() GET_SR_AR_E(CS_REG) +#define GET_CS_AR_W() GET_SR_AR_W(CS_REG) +#define GET_CS_AR_R() GET_SR_AR_R(CS_REG) +#define GET_CS_AR_C() GET_SR_AR_C(CS_REG) +#define GET_CS_AR_X() GET_SR_AR_X(CS_REG) + +#define SET_CS_SELECTOR(x) SET_SR_SELECTOR(CS_REG, (x)) +#define SET_CS_BASE(x) SET_SR_BASE(CS_REG, (x)) +#define SET_CS_LIMIT(x) SET_SR_LIMIT(CS_REG, (x)) +#define SET_CS_AR_DPL(x) SET_SR_AR_DPL(CS_REG, (x)) +#define SET_CS_AR_E(x) SET_SR_AR_E(CS_REG, (x)) +#define SET_CS_AR_W(x) SET_SR_AR_W(CS_REG, (x)) +#define SET_CS_AR_R(x) SET_SR_AR_R(CS_REG, (x)) +#define SET_CS_AR_C(x) SET_SR_AR_C(CS_REG, (x)) +#define SET_CS_AR_X(x) SET_SR_AR_X(CS_REG, (x)) + +#define GET_SS_SELECTOR() GET_SR_SELECTOR(SS_REG) +#define GET_SS_BASE() GET_SR_BASE(SS_REG) +#define GET_SS_LIMIT() GET_SR_LIMIT(SS_REG) +#define GET_SS_AR_DPL() GET_SR_AR_DPL(SS_REG) +#define GET_SS_AR_E() GET_SR_AR_E(SS_REG) +#define GET_SS_AR_W() GET_SR_AR_W(SS_REG) +#define GET_SS_AR_R() GET_SR_AR_R(SS_REG) +#define GET_SS_AR_C() GET_SR_AR_C(SS_REG) +#define GET_SS_AR_X() GET_SR_AR_X(SS_REG) + +#define SET_SS_SELECTOR(x) SET_SR_SELECTOR(SS_REG, (x)) +#define SET_SS_BASE(x) SET_SR_BASE(SS_REG, (x)) +#define SET_SS_LIMIT(x) SET_SR_LIMIT(SS_REG, (x)) +#define SET_SS_AR_DPL(x) SET_SR_AR_DPL(SS_REG, (x)) +#define SET_SS_AR_E(x) SET_SR_AR_E(SS_REG, (x)) +#define SET_SS_AR_W(x) SET_SR_AR_W(SS_REG, (x)) +#define SET_SS_AR_R(x) SET_SR_AR_R(SS_REG, (x)) +#define SET_SS_AR_C(x) SET_SR_AR_C(SS_REG, (x)) +#define SET_SS_AR_X(x) SET_SR_AR_X(SS_REG, (x)) + +#define GET_DS_SELECTOR() GET_SR_SELECTOR(DS_REG) +#define GET_DS_BASE() GET_SR_BASE(DS_REG) +#define GET_DS_LIMIT() GET_SR_LIMIT(DS_REG) +#define GET_DS_AR_DPL() GET_SR_AR_DPL(DS_REG) +#define GET_DS_AR_E() GET_SR_AR_E(DS_REG) +#define GET_DS_AR_W() GET_SR_AR_W(DS_REG) +#define GET_DS_AR_R() GET_SR_AR_R(DS_REG) +#define GET_DS_AR_C() GET_SR_AR_C(DS_REG) +#define GET_DS_AR_X() GET_SR_AR_X(DS_REG) + +#define SET_DS_SELECTOR(x) SET_SR_SELECTOR(DS_REG, (x)) +#define SET_DS_BASE(x) SET_SR_BASE(DS_REG, (x)) +#define SET_DS_LIMIT(x) SET_SR_LIMIT(DS_REG, (x)) +#define SET_DS_AR_DPL(x) SET_SR_AR_DPL(DS_REG, (x)) +#define SET_DS_AR_E(x) SET_SR_AR_E(DS_REG, (x)) +#define SET_DS_AR_W(x) SET_SR_AR_W(DS_REG, (x)) +#define SET_DS_AR_R(x) SET_SR_AR_R(DS_REG, (x)) +#define SET_DS_AR_C(x) SET_SR_AR_C(DS_REG, (x)) +#define SET_DS_AR_X(x) SET_SR_AR_X(DS_REG, (x)) + +#define GET_FS_SELECTOR() GET_SR_SELECTOR(FS_REG) +#define GET_FS_BASE() GET_SR_BASE(FS_REG) +#define GET_FS_LIMIT() GET_SR_LIMIT(FS_REG) +#define GET_FS_AR_DPL() GET_SR_AR_DPL(FS_REG) +#define GET_FS_AR_E() GET_SR_AR_E(FS_REG) +#define GET_FS_AR_W() GET_SR_AR_W(FS_REG) +#define GET_FS_AR_R() GET_SR_AR_R(FS_REG) +#define GET_FS_AR_C() GET_SR_AR_C(FS_REG) +#define GET_FS_AR_X() GET_SR_AR_X(FS_REG) + +#define SET_FS_SELECTOR(x) SET_SR_SELECTOR(FS_REG, (x)) +#define SET_FS_BASE(x) SET_SR_BASE(FS_REG, (x)) +#define SET_FS_LIMIT(x) SET_SR_LIMIT(FS_REG, (x)) +#define SET_FS_AR_DPL(x) SET_SR_AR_DPL(FS_REG, (x)) +#define SET_FS_AR_E(x) SET_SR_AR_E(FS_REG, (x)) +#define SET_FS_AR_W(x) SET_SR_AR_W(FS_REG, (x)) +#define SET_FS_AR_R(x) SET_SR_AR_R(FS_REG, (x)) +#define SET_FS_AR_C(x) SET_SR_AR_C(FS_REG, (x)) +#define SET_FS_AR_X(x) SET_SR_AR_X(FS_REG, (x)) + +#define GET_GS_SELECTOR() GET_SR_SELECTOR(GS_REG) +#define GET_GS_BASE() GET_SR_BASE(GS_REG) +#define GET_GS_LIMIT() GET_SR_LIMIT(GS_REG) +#define GET_GS_AR_DPL() GET_SR_AR_DPL(GS_REG) +#define GET_GS_AR_E() GET_SR_AR_E(GS_REG) +#define GET_GS_AR_W() GET_SR_AR_W(GS_REG) +#define GET_GS_AR_R() GET_SR_AR_R(GS_REG) +#define GET_GS_AR_C() GET_SR_AR_C(GS_REG) +#define GET_GS_AR_X() GET_SR_AR_X(GS_REG) + +#define SET_GS_SELECTOR(x) SET_SR_SELECTOR(GS_REG, (x)) +#define SET_GS_BASE(x) SET_SR_BASE(GS_REG, (x)) +#define SET_GS_LIMIT(x) SET_SR_LIMIT(GS_REG, (x)) +#define SET_GS_AR_DPL(x) SET_SR_AR_DPL(GS_REG, (x)) +#define SET_GS_AR_E(x) SET_SR_AR_E(GS_REG, (x)) +#define SET_GS_AR_W(x) SET_SR_AR_W(GS_REG, (x)) +#define SET_GS_AR_R(x) SET_SR_AR_R(GS_REG, (x)) +#define SET_GS_AR_C(x) SET_SR_AR_C(GS_REG, (x)) +#define SET_GS_AR_X(x) SET_SR_AR_X(GS_REG, (x)) + +/* System Table Address Registers */ +#define GET_STAR_BASE(i) CCPU_STAR[(i)].base +#define GET_STAR_LIMIT(i) CCPU_STAR[(i)].limit + +#define SET_STAR_BASE(i, x) CCPU_STAR[(i)].base = (x) +#define SET_STAR_LIMIT(i, x) CCPU_STAR[(i)].limit = (x) + +#define GDT_REG 0 +#define IDT_REG 1 + +#define GET_GDT_BASE() GET_STAR_BASE(GDT_REG) +#define GET_GDT_LIMIT() GET_STAR_LIMIT(GDT_REG) +#define GET_IDT_BASE() GET_STAR_BASE(IDT_REG) +#define GET_IDT_LIMIT() GET_STAR_LIMIT(IDT_REG) + +#define SET_GDT_BASE(x) SET_STAR_BASE(GDT_REG, (x)) +#define SET_GDT_LIMIT(x) SET_STAR_LIMIT(GDT_REG, (x)) +#define SET_IDT_BASE(x) SET_STAR_BASE(IDT_REG, (x)) +#define SET_IDT_LIMIT(x) SET_STAR_LIMIT(IDT_REG, (x)) + +/* System Address Registers */ +#define GET_SAR_SELECTOR(i) CCPU_SAR[(i)].selector +#define GET_SAR_AR_SUPER(i) CCPU_SAR[(i)].ar_super +#define GET_SAR_BASE(i) CCPU_SAR[(i)].base +#define GET_SAR_LIMIT(i) CCPU_SAR[(i)].limit + +#define SET_SAR_SELECTOR(i, x) CCPU_SAR[(i)].selector = (x) +#define SET_SAR_AR_SUPER(i, x) CCPU_SAR[(i)].ar_super = (x) +#define SET_SAR_BASE(i, x) CCPU_SAR[(i)].base = (x) +#define SET_SAR_LIMIT(i, x) CCPU_SAR[(i)].limit = (x) + +#define LDT_REG 0 +#define TR_REG 1 + +#define GET_LDT_SELECTOR() GET_SAR_SELECTOR(LDT_REG) +#define GET_LDT_BASE() GET_SAR_BASE(LDT_REG) +#define GET_LDT_LIMIT() GET_SAR_LIMIT(LDT_REG) +#define GET_TR_SELECTOR() GET_SAR_SELECTOR(TR_REG) +#define GET_TR_AR_SUPER() GET_SAR_AR_SUPER(TR_REG) +#define GET_TR_BASE() GET_SAR_BASE(TR_REG) +#define GET_TR_LIMIT() GET_SAR_LIMIT(TR_REG) + +#define SET_LDT_SELECTOR(x) SET_SAR_SELECTOR(LDT_REG, (x)) +#define SET_LDT_BASE(x) SET_SAR_BASE(LDT_REG, (x)) +#define SET_LDT_LIMIT(x) SET_SAR_LIMIT(LDT_REG, (x)) +#define SET_TR_SELECTOR(x) SET_SAR_SELECTOR(TR_REG, (x)) +#define SET_TR_AR_SUPER(x) SET_SAR_AR_SUPER(TR_REG, (x)) +#define SET_TR_BASE(x) SET_SAR_BASE(TR_REG, (x)) +#define SET_TR_LIMIT(x) SET_SAR_LIMIT(TR_REG, (x)) + +/* Flag Register */ +#define GET_CF() CCPU_FLAGS[0] +#define GET_PF() CCPU_FLAGS[2] +#define GET_AF() CCPU_FLAGS[4] +#define GET_ZF() CCPU_FLAGS[6] +#define GET_SF() CCPU_FLAGS[7] +#define GET_TF() CCPU_FLAGS[8] +#define GET_IF() CCPU_FLAGS[9] +#define GET_DF() CCPU_FLAGS[10] +#define GET_OF() CCPU_FLAGS[11] +#define GET_IOPL() CCPU_FLAGS[12] +#define GET_NT() CCPU_FLAGS[14] +#define GET_RF() CCPU_FLAGS[16] +#define GET_VM() CCPU_FLAGS[17] +#define GET_AC() CCPU_FLAGS[18] + +#define SET_CF(x) CCPU_FLAGS[0] = (x) +#define SET_PF(x) CCPU_FLAGS[2] = (x) +#define SET_AF(x) CCPU_FLAGS[4] = (x) +#define SET_ZF(x) CCPU_FLAGS[6] = (x) +#define SET_SF(x) CCPU_FLAGS[7] = (x) +#define SET_TF(x) CCPU_FLAGS[8] = (x) +#ifdef SFELLOW +extern IU32 DisableEE IPT0(); +extern void EnableEE IPT0(); +#define SET_IF(x) \ +{ \ + if (x) \ + { \ + EnableEE(); \ + } \ + else \ + { \ + DisableEE(); \ + } \ + CCPU_FLAGS[9] = (x); \ +} +#else +#define SET_IF(x) CCPU_FLAGS[9] = (x) +#endif /* SFELLOW */ +#define SET_DF(x) CCPU_FLAGS[10] = (x) +#define SET_OF(x) CCPU_FLAGS[11] = (x) +#define SET_IOPL(x) CCPU_FLAGS[12] = (x) +#define SET_NT(x) CCPU_FLAGS[14] = (x) +#define SET_RF(x) CCPU_FLAGS[16] = (x) +#define SET_VM(x) CCPU_FLAGS[17] = (x) +#define SET_AC(x) CCPU_FLAGS[18] = (x) + +/* Test Registers */ +#define TR_TDR 7 +#define TR_TCR 6 +#define TR_CCR 5 +#define TR_CSR 4 +#define TR_CDR 3 + +#define GET_TR(i) CCPU_TR[(i)] +#define SET_TR(i, x) CCPU_TR[(i)] = (x) + +/* Debug Registers */ +#define DR_DCR 7 +#define DR_DSR 6 +#define DR_DAR3 3 +#define DR_DAR2 2 +#define DR_DAR1 1 +#define DR_DAR0 0 + +#define DSR_BT_MASK BIT15_MASK +#define DSR_BS_MASK BIT14_MASK +#define DSR_B3_MASK BIT3_MASK +#define DSR_B2_MASK BIT2_MASK +#define DSR_B1_MASK BIT1_MASK +#define DSR_B0_MASK BIT0_MASK + +#define GET_DR(i) CCPU_DR[(i)] +#define SET_DR(i, x) CCPU_DR[(i)] = (x) + +/* Control Registers */ +#define CR_PDBR 3 +#define CR_PFLA 2 +#define CR_RSVD 1 +#define CR_STAT 0 + +#define GET_CR(i) CCPU_CR[(i)] +#define SET_CR(i, x) CCPU_CR[(i)] = (x) + +#define GET_PE() ( CCPU_CR[CR_STAT] & BIT0_MASK) +#define GET_MP() ((CCPU_CR[CR_STAT] & BIT1_MASK) != 0) +#define GET_EM() ((CCPU_CR[CR_STAT] & BIT2_MASK) != 0) +#define GET_TS() ((CCPU_CR[CR_STAT] & BIT3_MASK) != 0) +#define GET_ET() ((CCPU_CR[CR_STAT] & BIT4_MASK) != 0) +#define GET_PG() ((CCPU_CR[CR_STAT] & BIT31_MASK) != 0) + +/* 486 only */ +#define GET_NE() ((CCPU_CR[CR_STAT] & BIT5_MASK) != 0) +#define GET_WP() ((CCPU_CR[CR_STAT] & BIT16_MASK) != 0) +#define GET_AM() ((CCPU_CR[CR_STAT] & BIT18_MASK) != 0) +#define GET_NW() ((CCPU_CR[CR_STAT] & BIT29_MASK) != 0) +#define GET_CD() ((CCPU_CR[CR_STAT] & BIT30_MASK) != 0) + +#define SET_PE(x)\ + (CCPU_CR[CR_STAT] = CCPU_CR[CR_STAT] & ~BIT0_MASK | ((x) & 1)) +#define SET_MP(x)\ + (CCPU_CR[CR_STAT] = CCPU_CR[CR_STAT] & ~BIT1_MASK | ((x) & 1) << 1) +#define SET_EM(x)\ + (CCPU_CR[CR_STAT] = CCPU_CR[CR_STAT] & ~BIT2_MASK | ((x) & 1) << 2) +#define SET_TS(x)\ + (CCPU_CR[CR_STAT] = CCPU_CR[CR_STAT] & ~BIT3_MASK | ((x) & 1) << 3) +#define SET_ET(x)\ + (CCPU_CR[CR_STAT] = CCPU_CR[CR_STAT] & ~BIT4_MASK | ((x) & 1) << 4) +#define SET_PG(x)\ + (CCPU_CR[CR_STAT] = CCPU_CR[CR_STAT] & ~BIT31_MASK | ((x) & 1) << 31) + +/* 486 only */ +#define SET_NE(x)\ + (CCPU_CR[CR_STAT] = CCPU_CR[CR_STAT] & ~BIT5_MASK | ((x) & 1) << 5) +#define SET_WP(x)\ + (CCPU_CR[CR_STAT] = CCPU_CR[CR_STAT] & ~BIT16_MASK | ((x) & 1) << 16) +#define SET_AM(x)\ + (CCPU_CR[CR_STAT] = CCPU_CR[CR_STAT] & ~BIT18_MASK | ((x) & 1) << 18) +#define SET_NW(x)\ + (CCPU_CR[CR_STAT] = CCPU_CR[CR_STAT] & ~BIT29_MASK | ((x) & 1) << 29) +#define SET_CD(x)\ + (CCPU_CR[CR_STAT] = CCPU_CR[CR_STAT] & ~BIT30_MASK | ((x) & 1) << 30) +#define GET_MSW() CCPU_CR[CR_STAT] & WORD_MASK +#define SET_MSW(x)\ + (CCPU_CR[CR_STAT] = CCPU_CR[CR_STAT] & ~WORD_MASK | ((x) & WORD_MASK)) + +/* Current Privilege Level */ +#define GET_CPL() CCPU_CPL +#define SET_CPL(x) CCPU_CPL = (x) + +/* Current Operating Mode */ +#define USE16 0 +#define USE32 1 + +#define GET_OPERAND_SIZE() CCPU_MODE[0] +#define GET_ADDRESS_SIZE() CCPU_MODE[1] + +#define SET_OPERAND_SIZE(x) CCPU_MODE[0] = (x) +#define SET_ADDRESS_SIZE(x) CCPU_MODE[1] = (x) + +#define GET_POP_DISP() CCPU_MODE[2] +#define SET_POP_DISP(x) CCPU_MODE[2] = (x) diff --git a/private/mvdm/softpc.new/base/ccpu386/c_seg.c b/private/mvdm/softpc.new/base/ccpu386/c_seg.c new file mode 100644 index 000000000..f98d4336e --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_seg.c @@ -0,0 +1,396 @@ +/*[ + +c_seg.c + +LOCAL CHAR SccsID[]="@(#)c_seg.c 1.10 03/02/95"; + +Segment Register Support. +------------------------- + +]*/ + + +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Load CS, both selector and hidden cache. Selector must be valid. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +load_CS_cache + +IFN3( + IU16, selector, /* (I) 16-bit selector to code segment */ + IU32, descr_addr, /* (I) address of code segment descriptor */ + CPU_DESCR *, entry /* (I) the decoded descriptor */ + ) + + + { + if ( GET_PE() == 0 || GET_VM() == 1 ) + { + /* Real Mode or V86 Mode */ + SET_CS_SELECTOR(selector); + SET_CS_BASE((IU32)selector << 4); + + /* LIMIT is untouched. (cf 80386 PRM Pg14-4) */ + /* (cf i486 PRM Pg22-4) */ + + /* But access rights are updated */ + SET_CS_AR_W(1); /* allow write access */ + SET_CS_AR_R(1); /* allow read access */ + SET_CS_AR_E(0); /* expand up */ + SET_CS_AR_C(0); /* not conforming */ + SET_CS_AR_X(0); /* not big (16-bit) */ + + if ( GET_VM() == 1 ) + SET_CS_AR_DPL(3); + else + SET_CS_AR_DPL(0); + } + else + { + /* Protected Mode */ + + /* show segment has been accessed (i486 only writes if changed) */ +#ifdef SPC486 + if ((entry->AR & ACCESSED) == 0) +#endif /* SPC486 */ + spr_write_byte(descr_addr+5, (IU8)entry->AR | ACCESSED); + entry->AR |= ACCESSED; + + /* the visible bit */ + SET_CS_SELECTOR(selector); + + /* load hidden cache */ + SET_CS_BASE(entry->base); + SET_CS_LIMIT(entry->limit); + /* load attributes from descriptor */ + SET_CS_AR_DPL(GET_AR_DPL(entry->AR)); + SET_CS_AR_R(GET_AR_R(entry->AR)); + SET_CS_AR_C(GET_AR_C(entry->AR)); + SET_CS_AR_X(GET_AR_X(entry->AR)); + + SET_CS_AR_E(0); /* expand up */ + SET_CS_AR_W(0); /* deny write */ + } + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Load SS, both selector and hidden cache. Selector must be valid. */ +/* Only invoked in protected mode. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +load_SS_cache + +IFN3( + IU16, selector, /* (I) 16-bit selector to stack segment */ + IU32, descr_addr, /* (I) address of stack segment descriptor */ + CPU_DESCR *, entry /* (I) the decoded descriptor */ + ) + + + { + /* show segment has been accessed (i486 only writes if changed) */ +#ifdef SPC486 + if ((entry->AR & ACCESSED) == 0) +#endif /* SPC486 */ + spr_write_byte(descr_addr+5, (IU8)entry->AR | ACCESSED); + entry->AR |= ACCESSED; + + /* the visible bit */ + SET_SS_SELECTOR(selector); + + /* load hidden cache */ + SET_SS_BASE(entry->base); + SET_SS_LIMIT(entry->limit); + /* load attributes from descriptor */ + SET_SS_AR_DPL(GET_AR_DPL(entry->AR)); + SET_SS_AR_E(GET_AR_E(entry->AR)); + SET_SS_AR_X(GET_AR_X(entry->AR)); + + SET_SS_AR_W(1); /* must be writeable */ + SET_SS_AR_R(1); /* must be readable */ + SET_SS_AR_C(0); /* not conforming */ + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Load CS selector. */ +/* Take #GP if segment not valid */ +/* Take #NP if segment not present */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +load_code_seg + +IFN1( + IU16, new_cs + ) + + + { + IU32 cs_descr_addr; /* code segment descriptor address */ + CPU_DESCR cs_entry; /* code segment descriptor entry */ + + /* + Given that the CPU should be started from a valid state, we + check CS selectors as if a far call to the same privilege + level was being generated. This is in effect saying yes the + CS could have been loaded by a valid Intel instruction. + This logic may have to be revised if strange LOADALL usage is + found. + */ + + if ( GET_PE() == 0 || GET_VM() == 1 ) + { + /* Real Mode or V86 Mode */ + load_CS_cache(new_cs, (IU32)0, (CPU_DESCR *)0); + } + else + { + /* Protected Mode */ + + if ( selector_outside_GDT_LDT(new_cs, &cs_descr_addr) ) + GP(new_cs, FAULT_LOADCS_SELECTOR); + + /* load descriptor */ + read_descriptor_linear(cs_descr_addr, &cs_entry); + + /* validate possible types of target */ + switch ( descriptor_super_type(cs_entry.AR) ) + { + case CONFORM_NOREAD_CODE: + case CONFORM_READABLE_CODE: + /* access check requires DPL <= CPL */ + if ( GET_AR_DPL(cs_entry.AR) > GET_CPL() ) + GP(new_cs, FAULT_LOADCS_ACCESS_1); + + /* it must be present */ + if ( GET_AR_P(cs_entry.AR) == NOT_PRESENT ) + NP(new_cs, FAULT_LOADCS_NOTPRESENT_1); + break; + + case NONCONFORM_NOREAD_CODE: + case NONCONFORM_READABLE_CODE: + /* access check requires RPL <= CPL and DPL == CPL */ + if ( GET_SELECTOR_RPL(new_cs) > GET_CPL() || + GET_AR_DPL(cs_entry.AR) != GET_CPL() ) + GP(new_cs, FAULT_LOADCS_ACCESS_2); + + /* it must be present */ + if ( GET_AR_P(cs_entry.AR) == NOT_PRESENT ) + NP(new_cs, FAULT_LOADCS_NOTPRESENT_2); + break; + + default: + GP(new_cs, FAULT_LOADCS_BAD_SEG_TYPE); + } + + /* stamp new selector with CPL */ + SET_SELECTOR_RPL(new_cs, GET_CPL()); + + load_CS_cache(new_cs, cs_descr_addr, &cs_entry); + } + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Load A Data Segment Register. (DS, ES, FS, GS) */ +/* Take #GP if segment not valid */ +/* Take #NP if segment not present */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +load_data_seg + +IFN2( + ISM32, indx, + IU16, selector + ) + + + { + IU32 descr_addr; + CPU_DESCR entry; + ISM32 super; + ISM32 dpl; + BOOL is_data; + + if ( GET_PE() == 0 || GET_VM() == 1 ) + { + /* Real Mode or V86 Mode */ + SET_SR_SELECTOR(indx, selector); + SET_SR_BASE(indx, (IU32)selector << 4); + } + else + { + /* Protected Mode */ + if ( selector_is_null(selector) ) + { + /* load is allowed - but later access will fail + * Since the program can not see the internal changes + * performed to achieve this, we make the behaviour + * match the easiest implementation in the A4CPU + */ + SET_SR_SELECTOR(indx, selector); + + /* the following lines were added to make the C-CPU behave like + * the Soft 486 CPU - an investigation is being made to see if this + * behaviour corresponds with the real i486 - this code may have to + * change. + */ + SET_SR_BASE(indx, 0); + SET_SR_LIMIT(indx, 0); + SET_SR_AR_W(indx, 0); + SET_SR_AR_R(indx, 0); + } + else + { + if ( selector_outside_GDT_LDT(selector, &descr_addr) ) + GP(selector, FAULT_LOADDS_SELECTOR); + + read_descriptor_linear(descr_addr, &entry); + + /* check type */ + switch ( super = descriptor_super_type(entry.AR) ) + { + case CONFORM_READABLE_CODE: + case NONCONFORM_READABLE_CODE: + is_data = FALSE; + break; + + case EXPANDUP_READONLY_DATA: + case EXPANDUP_WRITEABLE_DATA: + case EXPANDDOWN_READONLY_DATA: + case EXPANDDOWN_WRITEABLE_DATA: + is_data = TRUE; + break; + + default: + GP(selector, FAULT_LOADDS_BAD_SEG_TYPE); /* bad type */ + } + + /* for data and non-conforming code the access check applies */ + if ( super != CONFORM_READABLE_CODE ) + { + /* access check requires CPL <= DPL and RPL <= DPL */ + dpl = GET_AR_DPL(entry.AR); + if ( GET_CPL() > dpl || GET_SELECTOR_RPL(selector) > dpl ) + GP(selector, FAULT_LOADDS_ACCESS); + } + + /* must be present */ + if ( GET_AR_P(entry.AR) == NOT_PRESENT ) + NP(selector, FAULT_LOADDS_NOTPRESENT); + + /* show segment has been accessed (i486 only writes if changed) */ +#ifdef SPC486 + if ((entry.AR & ACCESSED) == 0) +#endif /* SPC486 */ + spr_write_byte(descr_addr+5, (IU8)entry.AR | ACCESSED); + entry.AR |= ACCESSED; + + /* OK - load up */ + + /* the visible bit */ + SET_SR_SELECTOR(indx, selector); + + /* load hidden cache */ + SET_SR_BASE(indx, entry.base); + SET_SR_LIMIT(indx, entry.limit); + /* load attributes from descriptor */ + SET_SR_AR_DPL(indx, GET_AR_DPL(entry.AR)); + + if ( is_data ) + { + SET_SR_AR_W(indx, GET_AR_W(entry.AR)); + SET_SR_AR_E(indx, GET_AR_E(entry.AR)); + SET_SR_AR_C(indx, 0); /* not conforming */ + } + else + { + SET_SR_AR_C(indx, GET_AR_C(entry.AR)); + SET_SR_AR_W(indx, 0); /* deny write access */ + SET_SR_AR_E(indx, 0); /* expand up */ + } + + SET_SR_AR_X(indx, GET_AR_X(entry.AR)); + + SET_SR_AR_R(indx, 1); /* must be readable */ + } + } + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Load Pseudo Descriptor Semantics for Real Mode or V86 Mode. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +load_pseudo_descr + +IFN1( + ISM32, index /* index to segment register */ + ) + + + { + SET_SR_LIMIT(index, 0xffff); + SET_SR_AR_W(index, 1); /* allow write access */ + SET_SR_AR_R(index, 1); /* allow read access */ + SET_SR_AR_E(index, 0); /* expand up */ + SET_SR_AR_C(index, 0); /* not conforming */ + SET_SR_AR_X(index, 0); /* not big (16-bit) */ + + if ( GET_VM() == 1 ) + SET_SR_AR_DPL(index, 3); + else + SET_SR_AR_DPL(index, 0); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Load Stack Segment Register. (SS) */ +/* Take #GP if segment not valid */ +/* Take #SF if segment not present */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +load_stack_seg + +IFN1( + IU16, selector + ) + + + { + IU32 descr_addr; + CPU_DESCR entry; + + if ( GET_PE() == 0 || GET_VM() == 1 ) + { + /* Real Mode or V86 Mode */ + SET_SS_SELECTOR(selector); + SET_SS_BASE((IU32)selector << 4); + } + else + { + /* Protected Mode */ + check_SS(selector, (ISM32)GET_CPL(), &descr_addr, &entry); + load_SS_cache(selector, descr_addr, &entry); + } + } diff --git a/private/mvdm/softpc.new/base/ccpu386/c_seg.h b/private/mvdm/softpc.new/base/ccpu386/c_seg.h new file mode 100644 index 000000000..f560d169d --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_seg.h @@ -0,0 +1,58 @@ +/*[ + +c_seg.h + +LOCAL CHAR SccsID[]="@(#)c_seg.h 1.4 02/09/94"; + +Segment Register Support. +------------------------- + +]*/ + + +IMPORT VOID load_CS_cache + +IPT3( + IU16, selector, + IU32, descr_addr, + CPU_DESCR *, entry + + ); + +IMPORT VOID load_SS_cache + +IPT3( + IU16, selector, + IU32, descr_addr, + CPU_DESCR *, entry + + ); + +IMPORT VOID load_code_seg + +IPT1( + IU16, selector + + ); + +IMPORT VOID load_data_seg + +IPT2( + ISM32, index, + IU16, selector + + ); + +IMPORT VOID load_pseudo_descr + +IPT1( + ISM32, index + + ); + +IMPORT VOID load_stack_seg + +IPT1( + IU16, selector + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/c_stack.c b/private/mvdm/softpc.new/base/ccpu386/c_stack.c new file mode 100644 index 000000000..1e6d95e08 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_stack.c @@ -0,0 +1,679 @@ +/*[ + +c_stack.c + +LOCAL CHAR SccsID[]="@(#)c_stack.c 1.14 03/03/95"; + +Stack (and related SP/BP access) Support. +----------------------------------------- + +]*/ + + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if defined(PIG) && !defined(PROD) +/* The Soft486 CPU may (when not constrained SAFE_PUSH) corrupt the unwritten + * parts of, say, an interrupt fram which contains 16-bit items pushed into + * 32-bit allocated slots. This defines makes the Pigger blind to these locations. + */ +#define PIG_DONT_CHECK_OTHER_WORD_ON_STACK +#endif /* PIG && !PROD */ + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Semi-intelligent support for Incrementing/Decrementing the Stack */ +/* Pointer(E)SP. */ +/* Alters ESP or SP depending on StackAddrSize. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +byte_change_SP + +IFN1( + IS32, delta + ) + + + { + if ( GET_SS_AR_X() == USE32 ) /* look at SS 'B' bit */ + SET_ESP(GET_ESP() + delta); + else + SET_SP(GET_SP() + delta); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Intelligent support for Incrementing/Decrementing the Stack */ +/* Pointer(E)SP by either words or double words items depending on */ +/* OperandSize. */ +/* Alters ESP or SP depending on StackAddrSize. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +change_SP + +IFN1( + IS32, items + ) + + + { + if ( GET_OPERAND_SIZE() == USE16 ) + items = items * 2; + else /* USE32 */ + items = items * 4; + + if ( GET_SS_AR_X() == USE32 ) /* look at SS 'B' bit */ + SET_ESP(GET_ESP() + items); + else + SET_SP(GET_SP() + items); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Intelligent support for Reading the Frame Pointer(E)BP. */ +/* Returns either EBP or BP depending on StackAddrSize. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL IU32 +get_current_BP() + { + if ( GET_SS_AR_X() == USE32 ) /* look at SS 'B' bit */ + return GET_EBP(); + + return GET_BP(); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Intelligent support for Reading the Stack Pointer(E)SP. */ +/* Returns either ESP or SP depending on StackAddrSize. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL IU32 +GetStackPointer() + { + if ( GET_SS_AR_X() == USE32 ) /* look at SS 'B' bit */ + return GET_ESP(); + + return GET_SP(); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Intelligent support for Writing the Frame Pointer (E)BP. */ +/* Writes EBP or BP depending on StackAddrSize */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +set_current_BP + +IFN1( + IU32, new_bp + ) + + + { + if ( GET_SS_AR_X() == USE32 ) + SET_EBP(new_bp); + else /* USE16 */ + SET_BP(new_bp); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Intelligent support for Writing the Stack Pointer (E)SP. */ +/* Writes ESP or SP depending on StackAddrSize */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +set_current_SP + +IFN1( + IU32, new_sp + ) + + + { + if ( GET_SS_AR_X() == USE32 ) + SET_ESP(new_sp); + else /* USE16 */ + SET_SP(new_sp); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Pop word or double word from the stack. */ +/* Used by instructions which implicitly reference the stack. */ +/* Stack Checking MUST have been completed earlier. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL IU32 +spop() + { + IU32 addr; /* stack address */ + IU32 val; + + /* + Intel describe the algorithm as:- + + if ( StackAddrSize == 16 ) + if ( OperandSize == 16 ) + val <- SS:[SP] // 2-byte + SP = SP + 2 + else // OperandSize == 32 + val <- SS:[SP] // 4-byte + SP = SP + 4 + else // StackAddrSize == 32 + if ( OperandSize == 16 ) + val <- SS:[ESP] // 2-byte + ESP = ESP + 2 + else // OperandSize == 32 + val <- SS:[ESP] // 4-byte + ESP = ESP + 4 + + We achieve the same effect by calling 'intelligent' SP functions + which take account of the StackAddrSize, and concentrate here on + the OperandSize. + */ + + addr = GET_SS_BASE() + GetStackPointer(); + + if ( GET_OPERAND_SIZE() == USE16 ) + { + val = (IU32)vir_read_word(addr, NO_PHYSICAL_MAPPING); + byte_change_SP((IS32)2); + } + else /* USE32 */ + { + val = (IU32)vir_read_dword(addr, NO_PHYSICAL_MAPPING); + byte_change_SP((IS32)4); + } + + return val; + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Push word or double word onto the stack. */ +/* Used by instructions which implicitly reference the stack. */ +/* Stack Checking MUST have been completed earlier. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +spush + +IFN1( + IU32, data /* value to be pushed */ + ) + + + { + IU32 addr; /* stack address */ + + /* + Intel describe the algorithm as:- + + if ( StackAddrSize == 16 ) + if ( OperandSize == 16 ) + SP = SP - 2 + SS:[SP] <- val // 2-byte + else // OperandSize == 32 + SP = SP - 4 + SS:[SP] <- val // 4-byte + else // StackAddrSize == 32 + if ( OperandSize == 16 ) + ESP = ESP - 2 + SS:[ESP] <- val // 2-byte + else // OperandSize == 32 + ESP = ESP - 4 + SS:[ESP] <- val // 4-byte + + We achieve the same effect by calling 'intelligent' SP functions + which take account of the StackAddrSize, and concentrate here on + the OperandSize. + */ + + if ( GET_OPERAND_SIZE() == USE16 ) + { + /* push word */ + byte_change_SP((IS32)-2); + addr = GET_SS_BASE() + GetStackPointer(); + vir_write_word(addr, NO_PHYSICAL_MAPPING, (IU16)data); + } + else /* USE32 */ + { + /* push double word */ + byte_change_SP((IS32)-4); + addr = GET_SS_BASE() + GetStackPointer(); + vir_write_dword(addr, NO_PHYSICAL_MAPPING, (IU32)data); + } + } + +#ifdef PIG +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Push word or double word onto the stack. */ +/* Used by instructions which implicitly reference the stack. */ +/* Stack Checking MUST have been completed earlier. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +spush_flags + +IFN1( + IU32, data /* value to be pushed */ + ) + + + { + IU32 addr; /* stack address */ + + /* + * see comment for spush(). + */ + + if ( GET_OPERAND_SIZE() == USE16 ) + { + /* push word */ + byte_change_SP((IS32)-2); + addr = GET_SS_BASE() + GetStackPointer(); + vir_write_word(addr, NO_PHYSICAL_MAPPING, (IU16)data); + + /* + * record the address at which we may not know the flags value + * -- we will examine PigIgnoreFlags when the EDL CPU runs to check + * if there's a problem. + */ + record_flags_addr(addr); + } + else /* USE32 */ + { + /* push double word */ + byte_change_SP((IS32)-4); + addr = GET_SS_BASE() + GetStackPointer(); + vir_write_dword(addr, NO_PHYSICAL_MAPPING, (IU32)data); + + /* + * no need to record word at addr+2 as the flags are always known for this word + */ + record_flags_addr(addr); + } + } +#endif /* PIG */ + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Push word onto the stack. */ +/* Operand size of 32 will still push 16 bits of data, but the stack */ +/* pointer is adjusted by 4. */ +/* Used by PUSH segment-register */ +/* Stack Checking MUST have been completed earlier. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +spush16 + +IFN1( + IU32, data /* value to be pushed */ + ) + + + { + IU32 addr; /* stack address */ + + if ( GET_OPERAND_SIZE() == USE16 ) + { + /* stack item size is word */ + byte_change_SP((IS32)-2); + addr = GET_SS_BASE() + GetStackPointer(); + vir_write_word(addr, NO_PHYSICAL_MAPPING, (IU16)data); + } + else /* USE32 */ + { + /* stack item size is double word */ + byte_change_SP((IS32)-4); + addr = GET_SS_BASE() + GetStackPointer(); + vir_write_word(addr, NO_PHYSICAL_MAPPING, (IU16)data); +#ifdef PIG_DONT_CHECK_OTHER_WORD_ON_STACK + cannot_vir_write_word(addr+2, NO_PHYSICAL_MAPPING, 0x0000); +#endif /* PIG_DONT_CHECK_OTHER_WORD_ON_STACK */ + } + } + +#ifdef PIG +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Push word onto the stack. */ +/* Operand size of 32 will still push 16 bits of data, but the stack */ +/* pointer is adjusted by 4. */ +/* Used by PUSH segment-register */ +/* Stack Checking MUST have been completed earlier. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +spush16_flags + +IFN1( + IU32, data /* value to be pushed */ + ) + + + { + IU32 addr; /* stack address */ + + if ( GET_OPERAND_SIZE() == USE16 ) + { + /* stack item size is word */ + byte_change_SP((IS32)-2); + addr = GET_SS_BASE() + GetStackPointer(); + vir_write_word(addr, NO_PHYSICAL_MAPPING, (IU16)data); + record_flags_addr(addr); + } + else /* USE32 */ + { + /* stack item size is double word */ + byte_change_SP((IS32)-4); + addr = GET_SS_BASE() + GetStackPointer(); + vir_write_word(addr, NO_PHYSICAL_MAPPING, (IU16)data); + record_flags_addr(addr); +#ifdef PIG_DONT_CHECK_OTHER_WORD_ON_STACK + cannot_vir_write_word(addr+2, NO_PHYSICAL_MAPPING, 0x0000); +#endif /* PIG_DONT_CHECK_OTHER_WORD_ON_STACK */ + } + } +#endif /* PIG */ + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Temporary Pop word or double word from the stack. */ +/* (E)SP is not changed by this instruction. */ +/* Used by instructions which implicitly reference the stack. */ +/* Stack Checking MUST have been completed earlier. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL IU32 +tpop + +IFN2( + LIN_ADDR, item_offset, /* item offset(from stack top) to required item */ + LIN_ADDR, byte_offset /* byte offset (additional to item_offset) */ + ) + + + { + IU32 addr; /* stack address */ + IS32 offset; /* total offset from stack top */ + IU32 val; + + if ( GET_OPERAND_SIZE() == USE16 ) + offset = item_offset * 2 + byte_offset; + else /* USE32 */ + offset = item_offset * 4 + byte_offset; + + /* calculate offset address in 32/16bit arithmetic */ + addr = GetStackPointer() + offset; + if ( GET_SS_AR_X() == 0 ) /* look at SS 'B' bit */ + addr &= WORD_MASK; + + /* then add segment address */ + addr += GET_SS_BASE(); + + if ( GET_OPERAND_SIZE() == USE16 ) + val = (IU32)vir_read_word(addr, NO_PHYSICAL_MAPPING); + else /* USE32 */ + val = (IU32)vir_read_dword(addr, NO_PHYSICAL_MAPPING); + + return val; + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Check new stack has space for a given number of bytes. */ +/* Take #SF(0) if insufficient room on stack (as in 80386 manual) */ +/* Take #SF(sel) if insufficient room on stack (as in i486 manual) */ +/* Take #PF if page fault. */ +/* Stack wrapping is not supported by this routine. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +validate_new_stack_space + +IFN4( + LIN_ADDR, nr_items, /* (I) number of items which must exist */ + LIN_ADDR, stack_top, /* (I) stack pointer */ + CPU_DESCR *, entry, /* (I) pntr to descriptor cache entry for + stack */ + IU16, stack_sel /* (I) selector of new stack */ + ) + + + { + ISM32 bytes; + IU32 upper; + IU32 offset; + ISM32 i; + +/* The 80386 & i486 PRMs disagree on this matter... the EDL i486 CPU matches + the i486 manual - which seems to do the more sensible thing - until an + experiment is done to show which is the correct behaviour, we'll do what + the book says... + */ + +#ifdef SPC486 +#define XX_error_code stack_sel +#else +#define XX_error_code 0 +#endif + + if ( GET_OPERAND_SIZE() == USE16 ) + bytes = nr_items * 2; + else /* USE32 */ + bytes = nr_items * 4; + + if ( GET_AR_E(entry->AR) == 0 ) + { + /* expand up */ + if ( stack_top < bytes || (stack_top - 1) > entry->limit ) + SF(XX_error_code, FAULT_VALNEWSPC_SS_LIMIT_16); /* limit check fails */ + } + else + { + /* expand down */ + if ( GET_AR_X(entry->AR) == USE16 ) + upper = 0xffff; + else /* USE32 */ + upper = 0xffffffff; + + if ( stack_top <= (entry->limit + bytes) || + (stack_top - 1) > upper ) + SF(XX_error_code, FAULT_VALNEWSPC_SS_LIMIT_32); /* limit check fails */ + } + + /* finally do paging unit checks */ + offset = stack_top - bytes; + + for ( i = 0; i < nr_items; i++ ) + { + if ( GET_OPERAND_SIZE() == USE16 ) + { + spr_chk_word(entry->base + offset, PG_W); + offset += 2; + } + else + { + spr_chk_dword(entry->base + offset, PG_W); + offset += 4; + } + } + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Check stack holds a given number of operands. */ +/* Take #GP(0) or #SF(0) if insufficient data on stack. */ +/* Take #PF if page fault. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +validate_stack_exists + +IFN2( + BOOL, use_bp, /* (I) if true use (E)BP not (E)SP to address + stack */ + LIN_ADDR, nr_items /* (I) number of operands which must exist on + stack */ + ) + + + { + IU32 offset; + ISM32 operand_size; + ISM32 i; + + offset = use_bp ? get_current_BP() : GetStackPointer(); + + if ( GET_OPERAND_SIZE() == USE16 ) + operand_size = 2; /* word */ + else /* USE32 */ + operand_size = 4; /* double word */ + + /* do access check */ + if ( GET_SS_AR_R() == 0 ) + { + /* raise exception - something wrong with stack access */ + if ( GET_PE() == 0 || GET_VM() == 1 ) + GP((IU16)0, FAULT_VALSTACKEX_ACCESS); + else + SF((IU16)0, FAULT_VALSTACKEX_ACCESS); + } + + /* do limit check */ + limit_check(SS_REG, offset, nr_items, operand_size); + + /* finally do paging unit checks */ + for ( i = 0; i < nr_items; i++ ) + { + if ( operand_size == 2 ) + { + (VOID)usr_chk_word(GET_SS_BASE() + offset, PG_R); + } + else + { + (VOID)usr_chk_dword(GET_SS_BASE() + offset, PG_R); + } + + offset += operand_size; + if ( GET_SS_AR_X() == 0 ) /* look at SS 'B' bit */ + offset &= WORD_MASK; /* apply 16-bit arith if reqd */ + } + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Check stack has space for a given number of operands. */ +/* Take #GP(0) or #SF(0) if insufficient room on stack. */ +/* Take #PF if page fault. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +validate_stack_space + +IFN2( + BOOL, use_bp, /* (I) if true use (E)BP not (E)SP to address + stack */ + LIN_ADDR, nr_items /* (I) number of items which must exist on + stack */ + ) + + + { + IU32 offset; + ISM32 operand_size; + IS32 size; + ISM32 i; + + if ( GET_OPERAND_SIZE() == USE16 ) + operand_size = 2; /* word */ + else /* USE32 */ + operand_size = 4; /* double word */ + + /* calculate (-ve) total data size */ + size = nr_items * -operand_size; + + /* get current stack base */ + offset = use_bp ? get_current_BP() : GetStackPointer(); + + /* hence form lowest memory address of new data to be pushed */ + /* in 32/16bit arithmetic */ + offset = offset + size; + if ( GET_SS_AR_X() == 0 ) /* look at SS 'B' bit */ + offset &= WORD_MASK; + + /* do access check */ + if ( GET_SS_AR_W() == 0 ) + { + /* raise exception - something wrong with stack access */ + if ( GET_PE() == 0 || GET_VM() == 1 ) + GP((IU16)0, FAULT_VALSTKSPACE_ACCESS); + else + SF((IU16)0, FAULT_VALSTKSPACE_ACCESS); + } + + /* do limit check */ + limit_check(SS_REG, offset, nr_items, operand_size); + + /* finally do paging unit checks */ + for ( i = 0; i < nr_items; i++ ) + { + if ( operand_size == 2 ) + { + (VOID)usr_chk_word(GET_SS_BASE() + offset, PG_W); + } + else + { + (VOID)usr_chk_dword(GET_SS_BASE() + offset, PG_W); + } + + offset += operand_size; + if ( GET_SS_AR_X() == 0 ) /* look at SS 'B' bit */ + offset &= WORD_MASK; /* apply 16-bit arith if reqd */ + } + } + +#ifdef PIG + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Record a (physical) ESP value for later use if PigIgnoreFlags is */ +/* set by the EDL CPU after the pigger has run. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL void +record_flags_addr IFN1(LIN_ADDR, lin_addr) +{ + IU32 phy_addr; + + if ( GET_PG() == 1 ) + { + /* + * we ask for supervisor access because the access has + * already been checked by the push. We dont know the + * U/S used then but asking for PG_S will always work. + */ + phy_addr = lin2phy(lin_addr, PG_S | PG_W); + } + else + phy_addr = lin_addr; + + /* printf("recording stack flags push @ lin: %x, phy %x\n", lin_addr, phy_addr); */ + + pig_fault_write(phy_addr, (~ARITH_FLAGS_BITS) & 0xff); + + /* + * short-cut - if bottom bits not 0xfff then we can just add 1 + * to the physical addr for byte 2. Otherwise we have to recalculate + * the whole address. + */ + if (((phy_addr & 0xfff) != 0xfff) || (GET_PG() == 0)) + pig_fault_write(phy_addr + 1, ((~ARITH_FLAGS_BITS) >> 8) & 0xff); + else + { + phy_addr = lin2phy(lin_addr + 1, PG_S | PG_W); + pig_fault_write(phy_addr, ((~ARITH_FLAGS_BITS) >> 8) & 0xff); + } +} + +#endif + diff --git a/private/mvdm/softpc.new/base/ccpu386/c_stack.h b/private/mvdm/softpc.new/base/ccpu386/c_stack.h new file mode 100644 index 000000000..e1722d75d --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_stack.h @@ -0,0 +1,149 @@ +/*[ + +c_stack.h + +LOCAL CHAR SccsID[]="@(#)c_stack.h 1.11 03/03/95"; + +Stack (and related SP/BP access) Support. +----------------------------------------- + +]*/ + + +/* + SP/BP indicator for stack checking operations. + */ +#define USE_SP FALSE +#define USE_BP TRUE + +/* + Useful defines for tpop(),validate_stack_exists(), + validate_stack_space() and change_SP() parameters. + */ +#define NR_ITEMS_1 1 +#define NR_ITEMS_2 2 +#define NR_ITEMS_3 3 +#define NR_ITEMS_4 4 +#define NR_ITEMS_5 5 +#define NR_ITEMS_6 6 +#define NR_ITEMS_8 8 +#define NR_ITEMS_9 9 + +#define STACK_ITEM_1 (IUM32)0 +#define STACK_ITEM_2 (IUM32)1 +#define STACK_ITEM_3 (IUM32)2 +#define STACK_ITEM_4 (IUM32)3 +#define STACK_ITEM_5 (IUM32)4 +#define STACK_ITEM_6 (IUM32)5 +#define STACK_ITEM_7 (IUM32)6 +#define STACK_ITEM_8 (IUM32)7 +#define STACK_ITEM_9 (IUM32)8 + +#define NULL_BYTE_OFFSET (IUM32)0 + + +IMPORT VOID byte_change_SP + +IPT1( + IS32, delta + + ); + +IMPORT VOID change_SP + +IPT1( + IS32, items + + ); + +IMPORT IU32 get_current_BP IPT0(); + +IMPORT IU32 GetStackPointer IPT0(); + +IMPORT VOID set_current_BP + +IPT1( + IU32, new_bp + + ); + +IMPORT VOID set_current_SP + +IPT1( + IU32, new_sp + + ); + +IMPORT IU32 spop IPT0(); + +IMPORT VOID spush + +IPT1( + IU32, data + + ); + +#ifdef PIG +IMPORT VOID spush_flags + +IPT1( + IU32, data + + ); +#endif /* PIG */ + +IMPORT VOID spush16 + +IPT1( + IU32, data + + ); + +#ifdef PIG +IMPORT VOID spush16_flags + +IPT1( + IU32, data + + ); +#endif /* PIG */ + + +IMPORT IU32 tpop + +IPT2( + LIN_ADDR, item_offset, + LIN_ADDR, byte_offset + + ); + +IMPORT VOID validate_new_stack_space + +IPT4( + LIN_ADDR, bytes, + LIN_ADDR, stack_top, + CPU_DESCR *, entry, + IU16, stack_sel + + ); + +IMPORT VOID validate_stack_exists + +IPT2( + BOOL, use_bp, + LIN_ADDR, nr_items + + ); + +IMPORT VOID validate_stack_space + +IPT2( + BOOL, use_bp, + LIN_ADDR, nr_items + + ); + +IMPORT void touch_flags_memory IPT0(); +IMPORT void init_flags_esp_list IPT0(); +IMPORT void record_flags_addr IPT1(LIN_ADDR, addr); + diff --git a/private/mvdm/softpc.new/base/ccpu386/c_tlb.c b/private/mvdm/softpc.new/base/ccpu386/c_tlb.c new file mode 100644 index 000000000..bbf9cabe5 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_tlb.c @@ -0,0 +1,953 @@ +/*[ + +c_tlb.c + +LOCAL CHAR SccsID[]="@(#)c_tlb.c 1.17 03/15/95"; + +Translation Lookaside Buffer Emulation. +--------------------------------------- + +]*/ + + +/* + Indicator for 'optimised lookup' format TLB. + */ +#define FAST_TLB + +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + The 386 TLB is an 8 entry 4 way set associative cache. It is known + that cache sets are not allocated on an LRU basis, we assume simple + round robin allocation per entry. + */ + +typedef struct + { + IU32 la; /* Bits 32-12 => 20-bit Linear Address */ + IU32 pa; /* Bits 32-12 => 20-bit Physical Address */ + BOOL v; /* Validity indicator, true means valid */ + BOOL d; /* Dirty indicator, true means dirty */ + IU32 mode; /* 2-bit Mode indicator + Bit 0 => R/W + Bit 1 => U/S */ + } TLB_ENTRY; + +#define NR_TLB_SETS 4 +#define NR_TLB_ENTRIES 8 + +/* + The Intel format TLB data structures. + */ +LOCAL TLB_ENTRY tlb[NR_TLB_SETS][NR_TLB_ENTRIES]; +LOCAL IU32 next_set[NR_TLB_ENTRIES] = + { + 0, 0, 0, 0, 0, 0, 0, 0 + }; + +#ifdef FAST_TLB + +/* + We allocate one byte per Intel page; this 'page_index' allows us + to tell quickly if a page translation is held in the TLB and where + we can find the translated address. The format is arranged for + minimal access checks. Each byte has the format:- + + 1) 7 0 + ========== + |00000000| Page Not Mapped. + ========== + + 2) 7 6 5 4 2 10 + ================ + |1|Set|Entry|00| Page Mapped in given set and entry of TLB. + ================ + */ + +#define NR_PAGES 1048576 /* 2^20 */ + +LOCAL IU8 page_index[NR_PAGES]; + +#define PI_NOT_VALID 0 +#define PI_VALID 0x80 +#define PI_SET_ENTRY_MASK 0x7c +#define PI_SET_SHIFT 5 +#define PI_ENTRY_SHIFT 2 + +/* + We also allocate an array of translated (ie physical) addresses, + indexed by the Set:Entry combination in the page_index. For each + combination four sequential addresses are allocated for the various + access modes:- + + Supervisor Read + Supervisor Write + User Read + User Write + + A translation address of zero is taken to mean that no translation + is held (It is easy to check for zero). This has the slight side + effect that though we may enter address translations for zero (ie + the first page of physical memory) we never get a 'hit' for them, so + access to the first page of physical memory is always through the + slow Intel format TLB. + */ + +#define NR_ACCESS_MODES 4 + +#define NO_MAPPED_ADDRESS 0 + +LOCAL IU32 page_address[NR_TLB_SETS * NR_TLB_ENTRIES * NR_ACCESS_MODES]; + +#endif /* FAST_TLB */ + +/* + Linear Addresses are composed as follows:- + + 3 2 2 1 1 + 1 2 1 2 1 0 + ==================================== + |directory | table | offset | + ==================================== + */ + +#define OFFSET_MASK 0xfff +#define TBL_MASK 0x3ff +#define DIR_MASK 0x3ff +#define TBL_SHIFT 12 +#define DIR_SHIFT 22 +#define DIR_TBL_SHIFT 12 + +/* + Page Directory Entries (PDE) or + Page Table Entries (PTE) are composed as follows:- + + 3 2 + 1 2 6 5 2 1 0 + ========================================= + | | | | | |U|R| | + | page frame address | |D|A| |/|/|P| + | | | | | |S|W| | + ========================================= + */ + +#define PE_PFA_MASK 0xfffff000 +#define PE_P_MASK 0x1 +#define PE_U_S_MASK 0x4 +#define PE_R_W_MASK 0x2 + +#define PE_DIRTY 0x40 +#define PE_ACCESSED 0x20 + +/* + TR7 = Test Data Register:- + + 3 1 + 1 2 4 32 + ====================================== + | | |H| R| | + | Physical Address | |T| E| | + | | | | P| | + ====================================== + + TR6 = Test Command Register:- + + 3 1 1 1 + 1 2 1 0 9 8 7 6 5 0 + =========================================== + | Linear Address |V|D|D|U|U|W|W| |C| + | | | |#| |#| |#| | | + =========================================== + */ + +#define TCR_LA_MASK 0xfffff000 +#define TCR_V_MASK 0x800 +#define TCR_D_MASK 0x400 +#define TCR_ND_MASK 0x200 +#define TCR_U_MASK 0x100 +#define TCR_NU_MASK 0x80 +#define TCR_W_MASK 0x40 +#define TCR_NW_MASK 0x20 +#define TCR_C_MASK 0x1 +#define TCR_ATTR_MASK 0x7e0 + +#define TDR_PA_MASK 0xfffff000 +#define TDR_HT_MASK 0x10 +#define TDR_REP_MASK 0xc + +#define TDR_REP_SHIFT 2 + +/* + Encoded access check matrix, true indicates access failure. + */ + +#ifdef SPC486 + +/* WP reqd avail */ +LOCAL BOOL access_check[2] [4] [4] = + { + { /* WP = 0 */ + /* S_R S_W U_R U_W */ + { FALSE, FALSE, FALSE, FALSE }, /* S_R */ + { FALSE, FALSE, FALSE, FALSE }, /* S_W */ + { TRUE , TRUE , FALSE, FALSE }, /* U_R */ + { TRUE , TRUE , TRUE , FALSE } /* U_W */ + }, + { /* WP = 1 */ + /* S_R S_W U_R U_W */ + { FALSE, FALSE, FALSE, FALSE }, /* S_R */ + { FALSE, FALSE, TRUE , FALSE }, /* S_W */ + { TRUE , TRUE , FALSE, FALSE }, /* U_R */ + { TRUE , TRUE , TRUE , FALSE } /* U_W */ + } + }; + +#else + +/* reqd avail */ +LOCAL BOOL access_check[4] [4] = + { + /* S_R S_W U_R U_W */ + { FALSE, FALSE, FALSE, FALSE }, /* S_R */ + { FALSE, FALSE, FALSE, FALSE }, /* S_W */ + { TRUE , TRUE , FALSE, FALSE }, /* U_R */ + { TRUE , TRUE , TRUE , FALSE } /* U_W */ + }; + +#endif /* SPC486 */ + +LOCAL void deal_with_pte_cache_hit IPT1(IU32, linearAddress); +GLOBAL void Pig_NotePDECacheAccess IPT2(IU32, linearAddress, IU32, accessBits); +GLOBAL void Pig_NotePTECacheAccess IPT2(IU32, linearAddress, IU32, accessBits); + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Flush TLB. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +flush_tlb() + { + ISM32 set, entry; + TLB_ENTRY *e; + + for ( set = 0; set < NR_TLB_SETS; set++ ) + for ( entry = 0; entry < NR_TLB_ENTRIES; entry++ ) + { + e = &tlb[set][entry]; +#ifdef FAST_TLB + if ( e->v ) + { + /* Remove associated page_index entry */ + page_index[e->la >> DIR_TBL_SHIFT] = PI_NOT_VALID; + } +#endif /* FAST_TLB */ + e->v = FALSE; + } + } + +#ifdef SPC486 + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Invalidate TLB entry. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +invalidate_tlb_entry + +IFN1( + IU32, lin /* Linear Address */ + ) + + + { + ISM32 set, entry; + TLB_ENTRY *e; /* current tlb entry */ + + entry = lin >> DIR_TBL_SHIFT & 0x07; /* isolate bits 14-12 */ + lin = lin & ~OFFSET_MASK; /* drop any offset */ + + for ( set = 0; set < NR_TLB_SETS; set++ ) + { + e = &tlb[set][entry]; + + if ( e->v && e->la == lin ) + { + /* Valid entry for given address: Flush it. */ +#ifdef FAST_TLB + /* Remove associated page_index entry */ + page_index[e->la >> DIR_TBL_SHIFT] = PI_NOT_VALID; +#endif /* FAST_TLB */ + e->v = FALSE; + } + } + } + +#endif /* SPC486 */ + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Map linear address to physical address. */ +/* May take #PF. Used by all internal C CPU functions. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL IU32 +lin2phy + +IFN2( + IU32, lin, /* Linear Address */ + ISM32, access /* access mode Bit 0 => R/W + Bit 1 => U/S */ + ) + + + { + IU8 pi; /* page_index entry */ + IU32 ma; /* mapped address */ + + IU32 pde_addr; /* Address of Page Directory Entry */ + IU32 pte_addr; /* Address of Page Table Entry */ + IU32 pde; /* Page Directory Entry */ + IU32 pte; /* Page Table Entry */ + IU32 new_pde; /* Page Directory Entry (to write back) */ + IU32 new_pte; /* Page Table Entry (to write back) */ + + ISM32 set, entry; + IU32 lookup; /* Linear address minus offset */ + BOOL read_op; /* true if read operation */ + IU32 comb; /* Combined protection of pde and pte */ + TLB_ENTRY *e; /* current tlb entry */ + +#ifdef FAST_TLB + + /* Search optimised format TLB */ + if ( pi = page_index[lin >> DIR_TBL_SHIFT] ) + { + /* we have hit for the page, get mapped address */ + if ( ma = page_address[(pi & PI_SET_ENTRY_MASK) + access] ) + { + /* we have hit for access type */ + return ma | lin & OFFSET_MASK; + } + } + + /* Otherwise do things the Intel way. */ + +#endif /* FAST_TLB */ + + /* Check for entry in TLB <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/ + + entry = lin >> DIR_TBL_SHIFT & 0x07; /* isolate bits 14-12 */ + lookup = lin & ~OFFSET_MASK; + read_op = (access & PG_W) ? FALSE : TRUE; + + for ( set = 0; set < NR_TLB_SETS; set++ ) + { + e = &tlb[set][entry]; + /* + The TLB may have a READ miss (address not in TLB) or a WRITE + miss (address not in TLB or address in TLB but dirty bit not + set). For either case a new cache entry is created. + */ + if ( e->v && e->la == lookup && (read_op || e->d) ) + { + /* Cache Hit <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ + + /* check access validity */ +#ifdef SPC486 + if ( access_check[GET_WP()][access][e->mode] ) +#else + if ( access_check[access][e->mode] ) +#endif /* SPC486 */ + { + /* Protection Failure */ + SET_CR(CR_PFLA, lin); + PF((IU16)(access << 1 | 1), FAULT_LIN2PHY_ACCESS); + } + + /* return cached physical address */ + return e->pa | lin & OFFSET_MASK; + } + } + + /* Cache Miss <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/ + + /* check that pde is present */ + pde_addr = (GET_CR(CR_PDBR) & PE_PFA_MASK) + + ((lin >> DIR_SHIFT & DIR_MASK) << 2); + pde = phy_read_dword(pde_addr); + + if ( (pde & PE_P_MASK) == 0 ) + { + /* pde not present */ + SET_CR(CR_PFLA, lin); + PF((IU16)(access << 1), FAULT_LIN2PHY_PDE_NOTPRESENT); + } + + /* check that pte is present */ + pte_addr = (pde & PE_PFA_MASK) + + ((lin >> TBL_SHIFT & TBL_MASK) << 2); + pte = phy_read_dword(pte_addr); + + if ( (pte & PE_P_MASK) == 0 ) + { + /* pte not present */ + SET_CR(CR_PFLA, lin); + PF((IU16)(access << 1), FAULT_LIN2PHY_PTE_NOTPRESENT); + } + + /* combine pde and pte protection (and convert into our format) + * + * The i486 HARDWARE manual says take the numerically lower of + * the combined bits. + */ + + if ( (pde & ( PE_U_S_MASK|PE_R_W_MASK )) < (pte & ( PE_U_S_MASK|PE_R_W_MASK ))) + { + /* The pde defines protection */ + comb = PG_R | PG_S; + if ( pde & PE_U_S_MASK ) + comb |= PG_U; + if ( pde & PE_R_W_MASK ) + comb |= PG_W; + } + else + { + /* The pte defines protection */ + comb = PG_R | PG_S; + if ( pte & PE_U_S_MASK ) + comb |= PG_U; + if ( pte & PE_R_W_MASK ) + comb |= PG_W; + } + + + /* check access validity */ +#ifdef SPC486 + if ( access_check[GET_WP()][access][comb] ) +#else + if ( access_check[access][comb] ) +#endif /* SPC486 */ + { + /* Protection Failure */ + SET_CR(CR_PFLA, lin); + PF((IU16)(access << 1 | 1), FAULT_LIN2PHY_PROTECT_FAIL); + } + + /* OK - allocate cache entry */ + set = next_set[entry]; + next_set[entry] += 1; + next_set[entry] &= 0x3; /* 0,1,2,3,0,1,2.... */ + + e = &tlb[set][entry]; + +#ifdef FAST_TLB + + /* Clear any page_index for old entry */ + if ( e->v ) + { + page_index[e->la >> DIR_TBL_SHIFT] = PI_NOT_VALID; + } + +#endif /* FAST_TLB */ + + e->la = lookup; + e->v = TRUE; + e->mode = comb; + e->pa = pte & PE_PFA_MASK; + e->d = !read_op; + +#ifdef FAST_TLB + + /* Set up page_index and associated addresses */ + pi = set << PI_SET_SHIFT | entry << PI_ENTRY_SHIFT; + page_index[e->la >> DIR_TBL_SHIFT] = PI_VALID | pi; + + /* minimal mappings */ + page_address[pi | PG_S | PG_R] = e->pa; + page_address[pi | PG_S | PG_W] = NO_MAPPED_ADDRESS; + page_address[pi | PG_U | PG_R] = NO_MAPPED_ADDRESS; + page_address[pi | PG_U | PG_W] = NO_MAPPED_ADDRESS; + + /* now augment mappings if possible */ + if ( e->d ) + { + page_address[pi | PG_S | PG_W] = e->pa; + } + + if ( e->mode >= PG_U ) + { + page_address[pi | PG_U | PG_R] = e->pa; + + if ( e->mode & PG_W && e->d ) + { + page_address[pi | PG_U | PG_W] = e->pa; + } + } + +#endif /* FAST_TLB */ + + /* update in memory page entries */ + new_pde = pde | PE_ACCESSED; + new_pte = pte | PE_ACCESSED; + + if ( e->d ) + { + new_pte |= PE_DIRTY; + } + + if (new_pte != pte) + { + phy_write_dword(pte_addr, new_pte); +#ifdef PIG + save_last_xcptn_details("PTE %08x: %03x => %03x", pte_addr, pte & 0xFFF, new_pte & 0xFFF, 0, 0); + if (((new_pte ^ pte) == PE_ACCESSED) && ignore_page_accessed()) + cannot_phy_write_byte(pte_addr, ~PE_ACCESSED); +#endif + } + + if (new_pde != pde) + { + phy_write_dword(pde_addr, new_pde); +#ifdef PIG + save_last_xcptn_details("PDE %08x: %03x => %03x", pde_addr, pde & 0xFFF, new_pde & 0xFFF, 0, 0); + if ((new_pde ^ pde) == PE_ACCESSED) + cannot_phy_write_byte(pde_addr, ~PE_ACCESSED); +#endif + } + + /* return newly cached physical address */ + return e->pa | lin & OFFSET_MASK; + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* TLB Test Operation ie writes to Test Registers. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +test_tlb() + { + ISM32 set, entry; + TLB_ENTRY *e; /* current TLB entry */ + IU32 tcr; /* local copy of test command register */ + IU32 tdr; /* local copy of test data register */ + IU32 lookup; /* linear address to be looked up */ + BOOL reqd_v; /* validity required in lookup mode */ + IU32 temp_u; /* U/S to be set in write mode */ + + fprintf(stderr, "Testing TLB.\n"); + + tcr = GET_TR(TR_TCR); + tdr = GET_TR(TR_TDR); + entry = tcr >> DIR_TBL_SHIFT & 0x7; /* Take bits 14-12 */ + + if ( tcr & TCR_C_MASK ) + { + /* C = 1 => lookup TLB entry */ + lookup = tcr & TCR_LA_MASK; + reqd_v = (tcr & TCR_V_MASK) != 0; + + for ( set = 0; set < NR_TLB_SETS; set++ ) + { + /* Note search in test mode includes the validity bit */ + e = &tlb[set][entry]; + if ( e->v == reqd_v && e->la == lookup ) + { + /* HIT */ + + tdr = e->pa; /* write phys addr */ + tdr = tdr | TDR_HT_MASK; /* HT = 1 */ + tdr = tdr | set << TDR_REP_SHIFT; /* REP = set */ + SET_TR(TR_TDR, tdr); + + tcr = tcr & ~TCR_ATTR_MASK; /* clear all attributes */ + + /* set attributes from cached values */ + if ( e->d ) + tcr = tcr | TCR_D_MASK; + else + tcr = tcr | TCR_ND_MASK; + + if ( e->mode & PG_U ) + tcr = tcr | TCR_U_MASK; + else + tcr = tcr | TCR_NU_MASK; + + if ( e->mode & PG_W ) + tcr = tcr | TCR_W_MASK; + else + tcr = tcr | TCR_NW_MASK; + + SET_TR(TR_TCR, tcr); + return; + } + } + + /* lookup MISS */ + tdr = tdr & ~TDR_HT_MASK; /* HT = 0 */ + SET_TR(TR_TDR, tdr); + } + else + { + /* C = 0 => write TLB entry */ + + if ( tdr & TDR_HT_MASK ) + { + /* REP field gives set */ + set = (tdr & TDR_REP_MASK) >> TDR_REP_SHIFT; + } + else + { + /* choose set ourselves */ + set = next_set[entry]; + next_set[entry] += 1; + next_set[entry] &= 0x3; /* 0,1,2,3,0,1,2.... */ + } + + e = &tlb[set][entry]; + +#ifdef FAST_TLB + + /* Clear any page_index for old entry */ + if ( e->v ) + { + page_index[e->la >> DIR_TBL_SHIFT] = PI_NOT_VALID; + } + +#endif /* FAST_TLB */ + + /* set up cache info. */ + e->pa = tdr & TDR_PA_MASK; + e->la = tcr & TCR_LA_MASK; + e->v = (tcr & TCR_V_MASK) != 0; + e->d = (tcr & TCR_D_MASK) != 0; + e->mode = (tcr & TCR_W_MASK) != 0; + temp_u = (tcr & TCR_U_MASK) != 0; + e->mode = e->mode | temp_u << 1; + } + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Map external linear address to physical address. */ +/* Used only by functions external to the C CPU. */ +/* Does not take #PF and does not alter contents of TLB. */ +/* Returns TRUE if mapping done, else FALSE. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL IBOOL +xtrn2phy IFN3 + ( + LIN_ADDR, lin, /* Linear Address */ + IUM8, access_request, /* access mode request */ + /* Bit 0 => R/W (as per 486) */ + /* Bit 1 => U/S (as per 486) */ + /* Bit 2 => if set only return mapping + if accessed and dirty bits are set + for the required address translation. + */ + PHY_ADDR *, phy /* pntr to Physical Address */ + ) + { + IU32 pde_addr; /* Address of PDE */ + IU32 pte_addr; /* Address of PTE */ + IU32 pde; /* Page Directory Entry */ + IU32 pte; /* Page Table Entry */ + IU32 new_pde; /* Page Directory Entry (to write back) */ + IU32 new_pte; /* Page Table Entry (to write back) */ + + ISM32 set, entry; + IUM8 access; /* 486 access mode */ + BOOL read_op; /* true if read operation */ + IU32 comb; /* Combined protection of pde and pte */ + IU32 lookup; /* Linear address minus offset */ + IU8 pi; /* page_index entry */ + IU32 ma; /* mapped address */ + TLB_ENTRY *e; /* current tlb entry */ + + access = access_request & 0x3; /* isolate 486 part of access mode */ + +#ifdef FAST_TLB + + /* Search optimised format TLB */ + if ( pi = page_index[lin >> DIR_TBL_SHIFT] ) + { + /* we have hit for the page, get mapped address */ + if ( ma = page_address[(pi & PI_SET_ENTRY_MASK) + access] ) + { + /* we have hit for access type */ + *phy = ma | lin & OFFSET_MASK; + return TRUE; + } + } + + /* Otherwise do things the Intel way. */ + +#endif /* FAST_TLB */ + + /* Check for entry in TLB */ + + entry = lin >> DIR_TBL_SHIFT & 0x07; /* isolate bits 14-12 */ + lookup = lin & ~OFFSET_MASK; + read_op = (access & PG_W) ? FALSE : TRUE; + + for ( set = 0; set < NR_TLB_SETS; set++ ) + { + e = &tlb[set][entry]; + if ( e->v && e->la == lookup && (read_op || e->d) ) + { + /* Cache Hit */ + + /* check access validity */ +#ifdef SPC486 + if ( access_check[GET_WP()][access][e->mode] ) +#else + if ( access_check[access][e->mode] ) +#endif /* SPC486 */ + { + return FALSE; + } + + *phy = e->pa | lin & OFFSET_MASK; + return TRUE; + } + } + + /* Cache Miss */ + + /* check that pde is present */ + pde_addr = (GET_CR(CR_PDBR) & PE_PFA_MASK) + + ((lin >> DIR_SHIFT & DIR_MASK) << 2); + pde = phy_read_dword(pde_addr); + + if ( (pde & PE_P_MASK) == 0 ) + return FALSE; /* pde not present */ + + /* check that pte is present */ + pte_addr = (pde & PE_PFA_MASK) + + ((lin >> TBL_SHIFT & TBL_MASK) << 2); + pte = phy_read_dword(pte_addr); + + if ( (pte & PE_P_MASK) == 0 ) + return FALSE; /* pte not present */ + + /* combine pde and pte protection */ + comb = PG_R | PG_S; + if ( (pde | pte) & PE_U_S_MASK ) + comb |= PG_U; /* at least one table says user */ + if ( (pde & pte) & PE_R_W_MASK ) + comb |= PG_W; /* both tables allow write */ + + /* check access validity */ +#ifdef SPC486 + if ( access_check[GET_WP()][access][comb] ) +#else + if ( access_check[access][comb] ) +#endif /* SPC486 */ + { + return FALSE; + } + + /* Finally check that A and D bits reflect the requested + translation. */ + if ( access_request & 0x4 ) /* Bit 2 == 1 */ + { + /* + This check may be made in two ways. + + Firstly we might simply return FALSE, thus causing a new + invocation of host_simulate() to run, so that assembler + routines may load the TLB and set the accessed and dirty bits. + + Secondly we may just ensure that the accessed and dirty bits + are set directly here. Providing we don't require that the + TLB is faithfully emulated, this is a more efficient method. + */ + + /* Check current settings */ + if ( ((pde & PE_ACCESSED) == 0) || + ((pte & PE_ACCESSED) == 0) || + (!read_op && ((pte & PE_DIRTY) == 0)) ) + { + /* update in memory page entries */ + new_pde = pde | PE_ACCESSED; + new_pte = pte | PE_ACCESSED; + + if ( !read_op ) + { + new_pte |= PE_DIRTY; + } + + if (new_pte != pte) + { + phy_write_dword(pte_addr, new_pte); +#ifdef PIG + save_last_xcptn_details("PTE %08x: %03x -> %03x", pte_addr, pte & 0xFFF, new_pte & 0xFFF, 0, 0); + if ((new_pte ^ pte) == PE_ACCESSED) + cannot_phy_write_byte(pte_addr, ~PE_ACCESSED); +#endif + } + if (new_pde != pde) + { + IU8 mask; + phy_write_dword(pde_addr, new_pde); +#ifdef PIG + save_last_xcptn_details("PDE %08x: %03x -> %03x", pde_addr, pde & 0xFFF, new_pde & 0xFFF, 0, 0); + mask = 0xff; + if (((new_pde ^ pde) == PE_ACCESSED) && ignore_page_accessed()) + cannot_phy_write_byte(pde_addr, ~PE_ACCESSED); +#endif + } + } + } + + *phy = (pte & PE_PFA_MASK) | lin & OFFSET_MASK; + return TRUE; + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* DEBUGGING. Dump tlb information. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +zdumptlb + +IFN1( + FILE *, out + ) + + + { + ISM32 set, entry; + TLB_ENTRY *e; /* current TLB entry */ + + fprintf(out, "set entry lin_addr V phy_addr D U W\n"); + + for ( set = 0; set < NR_TLB_SETS; set++ ) + { + for ( entry = 0; entry < NR_TLB_ENTRIES; entry++ ) + { + e = &tlb[set][entry]; + fprintf(out, " %d %d %08x %d %08x %d %d %d\n", + set, entry, e->la, e->v, e->pa, e->d, + (e->mode & BIT1_MASK) != 0 , + e->mode & BIT0_MASK); + } + } + } + +#ifdef PIG + +GLOBAL void Pig_NotePDECacheAccess IFN2(IU32, linearAddress, IU32, accessBits) +{ + return; +} + +GLOBAL void Pig_NotePTECacheAccess IFN2(IU32, linearAddress, IU32, accessBits) +{ + IU8 pi; /* page_index entry */ + IU32 ma; /* mapped address */ + + ISM32 set, entry; + IU32 lookup; /* Linear address minus offset */ + BOOL read_op; /* true if read operation */ + TLB_ENTRY *e; /* current tlb entry */ + +#ifdef FAST_TLB + + /* Search optimised format TLB */ + if ( pi = page_index[linearAddress >> DIR_TBL_SHIFT] ) + { + /* we have hit for the page, get mapped address */ + if ( ma = page_address[(pi & PI_SET_ENTRY_MASK) + accessBits] ) + { + deal_with_pte_cache_hit(linearAddress & OFFSET_MASK); + return; + } + } + + /* Otherwise do things the Intel way. */ + +#endif /* FAST_TLB */ + + /* Check for entry in TLB <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/ + + entry = linearAddress >> DIR_TBL_SHIFT & 0x07; /* isolate bits 14-12 */ + lookup = linearAddress & ~OFFSET_MASK; + read_op = (accessBits & PG_W) ? FALSE : TRUE; + + for ( set = 0; set < NR_TLB_SETS; set++ ) + { + e = &tlb[set][entry]; + if ( e->v && e->la == lookup && (read_op || e->d) ) + { + /* Cache Hit <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */ + + /* check access validity */ +#ifdef SPC486 + if ( access_check[GET_WP()][accessBits][e->mode] ) +#else + if ( access_check[accessBits][e->mode] ) +#endif /* SPC486 */ + { + /* would page fault. Ignore it */ + return; + } + + deal_with_pte_cache_hit(linearAddress & OFFSET_MASK); + return; + } + } + /* not in cache - no need to do anything */ +} + +LOCAL void +deal_with_pte_cache_hit IFN1(IU32, linearAddress) +{ + IU32 pde_addr; /* Address of Page Directory Entry */ + IU32 pde; /* Page Directory Entry */ + IU32 pte_addr; /* Address of Page Table Entry */ + IU32 pte; /* Page Table Entry */ + + /* check that pde is present */ + pde_addr = (GET_CR(CR_PDBR) & PE_PFA_MASK) + + ((linearAddress >> DIR_SHIFT & DIR_MASK) << 2); + pde = phy_read_dword(pde_addr); + + /* check pde present */ + if ( (pde & PE_P_MASK) == 0 ) + return; + + /* check that pte is present */ + pte_addr = (pde & PE_PFA_MASK) + ((linearAddress >> TBL_SHIFT & TBL_MASK) << 2); + pte = phy_read_dword(pte_addr); + + if ( (pte & PE_P_MASK) == 0 ) + return; + + /* fprintf(trace_file, "deal_with_pte_cache_hit: addr %08lx, pte=%08lx @ %08lx\n", + * linearAddress, pte, pte_addr); + */ + cannot_phy_write_byte(pte_addr, ~PE_ACCESSED); +} + +#endif diff --git a/private/mvdm/softpc.new/base/ccpu386/c_tlb.h b/private/mvdm/softpc.new/base/ccpu386/c_tlb.h new file mode 100644 index 000000000..d1d0d4f32 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_tlb.h @@ -0,0 +1,39 @@ +/*[ + +c_tlb.h + +Translation Lookaside Buffer Emulation. +--------------------------------------- + +LOCAL CHAR SccsID[]="@(#)c_tlb.h 1.5 02/25/94"; + +]*/ + + +/* + Page Accessor Types. + */ +#define PG_S 0x0 /* Supervisor */ +#define PG_U 0x2 /* User */ + +IMPORT VOID flush_tlb IPT0(); + +IMPORT VOID invalidate_tlb_entry IPT1 + ( + IU32, lin + ); + +IMPORT IU32 lin2phy IPT2 + ( + IU32, lin, + ISM32, access + ); + +IMPORT VOID test_tlb IPT0(); + +extern IBOOL xtrn2phy IPT3 + ( + LIN_ADDR, lin, + IUM8, access_request, + PHY_ADDR *, phy + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/c_tsksw.c b/private/mvdm/softpc.new/base/ccpu386/c_tsksw.c new file mode 100644 index 000000000..9247748ad --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_tsksw.c @@ -0,0 +1,589 @@ +/*[ + +c_tsksw.c + +LOCAL CHAR SccsID[]="@(#)c_tsksw.c 1.11 03/03/95"; + +Task Switch Support. +-------------------- + +]*/ + + +#include +#include + +#include + +#include +#include CpuH +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/*[ + + The 286 TSS is laid out as follows:- + + ============================= + | Back Link to TSS Selector | +00 = + | SP for CPL 0 | +02 * + | SS for CPL 0 | +04 * + | SP for CPL 1 | +06 * Initial Stacks (STATIC) + | SS for CPL 1 | +08 * + | SP for CPL 2 | +0a * + | SS for CPL 2 | +0c * + | IP | +0e = + | FLAG Register | +10 = + | AX | +12 = + | CX | +14 = + | DX | +16 = + | BX | +18 = + | SP | +1a = Current State (DYNAMIC) + | BP | +1c = + | SI | +1e = + | DI | +20 = + | ES | +22 = + | CS | +24 = + | SS | +26 = + | DS | +28 = + | Task LDT Selector | +2a * + ============================= + + The 386 TSS is laid out as follows:- + + =========================================== + | 0 | Back Link | +00 = + | ESP for CPL 0 | +04 * + | 0 | SS for CPL 0 | +08 * + | ESP for CPL 1 | +0c * + | 0 | SS for CPL 1 | +10 * + | ESP for CPL 2 | +14 * + | 0 | SS for CPL 2 | +18 * + | CR3 | +1c * + | EIP | +20 = + | EFLAG | +24 = + | EAX | +28 = + | ECX | +2c = + | EDX | +30 = + | EBX | +34 = + | ESP | +38 = + | EBP | +3c = + | ESI | +40 = + | EDI | +44 = + | 0 | ES | +48 = + | 0 | CS | +4c = + | 0 | SS | +50 = + | 0 | DS | +54 = + | 0 | FS | +58 = + | 0 | GS | +5c = + | 0 | LDT Selector | +60 * + | I/O Map Base Addr. | 0 |T| +64 * + |-----------------------------------------| + | ... | + |-----------------------------------------| + | I/O Permission Bit Map | +I/O Map Base Addr. + | | + |11111111| | + =========================================== + +]*/ + +/* + Prototype our internal functions. + */ +LOCAL VOID load_LDT_in_task_switch + +IPT1( + IU16, tss_selector + + ); + +LOCAL VOID load_data_seg_new_task + +IPT2( + ISM32, indx, + IU16, selector + + ); + + +#define IP_OFFSET_IN_286_TSS 0x0e +#define IP_OFFSET_IN_386_TSS 0x20 + +#define CR3_OFFSET_IN_386_TSS 0x1c + +#define LOCAL_BRK_ENABLE 0x155 /* LE,L3,L2,L1 and L0 bits of DCR */ + +/* + ===================================================================== + INTERNAL FUNCTIONS STARTS HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Load LDT selector during a task switch. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +LOCAL VOID +load_LDT_in_task_switch + +IFN1( + IU16, tss_selector + ) + + + { + IU16 selector; + IU32 descr_addr; + CPU_DESCR entry; + + /* The selector is already loaded into LDTR */ + selector = GET_LDT_SELECTOR(); + + /* A null selector can be left alone */ + if ( !selector_is_null(selector) ) + { + /* must be in GDT */ + if ( selector_outside_GDT(selector, &descr_addr) ) + { + SET_LDT_SELECTOR(0); /* invalidate selector */ + TS(tss_selector, FAULT_LOADLDT_SELECTOR); + } + + read_descriptor_linear(descr_addr, &entry); + + /* is it really a LDT segment */ + if ( descriptor_super_type(entry.AR) != LDT_SEGMENT ) + { + SET_LDT_SELECTOR(0); /* invalidate selector */ + TS(tss_selector, FAULT_LOADLDT_NOT_AN_LDT); + } + + /* must be present */ + if ( GET_AR_P(entry.AR) == NOT_PRESENT ) + { + SET_LDT_SELECTOR(0); /* invalidate selector */ + TS(tss_selector, FAULT_LOADLDT_NOTPRESENT); + } + + /* ok, good selector, load register */ + SET_LDT_BASE(entry.base); + SET_LDT_LIMIT(entry.limit); + } + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Load a Data Segment Register (DS, ES, FS, GS) during */ +/* a Task Switch . */ +/* Take #GP(selector) if segment not valid */ +/* Take #NP(selector) if segment not present */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +LOCAL VOID +load_data_seg_new_task + +IFN2( + ISM32, indx, /* Segment Register identifier */ + IU16, selector /* value to be loaded */ + ) + + + { + load_data_seg(indx, selector); + + /* Reload pseudo descriptors if V86 Mode */ + if ( GET_VM() == 1 ) + load_pseudo_descr(indx); + } + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Switch tasks */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +switch_tasks + +IFN5( + BOOL, returning, /* (I) if true doing return from task */ + BOOL, nesting, /* (I) if true switch with nesting */ + IU16, TSS_selector, /* (I) selector for new task */ + IU32, descr, /* (I) memory address of new task descriptor */ + IU32, return_ip /* (I) offset to restart old task at */ + ) + + + { + IU16 old_tss; /* components of old descriptor */ + IU8 old_AR; + IU32 old_descr; + + CPU_DESCR new_tss; /* components of new descriptor */ + + IU32 tss_addr; /* variables used to put/get TSS state */ + IU32 next_addr; + IU32 flags; + ISM32 save_cpl; + IU8 T_byte; /* Byte holding the T bit */ + + IU32 ss_descr; /* variables defining new SS and CS values */ + CPU_DESCR ss_entry; + IU16 new_cs; + IU32 cs_descr; + CPU_DESCR cs_entry; + + IU32 pdbr; /* New value for PDBR */ + + if ( GET_TR_SELECTOR() == 0 ) + TS(TSS_selector, FAULT_SWTASK_NULL_TR_SEL); + + /* get new TSS info. */ + read_descriptor_linear(descr, &new_tss); + + /* calc address of descriptor related to old TSS */ + old_tss = GET_TR_SELECTOR(); + old_descr = GET_GDT_BASE() + GET_SELECTOR_INDEX_TIMES8(old_tss); + old_AR = spr_read_byte(old_descr+5); + + /* SAVE OUTGOING STATE */ + + if ( GET_TR_AR_SUPER() == XTND_BUSY_TSS ) + { + /* check outgoing TSS is large enough to save current state */ + if ( GET_TR_LIMIT() < 0x67 ) + { + TS(TSS_selector, FAULT_SWTASK_BAD_TSS_SIZE_1); + } + + tss_addr = GET_TR_BASE(); + next_addr = tss_addr + CR3_OFFSET_IN_386_TSS; + + spr_write_dword(next_addr, GET_CR(3)); + next_addr += 4; + + spr_write_dword(next_addr, return_ip); + next_addr += 4; + + flags = c_getEFLAGS(); + if ( returning ) + flags = flags & ~BIT14_MASK; /* clear NT */ + spr_write_dword(next_addr, (IU32)flags); +#ifdef PIG + /* Note the possibility of unknown flags "pushed" */ + record_flags_addr(next_addr); +#endif /* PIG */ + next_addr += 4; + + spr_write_dword(next_addr, GET_EAX()); + next_addr += 4; + spr_write_dword(next_addr, GET_ECX()); + next_addr += 4; + spr_write_dword(next_addr, GET_EDX()); + next_addr += 4; + spr_write_dword(next_addr, GET_EBX()); + next_addr += 4; + spr_write_dword(next_addr, GET_ESP()); + next_addr += 4; + spr_write_dword(next_addr, GET_EBP()); + next_addr += 4; + spr_write_dword(next_addr, GET_ESI()); + next_addr += 4; + spr_write_dword(next_addr, GET_EDI()); + next_addr += 4; + spr_write_word(next_addr, GET_ES_SELECTOR()); + next_addr += 4; + spr_write_word(next_addr, GET_CS_SELECTOR()); + next_addr += 4; + spr_write_word(next_addr, GET_SS_SELECTOR()); + next_addr += 4; + spr_write_word(next_addr, GET_DS_SELECTOR()); + next_addr += 4; + spr_write_word(next_addr, GET_FS_SELECTOR()); + next_addr += 4; + spr_write_word(next_addr, GET_GS_SELECTOR()); + } + else /* 286 TSS */ + { + /* check outgoing TSS is large enough to save current state */ + if ( GET_TR_LIMIT() < 0x29 ) + { + TS(TSS_selector, FAULT_SWTASK_BAD_TSS_SIZE_2); + } + + tss_addr = GET_TR_BASE(); + next_addr = tss_addr + IP_OFFSET_IN_286_TSS; + + spr_write_word(next_addr, (IU16)return_ip); + next_addr += 2; + + flags = getFLAGS(); + if ( returning ) + flags = flags & ~BIT14_MASK; /* clear NT */ + spr_write_word(next_addr, (IU16)flags); +#ifdef PIG + /* Note the possibility of unknown flags "pushed" */ + record_flags_addr(next_addr); +#endif /* PIG */ + next_addr += 2; + + spr_write_word(next_addr, GET_AX()); + next_addr += 2; + spr_write_word(next_addr, GET_CX()); + next_addr += 2; + spr_write_word(next_addr, GET_DX()); + next_addr += 2; + spr_write_word(next_addr, GET_BX()); + next_addr += 2; + spr_write_word(next_addr, GET_SP()); + next_addr += 2; + spr_write_word(next_addr, GET_BP()); + next_addr += 2; + spr_write_word(next_addr, GET_SI()); + next_addr += 2; + spr_write_word(next_addr, GET_DI()); + next_addr += 2; + spr_write_word(next_addr, GET_ES_SELECTOR()); + next_addr += 2; + spr_write_word(next_addr, GET_CS_SELECTOR()); + next_addr += 2; + spr_write_word(next_addr, GET_SS_SELECTOR()); + next_addr += 2; + spr_write_word(next_addr, GET_DS_SELECTOR()); + } + + /* LOAD TASK REGISTER */ + + /* mark incoming TSS as busy */ + new_tss.AR |= BIT1_MASK; + spr_write_byte(descr+5, (IU8)new_tss.AR); + + /* update task register */ + SET_TR_SELECTOR(TSS_selector); + SET_TR_BASE(new_tss.base); + SET_TR_LIMIT(new_tss.limit); + SET_TR_AR_SUPER(descriptor_super_type(new_tss.AR)); + tss_addr = GET_TR_BASE(); + + /* save back link if nesting, else make outgoing TSS available */ + if ( nesting ) + { + spr_write_word(tss_addr, old_tss); + } + else + { + /* mark old TSS as available */ + old_AR = old_AR & ~BIT1_MASK; + spr_write_byte(old_descr+5, old_AR); + } + + /* Note: Exceptions now happen in the incoming task */ + + /* EXTRACT NEW STATE */ + + if ( GET_TR_AR_SUPER() == XTND_BUSY_TSS ) + { + /* check new TSS is large enough to extract new state from */ + if ( GET_TR_LIMIT() < 0x67 ) + TS(TSS_selector, FAULT_SWTASK_BAD_TSS_SIZE_3); + + next_addr = tss_addr + CR3_OFFSET_IN_386_TSS; + pdbr = (IU32)spr_read_dword(next_addr); + if ( pdbr != GET_CR(CR_PDBR) ) + { + /* Only reload PDBR if diferent */ + MOV_CR(CR_PDBR, pdbr); + } + + next_addr = tss_addr + IP_OFFSET_IN_386_TSS; + + SET_EIP(spr_read_dword(next_addr)); next_addr += 4; + + flags = (IU32)spr_read_dword(next_addr); next_addr += 4; + save_cpl = GET_CPL(); + SET_CPL(0); /* act like highest privilege to set all flags */ + c_setEFLAGS(flags); + SET_CPL(save_cpl); + + if ( flags & BIT17_MASK ) + fprintf(stderr, "(Task Switch)Entering V86 Mode.\n"); + + SET_EAX(spr_read_dword(next_addr)); next_addr += 4; + SET_ECX(spr_read_dword(next_addr)); next_addr += 4; + SET_EDX(spr_read_dword(next_addr)); next_addr += 4; + SET_EBX(spr_read_dword(next_addr)); next_addr += 4; + SET_ESP(spr_read_dword(next_addr)); next_addr += 4; + SET_EBP(spr_read_dword(next_addr)); next_addr += 4; + SET_ESI(spr_read_dword(next_addr)); next_addr += 4; + SET_EDI(spr_read_dword(next_addr)); next_addr += 4; + + SET_ES_SELECTOR(spr_read_word(next_addr)); next_addr += 4; + SET_CS_SELECTOR(spr_read_word(next_addr)); next_addr += 4; + SET_SS_SELECTOR(spr_read_word(next_addr)); next_addr += 4; + SET_DS_SELECTOR(spr_read_word(next_addr)); next_addr += 4; + SET_FS_SELECTOR(spr_read_word(next_addr)); next_addr += 4; + SET_GS_SELECTOR(spr_read_word(next_addr)); next_addr += 4; + + SET_LDT_SELECTOR(spr_read_word(next_addr)); next_addr += 4; + T_byte = spr_read_byte(next_addr); + } + else /* 286 TSS */ + { + /* check new TSS is large enough to extract new state from */ + if ( GET_TR_LIMIT() < 0x2b ) + TS(TSS_selector, FAULT_SWTASK_BAD_TSS_SIZE_4); + + next_addr = tss_addr + IP_OFFSET_IN_286_TSS; + + SET_EIP(spr_read_word(next_addr)); next_addr += 2; + + flags = (IU32)spr_read_word(next_addr); next_addr += 2; + save_cpl = GET_CPL(); + SET_CPL(0); /* act like highest privilege to set all flags */ + setFLAGS(flags); + SET_VM(0); + SET_CPL(save_cpl); + + SET_AX(spr_read_word(next_addr)); next_addr += 2; + SET_CX(spr_read_word(next_addr)); next_addr += 2; + SET_DX(spr_read_word(next_addr)); next_addr += 2; + SET_BX(spr_read_word(next_addr)); next_addr += 2; + SET_SP(spr_read_word(next_addr)); next_addr += 2; + SET_BP(spr_read_word(next_addr)); next_addr += 2; + SET_SI(spr_read_word(next_addr)); next_addr += 2; + SET_DI(spr_read_word(next_addr)); next_addr += 2; + + SET_ES_SELECTOR(spr_read_word(next_addr)); next_addr += 2; + SET_CS_SELECTOR(spr_read_word(next_addr)); next_addr += 2; + SET_SS_SELECTOR(spr_read_word(next_addr)); next_addr += 2; + SET_DS_SELECTOR(spr_read_word(next_addr)); next_addr += 2; + SET_FS_SELECTOR(0); + SET_GS_SELECTOR(0); + + SET_LDT_SELECTOR(spr_read_word(next_addr)); + T_byte = 0; + } + + /* invalidate cache entries for segment registers */ + SET_CS_AR_R(0); SET_CS_AR_W(0); + SET_DS_AR_R(0); SET_DS_AR_W(0); + SET_ES_AR_R(0); SET_ES_AR_W(0); + SET_SS_AR_R(0); SET_SS_AR_W(0); + SET_FS_AR_R(0); SET_FS_AR_W(0); + SET_GS_AR_R(0); SET_GS_AR_W(0); + + /* update NT bit */ + if ( nesting ) + SET_NT(1); + else + if ( !returning ) + SET_NT(0); + + /* update TS */ + SET_CR(CR_STAT, GET_CR(CR_STAT) | BIT3_MASK); + + /* kill local breakpoints */ + SET_DR(DR_DCR, GET_DR(DR_DCR) & ~LOCAL_BRK_ENABLE); + + /* set up trap on T-bit */ + if ( T_byte & BIT0_MASK ) + { + SET_DR(DR_DSR, GET_DR(DR_DSR) | DSR_BT_MASK); + } + + /* ERROR CHECKING */ + + /* check new LDT and load hidden cache if ok */ + load_LDT_in_task_switch(TSS_selector); + + if ( GET_VM() == 1 ) + { + SET_CPL(3); /* set V86 privilege level */ + /* CS selector requires no checks */ + } + else + { + /* change CPL to that of incoming code segment */ + SET_CPL(GET_SELECTOR_RPL(GET_CS_SELECTOR())); + + /* check new code selector... */ + new_cs = GET_CS_SELECTOR(); + if ( selector_outside_GDT_LDT(new_cs, &cs_descr) ) + TS(new_cs, FAULT_SWTASK_BAD_CS_SELECTOR); + + read_descriptor_linear(cs_descr, &cs_entry); + + /* check type and privilege of new cs selector */ + switch ( descriptor_super_type(cs_entry.AR) ) + { + case CONFORM_NOREAD_CODE: + case CONFORM_READABLE_CODE: + /* check code is present */ + if ( GET_AR_P(cs_entry.AR) == NOT_PRESENT ) + NP(new_cs, FAULT_SWTASK_CONFORM_CS_NP); + + /* privilege check requires DPL <= CPL */ + if ( GET_AR_DPL(cs_entry.AR) > GET_CPL() ) + TS(new_cs, FAULT_SWTASK_ACCESS_1); + break; + + case NONCONFORM_NOREAD_CODE: + case NONCONFORM_READABLE_CODE: + /* check code is present */ + if ( GET_AR_P(cs_entry.AR) == NOT_PRESENT ) + NP(new_cs, FAULT_SWTASK_NOCONFORM_CS_NP); + + /* privilege check requires DPL == CPL */ + if ( GET_AR_DPL(cs_entry.AR) != GET_CPL() ) + TS(new_cs, FAULT_SWTASK_ACCESS_2); + break; + + default: + TS(new_cs, FAULT_SWTASK_BAD_SEG_TYPE); + } + } + + /* code ok, load hidden cache */ + load_CS_cache(new_cs, cs_descr, &cs_entry); +#if 0 + /* retain operand size from gate until first instruction fetch */ + if ( GET_CS_AR_X() == USE16 ) + SET_OPERAND_SIZE(USE16); + else /* USE32 */ + SET_OPERAND_SIZE(USE32); +#endif + + /* check new SS and load if ok */ + if ( GET_VM() == 1 ) + { + /* SS selector requires no checks */ + load_stack_seg(GET_SS_SELECTOR()); + load_pseudo_descr(SS_REG); + } + else + { + validate_SS_on_stack_change(GET_CPL(), GET_SS_SELECTOR(), + &ss_descr, &ss_entry); + load_SS_cache(GET_SS_SELECTOR(), ss_descr, &ss_entry); + } + + /* finally check new DS, ES, FS and GS */ + load_data_seg_new_task(DS_REG, GET_DS_SELECTOR()); + load_data_seg_new_task(ES_REG, GET_ES_SELECTOR()); + load_data_seg_new_task(FS_REG, GET_FS_SELECTOR()); + load_data_seg_new_task(GS_REG, GET_GS_SELECTOR()); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/c_tsksw.h b/private/mvdm/softpc.new/base/ccpu386/c_tsksw.h new file mode 100644 index 000000000..26f1239ac --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_tsksw.h @@ -0,0 +1,31 @@ +/*[ + +c_tsksw.h + +LOCAL CHAR SccsID[]="@(#)c_tsksw.h 1.5 02/09/94"; + +Task Switch Support. +-------------------- + +]*/ + + +/* + Switch Task: Control Options. + */ +#define NESTING 1 +#define RETURNING 1 +#define NOT_NESTING 0 +#define NOT_RETURNING 0 + + +IMPORT VOID switch_tasks + +IPT5( + BOOL, returning, + BOOL, nesting, + IU16, TSS_selector, + IU32, descr, + IU32, return_ip + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/c_xcptn.c b/private/mvdm/softpc.new/base/ccpu386/c_xcptn.c new file mode 100644 index 000000000..69fe8c767 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_xcptn.c @@ -0,0 +1,641 @@ +/*[ + +c_xcptn.c + +LOCAL CHAR SccsID[]="@(#)c_xcptn.c 1.14 01/31/95"; + +Exception Handling Support. +--------------------------- + +]*/ + + +#include +#include + +#include +#include StringH +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + Allow print out of exceptions or disallow it. + */ +GLOBAL BOOL show_exceptions = FALSE; +GLOBAL BOOL trap_exceptions = FALSE; +LOCAL BOOL first_exception = TRUE; + +#define check_exception_env() \ +{ \ + IMPORT char *host_getenv IPT1 (char *, name); \ + if (first_exception) \ + { \ + char *env = host_getenv ("CCPU_SHOW_EXCEPTIONS"); \ + if (env != NULL) \ + { \ + show_exceptions = TRUE; \ + if (strcasecmp(env, "TRAP") == 0) \ + trap_exceptions = TRUE; \ + } \ + } \ + first_exception = FALSE; \ +} + +IMPORT FILE *trace_file; +IMPORT IBOOL took_absolute_toc; + +/* + Intel interrupt(exception) numbers. + */ +#define I0_INT_NR 0 +#define I1_INT_NR 1 +#define I5_INT_NR 5 +#define I6_INT_NR 6 +#define I7_INT_NR 7 +#define I16_INT_NR 16 +#define DF_INT_NR 8 +#define GP_INT_NR 13 +#define NP_INT_NR 11 +#define PF_INT_NR 14 +#define SF_INT_NR 12 +#define TS_INT_NR 10 + +#define NULL_ERROR_CODE (IU16)0 + +/* + Intel IDT Error Code format. + */ +#define IDT_VECTOR_MASK 0xff +#define IDT_VECTOR_SHIFT 3 +#define IDT_INDICATOR_BIT 2 + +/* + Interrupt/Fault Status. + */ +GLOBAL BOOL doing_contributory; +GLOBAL BOOL doing_page_fault; +GLOBAL BOOL doing_double_fault; +GLOBAL BOOL doing_fault; /* true: FAULT, false: TRAP or ABORT */ +GLOBAL ISM32 EXT; /* external/internal source */ +GLOBAL IU32 CCPU_save_EIP; /* IP at start of instruction */ + +/* + Prototype our internal functions. + */ +LOCAL VOID check_for_double_fault IPT1(IU16, xcode); + +LOCAL VOID check_for_shutdown IPT1(IU16, xcode); + +LOCAL VOID benign_exception IPT3( ISM32, nmbr, ISM32, source, IU16, xcode); + +LOCAL VOID contributory_exception IPT3( IU16, selector, ISM32, nmbr, IU16, xcode); + +LOCAL VOID contributory_idt_exception IPT3( IU16, vector, ISM32, nmbr, IU16, xcode); + +LOCAL char *faultstr IPT1(ISM32, nmbr ); + + +/* + ===================================================================== + INTERNAL ROUTINES START HERE. + ===================================================================== + */ + +LOCAL char *faultstr IFN1(ISM32, nmbr ) +{ + char *faulttable[] = + { + "DIV", "DBG", "NMI", "BPT", + "OVF", "BND", "OPC", "NAV", + "DF", "9", "TSS", "NP", "SF", + "GP", "PF", "15", "FPE", "ALN" + }; + SAVED char buf[4]; + + if (nmbr > 16) + { + sprintf(buf, "%d", nmbr); + return buf; + } + else + return faulttable[nmbr]; +} + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Determine if things are so bad we need a double fault. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +LOCAL VOID +check_for_double_fault IFN1( IU16, xcode) + { + if ( doing_contributory || doing_page_fault ) + DF(xcode); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Determine if things are so bad we need to close down. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +LOCAL VOID check_for_shutdown IFN1(IU16, xcode) + { + if ( doing_double_fault ) + { + doing_contributory = FALSE; + doing_page_fault = FALSE; + doing_double_fault = FALSE; + EXT = INTERNAL; + + /* force a reset - see schematic for AT motherboard */ + c_cpu_reset(); + +#ifdef PIG + save_last_xcptn_details("Exception:- Shutdown @%2d\n", xcode, 0, 0, 0, 0); + ccpu_synch_count++; + pig_cpu_action = CHECK_ALL; + c_cpu_unsimulate(); +#endif /* PIG */ + + /* then carry on */ + c_cpu_continue(); /* DOES NOT RETURN */ + } + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Handle Benign Exception */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +LOCAL VOID +benign_exception + +IFN3( + ISM32, nmbr, /* exception number */ + ISM32, source, /* internal/external interrupt cause */ + IU16, xcode /* insignia exception code */ + ) + + + { + SET_EIP(CCPU_save_EIP); + +#ifdef NTVDM + { + extern BOOL host_exint_hook IPT2(IS32, exp_no, IS32, error_code); + + if(GET_PE() && host_exint_hook((IS32) nmbr, NULL_ERROR_CODE)) + c_cpu_continue(); /* DOES NOT RETURN */ + } +#endif + + /* Set default mode up */ + SET_OPERAND_SIZE(GET_SR_AR_X(CS_REG)); + SET_ADDRESS_SIZE(GET_SR_AR_X(CS_REG)); + SET_POP_DISP(0); + + EXT = source; + check_exception_env(); +#ifdef PIG + save_last_xcptn_details("Exception:- #%s-%d @%2d \n", (IUH)faultstr(nmbr), nmbr, xcode, 0, 0); +#endif /* PIG */ + if (show_exceptions){ + fprintf(trace_file, "(%04x:%08x)Exception:- %d.\n", + GET_CS_SELECTOR(), GET_EIP(), nmbr); + if (trap_exceptions) force_yoda(); + } + took_absolute_toc = TRUE; + do_intrupt((IU16)nmbr, FALSE, FALSE, NULL_ERROR_CODE); + + c_cpu_continue(); /* DOES NOT RETURN */ + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Handle Contributory Exception */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +LOCAL VOID +contributory_exception + +IFN3( + IU16, selector, /* failing selector */ + ISM32, nmbr, /* exception number */ + IU16, xcode /* insignia exception code */ + ) + + + { + IU16 error_code; + + + /* check if exception caused by external caller */ + check_interface_active(nmbr); + + check_for_shutdown(xcode); + check_for_double_fault(xcode); + + doing_contributory = TRUE; + + error_code = (selector & 0xfffc) | EXT; + + SET_EIP(CCPU_save_EIP); + +#ifdef NTVDM + { + extern BOOL host_exint_hook IPT2(IS32, exp_no, IS32, error_code); + + if(GET_PE() && host_exint_hook((IS32) nmbr, (IS32)error_code)) + doing_contributory = FALSE; + c_cpu_continue(); /* DOES NOT RETURN */ + } +#endif + + /* Set default mode up */ + SET_OPERAND_SIZE(GET_SR_AR_X(CS_REG)); + SET_ADDRESS_SIZE(GET_SR_AR_X(CS_REG)); + SET_POP_DISP(0); + + EXT = INTERNAL; + check_exception_env(); +#ifdef PIG + save_last_xcptn_details("Exception:- #%s-%d(%04x) @%2d\n", (IUH)faultstr(nmbr), nmbr, error_code, xcode, 0); +#endif /* PIG */ + if (show_exceptions){ + fprintf(trace_file, "(%04x:%08x)Exception:- %d(%04x).\n", + GET_CS_SELECTOR(), GET_EIP(), nmbr, error_code); + if (trap_exceptions) force_yoda(); + } + took_absolute_toc = TRUE; + do_intrupt((IU16)nmbr, FALSE, TRUE, error_code); + + c_cpu_continue(); /* DOES NOT RETURN */ + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Handle Contributory Exception (Via IDT). */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +LOCAL VOID +contributory_idt_exception + +IFN3( + IU16, vector, /* failing interrupt vector */ + ISM32, nmbr, /* exception number */ + IU16, xcode /* insignia exception code */ + ) + + + { + IU16 error_code; + + /* check if exception caused by external caller */ + check_interface_active(nmbr); + + check_for_shutdown(xcode); + check_for_double_fault(xcode); + + doing_contributory = TRUE; + error_code = ((vector & IDT_VECTOR_MASK) << IDT_VECTOR_SHIFT) + | IDT_INDICATOR_BIT + | EXT; + + SET_EIP(CCPU_save_EIP); + +#ifdef NTVDM + { + extern BOOL host_exint_hook IPT2(IS32, exp_no, IS32, error_code); + + if(GET_PE() && host_exint_hook((IS32) nmbr, (IS32)error_code)) + doing_contributory = FALSE; + c_cpu_continue(); /* DOES NOT RETURN */ + } +#endif + + /* Set default mode up */ + SET_OPERAND_SIZE(GET_SR_AR_X(CS_REG)); + SET_ADDRESS_SIZE(GET_SR_AR_X(CS_REG)); + SET_POP_DISP(0); + + EXT = INTERNAL; + check_exception_env(); +#ifdef PIG + save_last_xcptn_details("Exception:- %s-%d(%04x) @%2d\n", (IUH)faultstr(nmbr), nmbr, error_code, xcode, 0); +#endif /* PIG */ + if (show_exceptions){ + if ( GET_IDT_LIMIT() != 0 ){ + fprintf(trace_file, "(%04x:%08x)Exception:- %d(%04x).\n", + GET_CS_SELECTOR(), GET_EIP(), nmbr, error_code); + if (trap_exceptions) force_yoda(); + } + } + took_absolute_toc = TRUE; + do_intrupt((IU16)nmbr, FALSE, TRUE, error_code); + + c_cpu_continue(); /* DOES NOT RETURN */ + } + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Interrupt Table Too Small/Double Fault Exception. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +DF + +IFN1( + IU16, xcode /* insignia exception code */ + ) + { + doing_fault = FALSE; + + if ( GET_PE() == 1 ) + { + check_for_shutdown(xcode); + doing_double_fault = TRUE; + } + + SET_EIP(CCPU_save_EIP); + +#ifdef NTVDM + { + extern BOOL host_exint_hook IPT2(IS32, exp_no, IS32, error_code); + + if(GET_PE() && host_exint_hook((IS32) DF_INT_NR, (IS32)NULL_ERROR_CODE)) + doing_double_fault = FALSE; + c_cpu_continue(); /* DOES NOT RETURN */ + } +#endif + + /* Set default mode up */ + SET_OPERAND_SIZE(GET_SR_AR_X(CS_REG)); + SET_ADDRESS_SIZE(GET_SR_AR_X(CS_REG)); + SET_POP_DISP(0); + + EXT = INTERNAL; + check_exception_env(); +#ifdef PIG + save_last_xcptn_details("Exception:- #DF-8 @%2d\n", xcode, 0, 0, 0, 0); +#endif /* PIG */ + if (show_exceptions){ + if ( GET_IDT_LIMIT() != 0 ){ + fprintf(trace_file, "(%04x:%08x)Exception:- %d.\n", + GET_CS_SELECTOR(), GET_EIP(), DF_INT_NR); + if (trap_exceptions) force_yoda(); + } + } + took_absolute_toc = TRUE; + do_intrupt((IU16)DF_INT_NR, FALSE, TRUE, NULL_ERROR_CODE); + + c_cpu_continue(); /* DOES NOT RETURN */ + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* General Protection Exception. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID GP IFN2( IU16, selector, IU16, xcode) + { + doing_fault = TRUE; + contributory_exception(selector, GP_INT_NR, xcode); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* General Protection Exception. (Via IDT) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID GP_INT IFN2( IU16, vector, IU16, xcode) + { + doing_fault = TRUE; + contributory_idt_exception(vector, GP_INT_NR, xcode); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Divide Error Exception. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID Int0 IFN0 () + { + doing_fault = TRUE; + if ( GET_PE() == 1 ) + { + doing_contributory = TRUE; + } + + SET_EIP(CCPU_save_EIP); + +#ifdef NTVDM + { + extern BOOL host_exint_hook IPT2(IS32, exp_no, IS32, error_code); + + if(GET_PE() && host_exint_hook((IS32) I0_INT_NR, (IS32)NULL_ERROR_CODE)) + doing_fault = FALSE; + doing_contributory = FALSE; + c_cpu_continue(); /* DOES NOT RETURN */ + } +#endif + + /* Set default mode up */ + SET_OPERAND_SIZE(GET_SR_AR_X(CS_REG)); + SET_ADDRESS_SIZE(GET_SR_AR_X(CS_REG)); + SET_POP_DISP(0); + + EXT = INTERNAL; + + check_exception_env(); +#ifdef PIG + save_last_xcptn_details("Exception:- #DIV-0\n", 0, 0, 0, 0, 0); +#endif /* PIG */ + if (show_exceptions){ + fprintf(trace_file, "(%04x:%08x)Exception:- %d.\n", + GET_CS_SELECTOR(), GET_EIP(), I0_INT_NR); + if (trap_exceptions) force_yoda(); + } + took_absolute_toc = TRUE; + do_intrupt((IU16)I0_INT_NR, FALSE, FALSE, NULL_ERROR_CODE); + + c_cpu_continue(); /* DOES NOT RETURN */ + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Single Step Exception. (FAULT) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +Int1_f() + { + doing_fault = TRUE; + benign_exception(I1_INT_NR, EXTERNAL, -1); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Single Step Exception. (TRAP) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +Int1_t() + { + doing_fault = FALSE; + benign_exception(I1_INT_NR, EXTERNAL, -1); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Bounds Check Exception. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +Int5() + { + doing_fault = TRUE; + benign_exception(I5_INT_NR, INTERNAL, -1); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Invalid Opcode Exception. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +Int6() + { + doing_fault = TRUE; + benign_exception(I6_INT_NR, INTERNAL, -1); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* NPX Not Available Exception. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +Int7() + { + doing_fault = TRUE; + benign_exception(I7_INT_NR, INTERNAL, -1); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* NPX Error Exception. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +Int16() + { + doing_fault = TRUE; + benign_exception(I16_INT_NR, EXTERNAL, -1); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Not Present Exception. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID NP IFN2( IU16, selector, IU16, xcode) + { + doing_fault = TRUE; + contributory_exception(selector, NP_INT_NR, xcode); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Not Present Exception. (Via IDT) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +NP_INT + +IFN2( + IU16, vector, + IU16, xcode + ) + + { + doing_fault = TRUE; + contributory_idt_exception(vector, NP_INT_NR, xcode); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Page Fault Exception. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +PF + +IFN2( + IU16, page_error, /* correctly formatted page fault error code */ + IU16, xcode + ) + + + { + /* check if exception caused by external caller */ + check_interface_active(PF_INT_NR); + + doing_fault = TRUE; + + check_for_shutdown(xcode); + + /* Check for double page fault */ + if ( doing_page_fault ) + DF(xcode); + + doing_page_fault = TRUE; + + SET_EIP(CCPU_save_EIP); + +#ifdef NTVDM + { + extern BOOL host_exint_hook IPT2(IS32, exp_no, IS32, error_code); + + if(GET_PE() && host_exint_hook((IS32) PF_INT_NR, (IS32)page_error)) + doing_fault = FALSE; + doing_page_fault = FALSE; + c_cpu_continue(); /* DOES NOT RETURN */ + } +#endif + + /* Set default mode up */ + SET_OPERAND_SIZE(GET_SR_AR_X(CS_REG)); + SET_ADDRESS_SIZE(GET_SR_AR_X(CS_REG)); + SET_POP_DISP(0); + + check_exception_env(); +#ifdef PIG + save_last_xcptn_details("Exception:- #PF-14(%04x) CR2=%08x @%2d\n", page_error, GET_CR(CR_PFLA), xcode, 0, 0); +#endif /* PIG */ + if (show_exceptions){ + fprintf(trace_file, "(%04x:%08x)Exception:- %d(%04x) CR2=%08x.\n", + GET_CS_SELECTOR(), GET_EIP(), PF_INT_NR, page_error, GET_CR(CR_PFLA)); + if (trap_exceptions) force_yoda(); + } + took_absolute_toc = TRUE; + do_intrupt((IU16)PF_INT_NR, FALSE, TRUE, page_error); + + c_cpu_continue(); /* DOES NOT RETURN */ + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Stack Fault Exception. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +SF + +IFN2( + IU16, selector, + IU16, xcode + ) + + { + doing_fault = TRUE; + contributory_exception(selector, SF_INT_NR, xcode); + } + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Task Switch Exception. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +TS + +IFN2( + IU16, selector, + IU16, xcode + ) + + { + doing_fault = TRUE; + contributory_exception(selector, TS_INT_NR, xcode); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/c_xcptn.h b/private/mvdm/softpc.new/base/ccpu386/c_xcptn.h new file mode 100644 index 000000000..2c891bdd0 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_xcptn.h @@ -0,0 +1,59 @@ +/*[ + +c_xcptn.h + +LOCAL CHAR SccsID[]="@(#)c_xcptn.h 1.6 01/19/95"; + +Exception Handling Support. +--------------------------- + +]*/ + + +/* + Intel exception types. + */ +#define INTERNAL 0 +#define EXTERNAL 1 + + +/* + Interrupt Controls. + */ +IMPORT BOOL doing_contributory; +IMPORT BOOL doing_double_fault; +IMPORT BOOL doing_page_fault; +IMPORT BOOL doing_fault; +IMPORT ISM32 EXT; +IMPORT IU32 CCPU_save_EIP; + + +IMPORT VOID Int0 IPT0(); + +IMPORT VOID Int1_f IPT0(); /* fault */ + +IMPORT VOID Int1_t IPT0(); /* trap */ + +IMPORT VOID Int5 IPT0(); + +IMPORT VOID Int6 IPT0(); + +IMPORT VOID Int7 IPT0(); + +IMPORT VOID Int16 IPT0(); + +IMPORT VOID DF IPT1( IU16, xcode); + +IMPORT VOID TS IPT2( IU16, selector, IU16, xcode ); + +IMPORT VOID NP IPT2( IU16, selector, IU16, xcode ); + +IMPORT VOID SF IPT2( IU16, selector, IU16, xcode ); + +IMPORT VOID GP IPT2( IU16, selector, IU16, xcode ); + +IMPORT VOID PF IPT2( IU16, page_error, IU16, xcode ); + +IMPORT VOID NP_INT IPT2( IU16, vector, IU16, xcode ); + +IMPORT VOID GP_INT IPT2( IU16, vector, IU16, xcode ); diff --git a/private/mvdm/softpc.new/base/ccpu386/c_xfer.c b/private/mvdm/softpc.new/base/ccpu386/c_xfer.c new file mode 100644 index 000000000..4d5980331 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_xfer.c @@ -0,0 +1,416 @@ +/*[ + +c_xfer.c + +LOCAL CHAR SccsID[]="@(#)c_xfer.c 1.14 02/17/95"; + +Transfer of Control Support. +---------------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + Prototype our internal functions. + */ +LOCAL VOID read_call_gate + +IPT5( + IU32, descr_addr, + ISM32, super, + IU16 *, selector, + IU32 *, offset, + IU8 *, count + + ); + +IMPORT IBOOL took_relative_jump; + + + +/* + ===================================================================== + INTERNAL FUNCTIONS STARTS HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Read call gate descriptor. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +LOCAL VOID +read_call_gate + +IFN5( + IU32, descr_addr, /* (I) memory address of call gate descriptor */ + ISM32, super, /* (I) descriptor type + (CALL_GATE|XTND_CALL_GATE) */ + IU16 *, selector, /* (O) selector retrieved from descriptor */ + IU32 *, offset, /* (O) offset retrieved from descriptor */ + IU8 *, count /* (O) count retrieved from descriptor */ + ) + + + { + /* + The format of a gate descriptor is:- + + =========================== + +1 | LIMIT 15-0 | +0 + =========================== + +3 | SELECTOR | +2 + =========================== + +5 | AR | COUNT | +4 + =========================== + +7 | LIMIT 31-16 | +6 + =========================== + */ + + IU32 first_dword; + IU32 second_dword; + + /* read in descriptor with minimum interaction with memory */ + first_dword = spr_read_dword(descr_addr); + second_dword = spr_read_dword(descr_addr+4); + + /* unpack selector */ + *selector = first_dword >> 16; + + /* unpack lower bits of offset */ + *offset = first_dword & WORD_MASK; + + /* unpack count */ + *count = second_dword & BYTE_MASK; + + if ( super == XTND_CALL_GATE ) + { + /* unpack higer bits of offset */ + *offset = second_dword & ~WORD_MASK | *offset; + + *count &= 0x0f; /* 4-bit double word count */ + SET_OPERAND_SIZE(USE32); /* Gate Overrides all else. */ + } + else + { + *count &= 0x1f; /* 5-bit word count */ + SET_OPERAND_SIZE(USE16); /* Gate Overrides all else. */ + } + } + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Update IP with relative offset. Check new IP is valid. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +update_relative_ip + +IFN1( + IU32, rel_offset /* sign extended relative offset */ + ) + + + { + IU32 new_dest; + + new_dest = GET_EIP() + rel_offset; + + if ( GET_OPERAND_SIZE() == USE16 ) + new_dest &= WORD_MASK; + +#ifdef TAKE_REAL_MODE_LIMIT_FAULT + + if ( new_dest > GET_CS_LIMIT() ) + GP((IU16)0, FAULT_RM_REL_IP_CS_LIMIT); + +#else /* TAKE_REAL_MODE_LIMIT_FAULT */ + + /* The Soft486 EDL CPU does not take Real Mode limit failures. + * Since the Ccpu486 is used as a "reference" cpu we wish it + * to behave a C version of the EDL Cpu rather than as a C + * version of a i486. + */ + +#ifdef TAKE_PROT_MODE_LIMIT_FAILURE + + /* The Soft486 EDL CPU does not take Protected Mode limit failues + * for the instructions with relative offsets, Jxx, LOOPxx, JCXZ, + * JMP rel and CALL rel, or instructions with near offsets, + * JMP near and CALL near. + * Since the Ccpu486 is used as a "reference" cpu we wish it + * to behave a C version of the EDL Cpu rather than as a C + * version of a i486. + */ + + if ( GET_PE() == 1 && GET_VM() == 0 ) + { + if ( new_dest > GET_CS_LIMIT() ) + GP((IU16)0, FAULT_PM_REL_IP_CS_LIMIT); + } + +#endif /* TAKE_PROT_MODE_LIMIT_FAILURE */ + +#endif /* TAKE_REAL_MODE_LIMIT_FAULT */ + + SET_EIP(new_dest); + took_relative_jump = TRUE; + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Validate far call or far jump destination */ +/* Take #GP if invalid or access check fail. */ +/* Take #NP if not present. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +validate_far_dest + +IFN6( + IU16 *, cs, /* (I/O) segment of target address */ + IU32 *, ip, /* (I/O) offset of target address */ + IU32 *, descr_addr, /* (O) related descriptor memory address */ + IU8 *, count, /* (O) call gate count(valid if CALL_GATE) */ + ISM32 *, dest_type, /* (O) destination type */ + ISM32, caller_id /* (I) bit mapped caller identifier */ + ) + + + { + IU16 new_cs; + IU32 new_ip; + IU32 cs_descr_addr; + IU8 AR; + ISM32 super; + + new_cs = *cs; /* take local copies */ + new_ip = *ip; + + *dest_type = SAME_LEVEL; /* default to commonest type */ + + if ( selector_outside_GDT_LDT(new_cs, &cs_descr_addr) ) + GP(new_cs, FAULT_FAR_DEST_SELECTOR); + + /* load access rights */ + AR = spr_read_byte(cs_descr_addr+5); + + /* validate possible types of target */ + switch ( super = descriptor_super_type((IU16)AR) ) + { + case CONFORM_NOREAD_CODE: + case CONFORM_READABLE_CODE: + /* access check requires DPL <= CPL */ + if ( GET_AR_DPL(AR) > GET_CPL() ) + GP(new_cs, FAULT_FAR_DEST_ACCESS_1); + + /* it must be present */ + if ( GET_AR_P(AR) == NOT_PRESENT ) + NP(new_cs, FAULT_FAR_DEST_NP_CONFORM); + break; + + case NONCONFORM_NOREAD_CODE: + case NONCONFORM_READABLE_CODE: + /* access check requires RPL <= CPL and DPL == CPL */ + if ( GET_SELECTOR_RPL(new_cs) > GET_CPL() || + GET_AR_DPL(AR) != GET_CPL() ) + GP(new_cs, FAULT_FAR_DEST_ACCESS_2); + + /* it must be present */ + if ( GET_AR_P(AR) == NOT_PRESENT ) + NP(new_cs, FAULT_FAR_DEST_NP_NONCONFORM); + break; + + case CALL_GATE: + case XTND_CALL_GATE: + /* Check gate present and access allowed */ + + /* access check requires DPL >= RPL and DPL >= CPL */ + if ( GET_SELECTOR_RPL(new_cs) > GET_AR_DPL(AR) || + GET_CPL() > GET_AR_DPL(AR) ) + GP(new_cs, FAULT_FAR_DEST_ACCESS_3); + + if ( GET_AR_P(AR) == NOT_PRESENT ) + NP(new_cs, FAULT_FAR_DEST_NP_CALLG); + + /* OK, get real destination from gate */ + read_call_gate(cs_descr_addr, super, &new_cs, &new_ip, count); + + validate_gate_dest(caller_id, new_cs, &cs_descr_addr, dest_type); + break; + + case TASK_GATE: + /* Check gate present and access allowed */ + + /* access check requires DPL >= RPL and DPL >= CPL */ + if ( GET_SELECTOR_RPL(new_cs) > GET_AR_DPL(AR) || + GET_CPL() > GET_AR_DPL(AR) ) + GP(new_cs, FAULT_FAR_DEST_ACCESS_4); + + if ( GET_AR_P(AR) == NOT_PRESENT ) + NP(new_cs, FAULT_FAR_DEST_NP_TASKG); + + /* OK, get real destination from gate */ + new_cs = spr_read_word(cs_descr_addr+2); + + /* Check out new destination */ + (void)validate_task_dest(new_cs, &cs_descr_addr); + + *dest_type = NEW_TASK; + break; + + case AVAILABLE_TSS: + case XTND_AVAILABLE_TSS: + /* TSS must be in GDT */ + if ( GET_SELECTOR_TI(new_cs) == 1 ) + GP(new_cs, FAULT_FAR_DEST_TSS_IN_LDT); + + /* access check requires DPL >= RPL and DPL >= CPL */ + if ( GET_SELECTOR_RPL(new_cs) > GET_AR_DPL(AR) || + GET_CPL() > GET_AR_DPL(AR) ) + GP(new_cs, FAULT_FAR_DEST_ACCESS_5); + + /* it must be present */ + if ( GET_AR_P(AR) == NOT_PRESENT ) + NP(new_cs, FAULT_FAR_DEST_NP_TSS); + + *dest_type = NEW_TASK; + break; + + default: + GP(new_cs, FAULT_FAR_DEST_BAD_SEG_TYPE); /* bad type for far destination */ + } + + *cs = new_cs; /* Return final values */ + *ip = new_ip; + *descr_addr = cs_descr_addr; + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Validate transfer of control to a call gate destination. */ +/* Take #GP if invalid or access check fail. */ +/* Take #NP if not present. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +validate_gate_dest + +IFN4( + ISM32, caller_id, /* (I) bit mapped caller identifier */ + IU16, new_cs, /* (I) segment of target address */ + IU32 *, descr_addr, /* (O) related descriptor memory address */ + ISM32 *, dest_type /* (O) destination type */ + ) + + + { + IU8 AR; + + *dest_type = SAME_LEVEL; /* default */ + + /* Check out new destination */ + if ( selector_outside_GDT_LDT(new_cs, descr_addr) ) + GP(new_cs, FAULT_GATE_DEST_SELECTOR); + + /* load access rights */ + AR = spr_read_byte((*descr_addr)+5); + + /* must be a code segment */ + switch ( descriptor_super_type((IU16)AR) ) + { + case CONFORM_NOREAD_CODE: + case CONFORM_READABLE_CODE: + /* access check requires DPL <= CPL */ + if ( GET_AR_DPL(AR) > GET_CPL() ) + GP(new_cs, FAULT_GATE_DEST_ACCESS_1); + break; + + case NONCONFORM_NOREAD_CODE: + case NONCONFORM_READABLE_CODE: + /* access check requires DPL <= CPL */ + if ( GET_AR_DPL(AR) > GET_CPL() ) + GP(new_cs, FAULT_GATE_DEST_ACCESS_2); + + /* but jumps must have DPL == CPL */ + if ( (caller_id & JMP_ID) && (GET_AR_DPL(AR) != GET_CPL()) ) + GP(new_cs, FAULT_GATE_DEST_ACCESS_3); + + /* set MORE_PRIVILEGE(0|1|2) */ + if ( GET_AR_DPL(AR) < GET_CPL() ) + *dest_type = GET_AR_DPL(AR); + break; + + default: + GP(new_cs, FAULT_GATE_DEST_BAD_SEG_TYPE); + } + + if ( GET_VM() == 1 ) + { + /* + We must be called by ISM32, so ensure we go to CPL 0 via + a 32-bit gate. + */ + if ( *dest_type != MORE_PRIVILEGE0 || GET_OPERAND_SIZE() != USE32 ) + GP(new_cs, FAULT_GATE_DEST_GATE_SIZE); + } + + /* it must be present */ + if ( GET_AR_P(AR) == NOT_PRESENT ) + NP(new_cs, FAULT_GATE_DEST_NP); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Validate transfer of control to a task gate destination. */ +/* Take #GP if invalid or access check fail. */ +/* Take #NP if not present. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL IMPORT ISM32 +validate_task_dest + +IFN2( + IU16, selector, /* (I) segment of target address */ + IU32 *, descr_addr /* (O) related descriptor memory address */ + ) + + + { + IU8 AR; + ISM32 super; + + /* must be in GDT */ + if ( selector_outside_GDT(selector, descr_addr) ) + GP(selector, FAULT_TASK_DEST_SELECTOR); + + /* load access rights */ + AR = spr_read_byte((*descr_addr)+5); + + /* is it really an available TSS segment */ + super = descriptor_super_type((IU16)AR); + if ( super == AVAILABLE_TSS || super == XTND_AVAILABLE_TSS ) + ; /* ok */ + else + GP(selector, FAULT_TASK_DEST_NOT_TSS); + + /* it must be present */ + if ( GET_AR_P(AR) == NOT_PRESENT ) + NP(selector, FAULT_TASK_DEST_NP); + return super; + } diff --git a/private/mvdm/softpc.new/base/ccpu386/c_xfer.h b/private/mvdm/softpc.new/base/ccpu386/c_xfer.h new file mode 100644 index 000000000..2c065ef1a --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_xfer.h @@ -0,0 +1,70 @@ +/*[ + +c_xfer.h + +Transfer of Control Support. +---------------------------- + +LOCAL CHAR SccsID[]="@(#)c_xfer.h 1.5 02/17/95"; + +]*/ + + +/* + Bit mapped identities (caller_id) for the invokers of far + transfers of control. + */ +#define CALL_ID 0 +#define JMP_ID 1 +#define INT_ID 0 + +/* + Legal far destinations (dest_type). + */ + +/* greater privilege is mapped directly to the Intel privilege */ +#define MORE_PRIVILEGE0 0 +#define MORE_PRIVILEGE1 1 +#define MORE_PRIVILEGE2 2 +/* our own (arbitary) mappings */ +#define SAME_LEVEL 3 +#define LOWER_PRIVILEGE 4 +#define NEW_TASK 5 + + +IMPORT VOID update_relative_ip + +IPT1( + IU32, rel_offset + + ); + +IMPORT VOID validate_far_dest + +IPT6( + IU16 *, cs, + IU32 *, ip, + IU32 *, descr_addr, + IU8 *, count, + ISM32 *, dest_type, + ISM32, caller_id + + ); + +IMPORT VOID validate_gate_dest + +IPT4( + ISM32, caller_id, + IU16, new_cs, + IU32 *, descr_addr, + ISM32 *, dest_type + + ); + +IMPORT ISM32 validate_task_dest + +IPT2( + IU16, selector, + IU32 *, descr_addr + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/c_xtrn.c b/private/mvdm/softpc.new/base/ccpu386/c_xtrn.c new file mode 100644 index 000000000..64a5cf70e --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_xtrn.c @@ -0,0 +1,135 @@ +/*[ + +c_xtrn.c + +LOCAL CHAR SccsID[]="@(#)c_xtrn.c 1.9 04/22/94"; + +Interface routines used by BIOS code. +------------------------------------- + + +]*/ + + +#include + +#include + +#include +#include +#include + +#if 0 +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +LOCAL jmp_buf interface_abort; +LOCAL BOOL interface_active; +LOCAL ISM32 interface_error; + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Call CPU Function and catch any resulting exception. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL ISM32 +call_cpu_function IFN4(CALL_CPU *, func, ISM32, type, ISM32, arg1, IU16, arg2) + { + if ( setjmp(interface_abort) == 0 ) + { + interface_active = TRUE; + + /* Do the CPU Function */ + switch ( type ) + { + case 1: + (*(CALL_CPU_2 *)func)(arg1, arg2); + break; + + case 2: + (*(CALL_CPU_1 *)func)(arg2); + break; + + default: + break; + } + + interface_error = 0; /* All went OK */ + } + + interface_active = FALSE; + + return interface_error; + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Check if external interface is active. */ +/* And Bail Out if it is! */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +check_interface_active + +IFN1( + ISM32, except_nmbr + ) + + + { + if ( interface_active ) + { + /* YES CPU Function was called by an interface routine. */ + interface_error = except_nmbr; /* save error */ + longjmp(interface_abort, 1); /* Bail Out */ + } + } + +/*( + *========================= Cpu_find_dcache_entry ============================== + * Cpu_find_dcache_entry + * + * Purpose + * In an assembler CPU, this function allows non-CPU code to try and look + * up a selector in the dcache, rather than constructing it from memory. + * We don't have a dcache, but it gives us a chance to intercept + * CS selector calls, as the CS descriptor may not be available. + * + * Input + * selector, The selector to look-up + * + * Outputs + * returns TRUE if selector found (i.e. CS in our case) + * base The linear address of the base of the segment. + * + * Description + * Just look out for CS, and return the stored base if we get it. +)*/ + +GLOBAL IBOOL +Cpu_find_dcache_entry IFN2(IU16, seg, LIN_ADDR *, base) +{ + + if (GET_CS_SELECTOR() == seg) { + *base = GET_CS_BASE(); + return(TRUE); + } else { + return(FALSE); + } +} diff --git a/private/mvdm/softpc.new/base/ccpu386/c_xtrn.h b/private/mvdm/softpc.new/base/ccpu386/c_xtrn.h new file mode 100644 index 000000000..e4ba99d0d --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/c_xtrn.h @@ -0,0 +1,38 @@ +/*[ + +c_xtrn.h + +External Interface Support. +--------------------------- + +LOCAL CHAR SccsID[]="@(#)c_xtrn.h 1.4 02/09/94"; + +]*/ + + +/* + Supported Interface Types. + */ +#define TYPE_I_W 1 /* (ISM32 , IU16) */ +#define TYPE_W 2 /* (IU16) */ + +IMPORT VOID check_interface_active + +IPT1( + ISM32, except_nmbr + + ); + +typedef void CALL_CPU IPT0(); +typedef void CALL_CPU_1 IPT1(ISM32, p1); +typedef void CALL_CPU_2 IPT2(ISM32, p1, IU16, p2); + +IMPORT ISM32 call_cpu_function + +IPT4( + CALL_CPU *,func, + ISM32, type, + ISM32, arg1, + IU16, arg2 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/call.c b/private/mvdm/softpc.new/base/ccpu386/call.c new file mode 100644 index 000000000..961f4be68 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/call.c @@ -0,0 +1,357 @@ +/*[ + +call.c + +LOCAL CHAR SccsID[]="@(#)call.c 1.15 02/27/95"; + +CALL CPU Functions. +------------------- + +]*/ + + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Process far calls. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +CALLF +#ifdef ANSI + ( + IU32 op1[2] /* offset:segment pointer */ + ) +#else + (op1) + IU32 op1[2]; +#endif + { + IU16 new_cs; /* The destination */ + IU32 new_ip; + + IU32 cs_descr_addr; /* code segment descriptor address */ + CPU_DESCR cs_entry; /* code segment descriptor entry */ + + ISM32 dest_type; /* category for destination */ + + IU8 count; /* call gate count (if used) */ + IU32 dpl; /* new privilege level (if used) */ + + IU16 new_ss; /* The new stack */ + IU32 new_sp; + ISM32 new_stk_sz; /* Size in bytes of new stack */ + + IU32 ss_descr_addr; /* stack segment descriptor address */ + CPU_DESCR ss_entry; /* stack segment descriptor entry */ + + /* Variables used on stack transfers */ + IU32 old_cs; + IU32 old_ip; + IU32 old_ss; + IU32 old_sp; + IU32 params[31]; + ISM32 i; + + /* get destination (correctly typed) */ + new_cs = op1[1]; + new_ip = op1[0]; + + if ( GET_PE() == 0 || GET_VM() == 1 ) + { + /* Real Mode or V86 Mode */ + + /* must be able to push CS:(E)IP */ + validate_stack_space(USE_SP, (ISM32)NR_ITEMS_2); + +#ifdef TAKE_REAL_MODE_LIMIT_FAULT + + /* do ip limit checking */ + if ( new_ip > GET_CS_LIMIT() ) + GP((IU16)0, FAULT_CALLF_RM_CS_LIMIT); + +#else /* TAKE_REAL_MODE_LIMIT_FAULT */ + + /* The Soft486 EDL CPU does not take Real Mode limit failures. + * Since the Ccpu486 is used as a "reference" cpu we wish it + * to behave a C version of the EDL Cpu rather than as a C + * version of a i486. + */ + +#endif /* TAKE_REAL_MODE_LIMIT_FAULT */ + + + /* ALL SYSTEMS GO */ + + /* push return address */ + spush16((IU32)GET_CS_SELECTOR()); + spush((IU32)GET_EIP()); + + load_CS_cache(new_cs, (IU32)0, (CPU_DESCR *)0); + SET_EIP(new_ip); + } + else + { + /* protected mode */ + + /* decode and check final destination */ + validate_far_dest(&new_cs, &new_ip, &cs_descr_addr, &count, + &dest_type, CALL_ID); + + /* action possible types of target */ + switch ( dest_type ) + { + case NEW_TASK: + switch_tasks(NOT_RETURNING, NESTING, new_cs, cs_descr_addr, GET_EIP()); + + /* limit check new IP (now in new task) */ + if ( GET_EIP() > GET_CS_LIMIT() ) + GP((IU16)0, FAULT_CALLF_TASK_CS_LIMIT); + break; + + case SAME_LEVEL: + read_descriptor_linear(cs_descr_addr, &cs_entry); + + /* stamp new selector with CPL */ + SET_SELECTOR_RPL(new_cs, GET_CPL()); + + /* check room for return address CS:(E)IP */ + validate_stack_space(USE_SP, (ISM32)NR_ITEMS_2); + + /* do ip limit check */ + if ( new_ip > cs_entry.limit ) + GP((IU16)0, FAULT_CALLF_PM_CS_LIMIT_1); + + /* ALL SYSTEMS GO */ + + /* push return address */ + spush16((IU32)GET_CS_SELECTOR()); + spush((IU32)GET_EIP()); + + load_CS_cache(new_cs, cs_descr_addr, &cs_entry); + SET_EIP(new_ip); + break; + + default: /* MORE_PRIVILEGE(0|1|2) */ + read_descriptor_linear(cs_descr_addr, &cs_entry); + + dpl = dest_type; + + /* stamp new selector with new CPL */ + SET_SELECTOR_RPL(new_cs, dpl); + + /* find out about new stack */ + get_stack_selector_from_TSS(dpl, &new_ss, &new_sp); + + /* check new stack selector */ + validate_SS_on_stack_change(dpl, new_ss, + &ss_descr_addr, &ss_entry); + + /* check room for SS:(E)SP + parameters + CS:(E)IP */ + new_stk_sz = count + NR_ITEMS_4; + validate_new_stack_space(new_stk_sz, new_sp, &ss_entry, new_ss); + + /* do ip limit check */ + if ( new_ip > cs_entry.limit ) + GP((IU16)0, FAULT_CALLF_PM_CS_LIMIT_2); + + /* ALL SYSTEMS GO */ + + SET_CPL(dpl); + + /* update code segment */ + old_cs = (IU32)GET_CS_SELECTOR(); + old_ip = GET_EIP(); + load_CS_cache(new_cs, cs_descr_addr, &cs_entry); + SET_EIP(new_ip); + + /* 'pop' params from old stack */ + old_ss = (IU32)GET_SS_SELECTOR(); + old_sp = GET_ESP(); + + for ( i = 0; i < count; i++ ) + params[i] = spop(); + + /* update stack segment */ + load_SS_cache(new_ss, ss_descr_addr, &ss_entry); + if ( GET_OPERAND_SIZE() == USE16 ) + SET_SP(new_sp); + else + SET_ESP(new_sp); + + /* + FORM NEW STACK, VIZ + + ========== ========== + old SS:SP -> | parm 1 | new SS:SP -> | old IP | + | parm 2 | | old CS | + | parm 3 | | parm 1 | + ========== | parm 2 | + | parm 3 | + | old SP | + | old SS | + ========== + */ + + /* push old stack values */ + spush16(old_ss); + spush(old_sp); + + /* push back params onto new stack */ + for ( i = count-1; i >= 0; i-- ) + spush(params[i]); + + /* push return address */ + spush16(old_cs); + spush(old_ip); + break; + } + } + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* call near indirect */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +CALLN + +IFN1( + IU32, offset + ) + + + { + /* check push to stack ok */ + validate_stack_space(USE_SP, (ISM32)NR_ITEMS_1); + + /* + Although the 386 book says a 16-bit operand should be AND'ed + with 0x0000ffff, a 16-bit operand is never fetched with the + top bits dirty anyway, so we don't AND here. + */ + + /* do ip limit check */ +#ifdef TAKE_REAL_MODE_LIMIT_FAULT + + if ( offset > GET_CS_LIMIT() ) + GP((IU16)0, FAULT_CALLN_RM_CS_LIMIT); + +#else /* TAKE_REAL_MODE_LIMIT_FAULT */ + + /* The Soft486 EDL CPU does not take Real Mode limit failures. + * Since the Ccpu486 is used as a "reference" cpu we wish it + * to behave a C version of the EDL Cpu rather than as a C + * version of a i486. + */ + +#ifdef TAKE_PROT_MODE_LIMIT_FAULT + + if ( GET_PE() == 1 && GET_VM() == 0 ) + { + if ( offset > GET_CS_LIMIT() ) + GP((IU16)0, FAULT_CALLN_PM_CS_LIMIT); + } + +#endif /* TAKE_PROT_MODE_LIMIT_FAULT */ + + /* The Soft486 EDL CPU does not take Protected Mode limit failues + * for the instructions with relative offsets, Jxx, LOOPxx, JCXZ, + * JMP rel and CALL rel, or instructions with near offsets, + * JMP near and CALL near. + * Since the Ccpu486 is used as a "reference" cpu we wish it + * to behave a C version of the EDL Cpu rather than as a C + * version of a i486. + */ + +#endif /* TAKE_REAL_MODE_LIMIT_FAULT */ + + /* all systems go */ + spush((IU32)GET_EIP()); + SET_EIP(offset); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* call near relative */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +CALLR + +IFN1( + IU32, rel_offset + ) + + + { + IU32 new_dest; + + /* check push to stack ok */ + validate_stack_space(USE_SP, (ISM32)NR_ITEMS_1); + + /* calculate and check new destination */ + new_dest = GET_EIP() + rel_offset; + + if ( GET_OPERAND_SIZE() == USE16 ) + new_dest &= WORD_MASK; + + /* do ip limit check */ +#ifdef TAKE_REAL_MODE_LIMIT_FAULT + + if ( new_dest > GET_CS_LIMIT() ) + GP((IU16)0, FAULT_CALLR_RM_CS_LIMIT); + +#else /* TAKE_REAL_MODE_LIMIT_FAULT */ + + /* The Soft486 EDL CPU does not take Real Mode limit failures. + * Since the Ccpu486 is used as a "reference" cpu we wish it + * to behave a C version of the EDL Cpu rather than as a C + * version of a i486. + */ + +#ifdef TAKE_PROT_MODE_LIMIT_FAULT + + if ( GET_PE() == 1 && GET_VM() == 0 ) + { + if ( new_dest > GET_CS_LIMIT() ) + GP((IU16)0, FAULT_CALLR_PM_CS_LIMIT); + } + +#endif /* TAKE_PROT_MODE_LIMIT_FAULT */ + + /* The Soft486 EDL CPU does not take Protected Mode limit failues + * for the instructions with relative offsets, Jxx, LOOPxx, JCXZ, + * JMP rel and CALL rel, or instructions with near offsets, + * JMP near and CALL near. + * Since the Ccpu486 is used as a "reference" cpu we wish it + * to behave a C version of the EDL Cpu rather than as a C + * version of a i486. + */ + +#endif /* TAKE_REAL_MODE_LIMIT_FAULT */ + + /* all systems go */ + spush((IU32)GET_EIP()); + SET_EIP(new_dest); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/call.h b/private/mvdm/softpc.new/base/ccpu386/call.h new file mode 100644 index 000000000..488419e36 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/call.h @@ -0,0 +1,30 @@ +/* + call.h + + Define all CALL CPU functions. + */ + +/* + static char SccsID[]="@(#)call.h 1.4 02/09/94"; + */ + +IMPORT VOID CALLF + +IPT1( + IU32, op1[2] + + ); + +IMPORT VOID CALLN + +IPT1( + IU32, offset + + ); + +IMPORT VOID CALLR + +IPT1( + IU32, rel_offset + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/cbw.c b/private/mvdm/softpc.new/base/ccpu386/cbw.c new file mode 100644 index 000000000..75a2f70b1 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/cbw.c @@ -0,0 +1,42 @@ +/*[ + +cbw.c + +LOCAL CHAR SccsID[]="@(#)cbw.c 1.5 02/09/94"; + +CBW CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +GLOBAL VOID +CBW() + { + if ( GET_AL() & BIT7_MASK ) /* sign bit set? */ + SET_AH(0xff); + else + SET_AH(0); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/cbw.h b/private/mvdm/softpc.new/base/ccpu386/cbw.h new file mode 100644 index 000000000..99d17143e --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/cbw.h @@ -0,0 +1,11 @@ +/* + cbw.h + + Define all CBW CPU functions. + */ + +/* + static char SccsID[]="@(#)cbw.h 1.5 09/01/94"; + */ + +IMPORT VOID CBW IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/ccpudefs.inc b/private/mvdm/softpc.new/base/ccpu386/ccpudefs.inc new file mode 100644 index 000000000..74f2098fa --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/ccpudefs.inc @@ -0,0 +1 @@ +C_DEFINES= -DCPU_30_STYLE -DCPU_40_STYLE -DNEW_CPU -DCCPU -DSPC386 -DANSI -DNTVDM diff --git a/private/mvdm/softpc.new/base/ccpu386/ccpupig.c b/private/mvdm/softpc.new/base/ccpu386/ccpupig.c new file mode 100644 index 000000000..5ab94513d --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/ccpupig.c @@ -0,0 +1,320 @@ +/*[ + +ccpupig.c + +LOCAL CHAR SccsID[]="@(#)ccpupig.c 1.22 04/11/95" + +C CPU <-> Pigger Interface +-------------------------- + +]*/ + +#include +#include + +#ifdef PIG + +#include +#define CPU_PRIVATE +#include CpuH +#include +#include /* need memory(M) */ +#include /* the cpu internal sas bits */ +#include /* Intel memory access macros */ + +#include +#include +#include + +#define DASM_PRIVATE +#include +#include + +#include +/* + * Interface between this cpu and other one being pigged + */ +GLOBAL enum pig_actions pig_cpu_action; +GLOBAL IBOOL ccpu_pig_enabled = FALSE; + +/* + * Last Instruction memorizing... + */ + +GLOBAL IU32 ccpu_synch_count = 1; + +LOCAL struct ccpu_last_inst *inst_buffer; +LOCAL struct ccpu_last_inst *inst_ptr; +LOCAL struct ccpu_last_inst *inst_ptr_wrap; +LOCAL struct ccpu_last_inst *next_inst_ptr; +LOCAL struct ccpu_last_inst *inst_bytes_ptr; +LOCAL char prefetch_inst_buffer[200]; + +/*( + * Keep these last inst vars up to date... +)*/ + +GLOBAL VOID save_last_inst_details IFN1(char *, text) +{ + inst_ptr->cs = GET_CS_SELECTOR(); + inst_ptr->big_cs = GET_CS_AR_X() != 0; + inst_ptr->text = text; + /* + * getEIP() should be getInstructionPointer() but they + * are equivalent for the current CCPU. + */ + inst_ptr->eip = GET_EIP(); + inst_bytes_ptr = inst_ptr; + inst_bytes_ptr->inst_len = 0; + + inst_ptr->synch_count = ccpu_synch_count; + + if (++inst_ptr >= inst_ptr_wrap) + inst_ptr = inst_buffer; + + /* Invalidate the previous prefetch disassembly buffer */ + prefetch_inst_buffer[0] = '\0'; +} + +/* This is called by the CCPU as it processes each instruction byte. + * The CCPU has already checked that the Intel instruction is not just + * an infinite sequence of prefixes, so we know it will fit. + */ +GLOBAL IU8 save_instruction_byte IFN1(IU8, byte) +{ + int len = inst_bytes_ptr->inst_len++; + + inst_bytes_ptr->bytes[len] = byte; + return (byte); +} + +/* When an exception occurs, the CCPU will save the details in the last instruction + * history buffer. This requires a sprintf, and we use the code-bytes data area + * to keep this information. + * Up to 3 parameters can be in the format. + */ +GLOBAL VOID save_last_xcptn_details IFN6(char *, fmt, IUH, a1, IUH, a2, IUH, a3, IUH, a4, IUH, a5 ) +{ + char buffer[128]; + + inst_ptr->cs = getCS_SELECTOR(); + inst_ptr->eip = getEIP(); + inst_ptr->big_cs = 0; + inst_ptr->synch_count = ccpu_synch_count; + + /* The default message is too long sometimes. + * We replace any leading "Exception:-" with "XCPT" + */ + + if (strncmp(fmt, "Exception:-", 11) == 0) + { + strcpy(buffer, "XCPT"); + sprintf(buffer + 4, fmt + 11, a1, a2, a3, a4, a5); + } + else + { + sprintf(buffer, fmt, a1, a2, a3, a4, a5); + } + + if (strlen(buffer) >= sizeof(inst_ptr->bytes)) + printf("warning: CCPU XCPTN text message below longer than buffer; truncating:\n -- %s\n", buffer); + + strncpy(&inst_ptr->bytes[0], buffer, sizeof(inst_ptr->bytes) - 2); + + inst_ptr->bytes[sizeof(inst_ptr->bytes) - 2] = '\n'; + inst_ptr->bytes[sizeof(inst_ptr->bytes) - 1] = '\0'; + + inst_ptr->text = (char *)&inst_ptr->bytes[0]; + + if (++inst_ptr >= inst_ptr_wrap) + inst_ptr = inst_buffer; + + /* Invalidate the previous prefetch disassembly buffer */ + prefetch_inst_buffer[0] = '\0'; +} + +GLOBAL struct ccpu_last_inst *get_synch_inst_details IFN1(IU32, synch_point) +{ + /* scan backwards through the buffer until the start of the relevant + * synch point block is found. + */ + IS32 n_entries = inst_ptr_wrap - inst_buffer; + + next_inst_ptr = inst_ptr - 1; + + if (next_inst_ptr < inst_buffer) + next_inst_ptr = inst_ptr_wrap - 1; + + while (synch_point <= next_inst_ptr->synch_count) + { + if (--n_entries <= 0) + return (next_inst_ptr); + + if (--next_inst_ptr < inst_buffer) + next_inst_ptr = inst_ptr_wrap - 1; + } + + if (++next_inst_ptr >= inst_ptr_wrap) + next_inst_ptr = inst_buffer; + + return (next_inst_ptr); +} + + +/* After a previous call to get_synch_inst_details(), get the next + * inst details. This call should be repeated until NULL is returned. + */ +GLOBAL struct ccpu_last_inst *get_next_inst_details IFN1(IU32, finish_synch_point) +{ + if (next_inst_ptr) + { + if (++next_inst_ptr >= inst_ptr_wrap) + next_inst_ptr = inst_buffer; + + if ((next_inst_ptr->synch_count == 0) + || (next_inst_ptr == inst_ptr) + || (next_inst_ptr->synch_count > finish_synch_point) + ) + { + next_inst_ptr = (struct ccpu_last_inst *)0; + } + } + return next_inst_ptr; +} + + +GLOBAL VOID init_last_inst_details IFN0() +{ + SAVED IBOOL first = TRUE; + + if (first) + { + struct ccpu_last_inst *ptr; + ISM32 size = ISM32getenv("CCPU_HISTORY_SIZE", 256); + + if (size < 100) + { + sprintf(prefetch_inst_buffer, + "CCPU_HISTORY_SIZE of %d is too small", + size); + FatalError(prefetch_inst_buffer); + } + ptr = (struct ccpu_last_inst *)host_malloc(size * sizeof(*ptr)); + if (ptr == (struct ccpu_last_inst *)0) + { + sprintf(prefetch_inst_buffer, + "Unable to malloc memory for CCPU_HISTORY_SIZE of %d", + size); + FatalError(prefetch_inst_buffer); + } + inst_buffer = ptr; + inst_ptr_wrap = &inst_buffer[size]; + first = FALSE; + } + + memset(inst_buffer, 0, ((IHPE)inst_ptr_wrap - (IHPE)inst_buffer)); + next_inst_ptr = (struct ccpu_last_inst *)0; + inst_ptr = inst_buffer; +} + + +/* When about to pig an interrupt we may need to mark the last + * basic block as "invalid" even though it has been executed by + * the CCPU. + */ +GLOBAL VOID save_last_interrupt_details IFN2(IU8, number, IBOOL, invalidateLastBlock) +{ + if (invalidateLastBlock) + { + struct ccpu_last_inst *ptr; + IU32 synch_count = ccpu_synch_count - 1; + + ptr = get_synch_inst_details(synch_count); + + while (ptr != (struct ccpu_last_inst *)0) + { + ptr->text = "Intr: invalidated"; + ptr = get_next_inst_details(synch_count); + } + } + save_last_xcptn_details("Intr: vector %02x", number, 0, 0, 0, 0); +} + + +LOCAL IBOOL reset_prefetch; + +LOCAL IS32 prefetch_byte IFN1(LIN_ADDR, eip) +{ + SAVED IU8 *ip_ptr; + SAVED IU8 *ip_ceiling; + SAVED LIN_ADDR last_eip; + IU8 b; + + if (reset_prefetch + || (eip != ++last_eip) + || !BelowOrEqualCpuPtrsLS8(ip_ptr, ip_ceiling)) + { + IU32 ip_phys_addr; + + /* Ensure this we fault first on the first + * byte within a new page -- dasm386 sometimes + * looks ahead a couple of bytes. + */ + if (GET_EIP() != eip) + { + (void)usr_chk_byte((GET_CS_BASE() + eip) & 0xFFFFF000, PG_R); + } + ip_phys_addr = usr_chk_byte(GET_CS_BASE() + eip, PG_R); + ip_ptr = Sas.SasPtrToPhysAddrByte(ip_phys_addr); + ip_ceiling = CeilingIntelPageLS8(ip_ptr); + reset_prefetch = FALSE; + } + b = *IncCpuPtrLS8(ip_ptr); + last_eip = eip; + return ((IS32) b); +} + +/* Use the decoder from dasm386 to read the bytes in a single instruction */ +GLOBAL void prefetch_1_instruction IFN0() +{ + IBOOL bigCode = GET_CS_AR_X() != 0; + IU32 eip = GET_EIP(); + char *fmt, *newline; + + reset_prefetch = TRUE; + + /* If we take a fault, the EIP pushed will be the + * value at the start of the "instruction" + * We must update this incase we fault. + */ + CCPU_save_EIP = eip; + + if ( bigCode ) + { + fmt = " %04x:%08x "; + newline = "\n "; + } + else + { + fmt = " %04x:%04x "; + newline = "\n "; + } + (void)dasm_internal(prefetch_inst_buffer, + GET_CS_SELECTOR(), + eip, + bigCode ? THIRTY_TWO_BIT: SIXTEEN_BIT, + eip, + prefetch_byte, + fmt, + newline); + assert(strlen(prefetch_inst_buffer) < sizeof(prefetch_inst_buffer)); +} + +/* Return to the show_code() routine in the pigger the instruction + * we prefetched. + */ +GLOBAL char *get_prefetched_instruction IFN0() +{ + return (prefetch_inst_buffer); +} +#endif /* PIG */ diff --git a/private/mvdm/softpc.new/base/ccpu386/ccpupig.h b/private/mvdm/softpc.new/base/ccpu386/ccpupig.h new file mode 100644 index 000000000..1b44a77c8 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/ccpupig.h @@ -0,0 +1,167 @@ +/*[ + +ccpupig.h + +LOCAL CHAR SccsID[]="@(#)ccpupig.h 1.26 04/11/95" + +C CPU <-> Pigger definitions and interfaces. +------------------------------------------- + +]*/ + +#ifdef PIG + +enum pig_actions +{ + CHECK_NONE, /* Check nothing (not yet executed) and carry on */ + CHECK_ALL, /* Check all and carry on */ + CHECK_NO_EXEC, /* Check all, but dont carry on */ + CHECK_SOME_MEM, /* Check memory (other than marked not written) */ + CHECK_NO_AL, /* Don't check AL */ + CHECK_NO_AX, /* Don't check AX */ + CHECK_NO_EAX, /* Don't check EAX */ + CHECK_NO_A20 /* Don't check A20 wrap (just done OUT 60) */ +}; + +typedef struct CpuStateREC cpustate_t; + +/* + * Interface between this cpu and other one being pigged + */ +IMPORT enum pig_actions pig_cpu_action; +IMPORT enum pig_actions last_pig_action; +IMPORT IBOOL ccpu_pig_enabled; + +/* + * Mask for arithmetic flags bits not known if PigIgnoreFlags is TRUE + * == ( CF | PF | AF | SF | ZF | OV ) == BIT0 | BIT2 | BIT4 | BIT6 | BIT7 | BIT11 ) + */ +#define ARITH_FLAGS_BITS ( 0x1 | 0x4 | 0x10 | 0x40 | 0x80 | 0x800 ) + +/* + * Mask for interrupts for which the EDL *may* not have correct flags + * information. + */ +#define NO_FLAGS_EXCEPTION_MASK ( ( 1 << 1 ) | \ + ( 1 << 3 ) | \ + ( 1 << 8 ) | \ + ( 1 << 10 ) | \ + ( 1 << 11 ) | \ + ( 1 << 12 ) | \ + ( 1 << 13 ) | \ + ( 1 << 14 ) | \ + ( 1 << 15 ) ) + +/* + * Last Instruction memorizing... + */ + +#define MAX_INTEL_PREFIX (15-1) +#define MAX_INTEL_BODY 15 +#define MAX_INTEL_BYTES (MAX_INTEL_PREFIX+MAX_INTEL_BODY) /* max size of single intel instruction */ +#define MAX_EXCEPTION_BYTES 40 /* size of buffer used for exception logging */ + +#define CCPUINST_BUFFER_SIZE ((MAX_INTEL_BYTES > MAX_EXCEPTION_BYTES) ? MAX_INTEL_BYTES : MAX_EXCEPTION_BYTES) + +struct ccpu_last_inst { + IU16 cs; + IU8 inst_len; + IBOOL big_cs; + IU32 eip; + IU32 synch_count; + char *text; + IU8 bytes[CCPUINST_BUFFER_SIZE]; +}; + +IMPORT IU32 ccpu_synch_count; + +IMPORT VOID save_last_inst_details IPT1(char *, text); +IMPORT IU8 save_instruction_byte IPT1(IU8, byte); +IMPORT VOID save_last_xcptn_details IPT6(char *, fmt, IUH, a1, IUH, a2, IUH, a3, IUH, a4, IUH, a5); +IMPORT VOID init_last_inst_details IPT0(); +IMPORT VOID save_last_interrupt_details IPT2(IU8, number, IBOOL, invalidateLastBlock); + +/* Routines to get last instruction information from the CCPU ring buffer */ + +IMPORT struct ccpu_last_inst *get_synch_inst_details IPT1(IU32, synch_point); +IMPORT struct ccpu_last_inst *get_next_inst_details IPT1(IU32, synch_point); + +/* Routine to return a disassembled form of the last instruction prefetched by the CCPU */ + +IMPORT char *get_prefetched_instruction IPT0(); + +/* + * Get/Set state of C CCPU (getsetc.c) + */ +IMPORT void c_getCpuState IPT1(cpustate_t *, p_state); +IMPORT void c_setCpuState IPT1(cpustate_t *, p_new_state); + +/* + * Get NPX regs from A Cpu and set C Cpu (only if necessary) + */ +IMPORT void c_checkCpuNpxRegisters IPT0(); +/* + * Set NPX regs from given state. + */ +IMPORT void c_setCpuNpxRegisters IPT1(cpustate_t *, p_new_state); +/* + * + */ +IMPORT void prefetch_1_instruction IPT0(); + +#if defined(SFELLOW) +/* + * memory-mapped I/O information. Counts number of memory-mapped inputs and + * outputs since the last pig synch. + */ +#define COLLECT_MMIO_STATS 1 + +#define LAST_FEW 32 /* must be power of 2 */ +#define LAST_FEW_MASK (LAST_FEW - 1) /* see above */ + +struct pig_mmio_info \ +{ +#if COLLECT_MMIO_STATS + IU32 mm_input_count; /* since last Pig error */ + IU32 mm_output_count; /* since last Pig error */ + IU32 mm_input_section_count; /* no. of synch sections unchecked due + to M-M input since last Pig error */ + IU32 mm_output_section_count;/* no. of synch sections containing + M-M output since last Pig error */ + IU32 start_synch_count; /* at last pig error/enabling */ + struct last_few_inputs + { + IU32 addr; /* address of memory-mapped input */ + IU32 synch_count; /* ccpu_synch_count at that input */ + } last_few_inputs[LAST_FEW]; + struct last_few_outputs + { + IU32 addr; /* address of memory-mapped output */ + IU32 synch_count; /* ccpu_synch_count at that output */ + } last_few_outputs[LAST_FEW]; +#endif /* COLLECT_MMIO_STATS */ + IUM16 flags; +}; + +/* + * flags element definitions + */ +#define MM_INPUT_OCCURRED 0x1 /* in current synch section */ +#define MM_OUTPUT_OCCURRED 0x2 /* in current synch section */ +#define MM_INPUT_COUNT_WRAPPED 0x4 +#define MM_OUTPUT_COUNT_WRAPPED 0x8 +#define MM_INPUT_SECTION_COUNT_WRAPPED 0x10 +#define MM_OUTPUT_SECTION_COUNT_WRAPPED 0x20 + +extern struct pig_mmio_info pig_mmio_info; + +#if COLLECT_MMIO_STATS +extern void clear_mmio_stats IPT0(); +extern void show_mmio_stats IPT0(); +#endif /* COLLECT_MMIO_STATS */ + +#endif /* SFELLOW */ + +extern IBOOL IgnoringThisSynchPoint IPT2(IU16, cs, IU32, eip); +extern IBOOL ignore_page_accessed IPT0(); +#endif /* PIG */ diff --git a/private/mvdm/softpc.new/base/ccpu386/ccpusas4.c b/private/mvdm/softpc.new/base/ccpu386/ccpusas4.c new file mode 100644 index 000000000..57aa76d5e --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/ccpusas4.c @@ -0,0 +1,1960 @@ +/*[ + * File Name : ccpu_sas4.c + * + * Derived From : ccpu_sas.c + * + * Author : Mike Moreton + * + * Creation Date : Oct 93 + * + * SCCS Version : @(#)ccpusas4.c 1.45 08/31/94 + * + * Purpose + * This module contains the SAS functions for a C CPU using the + * CPU_40_STYLE interface. + * + *! (c)Copyright Insignia Solutions Ltd., 1990-3. All rights reserved. +]*/ + + +#include "insignia.h" +#include "host_def.h" + +#ifdef CCPU + +#ifdef SEGMENTATION + +/* + * The following #include specifies the code segment into which this module + * will by placed by the MPW C compiler on the Mac II running MultiFinder. + */ +#include +#endif + + +#include +#include +#include MemoryH +#include StringH +#include +#include +#include +#include +#include +#include +#include CpuH +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/********************************************************/ +#define SIXTY_FOUR_K 1024*64 + +/* global functions & variables */ + +IU8 *memory_type = NULL; + +LOCAL BOOL selectors_set = FALSE; +LOCAL IU16 code_sel, data_sel; + +#define INTEL_SRC 0 +#define HOST_SRC 1 + +/* + * We're going to declare all the functions that we'll need for SAS function + * pointers so that we can put them all into the function pointers structure. + * This structure will then be passed to SasSetPointers from the sas_init + * function in this module. + */ + +GLOBAL TYPE_sas_memory_size c_sas_memory_size; +GLOBAL TYPE_sas_connect_memory c_sas_connect_memory; +GLOBAL TYPE_sas_enable_20_bit_wrapping c_sas_enable_20_bit_wrapping; +GLOBAL TYPE_sas_disable_20_bit_wrapping c_sas_disable_20_bit_wrapping; +GLOBAL TYPE_sas_twenty_bit_wrapping_enabled c_sas_twenty_bit_wrapping_enabled; +GLOBAL TYPE_sas_memory_type c_sas_memory_type; +GLOBAL TYPE_sas_hw_at c_sas_hw_at; +GLOBAL TYPE_sas_w_at c_sas_w_at; +GLOBAL TYPE_sas_dw_at c_sas_dw_at; +GLOBAL TYPE_sas_store c_sas_store; +GLOBAL TYPE_sas_storew c_sas_storew; +GLOBAL TYPE_sas_storedw c_sas_storedw; +GLOBAL TYPE_sas_loads c_sas_loads; +GLOBAL TYPE_sas_stores c_sas_stores; +GLOBAL TYPE_sas_loads_no_check c_sas_loads_no_check; +GLOBAL TYPE_sas_stores_no_check c_sas_stores_no_check; +GLOBAL TYPE_sas_move_bytes_forward c_sas_move_bytes_forward; +GLOBAL TYPE_sas_move_words_forward c_sas_move_words_forward; +GLOBAL TYPE_sas_move_doubles_forward c_sas_move_doubles_forward; +GLOBAL TYPE_sas_fills c_sas_fills; +GLOBAL TYPE_sas_fillsw c_sas_fillsw; +GLOBAL TYPE_sas_fillsdw c_sas_fillsdw; +GLOBAL TYPE_sas_scratch_address c_sas_scratch_address; +GLOBAL TYPE_sas_transbuf_address c_sas_transbuf_address; +GLOBAL TYPE_sas_overwrite_memory c_sas_overwrite_memory; +GLOBAL TYPE_sas_PWS c_sas_PWS; +GLOBAL TYPE_sas_PRS c_sas_PRS; +GLOBAL TYPE_sas_PWS_no_check c_sas_PWS_no_check; +GLOBAL TYPE_sas_PRS_no_check c_sas_PRS_no_check; +GLOBAL TYPE_getPtrToLinAddrByte c_GetLinAdd; +GLOBAL TYPE_getPtrToPhysAddrByte c_GetPhyAdd; +GLOBAL TYPE_sas_init_pm_selectors c_SasRegisterVirtualSelectors; +GLOBAL TYPE_sas_PigCmpPage c_sas_PigCmpPage; + +LOCAL void c_sas_not_used IPT0(); + +extern struct SasVector cSasPtrs; +GLOBAL struct SasVector Sas; + +/* local functions */ +LOCAL void write_word IPT2(sys_addr, addr, IU16, wrd); +LOCAL word read_word IPT1(sys_addr, addr); +LOCAL IU8 bios_read_byte IPT1(LIN_ADDR, linAddr); +LOCAL IU16 bios_read_word IPT1(LIN_ADDR, linAddr); +LOCAL IU32 bios_read_double IPT1(LIN_ADDR, linAddr); +LOCAL void bios_write_byte IPT2(LIN_ADDR, linAddr, IU8, value); +LOCAL void bios_write_word IPT2(LIN_ADDR, linAddr, IU16, value); +LOCAL void bios_write_double IPT2(LIN_ADDR, linAddr, IU32, value); + +GLOBAL IU8 *Start_of_M_area = NULL; +GLOBAL PHY_ADDR Length_of_M_area = 0; +#ifdef BACK_M +GLOBAL IU8 *end_of_M = NULL; +#endif + +void (*temp_func) (); + +#ifndef EGATEST +#define READ_SELF_MOD(addr) (SAS_MEM_TYPE)( memory_type[(addr)>>12] ) +#define write_self_mod(addr, type) (memory_type[(addr)>>12] = (IU8)(type)) + +/*********** 'GMI' CCPU ONLY ***********/ + +/* + * types are : SAS_RAM SAS_VIDEO SAS_ROM SAS_WRAP SAS_INACCESSIBLE + */ +#define TYPE_RANGE ((int)SAS_INACCESSIBLE) + +#define ROM_byte ((IU8)SAS_ROM) +#define RAM_byte ((IU8)SAS_RAM) + +#define write_b_write_ptrs( offset, func ) ( b_write_ptrs[(offset)] = (func) ) +#define write_w_write_ptrs( offset, func ) ( w_write_ptrs[(offset)] = (func) ) +#define write_b_page_ptrs( offset, func ) ( b_move_ptrs[(offset)] = b_fill_ptrs[(offset)] = (func) ) +#define write_w_page_ptrs( offset, func ) ( w_move_ptrs[(offset)] = w_fill_ptrs[(offset)] = (func) ) +#define init_b_write_ptrs( offset, func ) ( b_write_ptrs[(offset)] = (func) ) +#define init_w_write_ptrs( offset, func ) ( w_write_ptrs[(offset)] = (func) ) +#define init_b_page_ptrs( offset, func ) ( b_move_ptrs[(offset)] = b_fill_ptrs[(offset)] = (func) ) +#define init_w_page_ptrs( offset, func ) ( w_move_ptrs[(offset)] = w_fill_ptrs[(offset)] = (func) ) +#define read_b_write_ptrs( offset ) ( b_write_ptrs[(offset)] ) +#define read_w_write_ptrs( offset ) ( w_write_ptrs[(offset)] ) +#define read_b_page_ptrs( offset ) ( b_move_ptrs[(offset)] ) +#define read_w_page_ptrs( offset ) ( w_move_ptrs[(offset)] ) +#define read_b_move_ptrs( offset ) ( b_move_ptrs[(offset)] ) +#define read_w_move_ptrs( offset ) ( w_move_ptrs[(offset)] ) +#define read_b_fill_ptrs( offset ) ( b_fill_ptrs[(offset)] ) +#define read_w_fill_ptrs( offset ) ( w_fill_ptrs[(offset)] ) + +/* + * The main gmi data structures are defined here + */ +void (*(b_write_ptrs[TYPE_RANGE])) (); /* byte write function */ +void (*(w_write_ptrs[TYPE_RANGE])) (); /* word write function */ +void (*(b_fill_ptrs[TYPE_RANGE])) (); /* byte str fill func */ +void (*(w_fill_ptrs[TYPE_RANGE])) (); /* word str fill func */ +void (*(b_move_ptrs[TYPE_RANGE])) (); /* byte str write func */ +void (*(w_move_ptrs[TYPE_RANGE])) (); /* word str write func */ + +#endif /* EGATEST */ + + +/*( + *======================= c_SasRegisterVirtualSelectors ========================= + * + * Purpose + * The Sas virtualisation handler requires a code+data selector which + * are available in protected mode (when called from say the Insignia + * host windows driver. + * Our current experimental implementation does not worry about how + * long these live. + * + * It is expected that this functionality should be moved from the + * windows driver itself, to the Insignia VxD so that correct + * initialisation/termination can be handled. +)*/ + +GLOBAL IBOOL c_SasRegisterVirtualSelectors IFN2(IU16, sel1, IU16, sel2) +{ + IU32 addr; + + always_trace0 ("c_SasRegisterVirtualSelectors called\n"); + + addr = c_getLDT_BASE() + ((data_sel = sel1) & ~7); + + /* Construct a flat writable data segment */ + + sas_storedw (addr, 0x0000FFFF); + sas_storedw (addr+4, 0x008ff300); + + addr = c_getLDT_BASE() + ((code_sel = sel2) & ~7); + + /* Construct a code segment with base 0xf0000 and large limits */ + + sas_storedw (addr, 0x0000FFFF); + sas_storedw (addr+4, 0x008f9f0f); + + selectors_set = TRUE; + + always_trace2 ("Set code_sel = %x, data_sel = %x\n", + code_sel, data_sel); +} + +/*( + *========================== checkAccess =================================== + * checkAccess + * + * Purpose + * This function is used in debugging to spot writes to an area + * of memory. Note that it is controlled by global variables that + * must be set elsewhere, or by a debugger. + * + * Input + * addr The physical intel address to write to + * + * Outputs + * None. + * + * Description + * Actually a macro that is nothing if CHECK_ACCESS isn't defined. +)*/ + +#ifndef CHECK_ACCESS +#define checkAccess(addr) +#else +GLOBAL PHY_ADDR lowCheckAccess = 0; +GLOBAL PHY_ADDR highCheckAccess = 0; +#define checkAccess(addr) \ + if ((addr < highCheckAccess) && (addr >= lowCheckAccess)) { \ + always_trace1("Write access break point - addres 0x%.8x", \ + addr); \ + } +#endif /* !CHECK_ACCESS else */ + +#ifndef PROD +/* + * This function is useful for calling from a debugger! + */ + +GLOBAL void +DumpMemType() +{ + SAS_MEM_TYPE currentType; + PHY_ADDR numEntries; /* number of entries in the table */ + PHY_ADDR currEntry; + + currentType = SAS_DANGEROUS; /* memory_type should never have this */ + numEntries = c_sas_memory_size() >> 12; + + for (currEntry = 0; currEntry < numEntries; currEntry++) { + if (memory_type[currEntry] != currentType) { + fprintf(stderr,"0x%.8x %s\n", currEntry << 12, + SAS_TYPE_TO_STRING(memory_type[currEntry])); + currentType = memory_type[currEntry]; + } + } + fprintf(stderr,"0x%.8x End of Memory\n", c_sas_memory_size()); + +} +#endif /* ndef PROD */ + + +/*********** INIT & ADMIN FUNCS ***********/ +/*( + *========================== readSelfMod =================================== + * readSelfMod + * + * Purpose + * This function reads the self modify table, and returns the + * memory type. It will also indicate whether there is a type + * boundary within the length specified. + * + * Input + * addr The physical intel address to read from + * typeSize The size in bytes of the item to be read + * + * Outputs + * Memory type. + * + * Description + * We check that the memory type for both ends of the type is the same. +)*/ + +LOCAL SAS_MEM_TYPE +readSelfMod IFN2(PHY_ADDR, addr, IUM8, typeSize) +{ + SAS_MEM_TYPE startType; + + startType = READ_SELF_MOD(addr); + + if (startType == READ_SELF_MOD(addr + typeSize - 1)) + return(startType); + else + return(SAS_DANGEROUS); +} + +/*( + *========================== SasSetPointers =================================== + * SasSetPointers + * + * Purpose + * This function is used to install a set of function pointers. + * + * Input + * An array of pointers to use. + * + * Outputs + * None. + * + * Description + * Just do a memory copy of the pointers. +)*/ + +GLOBAL void +SasSetPointers IFN1(struct SasVector *, newPointers) +{ + memcpy(&Sas, newPointers, sizeof(struct SasVector)); +} + + +/* Init the sas system - malloc the memory & load the roms */ + + +/* need to put some of this in the ROMs! */ + +GLOBAL void +sas_init IFN1(PHY_ADDR, size) +{ + IU32 required_mem; + IUM16 ipatch; + IU8 *ptr; + char *env; + + /* + * Set the SAS pointers to point to the functions in this + * module, and initialise the scratch buffer to 64K + */ + + SasSetPointers(&cSasPtrs); + (void)c_sas_scratch_address(SIXTY_FOUR_K); + + /* do the host sas */ + + required_mem = size + NOWRAP_PROTECTION; + Start_of_M_area = (IU8 *) host_sas_init(size); + if (Start_of_M_area == NULL) { + check_malloc(Start_of_M_area, required_mem, IU8); + } + env = getenv("CPU_INITIALISE_MEMORY"); + if (env != NULL) + { + int zap = strtol(env, (char **)0, 16); + memset(Start_of_M_area, zap, size); /* Fill with user supplied byte */ + } + if (!memory_type) + check_malloc(memory_type, ((size + NOWRAP_PROTECTION) >> 12), IU8); + + { + IMPORT IU8 *CCPU_M; + +#ifdef BACK_M + CCPU_M = Start_of_M_area + size - 1; +#else + CCPU_M = Start_of_M_area; +#endif /* BACK_M */ + } + + /* + * Make the entire memory space RAM. The ROM load routines + * will change some of this to being ROM. + */ + + c_sas_connect_memory(0, size - 1, SAS_RAM); + + Length_of_M_area = size; +#ifdef BACK_M + end_of_M = Start_of_M_area + Length_of_M_area -1; +#endif + + /* init the ROM (load the bios roms etc) */ + +#ifndef EGATEST + rom_init(); +#endif /* EGATEST */ + + copyROM(); +} + +/* finish the sas system -basically free up the M space prior to reallocing it */ +GLOBAL void +sas_term IFN0() +{ + if (host_sas_term() != NULL) { + if (Start_of_M_area) + free(Start_of_M_area); + if (memory_type) + free(memory_type); + memory_type = NULL; + } + + Start_of_M_area = NULL; +} + +/* return the size of the sas */ +GLOBAL PHY_ADDR +c_sas_memory_size IFN0() +{ + return (Length_of_M_area); +} + +/*********** GMI TYPE FUNCS ***********/ +/* + * Sets all intel addresses in give range to the specified memory type + * for the ccpu this writes to memory_type. + * Callers of this can be a bit confused about the meaning of the + * high parameter. e.g. for a range of 1000 - 2fff inclusive, they're + * not sure if high should be 2fff or 3000. It should be 2fff, but we + * watch out for people who've got it wrong, and put them right, poor + * little dears. + */ +GLOBAL void +c_sas_connect_memory IFN3(PHY_ADDR, low, PHY_ADDR, high, SAS_MEM_TYPE, type) +{ + if ((high & 0xfff) == 0) { + if (high) + high--; + } + sub_note_trace3(SAS_VERBOSE, "Connect %s from 0x%lx to 0x%lx", + SAS_TYPE_TO_STRING(type), low, high); + memset(&memory_type[low >> 12], type, (high >> 12) - (low >> 12) + 1); +} + +/* returns memory type for specified addr */ +GLOBAL SAS_MEM_TYPE +c_sas_memory_type IFN1(PHY_ADDR, addr) +{ + return(memory_type[ addr >> 12 ]); +} + +/* clears any compiled code from the given range */ +/* for the ccpu this doesn't do anything */ +GLOBAL void +c_sas_overwrite_memory IFN2(PHY_ADDR, addr, PHY_ADDR, length) +{ + UNUSED(addr); + UNUSED(length); +} + +/*********** WRAPPING ***********/ +/* enable 20 bit wrapping */ +GLOBAL void +c_sas_enable_20_bit_wrapping IFN0() +{ + SasWrapMask = 0xfffff; +} + +/* disable 20 bit wrapping */ +GLOBAL void +c_sas_disable_20_bit_wrapping IFN0() +{ + SasWrapMask = 0xffffffff; +} + +GLOBAL IBOOL +c_sas_twenty_bit_wrapping_enabled IFN0() +{ + return (SasWrapMask == 0xfffff); +} + +/*( + *========================== phyR =================================== + * phyR + * + * Purpose + * This is the generic physical read function and takes parameters + * of any size (well up to an IU32 that is). + * + * Input + * addr The physical intel address to read from + * typeSize The size in bytes of the item to be read + * vidFP A video read function pointer of the appropriate size. + * name "byte" for byte, etc. + * + * Outputs + * An IU32 that should be masked to get the right bits. + * + * Description + * We check for out of memory refernces, VIDEO and inaccessible references + * and also split reads that span a memory type boundary. +)*/ +typedef IU32 (*VID_READ_FP) IPT1(PHY_ADDR, offset); + +LOCAL IU32 +phyR IFN4(PHY_ADDR, addr, IUM8, typeSize, VID_READ_FP, vidFP, char *, name) +{ + IUM8 byte; + IUM32 retVal; + + addr &= SasWrapMask; + + if ((addr + typeSize + 1) >= Length_of_M_area) { + SAVED IBOOL first = TRUE; + SAVED IU32 junk_value = 0xfefefefe; + if (first) + { + char *env = getenv("BEYOND_MEMORY_VALUE"); + if (env != NULL) + { + junk_value = strtol(env, (char **)0, 16); + always_trace1("phyR: using %08x as value to read from outside physical M", junk_value) + } + first = FALSE; + } + always_trace2("phyR - %s read from outside physical M - address 0x%0x", name, addr) + return(junk_value); + } + + switch (readSelfMod(addr, typeSize)) { + case SAS_DANGEROUS: + retVal = 0; + for (byte = 0; byte < typeSize; byte++) { + retVal = retVal + +((IUM32)phyR(addr, 1, read_pointers.b_read, + "byte") << (byte * 8)); + addr++; + } + return(retVal); +#ifdef EGG + case SAS_VIDEO: + return ((*vidFP)(addr)); + break; +#endif /* EGG */ + + case SAS_INACCESSIBLE: + return (0xffffffff); + + case SAS_ROM: + case SAS_RAM: + default: + /* + * Pick-up the bytes. This could be optimised, but + * we have to take account of BACK_M, endianness, + * and misaligned accesses on RISC hosts. Just + * keep it simple for the moment! + */ + + addr = addr + typeSize - 1; /* move to last byte */ + retVal = 0; + + while (typeSize > 0) { + retVal = retVal << 8; + retVal += *(c_GetPhyAdd(addr)); + addr -= 1; + typeSize -= 1; + } + return(retVal); + } +} +/*( + *========================== phy_rX =================================== + * phy_rX + * + * Purpose + * These are the physical read functions. + * + * Input + * addr The physical intel address to read from + * + * Outputs + * The value read + * + * Description + * Simply call the generic function with the right bits. +)*/ + +GLOBAL IU8 +phy_r8 IFN1(PHY_ADDR, addr) +{ + IU8 retVal; + + retVal = (IU8)phyR(addr, sizeof(IU8), read_pointers.b_read, "byte"); + sub_note_trace2(SAS_VERBOSE, "phy_r8 addr=%x, val=%x\n", addr, retVal); + return(retVal); +} + + +GLOBAL IU16 +phy_r16 IFN1(PHY_ADDR, addr) +{ + IU16 retVal; + + retVal = (IU16)phyR(addr, sizeof(IU16), read_pointers.w_read, "word"); + sub_note_trace2(SAS_VERBOSE, "phy_r16 addr=%x, val=%x\n", addr, retVal); + return(retVal); +} + + +GLOBAL IU32 +phy_r32 IFN1(PHY_ADDR, addr) +{ + /* + * MIKE! This needs changing when we have a dword interface to the + * video. + */ + + IU16 low, high; + low = (IU16)phyR(addr, sizeof(IU16), read_pointers.w_read, "word"); + high = (IU16)phyR(addr + 2, sizeof(IU16), read_pointers.w_read, "word"); + + return(((IU32)high << 16) + low); +} + +/*( + *======================= c_sas_PWS ================================ + * c_sas_PWS + * + * Purpose + * This function writes a block of memory from into Intel memory + * from host memory. It is the physical address equivalent of + * sas_stores. + * + * Input + * dest Intel physical address + * src host address + * length number of IU8s to transfer + * + * Outputs + * None. + * + * Description + * Just call phy_w8 lots of times. +)*/ + +GLOBAL void +c_sas_PWS IFN3(PHY_ADDR, dest, IU8 *, src, PHY_ADDR, length) +{ + while (length--) { + phy_w8(dest, *src); + dest++; + src++; + } +} + +/*( + *======================= c_sas_PWS_no_check ========================= + * c_sas_PWS_no_check + * + * Purpose + * This function writes a block of memory from into Intel memory + * from host memory. It is the physical address equivalent of + * sas_stores_no_check. + * + * Input + * dest Intel physical address + * src host address + * length number of IU8s to transfer + * + * Outputs + * None. + * + * Description + * Just call c_sas_PWS() +)*/ +GLOBAL void +c_sas_PWS_no_check IFN3(PHY_ADDR, dest, IU8 *, src, PHY_ADDR, length) +{ + c_sas_PWS(dest, src, length); +} + + +/*( + *======================= c_sas_PRS ================================ + * c_sas_PRS + * + * Purpose + * This function reads a block of memory from Intel memory + * into host memory. It is the physical address equivalent of + * sas_loads. + * + * Input + * src Intel physical address + * dest host address + * length number of IU8s to transfer + * + * Outputs + * None. + * + * Description + * Just call phy_r8 lots of times. +)*/ + +GLOBAL void +c_sas_PRS IFN3(PHY_ADDR, src, IU8 *, dest, PHY_ADDR, length) +{ + while (length--) { + *dest = phy_r8(src); + dest++; + src++; + } +} + + +/*( + *======================= c_sas_PRS_no_check ========================== + * c_sas_PRS_no_check + * + * Purpose + * This function reads a block of memory from Intel memory + * into host memory. It is the physical address equivalent of + * sas_loads_no_check. + * + * Input + * src Intel physical address + * dest host address + * length number of IU8s to transfer + * + * Outputs + * None. + * + * Description + * Just call c_sas_PRS. +)*/ + +GLOBAL void +c_sas_PRS_no_check IFN3(PHY_ADDR, src, IU8 *, dest, PHY_ADDR, length) +{ + c_sas_PRS(src, dest, length); +} + + +GLOBAL IU8 +c_sas_hw_at IFN1(LIN_ADDR, addr) +{ + return (bios_read_byte(addr)); +} + + +/* return the word (short) at the specified address */ +GLOBAL IU16 +c_sas_w_at IFN1(LIN_ADDR, addr) +{ + if ((addr & 0xFFF) <= 0xFFE) + return (bios_read_word(addr)); + else + { + return (bios_read_byte(addr) | ((IU16)bios_read_byte(addr+1) << 8)); + } +} + +/* return the double word (long) at the address passed */ +GLOBAL IU32 +c_sas_dw_at IFN1(LIN_ADDR, addr) +{ + if ((addr & 0xFFF) <= 0xFFC) + return (bios_read_double(addr)); + else + { + return (bios_read_word(addr) | ((IU32)bios_read_word(addr+2) << 16)); + } +} + +/* store a byte at the given address */ + +GLOBAL void phy_w8 +IFN2(PHY_ADDR, addr, IU8, val) +{ + sys_addr temp_val; + + sub_note_trace2(SAS_VERBOSE, "c_sas_store addr=%x, val=%x\n", addr, val); + + addr &= SasWrapMask; + checkAccess(addr); + + if (addr < Length_of_M_area) { + temp_val = readSelfMod(addr, sizeof(IU8)); + + switch (temp_val) { + case SAS_RAM: + (*(IU8 *) c_GetPhyAdd(addr)) = val; + break; + +#ifdef LIM + case SAS_MM_LIM: + (*(IU8 *) c_GetPhyAdd(addr)) = val; + LIM_b_write(addr); + break; +#endif + + case SAS_INACCESSIBLE: + case SAS_ROM: + /* No ROM_fix_sets !!! Yeh !!! */ + break; + + default: + printf("Unknown SAS type\n"); + force_yoda(); + + case SAS_VIDEO: + temp_func = read_b_write_ptrs(temp_val); + (*temp_func) (addr, val); + break; + } + + } else + printf("Byte written outside M %x\n", addr); +} + +GLOBAL void phy_w8_no_check +IFN2(PHY_ADDR, addr, IU8, val) +{ + phy_w8( addr, val ); +} + +GLOBAL void c_sas_store +IFN2(LIN_ADDR, addr, IU8, val) +{ + sub_note_trace2(SAS_VERBOSE, "c_sas_store addr=%x, val=%x\n", addr, val); + bios_write_byte(addr, val); +} + +/* store a word at the given address */ +GLOBAL void +phy_w16 IFN2(PHY_ADDR, addr, IU16, val) +{ + sys_addr temp_val; + + sub_note_trace2(SAS_VERBOSE, "c_sas_storew addr=%x, val=%x\n", addr, val); + + addr &= SasWrapMask; + checkAccess(addr); + + if ((addr + 1) < Length_of_M_area) { + temp_val = readSelfMod(addr, sizeof(IU16)); + + switch (temp_val) { + case SAS_RAM: + write_word(addr, val); + break; + +#ifdef LIM + case SAS_MM_LIM: + write_word(addr, val); + LIM_w_write(addr); + break; +#endif + + case SAS_INACCESSIBLE: + case SAS_ROM: + /* No ROM_fix_sets !!! Yeh !!! */ + break; + + default: + printf("Unknown Sas type\n"); + force_yoda(); + + case SAS_VIDEO: + temp_func = read_w_write_ptrs(temp_val); + (*temp_func) (addr, val); + break; + } + + } else + printf("Word written outside M %x\n", addr); +} + +GLOBAL void phy_w16_no_check +IFN2(PHY_ADDR, addr, IU16, val) +{ + phy_w16( addr, val ); +} + +GLOBAL void +phy_w32 IFN2(PHY_ADDR, addr, IU32, val) +{ + phy_w16(addr, (IU16)val); + phy_w16(addr + 2, (IU16)(val >> 16)); +} + + +GLOBAL void phy_w32_no_check +IFN2(PHY_ADDR, addr, IU32, val) +{ + phy_w32( addr, val ); +} + + +/* store a word at the given address */ +GLOBAL void +c_sas_storew IFN2(LIN_ADDR, addr, IU16, val) +{ + sub_note_trace2(SAS_VERBOSE, "c_sas_storew addr=%x, val=%x\n", addr, val); + if ((addr & 0xFFF) <= 0xFFE) + bios_write_word(addr, val); + else + { + bios_write_byte(addr+1, val >> 8); + bios_write_byte(addr, val & 0xFF); + } +} + +/* store a double word at the given address */ +GLOBAL void c_sas_storedw +IFN2(LIN_ADDR, addr, IU32, val) +{ + sub_note_trace2(SAS_VERBOSE, "c_sas_storedw addr=%x, val=%x\n", addr, val); + + if ((addr & 0xFFF) <= 0xFFC) + bios_write_double(addr, val); + else + { + bios_write_word(addr+2, val >> 16); + bios_write_word(addr, val & 0xFFFF); + } +} + +/*********** STRING OPS ***********/ +/* load a string from M */ +GLOBAL void c_sas_loads +IFN3(LIN_ADDR, src, IU8 *, dest, LIN_ADDR, len) +{ + /* + * This is a linear address op, so we have to call the byte operation + * lots of times. + */ + + IU8 *destP; + + for (destP = dest; destP < (dest + len); destP++) { + *destP = c_sas_hw_at(src); + src++; + } +} + +GLOBAL void c_sas_loads_no_check +IFN3(LIN_ADDR, src, IU8 *, dest, LIN_ADDR, len) +{ + c_sas_loads(src, dest, len); +} + +/* write a string into M */ +GLOBAL void c_sas_stores +IFN3(LIN_ADDR, dest, IU8 *, src, LIN_ADDR, len) +{ + /* + * This is a linear address op, so we have to call the byte operation + * lots of times. + */ + + IU8 *srcP; + LIN_ADDR savedDest; + + sub_note_trace3(SAS_VERBOSE, "c_sas_stores dest=%x, src=%x, len=%d\n", dest, src, len); + + savedDest = dest; + for (srcP = src; srcP < (src + len); srcP++) { + c_sas_store(dest, *srcP); + dest++; + } +} + +GLOBAL void c_sas_stores_no_check +IFN3(LIN_ADDR, dest, IU8 *, src, LIN_ADDR, len) +{ + c_sas_stores(dest, src, len); +} + +/*********** MOVE OPS ***********/ +/* move bytes from src to dest where src & dest are the low intel addresses */ +/* of the affected areas */ + +/* + * we can use straight memcpys here because we know that M is either all + * forwards or + */ +/* backwards */ +GLOBAL void c_sas_move_bytes_forward +IFN3(sys_addr, src, sys_addr, dest, + sys_addr, len) +{ + LIN_ADDR offset; + + for (offset = 0; offset < len; offset++) { + c_sas_store(dest + offset, c_sas_hw_at(src + offset)); + } +} + +/* move words from src to dest as above */ +GLOBAL void c_sas_move_words_forward +IFN3(LIN_ADDR, src, LIN_ADDR, dest, + LIN_ADDR, len) +{ + LIN_ADDR offset; + + len = len * 2; /* convert to bytes */ + for (offset = 0; offset < len; offset += 2) { + c_sas_storew(dest + offset, c_sas_w_at(src + offset)); + } +} + +/* move doubles from src to dest as above */ +GLOBAL void c_sas_move_doubles_forward +IFN3(LIN_ADDR, src, LIN_ADDR, dest, + LIN_ADDR, len) +{ + LIN_ADDR offset; + + len = len * 4; /* convert to bytes */ + for (offset = 0; offset < len; offset += 4) { + c_sas_storedw(dest + offset, c_sas_dw_at(src + offset)); + } +} + +/* backwards versions not used */ +GLOBAL void c_sas_move_bytes_backward IFN3(sys_addr, src, sys_addr, dest, sys_addr, len) +{ + UNUSED(src); + UNUSED(dest); + UNUSED(len); + c_sas_not_used(); +} + +GLOBAL void c_sas_move_words_backward IFN3(LIN_ADDR, src, LIN_ADDR, dest, LIN_ADDR, len) +{ + UNUSED(src); + UNUSED(dest); + UNUSED(len); + c_sas_not_used(); +} + +GLOBAL void c_sas_move_doubles_backward IFN3(LIN_ADDR, src, LIN_ADDR, dest, LIN_ADDR, len) +{ + UNUSED(src); + UNUSED(dest); + UNUSED(len); + c_sas_not_used(); +} + + +/*********** FILL OPS ***********/ +/* + * Fill an area with bytes (IU8s) of the passed value. + */ +GLOBAL void c_sas_fills +IFN3(LIN_ADDR, dest, IU8 , val, LIN_ADDR, len) + { + /* + * This is a linear address op, so just call the byte operation + * lots of times. + */ + + LIN_ADDR i; + + sub_note_trace3(SAS_VERBOSE, "c_sas_fills dest=%x, val=%x, len=%d\n", dest, val, len); + + for (i = 0; i < len; i++) + { + c_sas_store(dest, val); + dest++; + } + } + +/* fill an area with words (IU16s) of the passed value */ + +GLOBAL void c_sas_fillsw +IFN3(LIN_ADDR, dest, IU16, val, LIN_ADDR, len) + { + /* + * This is a linear address op, so just call the word operation + * lots of times. + */ + + LIN_ADDR i; + + sub_note_trace3(SAS_VERBOSE, "c_sas_fillsw dest=%x, val=%x, len=%d\n", dest, val, len); + + for (i = 0; i < len; i++) + { + c_sas_storew(dest, val); + dest += 2; + } + } + +/* Fill Intel memory with 32 bit values */ + +GLOBAL void c_sas_fillsdw +IFN3(LIN_ADDR, dest, IU32, val, LIN_ADDR, len) + { + /* + * This is a linear address op, so just call the double word operation + * lots of times. + */ + + LIN_ADDR i; + + sub_note_trace3(SAS_VERBOSE, "c_sas_fillsdw dest=%x, val=%x, len=%d\n", dest, val, len); + + for (i = 0; i < len; i++) + { + c_sas_storedw(dest, val); + dest += 4; + } + } + +/*( + *======================= c_sas_scratch_address ================================ + * c_sas_scratch_address + * + * Purpose + * This function returns a pointer to a scratch area for use by + * other functions. There is only one such buffer! + * + * Input + * length (no restrictions) + * + * Outputs + * A pointer to the buffer. + * + * Description + * The buffer is grown each time a new request for a larger buffer is + * made. Note that there is an initial call from sas_init for + * 64K, so this will be the minimum size we ever have. +)*/ + +LOCAL IU8 *scratch = (IU8 *) NULL; /* keep a copy of the pointer */ +LOCAL LIN_ADDR currentLength = 0; /* how much we've allocated */ + +GLOBAL IU8 * +c_sas_scratch_address IFN1(sys_addr, length) +{ + if (length > currentLength) { + if (scratch) { + host_free(scratch); + printf("Freeing old scratch buffer - VGA will be broken!\n"); + force_yoda(); + } + + check_malloc(scratch, length, IU8); + currentLength = length; + } + return (scratch); +} + + +/*( + *======================= sas_transbuf_address ================================ + * sas_transbuf_address + * + * Purpose + * This function returns a pointer to a host buffer that the base/host + * can read data into, and then load into/from Intel space using the two + * special functions that follow. This allows optimisations + * on forwards M builds that we haven't implemented on the C CPU. Hence + * note that sas_loads_to_transbuff is mapped directly onto sas_loads + * by sas_init, and similarly for sas_stores_to_transbuff. + * + * Input + * destination address The intel address that this buffer will be + * loaded from, stored to. + * length (no restrictions) + * + * Outputs + * A pointer to the buffer. + * + * Description + * Just pass them the scratch buffer!. +)*/ + +GLOBAL IU8 * +c_sas_transbuf_address IFN2(LIN_ADDR, dest_intel_addr, PHY_ADDR, length) +{ + UNUSED (dest_intel_addr); + return (c_sas_scratch_address(length)); +} + + +/********************************************************/ +/* local functions */ + +/*********** WORD OPS ***********/ +/* store a word in M */ +LOCAL void write_word +IFN2(sys_addr, addr, IU16, wrd) +{ + IU8 hi, lo; + + /* split the word */ + hi = (IU8) ((wrd >> 8) & 0xff); + lo = (IU8) (wrd & 0xff); + + + + *(c_GetPhyAdd(addr + 1)) = hi; + *(c_GetPhyAdd(addr)) = lo; +} + +/* read a word from M */ +LOCAL word read_word +IFN1(sys_addr, addr) +{ + IU8 hi, lo; + + + hi = *(c_GetPhyAdd(addr + 1)); + lo = *(c_GetPhyAdd(addr)); + + + /* build the word */ + return (((IU16)hi << 8) + (IU16) lo); +} + +#ifndef EGATEST +void gmi_define_mem +IFN2(mem_type, type, MEM_HANDLERS *, handlers) +{ + int int_type = (int) (type); + + init_b_write_ptrs(int_type, (void (*) ()) (handlers->b_write)); + init_w_write_ptrs(int_type, (void (*) ()) (handlers->w_write)); + b_move_ptrs[int_type] = (void (*) ()) (handlers->b_move); + w_move_ptrs[int_type] = (void (*) ()) (handlers->w_move); + b_fill_ptrs[int_type] = (void (*) ()) (handlers->b_fill); + w_fill_ptrs[int_type] = (void (*) ()) (handlers->w_fill); +} + + +#endif /* EGATEST */ + +/*( + *========================== c_GetLinAdd =================================== + * c_GetLinAdd + * + * Purpose + * Returns a host pointer to the byte specified by an Intel linear + * address. + * + * Input + * addr The Intel linear address + * + * Outputs + * The host pointer + * + * Description + * Translate it. If it's not a physical address, scream. +)*/ + +GLOBAL IU8 * +c_GetLinAdd IFN1(PHY_ADDR, linAddr) +{ + PHY_ADDR phyAddr; + + if (!c_getPG()) + return(c_GetPhyAdd((PHY_ADDR)linAddr)); + else if (xtrn2phy(linAddr, (IUM8)0, &phyAddr)) + return(c_GetPhyAdd(phyAddr)); + else { +#ifndef PROD + if (!AlreadyInYoda) { + always_trace1("get_byte_addr for linear address 0x%x which is unmapped", linAddr); + force_yoda(); + } +#endif + return(c_GetPhyAdd(0)); /* as good as anything! */ + } +} + +/*( + *========================== c_GetPhyAdd =================================== + * c_GetPhyAdd + * + * Purpose + * Returns a host pointer to the byte specified by an Intel physical + * address. + * + * Input + * addr The Intel physical address + * + * Outputs + * The host pointer + * + * Description + * This is the #ifdef BACK_M bit! Just a simple calculation. +)*/ + +LOCAL IBOOL firstDubious = TRUE; +GLOBAL IU8 * +c_GetPhyAdd IFN1(PHY_ADDR, addr) +{ + IU8 *retVal; + +#ifdef BACK_M + retVal = (IU8 *)((IHPE)end_of_M - (IHPE)addr); + return(retVal); +#else + return((IU8 *)((IHPE)Start_of_M_area + (IHPE)addr)); +#endif +} + +/* + * Support for V86 Mode. + * + * The basic idea here is that some of our BIOS C code will be trying to do + * things, like changing the interrupt flag, and doing IO which the OS + * (e.g. Windows) might prevent us doing on a real PC by running the + * BIOS code in V86 mode. Hence what we do is check whether executing + * the relevant instruction would have caused an exception if the processor + * at it's current protection level had executed it. If not, it's OK + * for us to just go ahead and do it. However, if it would have caused + * an exception, we need to actually execute an appropriate instruction + * with the CPU. + * + * This has two advantages - one it makes the code layout simpler(!), and + * secondly it means that Windows can have a look at what sort of instruction + * caused the exception. + * + * Note that this only works for V86 mode because we need to patch-up the + * CS to point at the ROM. Basically any OS that trys to execute our + * BIOS in VM mode and expects to be able to catch exceptions is in for a nasty + * shock. Hence the macro that follows: + * + * When not in V86 mode, at least one of the Insgina drivers must have + * allocated and registered two segments for us to use. We use these to + * construct a flat-writeable data segment and a small code segment that + * points at the rom -- we use the same code as the V86. + */ + + +#define BIOS_VIRTUALISE_SEGMENT 0xf000 +/*( + *========================== biosDoInst =================================== + * biosDoInst + * + * Purpose + * This function executes the instruction at the requested offset, + * saving CS and IP across it. + * + * Input + * vCS, vEIP, vEAX, vDS, vEDX The values to used for the + * virtualised instruction. + * + * Outputs + * The value returned in EAX after virtualisation. + * + * Description + * Use host_simulate to execute an instruction in the bios1.rom +)*/ + +LOCAL IU32 +biosDoInst IFN5(IU16, vCS, LIN_ADDR, vEIP, IU32, vEAX, IU16, vDS, IU32, vEDX) +{ + SAVED IBOOL first = TRUE; + SAVED IBOOL trace_bios_inst = FALSE; + SAVED int bodgeAdjustment = 0; + + IMPORT IS32 simulate_level; + + IU16 savedCS; + IU32 savedEIP; + IU32 savedEAX; + IU16 savedDS; + IU32 savedEDX; + IU32 savedEBP; + IU32 result; + + if (first) + { + if (Sas.Sas_w_at(0xF3030) == 0x9066) + { + /* These are still Keith's roms with garbage as + * first two bytes of each entry point + */ + bodgeAdjustment = 2; + fprintf(stderr, "**** Warning: The bios1.rom is out of date. This Ccpu486 will not run Win/E\n"); + } + if (getenv("biosDoInst") != NULL) + trace_bios_inst = TRUE; + first = FALSE; + } + + savedCS = getCS(); + savedEIP = getEIP(); //GetInstructionPointer(); + savedEAX = getEAX(); + savedDS = getDS(); + savedEDX = getEDX(); + savedEBP = getEBP(); + + setCS (vCS ); + setEIP(vEIP + bodgeAdjustment); + setEAX(vEAX); + setDS (vDS ); + setEDX(vEDX); + setEBP(simulate_level); + + /* + * Call the CPU. + */ + + if (trace_bios_inst) + { + always_trace3("biosDoInst: @ %04x, EAX %08x, EDX %08X", vEIP, vEAX, vEDX); + } + + host_simulate(); + + if (getEBP() != simulate_level) + { +#ifdef PROD + host_error(EG_OWNUP, ERR_QUIT, "biosDoInst: Virtualisation sequencing failure"); +#else + always_trace0("biosDoInst: Virtualisation sequencing failure"); + force_yoda(); +#endif + } + + result = getEAX(); + + /* Restore the registers to the original values */ + + setCS (savedCS ); + setEIP(savedEIP); + setEAX(savedEAX); + setDS (savedDS ); + setEDX(savedEDX); + setEBP(savedEBP); + + return (result); +} + +/*( + *============================ BiosSti & BiosCli =============================== + * BiosSti & BiosCli + * + * Purpose + * These functions are used to check if executing a CLI or STI + * would cause an exception. If so, we execute it from the ROMs + * so that Windows has a chance to virtualise it. + * + * Input + * None. + * + * Outputs + * None. + * + * Description + * If protection is OK, just do it, otherwise do the instruction in ROM. +)*/ + +/* Do STI if legal, else go back to CPU to do STI. */ +GLOBAL void +BiosSti IFN0() +{ + + if ( c_getCPL() > getIOPL() ) { + (void)biosDoInst(BIOS_VIRTUALISE_SEGMENT, BIOS_STI_OFFSET, 0, 0, 0); + } else { + SET_IF(1); + } +} + +/* Do CLI if legal, else go back to CPU to do CLI. */ +GLOBAL void +BiosCli IFN0() +{ + + if ( c_getCPL() > getIOPL() ) { + (void)biosDoInst(BIOS_VIRTUALISE_SEGMENT, BIOS_CLI_OFFSET, 0, 0, 0); + } else { + SET_IF(0); + } +} + +/*( + *============================ c_IOVirtualised ================================= + * c_IOVirtualised + * + * Purpose + * This function checks whether executing an IO instruction + * of the indicated width would cause an exception to go off. + * + * If so, it executes the indicated identical instruction in ROM. + * This will allow the exception to go off correctly, and allow the + * Intel OS (e.g. Windows) to catch and virtualise it if it wishes. + * + * Otherwise it will be up to the caller to execute the actual IO. + * + * Input + * port The port to use + * value Where output values are taken from, and input values + * written to. NOTE: THIS MUST BE AN IU32*, WHATEVER THE WIDTH. + * offset The offset in the ROM of the equivalent instruction. + * width byte, word, dword + * + * Outputs + * True if the operation went to ROM, false if the caller needs to do it. + * + * Description + * If this is an illegal IO operation, we need to save CS, IP, EAX, EDX + * and call host_simulate to execute the equivalent instruction in ROM. +)*/ + +GLOBAL IBOOL +c_IOVirtualised IFN4(io_addr, port, IU32 *, value, LIN_ADDR, offset, IU8, width) +{ + if (getVM()) + { + *value = biosDoInst(BIOS_VIRTUALISE_SEGMENT, offset, *value, 0, port); + return(TRUE); + } else if ( c_getCPL() > getIOPL()) { + + switch (port) + { + case 0x23c: /* mouse */ + case 0x23d: /* mouse */ + case 0xa0: /* ica */ + case 0x20: /* ica */ + break; + default: + always_trace1("Virtualising PM I/O code called, port =0x%x\n", + port); + } + + if (!selectors_set) { + sub_note_trace0(SAS_VERBOSE, + "Exiting as selectors not set !\n"); + return FALSE; + } + *value = biosDoInst(code_sel, offset, *value, 0, port); + return(TRUE); + } + return FALSE; +} + +/* Read byte from memory, if V86 Mode let CPU do it. */ +LOCAL IU8 +bios_read_byte IFN1(LIN_ADDR, linAddr) +{ + PHY_ADDR phyAddr; + IUM8 access_request = 0; /* BIT 0 = R/W */ + /* BIT 1 = U/S */ + /* BIT 2 = Ensure A and D are valid */ + + /* If no paging on, then no problem */ + + if (!c_getPG()) + { + return(phy_r8((PHY_ADDR)linAddr)); + } + + /* Note default access_request (0) is Supervisor Read */ + + /* We don't specifically disallow Protected Mode calls, they + are not designed to happen, but the Video at least has a habit + of reading BIOS variables on host timer ticks. We treat such + requests more leniently than V86 Mode requests, by not insisting + that the access and dirty bits are kosher. + */ + + if ( getCPL() != 3 ) + { + access_request = access_request | PG_U; + } + + /* Beware V86 Mode, be strict about access and dirty bits */ + + if ( getVM() ) + { + access_request = access_request | 0x4; + } + + /* Go translate the address. */ + + if (xtrn2phy(linAddr, access_request, &phyAddr)) + { + return(phy_r8(phyAddr)); + } + + /* Handle Address Mapping Failure... */ + + if(getPE() && !getVM()) + { + always_trace1("Virtualising PM byte read, lin address 0x%x", linAddr); + + if (!selectors_set) + return; + + return ((IU8)biosDoInst(code_sel, BIOS_RDB_OFFSET, 0, data_sel, linAddr)); + } + else + { + sub_note_trace1(SAS_VERBOSE, "Page read VM virtualisation at 0x%x", linAddr); + + return ((IU8)biosDoInst(BIOS_VIRTUALISE_SEGMENT, BIOS_RDB_OFFSET, 0, data_sel, linAddr)); + } +} + + + +/* Read word from memory, if V86 Mode let CPU do it. */ +LOCAL IU16 +bios_read_word IFN1(LIN_ADDR, linAddr) +{ + PHY_ADDR phyAddr; + IUM8 access_request = 0; /* BIT 0 = R/W */ + /* BIT 1 = U/S */ + /* BIT 2 = Ensure A and D are valid */ + + /* If no paging on, then no problem */ + + if (!c_getPG()) + { + return(phy_r16((PHY_ADDR)linAddr)); + } + + /* Note default access_request (0) is Supervisor Read */ + + /* We don't specifically disallow Protected Mode calls, they + are not designed to happen, but the Video at least has a habit + of reading BIOS variables on host timer ticks. We treat such + requests more leniently than V86 Mode requests, by not insisting + that the access and dirty bits are kosher. + */ + + if ( getCPL() != 3 ) + { + access_request = access_request | PG_U; + } + + /* Beware V86 Mode, be strict about access and dirty bits */ + + if ( getVM() ) + { + access_request = access_request | 0x4; + } + + /* Go translate the address. Never called crossing a page boundary */ + + if (xtrn2phy(linAddr, access_request, &phyAddr)) + { + return(phy_r16(phyAddr)); + } + + /* Handle Address Mapping Failure... */ + + if(getPE() && !getVM()) + { + always_trace1("Virtualising PM word read, lin address 0x%x", linAddr); + + if (!selectors_set) + return; + + return ((IU8)biosDoInst(code_sel, BIOS_RDW_OFFSET, 0, data_sel, linAddr)); + } + else + { + sub_note_trace1(SAS_VERBOSE, "Page read word VM virtualisation at 0x%x", linAddr); + + return ((IU8)biosDoInst(BIOS_VIRTUALISE_SEGMENT, BIOS_RDW_OFFSET, 0, data_sel, linAddr)); + } +} + + +/* Read double from memory, if V86 Mode let CPU do it. */ +LOCAL IU32 +bios_read_double IFN1(LIN_ADDR, linAddr) +{ + PHY_ADDR phyAddr; + IUM8 access_request = 0; /* BIT 0 = R/W */ + /* BIT 1 = U/S */ + /* BIT 2 = Ensure A and D are valid */ + + /* If no paging on, then no problem */ + + if (!c_getPG()) + { + return(phy_r32((PHY_ADDR)linAddr)); + } + + /* Note default access_request (0) is Supervisor Read */ + + /* We don't specifically disallow Protected Mode calls, they + are not designed to happen, but the Video at least has a habit + of reading BIOS variables on host timer ticks. We treat such + requests more leniently than V86 Mode requests, by not insisting + that the access and dirty bits are kosher. + */ + + if ( getCPL() != 3 ) + { + access_request = access_request | PG_U; + } + + /* Beware V86 Mode, be strict about access and dirty bits */ + + if ( getVM() ) + { + access_request = access_request | 0x4; + } + + /* Go translate the address. Never called crossing a page boundary */ + + if (xtrn2phy(linAddr, access_request, &phyAddr)) + { + return(phy_r32(phyAddr)); + } + + /* Handle Address Mapping Failure... */ + + if(getPE() && !getVM()) + { + always_trace1("Virtualising PM double read, lin address 0x%x", linAddr); + + if (!selectors_set) + return; + + return ((IU8)biosDoInst(code_sel, BIOS_RDD_OFFSET, 0, data_sel, linAddr)); + } + else + { + sub_note_trace1(SAS_VERBOSE, "Page read double VM virtualisation at 0x%x", linAddr); + + return ((IU8)biosDoInst(BIOS_VIRTUALISE_SEGMENT, BIOS_RDD_OFFSET, 0, data_sel, linAddr)); + } +} + + +/* Write byte to memory, if V86 Mode let CPU do it. */ +LOCAL void +bios_write_byte IFN2(LIN_ADDR, linAddr, IU8, value) +{ + PHY_ADDR addr; + IUM8 access_request = 0; /* BIT 0 = R/W */ + /* BIT 1 = U/S */ + /* BIT 2 = Ensure A and D are valid */ + + /* If no paging on, then no problem */ + + if (!c_getPG()) + { + phy_w8((PHY_ADDR)linAddr, value); + return; + } + + /* Note default access_request (0) is Supervisor Read */ + access_request = access_request | PG_W; /* So make it Right :-) */ + + /* We don't specifically disallow Protected Mode calls, they + are not designed to happen, but who knows. We treat such + requests more leniently than V86 Mode requests, by not insisting + that the access and dirty bits are kosher. + */ + + if ( getCPL() != 3 ) + { + access_request = access_request | PG_U; + } + + /* Beware V86 Mode, be strict about access and dirty bits */ + if ( getVM() ) + { + access_request = access_request | 0x4; + } + + /* Go translate the address. */ + if (xtrn2phy(linAddr, access_request, &addr)) + { + phy_w8(addr, value); + return; + } + + /* Handle Address Mapping Failure... */ + + if(getPE() && !getVM()) + { + always_trace1("Virtualising PM byte write, lin address 0x%x", linAddr); + + if (!selectors_set) + return; + + (void)biosDoInst(code_sel, BIOS_WRTB_OFFSET, (IU32)value, data_sel, linAddr); + } + else + { + sub_note_trace1(SAS_VERBOSE, "Page write VM virtualisation at 0x%x", linAddr); + + (void)biosDoInst(BIOS_VIRTUALISE_SEGMENT, BIOS_WRTB_OFFSET, (IU32)value, data_sel, linAddr); + } +} + + +/* Write word to memory, if V86 Mode let CPU do it. */ +LOCAL void +bios_write_word IFN2(LIN_ADDR, linAddr, IU16, value) +{ + PHY_ADDR addr; + IUM8 access_request = 0; /* BIT 0 = R/W */ + /* BIT 1 = U/S */ + /* BIT 2 = Ensure A and D are valid */ + + /* If no paging on, then no problem */ + + if (!c_getPG()) + { + phy_w16((PHY_ADDR)linAddr, value); + return; + } + + /* Note default access_request (0) is Supervisor Read */ + access_request = access_request | PG_W; /* So make it Right :-) */ + + /* We don't specifically disallow Protected Mode calls, they + are not designed to happen, but who knows. We treat such + requests more leniently than V86 Mode requests, by not insisting + that the access and dirty bits are kosher. + */ + + if ( getCPL() != 3 ) + { + access_request = access_request | PG_U; + } + + /* Beware V86 Mode, be strict about access and dirty bits */ + if ( getVM() ) + { + access_request = access_request | 0x4; + } + + /* Go translate the address. Never called crossing a page boundary */ + if (xtrn2phy(linAddr, access_request, &addr)) + { + phy_w16(addr, value); + return; + } + + /* Handle Address Mapping Failure... */ + + if(getPE() && !getVM()) + { + always_trace1("Virtualising PM word write, lin address 0x%x", linAddr); + + if (!selectors_set) + return; + + (void)biosDoInst(code_sel, BIOS_WRTW_OFFSET, (IU32)value, data_sel, linAddr); + } + else + { + sub_note_trace1(SAS_VERBOSE, "Page word write VM virtualisation at 0x%x", linAddr); + + (void)biosDoInst(BIOS_VIRTUALISE_SEGMENT, BIOS_WRTW_OFFSET, (IU32)value, data_sel, linAddr); + } +} + + +/* Write double to memory, if V86 Mode let CPU do it. */ +LOCAL void +bios_write_double IFN2(LIN_ADDR, linAddr, IU32, value) +{ + PHY_ADDR addr; + IUM8 access_request = 0; /* BIT 0 = R/W */ + /* BIT 1 = U/S */ + /* BIT 2 = Ensure A and D are valid */ + + /* If no paging on, then no problem */ + + if (!c_getPG()) + { + phy_w32((PHY_ADDR)linAddr, value); + return; + } + + /* Note default access_request (0) is Supervisor Read */ + access_request = access_request | PG_W; /* So make it Right :-) */ + + /* We don't specifically disallow Protected Mode calls, they + are not designed to happen, but who knows. We treat such + requests more leniently than V86 Mode requests, by not insisting + that the access and dirty bits are kosher. + */ + + if ( getCPL() != 3 ) + { + access_request = access_request | PG_U; + } + + /* Beware V86 Mode, be strict about access and dirty bits */ + if ( getVM() ) + { + access_request = access_request | 0x4; + } + + /* Go translate the address. Never called crossing a page boundary */ + if (xtrn2phy(linAddr, access_request, &addr)) + { + phy_w32(addr, value); + return; + } + + /* Handle Address Mapping Failure... */ + + if(getPE() && !getVM()) + { + always_trace1("Virtualising PM double write, lin address 0x%x", linAddr); + + if (!selectors_set) + return; + + (void)biosDoInst(code_sel, BIOS_WRTD_OFFSET, (IU32)value, data_sel, linAddr); + } + else + { + sub_note_trace1(SAS_VERBOSE, "Page double write VM virtualisation at 0x%x", linAddr); + + (void)biosDoInst(BIOS_VIRTUALISE_SEGMENT, BIOS_WRTD_OFFSET, (IU32)value, data_sel, linAddr); + } +} + + +LOCAL void c_sas_not_used IFN0() +{ + always_trace0("c_sas_not_used called"); +#ifndef PROD + force_yoda(); +#endif +} + + +/* Compatibility with SoftPC2.0 access name (used in video) */ +GLOBAL IU8* c_get_byte_addr IFN1(PHY_ADDR, addr) +{ + return (c_GetPhyAdd(addr)); +} + +/* stub needed for standalone Ccpu */ +GLOBAL IBOOL c_sas_PigCmpPage IFN3(IU32, src, IU8 *, dest, IU32, len) +{ + return(FALSE); +} +#endif /* CCPU */ diff --git a/private/mvdm/softpc.new/base/ccpu386/ccpusas4.h b/private/mvdm/softpc.new/base/ccpu386/ccpusas4.h new file mode 100644 index 000000000..8593a92a6 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/ccpusas4.h @@ -0,0 +1,34 @@ +/*[ + * File Name : ccpu_sas4.h + * + * Derived From : Template + * + * Author : Mike + * + * Creation Date : October 1993 + * + * SCCS Version : @(#)ccpusas4.h 1.5 11/15/94 + *! + * Purpose + * This include file contains the interface provided by ccpu_sas4.h + * to the rest of the ccpu. + * + *! (c)Copyright Insignia Solutions Ltd., 1993. All rights reserved. +]*/ + +extern IU8 phy_r8 IPT1(PHY_ADDR, addr); +extern IU16 phy_r16 IPT1(PHY_ADDR, addr); +extern IU32 phy_r32 IPT1(PHY_ADDR, addr); +extern void phy_w8 IPT2(PHY_ADDR, addr, IU8, value); +extern void phy_w16 IPT2(PHY_ADDR, addr, IU16, value); +extern void phy_w32 IPT2(PHY_ADDR, addr, IU32, value); + +extern PHY_ADDR SasWrapMask; + +#if !defined(PIG) +#ifdef BACK_M +#define IncCpuPtrLS8(ptr) (ptr)-- +#else /* BACK_M */ +#define IncCpuPtrLS8(ptr) (ptr)++ +#endif /* BACK_M */ +#endif /* PIG */ diff --git a/private/mvdm/softpc.new/base/ccpu386/cdq.c b/private/mvdm/softpc.new/base/ccpu386/cdq.c new file mode 100644 index 000000000..1de3fac50 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/cdq.c @@ -0,0 +1,42 @@ +/*[ + +cdq.c + +LOCAL CHAR SccsID[]="@(#)cdq.c 1.5 02/09/94"; + +CDQ CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +GLOBAL VOID +CDQ() + { + if ( GET_EAX() & BIT31_MASK ) /* sign bit set? */ + SET_EDX(0xffffffff); + else + SET_EDX(0); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/cdq.h b/private/mvdm/softpc.new/base/ccpu386/cdq.h new file mode 100644 index 000000000..d4064912c --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/cdq.h @@ -0,0 +1,11 @@ +/* + cdq.h + + CDQ CPU functions. + */ + +/* + static char SccsID[]="@(#)cdq.h 1.5 09/01/94"; + */ + +IMPORT VOID CDQ IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/clc.c b/private/mvdm/softpc.new/base/ccpu386/clc.c new file mode 100644 index 000000000..b8c2b6783 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/clc.c @@ -0,0 +1,39 @@ +/*[ + +clc.c + +LOCAL CHAR SccsID[]="@(#)clc.c 1.5 02/09/94"; + +CLC CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +GLOBAL VOID +CLC() + { + SET_CF(0); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/clc.h b/private/mvdm/softpc.new/base/ccpu386/clc.h new file mode 100644 index 000000000..e74a9b19f --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/clc.h @@ -0,0 +1,11 @@ +/* + clc.h + + Define all CLC CPU functions. + */ + +/* + static char SccsID[]="@(#)clc.h 1.5 09/01/94"; + */ + +IMPORT VOID CLC IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/cld.c b/private/mvdm/softpc.new/base/ccpu386/cld.c new file mode 100644 index 000000000..b760e2b7b --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/cld.c @@ -0,0 +1,39 @@ +/*[ + +cld.c + +LOCAL CHAR SccsID[]="@(#)cld.c 1.5 02/09/94"; + +CLD CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +GLOBAL VOID +CLD() + { + SET_DF(0); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/cld.h b/private/mvdm/softpc.new/base/ccpu386/cld.h new file mode 100644 index 000000000..73d5077e0 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/cld.h @@ -0,0 +1,11 @@ +/* + cld.h + + Define all CLD CPU functions. + */ + +/* + static char SccsID[]="@(#)cld.h 1.5 09/01/94"; + */ + +IMPORT VOID CLD IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/cli.c b/private/mvdm/softpc.new/base/ccpu386/cli.c new file mode 100644 index 000000000..d1365c883 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/cli.c @@ -0,0 +1,39 @@ +/*[ + +cli.c + +LOCAL CHAR SccsID[]="@(#)cli.c 1.5 02/09/94"; + +CLI CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +GLOBAL VOID +CLI() + { + SET_IF(0); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/cli.h b/private/mvdm/softpc.new/base/ccpu386/cli.h new file mode 100644 index 000000000..116537d32 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/cli.h @@ -0,0 +1,11 @@ +/* + cli.h + + Define all CLI CPU functions. + */ + +/* + static char SccsID[]="@(#)cli.h 1.5 09/01/94"; + */ + +IMPORT VOID CLI IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/clts.c b/private/mvdm/softpc.new/base/ccpu386/clts.c new file mode 100644 index 000000000..30665d98c --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/clts.c @@ -0,0 +1,39 @@ +/*[ + +clts.c + +LOCAL CHAR SccsID[]="@(#)clts.c 1.5 02/09/94"; + +CLTS CPU functions. +------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +GLOBAL VOID +CLTS() + { + SET_CR(CR_STAT, GET_CR(CR_STAT) & ~BIT3_MASK); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/clts.h b/private/mvdm/softpc.new/base/ccpu386/clts.h new file mode 100644 index 000000000..46bd21836 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/clts.h @@ -0,0 +1,11 @@ +/* + clts.h + + Define all CLTS CPU functions. + */ + +/* + static char SccsID[]="@(#)clts.h 1.5 09/01/94"; + */ + +IMPORT VOID CLTS IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/cmc.c b/private/mvdm/softpc.new/base/ccpu386/cmc.c new file mode 100644 index 000000000..ae0fc801d --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/cmc.c @@ -0,0 +1,39 @@ +/*[ + +cmc.c + +LOCAL CHAR SccsID[]="@(#)cmc.c 1.5 02/09/94"; + +CMC CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +GLOBAL VOID +CMC() + { + SET_CF(1 - GET_CF()); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/cmc.h b/private/mvdm/softpc.new/base/ccpu386/cmc.h new file mode 100644 index 000000000..e8f24d7ae --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/cmc.h @@ -0,0 +1,11 @@ +/* + cmc.h + + Define all CMC CPU functions. + */ + +/* + static char SccsID[]="@(#)cmc.h 1.5 09/01/94"; + */ + +IMPORT VOID CMC IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/cmp.c b/private/mvdm/softpc.new/base/ccpu386/cmp.c new file mode 100644 index 000000000..5f8db59f3 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/cmp.c @@ -0,0 +1,81 @@ +/*[ + +cmp.c + +LOCAL CHAR SccsID[]="@(#)cmp.c 1.5 02/09/94"; + +CMP CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'cmp'. */ +/* Generic - one size fits all 'cmps'. */ +/* Generic - one size fits all 'scas'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +CMP + +IFN3( + IU32, op1, /* lsrc operand */ + IU32, op2, /* rsrc operand */ + IUM8, op_sz /* 8, 16 or 32-bit */ + ) + + + { + IU32 result; + IU32 carry; + IU32 msb; + IU32 op1_msb; + IU32 op2_msb; + IU32 res_msb; + + msb = SZ2MSB(op_sz); + + result = op1 - op2 & SZ2MASK(op_sz); /* Do operation */ + op1_msb = (op1 & msb) != 0; /* Isolate all msb's */ + op2_msb = (op2 & msb) != 0; + res_msb = (result & msb) != 0; + carry = op1 ^ op2 ^ result; /* Isolate carries */ + /* Determine flags */ + /* + OF = (op1 == !op2) & (op1 ^ res) + ie if operand signs differ and res sign different to original + destination set OF. + */ + SET_OF((op1_msb != op2_msb) & (op1_msb ^ res_msb)); + /* + Formally:- CF = !op1 & op2 | res & !op1 | res & op2 + Equivalently:- CF = OF ^ op1 ^ op2 ^ res + */ + SET_CF(((carry & msb) != 0) ^ GET_OF()); + SET_PF(pf_table[result & BYTE_MASK]); + SET_ZF(result == 0); + SET_SF((result & msb) != 0); /* SF = MSB */ + SET_AF((carry & BIT4_MASK) != 0); /* AF = Bit 4 carry */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/cmp.h b/private/mvdm/softpc.new/base/ccpu386/cmp.h new file mode 100644 index 000000000..864459ed3 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/cmp.h @@ -0,0 +1,18 @@ +/* + cmp.h + + Define all CMP CPU functions. + */ + +/* + static char SccsID[]="@(#)cmp.h 1.4 02/09/94"; + */ + +IMPORT VOID CMP + +IPT3( + IU32, op1, + IU32, op2, + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/cmpxchg.c b/private/mvdm/softpc.new/base/ccpu386/cmpxchg.c new file mode 100644 index 000000000..0ea141894 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/cmpxchg.c @@ -0,0 +1,122 @@ +/*[ + +cmpxchg.c + +LOCAL CHAR SccsID[]="@(#)cmpxchg.c 1.5 02/09/94"; + +CMPXCHG CPU functions. +---------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +#ifdef SPC486 + +GLOBAL VOID +CMPXCHG8 + +IFN2( + IU32 *, pop1, /* pntr to dst/lsrc operand */ + IU32, op2 /* rsrc operand */ + ) + + + { + /* + First do comparision and generate flags. + */ + CMP((IU32)GET_AL(), *pop1, 8); + + /* + Then swap data as required. + */ + if ( GET_ZF() ) /* ie iff AL == op1 */ + { + *pop1 = op2; + } + else + { + SET_AL(*pop1); + } + } + +GLOBAL VOID +CMPXCHG16 + +IFN2( + IU32 *, pop1, /* pntr to dst/lsrc operand */ + IU32, op2 /* rsrc operand */ + ) + + + { + /* + First do comparision and generate flags. + */ + CMP((IU32)GET_AX(), *pop1, 16); + + /* + Then swap data as required. + */ + if ( GET_ZF() ) /* ie iff AX == op1 */ + { + *pop1 = op2; + } + else + { + SET_AX(*pop1); + } + } + +GLOBAL VOID +CMPXCHG32 + +IFN2( + IU32 *, pop1, /* pntr to dst/lsrc operand */ + IU32, op2 /* rsrc operand */ + ) + + + { + /* + First do comparision and generate flags. + */ + CMP((IU32)GET_EAX(), *pop1, 32); + + /* + Then swap data as required. + */ + if ( GET_ZF() ) /* ie iff EAX == op1 */ + { + *pop1 = op2; + } + else + { + SET_EAX(*pop1); + } + } + +#endif /* SPC486 */ diff --git a/private/mvdm/softpc.new/base/ccpu386/cmpxchg.h b/private/mvdm/softpc.new/base/ccpu386/cmpxchg.h new file mode 100644 index 000000000..ed25ee81d --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/cmpxchg.h @@ -0,0 +1,33 @@ +/* + cmpxchg.h + + CMPXCHG CPU functions. + */ + +/* + static char SccsID[]="@(#)cmpxchg.h 1.4 02/09/94"; + */ + +IMPORT VOID CMPXCHG8 + +IPT2( + IU32 *, pop1, + IU32, op2 + + ); + +IMPORT VOID CMPXCHG16 + +IPT2( + IU32 *, pop1, + IU32, op2 + + ); + +IMPORT VOID CMPXCHG32 + +IPT2( + IU32 *, pop1, + IU32, op2 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/cpu4gen.h b/private/mvdm/softpc.new/base/ccpu386/cpu4gen.h new file mode 100644 index 000000000..9bf724ac3 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/cpu4gen.h @@ -0,0 +1,3086 @@ +/*[ + * Generated File: cpu4gen.h + * +]*/ + +#ifndef _CPU4GEN_H_ +#define _CPU4GEN_H_ + +#include /* For direct access getAX() etc. */ + +struct CpuVector { +#ifdef CPU_PRIVATE + struct CpuPrivateVector *Private; +#else /* !CPU_PRIVATE */ + IHP Private; +#endif /* CPU_PRIVATE */ +#ifdef CPU_PRIVATE + struct SasVector *Sas; +#else /* !CPU_PRIVATE */ + IHP Sas; +#endif /* CPU_PRIVATE */ +#ifdef CPU_PRIVATE + struct VideoVector *Video; +#else /* !CPU_PRIVATE */ + IHP Video; +#endif /* CPU_PRIVATE */ + void (*Simulate) IPT0(); + void (*Interrupt) IPT2(CPU_INT_TYPE, intType, IU16, intNum); + void (*ClearHwInt) IPT0(); + void (*EndOfApplication) IPT0(); + void (*Terminate) IPT0(); + void (*Initialise) IPT0(); + IU32 (*EffectiveAddr) IPT2(IU16, seg, IU32, offset); + void (*SetQuickEventCount) IPT1(IU32, val); + IU32 (*GetQuickEventCount) IPT0(); + void (*InitIOS) IPT4(IHP, InTables, IHP, OutTables, IUH, maxAdaptor, IU16, portMask); + void (*DefineInb) IPT2(IUH, adaptor, IHP, func); + void (*DefineInw) IPT2(IUH, adaptor, IHP, func); + void (*DefineInd) IPT2(IUH, adaptor, IHP, func); + void (*DefineOutb) IPT2(IUH, adaptor, IHP, func); + void (*DefineOutw) IPT2(IUH, adaptor, IHP, func); + void (*DefineOutd) IPT2(IUH, adaptor, IHP, func); + void (*SetAL) IPT1(IU8, val); + void (*SetAH) IPT1(IU8, val); + void (*SetAX) IPT1(IU16, val); + void (*SetEAX) IPT1(IU32, val); + void (*SetBL) IPT1(IU8, val); + void (*SetBH) IPT1(IU8, val); + void (*SetBX) IPT1(IU16, val); + void (*SetEBX) IPT1(IU32, val); + void (*SetCL) IPT1(IU8, val); + void (*SetCH) IPT1(IU8, val); + void (*SetCX) IPT1(IU16, val); + void (*SetECX) IPT1(IU32, val); + void (*SetDL) IPT1(IU8, val); + void (*SetDH) IPT1(IU8, val); + void (*SetDX) IPT1(IU16, val); + void (*SetEDX) IPT1(IU32, val); + void (*SetSI) IPT1(IU16, val); + void (*SetESI) IPT1(IU32, val); + void (*SetDI) IPT1(IU16, val); + void (*SetEDI) IPT1(IU32, val); + void (*SetSP) IPT1(IU16, val); + void (*SetESP) IPT1(IU32, val); + void (*SetBP) IPT1(IU16, val); + void (*SetEBP) IPT1(IU32, val); + void (*SetIP) IPT1(IU16, val); + void (*SetEIP) IPT1(IU32, val); + IUH (*SetCS) IPT1(IU16, val); + IUH (*SetSS) IPT1(IU16, val); + IUH (*SetDS) IPT1(IU16, val); + IUH (*SetES) IPT1(IU16, val); + IUH (*SetFS) IPT1(IU16, val); + IUH (*SetGS) IPT1(IU16, val); + void (*SetEFLAGS) IPT1(IU32, val); + void (*SetSTATUS) IPT1(IU16, val); + void (*SetIOPL) IPT1(IU8, val); + void (*SetMSW) IPT1(IU16, val); + void (*SetCR0) IPT1(IU32, val); + void (*SetCR2) IPT1(IU32, val); + void (*SetCR3) IPT1(IU32, val); + void (*SetCF) IPT1(IBOOL, val); + void (*SetPF) IPT1(IBOOL, val); + void (*SetAF) IPT1(IBOOL, val); + void (*SetZF) IPT1(IBOOL, val); + void (*SetSF) IPT1(IBOOL, val); + void (*SetTF) IPT1(IBOOL, val); + void (*SetIF) IPT1(IBOOL, val); + void (*SetDF) IPT1(IBOOL, val); + void (*SetOF) IPT1(IBOOL, val); + void (*SetNT) IPT1(IBOOL, val); + void (*SetRF) IPT1(IBOOL, val); + void (*SetVM) IPT1(IBOOL, val); + void (*SetAC) IPT1(IBOOL, val); + void (*SetPE) IPT1(IBOOL, val); + void (*SetMP) IPT1(IBOOL, val); + void (*SetEM) IPT1(IBOOL, val); + void (*SetTS) IPT1(IBOOL, val); + void (*SetPG) IPT1(IBOOL, val); + void (*SetLDT_SELECTOR) IPT1(IU16, val); + void (*SetTR_SELECTOR) IPT1(IU16, val); + IU8 (*GetAL) IPT0(); + IU8 (*GetAH) IPT0(); + IU16 (*GetAX) IPT0(); + IU32 (*GetEAX) IPT0(); + IU8 (*GetBL) IPT0(); + IU8 (*GetBH) IPT0(); + IU16 (*GetBX) IPT0(); + IU32 (*GetEBX) IPT0(); + IU8 (*GetCL) IPT0(); + IU8 (*GetCH) IPT0(); + IU16 (*GetCX) IPT0(); + IU32 (*GetECX) IPT0(); + IU8 (*GetDL) IPT0(); + IU8 (*GetDH) IPT0(); + IU16 (*GetDX) IPT0(); + IU32 (*GetEDX) IPT0(); + IU16 (*GetSI) IPT0(); + IU32 (*GetESI) IPT0(); + IU16 (*GetDI) IPT0(); + IU32 (*GetEDI) IPT0(); + IU16 (*GetSP) IPT0(); + IU32 (*GetESP) IPT0(); + IU16 (*GetBP) IPT0(); + IU32 (*GetEBP) IPT0(); + IU16 (*GetIP) IPT0(); + IU32 (*GetEIP) IPT0(); + IU16 (*GetCS) IPT0(); + IU16 (*GetSS) IPT0(); + IU16 (*GetDS) IPT0(); + IU16 (*GetES) IPT0(); + IU16 (*GetFS) IPT0(); + IU16 (*GetGS) IPT0(); + IU32 (*GetEFLAGS) IPT0(); + IU16 (*GetSTATUS) IPT0(); + IU8 (*GetIOPL) IPT0(); + IU16 (*GetMSW) IPT0(); + IU32 (*GetCR0) IPT0(); + IU32 (*GetCR2) IPT0(); + IU32 (*GetCR3) IPT0(); + IBOOL (*GetCF) IPT0(); + IBOOL (*GetPF) IPT0(); + IBOOL (*GetAF) IPT0(); + IBOOL (*GetZF) IPT0(); + IBOOL (*GetSF) IPT0(); + IBOOL (*GetTF) IPT0(); + IBOOL (*GetIF) IPT0(); + IBOOL (*GetDF) IPT0(); + IBOOL (*GetOF) IPT0(); + IBOOL (*GetNT) IPT0(); + IBOOL (*GetRF) IPT0(); + IBOOL (*GetVM) IPT0(); + IBOOL (*GetAC) IPT0(); + IBOOL (*GetPE) IPT0(); + IBOOL (*GetMP) IPT0(); + IBOOL (*GetEM) IPT0(); + IBOOL (*GetTS) IPT0(); + IBOOL (*GetET) IPT0(); + IBOOL (*GetNE) IPT0(); + IBOOL (*GetWP) IPT0(); + IBOOL (*GetPG) IPT0(); + IU32 (*GetGDT_BASE) IPT0(); + IU16 (*GetGDT_LIMIT) IPT0(); + IU32 (*GetIDT_BASE) IPT0(); + IU16 (*GetIDT_LIMIT) IPT0(); + IU16 (*GetLDT_SELECTOR) IPT0(); + IU32 (*GetLDT_BASE) IPT0(); + IU32 (*GetLDT_LIMIT) IPT0(); + IU16 (*GetTR_SELECTOR) IPT0(); + IU32 (*GetTR_BASE) IPT0(); + IU32 (*GetTR_LIMIT) IPT0(); + IU16 (*GetTR_AR) IPT0(); + IUH (*GetJumpCalibrateVal) IPT0(); + IUH (*GetJumpInitialVal) IPT0(); + void (*SetJumpInitialVal) IPT1(IUH, initialVal); + void (*SetEOIEnable) IPT1(IU8 *, initialVal); + void (*SetAddProfileData) IPT1(IHP, initialVal); + void (*SetMaxProfileData) IPT1(IHP, initialVal); + IHP (*GetAddProfileDataAddr) IPT0(); + void (*PurgeLostIretHookLine) IPT2(IU16, lineNum, IU32, depth); + void (*ActivityCheckAfterTimeSlice) IPT0(); + IBOOL (*CheckCsSelectorAndEipForCallFarPatching) IPT3(IU16, csSel, IU32, eip, IU32 *, pCsBase); +}; + +extern struct CpuVector Cpu; + +#ifdef CCPU +IMPORT void c_cpu_simulate IPT0(); +#define cpu_simulate c_cpu_simulate +#else /* CCPU */ + +#ifdef PROD +#define cpu_simulate (*(Cpu.Simulate)) +#else /* PROD */ +IMPORT void cpu_simulate IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_cpu_interrupt IPT2(CPU_INT_TYPE, intType, IU16, intNum); +#define cpu_interrupt c_cpu_interrupt +#else /* CCPU */ + +#ifdef PROD +#define cpu_interrupt (*(Cpu.Interrupt)) +#else /* PROD */ +IMPORT void cpu_interrupt IPT2(CPU_INT_TYPE, intType, IU16, intNum); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_cpu_clearHwInt IPT0(); +#define cpu_clearHwInt c_cpu_clearHwInt +#else /* CCPU */ + +#ifdef PROD +#define cpu_clearHwInt (*(Cpu.ClearHwInt)) +#else /* PROD */ +IMPORT void cpu_clearHwInt IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_cpu_EOA_hook IPT0(); +#define cpu_EOA_hook c_cpu_EOA_hook +#else /* CCPU */ + +#ifdef PROD +#define cpu_EOA_hook (*(Cpu.EndOfApplication)) +#else /* PROD */ +IMPORT void cpu_EOA_hook IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_cpu_terminate IPT0(); +#define cpu_terminate() c_cpu_terminate() +#else /* CCPU */ + +#ifdef PROD +#define cpu_terminate() { if (Cpu.Terminate) (*(Cpu.Terminate))(); } +#else /* PROD */ +IMPORT void cpu_terminate IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_cpu_init IPT0(); +#define cpu_init c_cpu_init +#else /* CCPU */ + +#ifdef PROD +#define cpu_init (*(Cpu.Initialise)) +#else /* PROD */ +IMPORT void cpu_init IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_effective_addr IPT2(IU16, seg, IU32, offset); +#define effective_addr(seg, offset) c_effective_addr(seg, offset) +#else /* CCPU */ + +#ifdef PROD +#define effective_addr(seg, offset) (*(Cpu.EffectiveAddr))(seg, offset) +#else /* PROD */ +IMPORT IU32 effective_addr IPT2(IU16, seg, IU32, offset); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_cpu_q_ev_set_count IPT1(IU32, val); +#define host_q_ev_set_count c_cpu_q_ev_set_count +#else /* CCPU */ + +#ifdef PROD +#define host_q_ev_set_count (*(Cpu.SetQuickEventCount)) +#else /* PROD */ +IMPORT void host_q_ev_set_count IPT1(IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_cpu_q_ev_get_count IPT0(); +#define host_q_ev_get_count c_cpu_q_ev_get_count +#else /* CCPU */ + +#ifdef PROD +#define host_q_ev_get_count (*(Cpu.GetQuickEventCount)) +#else /* PROD */ +IMPORT IU32 host_q_ev_get_count IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_cpu_init_ios_in IPT4(IHP, InTables, IHP, OutTables, IUH, maxAdaptor, IU16, portMask); +#define cpu_init_ios_in c_cpu_init_ios_in +#else /* CCPU */ + +#ifdef PROD +#define cpu_init_ios_in (*(Cpu.InitIOS)) +#else /* PROD */ +IMPORT void cpu_init_ios_in IPT4(IHP, InTables, IHP, OutTables, IUH, maxAdaptor, IU16, portMask); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_cpu_define_inb IPT2(IUH, adaptor, IHP, func); +#define ios_define_inb c_cpu_define_inb +#else /* CCPU */ + +#ifdef PROD +#define ios_define_inb (*(Cpu.DefineInb)) +#else /* PROD */ +IMPORT void ios_define_inb IPT2(IUH, adaptor, IHP, func); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_cpu_define_inw IPT2(IUH, adaptor, IHP, func); +#define ios_define_inw c_cpu_define_inw +#else /* CCPU */ + +#ifdef PROD +#define ios_define_inw (*(Cpu.DefineInw)) +#else /* PROD */ +IMPORT void ios_define_inw IPT2(IUH, adaptor, IHP, func); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_cpu_define_ind IPT2(IUH, adaptor, IHP, func); +#define ios_define_ind c_cpu_define_ind +#else /* CCPU */ + +#ifdef PROD +#define ios_define_ind (*(Cpu.DefineInd)) +#else /* PROD */ +IMPORT void ios_define_ind IPT2(IUH, adaptor, IHP, func); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_cpu_define_outb IPT2(IUH, adaptor, IHP, func); +#define ios_define_outb c_cpu_define_outb +#else /* CCPU */ + +#ifdef PROD +#define ios_define_outb (*(Cpu.DefineOutb)) +#else /* PROD */ +IMPORT void ios_define_outb IPT2(IUH, adaptor, IHP, func); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_cpu_define_outw IPT2(IUH, adaptor, IHP, func); +#define ios_define_outw c_cpu_define_outw +#else /* CCPU */ + +#ifdef PROD +#define ios_define_outw (*(Cpu.DefineOutw)) +#else /* PROD */ +IMPORT void ios_define_outw IPT2(IUH, adaptor, IHP, func); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_cpu_define_outd IPT2(IUH, adaptor, IHP, func); +#define ios_define_outd c_cpu_define_outd +#else /* CCPU */ + +#ifdef PROD +#define ios_define_outd (*(Cpu.DefineOutd)) +#else /* PROD */ +IMPORT void ios_define_outd IPT2(IUH, adaptor, IHP, func); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setAL IPT1(IU8, val); +#define setAL(val) c_setAL(val) +#else /* CCPU */ + +#ifdef PROD +#define setAL(val) (GLOBAL_InNanoCpu ? SET_GLOBAL_nanoEax((GLOBAL_nanoEax & 0xFFFFFF00) | ((val) & 0x000000FF)): \ + SET_GLOBAL_R_EAX((GLOBAL_R_EAX & 0xFFFFFF00) | ((val) & 0x000000FF))) + +#else /* PROD */ +IMPORT void setAL IPT1(IU8, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setAH IPT1(IU8, val); +#define setAH(val) c_setAH(val) +#else /* CCPU */ + +#ifdef PROD +#define setAH(val) (GLOBAL_InNanoCpu ? SET_GLOBAL_nanoEax((GLOBAL_nanoEax & 0xFFFF00FF) | (((val) & 0x000000FF) << 8)): \ + SET_GLOBAL_R_EAX((GLOBAL_R_EAX & 0xFFFF00FF) | (((val) & 0x000000FF) << 8))) + +#else /* PROD */ +IMPORT void setAH IPT1(IU8, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setAX IPT1(IU16, val); +#define setAX(val) c_setAX(val) +#else /* CCPU */ + +#ifdef PROD +#define setAX(val) (GLOBAL_InNanoCpu ? SET_GLOBAL_nanoEax((GLOBAL_nanoEax & 0xFFFF0000) | ((val) & 0x0000FFFF)): \ + SET_GLOBAL_R_EAX((GLOBAL_R_EAX & 0xFFFF0000) | ((val) & 0x0000FFFF))) + +#else /* PROD */ +IMPORT void setAX IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setEAX IPT1(IU32, val); +#define setEAX(val) c_setEAX(val) +#else /* CCPU */ + +#ifdef PROD +#define setEAX(val) (GLOBAL_InNanoCpu ? SET_GLOBAL_nanoEax(val): \ + SET_GLOBAL_R_EAX(val)) + +#else /* PROD */ +IMPORT void setEAX IPT1(IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setBL IPT1(IU8, val); +#define setBL(val) c_setBL(val) +#else /* CCPU */ + +#ifdef PROD +#define setBL(val) (GLOBAL_InNanoCpu ? SET_GLOBAL_nanoEbx((GLOBAL_nanoEbx & 0xFFFFFF00) | ((val) & 0x000000FF)): \ + SET_GLOBAL_R_EBX((GLOBAL_R_EBX & 0xFFFFFF00) | ((val) & 0x000000FF))) + +#else /* PROD */ +IMPORT void setBL IPT1(IU8, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setBH IPT1(IU8, val); +#define setBH(val) c_setBH(val) +#else /* CCPU */ + +#ifdef PROD +#define setBH(val) (GLOBAL_InNanoCpu ? SET_GLOBAL_nanoEbx((GLOBAL_nanoEbx & 0xFFFF00FF) | (((val) & 0x000000FF) << 8)): \ + SET_GLOBAL_R_EBX((GLOBAL_R_EBX & 0xFFFF00FF) | (((val) & 0x000000FF) << 8))) + +#else /* PROD */ +IMPORT void setBH IPT1(IU8, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setBX IPT1(IU16, val); +#define setBX(val) c_setBX(val) +#else /* CCPU */ + +#ifdef PROD +#define setBX(val) (GLOBAL_InNanoCpu ? SET_GLOBAL_nanoEbx((GLOBAL_nanoEbx & 0xFFFF0000) | ((val) & 0x0000FFFF)): \ + SET_GLOBAL_R_EBX((GLOBAL_R_EBX & 0xFFFF0000) | ((val) & 0x0000FFFF))) + +#else /* PROD */ +IMPORT void setBX IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setEBX IPT1(IU32, val); +#define setEBX(val) c_setEBX(val) +#else /* CCPU */ + +#ifdef PROD +#define setEBX(val) (GLOBAL_InNanoCpu ? SET_GLOBAL_nanoEbx(val): \ + SET_GLOBAL_R_EBX(val)) + +#else /* PROD */ +IMPORT void setEBX IPT1(IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setCL IPT1(IU8, val); +#define setCL(val) c_setCL(val) +#else /* CCPU */ + +#ifdef PROD +#define setCL(val) (GLOBAL_InNanoCpu ? SET_GLOBAL_nanoEcx((GLOBAL_nanoEcx & 0xFFFFFF00) | ((val) & 0x000000FF)): \ + SET_GLOBAL_R_ECX((GLOBAL_R_ECX & 0xFFFFFF00) | ((val) & 0x000000FF))) + +#else /* PROD */ +IMPORT void setCL IPT1(IU8, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setCH IPT1(IU8, val); +#define setCH(val) c_setCH(val) +#else /* CCPU */ + +#ifdef PROD +#define setCH(val) (GLOBAL_InNanoCpu ? SET_GLOBAL_nanoEcx((GLOBAL_nanoEcx & 0xFFFF00FF) | (((val) & 0x000000FF) << 8)): \ + SET_GLOBAL_R_ECX((GLOBAL_R_ECX & 0xFFFF00FF) | (((val) & 0x000000FF) << 8))) + +#else /* PROD */ +IMPORT void setCH IPT1(IU8, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setCX IPT1(IU16, val); +#define setCX(val) c_setCX(val) +#else /* CCPU */ + +#ifdef PROD +#define setCX(val) (GLOBAL_InNanoCpu ? SET_GLOBAL_nanoEcx((GLOBAL_nanoEcx & 0xFFFF0000) | ((val) & 0x0000FFFF)): \ + SET_GLOBAL_R_ECX((GLOBAL_R_ECX & 0xFFFF0000) | ((val) & 0x0000FFFF))) + +#else /* PROD */ +IMPORT void setCX IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setECX IPT1(IU32, val); +#define setECX(val) c_setECX(val) +#else /* CCPU */ + +#ifdef PROD +#define setECX(val) (GLOBAL_InNanoCpu ? SET_GLOBAL_nanoEcx(val): \ + SET_GLOBAL_R_ECX(val)) + +#else /* PROD */ +IMPORT void setECX IPT1(IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setDL IPT1(IU8, val); +#define setDL(val) c_setDL(val) +#else /* CCPU */ + +#ifdef PROD +#define setDL(val) (GLOBAL_InNanoCpu ? SET_GLOBAL_nanoEdx((GLOBAL_nanoEdx & 0xFFFFFF00) | ((val) & 0x000000FF)): \ + SET_GLOBAL_R_EDX((GLOBAL_R_EDX & 0xFFFFFF00) | ((val) & 0x000000FF))) + +#else /* PROD */ +IMPORT void setDL IPT1(IU8, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setDH IPT1(IU8, val); +#define setDH(val) c_setDH(val) +#else /* CCPU */ + +#ifdef PROD +#define setDH(val) (GLOBAL_InNanoCpu ? SET_GLOBAL_nanoEdx((GLOBAL_nanoEdx & 0xFFFF00FF) | (((val) & 0x000000FF) << 8)): \ + SET_GLOBAL_R_EDX((GLOBAL_R_EDX & 0xFFFF00FF) | (((val) & 0x000000FF) << 8))) + +#else /* PROD */ +IMPORT void setDH IPT1(IU8, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setDX IPT1(IU16, val); +#define setDX(val) c_setDX(val) +#else /* CCPU */ + +#ifdef PROD +#define setDX(val) (GLOBAL_InNanoCpu ? SET_GLOBAL_nanoEdx((GLOBAL_nanoEdx & 0xFFFF0000) | ((val) & 0x0000FFFF)): \ + SET_GLOBAL_R_EDX((GLOBAL_R_EDX & 0xFFFF0000) | ((val) & 0x0000FFFF))) + +#else /* PROD */ +IMPORT void setDX IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setEDX IPT1(IU32, val); +#define setEDX(val) c_setEDX(val) +#else /* CCPU */ + +#ifdef PROD +#define setEDX(val) (GLOBAL_InNanoCpu ? SET_GLOBAL_nanoEdx(val): \ + SET_GLOBAL_R_EDX(val)) + +#else /* PROD */ +IMPORT void setEDX IPT1(IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setSI IPT1(IU16, val); +#define setSI(val) c_setSI(val) +#else /* CCPU */ + +#ifdef PROD +#define setSI(val) (GLOBAL_InNanoCpu ? SET_GLOBAL_nanoEsi((GLOBAL_nanoEsi & 0xFFFF0000) | ((val) & 0x0000FFFF)): \ + SET_GLOBAL_R_ESI((GLOBAL_R_ESI & 0xFFFF0000) | ((val) & 0x0000FFFF))) + +#else /* PROD */ +IMPORT void setSI IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setESI IPT1(IU32, val); +#define setESI(val) c_setESI(val) +#else /* CCPU */ + +#ifdef PROD +#define setESI(val) (GLOBAL_InNanoCpu ? SET_GLOBAL_nanoEsi(val): \ + SET_GLOBAL_R_ESI(val)) + +#else /* PROD */ +IMPORT void setESI IPT1(IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setDI IPT1(IU16, val); +#define setDI(val) c_setDI(val) +#else /* CCPU */ + +#ifdef PROD +#define setDI(val) (GLOBAL_InNanoCpu ? SET_GLOBAL_nanoEdi((GLOBAL_nanoEdi & 0xFFFF0000) | ((val) & 0x0000FFFF)): \ + SET_GLOBAL_R_EDI((GLOBAL_R_EDI & 0xFFFF0000) | ((val) & 0x0000FFFF))) + +#else /* PROD */ +IMPORT void setDI IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setEDI IPT1(IU32, val); +#define setEDI(val) c_setEDI(val) +#else /* CCPU */ + +#ifdef PROD +#define setEDI(val) (GLOBAL_InNanoCpu ? SET_GLOBAL_nanoEdi(val): \ + SET_GLOBAL_R_EDI(val)) + +#else /* PROD */ +IMPORT void setEDI IPT1(IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setSP IPT1(IU16, val); +#define setSP(val) c_setSP(val) +#else /* CCPU */ + +#ifdef PROD +#define setSP(val) (*(Cpu.SetSP))(val) +#else /* PROD */ +IMPORT void setSP IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setESP IPT1(IU32, val); +#define setESP(val) c_setESP(val) +#else /* CCPU */ + +#ifdef PROD +#define setESP(val) (*(Cpu.SetESP))(val) +#else /* PROD */ +IMPORT void setESP IPT1(IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setBP IPT1(IU16, val); +#define setBP(val) c_setBP(val) +#else /* CCPU */ + +#ifdef PROD +#define setBP(val) (GLOBAL_InNanoCpu ? SET_GLOBAL_nanoEbp((GLOBAL_nanoEbp & 0xFFFF0000) | ((val) & 0x0000FFFF)): \ + SET_GLOBAL_R_EBP((GLOBAL_R_EBP & 0xFFFF0000) | ((val) & 0x0000FFFF))) + +#else /* PROD */ +IMPORT void setBP IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setEBP IPT1(IU32, val); +#define setEBP(val) c_setEBP(val) +#else /* CCPU */ + +#ifdef PROD +#define setEBP(val) (GLOBAL_InNanoCpu ? SET_GLOBAL_nanoEbp(val): \ + SET_GLOBAL_R_EBP(val)) + +#else /* PROD */ +IMPORT void setEBP IPT1(IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setIP IPT1(IU16, val); +#define setIP(val) c_setIP(val) +#else /* CCPU */ + +#ifdef PROD +#define setIP(val) (*(Cpu.SetIP))(val) +#else /* PROD */ +IMPORT void setIP IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setEIP IPT1(IU32, val); +#define setEIP(val) c_setEIP(val) +#else /* CCPU */ + +#ifdef PROD +#define setEIP(val) (*(Cpu.SetEIP))(val) +#else /* PROD */ +IMPORT void setEIP IPT1(IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IUH c_setCS IPT1(IU16, val); +#define setCS(val) c_setCS(val) +#else /* CCPU */ + +#ifdef PROD +#define setCS(val) (*(Cpu.SetCS))(val) +#else /* PROD */ +IMPORT IUH setCS IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IUH c_setSS IPT1(IU16, val); +#define setSS(val) c_setSS(val) +#else /* CCPU */ + +#ifdef PROD +#define setSS(val) (*(Cpu.SetSS))(val) +#else /* PROD */ +IMPORT IUH setSS IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IUH c_setDS IPT1(IU16, val); +#define setDS(val) c_setDS(val) +#else /* CCPU */ + +#ifdef PROD +#define setDS(val) (*(Cpu.SetDS))(val) +#else /* PROD */ +IMPORT IUH setDS IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IUH c_setES IPT1(IU16, val); +#define setES(val) c_setES(val) +#else /* CCPU */ + +#ifdef PROD +#define setES(val) (*(Cpu.SetES))(val) +#else /* PROD */ +IMPORT IUH setES IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IUH c_setFS IPT1(IU16, val); +#define setFS(val) c_setFS(val) +#else /* CCPU */ + +#ifdef PROD +#define setFS(val) (*(Cpu.SetFS))(val) +#else /* PROD */ +IMPORT IUH setFS IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IUH c_setGS IPT1(IU16, val); +#define setGS(val) c_setGS(val) +#else /* CCPU */ + +#ifdef PROD +#define setGS(val) (*(Cpu.SetGS))(val) +#else /* PROD */ +IMPORT IUH setGS IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setEFLAGS IPT1(IU32, val); +#define setEFLAGS(val) c_setEFLAGS(val) +#else /* CCPU */ + +#ifdef PROD +#define setEFLAGS(val) (*(Cpu.SetEFLAGS))(val) +#else /* PROD */ +IMPORT void setEFLAGS IPT1(IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setSTATUS IPT1(IU16, val); +#define setSTATUS(val) c_setSTATUS(val) +#else /* CCPU */ + +#ifdef PROD +#define setSTATUS(val) (*(Cpu.SetSTATUS))(val) +#else /* PROD */ +IMPORT void setSTATUS IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setIOPL IPT1(IU8, val); +#define setIOPL(val) c_setIOPL(val) +#else /* CCPU */ + +#ifdef PROD +#define setIOPL(val) (*(Cpu.SetIOPL))(val) +#else /* PROD */ +IMPORT void setIOPL IPT1(IU8, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setMSW IPT1(IU16, val); +#define setMSW(val) c_setMSW(val) +#else /* CCPU */ + +#ifdef PROD +#define setMSW(val) (*(Cpu.SetMSW))(val) +#else /* PROD */ +IMPORT void setMSW IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setCR0 IPT1(IU32, val); +#define setCR0(val) c_setCR0(val) +#else /* CCPU */ + +#ifdef PROD +#define setCR0(val) (*(Cpu.SetCR0))(val) +#else /* PROD */ +IMPORT void setCR0 IPT1(IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setCR2 IPT1(IU32, val); +#define setCR2(val) c_setCR2(val) +#else /* CCPU */ + +#ifdef PROD +#define setCR2(val) (*(Cpu.SetCR2))(val) +#else /* PROD */ +IMPORT void setCR2 IPT1(IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setCR3 IPT1(IU32, val); +#define setCR3(val) c_setCR3(val) +#else /* CCPU */ + +#ifdef PROD +#define setCR3(val) (*(Cpu.SetCR3))(val) +#else /* PROD */ +IMPORT void setCR3 IPT1(IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setCF IPT1(IBOOL, val); +#define setCF(val) c_setCF(val) +#else /* CCPU */ + +#ifdef PROD +#define setCF(val) (*(Cpu.SetCF))(val) +#else /* PROD */ +IMPORT void setCF IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setPF IPT1(IBOOL, val); +#define setPF(val) c_setPF(val) +#else /* CCPU */ + +#ifdef PROD +#define setPF(val) (*(Cpu.SetPF))(val) +#else /* PROD */ +IMPORT void setPF IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setAF IPT1(IBOOL, val); +#define setAF(val) c_setAF(val) +#else /* CCPU */ + +#ifdef PROD +#define setAF(val) (*(Cpu.SetAF))(val) +#else /* PROD */ +IMPORT void setAF IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setZF IPT1(IBOOL, val); +#define setZF(val) c_setZF(val) +#else /* CCPU */ + +#ifdef PROD +#define setZF(val) (*(Cpu.SetZF))(val) +#else /* PROD */ +IMPORT void setZF IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setSF IPT1(IBOOL, val); +#define setSF(val) c_setSF(val) +#else /* CCPU */ + +#ifdef PROD +#define setSF(val) (*(Cpu.SetSF))(val) +#else /* PROD */ +IMPORT void setSF IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setTF IPT1(IBOOL, val); +#define setTF(val) c_setTF(val) +#else /* CCPU */ + +#ifdef PROD +#define setTF(val) (*(Cpu.SetTF))(val) +#else /* PROD */ +IMPORT void setTF IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setIF IPT1(IBOOL, val); +#define setIF(val) c_setIF(val) +#else /* CCPU */ + +#ifdef PROD +#define setIF(val) (*(Cpu.SetIF))(val) +#else /* PROD */ +IMPORT void setIF IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setDF IPT1(IBOOL, val); +#define setDF(val) c_setDF(val) +#else /* CCPU */ + +#ifdef PROD +#define setDF(val) (*(Cpu.SetDF))(val) +#else /* PROD */ +IMPORT void setDF IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setOF IPT1(IBOOL, val); +#define setOF(val) c_setOF(val) +#else /* CCPU */ + +#ifdef PROD +#define setOF(val) (*(Cpu.SetOF))(val) +#else /* PROD */ +IMPORT void setOF IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setNT IPT1(IBOOL, val); +#define setNT(val) c_setNT(val) +#else /* CCPU */ + +#ifdef PROD +#define setNT(val) (*(Cpu.SetNT))(val) +#else /* PROD */ +IMPORT void setNT IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setRF IPT1(IBOOL, val); +#define setRF(val) c_setRF(val) +#else /* CCPU */ + +#ifdef PROD +#define setRF(val) (*(Cpu.SetRF))(val) +#else /* PROD */ +IMPORT void setRF IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setVM IPT1(IBOOL, val); +#define setVM(val) c_setVM(val) +#else /* CCPU */ + +#ifdef PROD +#define setVM(val) (*(Cpu.SetVM))(val) +#else /* PROD */ +IMPORT void setVM IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setAC IPT1(IBOOL, val); +#define setAC(val) c_setAC(val) +#else /* CCPU */ + +#ifdef PROD +#define setAC(val) (*(Cpu.SetAC))(val) +#else /* PROD */ +IMPORT void setAC IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setPE IPT1(IBOOL, val); +#define setPE(val) c_setPE(val) +#else /* CCPU */ + +#ifdef PROD +#define setPE(val) (*(Cpu.SetPE))(val) +#else /* PROD */ +IMPORT void setPE IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setMP IPT1(IBOOL, val); +#define setMP(val) c_setMP(val) +#else /* CCPU */ + +#ifdef PROD +#define setMP(val) (*(Cpu.SetMP))(val) +#else /* PROD */ +IMPORT void setMP IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setEM IPT1(IBOOL, val); +#define setEM(val) c_setEM(val) +#else /* CCPU */ + +#ifdef PROD +#define setEM(val) (*(Cpu.SetEM))(val) +#else /* PROD */ +IMPORT void setEM IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setTS IPT1(IBOOL, val); +#define setTS(val) c_setTS(val) +#else /* CCPU */ + +#ifdef PROD +#define setTS(val) (*(Cpu.SetTS))(val) +#else /* PROD */ +IMPORT void setTS IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setPG IPT1(IBOOL, val); +#define setPG(val) c_setPG(val) +#else /* CCPU */ + +#ifdef PROD +#define setPG(val) (*(Cpu.SetPG))(val) +#else /* PROD */ +IMPORT void setPG IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setLDT_SELECTOR IPT1(IU16, val); +#define setLDT_SELECTOR(val) c_setLDT_SELECTOR(val) +#else /* CCPU */ + +#ifdef PROD +#define setLDT_SELECTOR(val) (*(Cpu.SetLDT_SELECTOR))(val) +#else /* PROD */ +IMPORT void setLDT_SELECTOR IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setTR_SELECTOR IPT1(IU16, val); +#define setTR_SELECTOR(val) c_setTR_SELECTOR(val) +#else /* CCPU */ + +#ifdef PROD +#define setTR_SELECTOR(val) (*(Cpu.SetTR_SELECTOR))(val) +#else /* PROD */ +IMPORT void setTR_SELECTOR IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU8 c_getAL IPT0(); +#define getAL() c_getAL() +#else /* CCPU */ + +#ifdef PROD +#define getAL() (((GLOBAL_InNanoCpu ? GLOBAL_nanoEax: GLOBAL_R_EAX)) & 0x000000FF) +#else /* PROD */ +IMPORT IU8 getAL IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU8 c_getAH IPT0(); +#define getAH() c_getAH() +#else /* CCPU */ + +#ifdef PROD +#define getAH() (((GLOBAL_InNanoCpu ? GLOBAL_nanoEax: GLOBAL_R_EAX) >> 8) & 0x000000FF) +#else /* PROD */ +IMPORT IU8 getAH IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getAX IPT0(); +#define getAX() c_getAX() +#else /* CCPU */ + +#ifdef PROD +#define getAX() (((GLOBAL_InNanoCpu ? GLOBAL_nanoEax: GLOBAL_R_EAX)) & 0x0000FFFF) +#else /* PROD */ +IMPORT IU16 getAX IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getEAX IPT0(); +#define getEAX() c_getEAX() +#else /* CCPU */ + +#ifdef PROD +#define getEAX() (((GLOBAL_InNanoCpu ? GLOBAL_nanoEax: GLOBAL_R_EAX)) & 0xFFFFFFFF) +#else /* PROD */ +IMPORT IU32 getEAX IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU8 c_getBL IPT0(); +#define getBL() c_getBL() +#else /* CCPU */ + +#ifdef PROD +#define getBL() (*(Cpu.GetBL))() +#else /* PROD */ +IMPORT IU8 getBL IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU8 c_getBH IPT0(); +#define getBH() c_getBH() +#else /* CCPU */ + +#ifdef PROD +#define getBH() (((GLOBAL_InNanoCpu ? GLOBAL_nanoEbx: GLOBAL_R_EBX) >> 8) & 0x000000FF) +#else /* PROD */ +IMPORT IU8 getBH IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getBX IPT0(); +#define getBX() c_getBX() +#else /* CCPU */ + +#ifdef PROD +#define getBX() (((GLOBAL_InNanoCpu ? GLOBAL_nanoEbx: GLOBAL_R_EBX)) & 0x0000FFFF) +#else /* PROD */ +IMPORT IU16 getBX IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getEBX IPT0(); +#define getEBX() c_getEBX() +#else /* CCPU */ + +#ifdef PROD +#define getEBX() (((GLOBAL_InNanoCpu ? GLOBAL_nanoEbx: GLOBAL_R_EBX)) & 0xFFFFFFFF) +#else /* PROD */ +IMPORT IU32 getEBX IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU8 c_getCL IPT0(); +#define getCL() c_getCL() +#else /* CCPU */ + +#ifdef PROD +#define getCL() (((GLOBAL_InNanoCpu ? GLOBAL_nanoEcx: GLOBAL_R_ECX)) & 0x000000FF) +#else /* PROD */ +IMPORT IU8 getCL IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU8 c_getCH IPT0(); +#define getCH() c_getCH() +#else /* CCPU */ + +#ifdef PROD +#define getCH() (((GLOBAL_InNanoCpu ? GLOBAL_nanoEcx: GLOBAL_R_ECX) >> 8) & 0x000000FF) +#else /* PROD */ +IMPORT IU8 getCH IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getCX IPT0(); +#define getCX() c_getCX() +#else /* CCPU */ + +#ifdef PROD +#define getCX() (((GLOBAL_InNanoCpu ? GLOBAL_nanoEcx: GLOBAL_R_ECX)) & 0x0000FFFF) +#else /* PROD */ +IMPORT IU16 getCX IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getECX IPT0(); +#define getECX() c_getECX() +#else /* CCPU */ + +#ifdef PROD +#define getECX() (((GLOBAL_InNanoCpu ? GLOBAL_nanoEcx: GLOBAL_R_ECX)) & 0xFFFFFFFF) +#else /* PROD */ +IMPORT IU32 getECX IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU8 c_getDL IPT0(); +#define getDL() c_getDL() +#else /* CCPU */ + +#ifdef PROD +#define getDL() (((GLOBAL_InNanoCpu ? GLOBAL_nanoEdx: GLOBAL_R_EDX)) & 0x000000FF) +#else /* PROD */ +IMPORT IU8 getDL IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU8 c_getDH IPT0(); +#define getDH() c_getDH() +#else /* CCPU */ + +#ifdef PROD +#define getDH() (((GLOBAL_InNanoCpu ? GLOBAL_nanoEdx: GLOBAL_R_EDX) >> 8) & 0x000000FF) +#else /* PROD */ +IMPORT IU8 getDH IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getDX IPT0(); +#define getDX() c_getDX() +#else /* CCPU */ + +#ifdef PROD +#define getDX() (((GLOBAL_InNanoCpu ? GLOBAL_nanoEdx: GLOBAL_R_EDX)) & 0x0000FFFF) +#else /* PROD */ +IMPORT IU16 getDX IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getEDX IPT0(); +#define getEDX() c_getEDX() +#else /* CCPU */ + +#ifdef PROD +#define getEDX() (((GLOBAL_InNanoCpu ? GLOBAL_nanoEdx: GLOBAL_R_EDX)) & 0xFFFFFFFF) +#else /* PROD */ +IMPORT IU32 getEDX IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getSI IPT0(); +#define getSI() c_getSI() +#else /* CCPU */ + +#ifdef PROD +#define getSI() (((GLOBAL_InNanoCpu ? GLOBAL_nanoEsi: GLOBAL_R_ESI)) & 0x0000FFFF) +#else /* PROD */ +IMPORT IU16 getSI IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getESI IPT0(); +#define getESI() c_getESI() +#else /* CCPU */ + +#ifdef PROD +#define getESI() (((GLOBAL_InNanoCpu ? GLOBAL_nanoEsi: GLOBAL_R_ESI)) & 0xFFFFFFFF) +#else /* PROD */ +IMPORT IU32 getESI IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getDI IPT0(); +#define getDI() c_getDI() +#else /* CCPU */ + +#ifdef PROD +#define getDI() (((GLOBAL_InNanoCpu ? GLOBAL_nanoEdi: GLOBAL_R_EDI)) & 0x0000FFFF) +#else /* PROD */ +IMPORT IU16 getDI IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getEDI IPT0(); +#define getEDI() c_getEDI() +#else /* CCPU */ + +#ifdef PROD +#define getEDI() (((GLOBAL_InNanoCpu ? GLOBAL_nanoEdi: GLOBAL_R_EDI)) & 0xFFFFFFFF) +#else /* PROD */ +IMPORT IU32 getEDI IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getSP IPT0(); +#define getSP() c_getSP() +#else /* CCPU */ + +#ifdef PROD +#define getSP() (*(Cpu.GetSP))() +#else /* PROD */ +IMPORT IU16 getSP IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getESP IPT0(); +#define getESP() c_getESP() +#else /* CCPU */ + +#ifdef PROD +#define getESP() (*(Cpu.GetESP))() +#else /* PROD */ +IMPORT IU32 getESP IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getBP IPT0(); +#define getBP() c_getBP() +#else /* CCPU */ + +#ifdef PROD +#define getBP() (((GLOBAL_InNanoCpu ? GLOBAL_nanoEbp: GLOBAL_R_EBP)) & 0x0000FFFF) +#else /* PROD */ +IMPORT IU16 getBP IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getEBP IPT0(); +#define getEBP() c_getEBP() +#else /* CCPU */ + +#ifdef PROD +#define getEBP() (((GLOBAL_InNanoCpu ? GLOBAL_nanoEbp: GLOBAL_R_EBP)) & 0xFFFFFFFF) +#else /* PROD */ +IMPORT IU32 getEBP IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getIP IPT0(); +#define getIP() c_getIP() +#else /* CCPU */ + +#ifdef PROD +#define getIP() (*(Cpu.GetIP))() +#else /* PROD */ +IMPORT IU16 getIP IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getEIP IPT0(); +#define getEIP() c_getEIP() +#else /* CCPU */ + +#ifdef PROD +#define getEIP() (*(Cpu.GetEIP))() +#else /* PROD */ +IMPORT IU32 getEIP IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getCS IPT0(); +#define getCS() c_getCS() +#else /* CCPU */ + +#ifdef PROD +#define getCS() (*(Cpu.GetCS))() +#else /* PROD */ +IMPORT IU16 getCS IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getSS IPT0(); +#define getSS() c_getSS() +#else /* CCPU */ + +#ifdef PROD +#define getSS() (*(Cpu.GetSS))() +#else /* PROD */ +IMPORT IU16 getSS IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getDS IPT0(); +#define getDS() c_getDS() +#else /* CCPU */ + +#ifdef PROD +#define getDS() (*(Cpu.GetDS))() +#else /* PROD */ +IMPORT IU16 getDS IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getES IPT0(); +#define getES() c_getES() +#else /* CCPU */ + +#ifdef PROD +#define getES() (*(Cpu.GetES))() +#else /* PROD */ +IMPORT IU16 getES IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getFS IPT0(); +#define getFS() c_getFS() +#else /* CCPU */ + +#ifdef PROD +#define getFS() (*(Cpu.GetFS))() +#else /* PROD */ +IMPORT IU16 getFS IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getGS IPT0(); +#define getGS() c_getGS() +#else /* CCPU */ + +#ifdef PROD +#define getGS() (*(Cpu.GetGS))() +#else /* PROD */ +IMPORT IU16 getGS IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getEFLAGS IPT0(); +#define getEFLAGS() c_getEFLAGS() +#else /* CCPU */ + +#ifdef PROD +#define getEFLAGS() (*(Cpu.GetEFLAGS))() +#else /* PROD */ +IMPORT IU32 getEFLAGS IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getSTATUS IPT0(); +#define getSTATUS() c_getSTATUS() +#else /* CCPU */ + +#ifdef PROD +#define getSTATUS() (*(Cpu.GetSTATUS))() +#else /* PROD */ +IMPORT IU16 getSTATUS IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU8 c_getIOPL IPT0(); +#define getIOPL() c_getIOPL() +#else /* CCPU */ + +#ifdef PROD +#define getIOPL() (*(Cpu.GetIOPL))() +#else /* PROD */ +IMPORT IU8 getIOPL IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getMSW IPT0(); +#define getMSW() c_getMSW() +#else /* CCPU */ + +#ifdef PROD +#define getMSW() (*(Cpu.GetMSW))() +#else /* PROD */ +IMPORT IU16 getMSW IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getCR0 IPT0(); +#define getCR0() c_getCR0() +#else /* CCPU */ + +#ifdef PROD +#define getCR0() (*(Cpu.GetCR0))() +#else /* PROD */ +IMPORT IU32 getCR0 IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getCR2 IPT0(); +#define getCR2() c_getCR2() +#else /* CCPU */ + +#ifdef PROD +#define getCR2() (*(Cpu.GetCR2))() +#else /* PROD */ +IMPORT IU32 getCR2 IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getCR3 IPT0(); +#define getCR3() c_getCR3() +#else /* CCPU */ + +#ifdef PROD +#define getCR3() (*(Cpu.GetCR3))() +#else /* PROD */ +IMPORT IU32 getCR3 IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getCF IPT0(); +#define getCF() c_getCF() +#else /* CCPU */ + +#ifdef PROD +#define getCF() (*(Cpu.GetCF))() +#else /* PROD */ +IMPORT IBOOL getCF IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getPF IPT0(); +#define getPF() c_getPF() +#else /* CCPU */ + +#ifdef PROD +#define getPF() (*(Cpu.GetPF))() +#else /* PROD */ +IMPORT IBOOL getPF IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getAF IPT0(); +#define getAF() c_getAF() +#else /* CCPU */ + +#ifdef PROD +#define getAF() (*(Cpu.GetAF))() +#else /* PROD */ +IMPORT IBOOL getAF IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getZF IPT0(); +#define getZF() c_getZF() +#else /* CCPU */ + +#ifdef PROD +#define getZF() (*(Cpu.GetZF))() +#else /* PROD */ +IMPORT IBOOL getZF IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getSF IPT0(); +#define getSF() c_getSF() +#else /* CCPU */ + +#ifdef PROD +#define getSF() (*(Cpu.GetSF))() +#else /* PROD */ +IMPORT IBOOL getSF IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getTF IPT0(); +#define getTF() c_getTF() +#else /* CCPU */ + +#ifdef PROD +#define getTF() (*(Cpu.GetTF))() +#else /* PROD */ +IMPORT IBOOL getTF IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getIF IPT0(); +#define getIF() c_getIF() +#else /* CCPU */ + +#ifdef PROD +#define getIF() (*(Cpu.GetIF))() +#else /* PROD */ +IMPORT IBOOL getIF IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getDF IPT0(); +#define getDF() c_getDF() +#else /* CCPU */ + +#ifdef PROD +#define getDF() (*(Cpu.GetDF))() +#else /* PROD */ +IMPORT IBOOL getDF IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getOF IPT0(); +#define getOF() c_getOF() +#else /* CCPU */ + +#ifdef PROD +#define getOF() (*(Cpu.GetOF))() +#else /* PROD */ +IMPORT IBOOL getOF IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getNT IPT0(); +#define getNT() c_getNT() +#else /* CCPU */ + +#ifdef PROD +#define getNT() (*(Cpu.GetNT))() +#else /* PROD */ +IMPORT IBOOL getNT IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getRF IPT0(); +#define getRF() c_getRF() +#else /* CCPU */ + +#ifdef PROD +#define getRF() (*(Cpu.GetRF))() +#else /* PROD */ +IMPORT IBOOL getRF IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getVM IPT0(); +#define getVM() c_getVM() +#else /* CCPU */ + +#ifdef PROD +#define getVM() (*(Cpu.GetVM))() +#else /* PROD */ +IMPORT IBOOL getVM IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getAC IPT0(); +#define getAC() c_getAC() +#else /* CCPU */ + +#ifdef PROD +#define getAC() (*(Cpu.GetAC))() +#else /* PROD */ +IMPORT IBOOL getAC IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getPE IPT0(); +#define getPE() c_getPE() +#else /* CCPU */ + +#ifdef PROD +#define getPE() (*(Cpu.GetPE))() +#else /* PROD */ +IMPORT IBOOL getPE IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getMP IPT0(); +#define getMP() c_getMP() +#else /* CCPU */ + +#ifdef PROD +#define getMP() (*(Cpu.GetMP))() +#else /* PROD */ +IMPORT IBOOL getMP IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getEM IPT0(); +#define getEM() c_getEM() +#else /* CCPU */ + +#ifdef PROD +#define getEM() (*(Cpu.GetEM))() +#else /* PROD */ +IMPORT IBOOL getEM IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getTS IPT0(); +#define getTS() c_getTS() +#else /* CCPU */ + +#ifdef PROD +#define getTS() (*(Cpu.GetTS))() +#else /* PROD */ +IMPORT IBOOL getTS IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getET IPT0(); +#define getET() c_getET() +#else /* CCPU */ + +#ifdef PROD +#define getET() (*(Cpu.GetET))() +#else /* PROD */ +IMPORT IBOOL getET IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getNE IPT0(); +#define getNE() c_getNE() +#else /* CCPU */ + +#ifdef PROD +#define getNE() (*(Cpu.GetNE))() +#else /* PROD */ +IMPORT IBOOL getNE IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getWP IPT0(); +#define getWP() c_getWP() +#else /* CCPU */ + +#ifdef PROD +#define getWP() (*(Cpu.GetWP))() +#else /* PROD */ +IMPORT IBOOL getWP IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getPG IPT0(); +#define getPG() c_getPG() +#else /* CCPU */ + +#ifdef PROD +#define getPG() (*(Cpu.GetPG))() +#else /* PROD */ +IMPORT IBOOL getPG IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getGDT_BASE IPT0(); +#define getGDT_BASE() c_getGDT_BASE() +#else /* CCPU */ + +#ifdef PROD +#define getGDT_BASE() (*(Cpu.GetGDT_BASE))() +#else /* PROD */ +IMPORT IU32 getGDT_BASE IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getGDT_LIMIT IPT0(); +#define getGDT_LIMIT() c_getGDT_LIMIT() +#else /* CCPU */ + +#ifdef PROD +#define getGDT_LIMIT() (*(Cpu.GetGDT_LIMIT))() +#else /* PROD */ +IMPORT IU16 getGDT_LIMIT IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getIDT_BASE IPT0(); +#define getIDT_BASE() c_getIDT_BASE() +#else /* CCPU */ + +#ifdef PROD +#define getIDT_BASE() (*(Cpu.GetIDT_BASE))() +#else /* PROD */ +IMPORT IU32 getIDT_BASE IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getIDT_LIMIT IPT0(); +#define getIDT_LIMIT() c_getIDT_LIMIT() +#else /* CCPU */ + +#ifdef PROD +#define getIDT_LIMIT() (*(Cpu.GetIDT_LIMIT))() +#else /* PROD */ +IMPORT IU16 getIDT_LIMIT IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getLDT_SELECTOR IPT0(); +#define getLDT_SELECTOR() c_getLDT_SELECTOR() +#else /* CCPU */ + +#ifdef PROD +#define getLDT_SELECTOR() (*(Cpu.GetLDT_SELECTOR))() +#else /* PROD */ +IMPORT IU16 getLDT_SELECTOR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getLDT_BASE IPT0(); +#define getLDT_BASE() c_getLDT_BASE() +#else /* CCPU */ + +#ifdef PROD +#define getLDT_BASE() (*(Cpu.GetLDT_BASE))() +#else /* PROD */ +IMPORT IU32 getLDT_BASE IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getLDT_LIMIT IPT0(); +#define getLDT_LIMIT() c_getLDT_LIMIT() +#else /* CCPU */ + +#ifdef PROD +#define getLDT_LIMIT() (*(Cpu.GetLDT_LIMIT))() +#else /* PROD */ +IMPORT IU32 getLDT_LIMIT IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getTR_SELECTOR IPT0(); +#define getTR_SELECTOR() c_getTR_SELECTOR() +#else /* CCPU */ + +#ifdef PROD +#define getTR_SELECTOR() (*(Cpu.GetTR_SELECTOR))() +#else /* PROD */ +IMPORT IU16 getTR_SELECTOR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getTR_BASE IPT0(); +#define getTR_BASE() c_getTR_BASE() +#else /* CCPU */ + +#ifdef PROD +#define getTR_BASE() (*(Cpu.GetTR_BASE))() +#else /* PROD */ +IMPORT IU32 getTR_BASE IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getTR_LIMIT IPT0(); +#define getTR_LIMIT() c_getTR_LIMIT() +#else /* CCPU */ + +#ifdef PROD +#define getTR_LIMIT() (*(Cpu.GetTR_LIMIT))() +#else /* PROD */ +IMPORT IU32 getTR_LIMIT IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getTR_AR IPT0(); +#define getTR_AR() c_getTR_AR() +#else /* CCPU */ + +#ifdef PROD +#define getTR_AR() (*(Cpu.GetTR_AR))() +#else /* PROD */ +IMPORT IU16 getTR_AR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IUH host_get_q_calib_val IPT0(); +#define host_get_q_calib_val host_get_q_calib_val +#else /* CCPU */ + +#ifdef PROD +#define host_get_q_calib_val (*(Cpu.GetJumpCalibrateVal)) +#else /* PROD */ +IMPORT IUH host_get_q_calib_val IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IUH host_get_jump_restart IPT0(); +#define host_get_jump_restart host_get_jump_restart +#else /* CCPU */ + +#ifdef PROD +#define host_get_jump_restart (*(Cpu.GetJumpInitialVal)) +#else /* PROD */ +IMPORT IUH host_get_jump_restart IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void host_set_jump_restart IPT1(IUH, initialVal); +#define host_set_jump_restart(initialVal) host_set_jump_restart(initialVal) +#else /* CCPU */ + +#ifdef PROD +#define host_set_jump_restart(initialVal) (*(Cpu.SetJumpInitialVal))(initialVal) +#else /* PROD */ +IMPORT void host_set_jump_restart IPT1(IUH, initialVal); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void setEOIEnableAddr IPT1(IU8 *, initialVal); +#define setEOIEnableAddr(initialVal) setEOIEnableAddr(initialVal) +#else /* CCPU */ + +#ifdef PROD +#define setEOIEnableAddr(initialVal) (*(Cpu.SetEOIEnable))(initialVal) +#else /* PROD */ +IMPORT void setEOIEnableAddr IPT1(IU8 *, initialVal); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void setAddProfileDataPtr IPT1(IHP, initialVal); +#define setAddProfileDataPtr(initialVal) setAddProfileDataPtr(initialVal) +#else /* CCPU */ + +#ifdef PROD +#define setAddProfileDataPtr(initialVal) (*(Cpu.SetAddProfileData))(initialVal) +#else /* PROD */ +IMPORT void setAddProfileDataPtr IPT1(IHP, initialVal); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void setMaxProfileDataAddr IPT1(IHP, initialVal); +#define setMaxProfileDataAddr(initialVal) setMaxProfileDataAddr(initialVal) +#else /* CCPU */ + +#ifdef PROD +#define setMaxProfileDataAddr(initialVal) (*(Cpu.SetMaxProfileData))(initialVal) +#else /* PROD */ +IMPORT void setMaxProfileDataAddr IPT1(IHP, initialVal); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IHP getAddProfileDataAddr IPT0(); +#define getAddProfileDataAddr() getAddProfileDataAddr() +#else /* CCPU */ + +#ifdef PROD +#define getAddProfileDataAddr() (*(Cpu.GetAddProfileDataAddr))() +#else /* PROD */ +IMPORT IHP getAddProfileDataAddr IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void PurgeLostIretHookLine IPT2(IU16, lineNum, IU32, depth); +#define PurgeLostIretHookLine(lineNum, depth) PurgeLostIretHookLine(lineNum, depth) +#else /* CCPU */ + +#ifdef PROD +#define PurgeLostIretHookLine(lineNum, depth) (*(Cpu.PurgeLostIretHookLine))(lineNum, depth) +#else /* PROD */ +IMPORT void PurgeLostIretHookLine IPT2(IU16, lineNum, IU32, depth); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void ActivityCheckAfterTimeSlice IPT0(); +#define ActivityCheckAfterTimeSlice() ActivityCheckAfterTimeSlice() +#else /* CCPU */ + +#ifdef PROD +#define ActivityCheckAfterTimeSlice() (*(Cpu.ActivityCheckAfterTimeSlice))() +#else /* PROD */ +IMPORT void ActivityCheckAfterTimeSlice IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL CheckCsSelectorAndEipForCallFarPatching IPT3(IU16, csSel, IU32, eip, IU32 *, pCsBase); +#define CheckCsSelectorAndEipForCallFarPatching(csSel, eip, pCsBase) CheckCsSelectorAndEipForCallFarPatching(csSel, eip, pCsBase) +#else /* CCPU */ + +#ifdef PROD +#define CheckCsSelectorAndEipForCallFarPatching(csSel, eip, pCsBase) (*(Cpu.CheckCsSelectorAndEipForCallFarPatching))(csSel, eip, pCsBase) +#else /* PROD */ +IMPORT IBOOL CheckCsSelectorAndEipForCallFarPatching IPT3(IU16, csSel, IU32, eip, IU32 *, pCsBase); +#endif /*PROD*/ + +#endif /* CCPU */ + +typedef struct CpuStateREC * TypeCpuStateRECptr; +typedef struct ConstraintBitMapREC * TypeConstraintBitMapRECptr; +typedef struct EntryPointCacheREC * TypeEntryPointCacheRECptr; + +struct CpuPrivateVector { + IHP (*GetSadInfoTable) IPT0(); + IBOOL (*SetGDT_BASE_LIMIT) IPT2(IU32, base, IU16, limit); + IBOOL (*SetIDT_BASE_LIMIT) IPT2(IU32, base, IU16, limit); + IBOOL (*SetLDT_BASE_LIMIT) IPT2(IU32, base, IU32, limit); + IBOOL (*SetTR_BASE_LIMIT) IPT2(IU32, base, IU32, limit); + IBOOL (*SetTR_BASE_LIMIT_AR) IPT3(IU32, base, IU32, limit, IU16, ar); + IBOOL (*SetCS_BASE_LIMIT_AR) IPT3(IU32, base, IU32, limit, IU16, ar); + IBOOL (*SetSS_BASE_LIMIT_AR) IPT3(IU32, base, IU32, limit, IU16, ar); + IBOOL (*SetDS_BASE_LIMIT_AR) IPT3(IU32, base, IU32, limit, IU16, ar); + IBOOL (*SetES_BASE_LIMIT_AR) IPT3(IU32, base, IU32, limit, IU16, ar); + IBOOL (*SetFS_BASE_LIMIT_AR) IPT3(IU32, base, IU32, limit, IU16, ar); + IBOOL (*SetGS_BASE_LIMIT_AR) IPT3(IU32, base, IU32, limit, IU16, ar); + void (*SetCS_SELECTOR) IPT1(IU16, val); + void (*SetSS_SELECTOR) IPT1(IU16, val); + void (*SetDS_SELECTOR) IPT1(IU16, val); + void (*SetES_SELECTOR) IPT1(IU16, val); + void (*SetFS_SELECTOR) IPT1(IU16, val); + void (*SetGS_SELECTOR) IPT1(IU16, val); + IU16 (*GetCS_SELECTOR) IPT0(); + IU16 (*GetSS_SELECTOR) IPT0(); + IU16 (*GetDS_SELECTOR) IPT0(); + IU16 (*GetES_SELECTOR) IPT0(); + IU16 (*GetFS_SELECTOR) IPT0(); + IU16 (*GetGS_SELECTOR) IPT0(); + IU32 (*GetCS_BASE) IPT0(); + IU32 (*GetSS_BASE) IPT0(); + IU32 (*GetDS_BASE) IPT0(); + IU32 (*GetES_BASE) IPT0(); + IU32 (*GetFS_BASE) IPT0(); + IU32 (*GetGS_BASE) IPT0(); + IU32 (*GetCS_LIMIT) IPT0(); + IU32 (*GetSS_LIMIT) IPT0(); + IU32 (*GetDS_LIMIT) IPT0(); + IU32 (*GetES_LIMIT) IPT0(); + IU32 (*GetFS_LIMIT) IPT0(); + IU32 (*GetGS_LIMIT) IPT0(); + IU16 (*GetCS_AR) IPT0(); + IU16 (*GetSS_AR) IPT0(); + IU16 (*GetDS_AR) IPT0(); + IU16 (*GetES_AR) IPT0(); + IU16 (*GetFS_AR) IPT0(); + IU16 (*GetGS_AR) IPT0(); + IUH (*GetCPL) IPT0(); + void (*SetCPL) IPT1(IUH, prot); + void (*GetCpuState) IPT1(TypeCpuStateRECptr, state); + void (*SetCpuState) IPT1(TypeCpuStateRECptr, state); + void (*InitNanoCpu) IPT1(IU32, variety); + void (*PrepareBlocksToCompile) IPT1(IU32, variety); + void (*InitRdWrCacheAndCookies) IPT1(IU32, variety); + void (*ResetRdWrCacheAndCookies) IPT1(IU32, variety); + void (*SetRegConstraint) IPT2(IU32, regId, IU8, constraintType); + void (*BpiCompileBPI) IPT1(char *, instructions); + void (*TrashIntelRegisters) IPT0(); + void (*FmDeleteAllStructures) IPT1(IU32, newCR0); + void (*SfForceVideoOff) IPT0(); + void (*SfRestoreVideoState) IPT0(); + void (*SfMarkPageAsParsed) IPT1(IU32, intelPpn); + void (*SfMarkPageAsNotParsed) IPT1(IU32, intelPpn); + void (*SfRemovePciMappings) IPT0(); +}; + +#ifdef CCPU +IMPORT IHP c_getSadInfoTable IPT0(); +#define getSadInfoTable() c_getSadInfoTable() +#else /* CCPU */ + +#ifdef PROD +#define getSadInfoTable() (*((*(Cpu.Private)).GetSadInfoTable))() +#else /* PROD */ +IMPORT IHP getSadInfoTable IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_setGDT_BASE_LIMIT IPT2(IU32, base, IU16, limit); +#define setGDT_BASE_LIMIT(base, limit) c_setGDT_BASE_LIMIT(base, limit) +#else /* CCPU */ + +#ifdef PROD +#define setGDT_BASE_LIMIT(base, limit) (*((*(Cpu.Private)).SetGDT_BASE_LIMIT))(base, limit) +#else /* PROD */ +IMPORT IBOOL setGDT_BASE_LIMIT IPT2(IU32, base, IU16, limit); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_setIDT_BASE_LIMIT IPT2(IU32, base, IU16, limit); +#define setIDT_BASE_LIMIT(base, limit) c_setIDT_BASE_LIMIT(base, limit) +#else /* CCPU */ + +#ifdef PROD +#define setIDT_BASE_LIMIT(base, limit) (*((*(Cpu.Private)).SetIDT_BASE_LIMIT))(base, limit) +#else /* PROD */ +IMPORT IBOOL setIDT_BASE_LIMIT IPT2(IU32, base, IU16, limit); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_setLDT_BASE_LIMIT IPT2(IU32, base, IU32, limit); +#define setLDT_BASE_LIMIT(base, limit) c_setLDT_BASE_LIMIT(base, limit) +#else /* CCPU */ + +#ifdef PROD +#define setLDT_BASE_LIMIT(base, limit) (*((*(Cpu.Private)).SetLDT_BASE_LIMIT))(base, limit) +#else /* PROD */ +IMPORT IBOOL setLDT_BASE_LIMIT IPT2(IU32, base, IU32, limit); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_setTR_BASE_LIMIT IPT2(IU32, base, IU32, limit); +#define setTR_BASE_LIMIT(base, limit) c_setTR_BASE_LIMIT(base, limit) +#else /* CCPU */ + +#ifdef PROD +#define setTR_BASE_LIMIT(base, limit) (*((*(Cpu.Private)).SetTR_BASE_LIMIT))(base, limit) +#else /* PROD */ +IMPORT IBOOL setTR_BASE_LIMIT IPT2(IU32, base, IU32, limit); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_setTR_BASE_LIMIT_AR IPT3(IU32, base, IU32, limit, IU16, ar); +#define setTR_BASE_LIMIT_AR(base, limit, ar) c_setTR_BASE_LIMIT_AR(base, limit, ar) +#else /* CCPU */ + +#ifdef PROD +#define setTR_BASE_LIMIT_AR(base, limit, ar) (*((*(Cpu.Private)).SetTR_BASE_LIMIT_AR))(base, limit, ar) +#else /* PROD */ +IMPORT IBOOL setTR_BASE_LIMIT_AR IPT3(IU32, base, IU32, limit, IU16, ar); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_setCS_BASE_LIMIT_AR IPT3(IU32, base, IU32, limit, IU16, ar); +#define setCS_BASE_LIMIT_AR(base, limit, ar) c_setCS_BASE_LIMIT_AR(base, limit, ar) +#else /* CCPU */ + +#ifdef PROD +#define setCS_BASE_LIMIT_AR(base, limit, ar) (*((*(Cpu.Private)).SetCS_BASE_LIMIT_AR))(base, limit, ar) +#else /* PROD */ +IMPORT IBOOL setCS_BASE_LIMIT_AR IPT3(IU32, base, IU32, limit, IU16, ar); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_setSS_BASE_LIMIT_AR IPT3(IU32, base, IU32, limit, IU16, ar); +#define setSS_BASE_LIMIT_AR(base, limit, ar) c_setSS_BASE_LIMIT_AR(base, limit, ar) +#else /* CCPU */ + +#ifdef PROD +#define setSS_BASE_LIMIT_AR(base, limit, ar) (*((*(Cpu.Private)).SetSS_BASE_LIMIT_AR))(base, limit, ar) +#else /* PROD */ +IMPORT IBOOL setSS_BASE_LIMIT_AR IPT3(IU32, base, IU32, limit, IU16, ar); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_setDS_BASE_LIMIT_AR IPT3(IU32, base, IU32, limit, IU16, ar); +#define setDS_BASE_LIMIT_AR(base, limit, ar) c_setDS_BASE_LIMIT_AR(base, limit, ar) +#else /* CCPU */ + +#ifdef PROD +#define setDS_BASE_LIMIT_AR(base, limit, ar) (*((*(Cpu.Private)).SetDS_BASE_LIMIT_AR))(base, limit, ar) +#else /* PROD */ +IMPORT IBOOL setDS_BASE_LIMIT_AR IPT3(IU32, base, IU32, limit, IU16, ar); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_setES_BASE_LIMIT_AR IPT3(IU32, base, IU32, limit, IU16, ar); +#define setES_BASE_LIMIT_AR(base, limit, ar) c_setES_BASE_LIMIT_AR(base, limit, ar) +#else /* CCPU */ + +#ifdef PROD +#define setES_BASE_LIMIT_AR(base, limit, ar) (*((*(Cpu.Private)).SetES_BASE_LIMIT_AR))(base, limit, ar) +#else /* PROD */ +IMPORT IBOOL setES_BASE_LIMIT_AR IPT3(IU32, base, IU32, limit, IU16, ar); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_setFS_BASE_LIMIT_AR IPT3(IU32, base, IU32, limit, IU16, ar); +#define setFS_BASE_LIMIT_AR(base, limit, ar) c_setFS_BASE_LIMIT_AR(base, limit, ar) +#else /* CCPU */ + +#ifdef PROD +#define setFS_BASE_LIMIT_AR(base, limit, ar) (*((*(Cpu.Private)).SetFS_BASE_LIMIT_AR))(base, limit, ar) +#else /* PROD */ +IMPORT IBOOL setFS_BASE_LIMIT_AR IPT3(IU32, base, IU32, limit, IU16, ar); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_setGS_BASE_LIMIT_AR IPT3(IU32, base, IU32, limit, IU16, ar); +#define setGS_BASE_LIMIT_AR(base, limit, ar) c_setGS_BASE_LIMIT_AR(base, limit, ar) +#else /* CCPU */ + +#ifdef PROD +#define setGS_BASE_LIMIT_AR(base, limit, ar) (*((*(Cpu.Private)).SetGS_BASE_LIMIT_AR))(base, limit, ar) +#else /* PROD */ +IMPORT IBOOL setGS_BASE_LIMIT_AR IPT3(IU32, base, IU32, limit, IU16, ar); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setCS_SELECTOR IPT1(IU16, val); +#define setCS_SELECTOR(val) c_setCS_SELECTOR(val) +#else /* CCPU */ + +#ifdef PROD +#define setCS_SELECTOR(val) (*((*(Cpu.Private)).SetCS_SELECTOR))(val) +#else /* PROD */ +IMPORT void setCS_SELECTOR IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setSS_SELECTOR IPT1(IU16, val); +#define setSS_SELECTOR(val) c_setSS_SELECTOR(val) +#else /* CCPU */ + +#ifdef PROD +#define setSS_SELECTOR(val) (*((*(Cpu.Private)).SetSS_SELECTOR))(val) +#else /* PROD */ +IMPORT void setSS_SELECTOR IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setDS_SELECTOR IPT1(IU16, val); +#define setDS_SELECTOR(val) c_setDS_SELECTOR(val) +#else /* CCPU */ + +#ifdef PROD +#define setDS_SELECTOR(val) (*((*(Cpu.Private)).SetDS_SELECTOR))(val) +#else /* PROD */ +IMPORT void setDS_SELECTOR IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setES_SELECTOR IPT1(IU16, val); +#define setES_SELECTOR(val) c_setES_SELECTOR(val) +#else /* CCPU */ + +#ifdef PROD +#define setES_SELECTOR(val) (*((*(Cpu.Private)).SetES_SELECTOR))(val) +#else /* PROD */ +IMPORT void setES_SELECTOR IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setFS_SELECTOR IPT1(IU16, val); +#define setFS_SELECTOR(val) c_setFS_SELECTOR(val) +#else /* CCPU */ + +#ifdef PROD +#define setFS_SELECTOR(val) (*((*(Cpu.Private)).SetFS_SELECTOR))(val) +#else /* PROD */ +IMPORT void setFS_SELECTOR IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setGS_SELECTOR IPT1(IU16, val); +#define setGS_SELECTOR(val) c_setGS_SELECTOR(val) +#else /* CCPU */ + +#ifdef PROD +#define setGS_SELECTOR(val) (*((*(Cpu.Private)).SetGS_SELECTOR))(val) +#else /* PROD */ +IMPORT void setGS_SELECTOR IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getCS_SELECTOR IPT0(); +#define getCS_SELECTOR() c_getCS_SELECTOR() +#else /* CCPU */ + +#ifdef PROD +#define getCS_SELECTOR() (*((*(Cpu.Private)).GetCS_SELECTOR))() +#else /* PROD */ +IMPORT IU16 getCS_SELECTOR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getSS_SELECTOR IPT0(); +#define getSS_SELECTOR() c_getSS_SELECTOR() +#else /* CCPU */ + +#ifdef PROD +#define getSS_SELECTOR() (*((*(Cpu.Private)).GetSS_SELECTOR))() +#else /* PROD */ +IMPORT IU16 getSS_SELECTOR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getDS_SELECTOR IPT0(); +#define getDS_SELECTOR() c_getDS_SELECTOR() +#else /* CCPU */ + +#ifdef PROD +#define getDS_SELECTOR() (*((*(Cpu.Private)).GetDS_SELECTOR))() +#else /* PROD */ +IMPORT IU16 getDS_SELECTOR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getES_SELECTOR IPT0(); +#define getES_SELECTOR() c_getES_SELECTOR() +#else /* CCPU */ + +#ifdef PROD +#define getES_SELECTOR() (*((*(Cpu.Private)).GetES_SELECTOR))() +#else /* PROD */ +IMPORT IU16 getES_SELECTOR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getFS_SELECTOR IPT0(); +#define getFS_SELECTOR() c_getFS_SELECTOR() +#else /* CCPU */ + +#ifdef PROD +#define getFS_SELECTOR() (*((*(Cpu.Private)).GetFS_SELECTOR))() +#else /* PROD */ +IMPORT IU16 getFS_SELECTOR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getGS_SELECTOR IPT0(); +#define getGS_SELECTOR() c_getGS_SELECTOR() +#else /* CCPU */ + +#ifdef PROD +#define getGS_SELECTOR() (*((*(Cpu.Private)).GetGS_SELECTOR))() +#else /* PROD */ +IMPORT IU16 getGS_SELECTOR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getCS_BASE IPT0(); +#define getCS_BASE() c_getCS_BASE() +#else /* CCPU */ + +#ifdef PROD +#define getCS_BASE() (*((*(Cpu.Private)).GetCS_BASE))() +#else /* PROD */ +IMPORT IU32 getCS_BASE IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getSS_BASE IPT0(); +#define getSS_BASE() c_getSS_BASE() +#else /* CCPU */ + +#ifdef PROD +#define getSS_BASE() (*((*(Cpu.Private)).GetSS_BASE))() +#else /* PROD */ +IMPORT IU32 getSS_BASE IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getDS_BASE IPT0(); +#define getDS_BASE() c_getDS_BASE() +#else /* CCPU */ + +#ifdef PROD +#define getDS_BASE() (*((*(Cpu.Private)).GetDS_BASE))() +#else /* PROD */ +IMPORT IU32 getDS_BASE IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getES_BASE IPT0(); +#define getES_BASE() c_getES_BASE() +#else /* CCPU */ + +#ifdef PROD +#define getES_BASE() (*((*(Cpu.Private)).GetES_BASE))() +#else /* PROD */ +IMPORT IU32 getES_BASE IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getFS_BASE IPT0(); +#define getFS_BASE() c_getFS_BASE() +#else /* CCPU */ + +#ifdef PROD +#define getFS_BASE() (*((*(Cpu.Private)).GetFS_BASE))() +#else /* PROD */ +IMPORT IU32 getFS_BASE IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getGS_BASE IPT0(); +#define getGS_BASE() c_getGS_BASE() +#else /* CCPU */ + +#ifdef PROD +#define getGS_BASE() (*((*(Cpu.Private)).GetGS_BASE))() +#else /* PROD */ +IMPORT IU32 getGS_BASE IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getCS_LIMIT IPT0(); +#define getCS_LIMIT() c_getCS_LIMIT() +#else /* CCPU */ + +#ifdef PROD +#define getCS_LIMIT() (*((*(Cpu.Private)).GetCS_LIMIT))() +#else /* PROD */ +IMPORT IU32 getCS_LIMIT IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getSS_LIMIT IPT0(); +#define getSS_LIMIT() c_getSS_LIMIT() +#else /* CCPU */ + +#ifdef PROD +#define getSS_LIMIT() (*((*(Cpu.Private)).GetSS_LIMIT))() +#else /* PROD */ +IMPORT IU32 getSS_LIMIT IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getDS_LIMIT IPT0(); +#define getDS_LIMIT() c_getDS_LIMIT() +#else /* CCPU */ + +#ifdef PROD +#define getDS_LIMIT() (*((*(Cpu.Private)).GetDS_LIMIT))() +#else /* PROD */ +IMPORT IU32 getDS_LIMIT IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getES_LIMIT IPT0(); +#define getES_LIMIT() c_getES_LIMIT() +#else /* CCPU */ + +#ifdef PROD +#define getES_LIMIT() (*((*(Cpu.Private)).GetES_LIMIT))() +#else /* PROD */ +IMPORT IU32 getES_LIMIT IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getFS_LIMIT IPT0(); +#define getFS_LIMIT() c_getFS_LIMIT() +#else /* CCPU */ + +#ifdef PROD +#define getFS_LIMIT() (*((*(Cpu.Private)).GetFS_LIMIT))() +#else /* PROD */ +IMPORT IU32 getFS_LIMIT IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getGS_LIMIT IPT0(); +#define getGS_LIMIT() c_getGS_LIMIT() +#else /* CCPU */ + +#ifdef PROD +#define getGS_LIMIT() (*((*(Cpu.Private)).GetGS_LIMIT))() +#else /* PROD */ +IMPORT IU32 getGS_LIMIT IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getCS_AR IPT0(); +#define getCS_AR() c_getCS_AR() +#else /* CCPU */ + +#ifdef PROD +#define getCS_AR() (*((*(Cpu.Private)).GetCS_AR))() +#else /* PROD */ +IMPORT IU16 getCS_AR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getSS_AR IPT0(); +#define getSS_AR() c_getSS_AR() +#else /* CCPU */ + +#ifdef PROD +#define getSS_AR() (*((*(Cpu.Private)).GetSS_AR))() +#else /* PROD */ +IMPORT IU16 getSS_AR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getDS_AR IPT0(); +#define getDS_AR() c_getDS_AR() +#else /* CCPU */ + +#ifdef PROD +#define getDS_AR() (*((*(Cpu.Private)).GetDS_AR))() +#else /* PROD */ +IMPORT IU16 getDS_AR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getES_AR IPT0(); +#define getES_AR() c_getES_AR() +#else /* CCPU */ + +#ifdef PROD +#define getES_AR() (*((*(Cpu.Private)).GetES_AR))() +#else /* PROD */ +IMPORT IU16 getES_AR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getFS_AR IPT0(); +#define getFS_AR() c_getFS_AR() +#else /* CCPU */ + +#ifdef PROD +#define getFS_AR() (*((*(Cpu.Private)).GetFS_AR))() +#else /* PROD */ +IMPORT IU16 getFS_AR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getGS_AR IPT0(); +#define getGS_AR() c_getGS_AR() +#else /* CCPU */ + +#ifdef PROD +#define getGS_AR() (*((*(Cpu.Private)).GetGS_AR))() +#else /* PROD */ +IMPORT IU16 getGS_AR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IUH c_getCPL IPT0(); +#define getCPL() c_getCPL() +#else /* CCPU */ + +#ifdef PROD +#define getCPL() (*((*(Cpu.Private)).GetCPL))() +#else /* PROD */ +IMPORT IUH getCPL IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setCPL IPT1(IUH, prot); +#define setCPL(prot) c_setCPL(prot) +#else /* CCPU */ + +#ifdef PROD +#define setCPL(prot) (*((*(Cpu.Private)).SetCPL))(prot) +#else /* PROD */ +IMPORT void setCPL IPT1(IUH, prot); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_getCpuState IPT1(TypeCpuStateRECptr, state); +#define getCpuState(state) c_getCpuState(state) +#else /* CCPU */ + +#ifdef PROD +#define getCpuState(state) (*((*(Cpu.Private)).GetCpuState))(state) +#else /* PROD */ +IMPORT void getCpuState IPT1(TypeCpuStateRECptr, state); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setCpuState IPT1(TypeCpuStateRECptr, state); +#define setCpuState(state) c_setCpuState(state) +#else /* CCPU */ + +#ifdef PROD +#define setCpuState(state) (*((*(Cpu.Private)).SetCpuState))(state) +#else /* PROD */ +IMPORT void setCpuState IPT1(TypeCpuStateRECptr, state); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_InitNanoCpu IPT1(IU32, variety); +#define initNanoCpu(variety) c_InitNanoCpu(variety) +#else /* CCPU */ + +#ifdef PROD +#define initNanoCpu(variety) (*((*(Cpu.Private)).InitNanoCpu))(variety) +#else /* PROD */ +IMPORT void initNanoCpu IPT1(IU32, variety); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_PrepareBlocksToCompile IPT1(IU32, variety); +#define prepareBlocksToCompile(variety) c_PrepareBlocksToCompile(variety) +#else /* CCPU */ + +#ifdef PROD +#define prepareBlocksToCompile(variety) (*((*(Cpu.Private)).PrepareBlocksToCompile))(variety) +#else /* PROD */ +IMPORT void prepareBlocksToCompile IPT1(IU32, variety); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_InitRdWrCacheAndCookies IPT1(IU32, variety); +#define initRdWrCacheAndCookies(variety) c_InitRdWrCacheAndCookies(variety) +#else /* CCPU */ + +#ifdef PROD +#define initRdWrCacheAndCookies(variety) (*((*(Cpu.Private)).InitRdWrCacheAndCookies))(variety) +#else /* PROD */ +IMPORT void initRdWrCacheAndCookies IPT1(IU32, variety); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_ResetRdWrCacheAndCookies IPT1(IU32, variety); +#define resetRdWrCacheAndCookies(variety) c_ResetRdWrCacheAndCookies(variety) +#else /* CCPU */ + +#ifdef PROD +#define resetRdWrCacheAndCookies(variety) (*((*(Cpu.Private)).ResetRdWrCacheAndCookies))(variety) +#else /* PROD */ +IMPORT void resetRdWrCacheAndCookies IPT1(IU32, variety); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setRegConstraint IPT2(IU32, regId, IU8, constraintType); +#define setRegConstraint(regId, constraintType) c_setRegConstraint(regId, constraintType) +#else /* CCPU */ + +#ifdef PROD +#define setRegConstraint(regId, constraintType) (*((*(Cpu.Private)).SetRegConstraint))(regId, constraintType) +#else /* PROD */ +IMPORT void setRegConstraint IPT2(IU32, regId, IU8, constraintType); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU + +#else /* CCPU */ + +#ifdef PROD +#define BpiCompileBPI(instructions) (*((*(Cpu.Private)).BpiCompileBPI))(instructions) +#else /* PROD */ +IMPORT void BpiCompileBPI IPT1(char *, instructions); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_trashIntelRegisters IPT0(); +#define trashIntelregisters c_trashIntelRegisters +#else /* CCPU */ + +#ifdef PROD +#define trashIntelregisters (*((*(Cpu.Private)).TrashIntelRegisters)) +#else /* PROD */ +IMPORT void trashIntelregisters IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU + +#else /* CCPU */ + +#ifdef PROD +#define FmDeleteAllStructures(newCR0) (*((*(Cpu.Private)).FmDeleteAllStructures))(newCR0) +#else /* PROD */ +IMPORT void FmDeleteAllStructures IPT1(IU32, newCR0); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU + +#else /* CCPU */ + +#ifdef PROD +#define sfForceVideoOff (*((*(Cpu.Private)).SfForceVideoOff)) +#else /* PROD */ +IMPORT void sfForceVideoOff IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU + +#else /* CCPU */ + +#ifdef PROD +#define sfRestoreVideoState (*((*(Cpu.Private)).SfRestoreVideoState)) +#else /* PROD */ +IMPORT void sfRestoreVideoState IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU + +#else /* CCPU */ + +#ifdef PROD +#define sfMarkPageAsParsed (*((*(Cpu.Private)).SfMarkPageAsParsed)) +#else /* PROD */ +IMPORT void sfMarkPageAsParsed IPT1(IU32, intelPpn); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU + +#else /* CCPU */ + +#ifdef PROD +#define sfMarkPageAsNotParsed (*((*(Cpu.Private)).SfMarkPageAsNotParsed)) +#else /* PROD */ +IMPORT void sfMarkPageAsNotParsed IPT1(IU32, intelPpn); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU + +#else /* CCPU */ + +#ifdef PROD +#define sfRemovePciMappings (*((*(Cpu.Private)).SfRemovePciMappings)) +#else /* PROD */ +IMPORT void sfRemovePciMappings IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#endif /* _CPU4GEN_H_ */ +/*======================================== END ========================================*/ diff --git a/private/mvdm/softpc.new/base/ccpu386/cpuint_c.h b/private/mvdm/softpc.new/base/ccpu386/cpuint_c.h new file mode 100644 index 000000000..7046a8326 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/cpuint_c.h @@ -0,0 +1,42 @@ +#ifndef _CpuInt_c_h +#define _CpuInt_c_h +#define ChipType (228) +#define WaferRevision (1) +#define nQuickTickerThreads (4) +struct InterruptREC +{ + IBOOL Activity; + IBOOL Reset; + IBOOL PoolsGettingTooBig; + IBOOL Hardware; + IBOOL Interval; + IBOOL AsynchIO; + IBOOL QuickTickerScan; + IBOOL SRCI; + IBOOL Disabled; +}; +struct QuickTickerThreadREC +{ + IBOOL Activity; + IUH triggerPoint; + IUH elapsed; +}; +struct QuickTickerREC +{ + IUH triggerPoint; + IUH elapsed; + IUH perTickDelta; + IUH averageRate; + IUH averageError; + struct QuickTickerThreadREC *threads; +}; +enum CPU_INT_TYPE +{ + CPU_HW_RESET = 0, + CPU_TIMER_TICK = 1, + CPU_HW_INT = 2, + CPU_SAD_INT = 3, + CPU_SIGIO_EVENT = 4, + CPU_NPX_INT = 5 +}; +#endif /* ! _CpuInt_c_h */ diff --git a/private/mvdm/softpc.new/base/ccpu386/cwd.c b/private/mvdm/softpc.new/base/ccpu386/cwd.c new file mode 100644 index 000000000..dc37ebba9 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/cwd.c @@ -0,0 +1,42 @@ +/*[ + +cwd.c + +LOCAL CHAR SccsID[]="@(#)cwd.c 1.5 02/09/94"; + +CWD CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +GLOBAL VOID +CWD() + { + if ( GET_AX() & BIT15_MASK ) /* sign bit set? */ + SET_DX(0xffff); + else + SET_DX(0); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/cwd.h b/private/mvdm/softpc.new/base/ccpu386/cwd.h new file mode 100644 index 000000000..0de4ed754 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/cwd.h @@ -0,0 +1,11 @@ +/* + cwd.h + + Define all CWD CPU functions. + */ + +/* + static char SccsID[]="@(#)cwd.h 1.5 09/01/94"; + */ + +IMPORT VOID CWD IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/cwde.c b/private/mvdm/softpc.new/base/ccpu386/cwde.c new file mode 100644 index 000000000..cc607653a --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/cwde.c @@ -0,0 +1,43 @@ +/*[ + +cwde.c + +LOCAL CHAR SccsID[]="@(#)cwde.c 1.5 02/09/94"; + +CWDE CPU functions. +------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +GLOBAL VOID +CWDE() + { + IU32 temp; + + if ( (temp = GET_AX()) & BIT15_MASK ) /* sign bit set? */ + temp |= 0xffff0000; + SET_EAX(temp); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/cwde.h b/private/mvdm/softpc.new/base/ccpu386/cwde.h new file mode 100644 index 000000000..93c580fd3 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/cwde.h @@ -0,0 +1,11 @@ +/* + cwde.h + + CWDE CPU functions. + */ + +/* + static char SccsID[]="@(#)cwde.h 1.5 09/01/94"; + */ + +IMPORT VOID CWDE IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/daa.c b/private/mvdm/softpc.new/base/ccpu386/daa.c new file mode 100644 index 000000000..be1111bc9 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/daa.c @@ -0,0 +1,65 @@ +/*[ + +daa.c + +LOCAL CHAR SccsID[]="@(#)daa.c 1.5 02/09/94"; + +DAA CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +GLOBAL VOID +DAA() + { + IU8 temp_al; + + temp_al = GET_AL(); + + if ( (temp_al & 0xf) > 9 || GET_AF() ) + { + temp_al += 6; + SET_AF(1); + } + + if ( GET_AL() > 0x99 || GET_CF() ) + { + temp_al += 0x60; + SET_CF(1); + } + + SET_AL(temp_al); + + /* set ZF,SF,PF according to result */ + SET_ZF(temp_al == 0); + SET_SF((temp_al & BIT7_MASK) != 0); + SET_PF(pf_table[temp_al]); + + /* Set undefined flag(s) */ +#ifdef SET_UNDEFINED_FLAG + SET_OF(UNDEFINED_FLAG); +#endif + } diff --git a/private/mvdm/softpc.new/base/ccpu386/daa.h b/private/mvdm/softpc.new/base/ccpu386/daa.h new file mode 100644 index 000000000..5e181f18c --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/daa.h @@ -0,0 +1,11 @@ +/* + daa.h + + Define all DAA CPU functions. + */ + +/* + static char SccsID[]="@(#)daa.h 1.5 09/01/94"; + */ + +IMPORT VOID DAA IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/das.c b/private/mvdm/softpc.new/base/ccpu386/das.c new file mode 100644 index 000000000..57e16bf56 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/das.c @@ -0,0 +1,69 @@ +/*[ + +das.c + +LOCAL CHAR SccsID[]="@(#)das.c 1.5 02/09/94"; + +DAS CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +GLOBAL VOID +DAS() + { + IU8 temp_al; + + temp_al = GET_AL(); + + if ( (temp_al & 0xf) > 9 || GET_AF() ) + { + temp_al -= 6; + SET_AF(1); + } + + if ( GET_AL() > 0x99 || GET_CF() ) + { + temp_al -= 0x60; + SET_CF(1); + } + else if ( temp_al > 0x9f ) + { + SET_CF(1); + } + + SET_AL(temp_al); + + /* set ZF,SF,PF according to result */ + SET_ZF(temp_al == 0); + SET_SF((temp_al & BIT7_MASK) != 0); + SET_PF(pf_table[temp_al]); + + /* Set undefined flag(s) */ +#ifdef SET_UNDEFINED_FLAG + SET_OF(UNDEFINED_FLAG); +#endif + } diff --git a/private/mvdm/softpc.new/base/ccpu386/das.h b/private/mvdm/softpc.new/base/ccpu386/das.h new file mode 100644 index 000000000..3349cefea --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/das.h @@ -0,0 +1,11 @@ +/* + das.h + + Define all DAS CPU functions. + */ + +/* + static char SccsID[]="@(#)das.h 1.5 09/01/94"; + */ + +IMPORT VOID DAS IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/dec.c b/private/mvdm/softpc.new/base/ccpu386/dec.c new file mode 100644 index 000000000..b9a5932a4 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/dec.c @@ -0,0 +1,66 @@ +/*[ + +dec.c + +LOCAL CHAR SccsID[]="@(#)dec.c 1.5 02/09/94"; + +DEC CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'dec'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +DEC + +IFN2( + IU32 *, pop1, /* pntr to dst/src operand */ + IUM8, op_sz /* 8, 16 or 32-bit */ + ) + + + { + IU32 result; + IU32 msb; + IU32 op1_msb; + IU32 res_msb; + + msb = SZ2MSB(op_sz); + + result = *pop1 - 1 & SZ2MASK(op_sz); /* Do operation */ + op1_msb = (*pop1 & msb) != 0; /* Isolate all msb's */ + res_msb = (result & msb) != 0; + /* Determine flags */ + SET_OF(op1_msb & !res_msb); /* OF = op1 & !res */ + /* CF left unchanged */ + SET_PF(pf_table[result & BYTE_MASK]); + SET_ZF(result == 0); + SET_SF((result & msb) != 0); /* SF = MSB */ + SET_AF(((*pop1 ^ result) & BIT4_MASK) != 0); /* AF = Bit 4 carry */ + *pop1 = result; /* Return answer */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/dec.h b/private/mvdm/softpc.new/base/ccpu386/dec.h new file mode 100644 index 000000000..3070822a6 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/dec.h @@ -0,0 +1,17 @@ +/* + dec.h + + Define all DEC CPU functions. + */ + +/* + static char SccsID[]="@(#)dec.h 1.4 02/09/94"; + */ + +IMPORT VOID DEC + +IPT2( + IU32 *, pop1, + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/div.c b/private/mvdm/softpc.new/base/ccpu386/div.c new file mode 100644 index 000000000..773c2bde8 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/div.c @@ -0,0 +1,167 @@ +/*[ + +div.c + +LOCAL CHAR SccsID[]="@(#)div.c 1.8 02/12/95"; + +DIV CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Unsigned Divide. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +DIV8 + +IFN1( + IU32, op2 /* divisor operand */ + ) + + + { + IU32 result; + IU32 op1; + + if ( op2 == 0 ) + Int0(); /* Divide by Zero Exception */ + + op1 = GET_AX(); + result = op1 / op2; /* Do operation */ + + if ( result & 0xff00 ) + Int0(); /* Result doesn't fit in destination */ + + SET_AL(result); /* Store Quotient */ + SET_AH(op1 % op2); /* Store Remainder */ + + /* + * PCBench attempts to distinguish between processors by checking for + * the DIV8 instruction leaving all flags unchanged or clear. It is + * important we behave through this test in the same way as the 'real' + * 486 otherwise the app asks us to perform some unsupported ops. + * + * The real 486 has the following ('undefined') behaviour: + * CF set + * PF = pf_table[op2 - 1] + * AF = !( (op2 & 0xf) == 0 ) + * ZF clear + * SF = (op2 <= 0x80) + * OF = some function of the actual division + * + * Given that the PCBench test is for a simple all-zero case, and that + * implementing the above is a needless overhead on the assembler CPU, + * we take the simplified form of ZF clear, CF set. + */ +#ifdef SET_UNDEFINED_DIV_FLAG + SET_CF(1); + SET_ZF(0); + SET_SF(UNDEFINED_FLAG); + SET_OF(UNDEFINED_FLAG); + SET_PF(UNDEFINED_FLAG); + SET_AF(UNDEFINED_FLAG); +#endif + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Unsigned Divide. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +DIV16 + +IFN1( + IU32, op2 /* divisor operand */ + ) + + + { + IU32 result; + IU32 op1; + + if ( op2 == 0 ) + Int0(); /* Divide by Zero Exception */ + + op1 = (IU32)GET_DX() << 16 | GET_AX(); + result = op1 / op2; /* Do operation */ + + if ( result & 0xffff0000 ) + Int0(); /* Result doesn't fit in destination */ + + SET_AX(result); /* Store Quotient */ + SET_DX(op1 % op2); /* Store Remainder */ + + /* Set all undefined flag(s) */ +#ifdef SET_UNDEFINED_DIV_FLAG + SET_CF(1); /* see DIV8 for flag choice reasoning */ + SET_ZF(0); + SET_OF(UNDEFINED_FLAG); + SET_SF(UNDEFINED_FLAG); + SET_PF(UNDEFINED_FLAG); + SET_AF(UNDEFINED_FLAG); +#endif + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Unsigned Divide. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +DIV32 + +IFN1( + IU32, op2 /* divisor operand */ + ) + + + { + IU32 lr; /* low result */ + IU32 hr; /* high result */ + IU32 rem; /* remainder */ + + if ( op2 == 0 ) + Int0(); /* Divide by Zero Exception */ + + hr = GET_EDX(); + lr = GET_EAX(); + divu64(&hr, &lr, op2, &rem); /* Do operation */ + + if ( hr ) + Int0(); /* Result doesn't fit in destination */ + + SET_EAX(lr); /* Store Quotient */ + SET_EDX(rem); /* Store Remainder */ + + /* Set all undefined flag(s) */ +#ifdef SET_UNDEFINED_DIV_FLAG + SET_CF(1); /* see DIV8 for flag choice reasoning */ + SET_ZF(0); + SET_OF(UNDEFINED_FLAG); + SET_SF(UNDEFINED_FLAG); + SET_PF(UNDEFINED_FLAG); + SET_AF(UNDEFINED_FLAG); +#endif + } diff --git a/private/mvdm/softpc.new/base/ccpu386/div.h b/private/mvdm/softpc.new/base/ccpu386/div.h new file mode 100644 index 000000000..85113bb41 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/div.h @@ -0,0 +1,30 @@ +/* + div.h + + Define all DIV CPU functions. + */ + +/* + static char SccsID[]="@(#)div.h 1.4 02/09/94"; + */ + +IMPORT VOID DIV8 + +IPT1( + IU32, op2 + + ); + +IMPORT VOID DIV16 + +IPT1( + IU32, op2 + + ); + +IMPORT VOID DIV32 + +IPT1( + IU32, op2 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/enter.c b/private/mvdm/softpc.new/base/ccpu386/enter.c new file mode 100644 index 000000000..8d6feac59 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/enter.c @@ -0,0 +1,199 @@ +/*[ + +enter.c + +LOCAL CHAR SccsID[]="@(#)enter.c 1.7 01/19/95"; + +ENTER CPU functions. +-------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +GLOBAL VOID +ENTER16 + +IFN2( + IU32, op1, /* immediate data space required */ + IU32, op2 /* level (indicates parameters which must be copied) */ + ) + + + { + IU32 frame_ptr; + + IS32 p_delta = 0; /* posn of parameter relative to BP */ + IU32 p_addr; /* memory address of parameter */ + IU32 param; /* parameter read via BP */ + + op2 &= 0x1f; /* take level MOD 32 */ + + /* check room on stack for new data */ + validate_stack_space(USE_SP, (ISM32)op2+1); + + /* check old parameters exist */ + if ( op2 > 1 ) + { + /* + BP is pointing to the old stack before the parameters + were actually pushed, we therefore test for the presence + of the parameters by seeing if they could have been pushed, + if so they exist now. + + We have to take care of the READ/WRITE stack addressability + ourselves. Because we have checked the new data can be + written we know the next call can not fail because of access + problems, however we don't yet know if the stack is readable. + + Note we have been a bit severe on the paging unit because we + are asking if the old parameters could be written, if so they + can certainly be read from the point of view of the paging + unit! + */ + /* do access check */ + if ( GET_SS_AR_R() == 0 ) + SF((IU16)0, FAULT_ENTER16_ACCESS); + + /* now we know 'frigged' limit check is ok */ + validate_stack_space(USE_BP, (ISM32)op2-1); + } + + /* all ok - process instruction */ + + spush((IU32)GET_BP()); /* push BP */ + frame_ptr = GetStackPointer(); /* save (E)SP */ + + if ( op2 > 0 ) + { + /* level is >=1, copy stack parameters if they exist */ + while ( --op2 > 0 ) + { + /* copy parameter */ + p_delta -= 2; /* decrement to next parameter */ + + /* calculate parameter address in 32/16bit arithmetic */ + p_addr = get_current_BP() + p_delta; + if ( GET_SS_AR_X() == 0 ) /* look at SS 'B' bit */ + p_addr &= WORD_MASK; + + p_addr += GET_SS_BASE(); + + param = (IU32)vir_read_word(p_addr, NO_PHYSICAL_MAPPING); + spush(param); + } + spush((IU32)frame_ptr); /* save old (E)SP */ + } + + /* update (E)BP */ + set_current_BP(frame_ptr); + + /* finally allocate immediate data space on stack */ + if ( op1 ) + byte_change_SP((IS32)-op1); + } + +GLOBAL VOID +ENTER32 + +IFN2( + IU32, op1, /* immediate data space required */ + IU32, op2 /* level (indicates parameters which must be copied) */ + ) + + + { + IU32 frame_ptr; + + IS32 p_delta = 0; /* posn of parameter relative to EBP */ + IU32 p_addr; /* memory address of parameter */ + IU32 param; /* parameter read via EBP */ + + op2 &= 0x1f; /* take level MOD 32 */ + + /* check room on stack for new data */ + validate_stack_space(USE_SP, (ISM32)op2+1); + + /* check old parameters exist */ + if ( op2 > 1 ) + { + /* + EBP is pointing to the old stack before the parameters + were actually pushed, we therefore test for the presence + of the parameters by seeing if they could have been pushed, + if so they exist now. + + We have to take care of the READ/WRITE stack addressability + ourselves. Because we have checked the new data can be + written we know the next call can not fail because of access + problems, however we don't yet know if the stack is readable. + + Note we have been a bit severe on the paging unit because we + are asking if the old parameters could be written, if so they + can certainly be read from the point of view of the paging + unit! + */ + /* do access check */ + if ( GET_SS_AR_R() == 0 ) + SF((IU16)0, FAULT_ENTER32_ACCESS); + + /* now we know 'frigged' limit check is ok */ + validate_stack_space(USE_BP, (ISM32)op2-1); + } + + /* all ok - process instruction */ + + spush((IU32)GET_EBP()); /* push EBP */ + frame_ptr = GetStackPointer(); /* save (E)SP */ + + if ( op2 > 0 ) + { + /* level is >=1, copy stack parameters if they exist */ + while ( --op2 > 0 ) + { + /* copy parameter */ + p_delta -= 4; /* decrement to next parameter */ + + /* calculate parameter address in 32/16bit arithmetic */ + p_addr = get_current_BP() + p_delta; + if ( GET_SS_AR_X() == 0 ) /* look at SS 'B' bit */ + p_addr &= WORD_MASK; + + p_addr += GET_SS_BASE(); + + param = (IU32)vir_read_dword(p_addr, NO_PHYSICAL_MAPPING); + spush(param); + } + spush((IU32)frame_ptr); /* save old (E)SP */ + } + + /* update (E)BP */ + set_current_BP(frame_ptr); + + /* finally allocate immediate data space on stack */ + if ( op1 ) + byte_change_SP((IS32)-op1); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/enter.h b/private/mvdm/softpc.new/base/ccpu386/enter.h new file mode 100644 index 000000000..9b885b23a --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/enter.h @@ -0,0 +1,25 @@ +/* + enter.h + + Define all ENTER CPU functions. + */ + +/* + static char SccsID[]="@(#)enter.h 1.4 02/09/94"; + */ + +IMPORT VOID ENTER16 + +IPT2( + IU32, op1, + IU32, op2 + + ); + +IMPORT VOID ENTER32 + +IPT2( + IU32, op1, + IU32, op2 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/evid_c.h b/private/mvdm/softpc.new/base/ccpu386/evid_c.h new file mode 100644 index 000000000..7d19ba4f1 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/evid_c.h @@ -0,0 +1,146 @@ +#ifndef _Evid_c_h +#define _Evid_c_h +#define MODE_0 (0) +#define MODE_1 (1) +#define MODE_2 (2) +#define MODE_3 (3) +#define COPY_MODE (4) +#define VGA_SRC (0) +#define RAM_SRC (1) +#define FORWARDS (0) +#define BACKWARDS (1) +#define FWD_BYTE (0) +#define BWD_BYTE (1) +#define FWD_WORD (2) +#define BWD_WORD (3) +#define UNCHAINED (0) +#define CHAIN_2 (1) +#define CHAIN_4 (2) +#define SIMPLE_WRITES (3) +#define FUNC_COPY (0) +#define FUNC_AND (1) +#define FUNC_OR (2) +#define FUNC_XOR (3) +#define FUNC_SHIFT (1) +#define PLANE_ENABLE (1) +#define FUNC_CODE (6) +#define BIT_PROT (8) +#define SET_RESET (16) +#define PROT_OR_FUNC (14) +#define READ_MODE_0 (0) +#define READ_MODE_1 (1) +#define DISABLED_RAM (2) +#define SIMPLE_READ (3) +#define SIMPLE_MARK (0) +#define CGA_MARK (1) +#define UNCHAINED_MARK (2) +#define CHAIN_4_MARK (3) +#define BYTE_SIZE (0) +#define WORD_SIZE (1) +#define DWORD_SIZE (2) +#define STRING_SIZE (3) +#define WRITE_RTN (0) +#define FILL_RTN (1) +#define MOVE_RTN (2) +#define READ_RTN (3) +#define EGA_INDEX (0) +#define VGA_INDEX (1) +#define GC_MASK (2) +#define GC_MASK_FF (3) +#define NUM_UNCHAINED_WRITES (21) +#define NUM_CHAIN4_WRITES (21) +#define NUM_CHAIN2_WRITES (5) +#define NUM_DITHER_WRITES (4) +#define NUM_M0_WRITES (12) +#define NUM_M1_WRITES (1) +#define NUM_M23_WRITES (4) +#define NUM_READ_M0_READS (3) +#define NUM_READ_M1_READS (3) +struct VGAGLOBALSETTINGS +{ + IU32 latches; + IU8 *VGA_rplane; + IU8 *VGA_wplane; + IU8 *scratch; + IU32 sr_masked_val; + IU32 sr_nmask; + IU32 data_and_mask; + IU32 data_xor_mask; + IU32 latch_xor_mask; + IU32 bit_prot_mask; + IU32 plane_enable; + IU32 plane_enable_mask; + IUH *sr_lookup; + IU32*fwd_str_read_addr; + IU32*bwd_str_read_addr; + IU32 dirty_total; + IS32 dirty_low; + IS32 dirty_high; + IU8 *video_copy; + IU32*mark_byte; + IU32*mark_word; + IU32*mark_string; + IU32 read_shift_count; + IU32 read_mapped_plane; + IU32 colour_comp; + IU32 dont_care; + IU32 v7_bank_vid_copy_off; + void *video_base_ls0; + IU8 *route_reg1; + IU8 *route_reg2; + IU8 *screen_ptr; + IU32 rotate; + IU32 calc_data_xor; + IU32 calc_latch_xor; + IU32*read_byte_addr; + IU32 v7_fg_latches; + IUH **GCRegs; + IU8 lastGCindex; + IU8 dither; + IU8 wrmode; + IU8 chain; + IU8 wrstate; +}; +struct EVIDWRITES +{ + IU32*byte_write; + IU32*word_write; + IU32*dword_write; + IU32*byte_fill; + IU32*word_fill; + IU32*dword_fill; + IU32*byte_fwd_move; + IU32*byte_bwd_move; + IU32*word_fwd_move; + IU32*word_bwd_move; + IU32*dword_fwd_move; + IU32*dword_bwd_move; +}; +struct EVIDREADS +{ + IU32*byte_read; + IU32*word_read; + IU32*dword_read; + IU32*str_fwd_read; + IU32*str_bwd_read; +}; +struct EVIDMARKS +{ + IU32*byte_mark; + IU32*word_mark; + IU32*dword_mark; + IU32*str_mark; +}; +enum VidSections +{ + READ_FUNC = 0, + MARK_FUNC = 1, + SIMPLE_FUNC = 2, + DITHER_FUNC = 3, + PORT_FUNC = 4, + GENERIC_WRITES = 5, + UNCHAINED_WRITES = 6, + CHAIN4_WRITES = 7, + CHAIN2_WRITES = 8 +}; +#endif /* ! _Evid_c_h */ diff --git a/private/mvdm/softpc.new/base/ccpu386/evidfunc.h b/private/mvdm/softpc.new/base/ccpu386/evidfunc.h new file mode 100644 index 000000000..9d62cbf62 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/evidfunc.h @@ -0,0 +1,715 @@ +extern void S_2451_SimpleByteWrite IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2454_SimpleWordWrite IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2457_SimpleDwordWrite IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2452_SimpleByteFill IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2455_SimpleWordFill IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2458_SimpleDwordFill IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2453_SimpleByteMove_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2456_SimpleWordMove_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2459_SimpleDwordMove_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2460_SimpleByteMove_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2461_SimpleWordMove_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2462_SimpleDwordMove_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2550_GenericByteWrite IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2553_GenericWordWrite IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2556_GenericDwordWrite IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2551_GenericByteFill IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2554_GenericWordFill IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2557_GenericDwordFill IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2552_GenericByteMove_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2555_GenericWordMove_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2558_GenericDwordMove_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2559_GenericByteMove_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2560_GenericWordMove_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2561_GenericDwordMove_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2463_UnchainedByteWrite_00_0e_01 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2469_UnchainedWordWrite_00_0e_01 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2475_UnchainedDwordWrite_00_0e_01 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2464_UnchainedByteFill_00_0e_01 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2470_UnchainedWordFill_00_0e_01 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2476_UnchainedDwordFill_00_0e_01 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2466_UnchainedByteMove_00_0e_01_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2472_UnchainedWordMove_00_0e_01_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2477_UnchainedDwordMove_00_0e_01_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2517_UnchainedByteMove_00_0e_01_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2520_UnchainedWordMove_00_0e_01_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2523_UnchainedDwordMove_00_0e_01_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2478_UnchainedByteWrite_01_0e_01 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2483_UnchainedWordWrite_01_0e_01 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2488_UnchainedDwordWrite_01_0e_01 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2479_UnchainedByteFill_01_0e_01 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2484_UnchainedWordFill_01_0e_01 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2489_UnchainedDwordFill_01_0e_01 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2480_UnchainedByteMove_01_0e_01_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2485_UnchainedWordMove_01_0e_01_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2490_UnchainedDwordMove_01_0e_01_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2524_UnchainedByteMove_01_0e_01_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2527_UnchainedWordMove_01_0e_01_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2530_UnchainedDwordMove_01_0e_01_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2491_UnchainedByteWrite_02_0e_01 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2496_UnchainedWordWrite_02_0e_01 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2501_UnchainedDwordWrite_02_0e_01 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2492_UnchainedByteFill_02_0e_01 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2497_UnchainedWordFill_02_0e_01 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2502_UnchainedDwordFill_02_0e_01 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2493_UnchainedByteMove_02_0e_01_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2498_UnchainedWordMove_02_0e_01_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2503_UnchainedDwordMove_02_0e_01_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2531_UnchainedByteMove_02_0e_01_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2534_UnchainedWordMove_02_0e_01_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2537_UnchainedDwordMove_02_0e_01_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2504_UnchainedByteWrite_03_0e_01 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2509_UnchainedWordWrite_03_0e_01 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2514_UnchainedDwordWrite_03_0e_01 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2505_UnchainedByteFill_03_0e_01 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2510_UnchainedWordFill_03_0e_01 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2515_UnchainedDwordFill_03_0e_01 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2506_UnchainedByteMove_03_0e_01_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2511_UnchainedWordMove_03_0e_01_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2516_UnchainedDwordMove_03_0e_01_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2538_UnchainedByteMove_03_0e_01_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2541_UnchainedWordMove_03_0e_01_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2544_UnchainedDwordMove_03_0e_01_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2936_Chain2ByteWrite_00 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2942_Chain2WordWrite_00 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2948_Chain2DwordWrite_00 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2938_Chain2ByteFill_00 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2944_Chain2WordFill_00 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2950_Chain2DwordFill_00 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2940_Chain2ByteMove_00_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2946_Chain2WordMove_00_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2952_Chain2DwordMove_00_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3017_Chain2ByteMove_00_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3019_Chain2WordMove_00_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3021_Chain2DwordMove_00_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2954_Chain2ByteWrite_01 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2960_Chain2WordWrite_01 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2966_Chain2DwordWrite_01 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2956_Chain2ByteFill_01 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2962_Chain2WordFill_01 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2968_Chain2DwordFill_01 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2958_Chain2ByteMove_01_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2964_Chain2WordMove_01_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2970_Chain2DwordMove_01_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3023_Chain2ByteMove_01_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3025_Chain2WordMove_01_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3027_Chain2DwordMove_01_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2972_Chain2ByteWrite_02 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2978_Chain2WordWrite_02 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2984_Chain2DwordWrite_02 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2974_Chain2ByteFill_02 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2980_Chain2WordFill_02 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2986_Chain2DwordFill_02 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2976_Chain2ByteMove_02_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2982_Chain2WordMove_02_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2988_Chain2DwordMove_02_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3029_Chain2ByteMove_02_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3031_Chain2WordMove_02_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3033_Chain2DwordMove_02_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2990_Chain2ByteWrite_03 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2996_Chain2WordWrite_03 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_3002_Chain2DwordWrite_03 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2992_Chain2ByteFill_03 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2998_Chain2WordFill_03 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_3004_Chain2DwordFill_03 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2994_Chain2ByteMove_03_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3000_Chain2WordMove_03_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3006_Chain2DwordMove_03_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3035_Chain2ByteMove_03_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3037_Chain2WordMove_03_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3039_Chain2DwordMove_03_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3008_Chain2ByteWrite_Copy IPT2(IU32, eaOff, IU8, eaVal); +extern void S_3011_Chain2WordWrite_Copy IPT2(IU32, eaOff, IU16, eaVal); +extern void S_3014_Chain2DwordWrite_Copy IPT2(IU32, eaOff, IU32, eaVal); +extern void S_3009_Chain2ByteFill_Copy IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_3012_Chain2WordFill_Copy IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_3015_Chain2DwordFill_Copy IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_3010_Chain2ByteMove_Copy_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3013_Chain2WordMove_Copy_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3016_Chain2DwordMove_Copy_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3041_Chain2ByteMove_Copy_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3042_Chain2WordMove_Copy_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3043_Chain2DwordMove_Copy_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2562_UnchainedByteWrite_00_08_00 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2617_UnchainedWordWrite_00_08_00 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2672_UnchainedDwordWrite_00_08_00 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2574_UnchainedByteFill_00_08_00 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2629_UnchainedWordFill_00_08_00 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2684_UnchainedDwordFill_00_08_00 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2587_UnchainedByteMove_00_08_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2642_UnchainedWordMove_00_08_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2696_UnchainedDwordMove_00_08_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2813_UnchainedByteMove_00_08_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2843_UnchainedWordMove_00_08_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2873_UnchainedDwordMove_00_08_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2563_UnchainedByteWrite_00_09_00 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2618_UnchainedWordWrite_00_09_00 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2673_UnchainedDwordWrite_00_09_00 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2575_UnchainedByteFill_00_09_00 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2630_UnchainedWordFill_00_09_00 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2685_UnchainedDwordFill_00_09_00 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2590_UnchainedByteMove_00_09_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2645_UnchainedWordMove_00_09_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2697_UnchainedDwordMove_00_09_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2816_UnchainedByteMove_00_09_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2846_UnchainedWordMove_00_09_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2874_UnchainedDwordMove_00_09_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2564_UnchainedByteWrite_00_0e_00 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2619_UnchainedWordWrite_00_0e_00 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2674_UnchainedDwordWrite_00_0e_00 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2577_UnchainedByteFill_00_0e_00 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2632_UnchainedWordFill_00_0e_00 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2686_UnchainedDwordFill_00_0e_00 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2592_UnchainedByteMove_00_0e_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2647_UnchainedWordMove_00_0e_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2698_UnchainedDwordMove_00_0e_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2818_UnchainedByteMove_00_0e_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2848_UnchainedWordMove_00_0e_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2875_UnchainedDwordMove_00_0e_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2565_UnchainedByteWrite_00_0f_00 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2620_UnchainedWordWrite_00_0f_00 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2675_UnchainedDwordWrite_00_0f_00 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2578_UnchainedByteFill_00_0f_00 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2633_UnchainedWordFill_00_0f_00 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2687_UnchainedDwordFill_00_0f_00 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2595_UnchainedByteMove_00_0f_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2650_UnchainedWordMove_00_0f_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2699_UnchainedDwordMove_00_0f_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2821_UnchainedByteMove_00_0f_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2851_UnchainedWordMove_00_0f_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2876_UnchainedDwordMove_00_0f_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2566_UnchainedByteWrite_00_10_00 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2621_UnchainedWordWrite_00_10_00 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2676_UnchainedDwordWrite_00_10_00 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2579_UnchainedByteFill_00_10_00 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2634_UnchainedWordFill_00_10_00 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2688_UnchainedDwordFill_00_10_00 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2597_UnchainedByteMove_00_10_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2652_UnchainedWordMove_00_10_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2700_UnchainedDwordMove_00_10_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2823_UnchainedByteMove_00_10_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2853_UnchainedWordMove_00_10_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2877_UnchainedDwordMove_00_10_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2567_UnchainedByteWrite_00_11_00 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2622_UnchainedWordWrite_00_11_00 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2677_UnchainedDwordWrite_00_11_00 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2580_UnchainedByteFill_00_11_00 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2635_UnchainedWordFill_00_11_00 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2689_UnchainedDwordFill_00_11_00 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2600_UnchainedByteMove_00_11_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2655_UnchainedWordMove_00_11_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2701_UnchainedDwordMove_00_11_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2826_UnchainedByteMove_00_11_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2856_UnchainedWordMove_00_11_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2878_UnchainedDwordMove_00_11_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2568_UnchainedByteWrite_00_16_00 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2623_UnchainedWordWrite_00_16_00 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2678_UnchainedDwordWrite_00_16_00 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2581_UnchainedByteFill_00_16_00 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2636_UnchainedWordFill_00_16_00 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2690_UnchainedDwordFill_00_16_00 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2602_UnchainedByteMove_00_16_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2657_UnchainedWordMove_00_16_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2702_UnchainedDwordMove_00_16_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2828_UnchainedByteMove_00_16_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2858_UnchainedWordMove_00_16_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2879_UnchainedDwordMove_00_16_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2569_UnchainedByteWrite_00_17_00 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2624_UnchainedWordWrite_00_17_00 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2679_UnchainedDwordWrite_00_17_00 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2582_UnchainedByteFill_00_17_00 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2637_UnchainedWordFill_00_17_00 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2691_UnchainedDwordFill_00_17_00 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2605_UnchainedByteMove_00_17_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2660_UnchainedWordMove_00_17_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2703_UnchainedDwordMove_00_17_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2831_UnchainedByteMove_00_17_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2861_UnchainedWordMove_00_17_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2880_UnchainedDwordMove_00_17_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2570_UnchainedByteWrite_00_18_00 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2625_UnchainedWordWrite_00_18_00 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2680_UnchainedDwordWrite_00_18_00 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2583_UnchainedByteFill_00_18_00 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2638_UnchainedWordFill_00_18_00 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2692_UnchainedDwordFill_00_18_00 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2607_UnchainedByteMove_00_18_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2662_UnchainedWordMove_00_18_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2704_UnchainedDwordMove_00_18_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2833_UnchainedByteMove_00_18_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2863_UnchainedWordMove_00_18_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2881_UnchainedDwordMove_00_18_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2571_UnchainedByteWrite_00_19_00 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2626_UnchainedWordWrite_00_19_00 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2681_UnchainedDwordWrite_00_19_00 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2584_UnchainedByteFill_00_19_00 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2639_UnchainedWordFill_00_19_00 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2693_UnchainedDwordFill_00_19_00 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2610_UnchainedByteMove_00_19_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2665_UnchainedWordMove_00_19_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2705_UnchainedDwordMove_00_19_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2836_UnchainedByteMove_00_19_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2866_UnchainedWordMove_00_19_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2882_UnchainedDwordMove_00_19_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2572_UnchainedByteWrite_00_1e_00 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2627_UnchainedWordWrite_00_1e_00 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2682_UnchainedDwordWrite_00_1e_00 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2585_UnchainedByteFill_00_1e_00 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2640_UnchainedWordFill_00_1e_00 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2694_UnchainedDwordFill_00_1e_00 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2612_UnchainedByteMove_00_1e_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2667_UnchainedWordMove_00_1e_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2706_UnchainedDwordMove_00_1e_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2838_UnchainedByteMove_00_1e_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2868_UnchainedWordMove_00_1e_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2883_UnchainedDwordMove_00_1e_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2573_UnchainedByteWrite_00_1f_00 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2628_UnchainedWordWrite_00_1f_00 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2683_UnchainedDwordWrite_00_1f_00 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2586_UnchainedByteFill_00_1f_00 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2641_UnchainedWordFill_00_1f_00 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2695_UnchainedDwordFill_00_1f_00 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2615_UnchainedByteMove_00_1f_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2670_UnchainedWordMove_00_1f_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2707_UnchainedDwordMove_00_1f_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2841_UnchainedByteMove_00_1f_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2871_UnchainedWordMove_00_1f_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2884_UnchainedDwordMove_00_1f_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2708_UnchainedByteWrite_01_00_00 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2711_UnchainedWordWrite_01_00_00 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2714_UnchainedDwordWrite_01_00_00 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2709_UnchainedByteFill_01_00_00 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2712_UnchainedWordFill_01_00_00 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2715_UnchainedDwordFill_01_00_00 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2710_UnchainedByteMove_01_00_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2713_UnchainedWordMove_01_00_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2716_UnchainedDwordMove_01_00_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2885_UnchainedByteMove_01_00_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2886_UnchainedWordMove_01_00_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2887_UnchainedDwordMove_01_00_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2717_UnchainedByteWrite_02_08_00 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2735_UnchainedWordWrite_02_08_00 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2753_UnchainedDwordWrite_02_08_00 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2721_UnchainedByteFill_02_08_00 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2739_UnchainedWordFill_02_08_00 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2757_UnchainedDwordFill_02_08_00 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2725_UnchainedByteMove_02_08_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2743_UnchainedWordMove_02_08_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2761_UnchainedDwordMove_02_08_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2888_UnchainedByteMove_02_08_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2898_UnchainedWordMove_02_08_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2908_UnchainedDwordMove_02_08_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2718_UnchainedByteWrite_02_09_00 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2736_UnchainedWordWrite_02_09_00 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2754_UnchainedDwordWrite_02_09_00 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2722_UnchainedByteFill_02_09_00 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2740_UnchainedWordFill_02_09_00 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2758_UnchainedDwordFill_02_09_00 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2728_UnchainedByteMove_02_09_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2746_UnchainedWordMove_02_09_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2762_UnchainedDwordMove_02_09_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2891_UnchainedByteMove_02_09_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2901_UnchainedWordMove_02_09_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2909_UnchainedDwordMove_02_09_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2719_UnchainedByteWrite_02_0e_00 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2737_UnchainedWordWrite_02_0e_00 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2755_UnchainedDwordWrite_02_0e_00 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2723_UnchainedByteFill_02_0e_00 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2741_UnchainedWordFill_02_0e_00 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2759_UnchainedDwordFill_02_0e_00 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2730_UnchainedByteMove_02_0e_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2748_UnchainedWordMove_02_0e_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2763_UnchainedDwordMove_02_0e_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2893_UnchainedByteMove_02_0e_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2903_UnchainedWordMove_02_0e_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2910_UnchainedDwordMove_02_0e_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2720_UnchainedByteWrite_02_0f_00 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2738_UnchainedWordWrite_02_0f_00 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2756_UnchainedDwordWrite_02_0f_00 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2724_UnchainedByteFill_02_0f_00 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2742_UnchainedWordFill_02_0f_00 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2760_UnchainedDwordFill_02_0f_00 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2733_UnchainedByteMove_02_0f_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2751_UnchainedWordMove_02_0f_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2764_UnchainedDwordMove_02_0f_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2896_UnchainedByteMove_02_0f_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2906_UnchainedWordMove_02_0f_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2911_UnchainedDwordMove_02_0f_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2765_UnchainedByteWrite_03_08_00 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2783_UnchainedWordWrite_03_08_00 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2801_UnchainedDwordWrite_03_08_00 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2769_UnchainedByteFill_03_08_00 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2787_UnchainedWordFill_03_08_00 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2805_UnchainedDwordFill_03_08_00 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2773_UnchainedByteMove_03_08_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2791_UnchainedWordMove_03_08_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2809_UnchainedDwordMove_03_08_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2912_UnchainedByteMove_03_08_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2922_UnchainedWordMove_03_08_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2932_UnchainedDwordMove_03_08_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2766_UnchainedByteWrite_03_09_00 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2784_UnchainedWordWrite_03_09_00 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2802_UnchainedDwordWrite_03_09_00 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2770_UnchainedByteFill_03_09_00 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2788_UnchainedWordFill_03_09_00 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2806_UnchainedDwordFill_03_09_00 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2776_UnchainedByteMove_03_09_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2794_UnchainedWordMove_03_09_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2810_UnchainedDwordMove_03_09_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2915_UnchainedByteMove_03_09_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2925_UnchainedWordMove_03_09_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2933_UnchainedDwordMove_03_09_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2767_UnchainedByteWrite_03_0e_00 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2785_UnchainedWordWrite_03_0e_00 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2803_UnchainedDwordWrite_03_0e_00 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2771_UnchainedByteFill_03_0e_00 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2789_UnchainedWordFill_03_0e_00 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2807_UnchainedDwordFill_03_0e_00 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2778_UnchainedByteMove_03_0e_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2796_UnchainedWordMove_03_0e_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2811_UnchainedDwordMove_03_0e_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2917_UnchainedByteMove_03_0e_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2927_UnchainedWordMove_03_0e_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2934_UnchainedDwordMove_03_0e_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2768_UnchainedByteWrite_03_0f_00 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2786_UnchainedWordWrite_03_0f_00 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2804_UnchainedDwordWrite_03_0f_00 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2772_UnchainedByteFill_03_0f_00 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2790_UnchainedWordFill_03_0f_00 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2808_UnchainedDwordFill_03_0f_00 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2781_UnchainedByteMove_03_0f_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2799_UnchainedWordMove_03_0f_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2812_UnchainedDwordMove_03_0f_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2920_UnchainedByteMove_03_0f_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2930_UnchainedWordMove_03_0f_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2935_UnchainedDwordMove_03_0f_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3044_Chain4ByteWrite_00_08 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_3094_Chain4WordWrite_00_08 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_3143_Chain4DwordWrite_00_08 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_3056_Chain4ByteFill_00_08 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_3106_Chain4WordFill_00_08 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_3155_Chain4DwordFill_00_08 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_3070_Chain4ByteMove_00_08_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3119_Chain4WordMove_00_08_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3167_Chain4DwordMove_00_08_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3277_Chain4ByteMove_00_08_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3301_Chain4WordMove_00_08_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3325_Chain4DwordMove_00_08_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3045_Chain4ByteWrite_00_09 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_3095_Chain4WordWrite_00_09 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_3144_Chain4DwordWrite_00_09 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_3058_Chain4ByteFill_00_09 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_3107_Chain4WordFill_00_09 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_3156_Chain4DwordFill_00_09 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_3072_Chain4ByteMove_00_09_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3121_Chain4WordMove_00_09_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3168_Chain4DwordMove_00_09_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3279_Chain4ByteMove_00_09_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3303_Chain4WordMove_00_09_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3326_Chain4DwordMove_00_09_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3046_Chain4ByteWrite_00_0e IPT2(IU32, eaOff, IU8, eaVal); +extern void S_3096_Chain4WordWrite_00_0e IPT2(IU32, eaOff, IU16, eaVal); +extern void S_3145_Chain4DwordWrite_00_0e IPT2(IU32, eaOff, IU32, eaVal); +extern void S_3060_Chain4ByteFill_00_0e IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_3109_Chain4WordFill_00_0e IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_3157_Chain4DwordFill_00_0e IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_3074_Chain4ByteMove_00_0e_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3123_Chain4WordMove_00_0e_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3169_Chain4DwordMove_00_0e_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3281_Chain4ByteMove_00_0e_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3305_Chain4WordMove_00_0e_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3327_Chain4DwordMove_00_0e_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3047_Chain4ByteWrite_00_0f IPT2(IU32, eaOff, IU8, eaVal); +extern void S_3097_Chain4WordWrite_00_0f IPT2(IU32, eaOff, IU16, eaVal); +extern void S_3146_Chain4DwordWrite_00_0f IPT2(IU32, eaOff, IU32, eaVal); +extern void S_3061_Chain4ByteFill_00_0f IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_3110_Chain4WordFill_00_0f IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_3158_Chain4DwordFill_00_0f IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_3076_Chain4ByteMove_00_0f_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3125_Chain4WordMove_00_0f_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3170_Chain4DwordMove_00_0f_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3283_Chain4ByteMove_00_0f_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3307_Chain4WordMove_00_0f_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3328_Chain4DwordMove_00_0f_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3048_Chain4ByteWrite_00_10 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_3098_Chain4WordWrite_00_10 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_3147_Chain4DwordWrite_00_10 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_3062_Chain4ByteFill_00_10 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_3111_Chain4WordFill_00_10 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_3159_Chain4DwordFill_00_10 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_3078_Chain4ByteMove_00_10_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3127_Chain4WordMove_00_10_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3171_Chain4DwordMove_00_10_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3285_Chain4ByteMove_00_10_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3309_Chain4WordMove_00_10_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3329_Chain4DwordMove_00_10_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3049_Chain4ByteWrite_00_11 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_3099_Chain4WordWrite_00_11 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_3148_Chain4DwordWrite_00_11 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_3063_Chain4ByteFill_00_11 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_3112_Chain4WordFill_00_11 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_3160_Chain4DwordFill_00_11 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_3080_Chain4ByteMove_00_11_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3129_Chain4WordMove_00_11_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3172_Chain4DwordMove_00_11_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3287_Chain4ByteMove_00_11_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3311_Chain4WordMove_00_11_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3330_Chain4DwordMove_00_11_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3050_Chain4ByteWrite_00_16 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_3100_Chain4WordWrite_00_16 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_3149_Chain4DwordWrite_00_16 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_3064_Chain4ByteFill_00_16 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_3113_Chain4WordFill_00_16 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_3161_Chain4DwordFill_00_16 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_3082_Chain4ByteMove_00_16_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3131_Chain4WordMove_00_16_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3173_Chain4DwordMove_00_16_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3289_Chain4ByteMove_00_16_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3313_Chain4WordMove_00_16_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3331_Chain4DwordMove_00_16_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3051_Chain4ByteWrite_00_17 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_3101_Chain4WordWrite_00_17 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_3150_Chain4DwordWrite_00_17 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_3065_Chain4ByteFill_00_17 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_3114_Chain4WordFill_00_17 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_3162_Chain4DwordFill_00_17 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_3084_Chain4ByteMove_00_17_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3133_Chain4WordMove_00_17_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3174_Chain4DwordMove_00_17_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3291_Chain4ByteMove_00_17_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3315_Chain4WordMove_00_17_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3332_Chain4DwordMove_00_17_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3052_Chain4ByteWrite_00_18 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_3102_Chain4WordWrite_00_18 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_3151_Chain4DwordWrite_00_18 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_3066_Chain4ByteFill_00_18 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_3115_Chain4WordFill_00_18 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_3163_Chain4DwordFill_00_18 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_3086_Chain4ByteMove_00_18_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3135_Chain4WordMove_00_18_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3175_Chain4DwordMove_00_18_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3293_Chain4ByteMove_00_18_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3317_Chain4WordMove_00_18_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3333_Chain4DwordMove_00_18_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3053_Chain4ByteWrite_00_19 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_3103_Chain4WordWrite_00_19 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_3152_Chain4DwordWrite_00_19 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_3067_Chain4ByteFill_00_19 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_3116_Chain4WordFill_00_19 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_3164_Chain4DwordFill_00_19 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_3088_Chain4ByteMove_00_19_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3137_Chain4WordMove_00_19_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3176_Chain4DwordMove_00_19_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3295_Chain4ByteMove_00_19_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3319_Chain4WordMove_00_19_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3334_Chain4DwordMove_00_19_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3054_Chain4ByteWrite_00_1e IPT2(IU32, eaOff, IU8, eaVal); +extern void S_3104_Chain4WordWrite_00_1e IPT2(IU32, eaOff, IU16, eaVal); +extern void S_3153_Chain4DwordWrite_00_1e IPT2(IU32, eaOff, IU32, eaVal); +extern void S_3068_Chain4ByteFill_00_1e IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_3117_Chain4WordFill_00_1e IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_3165_Chain4DwordFill_00_1e IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_3090_Chain4ByteMove_00_1e_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3139_Chain4WordMove_00_1e_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3177_Chain4DwordMove_00_1e_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3297_Chain4ByteMove_00_1e_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3321_Chain4WordMove_00_1e_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3335_Chain4DwordMove_00_1e_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3055_Chain4ByteWrite_00_1f IPT2(IU32, eaOff, IU8, eaVal); +extern void S_3105_Chain4WordWrite_00_1f IPT2(IU32, eaOff, IU16, eaVal); +extern void S_3154_Chain4DwordWrite_00_1f IPT2(IU32, eaOff, IU32, eaVal); +extern void S_3069_Chain4ByteFill_00_1f IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_3118_Chain4WordFill_00_1f IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_3166_Chain4DwordFill_00_1f IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_3092_Chain4ByteMove_00_1f_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3141_Chain4WordMove_00_1f_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3178_Chain4DwordMove_00_1f_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3299_Chain4ByteMove_00_1f_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3323_Chain4WordMove_00_1f_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3336_Chain4DwordMove_00_1f_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3179_Chain4ByteWrite_01_00 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_3183_Chain4WordWrite_01_00 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_3186_Chain4DwordWrite_01_00 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_3180_Chain4ByteFill_01_00 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_3184_Chain4WordFill_01_00 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_3187_Chain4DwordFill_01_00 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_3181_Chain4ByteMove_01_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3185_Chain4WordMove_01_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3188_Chain4DwordMove_01_00_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3337_Chain4ByteMove_01_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3339_Chain4WordMove_01_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3340_Chain4DwordMove_01_00_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3189_Chain4ByteWrite_02_08 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_3205_Chain4WordWrite_02_08 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_3221_Chain4DwordWrite_02_08 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_3193_Chain4ByteFill_02_08 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_3209_Chain4WordFill_02_08 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_3225_Chain4DwordFill_02_08 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_3197_Chain4ByteMove_02_08_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3213_Chain4WordMove_02_08_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3229_Chain4DwordMove_02_08_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3341_Chain4ByteMove_02_08_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3349_Chain4WordMove_02_08_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3357_Chain4DwordMove_02_08_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3190_Chain4ByteWrite_02_09 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_3206_Chain4WordWrite_02_09 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_3222_Chain4DwordWrite_02_09 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_3194_Chain4ByteFill_02_09 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_3210_Chain4WordFill_02_09 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_3226_Chain4DwordFill_02_09 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_3199_Chain4ByteMove_02_09_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3215_Chain4WordMove_02_09_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3230_Chain4DwordMove_02_09_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3343_Chain4ByteMove_02_09_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3351_Chain4WordMove_02_09_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3358_Chain4DwordMove_02_09_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3191_Chain4ByteWrite_02_0e IPT2(IU32, eaOff, IU8, eaVal); +extern void S_3207_Chain4WordWrite_02_0e IPT2(IU32, eaOff, IU16, eaVal); +extern void S_3223_Chain4DwordWrite_02_0e IPT2(IU32, eaOff, IU32, eaVal); +extern void S_3195_Chain4ByteFill_02_0e IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_3211_Chain4WordFill_02_0e IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_3227_Chain4DwordFill_02_0e IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_3201_Chain4ByteMove_02_0e_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3217_Chain4WordMove_02_0e_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3231_Chain4DwordMove_02_0e_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3345_Chain4ByteMove_02_0e_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3353_Chain4WordMove_02_0e_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3359_Chain4DwordMove_02_0e_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3192_Chain4ByteWrite_02_0f IPT2(IU32, eaOff, IU8, eaVal); +extern void S_3208_Chain4WordWrite_02_0f IPT2(IU32, eaOff, IU16, eaVal); +extern void S_3224_Chain4DwordWrite_02_0f IPT2(IU32, eaOff, IU32, eaVal); +extern void S_3196_Chain4ByteFill_02_0f IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_3212_Chain4WordFill_02_0f IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_3228_Chain4DwordFill_02_0f IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_3203_Chain4ByteMove_02_0f_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3219_Chain4WordMove_02_0f_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3232_Chain4DwordMove_02_0f_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3347_Chain4ByteMove_02_0f_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3355_Chain4WordMove_02_0f_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3360_Chain4DwordMove_02_0f_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3233_Chain4ByteWrite_03_08 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_3249_Chain4WordWrite_03_08 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_3265_Chain4DwordWrite_03_08 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_3237_Chain4ByteFill_03_08 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_3253_Chain4WordFill_03_08 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_3269_Chain4DwordFill_03_08 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_3241_Chain4ByteMove_03_08_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3257_Chain4WordMove_03_08_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3273_Chain4DwordMove_03_08_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3361_Chain4ByteMove_03_08_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3369_Chain4WordMove_03_08_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3377_Chain4DwordMove_03_08_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3234_Chain4ByteWrite_03_09 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_3250_Chain4WordWrite_03_09 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_3266_Chain4DwordWrite_03_09 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_3238_Chain4ByteFill_03_09 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_3254_Chain4WordFill_03_09 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_3270_Chain4DwordFill_03_09 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_3243_Chain4ByteMove_03_09_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3259_Chain4WordMove_03_09_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3274_Chain4DwordMove_03_09_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3363_Chain4ByteMove_03_09_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3371_Chain4WordMove_03_09_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3378_Chain4DwordMove_03_09_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3235_Chain4ByteWrite_03_0e IPT2(IU32, eaOff, IU8, eaVal); +extern void S_3251_Chain4WordWrite_03_0e IPT2(IU32, eaOff, IU16, eaVal); +extern void S_3267_Chain4DwordWrite_03_0e IPT2(IU32, eaOff, IU32, eaVal); +extern void S_3239_Chain4ByteFill_03_0e IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_3255_Chain4WordFill_03_0e IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_3271_Chain4DwordFill_03_0e IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_3245_Chain4ByteMove_03_0e_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3261_Chain4WordMove_03_0e_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3275_Chain4DwordMove_03_0e_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3365_Chain4ByteMove_03_0e_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3373_Chain4WordMove_03_0e_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3379_Chain4DwordMove_03_0e_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3236_Chain4ByteWrite_03_0f IPT2(IU32, eaOff, IU8, eaVal); +extern void S_3252_Chain4WordWrite_03_0f IPT2(IU32, eaOff, IU16, eaVal); +extern void S_3268_Chain4DwordWrite_03_0f IPT2(IU32, eaOff, IU32, eaVal); +extern void S_3240_Chain4ByteFill_03_0f IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_3256_Chain4WordFill_03_0f IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_3272_Chain4DwordFill_03_0f IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_3247_Chain4ByteMove_03_0f_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3263_Chain4WordMove_03_0f_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3276_Chain4DwordMove_03_0f_00 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3367_Chain4ByteMove_03_0f_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3375_Chain4WordMove_03_0f_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3380_Chain4DwordMove_03_0f_01 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); + + +/*========= Mark Functions ============ */ + +extern S_2438_SimpleMark IPT0(); +extern S_2439_CGAMarkByte IPT1(IU32, eaOff); +extern S_2440_CGAMarkWord IPT1(IU32, eaOff); +extern S_2441_CGAMarkDword IPT1(IU32, eaOff); +extern S_2442_CGAMarkString IPT2(IU32, eaOff, IU32, count); +extern S_2443_UnchainedMarkByte IPT1(IU32, eaOff); +extern S_2444_UnchainedMarkWord IPT1(IU32, eaOff); +extern S_2445_UnchainedMarkDword IPT1(IU32, eaOff); +extern S_2446_UnchainedMarkString IPT2(IU32, eaOff, IU32, count); +extern S_2447_Chain4MarkByte IPT1(IU32, eaOff); +extern S_2448_Chain4MarkWord IPT1(IU32, eaOff); +extern S_2449_Chain4MarkDword IPT1(IU32, eaOff); +extern S_2450_Chain4MarkString IPT2(IU32, eaOff, IU32, count); +extern S_2447_Chain4MarkByte IPT1(IU32, eaOff); +extern S_2448_Chain4MarkWord IPT1(IU32, eaOff); +extern S_2449_Chain4MarkDword IPT1(IU32, eaOff); +extern S_2450_Chain4MarkString IPT2(IU32, eaOff, IU32, count); + + +/*========= Read Functions ============ */ + +extern IU32 S_2427_SimpleByteRead IPT1(IU32, eaOff); +extern IU32 S_2428_SimpleWordRead IPT1(IU32, eaOff); +extern IU32 S_2429_SimpleDwordRead IPT1(IU32, eaOff); +extern void S_2430_SimpleStringRead IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern void S_2430_SimpleStringRead IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern IU32 S_2423_DisabledRAMByteRead IPT1(IU32, eaOff); +extern IU32 S_2424_DisabledRAMWordRead IPT1(IU32, eaOff); +extern IU32 S_2425_DisabledRAMDwordRead IPT1(IU32, eaOff); +extern void S_2426_DisabledRAMStringReadFwd IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern void S_2437_DisabledRAMStringReadBwd IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern IU32 S_2407_RdMode0UnchainedByteRead IPT1(IU32, eaOff); +extern IU32 S_2408_RdMode0UnchainedWordRead IPT1(IU32, eaOff); +extern IU32 S_2409_RdMode0UnchainedDwordRead IPT1(IU32, eaOff); +extern void S_2410_RdMode0UnchainedStringReadFwd IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern void S_2433_RdMode0UnchainedStringReadBwd IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern IU32 S_2419_RdMode1UnchainedByteRead IPT1(IU32, eaOff); +extern IU32 S_2420_RdMode1UnchainedWordRead IPT1(IU32, eaOff); +extern IU32 S_2421_RdMode1UnchainedDwordRead IPT1(IU32, eaOff); +extern void S_2422_RdMode1UnchainedStringReadFwd IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern void S_2436_RdMode1UnchainedStringReadBwd IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern IU32 S_2399_RdMode0Chain2ByteRead IPT1(IU32, eaOff); +extern IU32 S_2400_RdMode0Chain2WordRead IPT1(IU32, eaOff); +extern IU32 S_2401_RdMode0Chain2DwordRead IPT1(IU32, eaOff); +extern void S_2402_RdMode0Chain2StringReadFwd IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern void S_2431_RdMode0Chain2StringReadBwd IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern IU32 S_2411_RdMode1Chain2ByteRead IPT1(IU32, eaOff); +extern IU32 S_2412_RdMode1Chain2WordRead IPT1(IU32, eaOff); +extern IU32 S_2413_RdMode1Chain2DwordRead IPT1(IU32, eaOff); +extern void S_2414_RdMode1Chain2StringReadFwd IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern void S_2434_RdMode1Chain2StringReadBwd IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern IU32 S_2403_RdMode0Chain4ByteRead IPT1(IU32, eaOff); +extern IU32 S_2404_RdMode0Chain4WordRead IPT1(IU32, eaOff); +extern IU32 S_2405_RdMode0Chain4DwordRead IPT1(IU32, eaOff); +extern void S_2406_RdMode0Chain4StringReadFwd IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern void S_2432_RdMode0Chain4StringReadBwd IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern IU32 S_2415_RdMode1Chain4ByteRead IPT1(IU32, eaOff); +extern IU32 S_2416_RdMode1Chain4WordRead IPT1(IU32, eaOff); +extern IU32 S_2417_RdMode1Chain4DwordRead IPT1(IU32, eaOff); +extern void S_2418_RdMode1Chain4StringReadFwd IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern void S_2435_RdMode1Chain4StringReadBwd IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern EVID_WRT_POINTERS simple_evid; +extern EVID_WRT_POINTERS gricvid_evid; +extern EVID_WRT_POINTERS dith_evid[]; +extern EVID_WRT_POINTERS chain2_evid[]; +extern EVID_WRT_POINTERS unchained_evid[]; +extern EVID_WRT_POINTERS chain4_evid[]; +extern EVID_READ_POINTERS simple_read_evid; +extern EVID_READ_POINTERS ram_dsbld_read_evid; +extern EVID_READ_POINTERS read_mode0_evid[]; +extern EVID_READ_POINTERS read_mode1_evid[]; +extern EVID_MARK_POINTERS simple_mark_evid; +extern EVID_MARK_POINTERS cga_mark_evid; +extern EVID_MARK_POINTERS unchained_mark_evid; +extern EVID_MARK_POINTERS chain4_mark_evid; diff --git a/private/mvdm/softpc.new/base/ccpu386/evidgen.h b/private/mvdm/softpc.new/base/ccpu386/evidgen.h new file mode 100644 index 000000000..dca9cf720 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/evidgen.h @@ -0,0 +1,25 @@ +/*[ + * Generated File: evidgen.h + * +]*/ + +#ifndef _EVIDGEN_H_ +#define _EVIDGEN_H_ + +struct VideoVector { + IU32 (*GetVideolatches) IPT0(); + void (*SetVideolatches) IPT1(IU32, value); + void (*setWritePointers) IPT0(); + void (*setReadPointers) IPT1(IUH, readset); + void (*setMarkPointers) IPT1(IUH, markset); +}; + +extern struct VideoVector Video; + +#define getVideolatches() (*(Video.GetVideolatches))() +#define setVideolatches(value) (*(Video.SetVideolatches))(value) +#define SetWritePointers() (*(Video.setWritePointers))() +#define SetReadPointers(readset) (*(Video.setReadPointers))(readset) +#define SetMarkPointers(markset) (*(Video.setMarkPointers))(markset) +#endif /* _EVIDGEN_H_ */ +/*======================================== END ========================================*/ diff --git a/private/mvdm/softpc.new/base/ccpu386/fault.h b/private/mvdm/softpc.new/base/ccpu386/fault.h new file mode 100644 index 000000000..a37bebf64 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/fault.h @@ -0,0 +1,231 @@ +/*[ + +fault.h + +"@(#)fault.h 1.2 01/19/95" + +Fault codes for exceptions; one per call instance of +any of the exception routines to enable tracking of the +original cause of an exception in the CCPU. + +Currently the Int0, Int1 etc routines are not counted +as exceptions for this purpose. + +]*/ + + +/* + * Fault codes for: c_addr.c + */ +#define FAULT_LIMITCHK_SEG_LIMIT 1 + +/* + * Fault codes for: c_intr.c + */ +#define FAULT_INT_DEST_NOT_IN_IDT 2 +#define FAULT_INT_DEST_BAD_SEG_TYPE 3 +#define FAULT_INT_DEST_ACCESS 4 +#define FAULT_INT_DEST_NOTPRESENT 5 +#define FAULT_INTR_RM_CS_LIMIT 6 +#define FAULT_INTR_TASK_CS_LIMIT 7 +#define FAULT_INTR_PM_CS_LIMIT_1 8 +#define FAULT_INTR_PM_CS_LIMIT_2 9 + +/* + * Fault codes for: c_main.c + */ +#define FAULT_CCPU_LLDT_ACCESS 10 +#define FAULT_CCPU_LTR_ACCESS 11 +#define FAULT_CCPU_LGDT_ACCESS 12 +#define FAULT_CCPU_LMSW_ACCESS 13 +#define FAULT_CCPU_INVLPG_ACCESS 14 +#define FAULT_CCPU_CLTS_ACCESS 15 +#define FAULT_CCPU_INVD_ACCESS 16 +#define FAULT_CCPU_WBIND_ACCESS 17 +#define FAULT_CCPU_MOV_R_C_ACCESS 18 +#define FAULT_CCPU_MOV_R_D_ACCESS 19 +#define FAULT_CCPU_MOV_C_R_ACCESS 20 +#define FAULT_CCPU_MOV_D_R_ACCESS 21 +#define FAULT_CCPU_MOV_R_T_ACCESS 22 +#define FAULT_CCPU_MOV_T_R_ACCESS 23 +#define FAULT_CCPU_PUSHF_ACCESS 24 +#define FAULT_CCPU_POPF_ACCESS 25 +#define FAULT_CCPU_INT_ACCESS 26 +#define FAULT_CCPU_IRET_ACCESS 27 +#define FAULT_CCPU_HLT_ACCESS 28 +#define FAULT_CCPU_CLI_ACCESS 29 +#define FAULT_CCPU_STI_ACCESS 30 +#define FAULT_CHKIOMAP_BAD_TSS 31 +#define FAULT_CHKIOMAP_BAD_MAP 32 +#define FAULT_CHKIOMAP_BAD_TR 33 +#define FAULT_CHKIOMAP_ACCESS 34 + +/* + * Fault codes for: c_oprnd.h + */ +#define FAULT_OP0_SEG_NOT_READABLE 35 +#define FAULT_OP0_SEG_NOT_WRITABLE 36 +#define FAULT_OP0_SEG_NO_READ_OR_WRITE 37 +#define FAULT_OP1_SEG_NOT_READABLE 38 +#define FAULT_OP1_SEG_NOT_WRITABLE 39 +#define FAULT_OP1_SEG_NO_READ_OR_WRITE 40 + +/* + * Fault codes for: c_prot.c + */ +#define FAULT_CHECKSS_SELECTOR 41 +#define FAULT_CHECKSS_BAD_SEG_TYPE 42 +#define FAULT_CHECKSS_ACCESS 43 +#define FAULT_CHECKSS_NOTPRESENT 44 +#define FAULT_VALSS_CHG_SELECTOR 45 +#define FAULT_VALSS_CHG_ACCESS 46 +#define FAULT_VALSS_CHG_BAD_SEG_TYPE 47 +#define FAULT_VALSS_CHG_NOTPRESENT 48 +#define FAULT_VALTSS_SELECTOR 49 +#define FAULT_VALTSS_NP 50 + +/* + * Fault codes for: c_seg.c + */ +#define FAULT_LOADCS_SELECTOR 51 +#define FAULT_LOADCS_ACCESS_1 52 +#define FAULT_LOADCS_NOTPRESENT_1 53 +#define FAULT_LOADCS_ACCESS_2 54 +#define FAULT_LOADCS_NOTPRESENT_2 55 +#define FAULT_LOADCS_BAD_SEG_TYPE 56 +#define FAULT_LOADDS_SELECTOR 57 +#define FAULT_LOADDS_BAD_SEG_TYPE 58 +#define FAULT_LOADDS_ACCESS 59 +#define FAULT_LOADDS_NOTPRESENT 60 + +/* + * Fault codes for: c_stack.c + */ +#define FAULT_VALNEWSPC_SS_LIMIT_16 61 +#define FAULT_VALNEWSPC_SS_LIMIT_32 62 +#define FAULT_VALSTACKEX_ACCESS 63 +#define FAULT_VALSTKSPACE_ACCESS 64 + +/* + * Fault codes for: c_tlb.c + */ +#define FAULT_LIN2PHY_ACCESS 65 +#define FAULT_LIN2PHY_PDE_NOTPRESENT 66 +#define FAULT_LIN2PHY_PTE_NOTPRESENT 67 +#define FAULT_LIN2PHY_PROTECT_FAIL 68 + +/* + * Fault codes for: c_tsksw.c + */ +#define FAULT_LOADLDT_SELECTOR 69 +#define FAULT_LOADLDT_NOT_AN_LDT 70 +#define FAULT_LOADLDT_NOTPRESENT 71 +#define FAULT_SWTASK_NULL_TR_SEL 72 +#define FAULT_SWTASK_BAD_TSS_SIZE_1 73 +#define FAULT_SWTASK_BAD_TSS_SIZE_2 74 +#define FAULT_SWTASK_BAD_TSS_SIZE_3 75 +#define FAULT_SWTASK_BAD_TSS_SIZE_4 76 +#define FAULT_SWTASK_BAD_CS_SELECTOR 77 +#define FAULT_SWTASK_CONFORM_CS_NP 78 +#define FAULT_SWTASK_ACCESS_1 79 +#define FAULT_SWTASK_NOCONFORM_CS_NP 80 +#define FAULT_SWTASK_ACCESS_2 81 +#define FAULT_SWTASK_BAD_SEG_TYPE 82 + +/* + * Fault codes for: c_xfer.c + */ +#define FAULT_RM_REL_IP_CS_LIMIT 83 +#define FAULT_PM_REL_IP_CS_LIMIT 84 +#define FAULT_FAR_DEST_SELECTOR 85 +#define FAULT_FAR_DEST_ACCESS_1 86 +#define FAULT_FAR_DEST_NP_CONFORM 87 +#define FAULT_FAR_DEST_ACCESS_2 88 +#define FAULT_FAR_DEST_NP_NONCONFORM 89 +#define FAULT_FAR_DEST_ACCESS_3 90 +#define FAULT_FAR_DEST_NP_CALLG 91 +#define FAULT_FAR_DEST_ACCESS_4 92 +#define FAULT_FAR_DEST_NP_TASKG 93 +#define FAULT_FAR_DEST_TSS_IN_LDT 94 +#define FAULT_FAR_DEST_ACCESS_5 95 +#define FAULT_FAR_DEST_NP_TSS 96 +#define FAULT_FAR_DEST_BAD_SEG_TYPE 97 +#define FAULT_GATE_DEST_SELECTOR 98 +#define FAULT_GATE_DEST_ACCESS_1 99 +#define FAULT_GATE_DEST_ACCESS_2 100 +#define FAULT_GATE_DEST_ACCESS_3 101 +#define FAULT_GATE_DEST_BAD_SEG_TYPE 102 +#define FAULT_GATE_DEST_GATE_SIZE 103 +#define FAULT_GATE_DEST_NP 104 +#define FAULT_TASK_DEST_SELECTOR 105 +#define FAULT_TASK_DEST_NOT_TSS 106 +#define FAULT_TASK_DEST_NP 107 + +/* + * Fault codes for: call.c + */ +#define FAULT_CALLF_RM_CS_LIMIT 108 +#define FAULT_CALLF_TASK_CS_LIMIT 109 +#define FAULT_CALLF_PM_CS_LIMIT_1 110 +#define FAULT_CALLF_PM_CS_LIMIT_2 111 +#define FAULT_CALLN_RM_CS_LIMIT 112 +#define FAULT_CALLN_PM_CS_LIMIT 113 +#define FAULT_CALLR_RM_CS_LIMIT 114 +#define FAULT_CALLR_PM_CS_LIMIT 115 + +/* + * Fault codes for: enter.c + */ +#define FAULT_ENTER16_ACCESS 116 +#define FAULT_ENTER32_ACCESS 117 + +/* + * Fault codes for: iret.c + */ +#define FAULT_IRET_RM_CS_LIMIT 118 +#define FAULT_IRET_PM_TASK_CS_LIMIT 119 +#define FAULT_IRET_VM_CS_LIMIT 120 +#define FAULT_IRET_CS_ACCESS_1 121 +#define FAULT_IRET_SELECTOR 122 +#define FAULT_IRET_ACCESS_2 123 +#define FAULT_IRET_ACCESS_3 124 +#define FAULT_IRET_BAD_SEG_TYPE 125 +#define FAULT_IRET_NP_CS 126 +#define FAULT_IRET_PM_CS_LIMIT_1 127 +#define FAULT_IRET_PM_CS_LIMIT_2 128 + +/* + * Fault codes for: jmp.c + */ +#define FAULT_JMPF_RM_CS_LIMIT 129 +#define FAULT_JMPF_TASK_CS_LIMIT 130 +#define FAULT_JMPF_PM_CS_LIMIT 131 +#define FAULT_JMPN_RM_CS_LIMIT 132 +#define FAULT_JMPN_PM_CS_LIMIT 133 + +/* + * Fault codes for: lldt.c + */ +#define FAULT_LLDT_SELECTOR 134 +#define FAULT_LLDT_NOT_LDT 135 +#define FAULT_LLDT_NP 136 + +/* + * Fault codes for: mov.c + */ +#define FAULT_MOV_CR_PAGE_IN_RM 137 + +/* + * Fault codes for: ret.c + */ +#define FAULT_RETF_RM_CS_LIMIT 138 +#define FAULT_RETF_PM_ACCESS 139 +#define FAULT_RETF_SELECTOR 140 +#define FAULT_RETF_ACCESS_1 141 +#define FAULT_RETF_ACCESS_2 142 +#define FAULT_RETF_BAD_SEG_TYPE 143 +#define FAULT_RETF_CS_NOTPRESENT 144 +#define FAULT_RETF_PM_CS_LIMIT_1 145 +#define FAULT_RETF_PM_CS_LIMIT_2 146 +#define FAULT_RETN_CS_LIMIT 147 + diff --git a/private/mvdm/softpc.new/base/ccpu386/fpu.c b/private/mvdm/softpc.new/base/ccpu386/fpu.c new file mode 100644 index 000000000..cc6085479 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/fpu.c @@ -0,0 +1,5948 @@ +/*[ + * ============================================================================ + * + * Name: fpu.c + * + * Author: Paul Murray + * + * Sccs ID: @(#)fpu.c 1.54 03/23/95 + * + * Purpose: + * + * Implements the Npx functionality of the Ccpu. + * + * (c)Copyright Insignia Solutions Ltd., 1993,1994. All rights reserved. + * + * ============================================================================ +]*/ +#include "insignia.h" +#include "host_def.h" +#include +#include "cfpu_def.h" +#include "ckmalloc.h" + +typedef enum { +FPSTACK, +M16I, +M32I, +M64I, +M32R, +M64R, +M80R +} NPXOPTYPE; + + +/* Function prototypes - everything returns void */ +LOCAL FPH npx_rint IPT1(FPH, fpval); +LOCAL VOID GetIntelStatusWord IPT0(); +LOCAL VOID SetIntelTagword IPT1(IU32, new_tag); +LOCAL VOID ReadI16FromIntel IPT2(IU32 *, valI16, VOID *, memPtr); +LOCAL VOID ReadI32FromIntel IPT2(IU32 *, valI32, VOID *, memPtr); +LOCAL VOID WriteI16ToIntel IPT2(VOID *, memPtr, IU16, valI16); +LOCAL VOID WriteI32ToIntel IPT2(VOID *, memPtr, IU32, valI32); +LOCAL VOID WriteNaNToIntel IPT2(VOID *, memPtr, FPSTACKENTRY *, valPtr); +LOCAL VOID WriteZeroToIntel IPT2(VOID *, memPtr, IU16, negZero); +LOCAL VOID SetIntelStatusWord IPT1(IU32, new_stat); +LOCAL VOID AdjustOverflowResponse IPT0(); +LOCAL VOID AdjustUnderflowResponse IPT0(); +LOCAL VOID WriteIndefiniteToIntel IPT1(VOID *, memPtr); +LOCAL VOID SignalDivideByZero IPT1(FPSTACKENTRY *, stackPtr); +LOCAL VOID SetPrecisionBit IPT0(); +LOCAL VOID GetIntelTagword IPT1(IU32 *, current_tag); +LOCAL VOID WriteFP32ToIntel IPT2(VOID *, destPtr, FPSTACKENTRY *, srcPtr); +LOCAL VOID WriteFP64ToIntel IPT2(VOID *, destPtr, FPSTACKENTRY *, srcPtr); +LOCAL VOID WriteFP80ToIntel IPT2(VOID *, destPtr, FPSTACKENTRY *, srcPtr); +LOCAL VOID Mul64Bit8Bit IPT2(FPU_I64 *, as64, IU8, mul_count); +LOCAL VOID CopyFP IPT2(FPSTACKENTRY *, dest_addr, FPSTACKENTRY *, src_addr); +LOCAL VOID WriteBiggestNaN IPT3(IU16, destInd, FPSTACKENTRY *, val1Ptr, FPSTACKENTRY *, val2Ptr); +LOCAL VOID Sub64Bit64Bit IPT2(FPU_I64 *, as64a, FPU_I64 *, as64b); +LOCAL VOID CVTR80FPH IPT2(FPSTACKENTRY *, destPtr, FPSTACKENTRY *, srcPtr); +LOCAL BOOL Cmp64BitGTE IPT2(FPU_I64 *, as64a, FPU_I64 *, as64b); +LOCAL VOID CopyR32 IPT2(FPSTACKENTRY *, destPtr, VOID *, srcPtr); +LOCAL VOID CVTI64FPH IPT1(FPU_I64 *, as64); +LOCAL VOID CVTFPHI64 IPT2(FPU_I64 *, as64, FPH *, FPPtr); +LOCAL VOID Add64Bit8Bit IPT2(FPU_I64 *, as64, IU8, small_val); +LOCAL VOID CopyR64 IPT2(FPSTACKENTRY *, destPtr, VOID *, srcPtr); +LOCAL VOID CopyR80 IPT2(FPSTACKENTRY *, destPtr, VOID *, srcPtr); +LOCAL VOID CVTFPHR80 IPT1(FPSTACKENTRY *, memPtr); +LOCAL VOID WriteInfinityToIntel IPT2(VOID *, memPtr, IU16, neg_val); +LOCAL VOID PopStack IPT0(); +LOCAL VOID CPY64BIT8BIT IPT2(FPU_I64 *, as64, IU8 *, as8); +LOCAL VOID WriteIntegerIndefinite IPT1(VOID *, memPtr); +LOCAL VOID SignalStackOverflow IPT1(FPSTACKENTRY *, StackPtr); +LOCAL VOID Set64Bit IPT2(FPU_I64 *, as64, IU8, small_val); +LOCAL VOID Sub64Bit8Bit IPT2(FPU_I64 *, as64, IU8, small_val); +LOCAL VOID SignalBCDIndefinite IPT1(IU8 *, memPtr); +GLOBAL VOID InitNpx IPT1(IBOOL, disabled); +LOCAL VOID LoadValue IPT2(VOID *, SrcOp, IU16 *, IndexVal); +LOCAL VOID Loadi16ToFP IPT2(FPSTACKENTRY *, FPPtr, VOID *, memPtr); +LOCAL VOID Loadi32ToFP IPT2(FPSTACKENTRY *, FPPtr, VOID *, memPtr); +LOCAL VOID Loadi64ToFP IPT2(FPSTACKENTRY *, FPPtr, VOID *, memPtr); +LOCAL VOID Loadr32ToFP IPT3(FPSTACKENTRY *, FPPtr, VOID *, memPtr, BOOL, setTOS); +LOCAL VOID Loadr64ToFP IPT3(FPSTACKENTRY *, FPPtr, VOID *, memPtr, BOOL, setTOS); +LOCAL VOID Loadr80ToFP IPT2(FPSTACKENTRY *, FPPtr, VOID *, memPtr); +LOCAL VOID LoadTByteToFP IPT2(FPSTACKENTRY *, FPPtr, VOID *, memPtr); +LOCAL VOID ConvertR80 IPT1(FPSTACKENTRY *, memPtr); +LOCAL VOID PostCheckOUP IPT0(); +LOCAL VOID CalcTagword IPT1(FPSTACKENTRY *, FPPtr); +LOCAL VOID SignalStackUnderflow IPT1(FPSTACKENTRY *, StackPtr); +LOCAL VOID SignalSNaN IPT1(FPSTACKENTRY *, StackPtr); +LOCAL VOID SignalIndefinite IPT1(FPSTACKENTRY *, StackPtr); +LOCAL VOID SignalInvalid IPT0(); +LOCAL VOID WriteIndefinite IPT1(FPSTACKENTRY *, StackPtr); +LOCAL VOID Test2NaN IPT3(IU16, destIndex, FPSTACKENTRY *, src1_addr, FPSTACKENTRY *, src2_addr); +LOCAL VOID GenericAdd IPT3(IU16, destIndex, IU16, src1Index, IU16, src2Index); +LOCAL VOID AddBCDByte IPT2(FPU_I64 *, total, IU8, byte_val); +LOCAL VOID ConvertBCD IPT1(FPSTACKENTRY *, bcdPtr); +LOCAL VOID GenericCompare IPT1(IU16, src2Index); +LOCAL VOID GenericDivide IPT3(IU16, destIndex, IU16, src1Index, IU16, src2Index); +LOCAL VOID OpFpuStoreFpuState IPT2(VOID *, memPtr, IU32, fsave_offset); +LOCAL VOID OpFpuRestoreFpuState IPT2(VOID *, memPtr, IU32, frstor_offset); +LOCAL VOID GenericMultiply IPT3(IU16, destIndex, IU16, src1Index, IU16, src2Index); +LOCAL VOID CheckOUPForIntel IPT0(); +LOCAL VOID GenericSubtract IPT3(IU16, destIndex, IU16, src1Index, IU16, src2Index); +GLOBAL VOID F2XM1 IPT0(); +GLOBAL VOID FABS IPT0(); +GLOBAL VOID FADD IPT3(IU16, destIndex, IU16, src1Index, VOID *, src2); +GLOBAL VOID FBLD IPT1(IU8 *, memPtr); +GLOBAL VOID FBSTP IPT1(IU8 *, memPtr); +GLOBAL VOID FCHS IPT0(); +GLOBAL VOID FCLEX IPT0(); +GLOBAL VOID FCOM IPT1(VOID *, src2); +GLOBAL VOID FCOS IPT0(); +GLOBAL VOID FDECSTP IPT0(); +GLOBAL VOID FDIV IPT3(IU16, destIndex, IU16, src1Index, VOID *, src2); +GLOBAL VOID FFREE IPT1(IU16, destIndex); +GLOBAL VOID FLD IPT1(VOID *, memPtr); +GLOBAL VOID FINCSTP IPT0(); +GLOBAL VOID FINIT IPT0(); +GLOBAL VOID FIST IPT1(VOID *, memPtr); +GLOBAL VOID FLDCONST IPT1(IU8, const_index); +GLOBAL VOID FLDCW IPT1(VOID *, memPtr); +GLOBAL VOID FLDCW16 IPT1(VOID *, memPtr); +GLOBAL VOID FLDENV IPT1(VOID *, memPtr); +GLOBAL VOID FMUL IPT3(IU16, destIndex, IU16, src1Index, VOID *, src2); +GLOBAL VOID PTOP IPT0(); +GLOBAL VOID FPATAN IPT0(); +GLOBAL VOID FPREM IPT0(); +GLOBAL VOID FPREM1 IPT0(); +GLOBAL VOID FPTAN IPT0(); +GLOBAL VOID FRNDINT IPT0(); +GLOBAL VOID FSTCW IPT1(VOID *, memPtr); +GLOBAL VOID FRSTOR IPT1(VOID *, memPtr); +GLOBAL VOID FSAVE IPT1(VOID *, memPtr); +GLOBAL VOID FSCALE IPT0(); +GLOBAL VOID FSIN IPT0(); +GLOBAL VOID FSINCOS IPT0(); +GLOBAL VOID FSQRT IPT0(); +GLOBAL VOID FST IPT1(VOID *, memPtr); +GLOBAL VOID FSTENV IPT1(VOID *, memPtr); +GLOBAL VOID FSTSW IPT2(VOID *, memPtr, BOOL, toAX); +GLOBAL VOID FSUB IPT3(IU16, destIndex, IU16, src1Index, VOID *, src2); +GLOBAL VOID FTST IPT0(); +GLOBAL VOID FXAM IPT0(); +GLOBAL VOID FXCH IPT1(IU16, destIndex); +GLOBAL VOID FXTRACT IPT1(IU16, destIndex); +GLOBAL VOID FYL2X IPT0(); +GLOBAL VOID FYL2XP1 IPT0(); +GLOBAL IU32 getNpxControlReg IPT0(); +GLOBAL VOID setNpxControlReg IPT1(IU32, newControl); +GLOBAL IU32 getNpxStatusReg IPT0(); +GLOBAL VOID setNpxStatusReg IPT1(IU32, newStatus); +GLOBAL IU32 getNpxTagwordReg IPT0(); +GLOBAL VOID setNpxTagwordReg IPT1(IU32, newTag); +GLOBAL void getNpxStackRegs IPT1(FPSTACKENTRY *, dumpPtr); +GLOBAL void setNpxStackRegs IPT1(FPSTACKENTRY *, loadPtr); + +/* DEFINED values */ +#ifndef NULL +#define NULL ((VOID *)0) +#endif +#define TAG_NEGATIVE_MASK 1 +#define TAG_ZERO_MASK 2 +#define TAG_INFINITY_MASK 4 +#define TAG_DENORMAL_MASK 8 +#define TAG_NAN_MASK 16 +#define TAG_SNAN_MASK 32 +#define TAG_UNSUPPORTED_MASK 64 +#define TAG_EMPTY_MASK 128 +#define TAG_FSCALE_MASK 256 +#define TAG_BCD_MASK 512 +#define TAG_R80_MASK 1024 +#define UNEVALMASK 1536 +#define FPTEMP_INDEX (IU16)-1 +#define SW_IE_MASK 1 +#define SW_DE_MASK 2 +#define SW_ZE_MASK 4 +#define SW_OE_MASK 8 +#define SW_UE_MASK 16 +#define SW_PE_MASK 32 +#define SW_SF_MASK 64 +#define SW_ES_MASK 128 +#define C3C2C0MASK 0xb8ff +#define FCLEX_MASK 0x7f00 +#define CW_IM_MASK 1 +#define CW_DM_MASK 2 +#define CW_ZM_MASK 4 +#define CW_OM_MASK 8 +#define CW_UM_MASK 16 +#define CW_PM_MASK 32 +#define COMP_LT 0 +#define COMP_GT 1 +#define COMP_EQ 2 +#define INTEL_COMP_NC 0x4500 +#define INTEL_COMP_GT 0x0000 +#define INTEL_COMP_LT 0x0100 +#define INTEL_COMP_EQ 0x4000 +#define ROUND_NEAREST 0x0000 +#define ROUND_NEG_INFINITY 0x0400 +#define ROUND_POS_INFINITY 0x0800 +#define ROUND_ZERO 0x0c00 + +/* MACROS */ +#define FlagC0(x) NpxStatus &= 0xfeff; \ + NpxStatus |= ((x) << 8) +#define FlagC1(x) NpxStatus &= 0xfdff; \ + NpxStatus |= ((x) << 9) +#define FlagC2(x) NpxStatus &= 0xfbff; \ + NpxStatus |= ((x) << 10) +#define FlagC3(x) NpxStatus &= 0xbfff; \ + NpxStatus |= ((x) << 14) +#define TestUneval(testPtr) \ + if (((testPtr)->tagvalue & UNEVALMASK) != 0) { \ + switch ((testPtr)->tagvalue & UNEVALMASK) { \ + case TAG_BCD_MASK: ConvertBCD((testPtr)); \ + break; \ + case TAG_R80_MASK: ConvertR80((testPtr)); \ + break; \ + } \ + } + +#define StackEntryByIndex(i) (i==FPTEMP_INDEX? &FPTemp : &FPUStackBase[(TOSPtr-FPUStackBase+i)%8]) + +/* + * Pigging the FYL2X & FYL2XP1 opcodes requires that we use the same + * maths functions as the assembler CPU to avoid pig errors due to slight + * algorithmic differences; so allow host to specify different functions + * if it wants - by default we only require log(). + */ +#ifndef host_log2 +#define host_log2(x) (log(x)/log(2.0)) +#endif /* !host_log2 */ + +#ifndef host_log1p +#define host_log1p(x) (host_log2(1.0 + x)) +#endif /* !host_log1p */ + +/* + * System wide variables + */ +GLOBAL IU8 FPtype; +GLOBAL IU32 NpxLastSel; +GLOBAL IU32 NpxLastOff; +GLOBAL IU32 NpxFEA; +GLOBAL IU32 NpxFDS; +GLOBAL IU32 NpxFIP; +GLOBAL IU32 NpxFOP; +GLOBAL IU32 NpxFCS; +GLOBAL BOOL POPST; +GLOBAL BOOL DOUBLEPOP; +GLOBAL BOOL UNORDERED; +GLOBAL BOOL REVERSE; +GLOBAL BOOL NPX_ADDRESS_SIZE_32; +GLOBAL BOOL NPX_PROT_MODE; +GLOBAL BOOL NpxException; + +/* + * FPU-wide variables +*/ + +#ifdef SUN4 +LOCAL IU8 *FPout; /* HostGet*Exception() macros need this for Sparc ports. */ +#endif /* SUN4 */ + +LOCAL IU32 NpxControl; +LOCAL IU32 NpxStatus; +LOCAL BOOL DoAPop; +LOCAL IU16 tag_or; +LOCAL IU16 tag_xor; +LOCAL FPSTACKENTRY IntelSpecial; +LOCAL FPSTACKENTRY *FPUpload = &IntelSpecial; +LOCAL FPSTACKENTRY FPTemp; +LOCAL FPSTACKENTRY *FPUStackBase; +LOCAL FPSTACKENTRY *TOSPtr; +LOCAL IU16 npxRounding; +LOCAL FPH FPRes; +LOCAL FPH MaxBCDValue=999999999999999999.0; + +LOCAL IU8 zero_string[] = {"zero"}; +LOCAL IU8 minus_zero_string[] = {"minus zero"}; +LOCAL IU8 infinity_string[] = {"infinity"}; +LOCAL IU8 minus_infinity_string[] = {"minus infinity"}; +LOCAL IU8 nan_string[] = {" NaN"}; +LOCAL IU8 minus_nan_string[] = {" Negative NaN"}; +LOCAL IU8 unsupported_string[] = {"unsupported"}; +LOCAL IU8 unevaluated_string[] = {"unevaluated"}; +LOCAL IU8 empty_string[] = {"empty"}; +LOCAL IU8 convert_string[100]; + +LOCAL IU16 FscaleTable[] = { +0, +0, +TAG_FSCALE_MASK, +TAG_FSCALE_MASK, +TAG_INFINITY_MASK, +TAG_ZERO_MASK, +0, +0, +0, +0, +TAG_FSCALE_MASK, +TAG_FSCALE_MASK, +TAG_INFINITY_MASK | TAG_NEGATIVE_MASK, +TAG_ZERO_MASK | TAG_NEGATIVE_MASK, +0, +0, +TAG_FSCALE_MASK, +TAG_FSCALE_MASK, +TAG_FSCALE_MASK, +TAG_FSCALE_MASK, +TAG_FSCALE_MASK | TAG_UNSUPPORTED_MASK, +TAG_FSCALE_MASK, +0, +0, +TAG_FSCALE_MASK, +TAG_FSCALE_MASK, +TAG_FSCALE_MASK, +TAG_FSCALE_MASK, +TAG_FSCALE_MASK | TAG_UNSUPPORTED_MASK, +TAG_ZERO_MASK | TAG_NEGATIVE_MASK, +0, +0, +TAG_FSCALE_MASK, +TAG_FSCALE_MASK, +TAG_FSCALE_MASK, +TAG_FSCALE_MASK, +TAG_INFINITY_MASK, +TAG_FSCALE_MASK | TAG_UNSUPPORTED_MASK, +0, +0, +TAG_FSCALE_MASK, +TAG_FSCALE_MASK, +TAG_FSCALE_MASK, +TAG_FSCALE_MASK, +TAG_FSCALE_MASK, +TAG_FSCALE_MASK | TAG_UNSUPPORTED_MASK, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0}; + +LOCAL FPSTACKENTRY ConstTable[]= { +{1.0, 0, 0}, /* 1.0 */ +{M_LN10/M_LN2, 0, 0}, /* Log2(10) */ +{M_LOG2E, 0, 0}, /* Log2(e) */ +{M_PI, 0, 0}, /* pi */ +{M_LN2/M_LN10, 0, 0}, /* Log10(2) */ +{M_LN2, 0, 0}, /* Loge(2) */ +{0.0, 0, TAG_ZERO_MASK} /* 0.0 */ +}; + +LOCAL FPSTACKENTRY FPConstants[] = { +{0.0, 0, TAG_ZERO_MASK}, +{-0.0, 0, (TAG_ZERO_MASK | TAG_NEGATIVE_MASK)}, +{1.0, 0, 0}, +{2.0, 0, 0}, +{M_PI, 0, 0}, +{-M_PI, 0, TAG_NEGATIVE_MASK}, +{M_PI_2, 0, 0}, +{-(M_PI_2), 0, TAG_NEGATIVE_MASK}, +{M_PI_4, 0, 0}, +{-(M_PI_4), 0, TAG_NEGATIVE_MASK}, +{3.0*M_PI_4, 0, 0}, +{-(3.0*M_PI_4), 0, TAG_NEGATIVE_MASK} +}; + +LOCAL FPSTACKENTRY *npx_zero = FPConstants + 0; +LOCAL FPSTACKENTRY *npx_minus_zero = FPConstants + 1; +LOCAL FPSTACKENTRY *npx_one = FPConstants + 2; +LOCAL FPSTACKENTRY *npx_two = FPConstants + 3; +LOCAL FPSTACKENTRY *npx_pi = FPConstants + 4; +LOCAL FPSTACKENTRY *npx_minus_pi = FPConstants + 5; +LOCAL FPSTACKENTRY *npx_pi_by_two = FPConstants + 6; +LOCAL FPSTACKENTRY *npx_minus_pi_by_two = FPConstants + 7; +LOCAL FPSTACKENTRY *npx_pi_by_four = FPConstants + 8; +LOCAL FPSTACKENTRY *npx_minus_pi_by_four = FPConstants + 9; +LOCAL FPSTACKENTRY *npx_three_pi_by_four = FPConstants + 10; +LOCAL FPSTACKENTRY *npx_minus_three_pi_by_four = FPConstants + 11; + +LOCAL IU32 CompZeroTable[] = { +INTEL_COMP_NC, +INTEL_COMP_NC, +INTEL_COMP_GT, +INTEL_COMP_GT, +INTEL_COMP_LT, +INTEL_COMP_GT, +INTEL_COMP_NC, +INTEL_COMP_NC, +INTEL_COMP_NC, +INTEL_COMP_NC, +INTEL_COMP_LT, +INTEL_COMP_LT, +INTEL_COMP_LT, +INTEL_COMP_GT, +INTEL_COMP_NC, +INTEL_COMP_NC, +INTEL_COMP_LT, /* 16 */ +INTEL_COMP_GT, +INTEL_COMP_EQ, +INTEL_COMP_EQ, +INTEL_COMP_LT, +INTEL_COMP_GT, +INTEL_COMP_NC, +INTEL_COMP_NC, +INTEL_COMP_LT, +INTEL_COMP_GT, +INTEL_COMP_EQ, +INTEL_COMP_EQ, +INTEL_COMP_LT, +INTEL_COMP_GT, +INTEL_COMP_NC, +INTEL_COMP_NC, +INTEL_COMP_GT, /* 32 */ +INTEL_COMP_GT, +INTEL_COMP_GT, +INTEL_COMP_GT, +INTEL_COMP_EQ, +INTEL_COMP_GT, +INTEL_COMP_NC, +INTEL_COMP_NC, +INTEL_COMP_LT, +INTEL_COMP_LT, +INTEL_COMP_LT, +INTEL_COMP_LT, +INTEL_COMP_LT, +INTEL_COMP_EQ, +INTEL_COMP_NC, +INTEL_COMP_NC, +INTEL_COMP_NC, /* 48 */ +INTEL_COMP_NC, +INTEL_COMP_NC, +INTEL_COMP_NC, +INTEL_COMP_NC, +INTEL_COMP_NC, +INTEL_COMP_NC, +INTEL_COMP_NC, +INTEL_COMP_NC, +INTEL_COMP_NC, +INTEL_COMP_NC, +INTEL_COMP_NC, +INTEL_COMP_NC, +INTEL_COMP_NC, +INTEL_COMP_NC, +INTEL_COMP_NC +}; + +#ifdef BIGEND +/* Note enforcement of word ordering as high word/low word */ +LOCAL FPU_I64 BCDLowNibble[] = { +{0x002386f2, 0x6fc10000}, +{0x00005af3, 0x107a4000}, +{0x000000e8, 0xd4a51000}, +{0x00000002, 0x540be400}, +{0x00000000, 0x05f5e100}, +{0x00000000, 0x000f4240}, +{0x00000000, 0x00002710}, +{0x00000000, 0x00000064}, +{0x00000000, 0x00000001} +}; + +LOCAL FPU_I64 BCDHighNibble[] = { +{0x01634578, 0x5d8a0000}, +{0x00038d7e, 0xa4c68000}, +{0x00000918, 0x4e72a000}, +{0x00000017, 0x4876e800}, +{0x00000000, 0x3b9aca00}, +{0x00000000, 0x00989680}, +{0x00000000, 0x000186a0}, +{0x00000000, 0x000003e8}, +{0x00000000, 0x0000000a} +}; +#else /* !BIGEND */ +LOCAL FPU_I64 BCDLowNibble[] = { +{0x6fc10000, 0x002386f2}, +{0x107a4000, 0x00005af3}, +{0xd4a51000, 0x000000e8}, +{0x540be400, 0x00000002}, +{0x05f5e100, 0x00000000}, +{0x000f4240, 0x00000000}, +{0x00002710, 0x00000000}, +{0x00000064, 0x00000000}, +{0x00000001, 0x00000000} +}; + +LOCAL FPU_I64 BCDHighNibble[] = { +{0x5d8a0000, 0x01634578}, +{0xa4c68000, 0x00038d7e}, +{0x4e72a000, 0x00000918}, +{0x4876e800, 0x00000017}, +{0x3b9aca00, 0x00000000}, +{0x00989680, 0x00000000}, +{0x000186a0, 0x00000000}, +{0x000003e8, 0x00000000}, +{0x0000000a, 0x00000000} +}; +#endif /* !BIGEND */ + + +LOCAL FPSTACKENTRY *FpatanTable[64]; + +LOCAL IBOOL NpxDisabled = FALSE; /* Set by the UIF */ + +/* Imported functions */ +IMPORT VOID DoNpxException(); + + +LOCAL FPH npx_rint IFN1(FPH, fpval) +{ + FPH localfp; + + switch (NpxControl & ROUND_ZERO) { + case ROUND_NEAREST : + localfp = fpval - floor(fpval); + if (localfp > 0.5) { + localfp = ceil(fpval); + } else { + if (localfp < 0.5) { + localfp = floor(fpval); + } else { + if ((fpval-localfp)/2.0 != floor((fpval-localfp)/2.0)) { + localfp = ceil(fpval); + } else { + localfp = floor(fpval); + } + } + } + break; + case ROUND_NEG_INFINITY : + localfp = floor(fpval); + /* help the poor HP over this hurdle... */ + if ( fpval >= localfp + 1.0 ) + localfp += 1.0; + break; + case ROUND_POS_INFINITY : + localfp = ceil(fpval); + /* help the poor HP over this hurdle... */ + if ( fpval <= localfp - 1.0 ) + localfp -= 1.0; + break; + case ROUND_ZERO : + if (fpval < 0.0) { + localfp = ceil(fpval); + } else { + localfp = floor(fpval); + } + break; + } + /* Check sign of zero */ + if (localfp == 0.0) { + if (fpval < 0.0) { + ((FPHOST *)&(localfp))->hiword.sign = 1; + } else { + ((FPHOST *)&(localfp))->hiword.sign = 0; + } + } + return(localfp); +} + + +LOCAL VOID GetIntelStatusWord IFN0() +{ + /* The status word already contains the correct 'sticky' bits */ + /* for any potential exceptions. What need to be filled in are */ + /* the flag bits and the ST value */ + NpxStatus &= 0xc7ff; /* Clear the st bits */ + NpxStatus |= ((TOSPtr-FPUStackBase) << 11); +} + + +LOCAL VOID SetIntelTagword IFN1(IU32, new_tag) +{ + FPSTACKENTRY *tagPtr = FPUStackBase; + IU8 counter = 0; + + /* We only consider whether the thing is marked as empty or not. + If it is anything other than empty we will want to precisely calculate + it by using CalcTagword() */ + while (counter++ < 8) { + if ((new_tag & 3) == 3) { + /* It's empty */ + tagPtr->tagvalue = TAG_EMPTY_MASK; + } else { + tagPtr->tagvalue = 0; + } + new_tag >>= 2; + tagPtr++; + } +} + + +/* Reads and writes for 16 and 32 bit integers are easy as they are handled +correctly in order to satisfy the integer CPU */ +/* This function is only called from fldenv/frstor where 16-bit data has to +be extracted from a large (bigendian organised) buffer */ +LOCAL VOID ReadI16FromIntel IFN2(IU32 *, valI16, VOID *, memPtr) +{ + IU32 res; + + res = *((IU8 *)memPtr + 0); + res <<= 8; + res |= *((IU8 *)memPtr + 1); + *valI16 = res; +} + + +/* This function is only called from fldwnv/frstor where 32-bit data has to +be extrated from a large (bigendian organised) buffer */ +LOCAL VOID ReadI32FromIntel IFN2(IU32 *, valI32, VOID *, memPtr) +{ + IU32 res; + + res = *((IU8 *)memPtr + 0); + res <<= 8; + res |= *((IU8 *)memPtr + 1); + res <<= 8; + res |= *((IU8 *)memPtr + 2); + res <<= 8; + res |= *((IU8 *)memPtr + 3); + *valI32 = res; +} + +/* This function is only used in fsave/fstenv */ +LOCAL VOID WriteI16ToIntel IFN2(VOID *, memPtr, IU16, valI16) +{ + *((IU8 *)memPtr + 1) = (IU8)(valI16 & 0xff); + valI16 >>= 8; + *((IU8 *)memPtr + 0) = (IU8)(valI16 & 0xff); +} + + +/* And so is this one */ +LOCAL VOID WriteI32ToIntel IFN2(VOID *, memPtr, IU32, valI32) +{ + *((IU8 *)memPtr + 3) = (IU8)(valI32 & 0xff); + valI32 >>= 8; + *((IU8 *)memPtr + 2) = (IU8)(valI32 & 0xff); + valI32 >>= 8; + *((IU8 *)memPtr + 1) = (IU8)(valI32 & 0xff); + valI32 >>= 8; + *((IU8 *)memPtr + 0) = (IU8)(valI32 & 0xff); +} + + +/* Anything over 32-bits becomes painful as data is read and written using +the vir_read_bytes and vir_write_bytes routines respectively, which simply +dump data from the topmost intel address to the lowest intel address. The +value of the offsets is defined one way round for bigendian ports and the +other way for little-endian */ +LOCAL VOID WriteNaNToIntel IFN2(VOID *, memPtr, FPSTACKENTRY *, valPtr) +{ + IU32 mant_hi; + IU32 mant_lo; + + /* Ok for endian-ness as we FORCE this presentation */ + mant_hi = ((IU32 *)&(valPtr->fpvalue))[NPX_HIGH_32_BITS]; + mant_lo = ((IU32 *)&(valPtr->fpvalue))[NPX_LOW_32_BITS]; + if (FPtype == M32R) { + /* OK since this forces the output to be independent of + endian-ness. */ + mant_hi |= 0x40000000; /* Make it quiet */ + mant_hi >>= 8; + if ((valPtr->tagvalue & TAG_NEGATIVE_MASK) != 0) { + mant_hi |= 0xff000000; + } else { + mant_hi |= 0x7f000000; + } + *(IU32 *)memPtr = mant_hi; + } + if (FPtype == M64R) { + mant_hi |= 0x40000000; /* Make it quiet */ + if ((valPtr->tagvalue & TAG_NEGATIVE_MASK) != 0) { + *((IU8 *)memPtr + 0) = 0xff; + } else { + *((IU8 *)memPtr + 0) = 0x7f; + } + mant_lo >>= 3; + mant_lo |= (mant_hi << 29); + mant_hi >>= 3; + mant_hi |= 0xe0000000; + mant_lo >>= 8; + *((IU8 *)memPtr + 7) = (mant_lo & 0xff); + mant_lo >>= 8; + *((IU8 *)memPtr + 6) = (mant_lo & 0xff); + mant_lo >>= 8; + *((IU8 *)memPtr + 5) = (mant_lo & 0xff); + *((IU8 *)memPtr + 4) = (mant_hi & 0xff); + mant_hi >>= 8; + *((IU8 *)memPtr + 3) = (mant_hi & 0xff); + mant_hi >>= 8; + *((IU8 *)memPtr + 2) = (mant_hi & 0xff); + mant_hi >>= 8; + *((IU8 *)memPtr + 1) = (mant_hi & 0xff); + } + if (FPtype == M80R) { + if ((valPtr->tagvalue & TAG_NEGATIVE_MASK) != 0) { + *((IU8 *)memPtr + 0) = 0xff; + } else { + *((IU8 *)memPtr + 0) = 0x7f; + } + *((IU8 *)memPtr + 1) = 0xff; + *((IU8 *)memPtr + 9) = (mant_lo & 0xff); + mant_lo >>= 8; + *((IU8 *)memPtr + 8) = (mant_lo & 0xff); + mant_lo >>= 8; + *((IU8 *)memPtr + 7) = (mant_lo & 0xff); + mant_lo >>= 8; + *((IU8 *)memPtr + 6) = (mant_lo & 0xff); + *((IU8 *)memPtr + 5) = (mant_hi & 0xff); + mant_hi >>= 8; + *((IU8 *)memPtr + 4) = (mant_hi & 0xff); + mant_hi >>= 8; + *((IU8 *)memPtr + 3) = (mant_hi & 0xff); + mant_hi >>= 8; + *((IU8 *)memPtr + 2) = (mant_hi & 0xff); + } +} + + +LOCAL VOID WriteZeroToIntel IFN2(VOID *, memPtr, IU16, negZero) +{ + if (FPtype == M32R) { + if (negZero == 0) { + *(IU32 *)memPtr = 0x00000000; + } else { + *(IU32 *)memPtr = 0x80000000; + } + } else { + if (FPtype == M80R) { + if (negZero == 0) { + *((IU8 *)memPtr + 0) = 0; + } else { + *((IU8 *)memPtr + 0) = 0x80; + } + *((IU8 *)memPtr + 1) = 0; + *((IU8 *)memPtr + 2) = 0; + *((IU8 *)memPtr + 3) = 0; + *((IU8 *)memPtr + 4) = 0; + *((IU8 *)memPtr + 5) = 0; + *((IU8 *)memPtr + 6) = 0; + *((IU8 *)memPtr + 7) = 0; + *((IU8 *)memPtr + 8) = 0; + *((IU8 *)memPtr + 9) = 0; + } else { + if (negZero == 0) { + *((IU8 *)memPtr + 0) = 0; + } else { + *((IU8 *)memPtr + 0) = 0x80; + } + *((IU8 *)memPtr + 1) = 0; + *((IU8 *)memPtr + 2) = 0; + *((IU8 *)memPtr + 3) = 0; + *((IU8 *)memPtr + 4) = 0; + *((IU8 *)memPtr + 5) = 0; + *((IU8 *)memPtr + 6) = 0; + *((IU8 *)memPtr + 7) = 0; + } + } +} + + +LOCAL VOID SetIntelStatusWord IFN1(IU32, new_stat) +{ + TOSPtr = &FPUStackBase[(new_stat >> 11) & 0x7]; + NpxStatus = new_stat; +} + + +LOCAL VOID AdjustOverflowResponse IFN0() +{ +} + + +LOCAL VOID AdjustUnderflowResponse IFN0() +{ +} + + +LOCAL VOID WriteIndefiniteToIntel IFN1(VOID *, memPtr) +{ + switch (FPtype) { + case M32R : *(IU32 *)memPtr = 0xffc00000; + break; + case M64R : *((IU8 *)memPtr + 0) = 0xff; + *((IU8 *)memPtr + 1) = 0xf8; + *((IU8 *)memPtr + 2) = 0; + *((IU8 *)memPtr + 3) = 0; + *((IU8 *)memPtr + 4) = 0; + *((IU8 *)memPtr + 5) = 0; + *((IU8 *)memPtr + 6) = 0; + *((IU8 *)memPtr + 7) = 0; + break; + case M80R : *((IU8 *)memPtr + 0) = 0xff; + *((IU8 *)memPtr + 1) = 0xff; + *((IU8 *)memPtr + 2) = 0xc0; + *((IU8 *)memPtr + 3) = 0; + *((IU8 *)memPtr + 4) = 0; + *((IU8 *)memPtr + 5) = 0; + *((IU8 *)memPtr + 6) = 0; + *((IU8 *)memPtr + 7) = 0; + *((IU8 *)memPtr + 8) = 0; + *((IU8 *)memPtr + 9) = 0; + break; + } +} + + +LOCAL VOID SignalDivideByZero IFN1(FPSTACKENTRY *, stackPtr) +{ + /* Raise divide by zero */ + NpxStatus |= SW_ZE_MASK; + if ((NpxControl & CW_ZM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + } + stackPtr->tagvalue = TAG_INFINITY_MASK + (tag_xor & TAG_NEGATIVE_MASK); +} + +LOCAL VOID SetPrecisionBit IFN0() +{ + NpxStatus |= SW_PE_MASK; + if (npxRounding == ROUND_POS_INFINITY) { + FlagC1(1); + } else { + FlagC1(0); + } +} + +LOCAL VOID GetIntelTagword IFN1(IU32 *, current_tag) +{ + FPSTACKENTRY *tagPtr = &FPUStackBase[7]; + IU8 counter = 0; + + *current_tag = 0; + while (counter++ < 8) { + TestUneval(tagPtr); + *current_tag <<= 2; + if ((tagPtr->tagvalue & TAG_EMPTY_MASK) != 0) { + *current_tag |= 3; + } else { + if ((tagPtr->tagvalue & TAG_ZERO_MASK) != 0) { + *current_tag |= 1; + } else { + if ((tagPtr->tagvalue & ~TAG_NEGATIVE_MASK) != 0) { + *current_tag |= 2; + } + } + } + tagPtr--; + } +} + + +/* These functions write host format quantities out to the (bigendian +organised) intel memory. This requires that we define an ordering between the +two. The values in HOST_xxx are dependent upon the endian-ness of the port */ +/* According to this organisation, HOST_nnn_BYTE_0 is the offset to the most +significant byte in the representation of this format, and so on. */ +LOCAL VOID WriteFP32ToIntel IFN2(VOID *, destPtr, FPSTACKENTRY *, srcPtr) +{ + *(IU32 *)destPtr = *(IU32 *)srcPtr; +} + + +LOCAL VOID WriteFP64ToIntel IFN2(VOID *, destPtr, FPSTACKENTRY *, srcPtr) +{ + *((IU8 *)destPtr + 0) = *((IU8 *)srcPtr + HOST_R64_BYTE_0); + *((IU8 *)destPtr + 1) = *((IU8 *)srcPtr + HOST_R64_BYTE_1); + *((IU8 *)destPtr + 2) = *((IU8 *)srcPtr + HOST_R64_BYTE_2); + *((IU8 *)destPtr + 3) = *((IU8 *)srcPtr + HOST_R64_BYTE_3); + *((IU8 *)destPtr + 4) = *((IU8 *)srcPtr + HOST_R64_BYTE_4); + *((IU8 *)destPtr + 5) = *((IU8 *)srcPtr + HOST_R64_BYTE_5); + *((IU8 *)destPtr + 6) = *((IU8 *)srcPtr + HOST_R64_BYTE_6); + *((IU8 *)destPtr + 7) = *((IU8 *)srcPtr + HOST_R64_BYTE_7); +} + + +LOCAL VOID WriteFP80ToIntel IFN2(VOID *, destPtr, FPSTACKENTRY *, srcPtr) +{ + *((IU8 *)destPtr + 0) = *((IU8 *)srcPtr + HOST_R80_BYTE_0); + *((IU8 *)destPtr + 1) = *((IU8 *)srcPtr + HOST_R80_BYTE_1); + *((IU8 *)destPtr + 2) = *((IU8 *)srcPtr + HOST_R80_BYTE_2); + *((IU8 *)destPtr + 3) = *((IU8 *)srcPtr + HOST_R80_BYTE_3); + *((IU8 *)destPtr + 4) = *((IU8 *)srcPtr + HOST_R80_BYTE_4); + *((IU8 *)destPtr + 5) = *((IU8 *)srcPtr + HOST_R80_BYTE_5); + *((IU8 *)destPtr + 6) = *((IU8 *)srcPtr + HOST_R80_BYTE_6); + *((IU8 *)destPtr + 7) = *((IU8 *)srcPtr + HOST_R80_BYTE_7); + *((IU8 *)destPtr + 8) = *((IU8 *)srcPtr + HOST_R80_BYTE_8); + *((IU8 *)destPtr + 9) = *((IU8 *)srcPtr + HOST_R80_BYTE_9); +} + + +LOCAL VOID Mul64Bit8Bit IFN2(FPU_I64 *, as64, IU8, mul_count) +{ + CVTI64FPH(as64); + FPRes *= (FPH)mul_count; + CVTFPHI64(as64, &FPRes); +} + + +LOCAL VOID CopyFP IFN2(FPSTACKENTRY *, dest_addr, FPSTACKENTRY *, src_addr) +{ + (VOID)memcpy((VOID *)dest_addr, (VOID *)src_addr, sizeof(FPSTACKENTRY)); +} + + +LOCAL VOID MakeNaNQuiet IFN1(FPSTACKENTRY *, srcPtr) +{ + NpxStatus |= SW_IE_MASK; + NpxStatus &= ~SW_SF_MASK; + if ((NpxControl & CW_IM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + DoAPop=FALSE; + } else { + srcPtr->tagvalue ^= TAG_SNAN_MASK; + ((IU32 *)&(srcPtr->fpvalue))[NPX_HIGH_32_BITS] |= 0x40000000; + } +} + + +LOCAL VOID WriteBiggestNaN IFN3(IU16, destInd, FPSTACKENTRY *, val1Ptr, FPSTACKENTRY *, val2Ptr) +{ + FPSTACKENTRY *destPtr = StackEntryByIndex(destInd); + + /* We explicitely and deliberately store NaNs as two 32-bit values high word then low word */ + if (((IU32 *)&(val1Ptr->fpvalue))[NPX_HIGH_32_BITS] == ((IU32 *)&(val2Ptr->fpvalue))[NPX_HIGH_32_BITS]) { + if (((IU32 *)&(val1Ptr->fpvalue))[NPX_LOW_32_BITS] >= ((IU32 *)&(val2Ptr->fpvalue))[NPX_LOW_32_BITS]) { + /* It's val1 */ + CopyFP(destPtr, val1Ptr); + } else { + CopyFP(destPtr, val2Ptr); + } + } else { + if (((IU32 *)&(val1Ptr->fpvalue))[NPX_HIGH_32_BITS] > ((IU32 *)&(val2Ptr->fpvalue))[NPX_HIGH_32_BITS]) { + /* It's val1 */ + CopyFP(destPtr, val1Ptr); + } else { + CopyFP(destPtr, val2Ptr); + } + } + /* Always make it a quiet NaN */ + ((IU32 *)&(destPtr->fpvalue))[NPX_HIGH_32_BITS] |= 0x40000000; + destPtr->tagvalue &= ~TAG_SNAN_MASK; +} + + +LOCAL VOID Sub64Bit64Bit IFN2(FPU_I64 *, as64a, FPU_I64 *, as64b) +{ + FPH FPlocal; + + CVTI64FPH(as64b); + FPlocal = FPRes; + CVTI64FPH(as64a); + FPRes -= FPlocal; + CVTFPHI64(as64a, &FPRes); +} + + +LOCAL VOID CVTR80FPH IFN2(FPSTACKENTRY *, destPtr, FPSTACKENTRY *, srcPtr) +{ + IU32 munger; + IU16 bitleft; + + /* First, copy the sign bit */ + ((FPHOST *)&(destPtr->fpvalue))->hiword.sign = ((FP80 *)&(srcPtr->fpvalue))->sign_exp.sign; + /* Then, copy the modified exponent */ + munger = (IU32)((FP80 *)&(srcPtr->fpvalue))->sign_exp.exp; + munger -= (16383 - HOST_BIAS); + ((FPHOST *)&(destPtr->fpvalue))->hiword.exp = munger; + /* Finally, the mantissa */ + munger = (IU32)((FP80 *)&(srcPtr->fpvalue))->mant_hi; + munger <<= 1; + ((FPHOST *)&(destPtr->fpvalue))->hiword.mant_hi = (munger >> 12); + munger <<= 20; + munger |= ((FP80 *)&(srcPtr->fpvalue))->mant_lo >> 11; + bitleft = ((FP80 *)&(srcPtr->fpvalue))->mant_lo & 0x7ff; + + if (bitleft != 0) { + switch (NpxControl & ROUND_ZERO) { + case ROUND_NEAREST : + if (bitleft > 0x3ff) { + munger += 1; + } + break; + case ROUND_NEG_INFINITY : + if (((FPHOST *)&(destPtr->fpvalue))->hiword.sign = 1) { + munger += 1; + } + break; + case ROUND_POS_INFINITY : + if (((FPHOST *)&(destPtr->fpvalue))->hiword.sign = 0) { + munger += 1; + } + break; + case ROUND_ZERO : + /* Do nothing */ + break; + } + } + ((FPHOST *)&(destPtr->fpvalue))->mant_lo = munger; +} + + +LOCAL BOOL Cmp64BitGTE IFN2(FPU_I64 *, as64a, FPU_I64 *, as64b) +{ + FPH FPlocal; + + CVTI64FPH(as64b); + FPlocal = FPRes; + CVTI64FPH(as64a); + return(FPRes >= FPlocal); +} + + +LOCAL VOID CopyR32 IFN2(FPSTACKENTRY *, destPtr, VOID *, srcPtr) +{ + *(IU32 *)destPtr = *(IU32 *)srcPtr; +} + + +LOCAL VOID CVTI64FPH IFN1(FPU_I64 *, as64) +{ + FPRes = (FPH)as64->high_word * 4294967296.0 + (FPH)as64->low_word; +} + + +LOCAL VOID CVTFPHI64 IFN2(FPU_I64 *, as64, FPH *, FPPtr) +{ + IU32 high32 = 0; + IU32 low32 = 0; + IS32 exp; + IU32 holder; + IU32 signbit = 0; + + exp = ((FPHOST *)FPPtr)->hiword.exp; + if (exp != 0) { + high32 = ((FPHOST *)FPPtr)->hiword.mant_hi; + low32 = ((FPHOST *)FPPtr)->mant_lo; + /* Now stick a 1 at the top of the mantissa */ + /* Calculate where this is */ + holder = HOST_MAX_EXP+1; + signbit = 1; + while (holder >>= 1) { + signbit += 1; + } + high32 |= (1 << (32-signbit)); + exp -= HOST_BIAS; + exp -= (64-signbit); + + signbit = ((FPHOST *)FPPtr)->hiword.sign; + + /* high32 and low32 are (mantissa)*(2^52 ) + * exp is (true exponent-52) = number of bit positions to shift + * +ve implies shift left, -ve implies shift right + */ + if (exp > 0) { + if (exp >= 32) { + high32 = low32 << ( exp - 32 ) ; + low32 = 0; + } else { + high32 = high32 << exp ; + holder = low32 >> ( 32 -exp ) ; + high32 = high32 | holder ; + low32 = low32 << exp ; + } + } else { + if ( exp < 0) { + exp = -exp; + if ( exp >= 32 ) { + low32 = high32 >> ( exp - 32 ) ; + high32 = 0 ; + } else { + low32 = low32 >> exp ; + holder = high32 << ( 32 -exp ) ; + low32 = low32 | holder ; + high32 = high32 >> exp ; + } + } + } + } + if (signbit != 0) { + /* Make it negative */ + high32 ^= 0xffffffff; + low32 ^= 0xffffffff; + low32 += 1; + if (low32 == 0) { + high32 += 1; + } + } + as64->high_word = high32; + as64->low_word = low32; +} + + +LOCAL VOID Add64Bit8Bit IFN2(FPU_I64 *, as64, IU8, small_val) +{ + CVTI64FPH(as64); + FPRes += (FPH)small_val; + CVTFPHI64(as64, &FPRes); +} + + +LOCAL VOID CopyR64 IFN2(FPSTACKENTRY *, destPtr, VOID *, srcPtr) +{ + *((IU8 *)destPtr + HOST_R64_BYTE_0) = *((IU8 *)srcPtr + 0); + *((IU8 *)destPtr + HOST_R64_BYTE_1) = *((IU8 *)srcPtr + 1); + *((IU8 *)destPtr + HOST_R64_BYTE_2) = *((IU8 *)srcPtr + 2); + *((IU8 *)destPtr + HOST_R64_BYTE_3) = *((IU8 *)srcPtr + 3); + *((IU8 *)destPtr + HOST_R64_BYTE_4) = *((IU8 *)srcPtr + 4); + *((IU8 *)destPtr + HOST_R64_BYTE_5) = *((IU8 *)srcPtr + 5); + *((IU8 *)destPtr + HOST_R64_BYTE_6) = *((IU8 *)srcPtr + 6); + *((IU8 *)destPtr + HOST_R64_BYTE_7) = *((IU8 *)srcPtr + 7); +} + +/* + * CopyR80 is different from the above as it is called to copy + * between FPSTACKENTRYs. Copy straight through. + */ +LOCAL VOID CopyR80 IFN2(FPSTACKENTRY *, destPtr, VOID *, srcPtr) +{ + *(FP80 *)destPtr = *(FP80 *)srcPtr; +} + + +LOCAL VOID CVTFPHR80 IFN1(FPSTACKENTRY *, memPtr) +{ + IU32 munger; + + /* First, copy the sign bit */ + ((FP80 *)&(FPTemp.fpvalue))->sign_exp.sign = ((FPHOST *)&(memPtr->fpvalue))->hiword.sign; + /* Then, copy the modified exponent */ + munger = (IU32)((FPHOST *)&(memPtr->fpvalue))->hiword.exp; + munger += (16383 - HOST_BIAS); + ((FP80 *)&(FPTemp.fpvalue))->sign_exp.exp = munger; + /* Finally, the mantissa */ + munger = (IU32)((FPHOST *)&(memPtr->fpvalue))->hiword.mant_hi; + munger <<= 11; + munger |= 0x80000000; + ((FP80 *)&(FPTemp.fpvalue))->mant_hi = munger | (((FPHOST *)&(memPtr->fpvalue))->mant_lo >> 21); + ((FP80 *)&(FPTemp.fpvalue))->mant_lo = ((((FPHOST *)&(memPtr->fpvalue))->mant_lo) << 11); +} + + +LOCAL VOID WriteInfinityToIntel IFN2(VOID *, memPtr, IU16, neg_val) +{ + if (FPtype == M32R) { + if (neg_val == 0) { + *(IU32 *)memPtr = 0x7f800000; + } else { + *(IU32 *)memPtr = 0xff800000; + } + } else { + if (FPtype == M80R) { + if (neg_val == 0) { + *((IU8 *)memPtr + 0) = 0x7f; + } else { + *((IU8 *)memPtr + 0) = 0xff; + } + *((IU8 *)memPtr + 1) = 0xff; + *((IU8 *)memPtr + 2) = 0x80; + *((IU8 *)memPtr + 3) = 0; + *((IU8 *)memPtr + 4) = 0; + *((IU8 *)memPtr + 5) = 0; + *((IU8 *)memPtr + 6) = 0; + *((IU8 *)memPtr + 7) = 0; + *((IU8 *)memPtr + 8) = 0; + *((IU8 *)memPtr + 9) = 0; + } else { + if (neg_val == 0) { + *((IU8 *)memPtr + 0) = 0x7f; + } else { + *((IU8 *)memPtr + 0) = 0xff; + } + *((IU8 *)memPtr + 1) = 0xf0; + *((IU8 *)memPtr + 2) = 0; + *((IU8 *)memPtr + 3) = 0; + *((IU8 *)memPtr + 4) = 0; + *((IU8 *)memPtr + 5) = 0; + *((IU8 *)memPtr + 6) = 0; + *((IU8 *)memPtr + 7) = 0; + } + } +} + + +LOCAL VOID PopStack IFN0() +{ + /* Mark current TOS as free */ + TOSPtr->tagvalue = TAG_EMPTY_MASK; + TOSPtr = StackEntryByIndex(1); + DoAPop = FALSE; +} + + +LOCAL VOID CPY64BIT8BIT IFN2(FPU_I64 *, as64, IU8 *, as8) +{ + *as8 = (as64->low_word & 0xff); +} + + +LOCAL VOID WriteIntegerIndefinite IFN1(VOID *, memPtr) +{ + switch (FPtype) { + case M16I : *((IU32 *)memPtr) = 0x8000; + break; + case M32I : *((IU32 *)memPtr) = 0x80000000; + break; + case M64I : *((IU8 *)memPtr + 0) = 0x80; + *((IU8 *)memPtr + 1) = 0; + *((IU8 *)memPtr + 2) = 0; + *((IU8 *)memPtr + 3) = 0; + *((IU8 *)memPtr + 4) = 0; + *((IU8 *)memPtr + 5) = 0; + *((IU8 *)memPtr + 6) = 0; + *((IU8 *)memPtr + 7) = 0; + break; + } +} + + +/*( +Name : SignalStackOverflow +Function : To set the required bits in the status word following + a stack overflow exception, and to issue the required + response. +)*/ + + +LOCAL VOID SignalStackOverflow IFN1(FPSTACKENTRY *, StackPtr) +{ + NpxStatus |= (SW_IE_MASK | SW_SF_MASK); + FlagC1(1); + if ((NpxControl & CW_IM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + DoAPop=FALSE; /* Just in case it was set */ + } else { + WriteIndefinite(StackPtr); + } +} + + +LOCAL VOID Set64Bit IFN2(FPU_I64 *, as64, IU8, small_val) +{ + as64->high_word = 0; + as64->low_word = small_val; +} + + +LOCAL VOID Sub64Bit8Bit IFN2(FPU_I64 *, as64, IU8, small_val) +{ + CVTI64FPH(as64); + FPRes -= (FPH)small_val; + CVTFPHI64(as64, &FPRes); +} + + +LOCAL VOID SignalBCDIndefinite IFN1(IU8 *, memPtr) +{ + *((IU8 *)memPtr + 0) = 0xff; + *((IU8 *)memPtr + 1) = 0xff; + *((IU8 *)memPtr + 2) = 0xc0; + *((IU8 *)memPtr + 3) = 0; + *((IU8 *)memPtr + 4) = 0; + *((IU8 *)memPtr + 5) = 0; + *((IU8 *)memPtr + 6) = 0; + *((IU8 *)memPtr + 7) = 0; + *((IU8 *)memPtr + 8) = 0; + *((IU8 *)memPtr + 9) = 0; +} + +/* Called from cpu_init and cpu_reset */ + +GLOBAL VOID InitNpx IFN1(IBOOL, disabled) +{ + IU16 i; + IU8 *bottom_ptr; + IU16 stackPtr = 0; + SAVED IBOOL first = TRUE; + + /* Set up a couple of control type things */ + NpxException = FALSE; + NPX_ADDRESS_SIZE_32 = FALSE; + NPX_PROT_MODE = FALSE; + + if (first) + { + /* Get the required memory */ +#ifndef SFELLOW + check_malloc(FPUStackBase, 8, FPSTACKENTRY); +#else + FPUStackBase = (FPSTACKENTRY *)SFMalloc(8*sizeof(FPSTACKENTRY), FALSE); +#endif /* SFELLOW */ + first = FALSE; + } + + for (i=0; i<8; i++) { + (FPUStackBase+i)->tagvalue = TAG_EMPTY_MASK; + } + TOSPtr = FPUStackBase; + DoAPop = FALSE; + + i=0; + FpatanTable[i++] = NULL; + FpatanTable[i++] = NULL; + FpatanTable[i++] = npx_pi_by_two; + FpatanTable[i++] = npx_pi_by_two; + FpatanTable[i++] = npx_zero; + FpatanTable[i++] = npx_pi; + FpatanTable[i++] = NULL; + FpatanTable[i++] = NULL; + FpatanTable[i++] = NULL; + FpatanTable[i++] = NULL; + FpatanTable[i++] = npx_minus_pi_by_two; + FpatanTable[i++] = npx_minus_pi_by_two; + FpatanTable[i++] = npx_minus_zero; + FpatanTable[i++] = npx_minus_pi; + FpatanTable[i++] = NULL; + FpatanTable[i++] = NULL; + FpatanTable[i++] = npx_zero; + FpatanTable[i++] = npx_pi; + FpatanTable[i++] = npx_zero; + FpatanTable[i++] = npx_pi; + FpatanTable[i++] = npx_zero; + FpatanTable[i++] = npx_pi; + FpatanTable[i++] = NULL; + FpatanTable[i++] = NULL; + FpatanTable[i++] = npx_minus_zero; + FpatanTable[i++] = npx_minus_pi; + FpatanTable[i++] = npx_minus_zero; + FpatanTable[i++] = npx_minus_pi; + FpatanTable[i++] = npx_minus_zero; + FpatanTable[i++] = npx_minus_pi; + FpatanTable[i++] = NULL; + FpatanTable[i++] = NULL; + FpatanTable[i++] = npx_pi_by_two; + FpatanTable[i++] = npx_pi_by_two; + FpatanTable[i++] = npx_pi_by_two; + FpatanTable[i++] = npx_pi_by_two; + FpatanTable[i++] = npx_pi_by_four; + FpatanTable[i++] = npx_three_pi_by_four; + FpatanTable[i++] = NULL; + FpatanTable[i++] = NULL; + FpatanTable[i++] = npx_minus_pi_by_two; + FpatanTable[i++] = npx_minus_pi_by_two; + FpatanTable[i++] = npx_minus_pi_by_two; + FpatanTable[i++] = npx_minus_pi_by_two; + FpatanTable[i++] = npx_minus_pi_by_four; + FpatanTable[i++] = npx_minus_three_pi_by_four; + FpatanTable[i++] = NULL; + FpatanTable[i++] = NULL; + FpatanTable[i++] = NULL; + FpatanTable[i++] = NULL; + FpatanTable[i++] = NULL; + FpatanTable[i++] = NULL; + FpatanTable[i++] = NULL; + FpatanTable[i++] = NULL; + FpatanTable[i++] = NULL; + FpatanTable[i++] = NULL; + FpatanTable[i++] = NULL; + FpatanTable[i++] = NULL; + FpatanTable[i++] = NULL; + FpatanTable[i++] = NULL; + FpatanTable[i++] = NULL; + FpatanTable[i++] = NULL; + FpatanTable[i++] = NULL; + FpatanTable[i] = NULL; + + /* Finally, the rest of the FINIT functionality */ + + NpxDisabled = disabled; /* If disabled via the UIF we must ignore FSTSW/FSTCW */ + + NpxControl = 0x037f; + npxRounding = ROUND_NEAREST; + NpxStatus = 0; + NpxLastSel=0; + NpxLastOff=0; + NpxFEA=0; + NpxFDS=0; + NpxFIP=0; + NpxFOP=0; + NpxFCS=0; + +} + + +/*( +Name : LoadValue +Function : Load up the value for any flavour of operand. + This is ALWAYS inlined. +)*/ + + +LOCAL VOID LoadValue IFN2(VOID *, SrcOp, IU16 *, IndexVal) +{ + if (FPtype == FPSTACK) { + *IndexVal = *(IU16 *)SrcOp; + } else { + switch (FPtype) { + case M16I: Loadi16ToFP(&FPTemp, SrcOp); + break; + case M32I: Loadi32ToFP(&FPTemp, SrcOp); + break; + case M64I: Loadi64ToFP(&FPTemp, SrcOp); + break; + case M32R: Loadr32ToFP(&FPTemp, SrcOp, FALSE); + break; + case M64R: Loadr64ToFP(&FPTemp, SrcOp, FALSE); + break; + case M80R: Loadr80ToFP(&FPTemp, SrcOp); + break; + } + *IndexVal = FPTEMP_INDEX; + } +} + + +/*( +Name : Loadi16ToFP +Function : Load a 16-bit value from intel memory and convert it + to FPH +)*/ + +LOCAL VOID Loadi16ToFP IFN2(FPSTACKENTRY *, FPPtr, VOID *, memPtr) +{ + IS16 asint; + + asint = (IS16)*((IU32 *)memPtr); /* High byte */ + if (asint == 0) { + /* Fast pass through */ + FPPtr->tagvalue = TAG_ZERO_MASK; + } else { + FPPtr->fpvalue = (FPH)asint; + if (asint < 0) { + FPPtr->tagvalue = TAG_NEGATIVE_MASK; + } else { + FPPtr->tagvalue = 0; + } + } +} + + + +/*( +Name : Loadi32ToFP +Function : Load a 32-bit value from intel memory and convert it + to FPH +)*/ + + +LOCAL VOID Loadi32ToFP IFN2(FPSTACKENTRY *, FPPtr, VOID *, memPtr) +{ + IS32 asint; + + asint = *((IS32 *)memPtr); + if (asint == 0) { + /* Fast pass through */ + FPPtr->tagvalue = TAG_ZERO_MASK; + } else { + FPPtr->fpvalue = (FPH)asint; + if (asint < 0) { + FPPtr->tagvalue = TAG_NEGATIVE_MASK; + } else { + FPPtr->tagvalue = 0; + } + } +} + + + +/*( +Name : Loadi64ToFP +Function : Load a 64-bit value from intel memory and convert it + to FPH +)*/ + + +LOCAL VOID Loadi64ToFP IFN2(FPSTACKENTRY *, FPPtr, VOID *, memPtr) +{ + IS32 asint_hi; + IU32 asint_lo; + + asint_hi = *((IS8 *)memPtr + 0); + asint_hi <<= 8; + asint_hi += *((IU8 *)memPtr + 1); + asint_hi <<= 8; + asint_hi += *((IU8 *)memPtr + 2); + asint_hi <<= 8; + asint_hi += *((IU8 *)memPtr + 3); + + asint_lo = *((IU8 *)memPtr + 4); + asint_lo <<= 8; + asint_lo += *((IU8 *)memPtr + 5); + asint_lo <<= 8; + asint_lo += *((IU8 *)memPtr + 6); + asint_lo <<= 8; + asint_lo += *((IU8 *)memPtr + 7); + + if ((asint_hi | asint_lo) == 0) { + /* Fast pass through */ + FPPtr->tagvalue = TAG_ZERO_MASK; + } else { + FPPtr->fpvalue = (FPH)asint_hi*4294967296.0 + (FPH)asint_lo; + if (asint_hi < 0) { + FPPtr->tagvalue = TAG_NEGATIVE_MASK; + } else { + FPPtr->tagvalue = 0; + } + } +} + + + +/*( +Name : Loadr32ToFP +Function : Load a 32-bit real value from intel memory and convert + it to FPH +)*/ + + +LOCAL VOID Loadr32ToFP IFN3(FPSTACKENTRY *, FPPtr, VOID *, memPtr, BOOL, setTOS) +{ + IU16 localtag; + IS32 mantissa; + + /* Note that this, being a 32-bit quantity, is loaded with correct + host endianness */ + if (((FP32 *)memPtr)->sign == 1) { + localtag = TAG_NEGATIVE_MASK; + } else { + localtag = 0; + } + /* Now check the exponent... */ + if (((FP32 *)memPtr)->exp == 0) { + /* It's either zero or denormal */ + mantissa = ((FP32 *)memPtr)->mant; + if (mantissa == 0x0) { + /* It's zero */ + localtag |= TAG_ZERO_MASK; + } else { + /* It's a denormal */ + NpxStatus |= SW_DE_MASK; + if ((NpxControl & CW_DM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + if (setTOS) + TOSPtr = FPPtr; + DoNpxException(); + return; + } else { + FPPtr->fpvalue = (FPH)(*(float *)memPtr); + } + } + } else { + if (((FP32 *)memPtr)->exp == 255) { + /* It's either infinity or a NaN */ + mantissa = ((FP32 *)memPtr)->mant; + if (mantissa == 0x0) { + /* It's infinity */ + localtag |= TAG_INFINITY_MASK; + } else { + localtag |= TAG_NAN_MASK; + /* Is it quiet or signalling? */ + if ((mantissa & 0x400000) == 0) { + /* It's a signalling NaN */ + NpxStatus |= SW_IE_MASK; + if ((NpxControl & CW_IM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + return; + } + } + /* Must load up the mantissa of the NaN */ + ((IU32 *)FPPtr)[NPX_HIGH_32_BITS] = ((mantissa << 8) | 0x80000000); + ((IU32 *)FPPtr)[NPX_LOW_32_BITS] = 0; + if ((mantissa & 0x400000) == 0) { + if (setTOS) + ((IS32 *)FPPtr)[NPX_HIGH_32_BITS] |= 0x40000000; + else + localtag |= TAG_SNAN_MASK; + } + } + } else { + /* It's a boring ordinary number */ + FPPtr->fpvalue = (FPH)(*(float *)memPtr); + } + } + FPPtr->tagvalue = localtag; +} + + +/*( +Name : Loadr64ToFP +Function : Load a 64-bit real value from intel memory and convert + it to FPH +)*/ + +LOCAL VOID Loadr64ToFP IFN3(FPSTACKENTRY *, FPPtr, VOID *, memPtr, BOOL, setTOS) +{ + IU16 localtag; + IS32 mantissa_lo; + IS32 mantissa_hi; + + CopyR64(FPUpload, memPtr); + if (((FP64 *)&(FPUpload->fpvalue))->hiword.sign != 0) { + localtag = TAG_NEGATIVE_MASK; + } else { + localtag = 0; + } + /* Now check the exponent... */ + if (((FP64 *)&(FPUpload->fpvalue))->hiword.exp == 0) { + /* It's either zero or denormal */ + mantissa_lo = ((FP64 *)&(FPUpload->fpvalue))->mant_lo; + mantissa_hi = ((FP64 *)&(FPUpload->fpvalue))->hiword.mant_hi; + if ((mantissa_lo | mantissa_hi) == 0) { + /* It's zero */ + localtag |= TAG_ZERO_MASK; + } else { + /* It's a denormal */ + NpxStatus |= SW_DE_MASK; + if ((NpxControl & CW_DM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + if (setTOS) + TOSPtr = FPPtr; + DoNpxException(); + } else { + FPPtr->fpvalue = (FPH)(*(DOUBLE *)&(FPUpload->fpvalue)); + /* Really need a sort of host denormal detection */ + /* localtag |= TAG_DENORMAL_MASK; */ + } + } + } else { + if (((FP64 *)&(FPUpload->fpvalue))->hiword.exp == 2047) { + /* It's either infinity or a NaN */ + mantissa_lo = ((FP64 *)&(FPUpload->fpvalue))->mant_lo; + mantissa_hi = ((FP64 *)&(FPUpload->fpvalue))->hiword.mant_hi; + if ((mantissa_lo | mantissa_hi) == 0) { + /* It's infinity */ + localtag |= TAG_INFINITY_MASK; + } else { + localtag |= TAG_NAN_MASK; + /* Is it quiet or signalling? */ + if ((mantissa_hi & 0x80000) == 0) { + /* It's a signalling NaN */ + NpxStatus |= SW_IE_MASK; + if ((NpxControl & CW_IM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + return; + } + } + /* Must load up the mantissa of the NaN */ + ((IS32 *)FPPtr)[NPX_HIGH_32_BITS] = ((mantissa_hi << 11) | 0x80000000); + ((IS32 *)FPPtr)[NPX_HIGH_32_BITS] |= ((IU32)mantissa_lo >> 21); + ((IS32 *)FPPtr)[NPX_LOW_32_BITS] = (mantissa_lo << 11); + if ((mantissa_hi & 0x80000) == 0) { + if (setTOS) + ((IS32 *)FPPtr)[NPX_HIGH_32_BITS] |= 0x40000000; + else + localtag |= TAG_SNAN_MASK; + } + } + } else { + /* It's a boring ordinary number */ + FPPtr->fpvalue = (FPH)(*(DOUBLE *)FPUpload); + } + } + FPPtr->tagvalue = localtag; +} + + +/*( +Name : LoadrTByteToFP +Function : Load a 80-bit real value from intel memory and convert + it to FPH +)*/ + + +/* + * The R80 representation is { IU64 mant; IU16 signexp } + * in order to be compatible with the Acpu representation of things. + */ +LOCAL VOID LoadTByteToFP IFN2(FPSTACKENTRY *, FPPtr, VOID *, memPtr) +{ + *((IU8 *)FPPtr + HOST_R80_BYTE_0) = *((IU8 *)memPtr + 0); + *((IU8 *)FPPtr + HOST_R80_BYTE_1) = *((IU8 *)memPtr + 1); + *((IU8 *)FPPtr + HOST_R80_BYTE_2) = *((IU8 *)memPtr + 2); + *((IU8 *)FPPtr + HOST_R80_BYTE_3) = *((IU8 *)memPtr + 3); + *((IU8 *)FPPtr + HOST_R80_BYTE_4) = *((IU8 *)memPtr + 4); + *((IU8 *)FPPtr + HOST_R80_BYTE_5) = *((IU8 *)memPtr + 5); + *((IU8 *)FPPtr + HOST_R80_BYTE_6) = *((IU8 *)memPtr + 6); + *((IU8 *)FPPtr + HOST_R80_BYTE_7) = *((IU8 *)memPtr + 7); + *((IU8 *)FPPtr + HOST_R80_BYTE_8) = *((IU8 *)memPtr + 8); + *((IU8 *)FPPtr + HOST_R80_BYTE_9) = *((IU8 *)memPtr + 9); +} + + +/*( +Name : Loadr80ToFP +Function : Load a 80-bit real value from intel memory +)*/ + + +LOCAL VOID Loadr80ToFP IFN2(FPSTACKENTRY *, FPPtr, VOID *, memPtr) +{ + LoadTByteToFP(FPPtr, memPtr); + FPPtr->tagvalue = TAG_R80_MASK; +} + + +LOCAL VOID ConvertR80 IFN1(FPSTACKENTRY *, memPtr) +{ +IU32 mantissa_hi; +IU32 mantissa_lo; +IU16 exp_value; + + CopyR80(FPUpload, (VOID *)&(memPtr->fpvalue)); + if (((FP80 *)&(FPUpload->fpvalue))->sign_exp.sign != 0) { + memPtr->tagvalue = TAG_NEGATIVE_MASK; + } else { + memPtr->tagvalue = 0; + } + exp_value = ((FP80 *)&(FPUpload->fpvalue))->sign_exp.exp; + mantissa_hi = ((FP80 *)&(FPUpload->fpvalue))->mant_hi; + mantissa_lo = ((FP80 *)&(FPUpload->fpvalue))->mant_lo; + /* Now check the exponent... */ + if ((exp_value >= (16383-HOST_BIAS)) && (exp_value <= (16383+HOST_BIAS))) { + /* It's a boring ordinary number */ + /* But let's check that it isn't an unnormal */ + if ((mantissa_hi & 0x80000000) == 0) { + memPtr->tagvalue |= TAG_UNSUPPORTED_MASK; + } else { + CVTR80FPH(memPtr, FPUpload); + } + return; + } + if (exp_value == 0) { + /* It's either zero or denormal */ + /* It's only meaningful to check for a denorm if HOST_BIAS + is equal to or greater than 16383. Otherwise we can do + nothing except set the thing to zero. + */ +#if (HOST_BIAS >= 16383) + if ((mantissa_hi | mantissa_lo) == 0) { + /* It's zero */ + memPtr->tagvalue |= TAG_ZERO_MASK; + } else { + /* It's a denormal */ + /* First, check it isn't a pseudodenorm */ + if ((mantissa_hi & 0x80000000) != 0) { + memPtr->tagvalue |= TAG_UNSUPPORTED_MASK; + } else { + memPtr->tagvalue |= TAG_DENORMAL_MASK; + CVTR80FPH(memPtr, FPUpload); + } + } +#else + /* It's zero either way */ + if ((mantissa_hi | mantissa_lo) != 0) { + /* It's a denormal */ + memPtr->tagvalue |= TAG_DENORMAL_MASK; + } + memPtr->tagvalue |= TAG_ZERO_MASK; +#endif + } else { + if ((mantissa_hi & 0x80000000) == 0) { + memPtr->tagvalue |= TAG_UNSUPPORTED_MASK; + } else { + if (exp_value == 32767) { + /* It's either infinity or a NaN */ + if ((mantissa_hi == 0x80000000) && mantissa_lo == 0) { + /* It's infinity */ + memPtr->tagvalue |= TAG_INFINITY_MASK; + } else { + memPtr->tagvalue |= TAG_NAN_MASK; + /* Is it quiet or signalling? */ + if ((mantissa_hi & 0x40000000) == 0) { + /* It's a signalling NaN */ + memPtr->tagvalue |= TAG_SNAN_MASK; + } + /* Must load up the mantissa of the NaN */ + ((IU32 *)memPtr)[NPX_HIGH_32_BITS] = mantissa_hi; + ((IU32 *)memPtr)[NPX_LOW_32_BITS] = mantissa_lo; + } + } else { + if (exp_value > 16384) { + /* Default to infinity */ + memPtr->tagvalue |= TAG_INFINITY_MASK; + } else { + /* Default to zero */ + memPtr->tagvalue |= TAG_ZERO_MASK; + } + } + } + } +} + + + +/*( +Name : PostCheckOUP +Function : This generator is associated with the result of an + instruction emulation whose result, an FPH, is to + be written out to the stack. We check for O, U anf + P exceptions here, but we make no attempt to write out + the result. This is because the writing of the result + is independent of these exceptions, since for results + being written to the stack, delivery of the result + cannot be prevented even where these exceptions are + unmasked. +)*/ + + +LOCAL VOID PostCheckOUP IFN0() +{ + if (HostGetOverflowException() != 0) { + NpxStatus |= SW_OE_MASK; /* Set the overflow bit */ + /* For the masked overflow case, the result delivered by */ + /* the host will be correct, provided it is IEEE compliant. */ + if ((NpxControl & CW_OM_MASK) == 0) { + AdjustOverflowResponse(); + NpxStatus |= SW_ES_MASK; + NpxException = TRUE; + } + } else { + /* Overflow and underflow being mutually exclusive... */ + if (HostGetUnderflowException() != 0) { + NpxStatus |= SW_UE_MASK; + if ((NpxControl & CW_UM_MASK) == 0) { + AdjustUnderflowResponse(); + NpxStatus |= SW_ES_MASK; + NpxException = TRUE; + } + } + } + if (HostGetPrecisionException() != 0) { + SetPrecisionBit(); + if ((NpxControl & CW_PM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + NpxException = TRUE; + } + } +} + + + +/*( +Name : CalcTagword +Function : To calculate the tagword associated with a value + and write out the result where appropriate. +)*/ + + +LOCAL VOID CalcTagword IFN1(FPSTACKENTRY *, FPPtr) +{ + IU16 tagword; + + FPPtr->fpvalue = FPRes; + if (((FPHOST *)&(FPPtr->fpvalue))->hiword.sign == 1) { + tagword = TAG_NEGATIVE_MASK; + } else { + tagword = 0; + } + if (((FPHOST *)&(FPPtr->fpvalue))->hiword.exp == 0) { + /* It's either a zero or a denorm */ + if (FPPtr->fpvalue == 0.0) { + /* It's a zero */ + tagword |= TAG_ZERO_MASK; +#if (HOST_BIAS >= 16383) + } else { + /* It's a denorm */ + tagword |= TAG_DENORMAL_MASK; +#endif + } + } else { + if (((FPHOST *)&(FPPtr->fpvalue))->hiword.exp == HOST_MAX_EXP) { + /* It MUST be infinity as we can't generate NaNs */ + tagword |= TAG_INFINITY_MASK; + } + } + FPPtr->tagvalue = tagword; + if (NpxException) { + DoNpxException(); + } +} + + + +/*( +Name : SignalStackUnderflow +Function : To set the required bits in the status word following + a stack underflow exception, and to issue the required + response. +)*/ + +LOCAL VOID SignalStackUnderflow IFN1(FPSTACKENTRY *, StackPtr) +{ + NpxStatus |= (SW_IE_MASK | SW_SF_MASK); + FlagC1(0); + if ((NpxControl & CW_IM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + DoAPop=FALSE; /* Just in case it was set */ + } else { + WriteIndefinite(StackPtr); + } +} + + +/*( +Name : SignalSNaN +Function : To set the required bits in the status word following + detection of a signalling NaN. +)*/ + + +LOCAL VOID SignalSNaN IFN1(FPSTACKENTRY *, StackPtr) +{ + NpxStatus |= SW_IE_MASK; + NpxStatus &= ~SW_SF_MASK; + if ((NpxControl & CW_IM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + DoAPop=FALSE; + } +} + + +/*( +Name : SignalInvalid +Function : To set the required bits in the status word following + any standard "invalid" exception +)*/ + + +LOCAL VOID SignalIndefinite IFN1(FPSTACKENTRY *, StackPtr) +{ + NpxStatus |= SW_IE_MASK; + NpxStatus &= ~SW_SF_MASK; + if ((NpxControl & CW_IM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + DoAPop=FALSE; + } else { + WriteIndefinite(StackPtr); + } +} + + + +LOCAL VOID SignalInvalid IFN0() +{ + NpxStatus |= SW_IE_MASK; + NpxStatus &= ~SW_SF_MASK; + if ((NpxControl & CW_IM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + DoAPop=FALSE; + } +} + + + +/*( +Name : WriteIndefinite +Function : Write the value "indefinite" into the location +)*/ + +LOCAL VOID WriteIndefinite IFN1(FPSTACKENTRY *, StackPtr) +{ + StackPtr->tagvalue = (TAG_NEGATIVE_MASK | TAG_NAN_MASK); + (((IU32 *)StackPtr)[NPX_HIGH_32_BITS]) = 0xc0000000; + (((IU32 *)StackPtr)[NPX_LOW_32_BITS]) = 0; +} + + + +/* This generator should always be inlined. */ + + +LOCAL VOID Test2NaN IFN3(IU16, destIndex, FPSTACKENTRY *, src1_addr, FPSTACKENTRY *, src2_addr) +{ + /* Are they both NaNs? */ + if ((tag_xor & TAG_NAN_MASK) == 0) { + /* Yes, they are. */ + WriteBiggestNaN(destIndex, src1_addr, src2_addr); + } else { + /* No, only one NaN. */ + if ((src1_addr->tagvalue & TAG_NAN_MASK) != 0) { + /* It was src1. */ + src2_addr = StackEntryByIndex(destIndex); + CopyFP(src2_addr, src1_addr); + if ((src2_addr->tagvalue & TAG_SNAN_MASK) != 0) { + src2_addr->tagvalue ^= TAG_SNAN_MASK; + SignalInvalid(); + (((IU32 *)src2_addr)[NPX_HIGH_32_BITS]) |= 0x40000000; + } + } else { + /* It was src2. */ + src1_addr = StackEntryByIndex(destIndex); + CopyFP(src1_addr, src2_addr); + if ((src1_addr->tagvalue & TAG_SNAN_MASK) != 0) { + src1_addr->tagvalue ^= TAG_SNAN_MASK; + SignalInvalid(); + (((IU32 *)src1_addr)[NPX_HIGH_32_BITS]) |= 0x40000000; + } + } + } +} + + + +/* +Name : F2XM1 +Function : Compute 2**x - 1 +Operation : ST <- (2**ST - 1) +Flags : C1 set as per table 15-1 +Exceptions : P, U, D, I, IS +Valid range : -1 < ST < +1 +Notes : If ST is outside the required range, the result is + undefined. +)*/ + + +GLOBAL VOID F2XM1 IFN0() +{ + /* Clear C1 */ + FlagC1(0); + TestUneval(TOSPtr); + /* Check if a real value... */ + if ((TOSPtr->tagvalue & ~TAG_NEGATIVE_MASK) == 0) { + HostClearExceptions(); + /* We can just write the value straight out */ + FPRes = pow(2.0, TOSPtr->fpvalue) - 1.0; + PostCheckOUP(); + /* This could return anything really.... */ + CalcTagword(TOSPtr); + return; + } else { + /* Some funny bit was set. Check for the possibilities */ + /* We begin with the most obvious cases... */ + /* Response to zero is to return zero with same sign */ + if ((TOSPtr->tagvalue & TAG_ZERO_MASK) != 0) { + return; /* The required result! */ + } + /* We do denorm checking and bit setting ourselves because this */ + /* reduces the overhead if the thing is masked. */ + if ((TOSPtr->tagvalue & TAG_DENORMAL_MASK) != 0) { + NpxStatus |= SW_DE_MASK; + if ((NpxControl & CW_DM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + } else { + HostClearExceptions(); + FPRes = pow(2.0, TOSPtr->fpvalue) - 1.0; + PostCheckOUP(); + /* Could return a denorm, zero, real, infinity... */ + CalcTagword(TOSPtr); + } + return; + } + /* If -infinity, return -1. If +infinity, return that */ + /* Sensible enough really, I suppose */ + if ((TOSPtr->tagvalue & TAG_INFINITY_MASK) != 0) { + if ((TOSPtr->tagvalue & TAG_NEGATIVE_MASK) != 0) { + memset((char*)TOSPtr,0,sizeof(FPSTACKENTRY)); + TOSPtr->fpvalue = -1.0; + TOSPtr->tagvalue = TAG_NEGATIVE_MASK; + } + return; + } + if ((TOSPtr->tagvalue & TAG_EMPTY_MASK) != 0) { + SignalStackUnderflow(TOSPtr); + return; + } + if ((TOSPtr->tagvalue & TAG_SNAN_MASK) != 0) { + MakeNaNQuiet(TOSPtr); + return; + } + if ((TOSPtr->tagvalue & TAG_UNSUPPORTED_MASK) != 0) { + SignalIndefinite(TOSPtr); + return; + } + } +} + +/*( +Name : FABS +Function : Make the value absolute +Operation : sign bit of ST <- 0 +Flags : C1 as per table 15-1. C0, C2 and C3 undefined +Exceptions : IS +Valid range : Any +Notes : Note that only the IS exception can be flagged. All + other error conditions are ignored, even a signalling + NaN! We ALWAYS attempt to make the value positive. +)*/ + + +GLOBAL VOID FABS IFN0() +{ + /* Clear C1 */ + FlagC1(0); + TestUneval(TOSPtr); + if ((TOSPtr->tagvalue & TAG_EMPTY_MASK) == 0) { + /* Now clear the negative bit. */ + if ((TOSPtr->tagvalue & TAG_NEGATIVE_MASK) != 0) { + TOSPtr->tagvalue ^= TAG_NEGATIVE_MASK; + /* If the value is real or denormal, we'll want to change the MSB */ + if ((TOSPtr->tagvalue & ~TAG_DENORMAL_MASK) == 0) { + ((FPHOST *)&(TOSPtr->fpvalue))->hiword.sign = 0; + } + } + } else { + SignalStackUnderflow(TOSPtr); + } +} + +/*( +Name : FADD +Function : Add two numbers together +Operation : Dest <- Src1 + Src2 +Flags : C1 as per table 15-1. C0, C2 and C3 undefined +Exceptions : IS +Valid range : Any +Notes : Note the dependence on the rounding mode when + calculating the sign of zero for situations + where two zeroes of different sign are input. +)*/ + + +GLOBAL VOID FADD IFN3(IU16, destIndex, IU16, src1Index, VOID *, src2) +{ + IU16 src2Index; + + LoadValue(src2, &src2Index); + if (POPST) { + DoAPop=TRUE; + } + GenericAdd(destIndex, src1Index, src2Index); + if (POPST) { + if (DoAPop) { + PopStack(); + } + } +} + + + +/*( +Name : GenericAdd +Function : To return dest <- src1+src2 +)*/ + + +LOCAL VOID GenericAdd IFN3(IU16, destIndex, IU16, src1Index, IU16, src2Index) +{ + FPSTACKENTRY *src1_addr; + FPSTACKENTRY *src2_addr; + + src1_addr = StackEntryByIndex(src1Index); + src2_addr = StackEntryByIndex(src2Index); + + /* Clear C1 */ + FlagC1(0); + /* If the only tagword bits set are negative or denormal then just proceed */ + TestUneval(src1_addr); + TestUneval(src2_addr); + tag_or = (src1_addr->tagvalue | src2_addr->tagvalue); + if ((tag_or & ~TAG_NEGATIVE_MASK) == 0) { + HostClearExceptions(); + FPRes = src1_addr->fpvalue + src2_addr->fpvalue; + /* Reuse one of the above to calculate the destination */ + src1_addr = StackEntryByIndex(destIndex); + PostCheckOUP(); + /* Could return virtually anything */ + CalcTagword(src1_addr); + } else { + /* Some funny bit was set. Check for the possibilities */ + /* The odds on an 'empty', 'unsupported' or 'nan' must be low... */ + if ((tag_or & ((TAG_EMPTY_MASK | TAG_UNSUPPORTED_MASK) | TAG_NAN_MASK)) != 0) { + if ((tag_or & TAG_UNSUPPORTED_MASK) != 0) { + src1_addr = StackEntryByIndex(destIndex); + SignalIndefinite(src1_addr); + } else { + if ((tag_or & TAG_EMPTY_MASK) != 0) { + src1_addr = StackEntryByIndex(destIndex); + SignalStackUnderflow(src1_addr); + } else { + /* It must be a NaN type thing. */ + /* Calculate the xor of the tagwords. */ + tag_xor = (src1_addr->tagvalue ^ src2_addr->tagvalue); + Test2NaN(destIndex, src1_addr, src2_addr); + } + } + return; + } + /* Check for the denorm case...I think the odds on it are low, however */ + if ((tag_or & TAG_DENORMAL_MASK) != 0) { + NpxStatus |= SW_DE_MASK; + if ((NpxControl & CW_DM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + DoAPop=FALSE; + return; + } else { + /* First, make sure that we don't have any zeros or */ + /* infinities lurking around... */ + if ((tag_or & ~(TAG_DENORMAL_MASK | TAG_NEGATIVE_MASK)) == 0) { + HostClearExceptions(); + FPRes = src1_addr->fpvalue + src2_addr->fpvalue; + /* Reuse one of the above to calculate the destination */ + src1_addr = StackEntryByIndex(destIndex); + PostCheckOUP(); + /* Could return anything */ + CalcTagword(src1_addr); + return; + } + /* If there were zeros or infinities then we go on to the */ + /* appropriate code */ + } + } + tag_xor = (src1_addr->tagvalue ^ src2_addr->tagvalue); + /* Check for the case of zero... This is very likely */ + if ((tag_or & TAG_ZERO_MASK) != 0) { + if ((tag_xor & TAG_ZERO_MASK) != 0) { + /* Only one zero. */ + if ((src1_addr->tagvalue & TAG_ZERO_MASK) != 0) { + src1_addr = StackEntryByIndex(destIndex); + CopyFP(src1_addr, src2_addr); + } else { + src2_addr = StackEntryByIndex(destIndex); + CopyFP(src2_addr, src1_addr); + } + } else { + /* Both are zeros. Do they have the same sign? */ + src1_addr = StackEntryByIndex(destIndex); + if ((tag_xor & TAG_NEGATIVE_MASK) != 0) { + /* No, they don't */ + if (npxRounding == ROUND_NEG_INFINITY) { + src1_addr->tagvalue = (TAG_ZERO_MASK | TAG_NEGATIVE_MASK); + } else { + src1_addr->tagvalue = TAG_ZERO_MASK; + } + } + } + return; + } + /* The only funny bit left is infinity */ + if ((tag_xor & TAG_INFINITY_MASK) == 0) { + /* They are both infinity. */ + /* If they are the same sign, copy either */ + src1_addr = StackEntryByIndex(destIndex); + if ((tag_xor & TAG_NEGATIVE_MASK) == 0) { + src1_addr->tagvalue = tag_or; + } else { + /* If opposite signed, raise Invalid */ + SignalIndefinite(src1_addr); + } + } else { + /* Only one is infinity. That is the result. */ + if ((src1_addr->tagvalue & TAG_INFINITY_MASK) != 0) { + src2_addr = StackEntryByIndex(destIndex); + src2_addr->tagvalue = src1_addr->tagvalue; + } else { + src1_addr = StackEntryByIndex(destIndex); + src1_addr->tagvalue = src2_addr->tagvalue; + } + } + } +} + + + +/* AddBCDByte(). This generator should be inlined. + This generator add in a BCD byte to a grand total. +*/ + +LOCAL VOID AddBCDByte IFN2(FPU_I64 *, total, IU8, byte_val) +{ + Add64Bit8Bit(total, byte_val); + if (byte_val >= 0x10) { /* Odds ought to be 16 to 1 on. */ + /* We've added in 16 times the high BCD digit, */ + /* so we need to subtract off 6 times that amount. */ + byte_val &= 0xf0; /* Isolate the high digit */ + byte_val >>= 2; /* This is now four times the high digit */ + Sub64Bit8Bit(total, byte_val); + byte_val >>= 1; /* This is twice the high digit */ + Sub64Bit8Bit(total, byte_val); + } +} + + + +/* FBLD: Load BCD value from intel memory. + The alorithm used here is identical to that in the generic NPX. + We take each BCD digit and multiply it up by an appropriate amount + (1, 10, 100, 1000 etc) in order to create two nine digit 32-bit binary + values. We then convert the word with the high digits (d17-d9) into + floating point format and multiply by the representation of the value + for 10**9. This is then stored away (in FPTEMP) and the word with the + low digits (d8-d0) is converted to floating point format and added to + the value in FPTEMP. This is then the final binary representation of + the original BCD value that can be stored at TOS. */ + +/*( +Name : FBLD +Function : Load the BCD value in intel memory onto TOS +Operation : ST <- Convert to FPH(memPtr); +Flags : C1 as per table 15-1. C0, C2 and C3 undefined +Exceptions : IS +Valid range : -999999999999999999 to 999999999999999999 +)*/ + + +GLOBAL VOID FBLD IFN1(IU8 *, memPtr) +{ + + /* Clear C1 */ + FlagC1(0); + /* All we shall do is load it up without consideration */ + TOSPtr = StackEntryByIndex(7); + if ((TOSPtr->tagvalue & TAG_EMPTY_MASK) == 0) { /* Highly unlikely, see notes. */ + SignalStackOverflow(TOSPtr); + } else { + /* We just copy the bytes directly */ + LoadTByteToFP(TOSPtr, memPtr); + TOSPtr->tagvalue = TAG_BCD_MASK; + } +} + + +LOCAL VOID ConvertBCD IFN1(FPSTACKENTRY *, bcdPtr) +{ + IU8 *memPtr = (IU8 *)&(bcdPtr->fpvalue); + FPU_I64 total; + + Set64Bit(&total, 0); + AddBCDByte(&total, memPtr[HOST_R80_BYTE_1]); /* Get d17d16 */ + Mul64Bit8Bit(&total, 100); + AddBCDByte(&total, memPtr[HOST_R80_BYTE_2]); + Mul64Bit8Bit(&total, 100); + AddBCDByte(&total, memPtr[HOST_R80_BYTE_3]); + Mul64Bit8Bit(&total, 100); + AddBCDByte(&total, memPtr[HOST_R80_BYTE_4]); + Mul64Bit8Bit(&total, 100); + AddBCDByte(&total, memPtr[HOST_R80_BYTE_5]); + Mul64Bit8Bit(&total, 100); + AddBCDByte(&total, memPtr[HOST_R80_BYTE_6]); + Mul64Bit8Bit(&total, 100); + AddBCDByte(&total, memPtr[HOST_R80_BYTE_7]); + Mul64Bit8Bit(&total, 100); + AddBCDByte(&total, memPtr[HOST_R80_BYTE_8]); + Mul64Bit8Bit(&total, 100); + AddBCDByte(&total, memPtr[HOST_R80_BYTE_9]); + CVTI64FPH(&total); + if ((*(memPtr + 0) & 0x80) != 0) { + FPRes = -FPRes; /* Make it negative! */ + } + CalcTagword(bcdPtr); /* Silly...it can only be negative */ + /* or zero. */ +} + + +/* FBSTP: Store binary coded decimal and pop. +This uses much the same algorithm as before, but reversed. You begin +by checking that the value at TOS is real, then compare it against the +maximum possible value (having first forced the sign bit to be zero). +If it's OK, then turn it into a 64 bit integer and perform the +required repeated subtractions to calculate each of the BCD digits. */ + + +GLOBAL VOID FBSTP IFN1(IU8 *, memPtr) +{ + FPH local_fp; + IS8 nibble_num; + IU8 byte_val; + FPU_I64 as64bit; + + /* Clear C1 */ + FlagC1(0); + if ((TOSPtr->tagvalue & UNEVALMASK) != 0) { + switch (TOSPtr->tagvalue & UNEVALMASK) { + case TAG_BCD_MASK: /* We just copy the bytes directly */ + WriteFP80ToIntel(memPtr, TOSPtr); + PopStack(); + return; + break; + case TAG_R80_MASK: ConvertR80(TOSPtr); + break; + } + } + if ((TOSPtr->tagvalue & ~(TAG_DENORMAL_MASK | TAG_NEGATIVE_MASK)) == 0) { + /* We're OK. Let's do some checking... */ + if (fabs(TOSPtr->fpvalue) >= MaxBCDValue) { + /* It's all gone horribly wrong */ + SignalInvalid(); + SignalBCDIndefinite((IU8 *)memPtr); + PopStack(); + return; + } + /* The value is OK. Do the conversion. */ + local_fp = npx_rint(TOSPtr->fpvalue); + ((FPHOST *)&local_fp)->hiword.sign = 0; /* Force it to be positive */ + CVTFPHI64(&as64bit, &local_fp); + byte_val = 0; + while (Cmp64BitGTE(&as64bit, &BCDHighNibble[0])) { + byte_val += 1; + Sub64Bit64Bit(&as64bit, &BCDHighNibble[0]); + } + byte_val <<= 4; + while (Cmp64BitGTE(&as64bit, &BCDLowNibble[0])) { + byte_val += 1; + Sub64Bit64Bit(&as64bit, &BCDLowNibble[0]); + } + *(memPtr + 1) = byte_val; + + byte_val = 0; + while (Cmp64BitGTE(&as64bit, &BCDHighNibble[1])) { + byte_val += 1; + Sub64Bit64Bit(&as64bit, &BCDHighNibble[1]); + } + byte_val <<= 4; + while (Cmp64BitGTE(&as64bit, &BCDLowNibble[1])) { + byte_val += 1; + Sub64Bit64Bit(&as64bit, &BCDLowNibble[1]); + } + *(memPtr + 2) = byte_val; + + byte_val = 0; + while (Cmp64BitGTE(&as64bit, &BCDHighNibble[2])) { + byte_val += 1; + Sub64Bit64Bit(&as64bit, &BCDHighNibble[2]); + } + byte_val <<= 4; + while (Cmp64BitGTE(&as64bit, &BCDLowNibble[2])) { + byte_val += 1; + Sub64Bit64Bit(&as64bit, &BCDLowNibble[2]); + } + *(memPtr + 3) = byte_val; + + byte_val = 0; + while (Cmp64BitGTE(&as64bit, &BCDHighNibble[3])) { + byte_val += 1; + Sub64Bit64Bit(&as64bit, &BCDHighNibble[3]); + } + byte_val <<= 4; + while (Cmp64BitGTE(&as64bit, &BCDLowNibble[3])) { + byte_val += 1; + Sub64Bit64Bit(&as64bit, &BCDLowNibble[3]); + } + *(memPtr + 4) = byte_val; + + byte_val = 0; + while (Cmp64BitGTE(&as64bit, &BCDHighNibble[4])) { + byte_val += 1; + Sub64Bit64Bit(&as64bit, &BCDHighNibble[4]); + } + byte_val <<= 4; + while (Cmp64BitGTE(&as64bit, &BCDLowNibble[4])) { + byte_val += 1; + Sub64Bit64Bit(&as64bit, &BCDLowNibble[4]); + } + *(memPtr + 5) = byte_val; + + byte_val = 0; + while (Cmp64BitGTE(&as64bit, &BCDHighNibble[5])) { + byte_val += 1; + Sub64Bit64Bit(&as64bit, &BCDHighNibble[5]); + } + byte_val <<= 4; + while (Cmp64BitGTE(&as64bit, &BCDLowNibble[5])) { + byte_val += 1; + Sub64Bit64Bit(&as64bit, &BCDLowNibble[5]); + } + *(memPtr + 6) = byte_val; + + byte_val = 0; + while (Cmp64BitGTE(&as64bit, &BCDHighNibble[6])) { + byte_val += 1; + Sub64Bit64Bit(&as64bit, &BCDHighNibble[6]); + } + byte_val <<= 4; + while (Cmp64BitGTE(&as64bit, &BCDLowNibble[6])) { + byte_val += 1; + Sub64Bit64Bit(&as64bit, &BCDLowNibble[6]); + } + *(memPtr + 7) = byte_val; + + byte_val = 0; + while (Cmp64BitGTE(&as64bit, &BCDHighNibble[7])) { + byte_val += 1; + Sub64Bit64Bit(&as64bit, &BCDHighNibble[7]); + } + byte_val <<= 4; + while (Cmp64BitGTE(&as64bit, &BCDLowNibble[7])) { + byte_val += 1; + Sub64Bit64Bit(&as64bit, &BCDLowNibble[7]); + } + *(memPtr + 8) = byte_val; + + byte_val = 0; + while (Cmp64BitGTE(&as64bit, &BCDHighNibble[8])) { + byte_val += 1; + Sub64Bit64Bit(&as64bit, &BCDHighNibble[8]); + } + byte_val <<= 4; + while (Cmp64BitGTE(&as64bit, &BCDLowNibble[8])) { + byte_val += 1; + Sub64Bit64Bit(&as64bit, &BCDLowNibble[8]); + } + *(memPtr + 9) = byte_val; + + if ((TOSPtr->tagvalue & TAG_NEGATIVE_MASK) != 0) { + *(memPtr + 0) = 0x80; + ((FPHOST *)&local_fp)->hiword.sign = 1; + } else { + *(memPtr + 0) = 0; + } + /* Can't prevent delivery of result with unmasked precision + exception... */ + if (local_fp != TOSPtr->fpvalue) { + SetPrecisionBit(); + if ((NpxControl & CW_PM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + PopStack(); + DoNpxException(); + return; + } + } + } else { + if ((TOSPtr->tagvalue & TAG_ZERO_MASK) == 0) { + /* Anything else: Infinity, NaN or whatever... */ + SignalInvalid(); + SignalBCDIndefinite((IU8 *)memPtr); + PopStack(); + return; + } + *(memPtr + 3) = (IU8)0; + *(memPtr + 4) = (IU8)0; + *(memPtr + 5) = (IU8)0; + *(memPtr + 6) = (IU8)0; + *(memPtr + 7) = (IU8)0; + *(memPtr + 8) = (IU8)0; + *(memPtr + 9) = (IU8)0; + if ((TOSPtr->tagvalue & TAG_ZERO_MASK) == 0) { /* Again, to check what top bytes should be. */ + *(memPtr + 0) = (IU8)0xff; /* Not the zero case...It must be indefinite */ + *(memPtr + 1) = (IU8)0xff; + *(memPtr + 2) = (IU8)0xc0; + } else { + *(memPtr + 1) = (IU8)0; + *(memPtr + 2) = (IU8)0; + if ((TOSPtr->tagvalue & TAG_NEGATIVE_MASK) != 0) { + *(memPtr + 0) = 0x80; + } else { + *(memPtr + 0) = 0; + } + } + } + PopStack(); +} + + + +/*( +Name : FCHS +Function : Change the sign of the value at TOS +Operation : ST <- Change sign (ST) +Flags : C1 as per table 15-1. C0, C2 and C3 undefined +Exceptions : IS +Valid range : Any +)*/ + + +GLOBAL VOID FCHS IFN0() +{ + /* Clear C1 */ + FlagC1(0); + TestUneval(TOSPtr); + if ((TOSPtr->tagvalue & TAG_EMPTY_MASK) != 0) { + SignalStackUnderflow(TOSPtr); + return; + } + /* That is the only exception condition possible. FCHS always */ + /* succeeds! What a strange instruction! */ + TOSPtr->tagvalue ^= TAG_NEGATIVE_MASK; /* Twiddle the tagword bit */ + /* We only twiddle the sign bit in numbers that are really */ + /* being represented. */ + if ((TOSPtr->tagvalue & ~(TAG_DENORMAL_MASK | TAG_NEGATIVE_MASK)) == 0) { + ((FPHOST *)&(TOSPtr->fpvalue))->hiword.sign ^= 1; + } +} + + + +/*( +Name : FCLEX +Function : Clear the exception flags, exception status flag + and busy flag in the FPU status word. +Operation : SW[0..7]<-0; SW[15]<-0 +Flags : C0, C1, C2 and C3 undefined +Exceptions : None +Valid range : Any +)*/ + + +GLOBAL VOID FCLEX IFN0() +{ + NpxStatus &= FCLEX_MASK; +} + + +/* Comparision opcodes: The following opcodes are all taken care of +in this routine: FCOM m32r, FCOM m64r, FCOM ST(i), FCOM, FCOMP m32real, +FCOMP m64real, FCOMP ST(i), FCOMP, FCOMPP, FICOM m16i, FICOM m32i, +FICOMP m16i, FICOMP m32i. +The method is simple: In every case, one of the two operands for which +comparison is to occur is ST. The second operand is either one of the +four memory operand types specified, or another stack element, ST(i). +There are, in addition, two possible control variables - POPST and +DOUBLEPOP, which set appropriate values in global variables. +*/ + + +GLOBAL VOID FCOM IFN1(VOID *, src2) +{ + IU16 src2Index; + + LoadValue(src2, &src2Index); + if (POPST || DOUBLEPOP) { + DoAPop=TRUE; + } + GenericCompare(src2Index); + if (POPST || DOUBLEPOP) { + if (DoAPop) { + PopStack(); + if (DOUBLEPOP) { + PopStack(); + } + } + } +} + + + +LOCAL VOID GenericCompare IFN1(IU16, src2Index) +{ + FPSTACKENTRY *src2_addr; + + src2_addr = StackEntryByIndex(src2Index); + + /* Clear C1 */ + FlagC1(0); + TestUneval(TOSPtr); + TestUneval(src2_addr); + tag_or = (TOSPtr->tagvalue | src2_addr->tagvalue); + /* If the only tagword bit set is negative then just proceed */ + if ((tag_or & ~TAG_NEGATIVE_MASK) == 0) { + NpxStatus &= C3C2C0MASK; /* Clear those bits */ + if (TOSPtr->fpvalue > src2_addr->fpvalue) { + NpxStatus |= INTEL_COMP_GT; + } else { + if (TOSPtr->fpvalue < src2_addr->fpvalue) { + NpxStatus |= INTEL_COMP_LT; + } else { + NpxStatus |= INTEL_COMP_EQ; + } + } + } else { + /* Everything was not sweetness and light... */ + if ((tag_or & ((TAG_EMPTY_MASK | TAG_UNSUPPORTED_MASK) | TAG_NAN_MASK)) != 0) { + if ((tag_or & TAG_UNSUPPORTED_MASK) != 0) { + SignalIndefinite(TOSPtr); + } else { + if ((tag_or & TAG_EMPTY_MASK) != 0) { + SignalStackUnderflow(TOSPtr); + } else { + /* It must be a NaN. Just set the "not comparable" result */ + if (UNORDERED) { + if ((tag_or & TAG_SNAN_MASK) != 0) { + SignalIndefinite(TOSPtr); + } + } else { + SignalIndefinite(TOSPtr); + } + } + } + NpxStatus &= C3C2C0MASK; + NpxStatus |= INTEL_COMP_NC; + return; + } + if ((tag_or & TAG_DENORMAL_MASK) != 0) { + NpxStatus |= SW_DE_MASK; + if ((NpxControl & CW_DM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + return; + } else { + /* We can do it now, providing we've got no zeros or infinities */ + if ((tag_or & ~(TAG_NEGATIVE_MASK | TAG_DENORMAL_MASK)) == 0) { + NpxStatus &= C3C2C0MASK; /* Clear those bits */ + if (TOSPtr->fpvalue > src2_addr->fpvalue) { + NpxStatus |= INTEL_COMP_GT; + } else { + if (TOSPtr->fpvalue < src2_addr->fpvalue) { + NpxStatus |= INTEL_COMP_LT; + } else { + NpxStatus |= INTEL_COMP_EQ; + } + } + return; + } + } + } + /* We can calculate the result immediately based on any combination */ + /* of zero, infinity and negative bits. These are the only bits left. */ + /* We will calculate the result using a little table */ + /* First, get the index: */ + tag_or = (TOSPtr->tagvalue & 0x7); + tag_or <<= 3; + tag_or |= (src2_addr->tagvalue & 0x7); + /* This table looks as shown below: */ + /* TOSPtr Other Value Result */ + /* INF ZERO NEG INF ZERO NEG */ + /* 0 0 0 0 1 0 COMP_GT */ + /* 0 0 0 0 1 1 COMP_GT */ + /* 0 0 0 1 0 0 COMP_LT */ + /* 0 0 0 1 0 1 COMP_GT */ + /* 0 1 0 0 0 0 COMP_LT */ + /* 0 1 0 0 0 1 COMP_GT */ + /* 0 1 0 0 1 0 COMP_EQ */ + /* 0 1 0 0 1 1 COMP_EQ */ + /* 0 1 0 1 0 0 COMP_LT */ + /* 0 1 0 1 0 1 COMP_GT */ + /* 0 1 1 0 0 0 COMP_LT */ + /* 0 1 1 0 0 1 COMP_GT */ + /* 0 1 1 0 1 0 COMP_EQ */ + /* 0 1 1 0 1 1 COMP_EQ */ + /* 0 1 1 1 0 0 COMP_LT */ + /* 0 1 1 1 0 1 COMP_GT */ + /* 1 0 0 0 0 0 COMP_GT */ + /* 1 0 0 0 0 1 COMP_GT */ + /* 1 0 0 0 1 0 COMP_GT */ + /* 1 0 0 0 1 1 COMP_GT */ + /* 1 0 0 1 0 0 COMP_EQ */ + /* 1 0 0 1 0 1 COMP_GT */ + /* 1 0 1 0 0 0 COMP_LT */ + /* 1 0 1 0 0 1 COMP_LT */ + /* 1 0 1 0 1 0 COMP_LT */ + /* 1 0 1 0 1 1 COMP_LT */ + /* 1 0 1 1 0 0 COMP_LT */ + /* 1 0 1 1 0 1 COMP_EQ */ + /* */ + /* All other values are not possible. */ + NpxStatus &= C3C2C0MASK; + NpxStatus |= CompZeroTable[tag_or]; + return; + } +} + + +/*( +Name : FCOS +Function : Calculate the cosine of ST +Operation : ST <- COSINE(ST) +Flags : C1, C2 as per table 15-2. C0 and C3 undefined. +Exceptions : P. U, D, I, IS +Valid range : |ST| < 2**63. +)*/ + +GLOBAL VOID FCOS IFN0() +{ + /* Clear C1 */ + FlagC1(0); + /* Clear C2 */ + FlagC2(0); + TestUneval(TOSPtr); + if ((TOSPtr->tagvalue & ~TAG_NEGATIVE_MASK) == 0) { + HostClearExceptions(); + /* We can just write the value straight out */ + FPRes = cos(TOSPtr->fpvalue); + PostCheckOUP(); + /* The return value must be in the range -1 to +1. */ + CalcTagword(TOSPtr); + return; + } else { + /* Lets do the most probable cases first... */ + /* Response to either zero is to return +1 */ + if ((TOSPtr->tagvalue & TAG_ZERO_MASK) != 0) { + memset((char*)TOSPtr,0,sizeof(FPSTACKENTRY)); + TOSPtr->fpvalue = 1.0; + TOSPtr->tagvalue = 0; + return; + } + /* Lets check for a denormal */ + if ((TOSPtr->tagvalue & TAG_DENORMAL_MASK) != 0) { + NpxStatus |= SW_DE_MASK; + if ((NpxControl & CW_DM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + } else { + HostClearExceptions(); + FPRes = cos(TOSPtr->fpvalue); + PostCheckOUP(); + /* The return value must be in the range -1 to +1 */ + CalcTagword(TOSPtr); + } + return; + } + /* Or it could possibly be infinity... */ + /* For this, the C2 bit is set and the result remains */ + /* unchanged. */ + if ((TOSPtr->tagvalue & TAG_INFINITY_MASK) != 0) { + FlagC2(1); + return; + } + /* It was one of the really wacky bits... */ + if ((TOSPtr->tagvalue & TAG_EMPTY_MASK) != 0) { + SignalStackUnderflow(TOSPtr); + return; + } + if ((TOSPtr->tagvalue & TAG_SNAN_MASK) != 0) { + MakeNaNQuiet(TOSPtr); + return; + } + if ((TOSPtr->tagvalue & TAG_UNSUPPORTED_MASK) != 0) { + SignalIndefinite(TOSPtr); + return; + } + } +} + + + +/*( +Name : FDECSTP +Function : Subtract one from the TOS +Operation : if (ST != 0) { ST <- ST-1 else { ST <- 7 } +Flags : C1 as per table 15-1. C0, C2 and C3 undefined. +Exceptions : None +Valid range : N/A +)*/ + + +GLOBAL VOID FDECSTP IFN0() +{ + /* Clear C1 */ + FlagC1(0); + TOSPtr = StackEntryByIndex(7); +} + + + +/*( +Name : FDIV +Function : Divide the two numbers +Operation : Dest <- Src1 / Src2 or Dest <- Src2 / Src1 +Flags : C1 as per table 15-1. C0, C2 and C3 undefined +Exceptions : P, U, O, Z, D, I, IS +Valid range : Any +Notes : The REVERSE control variable determines which of the + two forms of the operation is used. Popping after a + successful execution is controlled by POPST. +)*/ + + +GLOBAL VOID FDIV IFN3(IU16, destIndex, IU16, src1Index, VOID *, src2) +{ + IU16 src2Index; + + LoadValue(src2, &src2Index); + if (POPST) { + DoAPop=TRUE; + } + GenericDivide(destIndex, REVERSE?src2Index:src1Index, REVERSE?src1Index:src2Index); + if (POPST) { + if (DoAPop) { + PopStack(); + } + } +} + + +/*( +Name : GenericDivide +Function : To return dest <- src1/src2 +)*/ + + +LOCAL VOID GenericDivide IFN3(IU16, destIndex, IU16, src1Index, IU16, src2Index) +{ + FPSTACKENTRY *src1_addr; + FPSTACKENTRY *src2_addr; + + src1_addr = StackEntryByIndex(src1Index); + src2_addr = StackEntryByIndex(src2Index); + + /* Clear C1 */ + FlagC1(0); + TestUneval(src1_addr); + TestUneval(src2_addr); + tag_or = (src1_addr->tagvalue | src2_addr->tagvalue); + /* If the only tagword bit set is negative then just proceed */ + if ((tag_or & (~TAG_NEGATIVE_MASK)) == 0) { + HostClearExceptions(); + FPRes = src1_addr->fpvalue/src2_addr->fpvalue; + /* Reuse one of the above to calculate the destination */ + src1_addr = StackEntryByIndex(destIndex); + PostCheckOUP(); + /* Value could be anything */ + CalcTagword(src1_addr); + } else { + /* Some funny bit was set. Check for the possibilities */ + if ((tag_or & ((TAG_EMPTY_MASK | TAG_UNSUPPORTED_MASK) | TAG_NAN_MASK)) != 0) { + if ((tag_or & TAG_EMPTY_MASK) != 0) { + src1_addr = StackEntryByIndex(destIndex); + SignalStackUnderflow(src1_addr); + } else { + if ((tag_or & TAG_UNSUPPORTED_MASK) != 0) { + src1_addr = StackEntryByIndex(destIndex); + SignalIndefinite(src1_addr); + } else { + /* Well, I suppose it has to be the NaN case... */ + /* Calculate the xor of the tagwords */ + tag_xor = (src1_addr->tagvalue ^ src2_addr->tagvalue); + Test2NaN(destIndex, src1_addr, src2_addr); + } + } + return; + } + if ((tag_or & TAG_DENORMAL_MASK) != 0) { + NpxStatus |= SW_DE_MASK; + if ((NpxControl & CW_DM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + DoAPop = FALSE; + return; + } else { + if ((tag_or & ~(TAG_NEGATIVE_MASK | TAG_DENORMAL_MASK)) == 0) { + /* OK to proceed */ + HostClearExceptions(); + FPRes = src1_addr->fpvalue/src2_addr->fpvalue; + /* Reuse one of the above to calculate the destination */ + src1_addr = StackEntryByIndex(destIndex); + PostCheckOUP(); + /* Value could be anything */ + CalcTagword(src1_addr); + return; + } + } + } + tag_xor = (src1_addr->tagvalue ^ src2_addr->tagvalue); + /* Check for infinity as it has higher precendence than zero. */ + if ((tag_or & TAG_INFINITY_MASK) != 0) { + if ((tag_xor & TAG_INFINITY_MASK) == 0) { + /* They are both infinity. This is invalid. */ + src1_addr = StackEntryByIndex(destIndex); + SignalIndefinite(src1_addr); + } else { + /* Only one is infinity. If src1 in infinity, then so */ + /* is the result (even if src2 is zero). */ + src2_addr = StackEntryByIndex(destIndex); + if ((src1_addr->tagvalue & TAG_INFINITY_MASK) != 0) { + tag_or = TAG_INFINITY_MASK; + } else { + tag_or = TAG_ZERO_MASK; + } + tag_or |= (tag_xor & TAG_NEGATIVE_MASK); + src2_addr->tagvalue = tag_or; + } + return; + } + /* The only funny bit left is zero */ + if ((tag_xor & TAG_ZERO_MASK) != 0) { + /* Only one zero. */ + if ((src1_addr->tagvalue & TAG_ZERO_MASK) == 0) { + /* Src2 is zero. Raise divide by zero */ + NpxStatus |= SW_ZE_MASK; + if ((NpxControl & CW_ZM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + DoAPop=FALSE; + return; + } else { + /* Unmasked. Infinity with xor of signs. */ + tag_or = TAG_INFINITY_MASK; + } + } else { + /* Src1 is zero. The result is zero with */ + /* the xor of the sign bits. */ + tag_or = TAG_ZERO_MASK; + } + src1_addr = StackEntryByIndex(destIndex); + tag_or |= (tag_xor & TAG_NEGATIVE_MASK); + src1_addr->tagvalue = tag_or; + } else { + /* Both are zeros. This is an invalid operation */ + src1_addr = StackEntryByIndex(destIndex); + SignalIndefinite(src1_addr); + } + } +} + + +/* +Name : FFREE +Function : Set the 'empty' tagword bit in the destination +Operation : Tag(dest) <- 'empty' +Flags : All undefined +Exceptions : None +Valid range : Any +Notes : +*/ + + +GLOBAL VOID FFREE IFN1(IU16, destIndex) +{ + FPSTACKENTRY *dest_addr; + + dest_addr = StackEntryByIndex(destIndex); + dest_addr->tagvalue = TAG_EMPTY_MASK; + if (POPST) { + PopStack(); + } +} + + +/* +Name : FILD +Function : Push the memory integer onto the stack +Operation : Decrement TOS; ST(0) <- SRC. +Flags : C1 as per table 15-1. Others undefined. +Exceptions : IS +Valid range : Any +Notes : FLD Instruction only: source operand is denormal. + Masked response: No special action, load as usual. + fld gives an Invalid exception if the stack is full. Unmasked + Invalid exceptions leave the stack unchanged. Neither the MIPS + nor the 68k code notice stack full, so it is probably safe to + assume that it rarely happens, and optimise for the case where + there is no exception. + fld does not generate an Invalid exception if the ST is a NaN. + When loading a Short real or Long real NaN, fld extends the + significand by adding zeros at the least significant end. + Load operations raise denormal as an "after" exception: the + register stack is already updated when the exception is raised + fld produces a denormal result only when loading from memory: + using fld to transfer a denormal value between registers has + no effect. +*/ + + +GLOBAL VOID FLD IFN1(VOID *, memPtr) +{ + FPSTACKENTRY *src_addr; + IU16 IndexVal; + + /* Clear C1 */ + FlagC1(0); + src_addr = StackEntryByIndex(7); + if ((src_addr->tagvalue & TAG_EMPTY_MASK) == 0) { /* Highly unlikely, see notes. */ + NpxStatus |= (SW_IE_MASK | SW_SF_MASK); + FlagC1(1); + if ((NpxControl & CW_IM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + } else { + TOSPtr = src_addr; + WriteIndefinite(TOSPtr); + } + } else { + if (FPtype == FPSTACK) { + IndexVal = *(IU16 *)memPtr; + src_addr = StackEntryByIndex(IndexVal); + TOSPtr = StackEntryByIndex(7); + CopyFP(TOSPtr, src_addr); + } else { + switch (FPtype) { + case M16I : TOSPtr = src_addr; + Loadi16ToFP(TOSPtr, memPtr); + break; + case M32I : TOSPtr = src_addr; + Loadi32ToFP(TOSPtr, memPtr); + break; + case M64I : TOSPtr = src_addr; + Loadi64ToFP(TOSPtr, memPtr); + break; + case M32R : Loadr32ToFP(src_addr, memPtr, TRUE); + TOSPtr = src_addr; + break; + case M64R : Loadr64ToFP(src_addr, memPtr, TRUE); + TOSPtr = src_addr; + break; + case M80R : TOSPtr = src_addr; + Loadr80ToFP(TOSPtr, memPtr); + break; + } + } + } +} + + + +/*( +Name : FINCSTP +Function : Add one to the TOS +Operation : if (ST != 7) { ST <- ST+1 else { ST <- 0 ENDif +Flags : C1 as per table 15-1. C0, C2 and C3 undefined. +Exceptions : None +Valid range : N/A +)*/ + + +GLOBAL VOID FINCSTP IFN0() +{ + /* Clear C1 */ + FlagC1(0); + TOSPtr = StackEntryByIndex(1); +} + + + +/*( +Name : FINIT +Function : Initialise the floating point unit +Operation : CW<-037F; SW<-0; TW<-FFFFH; FEA<-0; FDS<-0; + FIP<-0; FOP<-0; FCS<-0; +Flags : All reset +Exceptions : None +Valid range : N/A +)*/ + + +GLOBAL VOID FINIT IFN0() +{ + IU8 counter; + + NpxControl = 0x037f; + npxRounding = ROUND_NEAREST; + NpxStatus = 0; + NpxLastSel=0; + NpxLastOff=0; + NpxFEA=0; + NpxFDS=0; + NpxFIP=0; + NpxFOP=0; + NpxFCS=0; + TOSPtr = FPUStackBase; + counter=0; + while (counter++ < 8) { + TOSPtr->tagvalue = TAG_EMPTY_MASK; + TOSPtr++; + } + TOSPtr = FPUStackBase; +} + + + +/*( +Name : FIST(P) +Function : Store integer from top of stack to memory +Operation : [mem] <- (I)ST +Flags : C1 as per table 15-1. All other underfined. +Exceptions : P, I, IS +Valid range : N/A +Notes : FIST (integer store) rounds the content of the stack top to an + integer according to the RC field of the control word and transfers + the result to the destination. The destination may define a word or + short integer variable. Negative zero is stored in the same encoding + as positive zero: 0000..00. + Where the source register is empty, a NaN, denormal, unsupported, + infinity, or exceeds the representable range of destination, the + Masked Response: Store integer indefinite. +*/ + + +GLOBAL VOID FIST IFN1(VOID *, memPtr) +{ + IS16 exp_value; + IS32 res_out; + + /* Clear C1 */ + FlagC1(0); + if (POPST) { + DoAPop = TRUE; + } + /* If anything other than the negative bit is set then we should deal */ + /* with it here... */ + TestUneval(TOSPtr); + if ((TOSPtr->tagvalue & (~TAG_NEGATIVE_MASK)) != 0) { /* Must be unlikely */ + if ((TOSPtr->tagvalue & TAG_ZERO_MASK) != 0) { /* But this is the most likely of them */ + switch (FPtype) { + case M16I : + case M32I : *((IS32 *)memPtr) = 0; + break; + case M64I : *((IU8 *)memPtr + 0) = 0; + *((IU8 *)memPtr + 1) = 0; + *((IU8 *)memPtr + 2) = 0; + *((IU8 *)memPtr + 3) = 0; + *((IU8 *)memPtr + 4) = 0; + *((IU8 *)memPtr + 5) = 0; + *((IU8 *)memPtr + 6) = 0; + *((IU8 *)memPtr + 7) = 0; + break; + } + } else { + NpxStatus |= SW_IE_MASK; + if ((TOSPtr->tagvalue & TAG_EMPTY_MASK) != 0) { + NpxStatus |= SW_SF_MASK; + } + FlagC1(0); + if ((NpxControl & CW_IM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + if (POPST) { + DoAPop=FALSE; /* Unset it - we won't be popping. */ + } + } else { + WriteIntegerIndefinite(memPtr); + } + } + } else { + HostClearExceptions(); + exp_value = 0; + /* The result of conversion is written out */ + /* to FPTemp? */ + switch (FPtype) { + case M16I : *(IS16 *)&FPTemp = (IS16)npx_rint(TOSPtr->fpvalue); + /* Check for overflow */ + if ((FPH)(*(IS16 *)&FPTemp) != npx_rint(TOSPtr->fpvalue)) { + exp_value = 1; /* flag exception */ + } + break; + case M32I : *(IS32 *)&FPTemp = (IS32)npx_rint(TOSPtr->fpvalue); + /* Check for overflow */ + if ((FPH)(*(IS32 *)&FPTemp) != npx_rint(TOSPtr->fpvalue)) { + exp_value = 1; /* flag exception */ + } + break; + case M64I : CVTFPHI64((FPU_I64 *)&FPTemp, &(TOSPtr->fpvalue)); /* Must be writing the result to FPTemp as well... */ + CVTI64FPH((FPU_I64 *)&FPTemp); /* Result in FPRes */ + /* Check for overflow */ + if (FPRes != npx_rint(TOSPtr->fpvalue)) { + exp_value = 1; /* flag exception */ + } + break; + } + if (exp_value == 1) { + NpxStatus |= SW_IE_MASK; /* Set the invalid bit */ + /* For the masked overflow case, the result delivered by */ + /* the host will be correct, provided it is IEEE compliant. */ + if ((NpxControl & CW_IM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + DoAPop = FALSE; + } else { + WriteIntegerIndefinite(memPtr); + } + } + if (exp_value == 0) { + switch (FPtype) { + case M16I : res_out = *(IS16 *)&FPTemp; + *((IU32 *)memPtr) = (IU32)res_out; + break; + case M32I : res_out = *(IS32 *)&FPTemp; + *((IS32 *)memPtr) = (IS32)res_out; + break; + case M64I : res_out = ((FPU_I64 *)&FPTemp)->high_word; + *((IU8 *)memPtr + 3) = res_out & 0xff; + res_out >>= 8; + *((IU8 *)memPtr + 2) = res_out & 0xff; + res_out >>= 8; + *((IU8 *)memPtr + 1) = res_out & 0xff; + res_out >>= 8; + *((IU8 *)memPtr + 0) = res_out & 0xff; + res_out = ((FPU_I64 *)&FPTemp)->low_word; + *((IU8 *)memPtr + 7) = res_out & 0xff; + res_out >>= 8; + *((IU8 *)memPtr + 6) = res_out & 0xff; + res_out >>= 8; + *((IU8 *)memPtr + 5) = res_out & 0xff; + res_out >>= 8; + *((IU8 *)memPtr + 4) = res_out & 0xff; + break; + } + /* Check for precision */ + if (TOSPtr->fpvalue != npx_rint(TOSPtr->fpvalue)) { + SetPrecisionBit(); + if ((NpxControl & CW_PM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + if (POPST) { + if (DoAPop) { + PopStack(); + } + } + DoNpxException(); + return; + } + } + } + } + if (POPST) { + if (DoAPop) { + PopStack(); + } + } +} + + + +/*( +Name : FLDconstant +Function : Load constant value to TOS +Operation : Push ST: ST(0) <- constant +Flags : C1 as per table 15-1. All other underfined. +Exceptions : IS +Valid range : N/A +*/ + + +GLOBAL VOID FLDCONST IFN1(IU8, const_index) +{ + + /* Clear C1 */ + FlagC1(0); + TOSPtr = StackEntryByIndex(7); + if ((TOSPtr->tagvalue & TAG_EMPTY_MASK) == 0) { + SignalStackOverflow(TOSPtr); + } else { + memset((char*)TOSPtr,0,sizeof(FPSTACKENTRY)); + TOSPtr->fpvalue = ConstTable[const_index].fpvalue; + TOSPtr->tagvalue = ConstTable[const_index].tagvalue; + } +} + + + +/*( +Name : FLDCW +Function : Replace the current value of the FPU control word with + the value in the specified memory location. +Operation : CW <- SRC. +Flags : All undefined. +Exceptions : None - but unmasking previously masked exceptions will + cause the unmasked exception to be triggered if the + matching bit is set in the status word. +Valid range : N/A +*/ + + +GLOBAL VOID FLDCW IFN1(VOID *, memPtr) +{ + IU32 result; +/* +This function has to modify things. The control word contains the +following information: +Precision control - not implemented. +Rounding control - implemented. +Exception masks - implemented. +Thus when we read in a value for the control word, we have to update +the host's rounding mode and also the exception masks. +*/ + /* First, set the rounding mode */ + result = *(IU32 *)memPtr; + NpxControl = (IU16)result; + npxRounding = (NpxControl & 0xc00); + switch (npxRounding) { + case ROUND_NEAREST : HostSetRoundToNearest(); + break; + case ROUND_NEG_INFINITY : HostSetRoundDown(); + break; + case ROUND_POS_INFINITY : HostSetRoundUp(); + break; + case ROUND_ZERO : HostSetRoundToZero(); + break; + } + /* Now adjust the exceptions. If an exception is unmasked, then the */ + /* bit value in NpxControl in '0'. If the exception has been */ + /* triggered then the corresponding bit in NpxStatus is '1'.Thus, */ + /* the expression ~NpxControl(5..0) | NpxStatus(5..0) will be */ + /* non-zero when we have unmasked exceptions that were previously */ + /* masked. */ + if (((~(NpxControl & 0x3f)) & (NpxStatus & 0x3f)) != 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + } +} + +GLOBAL VOID FLDCW16 IFN1(VOID *, memPtr) +{ +/* +This function has to modify things. The control word contains the +following information: +Precision control - not implemented. +Rounding control - implemented. +Exception masks - implemented. +Thus when we read in a value for the control word, we have to update +the host's rounding mode and also the exception masks. +*/ + /* First, set the rounding mode */ + NpxControl = *(IU16 *)memPtr; + npxRounding = (NpxControl & 0xc00); + switch (npxRounding) { + case ROUND_NEAREST : HostSetRoundToNearest(); + break; + case ROUND_NEG_INFINITY : HostSetRoundDown(); + break; + case ROUND_POS_INFINITY : HostSetRoundUp(); + break; + case ROUND_ZERO : HostSetRoundToZero(); + break; + } + /* Now adjust the exceptions. If an exception is unmasked, then the */ + /* bit value in NpxControl in '0'. If the exception has been */ + /* triggered then the corresponding bit in NpxStatus is '1'.Thus, */ + /* the expression ~NpxControl(5..0) | NpxStatus(5..0) will be */ + /* non-zero when we have unmasked exceptions that were previously */ + /* masked. */ + if (((~(NpxControl & 0x3f)) & (NpxStatus & 0x3f)) != 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + } +} + +/*( +Name : FLDENV +Function : Reload the FPU state from memory. +Operation : FPU state <- SRC +Flags : As loaded. +Exceptions : None - but unmasking previously masked exceptions will + cause the unmasked exception to be triggered if the + matching bit is set in the status word. +Valid range : N/A +*/ + + +GLOBAL VOID FLDENV IFN1(VOID *, memPtr) +{ + /* First. load the control, status, tagword regs. etc. */ + OpFpuRestoreFpuState(memPtr, 0); + /* Finally, check to see if any previously unmasked exceptions */ + /* are now needed to go off. Do this by anding the "triggered" bits in */ + /* NpxStatus with the one's complement of the "masked" bits in NpxControl. */ + if (((NpxStatus & 0x3f) & (~(NpxControl & 0x3f))) != 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + } +} + +/* This generator is used to write out the 14/28 bytes stored by FSTENV, +and FSAVE. */ + + +LOCAL VOID OpFpuStoreFpuState IFN2(VOID *, memPtr, IU32, fsave_offset) +{ + IU32 result; + + /* how the copy takes place depends on the addressing mode */ + /* NPX_ADDRESS_SIZE_32 and NPX_PROT_MODE settings */ + /*************************************************************** */ + /* Need to do similar thing to strings to check that space */ + /* is available and that there is not paging fault!!!! */ + /*************************************************************** */ + /* The operation should store the control word, tag word */ + /* and status word, so these need to be calculated. It also */ + /* stores the last instruction and data pointers and the opcode */ + /* (if in real mode) */ + /* The offsets from memPtr look strange. Remember that we are going to*/ + /* write this data using the "write bytes" function. This assumes that*/ + /* the data is stored bigendian and writes it out back to front for */ + /* the little-endian intel, as it were. Are you with me? */ + /* fsave offset is required since if we are asked to do an "fsave" */ + /* (as opposed to an fstenv), then the "string" that we are going to */ + /* write will be even bigger, and this stuff must be at the top end */ + /* of it. Horrible but logical */ + if (NPX_PROT_MODE) { + if (NPX_ADDRESS_SIZE_32) { + WriteI32ToIntel(((IU8 *)memPtr+24+fsave_offset), (IU32)NpxControl); + GetIntelStatusWord(); + WriteI32ToIntel(((IU8 *)memPtr+20+fsave_offset), (IU32)NpxStatus); + GetIntelTagword(&result); + WriteI32ToIntel(((IU8 *)memPtr+16+fsave_offset), (IU32)result); + WriteI32ToIntel(((IU8 *)memPtr+12+fsave_offset), (IU32)NpxFIP); + WriteI32ToIntel(((IU8 *)memPtr+8+fsave_offset), (IU32)NpxFCS); + WriteI32ToIntel(((IU8 *)memPtr+4+fsave_offset), (IU32)NpxFEA); + WriteI32ToIntel(((IU8 *)memPtr+0+fsave_offset), (IU32)NpxFDS); + } else { + WriteI16ToIntel(((IU8 *)memPtr+12+fsave_offset), (IU16)NpxControl); + GetIntelStatusWord(); + WriteI16ToIntel(((IU8 *)memPtr+10+fsave_offset), (IU16)NpxStatus); + GetIntelTagword(&result); + WriteI16ToIntel(((IU8 *)memPtr+8+fsave_offset), (IU16)result); + WriteI16ToIntel(((IU8 *)memPtr+6+fsave_offset), (IU16)NpxFIP); + WriteI16ToIntel(((IU8 *)memPtr+4+fsave_offset), (IU16)NpxFCS); + WriteI16ToIntel(((IU8 *)memPtr+2+fsave_offset), (IU16)NpxFEA); + WriteI16ToIntel(((IU8 *)memPtr+0+fsave_offset), (IU16)NpxFDS); + } + } else { + if (NPX_ADDRESS_SIZE_32) { + WriteI32ToIntel(((IU8 *)memPtr+24+fsave_offset), (IU32)NpxControl); + GetIntelStatusWord(); + WriteI32ToIntel(((IU8 *)memPtr+20+fsave_offset), (IU32)NpxStatus); + GetIntelTagword(&result); + WriteI32ToIntel(((IU8 *)memPtr+16+fsave_offset), (IU32)result); + WriteI32ToIntel(((IU8 *)memPtr+12+fsave_offset), (IU32)((NpxFIP+(NpxFCS<<4)) & 0xffff)); + WriteI32ToIntel(((IU8 *)memPtr+8+fsave_offset), (IU32)((((NpxFIP+(NpxFCS<<4)) & 0xffff0000) >> 4) | ((IU32)(NpxFOP & 0x7ff)))); + WriteI32ToIntel(((IU8 *)memPtr+4+fsave_offset), (IU32)((NpxFEA+(NpxFDS<<4)) & 0xffff)); + WriteI32ToIntel(((IU8 *)memPtr+0+fsave_offset), (IU32)(((NpxFEA+(NpxFDS<<4)) & 0xffff0000) >> 4)); + } else { + WriteI16ToIntel(((IU8 *)memPtr+12+fsave_offset), (IU16)NpxControl); + GetIntelStatusWord(); + WriteI16ToIntel(((IU8 *)memPtr+10+fsave_offset), (IU16)NpxStatus); + GetIntelTagword(&result); + WriteI16ToIntel(((IU8 *)memPtr+8+fsave_offset), (IU16)result); + WriteI16ToIntel(((IU8 *)memPtr+6+fsave_offset), (IU16)((NpxFIP+(NpxFCS<<4)) & 0xffff)); + WriteI16ToIntel(((IU8 *)memPtr+4+fsave_offset), (IU16)((((NpxFIP+(NpxFCS<<4)) & 0xffff0000) >> 4) | ((IU16)(NpxFOP & 0x7ff)))); + WriteI16ToIntel(((IU8 *)memPtr+2+fsave_offset), (IU16)(((NpxFDS<<4)+NpxFEA) & 0xffff)); + WriteI16ToIntel(((IU8 *)memPtr+0+fsave_offset), (IU16)(((NpxFEA+(NpxFDS<<4)) & 0xffff0000) >> 4)); + } + } +} + +/* This generator is called by FLDENV and FRSTOR, to load up the 14/28 +byte block. */ + + +LOCAL VOID OpFpuRestoreFpuState IFN2(VOID *, memPtr, IU32, frstor_offset) +{ + IU32 result; + + /* how the copy takes place depends on the addressing mode */ + /* NPX_ADDRESS_SIZE_32 and NPX_PROT_MODE settings */ + /*************************************************************** */ + /* Need to do similar thing to strings to check that space */ + /* is available and that there is not paging fault!!!! */ + /************************************************************** */ + /* The operation should restore the control word, tag word */ + /* and status word, so these need to be translated. It also */ + /* restores the last instruction and data pointers and the opcode */ + /* (if in real mode) */ + + + /* get the rest of the data, instruction and data pointers */ + if ( NPX_PROT_MODE ) { + if (NPX_ADDRESS_SIZE_32) { + ReadI32FromIntel(&result, ((IU8 *)memPtr+24+frstor_offset)); + FLDCW((VOID *)&result); + ReadI32FromIntel(&result, ((IU8 *)memPtr+20+frstor_offset)); + SetIntelStatusWord(result); + ReadI32FromIntel(&result, ((IU8 *)memPtr+16+frstor_offset)); + SetIntelTagword(result); + ReadI32FromIntel(&NpxFIP, ((IU8 *)memPtr+12+frstor_offset)); + ReadI32FromIntel(&NpxFCS, ((IU8 *)memPtr+8+frstor_offset)); + ReadI32FromIntel(&NpxFEA, ((IU8 *)memPtr+4+frstor_offset)); + ReadI32FromIntel(&NpxFDS, ((IU8 *)memPtr+0+frstor_offset)); + } else { + ReadI16FromIntel(&result, ((IU8 *)memPtr+12+frstor_offset)); + /* Note this is a 32-bit result ! */ + FLDCW((VOID *)&result); + ReadI16FromIntel(&result, ((IU8 *)memPtr+10+frstor_offset)); + SetIntelStatusWord(result); + ReadI16FromIntel(&result, ((IU8 *)memPtr+8+frstor_offset)); + SetIntelTagword(result); + ReadI16FromIntel(&NpxFIP, ((IU8 *)memPtr+6+frstor_offset)); + ReadI16FromIntel(&NpxFCS, ((IU8 *)memPtr+4+frstor_offset)); + ReadI16FromIntel(&NpxFEA, ((IU8 *)memPtr+2+frstor_offset)); + ReadI16FromIntel(&NpxFDS, ((IU8 *)memPtr+0+frstor_offset)); + } + } else { + if (NPX_ADDRESS_SIZE_32) { + ReadI32FromIntel(&result, ((IU8 *)memPtr+24+frstor_offset)); + FLDCW((VOID *)&result); + ReadI32FromIntel(&result, ((IU8 *)memPtr+20+frstor_offset)); + SetIntelStatusWord(result); + ReadI32FromIntel(&result, ((IU8 *)memPtr+16+frstor_offset)); + SetIntelTagword(result); + ReadI32FromIntel(&NpxFIP, ((IU8 *)memPtr+12+frstor_offset)); + NpxFIP &= 0xffff; + ReadI32FromIntel(&result, ((IU8 *)memPtr+8+frstor_offset)); + NpxFIP |= ((result & 0x0ffff000) << 4); + ReadI32FromIntel(&NpxFOP, ((IU8 *)memPtr+8+frstor_offset)); + NpxFOP &= 0x7ff; + ReadI32FromIntel(&NpxFEA, ((IU8 *)memPtr+4+frstor_offset)); + NpxFEA &= 0xffff; + ReadI32FromIntel(&result, ((IU8 *)memPtr+0+frstor_offset)); + NpxFEA |= ((result & 0x0ffff000) << 4); + } else { + ReadI16FromIntel(&result, ((IU8 *)memPtr+12+frstor_offset)); + FLDCW((VOID *)&result); + ReadI16FromIntel(&result, ((IU8 *)memPtr+10+frstor_offset)); + SetIntelStatusWord(result); + ReadI16FromIntel(&result, ((IU8 *)memPtr+8+frstor_offset)); + SetIntelTagword(result); + ReadI16FromIntel(&NpxFIP, ((IU8 *)memPtr+6+frstor_offset)); + ReadI16FromIntel(&result, ((IU8 *)memPtr+4+frstor_offset)); + NpxFIP |= ((result & 0xf000) << 4); + ReadI16FromIntel(&NpxFOP, ((IU8 *)memPtr+4+frstor_offset)); + NpxFOP &= 0x7ff; + ReadI16FromIntel(&NpxFEA, ((IU8 *)memPtr+2+frstor_offset)); + ReadI16FromIntel(&result, ((IU8 *)memPtr+0+frstor_offset)); + NpxFEA |= (IU32)((result & 0xf000) << 4); + } + } +} + + + +/*( +Name : FMUL +Function : Multiply two numbers together +Operation : Dest <- Src1 * Src2 +Flags : C1 as per table 15-1. C0, C2 and C3 undefined +Exceptions : P, U, O, D, I, IS +Valid range : Any +Notes : +)*/ + + +GLOBAL VOID FMUL IFN3(IU16, destIndex, IU16, src1Index, VOID *, src2) +{ + IU16 src2Index; + + LoadValue(src2, &src2Index); + if (POPST) { + DoAPop=TRUE; + } + GenericMultiply(destIndex, src1Index, src2Index); + if (POPST) { + if (DoAPop) { + PopStack(); + } + } +} + + + +LOCAL VOID GenericMultiply IFN3(IU16, destIndex, IU16, src1Index, IU16, src2Index) +{ + FPSTACKENTRY *src1_addr; + FPSTACKENTRY *src2_addr; + + src1_addr = StackEntryByIndex(src1Index); + src2_addr = StackEntryByIndex(src2Index); + + /* Clear C1 */ + FlagC1(0); + TestUneval(src1_addr); + TestUneval(src2_addr); + tag_or = (src1_addr->tagvalue | src2_addr->tagvalue); + /* If the only tagword bits set are negative or denormal then just proceed */ + if ((tag_or & ~TAG_NEGATIVE_MASK) == 0) { + HostClearExceptions(); + FPRes = src1_addr->fpvalue * src2_addr->fpvalue; + /* Reuse one of the above to calculate the destination */ + src1_addr = StackEntryByIndex(destIndex); + PostCheckOUP(); + /* Value could be anything */ + CalcTagword(src1_addr); + } else { + /* Some funny bit was set. Check for the possibilities */ + if ((tag_or & ((TAG_EMPTY_MASK | TAG_UNSUPPORTED_MASK) | TAG_NAN_MASK)) != 0) { + if ((tag_or & TAG_EMPTY_MASK) != 0) { + src1_addr = StackEntryByIndex(destIndex); + SignalStackUnderflow(src1_addr); + } else { + if ((tag_or & TAG_UNSUPPORTED_MASK) != 0) { + src1_addr = StackEntryByIndex(destIndex); + SignalIndefinite(src1_addr); + } else { + /* It must be NaN */ + tag_xor = (src1_addr->tagvalue ^ src2_addr->tagvalue); + Test2NaN(destIndex, src1_addr, src2_addr); + } + } + return; + } + /* Check for the denorm case... */ + if ((tag_or & TAG_DENORMAL_MASK) != 0) { + NpxStatus |= SW_DE_MASK; + if ((NpxControl & CW_DM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + DoAPop=FALSE; /* Just in case */ + return; + } else { + /* Proceed if we've no zeroes or infinities. */ + if ((tag_or & ~(TAG_DENORMAL_MASK | TAG_NEGATIVE_MASK)) == 0) { + HostClearExceptions(); + FPRes = src1_addr->fpvalue * src2_addr->fpvalue; + /* Reuse one of the above to calculate the destination */ + src1_addr = StackEntryByIndex(destIndex); + PostCheckOUP(); + /* Value could be anything */ + CalcTagword(src1_addr); + return; + } + } + } + tag_xor = (src1_addr->tagvalue ^ src2_addr->tagvalue); + /* For zero or infinity operands we will have the result */ + src2_addr = StackEntryByIndex(destIndex); + if ((tag_or & TAG_ZERO_MASK) != 0) { + /* Multiplying zero by infinity yields zero with the xor of the signs */ + if ((tag_or & TAG_INFINITY_MASK) != 0) { + SignalIndefinite(src2_addr); + } else { + /* Zero by anything else is zero with sign equal */ + /* to the xor of the signs of the two sources. */ + src2_addr->tagvalue = (TAG_ZERO_MASK | (tag_xor & TAG_NEGATIVE_MASK)); + } + return; + } + /* The only funny bit left is infinity. The result is going */ + /* to be infinity with sign equal to the xor of the signs of */ + /* the sources. */ + src2_addr->tagvalue = TAG_INFINITY_MASK | (tag_xor & TAG_NEGATIVE_MASK); + } +} + + + +/* The FNOP operation doesn't do anything, it just does the normal +checks for exceptions. */ + + +GLOBAL VOID FNOP IFN0() +{ +} + + +/* FPATAN: This generator returns the value ARCTAN(ST(1)/ST) to ST(1) +then pops the stack. Its response to zeros and infinities is rather +unusual... ++-0 / +X = 0 with sign of original zero ++-0 / -X = pi with sign of original zero ++-X /+-0 = pi/2 with sign of original X ++-0 / +0 = 0 with sign of original zero ++-0 / -0 = pi with sign of original zero ++inf / +-0 = +pi/2 +-inf / +-0 = -pi/2 ++-0 / +inf = 0 with sign of original zero ++-0 / -inf = pi with sign of original zero ++-inf / +-X = pi/2 with sign of original infinity ++-Y / +inf = 0 with sign of original Y ++-Y / -inf = pi with sign of original Y ++-inf / +inf = pi/4 with sign of original inf ++-inf / -inf = 3*pi/4 with sign of original inf +Otherwise, we just take the two operands from the stack and call the +appropriate EDL to do the instruction. +The use of an invalid operand with masked exception set causes +the pop to go off, cruds up the contents of the stack and doesn't set +the invalid exception, although if the invalid is infinity or NaN, +overflow and precision exceptions are also generated, while if it is +a denorm, underflow and precision exceptions are generated. +With unmasked exceptions, exactly the same chain of events occurs. +UNDER ALL CIRCUMSTANCES, THE STACK GETS POPPED. +*/ + + +GLOBAL VOID FPATAN IFN0() +{ + FPSTACKENTRY *st1_addr; + + st1_addr = StackEntryByIndex(1); + /* Clear C1 */ + FlagC1(0); + /* If only the negative bit is set, just proceed.... */ + TestUneval(TOSPtr); + TestUneval(st1_addr); + tag_or = (TOSPtr->tagvalue | st1_addr->tagvalue); + if ((tag_or & ~TAG_NEGATIVE_MASK) == 0) { + HostClearExceptions(); + FPRes = atan2(st1_addr->fpvalue, TOSPtr->fpvalue); + PostCheckOUP(); + /* The retrun value has to be in the range -pi to +pi */ + CalcTagword(st1_addr); + } else { + /* Some funny bit set.... */ + if ((tag_or & ((TAG_EMPTY_MASK | TAG_UNSUPPORTED_MASK) | TAG_NAN_MASK)) != 0) { + if ((tag_or & TAG_EMPTY_MASK) != 0) { + SignalStackUnderflow(st1_addr); + } else { + if ((tag_or & TAG_UNSUPPORTED_MASK) != 0) { + SignalIndefinite(st1_addr); + } else { + /* It must be a NaN. */ + tag_xor = (TOSPtr->tagvalue ^ st1_addr->tagvalue); + Test2NaN(0, TOSPtr, st1_addr); + } + } + PopStack(); + return; + } + if ((tag_or & TAG_DENORMAL_MASK) != 0) { + NpxStatus |= SW_DE_MASK; + if ((NpxControl & CW_DM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + PopStack(); + return; + } else { + /* Proceed if we've no zeroes or infinities. */ + if ((tag_or & ~(TAG_DENORMAL_MASK | TAG_NEGATIVE_MASK)) == 0) { + HostClearExceptions(); + FPRes = atan2(st1_addr->fpvalue, TOSPtr->fpvalue); + PostCheckOUP(); + /* The return value is -pi to +pi */ + CalcTagword(st1_addr); + PopStack(); + return; + } + } + } + /* It must have been a zero or an infinity. As can be seen */ + /* from the table above, there is a complicated interaction */ + /* between the result for each type and its option. */ + /* Let's simplify it by use of a little table. */ + /* ST ST(1) Result */ + /* Z I S Z I S */ + /* 0 0 0 0 1 0 pi/2 */ + /* 0 0 0 0 1 1 -pi/2 */ + /* 0 0 0 1 0 0 +0 */ + /* 0 0 0 1 0 1 -0 */ + /* 0 1 0 0 1 0 pi/4 */ + /* 0 1 0 0 1 1 3*pi/4 */ + /* 0 1 0 1 0 0 pi/2 */ + /* 0 1 0 1 0 1 pi/2 */ + /* 0 1 1 0 1 0 -pi/4 */ + /* 0 1 1 0 1 1 -3*pi/4 */ + /* 0 1 1 1 0 0 -pi/2 */ + /* 0 1 1 1 0 1 -pi/2 */ + /* 1 0 0 0 1 0 +0 */ + /* 1 0 0 0 1 1 pi */ + /* 1 0 0 1 0 0 +0 */ + /* 1 0 0 1 0 1 pi */ + /* 1 0 1 0 1 0 -0 */ + /* 1 0 1 0 1 1 -pi */ + /* 1 0 1 1 0 0 -0 */ + /* 1 0 1 1 0 1 -pi */ + /* */ + /* All other combinations are invalid, as they would involve */ + /* a tagword having both infinity and zero bits set. */ + tag_xor = (st1_addr->tagvalue & 7); + tag_xor <<= 3; + tag_xor |= (TOSPtr->tagvalue & 7); + CopyFP(st1_addr, FpatanTable[tag_xor]); + } + /* No matter what has happened... We ALWAYS pop on FPATAN!!! */ + PopStack(); +} + + + +/* FPREM: This is the same function as implemented on the 80287. It is +NOT the same as the IEEE required REM function, this is now supplied as +FPREM1. FPREM predates the final draft of IEEE 754 and is maintained for +the purpose of backward compatibility. +*/ + + +GLOBAL VOID FPREM IFN0() +{ + IS16 exp_diff; + IU8 little_rem; + FPU_I64 remainder; + FPH fprem_val; + FPSTACKENTRY *st1_addr; + + st1_addr = StackEntryByIndex(1); + TestUneval(TOSPtr); + TestUneval(st1_addr); + tag_or = (TOSPtr->tagvalue | st1_addr->tagvalue); + /* First, check if the values are real. If so, we can proceed. */ + if ((tag_or & ~(TAG_NEGATIVE_MASK | TAG_DENORMAL_MASK)) == 0) { + /* First, check for the denormal possibility... */ + if ((tag_or & TAG_DENORMAL_MASK) != 0) { + NpxStatus |= SW_DE_MASK; + if ((NpxControl & CW_DM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + return; + } + } + /* Make both values positive */ + ((FPHOST *)&(TOSPtr->fpvalue))->hiword.sign = 0; + ((FPHOST *)&(st1_addr->fpvalue))->hiword.sign = 0; + + /* Find the difference in exponents... */ + exp_diff = ((FPHOST *)&(TOSPtr->fpvalue))->hiword.exp - ((FPHOST *)&(st1_addr->fpvalue))->hiword.exp; + /* If it's more than 63, we can't do it at once... */ + if (exp_diff >= 64) { + ((FPHOST *) &fprem_val) -> hiword.sign = 0; + ((FPHOST *) &fprem_val) -> hiword.mant_hi = 0; + ((FPHOST *) &fprem_val) -> mant_lo = 0; + ((FPHOST *) &fprem_val) -> hiword.exp = (exp_diff - 50) + HOST_BIAS; + FlagC2(1); /* This will be incomplete reduction */ + } else { + FlagC2(0); /* This will be complete reduction */ + } + HostClearExceptions(); + tag_xor = (NpxControl & 0xc00); + NpxControl &= 0xf3ff; + NpxControl |= ROUND_ZERO; + HostSetRoundToZero(); + /* Unfortunately, because the function isn't the strict */ + /* IEEE compliant style, if we use an IEEE compliant FREM */ + /* operation, as like as not we'd get the wrong answer. So */ + /* we perform the operation by doing the steps given in the */ + /* page in the instruction set. */ + FPRes = TOSPtr->fpvalue / st1_addr->fpvalue; + if ((NpxStatus & 0x0400) != 0) { /* The incomplete reduction case */ + FPRes = FPRes / fprem_val; + } + FPRes = npx_rint(FPRes); + /* Calculate the remainder */ + if ((NpxStatus & 0x0400) == 0) { + CVTFPHI64(&remainder, &FPRes); + CPY64BIT8BIT(&remainder, &little_rem); + } + switch (tag_xor) { + case ROUND_NEAREST : HostSetRoundToNearest(); + break; + case ROUND_NEG_INFINITY : HostSetRoundDown(); + break; + case ROUND_POS_INFINITY : HostSetRoundUp(); + break; + case ROUND_ZERO : HostSetRoundToZero(); + break; + } + NpxControl &= 0xf3ff; + NpxControl |= tag_xor; + FPRes *= st1_addr->fpvalue; + if ((NpxStatus & 0x0400) != 0) { /* The incomplete reduction case */ + FPRes *= fprem_val; + FPRes = TOSPtr->fpvalue - FPRes; + } else { /* Complete reduction */ + FPRes = TOSPtr->fpvalue - FPRes; + FlagC0((little_rem&4)?1:0); + FlagC3((little_rem&2)?1:0); + FlagC1((little_rem&1)); + } + /* Check for an underflow response */ + if (HostGetUnderflowException() != 0) { + NpxStatus |= SW_UE_MASK; + if ((NpxControl & CW_UM_MASK) == 0) { + AdjustUnderflowResponse(); + NpxStatus |= SW_ES_MASK; + NpxException = TRUE; + } + } + /* But the remainder must have the sign of the original ST! */ + if ((TOSPtr->tagvalue & TAG_NEGATIVE_MASK) != 0) { + ((FPHOST *)&(FPRes))->hiword.sign = 1; + } else { + ((FPHOST *)&(FPRes))->hiword.sign = 0; + } + /* And restore st1 sign bit if required */ + if ((st1_addr->tagvalue & TAG_NEGATIVE_MASK) != 0) { + ((FPHOST *)&(st1_addr->fpvalue))->hiword.sign = 1; + } + CalcTagword(TOSPtr); + } else { + /* We had a funny thing */ + if ((tag_or & ((TAG_EMPTY_MASK | TAG_UNSUPPORTED_MASK) | TAG_NAN_MASK)) != 0) { + if ((tag_or & TAG_EMPTY_MASK) != 0) { + SignalStackUnderflow(TOSPtr); + } else { + if ((tag_or & TAG_UNSUPPORTED_MASK) != 0) { + SignalIndefinite(TOSPtr); + } else { + /* It must be a NaN. */ + tag_xor = (TOSPtr->tagvalue ^ st1_addr->tagvalue); + Test2NaN(0, TOSPtr, st1_addr); + } + } + return; + } + /* The logical way to arrange zeroes and infinities is zero first. */ + if ((tag_or & TAG_ZERO_MASK) != 0) { + /* A zero in ST(1) is ALWAYS invalid... */ + if ((st1_addr->tagvalue & TAG_ZERO_MASK) != 0) { + SignalIndefinite(TOSPtr); + } + /* The zero must be in ST, the result is what is there... */ + FlagC0(0); + FlagC1(0); + FlagC2(0); + FlagC3(0); + return; + } + /* OK, it HAS to be infinity */ + /* An infinity at ST is ALWAYS invalid... */ + if ((TOSPtr->tagvalue & TAG_INFINITY_MASK) != 0) { + SignalIndefinite(TOSPtr); + } + /* An infinity at ST(1) leaves ST untouched */ + FlagC0(0); + FlagC1(0); + FlagC2(0); + FlagC3(0); + } +} + + + + +/* FPREM1: This is the IEEE required REM function, this is now supplied as +FPREM1. FPREM predates the final draft of IEEE 754 and is maintained for +the purpose of backward compatibility. +*/ + + +GLOBAL VOID FPREM1 IFN0() +{ + IS16 exp_diff; + IU8 little_rem; + FPU_I64 remainder; + FPH fprem_val; + FPSTACKENTRY *st1_addr; + + st1_addr = StackEntryByIndex(1); + TestUneval(TOSPtr); + TestUneval(st1_addr); + tag_or = (TOSPtr->tagvalue | st1_addr->tagvalue); + /* First, check if the values are real. If so, we can proceed. */ + if ((tag_or & ~(TAG_NEGATIVE_MASK | TAG_DENORMAL_MASK)) == 0) { + /* First, check for the denormal possibility... */ + if ((tag_or & TAG_DENORMAL_MASK) != 0) { + NpxStatus |= SW_DE_MASK; + if ((NpxControl & CW_DM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + return; + } + } + /* Make both values positive */ + ((FPHOST *)&(TOSPtr->fpvalue))->hiword.sign = 0; + ((FPHOST *)&(st1_addr->fpvalue))->hiword.sign = 0; + + /* Find the difference in exponents... */ + exp_diff = ((FPHOST *)&(TOSPtr->fpvalue))->hiword.exp - ((FPHOST *)&(st1_addr->fpvalue))->hiword.exp; + /* If it's more than 63, we can't do it at once... */ + if (exp_diff >= 64) { + ((FPHOST *) &fprem_val) -> hiword.sign = 0; + ((FPHOST *) &fprem_val) -> hiword.mant_hi = 0; + ((FPHOST *) &fprem_val) -> mant_lo = 0; + ((FPHOST *) &fprem_val) -> hiword.exp = (exp_diff - 50) + HOST_BIAS; + FlagC2(1); /* This will be incomplete reduction */ + } else { + FlagC2(0); /* This will be complete reduction */ + } + HostClearExceptions(); + /* Note that this is the only difference between FPREM and + FPREM1. For the incomplete reduction case we use "round + to nearest" rather than "round to zero". + */ + tag_xor = (NpxControl & 0xc00); + NpxControl &= 0xf3ff; + if ((NpxStatus & 0x0400) == 0) { + HostSetRoundToZero(); + NpxControl |= ROUND_ZERO; + } else { + HostSetRoundToNearest(); + NpxControl |= ROUND_NEAREST; + } + FPRes = TOSPtr->fpvalue / st1_addr->fpvalue; + if ((NpxStatus & 0x0400) != 0) { /* The incomplete reduction case */ + FPRes = FPRes / fprem_val; + } + FPRes = npx_rint(FPRes); + /* Calculate the remainder */ + if ((NpxStatus & 0x0400) == 0) { + CVTFPHI64(&remainder, &FPRes); + CPY64BIT8BIT(&remainder, &little_rem); + } + switch (tag_xor) { + case ROUND_NEAREST : HostSetRoundToNearest(); + break; + case ROUND_NEG_INFINITY : HostSetRoundDown(); + break; + case ROUND_POS_INFINITY : HostSetRoundUp(); + break; + case ROUND_ZERO : HostSetRoundToZero(); + break; + } + NpxControl &= 0xf3ff; + NpxControl |= tag_xor; + FPRes = st1_addr->fpvalue * FPRes; + if ((NpxStatus & 0x0400) != 0) { /* The incomplete reduction case */ + FPRes = FPRes * fprem_val; + FPRes = TOSPtr->fpvalue - FPRes; + } else { /* Complete reduction */ + FPRes = TOSPtr->fpvalue - FPRes; + FlagC0((little_rem&4)?1:0); + FlagC3((little_rem&2)?1:0); + FlagC1(little_rem&1); + } + /* Check for an underflow response */ + if (HostGetUnderflowException() != 0) { + NpxStatus |= SW_UE_MASK; + if ((NpxControl & CW_UM_MASK) == 0) { + AdjustUnderflowResponse(); + NpxStatus |= SW_ES_MASK; + NpxException = TRUE; + } + } + /* But the remainder must have the sign of the original ST! */ + if ((TOSPtr->tagvalue & TAG_NEGATIVE_MASK) != 0) { + ((FPHOST *)&(FPRes))->hiword.sign = 1; + } else { + ((FPHOST *)&(FPRes))->hiword.sign = 0; + } + /* And restore st1 sign bit if required */ + if ((st1_addr->tagvalue & TAG_NEGATIVE_MASK) != 0) { + ((FPHOST *)&(st1_addr->fpvalue))->hiword.sign = 1; + } + CalcTagword(TOSPtr); + } else { + /* We had a funny thing */ + if ((tag_or & ((TAG_EMPTY_MASK | TAG_UNSUPPORTED_MASK) | TAG_NAN_MASK)) != 0) { + if ((tag_or & TAG_EMPTY_MASK) != 0) { + SignalStackUnderflow(TOSPtr); + } else { + if ((tag_or & TAG_UNSUPPORTED_MASK) != 0) { + SignalIndefinite(TOSPtr); + } else { + /* It must be a NaN. */ + tag_xor = (TOSPtr->tagvalue ^ st1_addr->tagvalue); + Test2NaN(0, TOSPtr, st1_addr); + } + } + return; + } + /* The logical way to arrange zeroes and infinities is zero first. */ + if ((tag_or & TAG_ZERO_MASK) != 0) { + /* A zero in ST(1) is ALWAYS invalid... */ + if ((st1_addr->tagvalue & TAG_ZERO_MASK) != 0) { + SignalIndefinite(TOSPtr); + } + /* The zero must be in ST, the result is what is there... */ + FlagC0(0); + FlagC1(0); + FlagC2(0); + FlagC3(0); + return; + } + /* OK, it HAS to be infinity */ + /* An infinity at ST is ALWAYS invalid... */ + if ((TOSPtr->tagvalue & TAG_INFINITY_MASK) != 0) { + SignalIndefinite(TOSPtr); + } + /* An infinity at ST(1) leaves ST untouched */ + FlagC0(0); + FlagC1(0); + FlagC2(0); + FlagC3(0); + } +} + + + +/*( + * Name : FPTAN + * Operation : Compute the value of TAN(ST) + * Flags : C1 as per table 15-1, others undefined. + * Exceptions : P, U, D, I, IS + * Valid range : |ST| < 2**63 + * Notes : This function has been substantially overhauled + since the 80287. It now has a much wider range + (it previously had to be 0tagvalue & TAG_EMPTY_MASK) == 0) { + WriteIndefinite(TOSPtr); + TOSPtr = st1_addr; + SignalStackOverflow(TOSPtr); + return; + } + TestUneval(TOSPtr); + /* Check if a real value...We won't bother with limit checking */ + if ((TOSPtr->tagvalue & ~TAG_NEGATIVE_MASK) == 0) { + HostClearExceptions(); + /* We can just write the value straight out */ + FPRes = tan(TOSPtr->fpvalue); + PostCheckOUP(); + /* The return value could be absolutely anything */ + CalcTagword(TOSPtr); + TOSPtr = st1_addr; + CopyFP(TOSPtr, npx_one); + } else { + /* Some funny bit was set. Check for the possibilities */ + /* We begin with the most obvious cases... */ + /* Response to zero is to return zero with same sign */ + if ((TOSPtr->tagvalue & TAG_ZERO_MASK) != 0) { + TOSPtr = st1_addr; + CopyFP(TOSPtr, npx_one); + return; /* The required result! */ + } + /* We do denorm checking and bit setting ourselves because this */ + /* reduces the overhead if the thing is masked. */ + if ((TOSPtr->tagvalue & TAG_DENORMAL_MASK) != 0) { + NpxStatus |= SW_DE_MASK; + if ((NpxControl & CW_DM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + } else { + HostClearExceptions(); + FPRes = tan(TOSPtr->fpvalue); + PostCheckOUP(); + /* The return value could be anything */ + CalcTagword(TOSPtr); + TOSPtr = st1_addr; + CopyFP(TOSPtr, npx_one); + } + return; + } + /* If the value is outside the acceptable range (including */ + /* infinity) then we set the C2 flag and leave everything */ + /* unchanged. */ + /* Sensible enough really, I suppose */ + if ((TOSPtr->tagvalue & TAG_INFINITY_MASK) != 0) { + FlagC2(1); + return; + } + if ((TOSPtr->tagvalue & TAG_EMPTY_MASK) != 0) { + SignalStackUnderflow(TOSPtr); + return; + } + if ((TOSPtr->tagvalue & TAG_SNAN_MASK) != 0) { + MakeNaNQuiet(TOSPtr); + return; + } + if ((TOSPtr->tagvalue & TAG_UNSUPPORTED_MASK) != 0) { + SignalIndefinite(TOSPtr); + return; + } + } +} + + + +/*( + * Name : FRNDINT + * Operation : ST <- rounded ST + * Flags : C1 as per table 15-1, others undefined. + * Exceptions : P, U, D, I, IS + * Valid range : All + * Notes : On the 80287, a precision exception would be + raised if the operand wasn't an integer. + I begin by ASSUMING that on the 486 the response + is IEEE compliant so no OUP exceptions. +)*/ + + +GLOBAL VOID FRNDINT IFN0() +{ + /* Clear C1 */ + FlagC1(0); + TestUneval(TOSPtr); + if ((TOSPtr->tagvalue & ~TAG_NEGATIVE_MASK) == 0) { + HostClearExceptions(); + /* We can just write the value straight out */ + FPRes = npx_rint(TOSPtr->fpvalue); + if (FPRes != TOSPtr->fpvalue) { + SetPrecisionBit(); + /* If the rounding mode is "round to nearest" and we've + rounded up then we'll set C1 */ + if (npxRounding == ROUND_NEAREST) { + if (TOSPtr->fpvalue < FPRes) { + FlagC1(1); + } + } + if ((NpxControl & CW_PM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + return; + } + } + /* It was a real before, it still must be one now. It could */ + /* be zero possibly. */ + CalcTagword(TOSPtr); + } else { + /* Lets do the most probable cases first... */ + /* If it's a zero or infinity, we do nothing. */ + if ((TOSPtr->tagvalue & (TAG_ZERO_MASK | TAG_INFINITY_MASK)) == 0) { + /* Lets check for a denormal */ + if ((TOSPtr->tagvalue & TAG_DENORMAL_MASK) != 0) { + SetPrecisionBit(); + NpxStatus |= SW_DE_MASK; + if ((NpxControl & CW_DM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + } else { + /* The result of rounding a denorm is dependent on */ + /* its sign and the prevailing rounding mode */ + switch (npxRounding) { + case ROUND_ZERO : + case ROUND_NEAREST : + TOSPtr->tagvalue &= TAG_NEGATIVE_MASK; + TOSPtr->tagvalue |= TAG_ZERO_MASK; + + break; + case ROUND_NEG_INFINITY : + if ((TOSPtr->tagvalue & TAG_NEGATIVE_MASK) != 0) { + memset((char*)TOSPtr,0,sizeof(FPSTACKENTRY)); + TOSPtr->fpvalue = -1.0; + TOSPtr->tagvalue = TAG_NEGATIVE_MASK; + } else { + TOSPtr->tagvalue &= TAG_NEGATIVE_MASK; + TOSPtr->tagvalue |= TAG_ZERO_MASK; + } + break; + case ROUND_POS_INFINITY : + if ((TOSPtr->tagvalue & TAG_NEGATIVE_MASK) == 0) { + memset((char*)TOSPtr,0,sizeof(FPSTACKENTRY)); + TOSPtr->fpvalue = 1.0; + TOSPtr->tagvalue = 0; + } else { + TOSPtr->tagvalue &= TAG_NEGATIVE_MASK; + TOSPtr->tagvalue |= TAG_ZERO_MASK; + } + break; + } + } + return; + } + /* It was one of the really wacky bits... */ + if ((TOSPtr->tagvalue & TAG_EMPTY_MASK) != 0) { + SignalStackUnderflow(TOSPtr); + return; + } + if ((TOSPtr->tagvalue & TAG_SNAN_MASK) != 0) { + MakeNaNQuiet(TOSPtr); + return; + } + if ((TOSPtr->tagvalue & TAG_UNSUPPORTED_MASK) != 0) { + SignalIndefinite(TOSPtr); + return; + } + } + } +} + + + + +/*( +Name : FSTCW +Function : Write the FPU control word to memory +Operation : DEST <- Cw +Flags : All undefined. +Exceptions : None - but unmasking previously masked exceptions will + cause the unmasked exception to be triggered if the + matching bit is set in the status word. +Valid range : N/A +*/ + + +GLOBAL VOID FSTCW IFN1(VOID *, memPtr) +{ + if (NpxDisabled) + { + /* UIF has told us to pretend we do not have an NPX */ + *(IU32 *)memPtr = (IU16)0xFFFF; + } + else + { + *(IU32 *)memPtr = (IU16)NpxControl; + } +} + + + +/*( +Name : FRSTOR +Function : Reload the FPU state from memory. +Operation : FPU state <- SRC +Flags : As loaded. +Exceptions : None - but unmasking previously masked exceptions will + cause the unmasked exception to be triggered if the + matching bit is set in the status word. +Valid range : N/A +*/ + + +GLOBAL VOID FRSTOR IFN1(VOID *, memPtr) +{ + IU8 *FPPtr; + IU32 i; + /* First. load the control, status, tagword regs. etc. */ + OpFpuRestoreFpuState(memPtr, 80); + FPPtr = (IU8 *)((IU8 *)memPtr+70); + FPtype = M80R; + for ( i=8; i--; ) + { + if ((TOSPtr->tagvalue & TAG_EMPTY_MASK) == 0) { + /* We have to do a bit of fiddling to make FLD happy */ + TOSPtr->tagvalue = TAG_EMPTY_MASK; + TOSPtr = StackEntryByIndex(1); + FLD(FPPtr); + } + TOSPtr = StackEntryByIndex(1); + FPPtr -= 10; + } + /* Finally, check to see if any previously unmasked exceptions */ + /* are now needed to go off. Do this by anding the "triggered" bits in */ + /* NpxStatus with the one's complement of the "masked" bits in NpxControl. */ + if (((NpxStatus & 0x3f) & (~(NpxControl & 0x3f))) != 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + } +} + + + +/*( +Name : FSAVE +Function : Write the FPU state to memory. +Operation : DEST <- FPU STATE +Flags : All cleared. +Exceptions : None. +Valid range : N/A +*/ + +GLOBAL VOID FSAVE IFN1(VOID *, memPtr) +{ + IU8 *FPPtr; + IU32 i; + + OpFpuStoreFpuState(memPtr, 80); + FPPtr = (IU8 *)((IU8 *)memPtr+70); + /* Now store out the eight values... */ + FPtype = M80R; + FST(FPPtr); + for ( i=7; i--; ) + { + FPPtr -= 10; /* Go back to the next entry */ + TOSPtr = StackEntryByIndex(1); + FST(FPPtr); + } + /* Finally, reset the FPU... */ + FINIT(); +} + + + +/*( +Name : FSCALE +Function : Scale up ST by a factor involving ST(1) +Operation : ST <- ST * 2**ST(1) +Flags : C1 as per table 15-1. Others undefined. +Exceptions : P, U, O, D, I, IS +Valid range : Any +)*/ + + +GLOBAL VOID FSCALE IFN0() +{ + FPSTACKENTRY *st1_addr; + + st1_addr = StackEntryByIndex(1); + /* Clear C1 */ + FlagC1(0); + TestUneval(TOSPtr); + TestUneval(st1_addr); + tag_or = (TOSPtr->tagvalue | st1_addr->tagvalue); + /* First, check if the values are real. If so, we can proceed. */ + if ((tag_or & ~(TAG_NEGATIVE_MASK | TAG_DENORMAL_MASK)) == 0) { + /* First, check for the denormal case. */ + if ((tag_or & TAG_DENORMAL_MASK) != 0) { + NpxStatus |= SW_DE_MASK; + if ((NpxControl & CW_DM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + return; + } + } + /* OK. ST(1) has to be rounded to an integer. */ + /* We want a 'chop' function */ + if (st1_addr->fpvalue > 0.0) { + FPRes = floor(st1_addr->fpvalue); + } else { + FPRes = ceil(st1_addr->fpvalue); + } + HostClearExceptions(); + FPRes = pow(2.0, FPRes); + FPRes = TOSPtr->fpvalue * FPRes; + PostCheckOUP(); + /* Return value could be anything */ + CalcTagword(TOSPtr); + } else { + /* A funny thing happened on the way to the answer */ + if ((tag_or & ((TAG_EMPTY_MASK | TAG_UNSUPPORTED_MASK) | TAG_NAN_MASK)) != 0) { + if ((tag_or & TAG_EMPTY_MASK) != 0) { + SignalStackUnderflow(TOSPtr); + } else { + if ((tag_or & TAG_UNSUPPORTED_MASK) != 0) { + SignalIndefinite(TOSPtr); + } else { + /* It must be a NaN. */ + tag_xor = (TOSPtr->tagvalue ^ st1_addr->tagvalue); + Test2NaN(0, TOSPtr, st1_addr); + } + } + return; + } + /* The rules for scaling combinations of zeroes, reals and infinities, both */ + /* positive and negative, are so complex that I don't intend to do lots of */ + /* logic to figure them out. Basically, there are six options: */ + /* 1. Leave the TOS alone */ + /* 2. +Infinity */ + /* 3. +0 */ + /* 4. -Infinity */ + /* 5. -0 */ + /* 6. Raise Invalid operation exception */ + /* */ + /* TOS ST(1) RESULT */ + /* I S Z I S Z */ + /* 0 0 0 0 0 1 1 */ + /* 0 0 0 0 1 1 1 */ + /* 0 0 0 1 0 0 2 */ + /* 0 0 0 1 1 0 3 */ + /* 0 0 1 0 0 0 1 */ + /* 0 0 1 0 0 1 1 */ + /* 0 0 1 0 1 0 1 */ + /* 0 0 1 0 1 1 1 */ + /* 0 0 1 1 0 0 6 */ + /* 0 0 1 1 1 0 1 */ + /* 0 1 0 0 0 1 1 */ + /* 0 1 0 0 1 1 1 */ + /* 0 1 0 1 0 0 4 */ + /* 0 1 0 1 1 0 5 */ + /* 0 1 1 0 0 0 1 */ + /* 0 1 1 0 0 1 1 */ + /* 0 1 1 0 1 0 1 */ + /* 0 1 1 0 1 1 1 */ + /* 0 1 1 1 0 0 6 */ + /* 0 1 1 1 1 0 1 */ + /* 1 0 0 0 0 0 1 */ + /* 1 0 0 0 0 1 1 */ + /* 1 0 0 0 1 0 1 */ + /* 1 0 0 0 1 1 1 */ + /* 1 0 0 1 0 0 6 */ + /* 1 1 0 0 0 0 1 */ + /* 1 1 0 0 0 1 1 */ + /* 1 1 0 0 1 0 1 */ + /* 1 1 0 0 1 1 1 */ + /* 1 1 0 1 0 0 1 */ + /* 1 1 0 1 1 0 6 */ + /* */ + /* All other combinations are impossible. This can be done as a look up */ + /* table with an enumerated type. */ + tag_or = (TOSPtr->tagvalue & 7); + tag_or <<= 3; + tag_or |= (st1_addr->tagvalue & 7); + tag_or = FscaleTable[tag_or]; + if ((tag_or & TAG_FSCALE_MASK) != 0) { + if ((tag_or & TAG_UNSUPPORTED_MASK) != 0) { + SignalIndefinite(TOSPtr); + } + } else { + TOSPtr->tagvalue = tag_or; + } + } +} + + + +/*( +Name : FSIN +Function : Calculate the sine of ST +Operation : ST <- SINE(ST) +Flags : C1, C2 as per table 15-2. C0 and C3 undefined. +Exceptions : P. U, D, I, IS +Valid range : |ST| < 2**63. +)*/ + + +GLOBAL VOID FSIN IFN0() +{ + /* Clear C1 */ + FlagC1(0); + /* Clear C2 */ + FlagC2(0); + TestUneval(TOSPtr); + if ((TOSPtr->tagvalue & ~TAG_NEGATIVE_MASK) == 0) { + HostClearExceptions(); + /* We can just write the value straight out */ + FPRes = sin(TOSPtr->fpvalue); + PostCheckOUP(); + /* Return value must be in the range -1 to +1 */ + CalcTagword(TOSPtr); + } else { + /* Lets do the most probable cases first... */ + /* A zero returns exactly the same thing */ + if ((TOSPtr->tagvalue & TAG_ZERO_MASK) != 0) { + return; + } + /* Lets check for a denormal */ + if ((TOSPtr->tagvalue & TAG_DENORMAL_MASK) != 0) { + NpxStatus |= SW_DE_MASK; + if ((NpxControl & CW_DM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + } else { + HostClearExceptions(); + FPRes = sin(TOSPtr->fpvalue); + PostCheckOUP(); + /* Return value must be in the range -1 to +1 */ + CalcTagword(TOSPtr); + } + return; + } + /* Or it could possibly be infinity... */ + /* For this, the C2 bit is set and the result remains */ + /* unchanged. */ + if ((TOSPtr->tagvalue & TAG_INFINITY_MASK) != 0) { + FlagC2(1); + return; + } + /* It was one of the really wacky bits... */ + if ((TOSPtr->tagvalue & TAG_EMPTY_MASK) != 0) { + SignalStackUnderflow(TOSPtr); + return; + } + if ((TOSPtr->tagvalue & TAG_SNAN_MASK) != 0) { + MakeNaNQuiet(TOSPtr); + return; + } + if ((TOSPtr->tagvalue & TAG_UNSUPPORTED_MASK) != 0) { + SignalIndefinite(TOSPtr); + return; + } + } +} + + + +/*( +Name : FSINCOS +Function : Calculate the sine and cosine of ST +Operation : TEMP <-COSINE(ST); ST <- SINE(ST); PUSH; ST <- TEMP +Flags : C1, C2 as per table 15-2. C0 and C3 undefined. +Exceptions : P. U, D, I, IS +Valid range : |ST| < 2**63. +)*/ + + +GLOBAL VOID FSINCOS IFN0() +{ + FPSTACKENTRY *st1_addr; + + /* Clear C1 */ + FlagC1(0); + /* Clear C2 */ + FlagC2(0); + st1_addr = StackEntryByIndex(7); + /* First, check that this one is empty. */ + if ((st1_addr->tagvalue & TAG_EMPTY_MASK) == 0) { + WriteIndefinite(TOSPtr); + TOSPtr = st1_addr; + SignalStackOverflow(TOSPtr); + return; + } + TestUneval(TOSPtr); + if ((TOSPtr->tagvalue & ~TAG_NEGATIVE_MASK) == 0) { + HostClearExceptions(); + /* We can just write the value straight out */ + FPRes = cos(TOSPtr->fpvalue); + /* The range for a cosine is -1 through to +1. */ + CalcTagword(st1_addr); + /* I can write out the SINE myself, since as we are */ + /* writing to the stack, even an unmasked U or P */ + /* cannot stop delivery of the result. */ + /* The range for a sine is -1 through to +1. */ + FPRes = sin(TOSPtr->fpvalue); + CalcTagword(TOSPtr); + TOSPtr = st1_addr; + PostCheckOUP(); + return; + } else { + /* Lets do the most probable cases first... */ + /* A zero returns exactly the same thing */ + if ((TOSPtr->tagvalue & TAG_ZERO_MASK) != 0) { + /* The sine of zero is zero so just push the stack */ + TOSPtr = st1_addr; + /* Now write out plus one */ + CopyFP(TOSPtr, npx_one); + return; + } + /* Lets check for a denormal */ + if ((TOSPtr->tagvalue & TAG_DENORMAL_MASK) != 0) { + NpxStatus |= SW_DE_MASK; + if ((NpxControl & CW_DM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + } else { + HostClearExceptions(); + /* We can just write the value straight out */ + FPRes = cos(TOSPtr->fpvalue); + /* The range for a cos is -1 through to +1 */ + CalcTagword(st1_addr); + /* I can write out the SINE myself, since as we are */ + /* writing to the stack, even an unmasked U or P */ + /* cannot stop delivery of the result. */ + /* The range for a sine is -1 through to +1 */ + FPRes = sin(TOSPtr->fpvalue); + CalcTagword(TOSPtr); + TOSPtr = st1_addr; + PostCheckOUP(); + } + return; + } + /* Or it could possibly be infinity... */ + /* For this, the C2 bit is set and the result remains */ + /* unchanged. */ + if ((TOSPtr->tagvalue & TAG_INFINITY_MASK) != 0) { + FlagC2(1); + return; + } + /* It was one of the really wacky bits... */ + if ((TOSPtr->tagvalue & TAG_EMPTY_MASK) != 0) { + SignalStackUnderflow(TOSPtr); + return; + } + if ((TOSPtr->tagvalue & TAG_SNAN_MASK) != 0) { + MakeNaNQuiet(TOSPtr); + return; + } + if ((TOSPtr->tagvalue & TAG_UNSUPPORTED_MASK) != 0) { + SignalIndefinite(TOSPtr); + return; + } + } +} + + + +/*( +Name : FSQRT +Function : Calculate the square root of ST +Operation : ST <- SQRT(ST) +Flags : C1 as per table 15-1. Others undefined. +Exceptions : P. D, I, IS +Valid range : ST >= -0.0 +)*/ + + +GLOBAL VOID FSQRT IFN0() +{ + + /* Clear C1 */ + FlagC1(0); + TestUneval(TOSPtr); + if (TOSPtr->tagvalue == 0) { + HostClearExceptions(); + /* We can just write the value straight out */ + FPRes = sqrt(TOSPtr->fpvalue); + PostCheckOUP(); + TOSPtr->fpvalue = FPRes; + /* The tagword can't have changed! */ + return; + } else { + /* Lets do the most probable cases first... */ + /* A zero returns exactly the same thing */ + if ((TOSPtr->tagvalue & TAG_ZERO_MASK) != 0) { + return; + } + if ((TOSPtr->tagvalue & TAG_NAN_MASK) != 0) { + if ((TOSPtr->tagvalue & TAG_SNAN_MASK) != 0) { + MakeNaNQuiet(TOSPtr); + } + return; + } + /* Having taken care of that case, lets check for negative... */ + if ((TOSPtr->tagvalue & TAG_NEGATIVE_MASK) != 0) { + SignalIndefinite(TOSPtr); + return; + } + /* Lets check for a denormal */ + if ((TOSPtr->tagvalue & TAG_DENORMAL_MASK) != 0) { + NpxStatus |= SW_DE_MASK; + if ((NpxControl & CW_DM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + } else { + HostClearExceptions(); + FPRes = sqrt(TOSPtr->fpvalue); + PostCheckOUP(); + /* It might not be a denorm anymore */ + CalcTagword(TOSPtr); + } + return; + } + /* Or it could possibly be infinity...This just returns. */ + if ((TOSPtr->tagvalue & TAG_INFINITY_MASK) != 0) { + return; + } + /* It was one of the really wacky bits... */ + if ((TOSPtr->tagvalue & TAG_EMPTY_MASK) != 0) { + SignalStackUnderflow(TOSPtr); + return; + } + if ((TOSPtr->tagvalue & TAG_UNSUPPORTED_MASK) != 0) { + SignalIndefinite(TOSPtr); + return; + } + } +} + + +/* CheckOUPForIntel: This is a special version of the PostCheckOUP +routine that is designed for use in situations where the result +is to be written to intel memory space. It just looks at the +excpetions bits and sets the appropriate bits, it doesn't write +the value back or anything like that. */ + + +LOCAL VOID CheckOUPForIntel IFN0() +{ + tag_or=0; /* Prime tag_or */ + if (HostGetOverflowException() != 0) { + NpxStatus |= SW_OE_MASK; /* Set the overflow bit */ + /* For the masked overflow case, the result delivered by */ + /* the host will be correct, provided it is IEEE compliant. */ + if ((NpxControl & CW_OM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + NpxException = TRUE; + tag_or = 1; + } + } else { + /* Overflow and underflow being mutually exclusive... */ + if (HostGetUnderflowException() != 0) { + NpxStatus |= SW_UE_MASK; + if ((NpxControl & CW_UM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + NpxException = TRUE; + tag_or=1; + } + } + } + if (HostGetPrecisionException() != 0) { + SetPrecisionBit(); + if ((NpxControl & CW_PM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + NpxException = TRUE; + /* An unmasked precision exception cannot prevent + delivery of the result */ + } + } + /* Only call for overflow or underflow */ + if (NpxException && (tag_or == 1)) { + NpxException = FALSE; + DoNpxException(); + } +} + + + +/*( +Name : FST{P} +Function : Copy ST to the specified location +Operation : DEST <- ST(0); if FSTP { pop ST FI; +Flags : C1 as per table 15-1. Others undefined. +Exceptions : For stack or extended-real, IS. + For single or double-real P. U, O, D, I, IS +Valid range : N/A +)*/ + + +GLOBAL VOID FST IFN1(VOID *, memPtr) +{ + /* Clear C1 */ + FlagC1(0); + if (POPST) { + DoAPop=TRUE; + } + if ((TOSPtr->tagvalue & UNEVALMASK) != 0) { + if ((TOSPtr->tagvalue & TAG_BCD_MASK) != 0) { + ConvertBCD(TOSPtr); + } else { + /* Doesn't apply for FPStack or M80R types */ + if ((FPtype == M32R) || (FPtype == M64R)) { + ConvertR80(TOSPtr); + } + } + } + if ( ((TOSPtr->tagvalue & TAG_R80_MASK) != 0) + || ((TOSPtr->tagvalue & ~(TAG_NEGATIVE_MASK | TAG_DENORMAL_MASK)) == 0) + || (FPtype == FPSTACK)) { + if (FPtype == FPSTACK) { + /* check for empty here */ + if (TOSPtr->tagvalue & TAG_EMPTY_MASK) { + NpxStatus |= SW_IE_MASK|SW_SF_MASK; + if ((NpxControl & CW_IM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + return; + } + WriteIndefinite(StackEntryByIndex(*(IU16 *)memPtr)); + } else + /* The invalid operation doesn't apply to non-empty */ + /* stack locations. We carry on regardless. */ + CopyFP(StackEntryByIndex(*(IU16 *)memPtr), TOSPtr); + } else { + if (FPtype == M80R) { + if ((TOSPtr->tagvalue & TAG_R80_MASK) == 0) { + CVTFPHR80(TOSPtr); + WriteFP80ToIntel(memPtr, &FPTemp); + } else { + WriteFP80ToIntel(memPtr, TOSPtr); + } + } else { + /* First, check for the denormal case... */ + if ((TOSPtr->tagvalue & TAG_DENORMAL_MASK) != 0) { + NpxStatus |= SW_DE_MASK; + if ((NpxControl & CW_DM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + return; + } + } + HostClearExceptions(); + /* The result of the conversion should be written to FPTemp. */ + if (FPtype == M32R) { + *(float *)&(FPTemp.fpvalue) = (float)TOSPtr->fpvalue; + /* Our host MUST have double precision, so we will have to */ + /* test for problems caused by the conversion... */ + CheckOUPForIntel(); + if (tag_or == 0) { + WriteFP32ToIntel(memPtr, &FPTemp); + } + } + if (FPtype == M64R) { + *(DOUBLE *)&(FPTemp.fpvalue) = (DOUBLE)TOSPtr->fpvalue; + /* If we are dealing with a 64-bit host, then the J-code for */ + /* the above is nothing at all, and we don't need to do any */ + /* testing, but if the host precision is, say 80-bit, then */ + /* we do! Note that this doesn't use the @if format in order */ + /* to avoid generating different J-code for different hosts... */ + CheckOUPForIntel(); + if (tag_or == 0) { + WriteFP64ToIntel(memPtr, &FPTemp); + } + } + } + } + } else { + /* Test for funny values */ + if ((TOSPtr->tagvalue & TAG_ZERO_MASK) != 0) { + /* In this case, we'll allow the casting to be done for us! */ + WriteZeroToIntel(memPtr, TOSPtr->tagvalue & TAG_NEGATIVE_MASK); + } else if ((TOSPtr->tagvalue & TAG_INFINITY_MASK) != 0) { + if ((FPtype == M32R) || (FPtype == M64R)) { + NpxStatus |= SW_OE_MASK; + if ((NpxControl & CW_OM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + return; + } + } + WriteInfinityToIntel(memPtr, TOSPtr->tagvalue & TAG_NEGATIVE_MASK); + } else if ((TOSPtr->tagvalue & TAG_NAN_MASK) != 0) { + if ((TOSPtr->tagvalue & TAG_SNAN_MASK) != 0) { + /* Signal invalid for sNaN */ + if (((FPtype == M32R) || (FPtype == M64R))) { + NpxStatus |= SW_IE_MASK; + if ((NpxControl & CW_IM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + return; + } + } + } + WriteNaNToIntel(memPtr, TOSPtr); + } else if ( (TOSPtr->tagvalue & TAG_EMPTY_MASK) != 0 ) { + NpxStatus |= (SW_IE_MASK | SW_SF_MASK); + FlagC1(0); + if ((NpxControl & CW_IM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + return; + } + WriteIndefiniteToIntel(memPtr); + } else { /* Must be unsupported. */ + if (FPtype == M80R) { + /* unsupported: Write back the unresolved string */ + if ((TOSPtr->tagvalue & TAG_NEGATIVE_MASK) != 0) { + ((FP80 *)&(TOSPtr->fpvalue))->sign_exp.sign = 1; + } else { + ((FP80 *)&(TOSPtr->fpvalue))->sign_exp.sign = 0; + } + WriteFP80ToIntel(memPtr, TOSPtr); + } else { + NpxStatus |= SW_IE_MASK; + if ((NpxControl & CW_IM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + return; + } + WriteIndefiniteToIntel(memPtr); + } + } + } + if (POPST) { + if (DoAPop == TRUE) { + PopStack(); + } + } + /* Check for the case of an unmasked precision exception */ + if (NpxException) { + NpxException = FALSE; + DoNpxException(); + } +} + + + +/*( +Name : FSTENV +Function : Store the FPU environment +Operation : DEST <- FPU environment +Flags : All undefined. +Exceptions : None +Valid range : N/A +*/ + + +GLOBAL VOID FSTENV IFN1(VOID *, memPtr) +{ + /* First. load the control, status, tagword regs. etc. */ + OpFpuStoreFpuState(memPtr,0); + /* Then set all the exceptions to be masked */ + NpxControl |= 0x0000003f; +} + + +/*( +Name : FSTSW +Function : Write the FPU status word to memory +Operation : DEST <- SW +Flags : All undefined. +Exceptions : None +Valid range : N/A +*/ + + +GLOBAL VOID FSTSW IFN2(VOID *, memPtr, BOOL, toAX) +{ + GetIntelStatusWord(); + + if (NpxDisabled) + { + /* UIF has told us to pretend we do not have an NPX */ + + if (toAX) { + *(IU16 *)memPtr = 0xFFFF; + } else { + /* Write it out host format */ + + *(IU16 *)memPtr = (IU16)NpxStatus; + } + } else { + if (toAX) { + *(IU16 *)memPtr = (IU16)NpxStatus; + } else { + *(IU32 *)memPtr = (IU32)NpxStatus; + } + } +} + +/*( +Name : FSUB +Function : Subtract one number from the other +Operation : Dest <- Src1 - Src2 or Dest <- Src2 - Src1 +Flags : C1 as per table 15-1. C0, C2 and C3 undefined +Exceptions : P, U, O, D, I, IS +Valid range : Any +Notes : The REVERSE control variable determines which of the + two forms of the operation is used. Popping after a + successful execution is controlled by POPST. +)*/ + + +GLOBAL VOID FSUB IFN3(IU16, destIndex, IU16, src1Index, VOID *, src2) +{ + IU16 src2Index; + + LoadValue(src2, &src2Index); + if (POPST) { + DoAPop=TRUE; + } + GenericSubtract(destIndex, REVERSE?src2Index:src1Index, REVERSE?src1Index:src2Index); + if (POPST) { + if (DoAPop) { + PopStack(); + } + } +} + + +/*( +Name : GenericSubtract +Function : To return dest <- src1-src2 +)*/ + + +LOCAL VOID GenericSubtract IFN3(IU16, destIndex, IU16, src1Index, IU16, src2Index) +{ + FPSTACKENTRY *src1_addr; + FPSTACKENTRY *src2_addr; + + src1_addr = StackEntryByIndex(src1Index); + src2_addr = StackEntryByIndex(src2Index); + + /* Clear C1 */ + FlagC1(0); + TestUneval(src1_addr); + TestUneval(src2_addr); + tag_or = (src1_addr->tagvalue | src2_addr->tagvalue); + /* If the only tagword bit set is negative then just proceed */ + if ((tag_or & ~TAG_NEGATIVE_MASK) == 0) { + HostClearExceptions(); + FPRes=src1_addr->fpvalue - src2_addr->fpvalue; + /* Reuse one of the above to calculate the destination */ + src1_addr = StackEntryByIndex(destIndex); + PostCheckOUP(); + /* Could be anything */ + CalcTagword(src1_addr); + } else { + /* Some funny bit was set. Check for the possibilities */ + if ((tag_or & ((TAG_EMPTY_MASK | TAG_UNSUPPORTED_MASK) | TAG_NAN_MASK)) != 0) { + if ((tag_or & TAG_EMPTY_MASK) != 0) { + src1_addr = StackEntryByIndex(destIndex); + SignalStackUnderflow(src1_addr); + } else { + if ((tag_or & TAG_UNSUPPORTED_MASK) != 0) { + src1_addr = StackEntryByIndex(destIndex); + SignalIndefinite(src1_addr); + } else { + /* Well, I suppose it has to be the NaN case... */ + /* Calculate the xor of the tagwords */ + tag_xor = (src1_addr->tagvalue ^ src2_addr->tagvalue); + Test2NaN(destIndex, src1_addr, src2_addr); + } + } + return; + } + if ((tag_or & TAG_DENORMAL_MASK) != 0) { + NpxStatus |= SW_DE_MASK; + if ((NpxControl & CW_DM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + DoAPop = FALSE; + return; + } else { + if ((tag_or & ~(TAG_NEGATIVE_MASK | TAG_DENORMAL_MASK)) == 0) { + /* OK to proceed */ + HostClearExceptions(); + FPRes=src1_addr->fpvalue - src2_addr->fpvalue; + /* Reuse one of the above to calculate the destination */ + src1_addr = StackEntryByIndex(destIndex); + PostCheckOUP(); + /* Could be anything */ + CalcTagword(src1_addr); + return; + } + } + } + tag_xor = (src1_addr->tagvalue ^ src2_addr->tagvalue); + /* Check for infinity as it has higher precendence than zero. */ + if ((tag_or & TAG_INFINITY_MASK) != 0) { + if ((tag_xor & TAG_INFINITY_MASK) == 0) { + /* Have they the same sign? */ + if ((tag_xor & TAG_NEGATIVE_MASK) == 0) { + /* They are both the same sign infinity. This is invalid. */ + src1_addr = StackEntryByIndex(destIndex); + SignalIndefinite(src1_addr); + } else { + /* If of different sign then src1 is the answer */ + src2_addr = StackEntryByIndex(destIndex); + src2_addr->tagvalue = src1_addr->tagvalue; + } + } else { + /* Only one is infinity. If src1 in infinity, then the result */ + /* is the same. If src2 is infinity, then the result is an */ + /* infinity of opposite sign. */ + tag_or = src2_addr->tagvalue; + src2_addr = StackEntryByIndex(destIndex); + if ((src1_addr->tagvalue & TAG_INFINITY_MASK) != 0) { + src2_addr->tagvalue = src1_addr->tagvalue; + } else { + src2_addr->tagvalue = tag_or ^ TAG_NEGATIVE_MASK; + } + } + return; + } + /* Check for the case of zero... This is very likely */ + if ((tag_or & TAG_ZERO_MASK) != 0) { + if ((tag_xor & TAG_ZERO_MASK) != 0) { + /* Only one zero. */ + if ((src1_addr->tagvalue & TAG_ZERO_MASK) != 0) { + /* If src1 is zero, -src2 is result */ + src1_addr = StackEntryByIndex(destIndex); + CopyFP(src1_addr, src2_addr); + src1_addr->tagvalue ^= TAG_NEGATIVE_MASK; + ((FPHOST *)&(src1_addr->fpvalue))->hiword.sign ^= 1; + } else { + /* If src2 is zero, src1 is result. */ + src2_addr = StackEntryByIndex(destIndex); + CopyFP(src2_addr, src1_addr); + } + } else { + /* Both are zeros. Do they have the same sign? */ + src2_addr = StackEntryByIndex(destIndex); + if ((tag_xor & TAG_NEGATIVE_MASK) != 0) { + /* No, they don't - the result is src1 */ + src2_addr->tagvalue = src1_addr->tagvalue; + } else { + /* Yes, they do... */ + if (npxRounding == ROUND_NEG_INFINITY) { + src2_addr->tagvalue = (TAG_ZERO_MASK | TAG_NEGATIVE_MASK); + } else { + src2_addr->tagvalue = TAG_ZERO_MASK; + } + } + } + return; + } + } +} + + + +/*( +Name : FTST +Function : Compare ST against 0.0 +Operation : Set C023 on result of comparison +Flags : C1 as per table 15-1. C0, C2 and C3 as result of comparison. +Exceptions : D, I, IS +Valid range : Any +)*/ + + +GLOBAL VOID FTST IFN0() +{ + /* Clear C1 */ + FlagC1(0); + TestUneval(TOSPtr); + if ((TOSPtr->tagvalue & ~((TAG_NEGATIVE_MASK | TAG_DENORMAL_MASK) | TAG_INFINITY_MASK)) == 0) { + /* First, check for the denormal case... */ + if ((TOSPtr->tagvalue & TAG_DENORMAL_MASK) != 0) { + NpxStatus |= SW_DE_MASK; + if ((NpxControl & CW_DM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + return; + } + } + FlagC2(0); + FlagC3(0); + if ((TOSPtr->tagvalue & TAG_NEGATIVE_MASK) != 0) { + /* ST is less than zero */ + FlagC0(1); + } else { + /* ST is greater than zero */ + FlagC0(0); + } + } else { + if ((TOSPtr->tagvalue & TAG_ZERO_MASK) != 0) { + FlagC0(0); + FlagC2(0); + FlagC3(1); + } else { + /* For anything else the result is "unordered" */ + FlagC0(1); + FlagC2(1); + FlagC3(1); + NpxStatus |= SW_IE_MASK; + if ((NpxControl & CW_IM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + } + } + } +} + + +/*( +Name : FXAM +Function : Report on the type of object in ST +Operation : Set C0123 on result of comparison +Flags : C0, C1, C2 and C3 as required. +Exceptions : None +Valid range : Any +)*/ + + +GLOBAL VOID FXAM IFN0() +{ + TestUneval(TOSPtr); + tag_or = TOSPtr->tagvalue; + if ((tag_or & TAG_NEGATIVE_MASK) == 0) { + FlagC1(0); + } else { + FlagC1(1); + tag_or &= ~TAG_NEGATIVE_MASK; + } + tag_or &= ~TAG_SNAN_MASK; + /* This gets rid of all the confusing bits... */ + /* There is now only one bit set or none at all... */ + if (tag_or == 0) { + FlagC0(0); + FlagC2(1); + FlagC3(0); + return; + } + if ((tag_or & TAG_ZERO_MASK) != 0) { + FlagC0(0); + FlagC2(0); + FlagC3(1); + return; + } + if ((tag_or & TAG_INFINITY_MASK) != 0) { + FlagC0(1); + FlagC2(1); + FlagC3(0); + return; + } + if ((tag_or & TAG_DENORMAL_MASK) != 0) { + FlagC0(0); + FlagC2(1); + FlagC3(1); + return; + } + if ((tag_or & TAG_NAN_MASK) != 0) { + FlagC0(1); + FlagC2(0); + FlagC3(0); + return; + } + if ((tag_or & TAG_UNSUPPORTED_MASK) != 0) { + FlagC0(0); + FlagC2(0); + FlagC3(0); + return; + } + /* MUST be empty */ + FlagC0(1); + FlagC2(0); + FlagC3(1); +} + + +/*( +Name : FXCH +Function : Swap the contents of two stack registers. +Operation : TEMP <- ST; ST <- DEST; DEST <- TEMP +Flags : C1 as per table 15-1. Others undefined +Exceptions : IS +Valid range : Any +Notes : If either of the registers is tagged empty then it is + loaded with indefinite and the exchange performed. +)*/ + + +GLOBAL VOID FXCH IFN1(IU16, destIndex) +{ + FPSTACKENTRY *dest_addr; + + dest_addr = StackEntryByIndex(destIndex); + /* Clear C1 */ + FlagC1(0); + tag_or = (TOSPtr->tagvalue | dest_addr->tagvalue); + if ((tag_or & TAG_EMPTY_MASK) != 0) { + NpxStatus |= SW_IE_MASK; + if ((NpxControl & CW_IM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + return; + } + if ((TOSPtr->tagvalue & TAG_EMPTY_MASK) != 0) { + WriteIndefinite(TOSPtr); + } + if ((dest_addr->tagvalue & TAG_EMPTY_MASK) != 0) { + WriteIndefinite(dest_addr); + } + } + CopyFP(&FPTemp, TOSPtr); + CopyFP(TOSPtr, dest_addr); + CopyFP(dest_addr, &FPTemp); +} + + + +/*( +Name : FXTRACT +Function : Split the value in ST into its exponent and significand +Operation : TEMP<-sig(ST); ST<-exp(ST); Dec ST; ST<-TEMP +Flags : C1 as per table 15-1. Others undefined +Exceptions : Z, D, I, IS +Valid range : Any +Notes : If the original operand is zero, result is ST(1) is -infinity + and ST is the original zero. The zero divide exception is also + raised. If the original operand is infinity, ST(1) is +infinity + and ST is the original infinity. If ST(7) is not empty, the + invalid operation exception is raised. +)*/ + + +GLOBAL VOID FXTRACT IFN1(IU16, destIndex) +{ + FPSTACKENTRY *dest_addr; + IS16 exp_val; + + dest_addr = StackEntryByIndex(7); + /* Clear C1 */ + FlagC1(0); + if ((dest_addr->tagvalue & TAG_EMPTY_MASK) == 0) { + NpxStatus |= SW_IE_MASK; + NpxStatus &= ~SW_SF_MASK; + if ((NpxControl & CW_IM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + } else { + WriteIndefinite(TOSPtr); + TOSPtr=dest_addr; + WriteIndefinite(TOSPtr); + } + return; + } + TestUneval(TOSPtr); + if ((TOSPtr->tagvalue & ~(TAG_NEGATIVE_MASK | TAG_DENORMAL_MASK)) == 0) { + if ((TOSPtr->tagvalue & TAG_DENORMAL_MASK) != 0) { + NpxStatus |= SW_DE_MASK; + if ((NpxControl & CW_DM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + return; + } + /* It won't be a denormal after we've finished */ + TOSPtr->tagvalue ^= TAG_DENORMAL_MASK; + } + /* It is entirely valid */ + exp_val = ((FPHOST *)&(TOSPtr->fpvalue))->hiword.exp-HOST_BIAS; + ((FPHOST *)&(TOSPtr->fpvalue))->hiword.exp=HOST_BIAS; + TOSPtr->tagvalue &= TAG_NEGATIVE_MASK; + CopyFP(dest_addr, TOSPtr); + FPRes = (FPH)exp_val; + /* This MUST be a real number, it could be negative. */ + CalcTagword(TOSPtr); + TOSPtr = dest_addr; + } else { + /* Check if it was a zero */ + if ((TOSPtr->tagvalue & TAG_ZERO_MASK) != 0) { + dest_addr->tagvalue = TOSPtr->tagvalue; + TOSPtr->tagvalue = (TAG_INFINITY_MASK | TAG_NEGATIVE_MASK); + TOSPtr = dest_addr; + NpxStatus |= SW_ZE_MASK; + if ((NpxControl & CW_ZM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + } + return; + } + /* Check if it was an infinity */ + if ((TOSPtr->tagvalue & TAG_INFINITY_MASK) != 0) { + dest_addr->tagvalue = TOSPtr->tagvalue; + TOSPtr->tagvalue = TAG_INFINITY_MASK; + TOSPtr = dest_addr; + return; + } + /* There was something funny...Was it empty or unsupported? */ + if ((TOSPtr->tagvalue & (TAG_EMPTY_MASK | TAG_UNSUPPORTED_MASK)) != 0) { + NpxStatus |= SW_IE_MASK; + NpxStatus &= ~SW_SF_MASK; + if ((NpxControl & CW_IM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + } else { + WriteIndefinite(TOSPtr); + TOSPtr=dest_addr; + WriteIndefinite(TOSPtr); + } + return; + } + CopyFP(dest_addr, TOSPtr); + TOSPtr = dest_addr; + } +} + + + +/*( +FYL2X (Y log base 2 of X) calculates the function Z=Y*LOG2(X). X is +taken from ST(0) and Y is taken from ST(1). The operands must be in +the range 0 < X < +inf and -inf < Y < +inf. The instruction pops the +)*/ + + +GLOBAL VOID FYL2X IFN0() +{ + FPSTACKENTRY *st1_addr; + + /* Clear C1 */ + FlagC1(0); + st1_addr = StackEntryByIndex(1); + TestUneval(TOSPtr); + TestUneval(st1_addr); + tag_or = (TOSPtr->tagvalue | st1_addr->tagvalue); + /* First, check if the values are real. If so, we can proceed. */ + if ((tag_or & ~(TAG_DENORMAL_MASK | TAG_NEGATIVE_MASK)) == 0) { + /* Check for the denorm case... */ + if ((tag_or & TAG_DENORMAL_MASK) != 0) { + NpxStatus |= SW_DE_MASK; + if ((NpxControl & CW_DM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + /* We ALWAYS pop!!! */ + TOSPtr->tagvalue = TAG_EMPTY_MASK; + TOSPtr = st1_addr; + return; + } + } + /* Check for the case of a negative in ST */ + if ((TOSPtr->tagvalue & TAG_NEGATIVE_MASK) != 0) { + SignalIndefinite(st1_addr); + TOSPtr->tagvalue = TAG_EMPTY_MASK; + TOSPtr = st1_addr; + return; + } + + /* OK, we can do the operation ... */ + + FPRes = st1_addr->fpvalue * host_log2(TOSPtr->fpvalue); + + PostCheckOUP(); + /* Tgis is just a multiplication, result could be anything */ + CalcTagword(st1_addr); + } else { + if ((tag_or & ((TAG_EMPTY_MASK | TAG_UNSUPPORTED_MASK) | TAG_NAN_MASK)) != 0) { + if ((tag_or & TAG_EMPTY_MASK) != 0) { + SignalStackUnderflow(st1_addr); + } else { + if ((tag_or & TAG_UNSUPPORTED_MASK) != 0) { + SignalIndefinite(st1_addr); + } else { + /* Well, I suppose it has to be the NaN case... */ + /* Calculate the xor of the tagwords */ + tag_xor = (TOSPtr->tagvalue ^ st1_addr->tagvalue); + Test2NaN(1, TOSPtr, st1_addr); + } + } + TOSPtr->tagvalue = TAG_EMPTY_MASK; + TOSPtr = st1_addr; + return; + } + /* The only possibilities left are infinity and zero.. */ + /* Let's begin with the zeroes case.. */ + if ((tag_or & TAG_ZERO_MASK) != 0) { + if ((TOSPtr->tagvalue & TAG_ZERO_MASK) != 0) { + /* ST is zero. Can have two possibilities */ + /* if ST(1) is zero, raise invalid */ + /* Otherwise raise divide by zero */ + if ((st1_addr->tagvalue & TAG_ZERO_MASK) != 0) { + SignalIndefinite(st1_addr); + } else { + if ((st1_addr->tagvalue & TAG_INFINITY_MASK) == 0) { + /* Calculate the xor of the tagwords */ + tag_xor = (TOSPtr->tagvalue ^ st1_addr->tagvalue); + SignalDivideByZero(st1_addr); + } else { + st1_addr->tagvalue ^= TAG_NEGATIVE_MASK; + } + } + } else { + /* ST(1) must be zero */ + /* We already know that TOSPtr isn't zero. */ + /* There are three possibilities again. */ + /* If TOSPtr is infinity, raise invalid exception. */ + /* If TOSPtr < 1.0 then the result is zero with the */ + /* complement of the sign of ST(1) */ + /* If TOSPtr >= 1.0 then the result is ST(1) */ + if ((TOSPtr->tagvalue & TAG_INFINITY_MASK) != 0) { + SignalIndefinite(st1_addr); + } else { + if ((TOSPtr->tagvalue & TAG_NEGATIVE_MASK) != 0) { + SignalIndefinite(st1_addr); + } else { + if (TOSPtr->fpvalue < 1.0) { + st1_addr->tagvalue ^= TAG_NEGATIVE_MASK; + } + } + } + } + TOSPtr->tagvalue = TAG_EMPTY_MASK; + TOSPtr = st1_addr; + return; + } + /* The only thing left is infinity... */ + /* If ST is infinity then there are two possibilities... */ + /* If it is +infinity the result is infinity with sign of ST(1) */ + /* If it is -infinity the result is an invalid operation */ + if ((TOSPtr->tagvalue & TAG_INFINITY_MASK) != 0) { + if ((TOSPtr->tagvalue & TAG_NEGATIVE_MASK) == 0) { + st1_addr->tagvalue &= TAG_NEGATIVE_MASK; + st1_addr->tagvalue |= TAG_INFINITY_MASK; + } else { + SignalIndefinite(st1_addr); + } + } else { + /* ST(1) MUST be infinity (and ST is real). */ + /* There are three possibilities: */ + /* If ST is exactly 1.0 then raise Invalid */ + /* If ST is less than 1.0 then the result is the */ + /* infinity with the complement of its sign. */ + /* If ST is greater than 1.0 the result is the infinity. */ + if (TOSPtr->fpvalue == 1.0) { + SignalIndefinite(st1_addr); + } else { + if (TOSPtr->fpvalue < 1.0) { + if ((TOSPtr->tagvalue & TAG_NEGATIVE_MASK) != 0) { + SignalIndefinite(st1_addr); + } else { + st1_addr->tagvalue ^= TAG_NEGATIVE_MASK; + } + } + } + } + } + TOSPtr->tagvalue = TAG_EMPTY_MASK; + TOSPtr = st1_addr; +} + + + +/*( +FYL2XP1 (Y log base 2 of (X+1)) calculates the function Z=Y*LOG2(X+1). X is +taken from ST(0) and Y is taken from ST(1). The operands must be in +the range 0 < X < +inf and -inf < Y < +inf. The instruction pops the +TOS value. This is better than FYL2X when X is very small, since more significant +digits can be retained for 1+X than can be for X alone. +)*/ + + +GLOBAL VOID FYL2XP1 IFN0() +{ + FPSTACKENTRY *st1_addr; + + /* Clear C1 */ + FlagC1(0); + st1_addr = StackEntryByIndex(1); + TestUneval(TOSPtr); + TestUneval(st1_addr); + tag_or = (TOSPtr->tagvalue | st1_addr->tagvalue); + /* First, check if the values are real. If so, we can proceed. */ + if ((tag_or & ~(TAG_DENORMAL_MASK | TAG_NEGATIVE_MASK)) == 0) { + /* Check for the denorm case... */ + if ((tag_or & TAG_DENORMAL_MASK) != 0) { + NpxStatus |= SW_DE_MASK; + if ((NpxControl & CW_DM_MASK) == 0) { + NpxStatus |= SW_ES_MASK; + DoNpxException(); + /* We ALWAYS pop!!! */ + TOSPtr->tagvalue = TAG_EMPTY_MASK; + TOSPtr = st1_addr; + return; + } + } + /* Check for the case of a value less than -1 */ + if (TOSPtr->fpvalue <= -1.0) { + SignalIndefinite(st1_addr); + TOSPtr->tagvalue = TAG_EMPTY_MASK; + TOSPtr = st1_addr; + return; + } + + /* OK, we can do the operation ... */ + + FPRes = st1_addr->fpvalue * host_log1p(TOSPtr->fpvalue); + + PostCheckOUP(); + /* This is just a numtiplication - result could be anything */ + CalcTagword(st1_addr); + } else { + if ((tag_or & ((TAG_EMPTY_MASK | TAG_UNSUPPORTED_MASK) | TAG_NAN_MASK)) != 0) { + if ((tag_or & TAG_EMPTY_MASK) != 0) { + SignalStackUnderflow(st1_addr); + } else { + if ((tag_or & TAG_UNSUPPORTED_MASK) != 0) { + SignalIndefinite(st1_addr); + } else { + /* Well, I suppose it has to be the NaN case... */ + /* Calculate the xor of the tagwords */ + tag_xor = (TOSPtr->tagvalue ^ st1_addr->tagvalue); + Test2NaN(1, TOSPtr, st1_addr); + } + } + TOSPtr->tagvalue = TAG_EMPTY_MASK; + TOSPtr = st1_addr; + return; + } + /* The only possibilities left are infinity and zero.. */ + /* Let's begin with the zeroes case.. */ + if ((tag_or & TAG_ZERO_MASK) != 0) { + if ((TOSPtr->tagvalue & TAG_ZERO_MASK) != 0) { + /* ST is zero. Can have two possibilities */ + /* if ST(1) is positive, result is ST */ + /* if ST(1) is negative, result is -ST */ + if ((st1_addr->tagvalue & TAG_NEGATIVE_MASK) != 0) { + st1_addr->tagvalue = (TAG_ZERO_MASK | (TOSPtr->tagvalue & TAG_NEGATIVE_MASK)); + } else { + st1_addr->tagvalue = (TAG_ZERO_MASK | (TOSPtr->tagvalue ^ TAG_NEGATIVE_MASK)); + } + } else { + /* ST(1) must be zero */ + /* We already know that TOSPtr isn't zero. */ + /* There are three possibilities again. */ + /* If TOSPtr is infinity, raise invalid exception. */ + /* If TOSPtr < 0 then the result is zero with the */ + /* complement of the sign of ST(1) */ + /* If TOSPtr >= 0 then the result is ST(1) */ + if ((TOSPtr->tagvalue & TAG_INFINITY_MASK) != 0) { + SignalIndefinite(st1_addr); + } else { + if ((TOSPtr->tagvalue & TAG_NEGATIVE_MASK) != 0) { + st1_addr->tagvalue ^= TAG_NEGATIVE_MASK; + } + } + } + TOSPtr->tagvalue = TAG_EMPTY_MASK; + TOSPtr = st1_addr; + return; + } + /* The only thing left is infinity... */ + /* If ST is infinity then there are two possibilities... */ + /* If it is +infinity the result is infinity with sign of ST(1) */ + /* If it is -infinity the result is an invalid operation */ + if ((TOSPtr->tagvalue & TAG_INFINITY_MASK) != 0) { + if ((TOSPtr->tagvalue & TAG_NEGATIVE_MASK) != 0) { + st1_addr->tagvalue &= TAG_NEGATIVE_MASK; + st1_addr->tagvalue |= TAG_INFINITY_MASK; + } else { + SignalIndefinite(st1_addr); + } + } else { + /* ST(1) MUST be infinity (and ST is non-zero). */ + /* There are three possibilities: */ + /* If ST is exactly 1.0 then raise Invalid */ + /* If ST is less than 0.0 then the result is the */ + /* infinity with the complement of its sign. */ + /* If ST is greater than 0.0 the result is the infinity. */ + if (TOSPtr->fpvalue == 1.0) { + SignalIndefinite(st1_addr); + } else { + if (TOSPtr->fpvalue < 0.0) { + st1_addr->tagvalue ^= TAG_NEGATIVE_MASK; + } + } + } + } + TOSPtr->tagvalue = TAG_EMPTY_MASK; + TOSPtr = st1_addr; +} + +/* These functions are provided in order to facilitate pigging */ + +#ifndef PIG +/* copied here from FmNpx.c */ + +GLOBAL void NpxStackRegAsString IFN3(FPSTACKENTRY *, fpStPtr, char *, buf, IU32, prec) +{ + /* The overwhelmingly most likely option is empty. */ + if ((fpStPtr->tagvalue & TAG_EMPTY_MASK) != 0) { + strcpy(buf, "empty"); + return; + } + if ((fpStPtr->tagvalue & ~(TAG_NEGATIVE_MASK | TAG_DENORMAL_MASK)) == 0) { + sprintf(buf, "%.*g", prec, fpStPtr->fpvalue); + return; + } + /* OK, one of the funny bits was set. But which? */ + if ((fpStPtr->tagvalue & TAG_ZERO_MASK) != 0) { + if ((fpStPtr->tagvalue & TAG_NEGATIVE_MASK) != 0) { + strcpy(buf, "-0"); + } else { + strcpy(buf, "0"); + } + return; + } + if ((fpStPtr->tagvalue & UNEVALMASK) != 0) { + sprintf(buf, "%04x %08x%08x", + ((FP80*)fpStPtr)->sign_exp, + ((FP80*)fpStPtr)->mant_hi, + ((FP80*)fpStPtr)->mant_lo); + strcat(buf, " uneval"); + return; + } + if ((fpStPtr->tagvalue & TAG_INFINITY_MASK) != 0) { + if ((fpStPtr->tagvalue & TAG_NEGATIVE_MASK) != 0) { + strcpy(buf, "minus infinity"); + } else { + strcpy(buf, "infinity"); + } + return; + } + if ((fpStPtr->tagvalue & (TAG_NAN_MASK|TAG_SNAN_MASK)) != 0) { + if ( ((FP80*)fpStPtr)->mant_lo == 0 + && ((FP80*)fpStPtr)->mant_hi == 0xC0000000 + && *(IU16*)&((FP80*)fpStPtr)->sign_exp == 0xFFFF ) + strcpy(buf, "indefinite"); + else + sprintf(buf, "%08x%08x %s %sNan", + ((FP80*)fpStPtr)->mant_hi, + ((FP80*)fpStPtr)->mant_lo, + (fpStPtr->tagvalue & TAG_NEGATIVE_MASK) ? "negative" : "", + (fpStPtr->tagvalue & TAG_SNAN_MASK) ? "S" : ""); + return; + } + /* It MUST be unsupported */ + sprintf(buf, "%04 %08x%08x unsupported", + ((FP80*)fpStPtr)->sign_exp, + ((FP80*)fpStPtr)->mant_hi, + ((FP80*)fpStPtr)->mant_lo); + return; +} + +/* this one is only ever used in trace.c and only if pure CCPU */ +GLOBAL char * getNpxStackReg IFN2(IU32, reg_num, char *, buffer) +{ + reg_num += TOSPtr - FPUStackBase; + NpxStackRegAsString (&FPUStackBase[reg_num&7], buffer, 12); + return buffer; +} +#endif /* !PIG */ + +GLOBAL IU32 getNpxControlReg IFN0() +{ + return(NpxControl); +} + +GLOBAL VOID setNpxControlReg IFN1(IU32, newControl) +{ + NpxControl = newControl; + npxRounding = (NpxControl & 0xc00); + switch (npxRounding) { + case ROUND_NEAREST : HostSetRoundToNearest(); + break; + case ROUND_NEG_INFINITY : HostSetRoundDown(); + break; + case ROUND_POS_INFINITY : HostSetRoundUp(); + break; + case ROUND_ZERO : HostSetRoundToZero(); + break; + } +} + +GLOBAL IU32 getNpxStatusReg IFN0() +{ + GetIntelStatusWord(); + return(NpxStatus); +} + +GLOBAL VOID setNpxStatusReg IFN1( IU32, newStatus) +{ + TOSPtr = FPUStackBase + ((newStatus >> 11) & 7); + NpxStatus = newStatus; +} + +GLOBAL IU32 getNpxTagwordReg IFN0() +{ + IU32 result; + FPSTACKENTRY *tagPtr = &FPUStackBase[7]; + IU8 counter = 0; + + result = 0; + while (counter++ < 8) { + result <<= 2; + if ((tagPtr->tagvalue & TAG_EMPTY_MASK) != 0) { + result |= 3; + } else { + if ((tagPtr->tagvalue & TAG_ZERO_MASK) != 0) { + result |= 1; + } else { + if ((tagPtr->tagvalue & ~TAG_NEGATIVE_MASK) != 0) { + result |= 2; + } + } + } + tagPtr--; + } + return(result); +} + +GLOBAL VOID setNpxTagwordReg IFN1(IU32, newTag) +{ + /* Don't do it!! It fucks you up!! */ + /* SetIntelTagword(newTag); */ +} + +GLOBAL void getNpxStackRegs IFN1(FPSTACKENTRY *, dumpPtr) +{ + memcpy((char *)dumpPtr, (char *)FPUStackBase, 8 * sizeof(FPSTACKENTRY)); +} + +GLOBAL void setNpxStackRegs IFN1(FPSTACKENTRY *, loadPtr) +{ + memcpy((char *)FPUStackBase, (char *)loadPtr, 8 * sizeof(FPSTACKENTRY)); +} + + +/* And finally some stubs */ +GLOBAL void initialise_npx IFN0() +{ +} + +GLOBAL void npx_reset IFN0() +{ + +} diff --git a/private/mvdm/softpc.new/base/ccpu386/fpu_c.h b/private/mvdm/softpc.new/base/ccpu386/fpu_c.h new file mode 100644 index 000000000..999b99579 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/fpu_c.h @@ -0,0 +1,168 @@ +#ifndef _Fpu_c_h +#define _Fpu_c_h +#define HOST_BIAS (1023) +#define MIN_EXP (-1023) +#define MAX_EXP (1024) +#define STACKENTRYSIZE (16) +#define STACKSIZE (128) +#define STACKWRAP (-129) +#define TAG_NEGATIVE_BIT (0) +#define TAG_ZERO_BIT (1) +#define TAG_INFINITY_BIT (2) +#define TAG_DENORMAL_BIT (3) +#define TAG_NAN_BIT (4) +#define TAG_SNAN_BIT (5) +#define TAG_UNSUPPORTED_BIT (6) +#define TAG_EMPTY_BIT (7) +#define TAG_FSCALE_BIT (8) +#define TAG_BCD_BIT (9) +#define TAG_R80_BIT (10) +#define TAG_UNEVAL_BIT_E (9) +#define TAG_UNEVAL_BIT_S (10) +#define TAG_REAL_POSITIVE_MASK (0) +#define TAG_NEGATIVE_MASK (1) +#define TAG_ZERO_MASK (2) +#define TAG_INFINITY_MASK (4) +#define TAG_DENORMAL_MASK (8) +#define TAG_NAN_MASK (16) +#define TAG_SNAN_MASK (32) +#define TAG_UNSUPPORTED_MASK (64) +#define TAG_EMPTY_MASK (128) +#define TAG_FSCALE_MASK (256) +#define TAG_BCD_MASK (512) +#define TAG_R80_MASK (1024) +#define TAG_UNEVAL_MASK (1536) +#define ST_IE_BIT (0) +#define ST_DE_BIT (1) +#define ST_ZE_BIT (2) +#define ST_OE_BIT (3) +#define ST_UE_BIT (4) +#define ST_PE_BIT (5) +#define ST_SF_BIT (6) +#define ST_ES_BIT (7) +#define ST_IE_MASK (1) +#define ST_DE_MASK (2) +#define ST_ZE_MASK (4) +#define ST_OE_MASK (8) +#define ST_UE_MASK (16) +#define ST_PE_MASK (32) +#define ST_SF_MASK (64) +#define ST_ES_MASK (128) +#define ST_C0_BIT (8) +#define ST_C1_BIT (9) +#define ST_C2_BIT (10) +#define ST_C3_BIT (14) +#define ST_C0_MASK (65279) +#define ST_C1_MASK (65023) +#define ST_C2_MASK (64511) +#define ST_C3_MASK (49151) +#define ST_B_BIT (15) +#define ST_ST_BIT_S (13) +#define ST_ST_BIT_E (11) +#define ST_B_MASK (61439) +#define ST_ST_MASK (51199) +#define TW_TAG_0_S (1) +#define TW_TAG_0_E (0) +#define TW_TAG_LENGTH (2) +#define TW_TAG_0_MASK (3) +#define TW_TAG_VALID (0) +#define TW_TAG_ZERO (1) +#define TW_TAG_INVALID (2) +#define TW_TAG_EMPTY (3) +#define CW_IM_BIT (0) +#define CW_DM_BIT (1) +#define CW_ZM_BIT (2) +#define CW_OM_BIT (3) +#define CW_UM_BIT (4) +#define CW_PM_BIT (5) +#define CW_PC_BIT_E (8) +#define CW_PC_BIT_S (9) +#define CW_RC_BIT_E (10) +#define CW_RC_BIT_S (11) +#define CW_IC_BIT (12) +#define CW_IM_MASK (1) +#define CW_DM_MASK (2) +#define CW_ZM_MASK (4) +#define CW_OM_MASK (8) +#define CW_UM_MASK (16) +#define CW_PM_MASK (32) +#define CW_PC_MASK (768) +#define CW_RC_MASK (3072) +#define CW_IC_MASK (4096) +#define ROUND_NEAREST (0) +#define ROUND_NEG_INFINITY (1) +#define ROUND_POS_INFINITY (2) +#define ROUND_TO_ZERO (3) +#define INTEL_I16_SIGN_BIT (15) +#define INTEL_I16_SIGN_MASK (32768) +#define INTEL_I32_SIGN_BIT (31) +#define INTEL_I32_SIGN_MASK (-2147483648) +#define INTEL_I64_SIGN_BIT (31) +#define INTEL_BCD_SIGN_BIT (15) +#define INTEL_SR_SIGN_BIT (31) +#define INTEL_SR_SIGN_MASK (-2147483648) +#define INTEL_SR_EXP_S (30) +#define INTEL_SR_EXP_E (23) +#define INTEL_SR_EXP_MASK (2139095040) +#define INTEL_SR_EXP_MAX (255) +#define INTEL_SR_MANT_S (22) +#define INTEL_SR_MANT_E (0) +#define INTEL_SR_MANT_MASK (8388607) +#define INTEL_LR_SIGN_BIT (31) +#define INTEL_LR_SIGN_MASK (-2147483648) +#define INTEL_LR_EXP_S (30) +#define INTEL_LR_EXP_E (20) +#define INTEL_LR_EXP_MASK (2146435072) +#define INTEL_LR_EXP_MAX (2047) +#define INTEL_LR_MANT_S (19) +#define INTEL_LR_MANT_E (0) +#define INTEL_LR_MANT_MASK (1048575) +#define INTEL_TR_SIGN_BIT (15) +#define INTEL_TR_SIGN_MASK (32768) +#define INTEL_TR_EXP_S (14) +#define INTEL_TR_EXP_E (0) +#define INTEL_TR_EXP_MASK (32767) +#define INTEL_COMP_NC (17664) +#define INTEL_COMP_GT (0) +#define INTEL_COMP_LT_BIT (8) +#define INTEL_COMP_EQ_BIT (14) +#define INTEL_COMP_LT (256) +#define INTEL_COMP_EQ (16384) +#define FPTEMP_INDEX (8) +#define C3C2C0MASK (47359) +#define FCLEX_MASK (32512) +#define COMP_LT (0) +#define COMP_GT (1) +#define COMP_EQ (2) +#define FPBASE_OFFSET (8) +#define CONST_ONE_OFFSET (0) +#define CONST_LOG2_10_OFFSET (1) +#define CONST_LOG2_E_OFFSET (2) +#define CONST_PI_OFFSET (3) +#define CONST_LOG10_2_OFFSET (4) +#define CONST_LOGE_2_OFFSET (5) +#define CONST_ZERO_OFFSET (6) +#define CONST_TWO_OFFSET (7) +#define CONST_MINUS_ONE_OFFSET (8) +struct FPSTACKENTRY +{ + double fpvalue; + IUH padding; + IUH tagvalue; +}; +struct FP_I64 +{ + IU32 word1; + IU32 word2; +}; +struct FP_R64 +{ + IU32 word1; + IU32 word2; +}; +struct FP_R80 +{ + struct FP_I64 mantissa; + IU16 exponent; +}; +#endif /* ! _Fpu_c_h */ diff --git a/private/mvdm/softpc.new/base/ccpu386/gdpvar.h b/private/mvdm/softpc.new/base/ccpu386/gdpvar.h new file mode 100644 index 000000000..bf7e23e78 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/gdpvar.h @@ -0,0 +1,1859 @@ +#ifndef _gdpvar_h +#define _gdpvar_h +#define GLOBAL_EDL_WORKSPACE_0 (*(IUH *)((IUH)Gdp + 43)) +#define SET_GLOBAL_EDL_WORKSPACE_0(v) (GLOBAL_EDL_WORKSPACE_0 = (v)) +#define GLOBAL_EDL_WORKSPACE_1 (*(IUH *)((IUH)Gdp + 47)) +#define SET_GLOBAL_EDL_WORKSPACE_1(v) (GLOBAL_EDL_WORKSPACE_1 = (v)) +#define GLOBAL_EDL_WORKSPACE_2 (*(IUH *)((IUH)Gdp + 51)) +#define SET_GLOBAL_EDL_WORKSPACE_2(v) (GLOBAL_EDL_WORKSPACE_2 = (v)) +#define GLOBAL_EDL_WORKSPACE_3 (*(IUH *)((IUH)Gdp + 55)) +#define SET_GLOBAL_EDL_WORKSPACE_3(v) (GLOBAL_EDL_WORKSPACE_3 = (v)) +#define GLOBAL_EDL_WORKSPACE_4 (*(IUH *)((IUH)Gdp + 59)) +#define SET_GLOBAL_EDL_WORKSPACE_4(v) (GLOBAL_EDL_WORKSPACE_4 = (v)) +#define GLOBAL_EDL_WORKSPACE_5 (*(IUH *)((IUH)Gdp + 63)) +#define SET_GLOBAL_EDL_WORKSPACE_5(v) (GLOBAL_EDL_WORKSPACE_5 = (v)) +#define GLOBAL_EDL_WORKSPACE_6 (*(IUH *)((IUH)Gdp + 67)) +#define SET_GLOBAL_EDL_WORKSPACE_6(v) (GLOBAL_EDL_WORKSPACE_6 = (v)) +#define GLOBAL_EDL_WORKSPACE_7 (*(IUH *)((IUH)Gdp + 71)) +#define SET_GLOBAL_EDL_WORKSPACE_7(v) (GLOBAL_EDL_WORKSPACE_7 = (v)) +#define GLOBAL_EDL_WORKSPACE_8 (*(IUH *)((IUH)Gdp + 75)) +#define SET_GLOBAL_EDL_WORKSPACE_8(v) (GLOBAL_EDL_WORKSPACE_8 = (v)) +#define GLOBAL_EDL_WORKSPACE_9 (*(IUH *)((IUH)Gdp + 79)) +#define SET_GLOBAL_EDL_WORKSPACE_9(v) (GLOBAL_EDL_WORKSPACE_9 = (v)) +#define GLOBAL_EDL_WORKSPACE_10 (*(IUH *)((IUH)Gdp + 83)) +#define SET_GLOBAL_EDL_WORKSPACE_10(v) (GLOBAL_EDL_WORKSPACE_10 = (v)) +#define GLOBAL_EDL_WORKSPACE_11 (*(IUH *)((IUH)Gdp + 87)) +#define SET_GLOBAL_EDL_WORKSPACE_11(v) (GLOBAL_EDL_WORKSPACE_11 = (v)) +#define GLOBAL_EDL_WORKSPACE_12 (*(IUH *)((IUH)Gdp + 91)) +#define SET_GLOBAL_EDL_WORKSPACE_12(v) (GLOBAL_EDL_WORKSPACE_12 = (v)) +#define GLOBAL_EDL_WORKSPACE_13 (*(IUH *)((IUH)Gdp + 95)) +#define SET_GLOBAL_EDL_WORKSPACE_13(v) (GLOBAL_EDL_WORKSPACE_13 = (v)) +#define GLOBAL_EDL_WORKSPACE_14 (*(IUH *)((IUH)Gdp + 99)) +#define SET_GLOBAL_EDL_WORKSPACE_14(v) (GLOBAL_EDL_WORKSPACE_14 = (v)) +#define GLOBAL_EDL_WORKSPACE_15 (*(IUH *)((IUH)Gdp + 103)) +#define SET_GLOBAL_EDL_WORKSPACE_15(v) (GLOBAL_EDL_WORKSPACE_15 = (v)) +#define GLOBAL_EDL_WORKSPACE_16 (*(IUH *)((IUH)Gdp + 107)) +#define SET_GLOBAL_EDL_WORKSPACE_16(v) (GLOBAL_EDL_WORKSPACE_16 = (v)) +#define GLOBAL_EDL_WORKSPACE_17 (*(IUH *)((IUH)Gdp + 111)) +#define SET_GLOBAL_EDL_WORKSPACE_17(v) (GLOBAL_EDL_WORKSPACE_17 = (v)) +#define GLOBAL_EDL_WORKSPACE_18 (*(IUH *)((IUH)Gdp + 115)) +#define SET_GLOBAL_EDL_WORKSPACE_18(v) (GLOBAL_EDL_WORKSPACE_18 = (v)) +#define GLOBAL_EDL_WORKSPACE_19 (*(IUH *)((IUH)Gdp + 119)) +#define SET_GLOBAL_EDL_WORKSPACE_19(v) (GLOBAL_EDL_WORKSPACE_19 = (v)) +#define GLOBAL_EDL_WORKSPACE_20 (*(IUH *)((IUH)Gdp + 123)) +#define SET_GLOBAL_EDL_WORKSPACE_20(v) (GLOBAL_EDL_WORKSPACE_20 = (v)) +#define GLOBAL_EDL_WORKSPACE_21 (*(IUH *)((IUH)Gdp + 127)) +#define SET_GLOBAL_EDL_WORKSPACE_21(v) (GLOBAL_EDL_WORKSPACE_21 = (v)) +#define GLOBAL_EDL_WORKSPACE_22 (*(IUH *)((IUH)Gdp + 131)) +#define SET_GLOBAL_EDL_WORKSPACE_22(v) (GLOBAL_EDL_WORKSPACE_22 = (v)) +#define GLOBAL_EDL_WORKSPACE_23 (*(IUH *)((IUH)Gdp + 135)) +#define SET_GLOBAL_EDL_WORKSPACE_23(v) (GLOBAL_EDL_WORKSPACE_23 = (v)) +#define GLOBAL_EDL_WORKSPACE_24 (*(IUH *)((IUH)Gdp + 139)) +#define SET_GLOBAL_EDL_WORKSPACE_24(v) (GLOBAL_EDL_WORKSPACE_24 = (v)) +#define GLOBAL_EDL_WORKSPACE_25 (*(IUH *)((IUH)Gdp + 143)) +#define SET_GLOBAL_EDL_WORKSPACE_25(v) (GLOBAL_EDL_WORKSPACE_25 = (v)) +#define GLOBAL_EDL_WORKSPACE_26 (*(IUH *)((IUH)Gdp + 147)) +#define SET_GLOBAL_EDL_WORKSPACE_26(v) (GLOBAL_EDL_WORKSPACE_26 = (v)) +#define GLOBAL_EDL_WORKSPACE_27 (*(IUH *)((IUH)Gdp + 151)) +#define SET_GLOBAL_EDL_WORKSPACE_27(v) (GLOBAL_EDL_WORKSPACE_27 = (v)) +#define GLOBAL_EDL_WORKSPACE_28 (*(IUH *)((IUH)Gdp + 155)) +#define SET_GLOBAL_EDL_WORKSPACE_28(v) (GLOBAL_EDL_WORKSPACE_28 = (v)) +#define GLOBAL_EDL_WORKSPACE_29 (*(IUH *)((IUH)Gdp + 159)) +#define SET_GLOBAL_EDL_WORKSPACE_29(v) (GLOBAL_EDL_WORKSPACE_29 = (v)) +#define GLOBAL_EDL_WORKSPACE_30 (*(IUH *)((IUH)Gdp + 163)) +#define SET_GLOBAL_EDL_WORKSPACE_30(v) (GLOBAL_EDL_WORKSPACE_30 = (v)) +#define GLOBAL_EDL_WORKSPACE_31 (*(IUH *)((IUH)Gdp + 167)) +#define SET_GLOBAL_EDL_WORKSPACE_31(v) (GLOBAL_EDL_WORKSPACE_31 = (v)) +#define GLOBAL_EDL_WORKSPACE_32 (*(IUH *)((IUH)Gdp + 171)) +#define SET_GLOBAL_EDL_WORKSPACE_32(v) (GLOBAL_EDL_WORKSPACE_32 = (v)) +#define GLOBAL_EDL_WORKSPACE_33 (*(IUH *)((IUH)Gdp + 175)) +#define SET_GLOBAL_EDL_WORKSPACE_33(v) (GLOBAL_EDL_WORKSPACE_33 = (v)) +#define GLOBAL_EDL_WORKSPACE_34 (*(IUH *)((IUH)Gdp + 179)) +#define SET_GLOBAL_EDL_WORKSPACE_34(v) (GLOBAL_EDL_WORKSPACE_34 = (v)) +#define GLOBAL_EDL_WORKSPACE_35 (*(IUH *)((IUH)Gdp + 183)) +#define SET_GLOBAL_EDL_WORKSPACE_35(v) (GLOBAL_EDL_WORKSPACE_35 = (v)) +#define GLOBAL_EDL_WORKSPACE_36 (*(IUH *)((IUH)Gdp + 187)) +#define SET_GLOBAL_EDL_WORKSPACE_36(v) (GLOBAL_EDL_WORKSPACE_36 = (v)) +#define GLOBAL_EDL_WORKSPACE_37 (*(IUH *)((IUH)Gdp + 191)) +#define SET_GLOBAL_EDL_WORKSPACE_37(v) (GLOBAL_EDL_WORKSPACE_37 = (v)) +#define GLOBAL_EDL_WORKSPACE_38 (*(IUH *)((IUH)Gdp + 195)) +#define SET_GLOBAL_EDL_WORKSPACE_38(v) (GLOBAL_EDL_WORKSPACE_38 = (v)) +#define GLOBAL_EDL_WORKSPACE_39 (*(IUH *)((IUH)Gdp + 199)) +#define SET_GLOBAL_EDL_WORKSPACE_39(v) (GLOBAL_EDL_WORKSPACE_39 = (v)) +#define GLOBAL_EDL_WORKSPACE_40 (*(IUH *)((IUH)Gdp + 203)) +#define SET_GLOBAL_EDL_WORKSPACE_40(v) (GLOBAL_EDL_WORKSPACE_40 = (v)) +#define GLOBAL_EDL_WORKSPACE_41 (*(IUH *)((IUH)Gdp + 207)) +#define SET_GLOBAL_EDL_WORKSPACE_41(v) (GLOBAL_EDL_WORKSPACE_41 = (v)) +#define GLOBAL_EDL_WORKSPACE_42 (*(IUH *)((IUH)Gdp + 211)) +#define SET_GLOBAL_EDL_WORKSPACE_42(v) (GLOBAL_EDL_WORKSPACE_42 = (v)) +#define GLOBAL_EDL_WORKSPACE_43 (*(IUH *)((IUH)Gdp + 215)) +#define SET_GLOBAL_EDL_WORKSPACE_43(v) (GLOBAL_EDL_WORKSPACE_43 = (v)) +#define GLOBAL_EDL_WORKSPACE_44 (*(IUH *)((IUH)Gdp + 219)) +#define SET_GLOBAL_EDL_WORKSPACE_44(v) (GLOBAL_EDL_WORKSPACE_44 = (v)) +#define GLOBAL_EDL_WORKSPACE_45 (*(IUH *)((IUH)Gdp + 223)) +#define SET_GLOBAL_EDL_WORKSPACE_45(v) (GLOBAL_EDL_WORKSPACE_45 = (v)) +#define GLOBAL_EDL_WORKSPACE_46 (*(IUH *)((IUH)Gdp + 227)) +#define SET_GLOBAL_EDL_WORKSPACE_46(v) (GLOBAL_EDL_WORKSPACE_46 = (v)) +#define GLOBAL_EDL_WORKSPACE_47 (*(IUH *)((IUH)Gdp + 231)) +#define SET_GLOBAL_EDL_WORKSPACE_47(v) (GLOBAL_EDL_WORKSPACE_47 = (v)) +#define GLOBAL_EDL_WORKSPACE_48 (*(IUH *)((IUH)Gdp + 235)) +#define SET_GLOBAL_EDL_WORKSPACE_48(v) (GLOBAL_EDL_WORKSPACE_48 = (v)) +#define GLOBAL_EDL_WORKSPACE_49 (*(IUH *)((IUH)Gdp + 239)) +#define SET_GLOBAL_EDL_WORKSPACE_49(v) (GLOBAL_EDL_WORKSPACE_49 = (v)) +#define GLOBAL_EDL_WORKSPACE_50 (*(IUH *)((IUH)Gdp + 243)) +#define SET_GLOBAL_EDL_WORKSPACE_50(v) (GLOBAL_EDL_WORKSPACE_50 = (v)) +#define GLOBAL_EDL_WORKSPACE_51 (*(IUH *)((IUH)Gdp + 247)) +#define SET_GLOBAL_EDL_WORKSPACE_51(v) (GLOBAL_EDL_WORKSPACE_51 = (v)) +#define GLOBAL_EDL_WORKSPACE_52 (*(IUH *)((IUH)Gdp + 251)) +#define SET_GLOBAL_EDL_WORKSPACE_52(v) (GLOBAL_EDL_WORKSPACE_52 = (v)) +#define GLOBAL_EDL_WORKSPACE_53 (*(IUH *)((IUH)Gdp + 255)) +#define SET_GLOBAL_EDL_WORKSPACE_53(v) (GLOBAL_EDL_WORKSPACE_53 = (v)) +#define GLOBAL_EDL_WORKSPACE_54 (*(IUH *)((IUH)Gdp + 259)) +#define SET_GLOBAL_EDL_WORKSPACE_54(v) (GLOBAL_EDL_WORKSPACE_54 = (v)) +#define GLOBAL_EDL_WORKSPACE_55 (*(IUH *)((IUH)Gdp + 263)) +#define SET_GLOBAL_EDL_WORKSPACE_55(v) (GLOBAL_EDL_WORKSPACE_55 = (v)) +#define GLOBAL_WhereAmI (*(IU32* *)((IUH)Gdp + 7)) +#define SET_GLOBAL_WhereAmI(v) (GLOBAL_WhereAmI = (v)) +#define GLOBAL_CoRoRet (*(IU32* *)((IUH)Gdp + 11)) +#define SET_GLOBAL_CoRoRet(v) (GLOBAL_CoRoRet = (v)) +#define GLOBAL_WhichAssertion (*(ISH *)((IUH)Gdp + 35)) +#define SET_GLOBAL_WhichAssertion(v) (GLOBAL_WhichAssertion = (v)) +#define GLOBAL_SimulateContext (*(IU8* *)((IUH)Gdp + 19)) +#define SET_GLOBAL_SimulateContext(v) (GLOBAL_SimulateContext = (v)) +#define GLOBAL_ErrorNumber (*(IUH *)((IUH)Gdp + 39)) +#define SET_GLOBAL_ErrorNumber(v) (GLOBAL_ErrorNumber = (v)) +#define GLOBAL_EDL_WORKSPACE_56 (*(IUH *)((IUH)Gdp + 267)) +#define SET_GLOBAL_EDL_WORKSPACE_56(v) (GLOBAL_EDL_WORKSPACE_56 = (v)) +#define GLOBAL_EDL_WORKSPACE_57 (*(IUH *)((IUH)Gdp + 271)) +#define SET_GLOBAL_EDL_WORKSPACE_57(v) (GLOBAL_EDL_WORKSPACE_57 = (v)) +#define GLOBAL_EDL_WORKSPACE_58 (*(IUH *)((IUH)Gdp + 275)) +#define SET_GLOBAL_EDL_WORKSPACE_58(v) (GLOBAL_EDL_WORKSPACE_58 = (v)) +#define GLOBAL_EDL_WORKSPACE_59 (*(IUH *)((IUH)Gdp + 279)) +#define SET_GLOBAL_EDL_WORKSPACE_59(v) (GLOBAL_EDL_WORKSPACE_59 = (v)) +#define GLOBAL_EDL_WORKSPACE_60 (*(IUH *)((IUH)Gdp + 283)) +#define SET_GLOBAL_EDL_WORKSPACE_60(v) (GLOBAL_EDL_WORKSPACE_60 = (v)) +#define GLOBAL_TraceRingRec (*(struct TraceRingREC *)((IUH)Gdp + 287)) +#define SET_GLOBAL_TraceRingRec(v) (GLOBAL_TraceRingRec = (v)) +#define GLOBAL_SubrNumber (*(IUH *)((IUH)Gdp + 3)) +#define SET_GLOBAL_SubrNumber(v) (GLOBAL_SubrNumber = (v)) +#define GLOBAL_SubrRingPtr (*(IUH* *)((IUH)Gdp + 23)) +#define SET_GLOBAL_SubrRingPtr(v) (GLOBAL_SubrRingPtr = (v)) +#define GLOBAL_SubrRingLowIncl (*(IUH* *)((IUH)Gdp + 27)) +#define SET_GLOBAL_SubrRingLowIncl(v) (GLOBAL_SubrRingLowIncl = (v)) +#define GLOBAL_SubrRingHighIncl (*(IUH* *)((IUH)Gdp + 31)) +#define SET_GLOBAL_SubrRingHighIncl(v) (GLOBAL_SubrRingHighIncl = (v)) +#define GLOBAL_HookNumber (*(IUH *)((IUH)Gdp + -1)) +#define SET_GLOBAL_HookNumber(v) (GLOBAL_HookNumber = (v)) +#define GLOBAL_EfiNumber (*(IUH *)((IUH)Gdp + 15)) +#define SET_GLOBAL_EfiNumber(v) (GLOBAL_EfiNumber = (v)) +#define GLOBAL_R_EAX (*(IUH *)((IUH)Gdp + 307)) +#define SET_GLOBAL_R_EAX(v) (GLOBAL_R_EAX = (v)) +#define GLOBAL_R_EBX (*(IUH *)((IUH)Gdp + 311)) +#define SET_GLOBAL_R_EBX(v) (GLOBAL_R_EBX = (v)) +#define GLOBAL_R_ECX (*(IUH *)((IUH)Gdp + 315)) +#define SET_GLOBAL_R_ECX(v) (GLOBAL_R_ECX = (v)) +#define GLOBAL_R_EDX (*(IUH *)((IUH)Gdp + 319)) +#define SET_GLOBAL_R_EDX(v) (GLOBAL_R_EDX = (v)) +#define GLOBAL_R_EBP (*(IUH *)((IUH)Gdp + 323)) +#define SET_GLOBAL_R_EBP(v) (GLOBAL_R_EBP = (v)) +#define GLOBAL_R_ESI (*(IUH *)((IUH)Gdp + 327)) +#define SET_GLOBAL_R_ESI(v) (GLOBAL_R_ESI = (v)) +#define GLOBAL_R_EDI (*(IUH *)((IUH)Gdp + 331)) +#define SET_GLOBAL_R_EDI(v) (GLOBAL_R_EDI = (v)) +#define GLOBAL_EsBase (*(IU32 *)((IUH)Gdp + 335)) +#define SET_GLOBAL_EsBase(v) (GLOBAL_EsBase = (v)) +#define GLOBAL_EsSel (*(IU16 *)((IUH)Gdp + 339)) +#define SET_GLOBAL_EsSel(v) (GLOBAL_EsSel = (v)) +#define GLOBAL_EsDesc (*(struct GLDC_REC* *)((IUH)Gdp + 343)) +#define SET_GLOBAL_EsDesc(v) (GLOBAL_EsDesc = (v)) +#define GLOBAL_EsDescSanctuary (*(struct GLDC_REC* *)((IUH)Gdp + 347)) +#define SET_GLOBAL_EsDescSanctuary(v) (GLOBAL_EsDescSanctuary = (v)) +#define GLOBAL_CsBase (*(IU32 *)((IUH)Gdp + 351)) +#define SET_GLOBAL_CsBase(v) (GLOBAL_CsBase = (v)) +#define GLOBAL_CsSel (*(IU16 *)((IUH)Gdp + 355)) +#define SET_GLOBAL_CsSel(v) (GLOBAL_CsSel = (v)) +#define GLOBAL_CsDesc (*(struct GLDC_REC* *)((IUH)Gdp + 359)) +#define SET_GLOBAL_CsDesc(v) (GLOBAL_CsDesc = (v)) +#define GLOBAL_CsDescSanctuary (*(struct GLDC_REC* *)((IUH)Gdp + 363)) +#define SET_GLOBAL_CsDescSanctuary(v) (GLOBAL_CsDescSanctuary = (v)) +#define GLOBAL_SsBase (*(IU32 *)((IUH)Gdp + 367)) +#define SET_GLOBAL_SsBase(v) (GLOBAL_SsBase = (v)) +#define GLOBAL_SsSel (*(IU16 *)((IUH)Gdp + 371)) +#define SET_GLOBAL_SsSel(v) (GLOBAL_SsSel = (v)) +#define GLOBAL_SsDesc (*(struct GLDC_REC* *)((IUH)Gdp + 375)) +#define SET_GLOBAL_SsDesc(v) (GLOBAL_SsDesc = (v)) +#define GLOBAL_SsDescSanctuary (*(struct GLDC_REC* *)((IUH)Gdp + 379)) +#define SET_GLOBAL_SsDescSanctuary(v) (GLOBAL_SsDescSanctuary = (v)) +#define GLOBAL_DsBase (*(IU32 *)((IUH)Gdp + 383)) +#define SET_GLOBAL_DsBase(v) (GLOBAL_DsBase = (v)) +#define GLOBAL_DsSel (*(IU16 *)((IUH)Gdp + 387)) +#define SET_GLOBAL_DsSel(v) (GLOBAL_DsSel = (v)) +#define GLOBAL_DsDesc (*(struct GLDC_REC* *)((IUH)Gdp + 391)) +#define SET_GLOBAL_DsDesc(v) (GLOBAL_DsDesc = (v)) +#define GLOBAL_DsDescSanctuary (*(struct GLDC_REC* *)((IUH)Gdp + 395)) +#define SET_GLOBAL_DsDescSanctuary(v) (GLOBAL_DsDescSanctuary = (v)) +#define GLOBAL_FsBase (*(IU32 *)((IUH)Gdp + 399)) +#define SET_GLOBAL_FsBase(v) (GLOBAL_FsBase = (v)) +#define GLOBAL_FsSel (*(IU16 *)((IUH)Gdp + 403)) +#define SET_GLOBAL_FsSel(v) (GLOBAL_FsSel = (v)) +#define GLOBAL_FsDesc (*(struct GLDC_REC* *)((IUH)Gdp + 407)) +#define SET_GLOBAL_FsDesc(v) (GLOBAL_FsDesc = (v)) +#define GLOBAL_FsDescSanctuary (*(struct GLDC_REC* *)((IUH)Gdp + 411)) +#define SET_GLOBAL_FsDescSanctuary(v) (GLOBAL_FsDescSanctuary = (v)) +#define GLOBAL_GsBase (*(IU32 *)((IUH)Gdp + 415)) +#define SET_GLOBAL_GsBase(v) (GLOBAL_GsBase = (v)) +#define GLOBAL_GsSel (*(IU16 *)((IUH)Gdp + 419)) +#define SET_GLOBAL_GsSel(v) (GLOBAL_GsSel = (v)) +#define GLOBAL_GsDesc (*(struct GLDC_REC* *)((IUH)Gdp + 423)) +#define SET_GLOBAL_GsDesc(v) (GLOBAL_GsDesc = (v)) +#define GLOBAL_GsDescSanctuary (*(struct GLDC_REC* *)((IUH)Gdp + 427)) +#define SET_GLOBAL_GsDescSanctuary(v) (GLOBAL_GsDescSanctuary = (v)) +#define GLOBAL_LinearDesc (*(struct GLDC_REC* *)((IUH)Gdp + 431)) +#define SET_GLOBAL_LinearDesc(v) (GLOBAL_LinearDesc = (v)) +#define GLOBAL_SystemDesc (*(struct GLDC_REC* *)((IUH)Gdp + 435)) +#define SET_GLOBAL_SystemDesc(v) (GLOBAL_SystemDesc = (v)) +#define GLOBAL_CPL (*(IUH *)((IUH)Gdp + 439)) +#define SET_GLOBAL_CPL(v) (GLOBAL_CPL = (v)) +#define GLOBAL_GdtrBase (*(IU32 *)((IUH)Gdp + 443)) +#define SET_GLOBAL_GdtrBase(v) (GLOBAL_GdtrBase = (v)) +#define GLOBAL_GdtrLimit (*(IU16 *)((IUH)Gdp + 447)) +#define SET_GLOBAL_GdtrLimit(v) (GLOBAL_GdtrLimit = (v)) +#define GLOBAL_LdtSel (*(IU16 *)((IUH)Gdp + 451)) +#define SET_GLOBAL_LdtSel(v) (GLOBAL_LdtSel = (v)) +#define GLOBAL_LdtrBase (*(IU32 *)((IUH)Gdp + 455)) +#define SET_GLOBAL_LdtrBase(v) (GLOBAL_LdtrBase = (v)) +#define GLOBAL_LdtrLimit (*(IU32 *)((IUH)Gdp + 459)) +#define SET_GLOBAL_LdtrLimit(v) (GLOBAL_LdtrLimit = (v)) +#define GLOBAL_TrSel (*(IU16 *)((IUH)Gdp + 463)) +#define SET_GLOBAL_TrSel(v) (GLOBAL_TrSel = (v)) +#define GLOBAL_TrBase (*(IU32 *)((IUH)Gdp + 467)) +#define SET_GLOBAL_TrBase(v) (GLOBAL_TrBase = (v)) +#define GLOBAL_TrLimit (*(IU32 *)((IUH)Gdp + 471)) +#define SET_GLOBAL_TrLimit(v) (GLOBAL_TrLimit = (v)) +#define GLOBAL_TrDescSt (*(IUH *)((IUH)Gdp + 475)) +#define SET_GLOBAL_TrDescSt(v) (GLOBAL_TrDescSt = (v)) +#define GLOBAL_TrIoBase (*(IU32 *)((IUH)Gdp + 479)) +#define SET_GLOBAL_TrIoBase(v) (GLOBAL_TrIoBase = (v)) +#define GLOBAL_TrIoLimit (*(IS32 *)((IUH)Gdp + 483)) +#define SET_GLOBAL_TrIoLimit(v) (GLOBAL_TrIoLimit = (v)) +#define GLOBAL_IdtrBase (*(IU32 *)((IUH)Gdp + 487)) +#define SET_GLOBAL_IdtrBase(v) (GLOBAL_IdtrBase = (v)) +#define GLOBAL_IdtrLimit (*(IU16 *)((IUH)Gdp + 491)) +#define SET_GLOBAL_IdtrLimit(v) (GLOBAL_IdtrLimit = (v)) +#define GLOBAL_AbortPigRun (*(IUH *)((IUH)Gdp + 495)) +#define SET_GLOBAL_AbortPigRun(v) (GLOBAL_AbortPigRun = (v)) +#define GLOBAL_RegsAndFlagsUndefined (*(IUH *)((IUH)Gdp + 499)) +#define SET_GLOBAL_RegsAndFlagsUndefined(v) (GLOBAL_RegsAndFlagsUndefined = (v)) +#define GLOBAL_SigalrmOccurred (*(IUH *)((IUH)Gdp + 503)) +#define SET_GLOBAL_SigalrmOccurred(v) (GLOBAL_SigalrmOccurred = (v)) +#define GLOBAL_PigEnabled (*(IUH *)((IUH)Gdp + 507)) +#define SET_GLOBAL_PigEnabled(v) (GLOBAL_PigEnabled = (v)) +#define GLOBAL_EFLAGS (*(IUH *)((IUH)Gdp + 511)) +#define SET_GLOBAL_EFLAGS(v) (GLOBAL_EFLAGS = (v)) +#define GLOBAL_Ft (*(IUH *)((IUH)Gdp + 515)) +#define SET_GLOBAL_Ft(v) (GLOBAL_Ft = (v)) +#define GLOBAL_F1 (*(IUH *)((IUH)Gdp + 519)) +#define SET_GLOBAL_F1(v) (GLOBAL_F1 = (v)) +#define GLOBAL_F2 (*(IUH *)((IUH)Gdp + 523)) +#define SET_GLOBAL_F2(v) (GLOBAL_F2 = (v)) +#define GLOBAL_F3 (*(IUH *)((IUH)Gdp + 527)) +#define SET_GLOBAL_F3(v) (GLOBAL_F3 = (v)) +#define GLOBAL_R_CR0 (*(IUH *)((IUH)Gdp + 531)) +#define SET_GLOBAL_R_CR0(v) (GLOBAL_R_CR0 = (v)) +#define GLOBAL_R_CR1 (*(IUH *)((IUH)Gdp + 535)) +#define SET_GLOBAL_R_CR1(v) (GLOBAL_R_CR1 = (v)) +#define GLOBAL_R_CR2 (*(IUH *)((IUH)Gdp + 539)) +#define SET_GLOBAL_R_CR2(v) (GLOBAL_R_CR2 = (v)) +#define GLOBAL_R_CR3 (*(IUH *)((IUH)Gdp + 543)) +#define SET_GLOBAL_R_CR3(v) (GLOBAL_R_CR3 = (v)) +#define GLOBAL_R_CR4 (*(IUH *)((IUH)Gdp + 547)) +#define SET_GLOBAL_R_CR4(v) (GLOBAL_R_CR4 = (v)) +#define GLOBAL_R_CR5 (*(IUH *)((IUH)Gdp + 551)) +#define SET_GLOBAL_R_CR5(v) (GLOBAL_R_CR5 = (v)) +#define GLOBAL_R_CR6 (*(IUH *)((IUH)Gdp + 555)) +#define SET_GLOBAL_R_CR6(v) (GLOBAL_R_CR6 = (v)) +#define GLOBAL_R_CR7 (*(IUH *)((IUH)Gdp + 559)) +#define SET_GLOBAL_R_CR7(v) (GLOBAL_R_CR7 = (v)) +#define GLOBAL_R_TR0 (*(IUH *)((IUH)Gdp + 563)) +#define SET_GLOBAL_R_TR0(v) (GLOBAL_R_TR0 = (v)) +#define GLOBAL_R_TR1 (*(IUH *)((IUH)Gdp + 567)) +#define SET_GLOBAL_R_TR1(v) (GLOBAL_R_TR1 = (v)) +#define GLOBAL_R_TR2 (*(IUH *)((IUH)Gdp + 571)) +#define SET_GLOBAL_R_TR2(v) (GLOBAL_R_TR2 = (v)) +#define GLOBAL_R_TR3 (*(IUH *)((IUH)Gdp + 575)) +#define SET_GLOBAL_R_TR3(v) (GLOBAL_R_TR3 = (v)) +#define GLOBAL_R_TR4 (*(IUH *)((IUH)Gdp + 579)) +#define SET_GLOBAL_R_TR4(v) (GLOBAL_R_TR4 = (v)) +#define GLOBAL_R_TR5 (*(IUH *)((IUH)Gdp + 583)) +#define SET_GLOBAL_R_TR5(v) (GLOBAL_R_TR5 = (v)) +#define GLOBAL_R_TR6 (*(IUH *)((IUH)Gdp + 587)) +#define SET_GLOBAL_R_TR6(v) (GLOBAL_R_TR6 = (v)) +#define GLOBAL_R_TR7 (*(IUH *)((IUH)Gdp + 591)) +#define SET_GLOBAL_R_TR7(v) (GLOBAL_R_TR7 = (v)) +#define GLOBAL_R_DR0 (*(IUH *)((IUH)Gdp + 595)) +#define SET_GLOBAL_R_DR0(v) (GLOBAL_R_DR0 = (v)) +#define GLOBAL_R_DR1 (*(IUH *)((IUH)Gdp + 599)) +#define SET_GLOBAL_R_DR1(v) (GLOBAL_R_DR1 = (v)) +#define GLOBAL_R_DR2 (*(IUH *)((IUH)Gdp + 603)) +#define SET_GLOBAL_R_DR2(v) (GLOBAL_R_DR2 = (v)) +#define GLOBAL_R_DR3 (*(IUH *)((IUH)Gdp + 607)) +#define SET_GLOBAL_R_DR3(v) (GLOBAL_R_DR3 = (v)) +#define GLOBAL_R_DR4 (*(IUH *)((IUH)Gdp + 611)) +#define SET_GLOBAL_R_DR4(v) (GLOBAL_R_DR4 = (v)) +#define GLOBAL_R_DR5 (*(IUH *)((IUH)Gdp + 615)) +#define SET_GLOBAL_R_DR5(v) (GLOBAL_R_DR5 = (v)) +#define GLOBAL_R_DR6 (*(IUH *)((IUH)Gdp + 619)) +#define SET_GLOBAL_R_DR6(v) (GLOBAL_R_DR6 = (v)) +#define GLOBAL_R_DR7 (*(IUH *)((IUH)Gdp + 623)) +#define SET_GLOBAL_R_DR7(v) (GLOBAL_R_DR7 = (v)) +#define GLOBAL_InNanoCpu (((*(IBOOL *)((IUH)Gdp + 627)) & 1) != 0) +#define SET_GLOBAL_InNanoCpu(v) ((*(IBOOL *)((IUH)Gdp + 627)) = (v) ? 1: 0) +#define GLOBAL_UseNanoCpu (((*(IBOOL *)((IUH)Gdp + 631)) & 1) != 0) +#define SET_GLOBAL_UseNanoCpu(v) ((*(IBOOL *)((IUH)Gdp + 631)) = (v) ? 1: 0) +#define GLOBAL_UseLightCompiler (((*(IBOOL *)((IUH)Gdp + 635)) & 1) != 0) +#define SET_GLOBAL_UseLightCompiler(v) ((*(IBOOL *)((IUH)Gdp + 635)) = (v) ? 1: 0) +#define GLOBAL_NeedInterInstructionAction (((*(IBOOL *)((IUH)Gdp + 639)) & 1) != 0) +#define SET_GLOBAL_NeedInterInstructionAction(v) ((*(IBOOL *)((IUH)Gdp + 639)) = (v) ? 1: 0) +#define GLOBAL_UseCCodeCopier (((*(IBOOL *)((IUH)Gdp + 643)) & 1) != 0) +#define SET_GLOBAL_UseCCodeCopier(v) ((*(IBOOL *)((IUH)Gdp + 643)) = (v) ? 1: 0) +#define GLOBAL_seenWithFlags (((*(IBOOL *)((IUH)Gdp + 647)) & 1) != 0) +#define SET_GLOBAL_seenWithFlags(v) ((*(IBOOL *)((IUH)Gdp + 647)) = (v) ? 1: 0) +#define GLOBAL_SeenPrePatchJcond (((*(IBOOL *)((IUH)Gdp + 651)) & 1) != 0) +#define SET_GLOBAL_SeenPrePatchJcond(v) ((*(IBOOL *)((IUH)Gdp + 651)) = (v) ? 1: 0) +#define GLOBAL_needNextIntelEip (((*(IBOOL *)((IUH)Gdp + 655)) & 1) != 0) +#define SET_GLOBAL_needNextIntelEip(v) ((*(IBOOL *)((IUH)Gdp + 655)) = (v) ? 1: 0) +#define GLOBAL_CopierUniverse (*(IU32 *)((IUH)Gdp + 659)) +#define SET_GLOBAL_CopierUniverse(v) (GLOBAL_CopierUniverse = (v)) +#define GLOBAL_lastCopierUniverse (*(IU32 *)((IUH)Gdp + 663)) +#define SET_GLOBAL_lastCopierUniverse(v) (GLOBAL_lastCopierUniverse = (v)) +#define GLOBAL_LastSetCopierUniverse (*(IU32 *)((IUH)Gdp + 667)) +#define SET_GLOBAL_LastSetCopierUniverse(v) (GLOBAL_LastSetCopierUniverse = (v)) +#define GLOBAL_currPFragInfoRec (*(struct FragmentInfoREC* *)((IUH)Gdp + 671)) +#define SET_GLOBAL_currPFragInfoRec(v) (GLOBAL_currPFragInfoRec = (v)) +#define GLOBAL_maxPFragInfoRec (*(struct FragmentInfoREC* *)((IUH)Gdp + 675)) +#define SET_GLOBAL_maxPFragInfoRec(v) (GLOBAL_maxPFragInfoRec = (v)) +#define GLOBAL_copierCleanups (*(IU8* *)((IUH)Gdp + 679)) +#define SET_GLOBAL_copierCleanups(v) (GLOBAL_copierCleanups = (v)) +#define GLOBAL_lastHostCleanup (*(IU8* *)((IUH)Gdp + 683)) +#define SET_GLOBAL_lastHostCleanup(v) (GLOBAL_lastHostCleanup = (v)) +#define GLOBAL_lastHostAddress (*(IU32* *)((IUH)Gdp + 687)) +#define SET_GLOBAL_lastHostAddress(v) (GLOBAL_lastHostAddress = (v)) +#define GLOBAL_lastIntelAddress (*(IU32 *)((IUH)Gdp + 691)) +#define SET_GLOBAL_lastIntelAddress(v) (GLOBAL_lastIntelAddress = (v)) +#define GLOBAL_destHashTable (*(struct JUMP_REC** *)((IUH)Gdp + 695)) +#define SET_GLOBAL_destHashTable(v) (GLOBAL_destHashTable = (v)) +#define GLOBAL_jumpHashTable (*(struct JUMP_REC** *)((IUH)Gdp + 699)) +#define SET_GLOBAL_jumpHashTable(v) (GLOBAL_jumpHashTable = (v)) +#define GLOBAL_freeJumpRecPtr (*(struct JUMP_REC* *)((IUH)Gdp + 703)) +#define SET_GLOBAL_freeJumpRecPtr(v) (GLOBAL_freeJumpRecPtr = (v)) +#define GLOBAL_nextFreeJumpRec (*(struct JUMP_REC* *)((IUH)Gdp + 707)) +#define SET_GLOBAL_nextFreeJumpRec(v) (GLOBAL_nextFreeJumpRec = (v)) +#define GLOBAL_freeJumpRecCount (*(IS32 *)((IUH)Gdp + 711)) +#define SET_GLOBAL_freeJumpRecCount(v) (GLOBAL_freeJumpRecCount = (v)) +#define GLOBAL_poolJumpRecCount (*(IU32 *)((IUH)Gdp + 715)) +#define SET_GLOBAL_poolJumpRecCount(v) (GLOBAL_poolJumpRecCount = (v)) +#define GLOBAL_vctOffsets (*(IU16* *)((IUH)Gdp + 719)) +#define SET_GLOBAL_vctOffsets(v) (GLOBAL_vctOffsets = (v)) +#define GLOBAL_anonOffsets (*(IU16* *)((IUH)Gdp + 723)) +#define SET_GLOBAL_anonOffsets(v) (GLOBAL_anonOffsets = (v)) +#define GLOBAL_selectionDataBasePtr (*(struct selectionDataREC* *)((IUH)Gdp + 727)) +#define SET_GLOBAL_selectionDataBasePtr(v) (GLOBAL_selectionDataBasePtr = (v)) +#define GLOBAL_soloCodeBasePtr (*(struct codeAndActionDataREC* *)((IUH)Gdp + 731)) +#define SET_GLOBAL_soloCodeBasePtr(v) (GLOBAL_soloCodeBasePtr = (v)) +#define GLOBAL_multiCodeBasePtr (*(struct codeAndActionDataREC* *)((IUH)Gdp + 735)) +#define SET_GLOBAL_multiCodeBasePtr(v) (GLOBAL_multiCodeBasePtr = (v)) +#define GLOBAL_codeOffsScaleShift (*(IU32 *)((IUH)Gdp + 739)) +#define SET_GLOBAL_codeOffsScaleShift(v) (GLOBAL_codeOffsScaleShift = (v)) +#define GLOBAL_tuples (*(struct TUPLE_REC* *)((IUH)Gdp + 743)) +#define SET_GLOBAL_tuples(v) (GLOBAL_tuples = (v)) +#define GLOBAL_cursor (*(struct TUPLE_REC* *)((IUH)Gdp + 747)) +#define SET_GLOBAL_cursor(v) (GLOBAL_cursor = (v)) +#define GLOBAL_tuplePtr (*(struct TUPLE_REC* *)((IUH)Gdp + 751)) +#define SET_GLOBAL_tuplePtr(v) (GLOBAL_tuplePtr = (v)) +#define GLOBAL_patchRecPtr (*(IU8* *)((IUH)Gdp + 755)) +#define SET_GLOBAL_patchRecPtr(v) (GLOBAL_patchRecPtr = (v)) +#define GLOBAL_srcPtr (*(IU32* *)((IUH)Gdp + 759)) +#define SET_GLOBAL_srcPtr(v) (GLOBAL_srcPtr = (v)) +#define GLOBAL_dstPtr (*(IU32* *)((IUH)Gdp + 763)) +#define SET_GLOBAL_dstPtr(v) (GLOBAL_dstPtr = (v)) +#define GLOBAL_BackoverMarkerAddr (*(IU32* *)((IUH)Gdp + 767)) +#define SET_GLOBAL_BackoverMarkerAddr(v) (GLOBAL_BackoverMarkerAddr = (v)) +#define GLOBAL_patchTable (*(IU32** *)((IUH)Gdp + 771)) +#define SET_GLOBAL_patchTable(v) (GLOBAL_patchTable = (v)) +#define GLOBAL_patchNames (*(IU8** *)((IUH)Gdp + 775)) +#define SET_GLOBAL_patchNames(v) (GLOBAL_patchNames = (v)) +#define GLOBAL_CopierFt (*(IUH *)((IUH)Gdp + 779)) +#define SET_GLOBAL_CopierFt(v) (GLOBAL_CopierFt = (v)) +#define GLOBAL_FtIsLazy (((*(IBOOL *)((IUH)Gdp + 783)) & 1) != 0) +#define SET_GLOBAL_FtIsLazy(v) ((*(IBOOL *)((IUH)Gdp + 783)) = (v) ? 1: 0) +#define GLOBAL_UnivIsLazy (((*(IBOOL *)((IUH)Gdp + 787)) & 1) != 0) +#define SET_GLOBAL_UnivIsLazy(v) ((*(IBOOL *)((IUH)Gdp + 787)) = (v) ? 1: 0) +#define GLOBAL_FlagsAreSuppressed (((*(IBOOL *)((IUH)Gdp + 791)) & 1) != 0) +#define SET_GLOBAL_FlagsAreSuppressed(v) ((*(IBOOL *)((IUH)Gdp + 791)) = (v) ? 1: 0) +#define GLOBAL_lastLazyFt (*(IUH *)((IUH)Gdp + 795)) +#define SET_GLOBAL_lastLazyFt(v) (GLOBAL_lastLazyFt = (v)) +#define GLOBAL_univVarMask (*(IU32 *)((IUH)Gdp + 799)) +#define SET_GLOBAL_univVarMask(v) (GLOBAL_univVarMask = (v)) +#define GLOBAL_zSafeContinueCheckEFI (*(IU16 *)((IUH)Gdp + 803)) +#define SET_GLOBAL_zSafeContinueCheckEFI(v) (GLOBAL_zSafeContinueCheckEFI = (v)) +#define GLOBAL_zCoRoRetEFI (*(IU16 *)((IUH)Gdp + 807)) +#define SET_GLOBAL_zCoRoRetEFI(v) (GLOBAL_zCoRoRetEFI = (v)) +#define GLOBAL_zPatchMeEFI (*(IU16 *)((IUH)Gdp + 811)) +#define SET_GLOBAL_zPatchMeEFI(v) (GLOBAL_zPatchMeEFI = (v)) +#define GLOBAL_zPostPopEFI (*(IU16 *)((IUH)Gdp + 815)) +#define SET_GLOBAL_zPostPopEFI(v) (GLOBAL_zPostPopEFI = (v)) +#define GLOBAL_zAdjustHspEFI (*(IU16 *)((IUH)Gdp + 819)) +#define SET_GLOBAL_zAdjustHspEFI(v) (GLOBAL_zAdjustHspEFI = (v)) +#define GLOBAL_zLssSpEFI (*(IU16 *)((IUH)Gdp + 823)) +#define SET_GLOBAL_zLssSpEFI(v) (GLOBAL_zLssSpEFI = (v)) +#define GLOBAL_zLssEspEFI (*(IU16 *)((IUH)Gdp + 827)) +#define SET_GLOBAL_zLssEspEFI(v) (GLOBAL_zLssEspEFI = (v)) +#define GLOBAL_lastInstructionInFragment (((*(IBOOL *)((IUH)Gdp + 831)) & 1) != 0) +#define SET_GLOBAL_lastInstructionInFragment(v) ((*(IBOOL *)((IUH)Gdp + 831)) = (v) ? 1: 0) +#define GLOBAL_lateInInstruction (((*(IBOOL *)((IUH)Gdp + 835)) & 1) != 0) +#define SET_GLOBAL_lateInInstruction(v) ((*(IBOOL *)((IUH)Gdp + 835)) = (v) ? 1: 0) +#define GLOBAL_stackDestViaAdjust (((*(IBOOL *)((IUH)Gdp + 839)) & 1) != 0) +#define SET_GLOBAL_stackDestViaAdjust(v) ((*(IBOOL *)((IUH)Gdp + 839)) = (v) ? 1: 0) +#define GLOBAL_stackDestAdjustPositive (((*(IBOOL *)((IUH)Gdp + 843)) & 1) != 0) +#define SET_GLOBAL_stackDestAdjustPositive(v) ((*(IBOOL *)((IUH)Gdp + 843)) = (v) ? 1: 0) +#define GLOBAL_stackDestAdjustUnitary (((*(IBOOL *)((IUH)Gdp + 847)) & 1) != 0) +#define SET_GLOBAL_stackDestAdjustUnitary(v) ((*(IBOOL *)((IUH)Gdp + 847)) = (v) ? 1: 0) +#define GLOBAL_suppressHspCheck (((*(IBOOL *)((IUH)Gdp + 851)) & 1) != 0) +#define SET_GLOBAL_suppressHspCheck(v) ((*(IBOOL *)((IUH)Gdp + 851)) = (v) ? 1: 0) +#define GLOBAL_suppressHbpCheck (((*(IBOOL *)((IUH)Gdp + 855)) & 1) != 0) +#define SET_GLOBAL_suppressHbpCheck(v) ((*(IBOOL *)((IUH)Gdp + 855)) = (v) ? 1: 0) +#define GLOBAL_ReSelectVariant (((*(IBOOL *)((IUH)Gdp + 859)) & 1) != 0) +#define SET_GLOBAL_ReSelectVariant(v) ((*(IBOOL *)((IUH)Gdp + 859)) = (v) ? 1: 0) +#define GLOBAL_ReSelectTupleSkipCnt (*(ISH *)((IUH)Gdp + 863)) +#define SET_GLOBAL_ReSelectTupleSkipCnt(v) (GLOBAL_ReSelectTupleSkipCnt = (v)) +#define GLOBAL_suppressEaThread (((*(IBOOL *)((IUH)Gdp + 867)) & 1) != 0) +#define SET_GLOBAL_suppressEaThread(v) ((*(IBOOL *)((IUH)Gdp + 867)) = (v) ? 1: 0) +#define GLOBAL_postPopPending (((*(IBOOL *)((IUH)Gdp + 871)) & 1) != 0) +#define SET_GLOBAL_postPopPending(v) ((*(IBOOL *)((IUH)Gdp + 871)) = (v) ? 1: 0) +#define GLOBAL_postPopSize (*(IU32 *)((IUH)Gdp + 875)) +#define SET_GLOBAL_postPopSize(v) (GLOBAL_postPopSize = (v)) +#define GLOBAL_PatchIdLazyPatch (*(IU16 *)((IUH)Gdp + 879)) +#define SET_GLOBAL_PatchIdLazyPatch(v) (GLOBAL_PatchIdLazyPatch = (v)) +#define GLOBAL_PatchIdBailoutDispatch (*(IU16 *)((IUH)Gdp + 883)) +#define SET_GLOBAL_PatchIdBailoutDispatch(v) (GLOBAL_PatchIdBailoutDispatch = (v)) +#define GLOBAL_PatchIdCondRetDispatch (*(IU16 *)((IUH)Gdp + 887)) +#define SET_GLOBAL_PatchIdCondRetDispatch(v) (GLOBAL_PatchIdCondRetDispatch = (v)) +#define GLOBAL_compTimeFtBitNum (*(IU32 *)((IUH)Gdp + 891)) +#define SET_GLOBAL_compTimeFtBitNum(v) (GLOBAL_compTimeFtBitNum = (v)) +#define GLOBAL_realmodeBitNum (*(IU32 *)((IUH)Gdp + 895)) +#define SET_GLOBAL_realmodeBitNum(v) (GLOBAL_realmodeBitNum = (v)) +#define GLOBAL_pmSrSemanticsBitNum (*(IU32 *)((IUH)Gdp + 899)) +#define SET_GLOBAL_pmSrSemanticsBitNum(v) (GLOBAL_pmSrSemanticsBitNum = (v)) +#define GLOBAL_v8086BitNum (*(IU32 *)((IUH)Gdp + 903)) +#define SET_GLOBAL_v8086BitNum(v) (GLOBAL_v8086BitNum = (v)) +#define GLOBAL_accIsReadBitMask (*(IU32 *)((IUH)Gdp + 907)) +#define SET_GLOBAL_accIsReadBitMask(v) (GLOBAL_accIsReadBitMask = (v)) +#define GLOBAL_SOBbitMask (*(IU32 *)((IUH)Gdp + 911)) +#define SET_GLOBAL_SOBbitMask(v) (GLOBAL_SOBbitMask = (v)) +#define GLOBAL_BOBbitMask (*(IU32 *)((IUH)Gdp + 915)) +#define SET_GLOBAL_BOBbitMask(v) (GLOBAL_BOBbitMask = (v)) +#define GLOBAL_CCObitMask (*(IU32 *)((IUH)Gdp + 919)) +#define SET_GLOBAL_CCObitMask(v) (GLOBAL_CCObitMask = (v)) +#define GLOBAL_useHbpBitMask (*(IU32 *)((IUH)Gdp + 923)) +#define SET_GLOBAL_useHbpBitMask(v) (GLOBAL_useHbpBitMask = (v)) +#define GLOBAL_NeedSafeToContinueCheck (((*(IBOOL *)((IUH)Gdp + 927)) & 1) != 0) +#define SET_GLOBAL_NeedSafeToContinueCheck(v) ((*(IBOOL *)((IUH)Gdp + 927)) = (v) ? 1: 0) +#define GLOBAL_ContinueCheckFailure (((*(IBOOL *)((IUH)Gdp + 931)) & 1) != 0) +#define SET_GLOBAL_ContinueCheckFailure(v) ((*(IBOOL *)((IUH)Gdp + 931)) = (v) ? 1: 0) +#define GLOBAL_NeedCoRoutineReturn (((*(IBOOL *)((IUH)Gdp + 935)) & 1) != 0) +#define SET_GLOBAL_NeedCoRoutineReturn(v) ((*(IBOOL *)((IUH)Gdp + 935)) = (v) ? 1: 0) +#define GLOBAL_SuppressCoRoutineReturn (((*(IBOOL *)((IUH)Gdp + 939)) & 1) != 0) +#define SET_GLOBAL_SuppressCoRoutineReturn(v) ((*(IBOOL *)((IUH)Gdp + 939)) = (v) ? 1: 0) +#define GLOBAL_RwCopyingWriteBack (((*(IBOOL *)((IUH)Gdp + 943)) & 1) != 0) +#define SET_GLOBAL_RwCopyingWriteBack(v) ((*(IBOOL *)((IUH)Gdp + 943)) = (v) ? 1: 0) +#define GLOBAL_LazyCoRoRet (((*(IBOOL *)((IUH)Gdp + 947)) & 1) != 0) +#define SET_GLOBAL_LazyCoRoRet(v) ((*(IBOOL *)((IUH)Gdp + 947)) = (v) ? 1: 0) +#define GLOBAL_noFlagsBitMask (*(IU32 *)((IUH)Gdp + 951)) +#define SET_GLOBAL_noFlagsBitMask(v) (GLOBAL_noFlagsBitMask = (v)) +#define GLOBAL_currCompileMinLa (*(IU32 *)((IUH)Gdp + 955)) +#define SET_GLOBAL_currCompileMinLa(v) (GLOBAL_currCompileMinLa = (v)) +#define GLOBAL_currCompileMaxLa (*(IU32 *)((IUH)Gdp + 959)) +#define SET_GLOBAL_currCompileMaxLa(v) (GLOBAL_currCompileMaxLa = (v)) +#define GLOBAL_DoRWImmOpt (((*(IBOOL *)((IUH)Gdp + 963)) & 1) != 0) +#define SET_GLOBAL_DoRWImmOpt(v) ((*(IBOOL *)((IUH)Gdp + 963)) = (v) ? 1: 0) +#define GLOBAL_ImmRWOptMaskBit (*(IUH *)((IUH)Gdp + 967)) +#define SET_GLOBAL_ImmRWOptMaskBit(v) (GLOBAL_ImmRWOptMaskBit = (v)) +#define GLOBAL_NoImmRWOptMaskBit (*(IUH *)((IUH)Gdp + 971)) +#define SET_GLOBAL_NoImmRWOptMaskBit(v) (GLOBAL_NoImmRWOptMaskBit = (v)) +#define GLOBAL_ImmRWAddr32Mask (*(IUH *)((IUH)Gdp + 975)) +#define SET_GLOBAL_ImmRWAddr32Mask(v) (GLOBAL_ImmRWAddr32Mask = (v)) +#define GLOBAL_NaturalAlignmentCVMask (*(IUH *)((IUH)Gdp + 979)) +#define SET_GLOBAL_NaturalAlignmentCVMask(v) (GLOBAL_NaturalAlignmentCVMask = (v)) +#define GLOBAL_ImmRWPhysPtr (*(IU8* *)((IUH)Gdp + 983)) +#define SET_GLOBAL_ImmRWPhysPtr(v) (GLOBAL_ImmRWPhysPtr = (v)) +#define GLOBAL_InheritedDangerousCVs (*(IU32 *)((IUH)Gdp + 987)) +#define SET_GLOBAL_InheritedDangerousCVs(v) (GLOBAL_InheritedDangerousCVs = (v)) +#define GLOBAL_FragDangerousCVMask (*(IU32 *)((IUH)Gdp + 991)) +#define SET_GLOBAL_FragDangerousCVMask(v) (GLOBAL_FragDangerousCVMask = (v)) +#define GLOBAL_zFragProfEFI (*(IU16 *)((IUH)Gdp + 995)) +#define SET_GLOBAL_zFragProfEFI(v) (GLOBAL_zFragProfEFI = (v)) +#define GLOBAL_FragProfIndex (*(IUH *)((IUH)Gdp + 999)) +#define SET_GLOBAL_FragProfIndex(v) (GLOBAL_FragProfIndex = (v)) +#define GLOBAL_DynamicSrcRegActions (*(IU8* *)((IUH)Gdp + 1003)) +#define SET_GLOBAL_DynamicSrcRegActions(v) (GLOBAL_DynamicSrcRegActions = (v)) +#define GLOBAL_outlierAddr (*(IU32* *)((IUH)Gdp + 1007)) +#define SET_GLOBAL_outlierAddr(v) (GLOBAL_outlierAddr = (v)) +#define GLOBAL_jumpRecPtr (*(struct JUMP_REC* *)((IUH)Gdp + 1011)) +#define SET_GLOBAL_jumpRecPtr(v) (GLOBAL_jumpRecPtr = (v)) +#define GLOBAL_HbpIsSetup (((*(IBOOL *)((IUH)Gdp + 1015)) & 1) != 0) +#define SET_GLOBAL_HbpIsSetup(v) ((*(IBOOL *)((IUH)Gdp + 1015)) = (v) ? 1: 0) +#define GLOBAL_hbpMinDisp (*(IUH *)((IUH)Gdp + 1019)) +#define SET_GLOBAL_hbpMinDisp(v) (GLOBAL_hbpMinDisp = (v)) +#define GLOBAL_hbpMaxDisp (*(IUH *)((IUH)Gdp + 1023)) +#define SET_GLOBAL_hbpMaxDisp(v) (GLOBAL_hbpMaxDisp = (v)) +#define GLOBAL_DSTAT_DsBaseBailOuts (*(IUH *)((IUH)Gdp + 1027)) +#define SET_GLOBAL_DSTAT_DsBaseBailOuts(v) (GLOBAL_DSTAT_DsBaseBailOuts = (v)) +#define GLOBAL_DsIsChecked (((*(IBOOL *)((IUH)Gdp + 1031)) & 1) != 0) +#define SET_GLOBAL_DsIsChecked(v) ((*(IBOOL *)((IUH)Gdp + 1031)) = (v) ? 1: 0) +#define GLOBAL_EDL_WORKSPACE_61 (*(IUH *)((IUH)Gdp + 1035)) +#define SET_GLOBAL_EDL_WORKSPACE_61(v) (GLOBAL_EDL_WORKSPACE_61 = (v)) +#define GLOBAL_CleanedRec (*(struct CleanedREC *)((IUH)Gdp + 1039)) +#define SET_GLOBAL_CleanedRec(v) (GLOBAL_CleanedRec = (v)) +#define GLOBAL_CurrentUniverse (*(IU32 *)((IUH)Gdp + 1055)) +#define SET_GLOBAL_CurrentUniverse(v) (GLOBAL_CurrentUniverse = (v)) +#define GLOBAL_EntryPointCache (*(struct EntryPointCacheREC* *)((IUH)Gdp + 1059)) +#define SET_GLOBAL_EntryPointCache(v) (GLOBAL_EntryPointCache = (v)) +#define GLOBAL_CsSkewedEntryPointCache (*(struct EntryPointCacheREC* *)((IUH)Gdp + 1063)) +#define SET_GLOBAL_CsSkewedEntryPointCache(v) (GLOBAL_CsSkewedEntryPointCache = (v)) +#define GLOBAL_CsLinear (*(IU32 *)((IUH)Gdp + 1067)) +#define SET_GLOBAL_CsLinear(v) (GLOBAL_CsLinear = (v)) +#define GLOBAL_LruCountdown (*(IS32 *)((IUH)Gdp + 1071)) +#define SET_GLOBAL_LruCountdown(v) (GLOBAL_LruCountdown = (v)) +#define GLOBAL_LruCountdownResetValue (*(IS32 *)((IUH)Gdp + 1075)) +#define SET_GLOBAL_LruCountdownResetValue(v) (GLOBAL_LruCountdownResetValue = (v)) +#define GLOBAL_JumpCounter (*(ISH *)((IUH)Gdp + 1079)) +#define SET_GLOBAL_JumpCounter(v) (GLOBAL_JumpCounter = (v)) +#define GLOBAL_JumpRestart (*(ISH *)((IUH)Gdp + 1083)) +#define SET_GLOBAL_JumpRestart(v) (GLOBAL_JumpRestart = (v)) +#define GLOBAL_JumpCalibrate (*(ISH *)((IUH)Gdp + 1087)) +#define SET_GLOBAL_JumpCalibrate(v) (GLOBAL_JumpCalibrate = (v)) +#define GLOBAL_InitialJumpCounter (*(ISH *)((IUH)Gdp + 1091)) +#define SET_GLOBAL_InitialJumpCounter(v) (GLOBAL_InitialJumpCounter = (v)) +#define GLOBAL_minimumInitialVal (*(IUH *)((IUH)Gdp + 1095)) +#define SET_GLOBAL_minimumInitialVal(v) (GLOBAL_minimumInitialVal = (v)) +#define GLOBAL_cyclicJcRestartVal (*(IUH *)((IUH)Gdp + 1099)) +#define SET_GLOBAL_cyclicJcRestartVal(v) (GLOBAL_cyclicJcRestartVal = (v)) +#define GLOBAL_IretHookStack (*(struct IretHookStackREC* *)((IUH)Gdp + 1103)) +#define SET_GLOBAL_IretHookStack(v) (GLOBAL_IretHookStack = (v)) +#define GLOBAL_IretHookStackIndex (*(ISH *)((IUH)Gdp + 1107)) +#define SET_GLOBAL_IretHookStackIndex(v) (GLOBAL_IretHookStackIndex = (v)) +#define GLOBAL_InstructionCount (*(IUH *)((IUH)Gdp + 1111)) +#define SET_GLOBAL_InstructionCount(v) (GLOBAL_InstructionCount = (v)) +#define GLOBAL_Constraint2CvMap (*(IU32* *)((IUH)Gdp + 1115)) +#define SET_GLOBAL_Constraint2CvMap(v) (GLOBAL_Constraint2CvMap = (v)) +#define GLOBAL_InsertBPIs (((*(IBOOL *)((IUH)Gdp + 1119)) & 1) != 0) +#define SET_GLOBAL_InsertBPIs(v) ((*(IBOOL *)((IUH)Gdp + 1119)) = (v) ? 1: 0) +#define GLOBAL_CurrentCookie (*(IU32 *)((IUH)Gdp + 1123)) +#define SET_GLOBAL_CurrentCookie(v) (GLOBAL_CurrentCookie = (v)) +#define GLOBAL_ReadWriteCache (*(struct ReadWriteCacheRecord* *)((IUH)Gdp + 1127)) +#define SET_GLOBAL_ReadWriteCache(v) (GLOBAL_ReadWriteCache = (v)) +#define GLOBAL_ReadWriteBackup (*(struct ReadWriteBackupRecord* *)((IUH)Gdp + 1131)) +#define SET_GLOBAL_ReadWriteBackup(v) (GLOBAL_ReadWriteBackup = (v)) +#define GLOBAL_EsCookie (*(IU32 *)((IUH)Gdp + 1135)) +#define SET_GLOBAL_EsCookie(v) (GLOBAL_EsCookie = (v)) +#define GLOBAL_CsCookie (*(IU32 *)((IUH)Gdp + 1139)) +#define SET_GLOBAL_CsCookie(v) (GLOBAL_CsCookie = (v)) +#define GLOBAL_SsCookie (*(IU32 *)((IUH)Gdp + 1143)) +#define SET_GLOBAL_SsCookie(v) (GLOBAL_SsCookie = (v)) +#define GLOBAL_DsCookie (*(IU32 *)((IUH)Gdp + 1147)) +#define SET_GLOBAL_DsCookie(v) (GLOBAL_DsCookie = (v)) +#define GLOBAL_LinearCookie (*(IU32 *)((IUH)Gdp + 1151)) +#define SET_GLOBAL_LinearCookie(v) (GLOBAL_LinearCookie = (v)) +#define GLOBAL_SystemCookie (*(IU32 *)((IUH)Gdp + 1155)) +#define SET_GLOBAL_SystemCookie(v) (GLOBAL_SystemCookie = (v)) +#define GLOBAL_FsCookie (*(IU32 *)((IUH)Gdp + 1159)) +#define SET_GLOBAL_FsCookie(v) (GLOBAL_FsCookie = (v)) +#define GLOBAL_GsCookie (*(IU32 *)((IUH)Gdp + 1163)) +#define SET_GLOBAL_GsCookie(v) (GLOBAL_GsCookie = (v)) +#define GLOBAL_NextCookie (*(IU32 *)((IUH)Gdp + 1167)) +#define SET_GLOBAL_NextCookie(v) (GLOBAL_NextCookie = (v)) +#define GLOBAL_RealModeCookies (*(IU32* *)((IUH)Gdp + 1171)) +#define SET_GLOBAL_RealModeCookies(v) (GLOBAL_RealModeCookies = (v)) +#define GLOBAL_RealModeCurrentCookies (*(IU32* *)((IUH)Gdp + 1175)) +#define SET_GLOBAL_RealModeCurrentCookies(v) (GLOBAL_RealModeCurrentCookies = (v)) +#define GLOBAL_LinearCookies (*(IU32* *)((IUH)Gdp + 1179)) +#define SET_GLOBAL_LinearCookies(v) (GLOBAL_LinearCookies = (v)) +#define GLOBAL_SystemCookies (*(IU32* *)((IUH)Gdp + 1183)) +#define SET_GLOBAL_SystemCookies(v) (GLOBAL_SystemCookies = (v)) +#define GLOBAL_CookiesToReset (*(IU32** *)((IUH)Gdp + 1187)) +#define SET_GLOBAL_CookiesToReset(v) (GLOBAL_CookiesToReset = (v)) +#define GLOBAL_NrOfCookiesToReset (*(IUH *)((IUH)Gdp + 1191)) +#define SET_GLOBAL_NrOfCookiesToReset(v) (GLOBAL_NrOfCookiesToReset = (v)) +#define GLOBAL_ReadWriteScratchBuffer (*(IU8* *)((IUH)Gdp + 1195)) +#define SET_GLOBAL_ReadWriteScratchBuffer(v) (GLOBAL_ReadWriteScratchBuffer = (v)) +#define GLOBAL_ScratchSequenceNumber (*(IUH *)((IUH)Gdp + 1199)) +#define SET_GLOBAL_ScratchSequenceNumber(v) (GLOBAL_ScratchSequenceNumber = (v)) +#define GLOBAL_RdWrPrimaryHits (*(IUH *)((IUH)Gdp + 1203)) +#define SET_GLOBAL_RdWrPrimaryHits(v) (GLOBAL_RdWrPrimaryHits = (v)) +#define GLOBAL_RdWrVideoAccesses (*(IUH *)((IUH)Gdp + 1207)) +#define SET_GLOBAL_RdWrVideoAccesses(v) (GLOBAL_RdWrVideoAccesses = (v)) +#define GLOBAL_RdWrFastProtectedWrites (*(IUH *)((IUH)Gdp + 1211)) +#define SET_GLOBAL_RdWrFastProtectedWrites(v) (GLOBAL_RdWrFastProtectedWrites = (v)) +#define GLOBAL_RdWrSlowProtectedWrites (*(IUH *)((IUH)Gdp + 1215)) +#define SET_GLOBAL_RdWrSlowProtectedWrites(v) (GLOBAL_RdWrSlowProtectedWrites = (v)) +#define GLOBAL_RdWrLoads (*(IUH *)((IUH)Gdp + 1219)) +#define SET_GLOBAL_RdWrLoads(v) (GLOBAL_RdWrLoads = (v)) +#define GLOBAL_RdWrBackupLoads (*(IUH *)((IUH)Gdp + 1223)) +#define SET_GLOBAL_RdWrBackupLoads(v) (GLOBAL_RdWrBackupLoads = (v)) +#define GLOBAL_RdWrRemovals (*(IUH *)((IUH)Gdp + 1227)) +#define SET_GLOBAL_RdWrRemovals(v) (GLOBAL_RdWrRemovals = (v)) +#define GLOBAL_RdWrCookieAllocations (*(IUH *)((IUH)Gdp + 1231)) +#define SET_GLOBAL_RdWrCookieAllocations(v) (GLOBAL_RdWrCookieAllocations = (v)) +#define GLOBAL_RdWrReconstructs (*(IUH *)((IUH)Gdp + 1235)) +#define SET_GLOBAL_RdWrReconstructs(v) (GLOBAL_RdWrReconstructs = (v)) +#define GLOBAL_RdWrCacheResets (*(IUH *)((IUH)Gdp + 1239)) +#define SET_GLOBAL_RdWrCacheResets(v) (GLOBAL_RdWrCacheResets = (v)) +#define GLOBAL_RdWrCookieResets (*(IUH *)((IUH)Gdp + 1243)) +#define SET_GLOBAL_RdWrCookieResets(v) (GLOBAL_RdWrCookieResets = (v)) +#define GLOBAL_RdWrSegCookieInits (*(IUH *)((IUH)Gdp + 1247)) +#define SET_GLOBAL_RdWrSegCookieInits(v) (GLOBAL_RdWrSegCookieInits = (v)) +#define GLOBAL_RdWrStats1 (*(IUH *)((IUH)Gdp + 1251)) +#define SET_GLOBAL_RdWrStats1(v) (GLOBAL_RdWrStats1 = (v)) +#define GLOBAL_RdWrStats2 (*(IUH *)((IUH)Gdp + 1255)) +#define SET_GLOBAL_RdWrStats2(v) (GLOBAL_RdWrStats2 = (v)) +#define GLOBAL_RdWrStats3 (*(IUH *)((IUH)Gdp + 1259)) +#define SET_GLOBAL_RdWrStats3(v) (GLOBAL_RdWrStats3 = (v)) +#define GLOBAL_RdWrStats4 (*(IUH *)((IUH)Gdp + 1263)) +#define SET_GLOBAL_RdWrStats4(v) (GLOBAL_RdWrStats4 = (v)) +#define GLOBAL_RdWrStats5 (*(IUH *)((IUH)Gdp + 1267)) +#define SET_GLOBAL_RdWrStats5(v) (GLOBAL_RdWrStats5 = (v)) +#define GLOBAL_RdWrStats6 (*(IUH *)((IUH)Gdp + 1271)) +#define SET_GLOBAL_RdWrStats6(v) (GLOBAL_RdWrStats6 = (v)) +#define GLOBAL_RdWrStats7 (*(IUH *)((IUH)Gdp + 1275)) +#define SET_GLOBAL_RdWrStats7(v) (GLOBAL_RdWrStats7 = (v)) +#define GLOBAL_RdWrStats8 (*(IUH *)((IUH)Gdp + 1279)) +#define SET_GLOBAL_RdWrStats8(v) (GLOBAL_RdWrStats8 = (v)) +#define GLOBAL_RdWrStats9 (*(IUH *)((IUH)Gdp + 1283)) +#define SET_GLOBAL_RdWrStats9(v) (GLOBAL_RdWrStats9 = (v)) +#define GLOBAL_RdWrStats10 (*(IUH *)((IUH)Gdp + 1287)) +#define SET_GLOBAL_RdWrStats10(v) (GLOBAL_RdWrStats10 = (v)) +#define GLOBAL_RdWrStats11 (*(IUH *)((IUH)Gdp + 1291)) +#define SET_GLOBAL_RdWrStats11(v) (GLOBAL_RdWrStats11 = (v)) +#define GLOBAL_RdWrStats12 (*(IUH *)((IUH)Gdp + 1295)) +#define SET_GLOBAL_RdWrStats12(v) (GLOBAL_RdWrStats12 = (v)) +#define GLOBAL_VddAreaStart (*(IU8* *)((IUH)Gdp + 1299)) +#define SET_GLOBAL_VddAreaStart(v) (GLOBAL_VddAreaStart = (v)) +#define GLOBAL_VddAreaEnd (*(IU8* *)((IUH)Gdp + 1303)) +#define SET_GLOBAL_VddAreaEnd(v) (GLOBAL_VddAreaEnd = (v)) +#define GLOBAL_SafeToUseSas (((*(IBOOL *)((IUH)Gdp + 1307)) & 1) != 0) +#define SET_GLOBAL_SafeToUseSas(v) ((*(IBOOL *)((IUH)Gdp + 1307)) = (v) ? 1: 0) +#define GLOBAL_VirtualiseDataSel (*(IU16 *)((IUH)Gdp + 1311)) +#define SET_GLOBAL_VirtualiseDataSel(v) (GLOBAL_VirtualiseDataSel = (v)) +#define GLOBAL_VirtualiseCodeSel (*(IU16 *)((IUH)Gdp + 1315)) +#define SET_GLOBAL_VirtualiseCodeSel(v) (GLOBAL_VirtualiseCodeSel = (v)) +#define GLOBAL_VirtualiseSelsSet (((*(IBOOL *)((IUH)Gdp + 1319)) & 1) != 0) +#define SET_GLOBAL_VirtualiseSelsSet(v) ((*(IBOOL *)((IUH)Gdp + 1319)) = (v) ? 1: 0) +#define GLOBAL_EAXsaved (*(IUH *)((IUH)Gdp + 1323)) +#define SET_GLOBAL_EAXsaved(v) (GLOBAL_EAXsaved = (v)) +#define GLOBAL_EBXsaved (*(IUH *)((IUH)Gdp + 1327)) +#define SET_GLOBAL_EBXsaved(v) (GLOBAL_EBXsaved = (v)) +#define GLOBAL_ECXsaved (*(IUH *)((IUH)Gdp + 1331)) +#define SET_GLOBAL_ECXsaved(v) (GLOBAL_ECXsaved = (v)) +#define GLOBAL_EDXsaved (*(IUH *)((IUH)Gdp + 1335)) +#define SET_GLOBAL_EDXsaved(v) (GLOBAL_EDXsaved = (v)) +#define GLOBAL_ESIsaved (*(IUH *)((IUH)Gdp + 1339)) +#define SET_GLOBAL_ESIsaved(v) (GLOBAL_ESIsaved = (v)) +#define GLOBAL_EDIsaved (*(IUH *)((IUH)Gdp + 1343)) +#define SET_GLOBAL_EDIsaved(v) (GLOBAL_EDIsaved = (v)) +#define GLOBAL_EBPsaved (*(IUH *)((IUH)Gdp + 1347)) +#define SET_GLOBAL_EBPsaved(v) (GLOBAL_EBPsaved = (v)) +#define GLOBAL_SafeToContinueInFragment (((*(IBOOL *)((IUH)Gdp + 1351)) & 1) != 0) +#define SET_GLOBAL_SafeToContinueInFragment(v) ((*(IBOOL *)((IUH)Gdp + 1351)) = (v) ? 1: 0) +#define GLOBAL_InsideTheCpu (((*(IBOOL *)((IUH)Gdp + 1355)) & 1) != 0) +#define SET_GLOBAL_InsideTheCpu(v) ((*(IBOOL *)((IUH)Gdp + 1355)) = (v) ? 1: 0) +#define GLOBAL_SimulateNestingLevel (*(IUH *)((IUH)Gdp + 1359)) +#define SET_GLOBAL_SimulateNestingLevel(v) (GLOBAL_SimulateNestingLevel = (v)) +#define GLOBAL_CpuIsInitialised (((*(IBOOL *)((IUH)Gdp + 1363)) & 1) != 0) +#define SET_GLOBAL_CpuIsInitialised(v) ((*(IBOOL *)((IUH)Gdp + 1363)) = (v) ? 1: 0) +#define GLOBAL_AR_FixupWanted (((*(IBOOL *)((IUH)Gdp + 1367)) & 1) != 0) +#define SET_GLOBAL_AR_FixupWanted(v) ((*(IBOOL *)((IUH)Gdp + 1367)) = (v) ? 1: 0) +#define GLOBAL_BopCausedTimesliceNap (((*(IBOOL *)((IUH)Gdp + 1371)) & 1) != 0) +#define SET_GLOBAL_BopCausedTimesliceNap(v) ((*(IBOOL *)((IUH)Gdp + 1371)) = (v) ? 1: 0) +#define GLOBAL_D6isBop (((*(IBOOL *)((IUH)Gdp + 1375)) & 1) != 0) +#define SET_GLOBAL_D6isBop(v) ((*(IBOOL *)((IUH)Gdp + 1375)) = (v) ? 1: 0) +#define GLOBAL_BopTable (*(IU8** *)((IUH)Gdp + 1379)) +#define SET_GLOBAL_BopTable(v) (GLOBAL_BopTable = (v)) +#define GLOBAL_BopNumberAndArgument (*(IU32 *)((IUH)Gdp + 1383)) +#define SET_GLOBAL_BopNumberAndArgument(v) (GLOBAL_BopNumberAndArgument = (v)) +#define GLOBAL_MsWindowsParameters (*(IU16* *)((IUH)Gdp + 1387)) +#define SET_GLOBAL_MsWindowsParameters(v) (GLOBAL_MsWindowsParameters = (v)) +#define GLOBAL_UsingMsWindowsGlueBop (((*(IBOOL *)((IUH)Gdp + 1391)) & 1) != 0) +#define SET_GLOBAL_UsingMsWindowsGlueBop(v) ((*(IBOOL *)((IUH)Gdp + 1391)) = (v) ? 1: 0) +#define GLOBAL_LxS_hackyfix (*(IUH *)((IUH)Gdp + 1395)) +#define SET_GLOBAL_LxS_hackyfix(v) (GLOBAL_LxS_hackyfix = (v)) +#define GLOBAL_SavedFt (*(IUH *)((IUH)Gdp + 1399)) +#define SET_GLOBAL_SavedFt(v) (GLOBAL_SavedFt = (v)) +#define GLOBAL_SavedCF (*(IUH *)((IUH)Gdp + 1403)) +#define SET_GLOBAL_SavedCF(v) (GLOBAL_SavedCF = (v)) +#define GLOBAL_SavedZF (*(IUH *)((IUH)Gdp + 1407)) +#define SET_GLOBAL_SavedZF(v) (GLOBAL_SavedZF = (v)) +#define GLOBAL_SavedOF (*(IUH *)((IUH)Gdp + 1411)) +#define SET_GLOBAL_SavedOF(v) (GLOBAL_SavedOF = (v)) +#define GLOBAL_UsedD6 (*(IUH *)((IUH)Gdp + 1415)) +#define SET_GLOBAL_UsedD6(v) (GLOBAL_UsedD6 = (v)) +#define GLOBAL_buildOp1 (*(IUH *)((IUH)Gdp + 1419)) +#define SET_GLOBAL_buildOp1(v) (GLOBAL_buildOp1 = (v)) +#define GLOBAL_buildOp2 (*(IUH *)((IUH)Gdp + 1423)) +#define SET_GLOBAL_buildOp2(v) (GLOBAL_buildOp2 = (v)) +#define GLOBAL_buildOp3 (*(IU32 *)((IUH)Gdp + 1427)) +#define SET_GLOBAL_buildOp3(v) (GLOBAL_buildOp3 = (v)) +#define GLOBAL_buildOp4 (*(IU32 *)((IUH)Gdp + 1431)) +#define SET_GLOBAL_buildOp4(v) (GLOBAL_buildOp4 = (v)) +#define GLOBAL_buildOp5 (*(IUH *)((IUH)Gdp + 1435)) +#define SET_GLOBAL_buildOp5(v) (GLOBAL_buildOp5 = (v)) +#define GLOBAL_buildOp6 (((*(IBOOL *)((IUH)Gdp + 1439)) & 1) != 0) +#define SET_GLOBAL_buildOp6(v) ((*(IBOOL *)((IUH)Gdp + 1439)) = (v) ? 1: 0) +#define GLOBAL_EDL_WORKSPACE_62 (*(IUH *)((IUH)Gdp + 1443)) +#define SET_GLOBAL_EDL_WORKSPACE_62(v) (GLOBAL_EDL_WORKSPACE_62 = (v)) +#define GLOBAL_EDL_WORKSPACE_63 (*(IUH *)((IUH)Gdp + 1447)) +#define SET_GLOBAL_EDL_WORKSPACE_63(v) (GLOBAL_EDL_WORKSPACE_63 = (v)) +#define GLOBAL_EDL_WORKSPACE_64 (*(IUH *)((IUH)Gdp + 1451)) +#define SET_GLOBAL_EDL_WORKSPACE_64(v) (GLOBAL_EDL_WORKSPACE_64 = (v)) +#define GLOBAL_EDL_WORKSPACE_65 (*(IUH *)((IUH)Gdp + 1455)) +#define SET_GLOBAL_EDL_WORKSPACE_65(v) (GLOBAL_EDL_WORKSPACE_65 = (v)) +#define GLOBAL_EDL_WORKSPACE_66 (*(IUH *)((IUH)Gdp + 1459)) +#define SET_GLOBAL_EDL_WORKSPACE_66(v) (GLOBAL_EDL_WORKSPACE_66 = (v)) +#define GLOBAL_EDL_WORKSPACE_67 (*(IUH *)((IUH)Gdp + 1463)) +#define SET_GLOBAL_EDL_WORKSPACE_67(v) (GLOBAL_EDL_WORKSPACE_67 = (v)) +#define GLOBAL_EDL_WORKSPACE_68 (*(IUH *)((IUH)Gdp + 1467)) +#define SET_GLOBAL_EDL_WORKSPACE_68(v) (GLOBAL_EDL_WORKSPACE_68 = (v)) +#define GLOBAL_EDL_WORKSPACE_69 (*(IUH *)((IUH)Gdp + 1471)) +#define SET_GLOBAL_EDL_WORKSPACE_69(v) (GLOBAL_EDL_WORKSPACE_69 = (v)) +#define GLOBAL_EDL_WORKSPACE_70 (*(IUH *)((IUH)Gdp + 1475)) +#define SET_GLOBAL_EDL_WORKSPACE_70(v) (GLOBAL_EDL_WORKSPACE_70 = (v)) +#define GLOBAL_EDL_WORKSPACE_71 (*(IUH *)((IUH)Gdp + 1479)) +#define SET_GLOBAL_EDL_WORKSPACE_71(v) (GLOBAL_EDL_WORKSPACE_71 = (v)) +#define GLOBAL_EDL_WORKSPACE_72 (*(IUH *)((IUH)Gdp + 1483)) +#define SET_GLOBAL_EDL_WORKSPACE_72(v) (GLOBAL_EDL_WORKSPACE_72 = (v)) +#define GLOBAL_EDL_WORKSPACE_73 (*(IUH *)((IUH)Gdp + 1487)) +#define SET_GLOBAL_EDL_WORKSPACE_73(v) (GLOBAL_EDL_WORKSPACE_73 = (v)) +#define GLOBAL_EDL_WORKSPACE_74 (*(IUH *)((IUH)Gdp + 1491)) +#define SET_GLOBAL_EDL_WORKSPACE_74(v) (GLOBAL_EDL_WORKSPACE_74 = (v)) +#define GLOBAL_EDL_WORKSPACE_75 (*(IUH *)((IUH)Gdp + 1495)) +#define SET_GLOBAL_EDL_WORKSPACE_75(v) (GLOBAL_EDL_WORKSPACE_75 = (v)) +#define GLOBAL_EDL_WORKSPACE_76 (*(IUH *)((IUH)Gdp + 1499)) +#define SET_GLOBAL_EDL_WORKSPACE_76(v) (GLOBAL_EDL_WORKSPACE_76 = (v)) +#define GLOBAL_EDL_WORKSPACE_77 (*(IUH *)((IUH)Gdp + 1503)) +#define SET_GLOBAL_EDL_WORKSPACE_77(v) (GLOBAL_EDL_WORKSPACE_77 = (v)) +#define GLOBAL_EDL_WORKSPACE_78 (*(IUH *)((IUH)Gdp + 1507)) +#define SET_GLOBAL_EDL_WORKSPACE_78(v) (GLOBAL_EDL_WORKSPACE_78 = (v)) +#define GLOBAL_EDL_WORKSPACE_79 (*(IUH *)((IUH)Gdp + 1511)) +#define SET_GLOBAL_EDL_WORKSPACE_79(v) (GLOBAL_EDL_WORKSPACE_79 = (v)) +#define GLOBAL_EDL_WORKSPACE_80 (*(IUH *)((IUH)Gdp + 1515)) +#define SET_GLOBAL_EDL_WORKSPACE_80(v) (GLOBAL_EDL_WORKSPACE_80 = (v)) +#define GLOBAL_EDL_WORKSPACE_81 (*(IUH *)((IUH)Gdp + 1519)) +#define SET_GLOBAL_EDL_WORKSPACE_81(v) (GLOBAL_EDL_WORKSPACE_81 = (v)) +#define GLOBAL_EDL_WORKSPACE_82 (*(IUH *)((IUH)Gdp + 1523)) +#define SET_GLOBAL_EDL_WORKSPACE_82(v) (GLOBAL_EDL_WORKSPACE_82 = (v)) +#define GLOBAL_EDL_WORKSPACE_83 (*(IUH *)((IUH)Gdp + 1527)) +#define SET_GLOBAL_EDL_WORKSPACE_83(v) (GLOBAL_EDL_WORKSPACE_83 = (v)) +#define GLOBAL_EDL_WORKSPACE_84 (*(IUH *)((IUH)Gdp + 1531)) +#define SET_GLOBAL_EDL_WORKSPACE_84(v) (GLOBAL_EDL_WORKSPACE_84 = (v)) +#define GLOBAL_VGAGlobals (*(struct VGAGLOBALSETTINGS *)((IUH)Gdp + 1535)) +#define SET_GLOBAL_VGAGlobals(v) (GLOBAL_VGAGlobals = (v)) +#define GLOBAL_VidMarkFuncTable (*(IU32** *)((IUH)Gdp + 1691)) +#define SET_GLOBAL_VidMarkFuncTable(v) (GLOBAL_VidMarkFuncTable = (v)) +#define GLOBAL_VidReadFuncTable (*(IU32** *)((IUH)Gdp + 1695)) +#define SET_GLOBAL_VidReadFuncTable(v) (GLOBAL_VidReadFuncTable = (v)) +#define GLOBAL_VidWriteFuncTable (*(IU32** *)((IUH)Gdp + 1699)) +#define SET_GLOBAL_VidWriteFuncTable(v) (GLOBAL_VidWriteFuncTable = (v)) +#define GLOBAL_EDL_WORKSPACE_85 (*(IUH *)((IUH)Gdp + 1703)) +#define SET_GLOBAL_EDL_WORKSPACE_85(v) (GLOBAL_EDL_WORKSPACE_85 = (v)) +#define GLOBAL_EDL_WORKSPACE_86 (*(IUH *)((IUH)Gdp + 1707)) +#define SET_GLOBAL_EDL_WORKSPACE_86(v) (GLOBAL_EDL_WORKSPACE_86 = (v)) +#define GLOBAL_EDL_WORKSPACE_87 (*(IUH *)((IUH)Gdp + 1711)) +#define SET_GLOBAL_EDL_WORKSPACE_87(v) (GLOBAL_EDL_WORKSPACE_87 = (v)) +#define GLOBAL_EDL_WORKSPACE_88 (*(IUH *)((IUH)Gdp + 1715)) +#define SET_GLOBAL_EDL_WORKSPACE_88(v) (GLOBAL_EDL_WORKSPACE_88 = (v)) +#define GLOBAL_EDL_WORKSPACE_89 (*(IUH *)((IUH)Gdp + 1719)) +#define SET_GLOBAL_EDL_WORKSPACE_89(v) (GLOBAL_EDL_WORKSPACE_89 = (v)) +#define GLOBAL_EDL_WORKSPACE_90 (*(IUH *)((IUH)Gdp + 1723)) +#define SET_GLOBAL_EDL_WORKSPACE_90(v) (GLOBAL_EDL_WORKSPACE_90 = (v)) +#define GLOBAL_ActiveVideoWrites (*(struct EVIDWRITES *)((IUH)Gdp + 1727)) +#define SET_GLOBAL_ActiveVideoWrites(v) (GLOBAL_ActiveVideoWrites = (v)) +#define GLOBAL_EDL_WORKSPACE_91 (*(IUH *)((IUH)Gdp + 1775)) +#define SET_GLOBAL_EDL_WORKSPACE_91(v) (GLOBAL_EDL_WORKSPACE_91 = (v)) +#define GLOBAL_EDL_WORKSPACE_92 (*(IUH *)((IUH)Gdp + 1779)) +#define SET_GLOBAL_EDL_WORKSPACE_92(v) (GLOBAL_EDL_WORKSPACE_92 = (v)) +#define GLOBAL_EDL_WORKSPACE_93 (*(IUH *)((IUH)Gdp + 1783)) +#define SET_GLOBAL_EDL_WORKSPACE_93(v) (GLOBAL_EDL_WORKSPACE_93 = (v)) +#define GLOBAL_EDL_WORKSPACE_94 (*(IUH *)((IUH)Gdp + 1787)) +#define SET_GLOBAL_EDL_WORKSPACE_94(v) (GLOBAL_EDL_WORKSPACE_94 = (v)) +#define GLOBAL_ActiveVideoReads (*(struct EVIDREADS *)((IUH)Gdp + 1791)) +#define SET_GLOBAL_ActiveVideoReads(v) (GLOBAL_ActiveVideoReads = (v)) +#define GLOBAL_EDL_WORKSPACE_95 (*(IUH *)((IUH)Gdp + 1811)) +#define SET_GLOBAL_EDL_WORKSPACE_95(v) (GLOBAL_EDL_WORKSPACE_95 = (v)) +#define GLOBAL_EDL_WORKSPACE_96 (*(IUH *)((IUH)Gdp + 1815)) +#define SET_GLOBAL_EDL_WORKSPACE_96(v) (GLOBAL_EDL_WORKSPACE_96 = (v)) +#define GLOBAL_EDL_WORKSPACE_97 (*(IUH *)((IUH)Gdp + 1819)) +#define SET_GLOBAL_EDL_WORKSPACE_97(v) (GLOBAL_EDL_WORKSPACE_97 = (v)) +#define GLOBAL_ActiveVideoMarks (*(struct EVIDMARKS *)((IUH)Gdp + 1823)) +#define SET_GLOBAL_ActiveVideoMarks(v) (GLOBAL_ActiveVideoMarks = (v)) +#define GLOBAL_MaxIntelPageNumber (*(IU32 *)((IUH)Gdp + 1839)) +#define SET_GLOBAL_MaxIntelPageNumber(v) (GLOBAL_MaxIntelPageNumber = (v)) +#define GLOBAL_EmptyIntelPageNumber (*(IU32 *)((IUH)Gdp + 1843)) +#define SET_GLOBAL_EmptyIntelPageNumber(v) (GLOBAL_EmptyIntelPageNumber = (v)) +#define GLOBAL_PageDirectoryPtr (*(IU32* *)((IUH)Gdp + 1847)) +#define SET_GLOBAL_PageDirectoryPtr(v) (GLOBAL_PageDirectoryPtr = (v)) +#define GLOBAL_DebuggerPFLA (*(IU32 *)((IUH)Gdp + 1851)) +#define SET_GLOBAL_DebuggerPFLA(v) (GLOBAL_DebuggerPFLA = (v)) +#define GLOBAL_DebuggerFaultAction (*(IUH *)((IUH)Gdp + 1855)) +#define SET_GLOBAL_DebuggerFaultAction(v) (GLOBAL_DebuggerFaultAction = (v)) +#define GLOBAL_InsideDebugger (*(ISH *)((IUH)Gdp + 1859)) +#define SET_GLOBAL_InsideDebugger(v) (GLOBAL_InsideDebugger = (v)) +#define GLOBAL_EDL_WORKSPACE_98 (*(IUH *)((IUH)Gdp + 1863)) +#define SET_GLOBAL_EDL_WORKSPACE_98(v) (GLOBAL_EDL_WORKSPACE_98 = (v)) +#define GLOBAL_EDL_WORKSPACE_99 (*(IUH *)((IUH)Gdp + 1867)) +#define SET_GLOBAL_EDL_WORKSPACE_99(v) (GLOBAL_EDL_WORKSPACE_99 = (v)) +#define GLOBAL_EDL_WORKSPACE_100 (*(IUH *)((IUH)Gdp + 1871)) +#define SET_GLOBAL_EDL_WORKSPACE_100(v) (GLOBAL_EDL_WORKSPACE_100 = (v)) +#define GLOBAL_EDL_WORKSPACE_101 (*(IUH *)((IUH)Gdp + 1875)) +#define SET_GLOBAL_EDL_WORKSPACE_101(v) (GLOBAL_EDL_WORKSPACE_101 = (v)) +#define GLOBAL_EDL_WORKSPACE_102 (*(IUH *)((IUH)Gdp + 1879)) +#define SET_GLOBAL_EDL_WORKSPACE_102(v) (GLOBAL_EDL_WORKSPACE_102 = (v)) +#define GLOBAL_EDL_WORKSPACE_103 (*(IUH *)((IUH)Gdp + 1883)) +#define SET_GLOBAL_EDL_WORKSPACE_103(v) (GLOBAL_EDL_WORKSPACE_103 = (v)) +#define GLOBAL_EDL_WORKSPACE_104 (*(IUH *)((IUH)Gdp + 1887)) +#define SET_GLOBAL_EDL_WORKSPACE_104(v) (GLOBAL_EDL_WORKSPACE_104 = (v)) +#define GLOBAL_EDL_WORKSPACE_105 (*(IUH *)((IUH)Gdp + 1891)) +#define SET_GLOBAL_EDL_WORKSPACE_105(v) (GLOBAL_EDL_WORKSPACE_105 = (v)) +#define GLOBAL_EDL_WORKSPACE_106 (*(IUH *)((IUH)Gdp + 1895)) +#define SET_GLOBAL_EDL_WORKSPACE_106(v) (GLOBAL_EDL_WORKSPACE_106 = (v)) +#define GLOBAL_EDL_WORKSPACE_107 (*(IUH *)((IUH)Gdp + 1899)) +#define SET_GLOBAL_EDL_WORKSPACE_107(v) (GLOBAL_EDL_WORKSPACE_107 = (v)) +#define GLOBAL_EDL_WORKSPACE_108 (*(IUH *)((IUH)Gdp + 1903)) +#define SET_GLOBAL_EDL_WORKSPACE_108(v) (GLOBAL_EDL_WORKSPACE_108 = (v)) +#define GLOBAL_EDL_WORKSPACE_109 (*(IUH *)((IUH)Gdp + 1907)) +#define SET_GLOBAL_EDL_WORKSPACE_109(v) (GLOBAL_EDL_WORKSPACE_109 = (v)) +#define GLOBAL_EDL_WORKSPACE_110 (*(IUH *)((IUH)Gdp + 1911)) +#define SET_GLOBAL_EDL_WORKSPACE_110(v) (GLOBAL_EDL_WORKSPACE_110 = (v)) +#define GLOBAL_EDL_WORKSPACE_111 (*(IUH *)((IUH)Gdp + 1915)) +#define SET_GLOBAL_EDL_WORKSPACE_111(v) (GLOBAL_EDL_WORKSPACE_111 = (v)) +#define GLOBAL_VirtualisationBIOSOffsets (*(struct VirtualisationBIOSOffsetsREC *)((IUH)Gdp + 1919)) +#define SET_GLOBAL_VirtualisationBIOSOffsets(v) (GLOBAL_VirtualisationBIOSOffsets = (v)) +#define GLOBAL_DoingIoVirtTest (*(IUH *)((IUH)Gdp + 1967)) +#define SET_GLOBAL_DoingIoVirtTest(v) (GLOBAL_DoingIoVirtTest = (v)) +#define GLOBAL_IoVirtTestFailed (*(IUH *)((IUH)Gdp + 1971)) +#define SET_GLOBAL_IoVirtTestFailed(v) (GLOBAL_IoVirtTestFailed = (v)) +#define GLOBAL_NextHostCodeAddress (*(IU32* *)((IUH)Gdp + 1975)) +#define SET_GLOBAL_NextHostCodeAddress(v) (GLOBAL_NextHostCodeAddress = (v)) +#define GLOBAL_NextPhysicalPage (*(IUH *)((IUH)Gdp + 1979)) +#define SET_GLOBAL_NextPhysicalPage(v) (GLOBAL_NextPhysicalPage = (v)) +#define GLOBAL_TranslationHashTable (*(IU16* *)((IUH)Gdp + 1983)) +#define SET_GLOBAL_TranslationHashTable(v) (GLOBAL_TranslationHashTable = (v)) +#define GLOBAL_SasMemoryType (*(IU8* *)((IUH)Gdp + 1987)) +#define SET_GLOBAL_SasMemoryType(v) (GLOBAL_SasMemoryType = (v)) +#define GLOBAL_PhysicalPageRecords (*(struct PhysicalPageREC* *)((IUH)Gdp + 1991)) +#define SET_GLOBAL_PhysicalPageRecords(v) (GLOBAL_PhysicalPageRecords = (v)) +#define GLOBAL_PhysicalPageMemory (*(IU8** *)((IUH)Gdp + 1995)) +#define SET_GLOBAL_PhysicalPageMemory(v) (GLOBAL_PhysicalPageMemory = (v)) +#define GLOBAL_TwentyBitWrapStatus (((*(IBOOL *)((IUH)Gdp + 1999)) & 1) != 0) +#define SET_GLOBAL_TwentyBitWrapStatus(v) ((*(IBOOL *)((IUH)Gdp + 1999)) = (v) ? 1: 0) +#define GLOBAL_MultipleRecompilationCount (*(IUH *)((IUH)Gdp + 2003)) +#define SET_GLOBAL_MultipleRecompilationCount(v) (GLOBAL_MultipleRecompilationCount = (v)) +#define GLOBAL_MaxMultipleRecompilation (*(IUH *)((IUH)Gdp + 2007)) +#define SET_GLOBAL_MaxMultipleRecompilation(v) (GLOBAL_MaxMultipleRecompilation = (v)) +#define GLOBAL_HideCompiledFragment (((*(IBOOL *)((IUH)Gdp + 2011)) & 1) != 0) +#define SET_GLOBAL_HideCompiledFragment(v) ((*(IBOOL *)((IUH)Gdp + 2011)) = (v) ? 1: 0) +#define GLOBAL_RestartAfterCodeOverwrite (((*(IBOOL *)((IUH)Gdp + 2015)) & 1) != 0) +#define SET_GLOBAL_RestartAfterCodeOverwrite(v) ((*(IBOOL *)((IUH)Gdp + 2015)) = (v) ? 1: 0) +#define GLOBAL_DoingCompilation (((*(IBOOL *)((IUH)Gdp + 2019)) & 1) != 0) +#define SET_GLOBAL_DoingCompilation(v) ((*(IBOOL *)((IUH)Gdp + 2019)) = (v) ? 1: 0) +#define GLOBAL_SanityCheckStructures (((*(IBOOL *)((IUH)Gdp + 2023)) & 1) != 0) +#define SET_GLOBAL_SanityCheckStructures(v) ((*(IBOOL *)((IUH)Gdp + 2023)) = (v) ? 1: 0) +#define GLOBAL_BufferSelfOverwritten (((*(IBOOL *)((IUH)Gdp + 2027)) & 1) != 0) +#define SET_GLOBAL_BufferSelfOverwritten(v) ((*(IBOOL *)((IUH)Gdp + 2027)) = (v) ? 1: 0) +#define GLOBAL_RecentCodeOverwriteHashTable (*(IU8** *)((IUH)Gdp + 2031)) +#define SET_GLOBAL_RecentCodeOverwriteHashTable(v) (GLOBAL_RecentCodeOverwriteHashTable = (v)) +#define GLOBAL_DelayedGldtUnprotections (*(IU16 *)((IUH)Gdp + 2035)) +#define SET_GLOBAL_DelayedGldtUnprotections(v) (GLOBAL_DelayedGldtUnprotections = (v)) +#define GLOBAL_DelayedIdtUnprotections (*(IU16 *)((IUH)Gdp + 2039)) +#define SET_GLOBAL_DelayedIdtUnprotections(v) (GLOBAL_DelayedIdtUnprotections = (v)) +#define GLOBAL_DelayedIdtList (*(IU16* *)((IUH)Gdp + 2043)) +#define SET_GLOBAL_DelayedIdtList(v) (GLOBAL_DelayedIdtList = (v)) +#define GLOBAL_CoarseRecords (*(struct CoarseProtREC* *)((IUH)Gdp + 2047)) +#define SET_GLOBAL_CoarseRecords(v) (GLOBAL_CoarseRecords = (v)) +#define GLOBAL_FineRecords (*(struct FineProtREC* *)((IUH)Gdp + 2051)) +#define SET_GLOBAL_FineRecords(v) (GLOBAL_FineRecords = (v)) +#define GLOBAL_SlotRecords (*(struct SlotProtREC* *)((IUH)Gdp + 2055)) +#define SET_GLOBAL_SlotRecords(v) (GLOBAL_SlotRecords = (v)) +#define GLOBAL_DescriptorRecords (*(struct GLDC_REC* *)((IUH)Gdp + 2059)) +#define SET_GLOBAL_DescriptorRecords(v) (GLOBAL_DescriptorRecords = (v)) +#define GLOBAL_MapRecords (*(struct TranslationMapREC* *)((IUH)Gdp + 2063)) +#define SET_GLOBAL_MapRecords(v) (GLOBAL_MapRecords = (v)) +#define GLOBAL_DependencyRecords (*(struct DependencyREC* *)((IUH)Gdp + 2067)) +#define SET_GLOBAL_DependencyRecords(v) (GLOBAL_DependencyRecords = (v)) +#define GLOBAL_DeletionRecords (*(struct DeletionREC* *)((IUH)Gdp + 2071)) +#define SET_GLOBAL_DeletionRecords(v) (GLOBAL_DeletionRecords = (v)) +#define GLOBAL_NextPossSacrificeBuffNr (*(IUH *)((IUH)Gdp + 2075)) +#define SET_GLOBAL_NextPossSacrificeBuffNr(v) (GLOBAL_NextPossSacrificeBuffNr = (v)) +#define GLOBAL_BaseDescriptorBuffNr (*(IUH *)((IUH)Gdp + 2079)) +#define SET_GLOBAL_BaseDescriptorBuffNr(v) (GLOBAL_BaseDescriptorBuffNr = (v)) +#define GLOBAL_MaxDescriptorBuffNr (*(IUH *)((IUH)Gdp + 2083)) +#define SET_GLOBAL_MaxDescriptorBuffNr(v) (GLOBAL_MaxDescriptorBuffNr = (v)) +#define GLOBAL_FreeDataBuffers (*(struct BufferIndexREC* *)((IUH)Gdp + 2087)) +#define SET_GLOBAL_FreeDataBuffers(v) (GLOBAL_FreeDataBuffers = (v)) +#define GLOBAL_FreeCodeBuffers (*(struct BufferIndexREC* *)((IUH)Gdp + 2091)) +#define SET_GLOBAL_FreeCodeBuffers(v) (GLOBAL_FreeCodeBuffers = (v)) +#define GLOBAL_EntryPointHashTable (*(IU16* *)((IUH)Gdp + 2095)) +#define SET_GLOBAL_EntryPointHashTable(v) (GLOBAL_EntryPointHashTable = (v)) +#define GLOBAL_FragCounts (*(IU8* *)((IUH)Gdp + 2099)) +#define SET_GLOBAL_FragCounts(v) (GLOBAL_FragCounts = (v)) +#define GLOBAL_EDL_WORKSPACE_112 (*(IUH *)((IUH)Gdp + 2103)) +#define SET_GLOBAL_EDL_WORKSPACE_112(v) (GLOBAL_EDL_WORKSPACE_112 = (v)) +#define GLOBAL_EDL_WORKSPACE_113 (*(IUH *)((IUH)Gdp + 2107)) +#define SET_GLOBAL_EDL_WORKSPACE_113(v) (GLOBAL_EDL_WORKSPACE_113 = (v)) +#define GLOBAL_ControlBlock (*(struct CompilationControlREC *)((IUH)Gdp + 2111)) +#define SET_GLOBAL_ControlBlock(v) (GLOBAL_ControlBlock = (v)) +#define GLOBAL_EDL_WORKSPACE_114 (*(IUH *)((IUH)Gdp + 2127)) +#define SET_GLOBAL_EDL_WORKSPACE_114(v) (GLOBAL_EDL_WORKSPACE_114 = (v)) +#define GLOBAL_EDL_WORKSPACE_115 (*(IUH *)((IUH)Gdp + 2131)) +#define SET_GLOBAL_EDL_WORKSPACE_115(v) (GLOBAL_EDL_WORKSPACE_115 = (v)) +#define GLOBAL_EDL_WORKSPACE_116 (*(IUH *)((IUH)Gdp + 2135)) +#define SET_GLOBAL_EDL_WORKSPACE_116(v) (GLOBAL_EDL_WORKSPACE_116 = (v)) +#define GLOBAL_EDL_WORKSPACE_117 (*(IUH *)((IUH)Gdp + 2139)) +#define SET_GLOBAL_EDL_WORKSPACE_117(v) (GLOBAL_EDL_WORKSPACE_117 = (v)) +#define GLOBAL_EDL_WORKSPACE_118 (*(IUH *)((IUH)Gdp + 2143)) +#define SET_GLOBAL_EDL_WORKSPACE_118(v) (GLOBAL_EDL_WORKSPACE_118 = (v)) +#define GLOBAL_EDL_WORKSPACE_119 (*(IUH *)((IUH)Gdp + 2147)) +#define SET_GLOBAL_EDL_WORKSPACE_119(v) (GLOBAL_EDL_WORKSPACE_119 = (v)) +#define GLOBAL_EDL_WORKSPACE_120 (*(IUH *)((IUH)Gdp + 2151)) +#define SET_GLOBAL_EDL_WORKSPACE_120(v) (GLOBAL_EDL_WORKSPACE_120 = (v)) +#define GLOBAL_EDL_WORKSPACE_121 (*(IUH *)((IUH)Gdp + 2155)) +#define SET_GLOBAL_EDL_WORKSPACE_121(v) (GLOBAL_EDL_WORKSPACE_121 = (v)) +#define GLOBAL_EDL_WORKSPACE_122 (*(IUH *)((IUH)Gdp + 2159)) +#define SET_GLOBAL_EDL_WORKSPACE_122(v) (GLOBAL_EDL_WORKSPACE_122 = (v)) +#define GLOBAL_EDL_WORKSPACE_123 (*(IUH *)((IUH)Gdp + 2163)) +#define SET_GLOBAL_EDL_WORKSPACE_123(v) (GLOBAL_EDL_WORKSPACE_123 = (v)) +#define GLOBAL_EDL_WORKSPACE_124 (*(IUH *)((IUH)Gdp + 2167)) +#define SET_GLOBAL_EDL_WORKSPACE_124(v) (GLOBAL_EDL_WORKSPACE_124 = (v)) +#define GLOBAL_EDL_WORKSPACE_125 (*(IUH *)((IUH)Gdp + 2171)) +#define SET_GLOBAL_EDL_WORKSPACE_125(v) (GLOBAL_EDL_WORKSPACE_125 = (v)) +#define GLOBAL_CompilationBlock (*(struct BLOCK_TO_COMPILE *)((IUH)Gdp + 2175)) +#define SET_GLOBAL_CompilationBlock(v) (GLOBAL_CompilationBlock = (v)) +#define GLOBAL_EDL_WORKSPACE_126 (*(IUH *)((IUH)Gdp + 2211)) +#define SET_GLOBAL_EDL_WORKSPACE_126(v) (GLOBAL_EDL_WORKSPACE_126 = (v)) +#define GLOBAL_EDL_WORKSPACE_127 (*(IUH *)((IUH)Gdp + 2215)) +#define SET_GLOBAL_EDL_WORKSPACE_127(v) (GLOBAL_EDL_WORKSPACE_127 = (v)) +#define GLOBAL_EDL_WORKSPACE_128 (*(IUH *)((IUH)Gdp + 2219)) +#define SET_GLOBAL_EDL_WORKSPACE_128(v) (GLOBAL_EDL_WORKSPACE_128 = (v)) +#define GLOBAL_EDL_WORKSPACE_129 (*(IUH *)((IUH)Gdp + 2223)) +#define SET_GLOBAL_EDL_WORKSPACE_129(v) (GLOBAL_EDL_WORKSPACE_129 = (v)) +#define GLOBAL_EDL_WORKSPACE_130 (*(IUH *)((IUH)Gdp + 2227)) +#define SET_GLOBAL_EDL_WORKSPACE_130(v) (GLOBAL_EDL_WORKSPACE_130 = (v)) +#define GLOBAL_EDL_WORKSPACE_131 (*(IUH *)((IUH)Gdp + 2231)) +#define SET_GLOBAL_EDL_WORKSPACE_131(v) (GLOBAL_EDL_WORKSPACE_131 = (v)) +#define GLOBAL_EDL_WORKSPACE_132 (*(IUH *)((IUH)Gdp + 2235)) +#define SET_GLOBAL_EDL_WORKSPACE_132(v) (GLOBAL_EDL_WORKSPACE_132 = (v)) +#define GLOBAL_EDL_WORKSPACE_133 (*(IUH *)((IUH)Gdp + 2239)) +#define SET_GLOBAL_EDL_WORKSPACE_133(v) (GLOBAL_EDL_WORKSPACE_133 = (v)) +#define GLOBAL_EDL_WORKSPACE_134 (*(IUH *)((IUH)Gdp + 2243)) +#define SET_GLOBAL_EDL_WORKSPACE_134(v) (GLOBAL_EDL_WORKSPACE_134 = (v)) +#define GLOBAL_EDL_WORKSPACE_135 (*(IUH *)((IUH)Gdp + 2247)) +#define SET_GLOBAL_EDL_WORKSPACE_135(v) (GLOBAL_EDL_WORKSPACE_135 = (v)) +#define GLOBAL_EDL_WORKSPACE_136 (*(IUH *)((IUH)Gdp + 2251)) +#define SET_GLOBAL_EDL_WORKSPACE_136(v) (GLOBAL_EDL_WORKSPACE_136 = (v)) +#define GLOBAL_EDL_WORKSPACE_137 (*(IUH *)((IUH)Gdp + 2255)) +#define SET_GLOBAL_EDL_WORKSPACE_137(v) (GLOBAL_EDL_WORKSPACE_137 = (v)) +#define GLOBAL_EDL_WORKSPACE_138 (*(IUH *)((IUH)Gdp + 2259)) +#define SET_GLOBAL_EDL_WORKSPACE_138(v) (GLOBAL_EDL_WORKSPACE_138 = (v)) +#define GLOBAL_EDL_WORKSPACE_139 (*(IUH *)((IUH)Gdp + 2263)) +#define SET_GLOBAL_EDL_WORKSPACE_139(v) (GLOBAL_EDL_WORKSPACE_139 = (v)) +#define GLOBAL_EDL_WORKSPACE_140 (*(IUH *)((IUH)Gdp + 2267)) +#define SET_GLOBAL_EDL_WORKSPACE_140(v) (GLOBAL_EDL_WORKSPACE_140 = (v)) +#define GLOBAL_EDL_WORKSPACE_141 (*(IUH *)((IUH)Gdp + 2271)) +#define SET_GLOBAL_EDL_WORKSPACE_141(v) (GLOBAL_EDL_WORKSPACE_141 = (v)) +#define GLOBAL_EDL_WORKSPACE_142 (*(IUH *)((IUH)Gdp + 2275)) +#define SET_GLOBAL_EDL_WORKSPACE_142(v) (GLOBAL_EDL_WORKSPACE_142 = (v)) +#define GLOBAL_EDL_WORKSPACE_143 (*(IUH *)((IUH)Gdp + 2279)) +#define SET_GLOBAL_EDL_WORKSPACE_143(v) (GLOBAL_EDL_WORKSPACE_143 = (v)) +#define GLOBAL_EDL_WORKSPACE_144 (*(IUH *)((IUH)Gdp + 2283)) +#define SET_GLOBAL_EDL_WORKSPACE_144(v) (GLOBAL_EDL_WORKSPACE_144 = (v)) +#define GLOBAL_EDL_WORKSPACE_145 (*(IUH *)((IUH)Gdp + 2287)) +#define SET_GLOBAL_EDL_WORKSPACE_145(v) (GLOBAL_EDL_WORKSPACE_145 = (v)) +#define GLOBAL_EDL_WORKSPACE_146 (*(IUH *)((IUH)Gdp + 2291)) +#define SET_GLOBAL_EDL_WORKSPACE_146(v) (GLOBAL_EDL_WORKSPACE_146 = (v)) +#define GLOBAL_EDL_WORKSPACE_147 (*(IUH *)((IUH)Gdp + 2295)) +#define SET_GLOBAL_EDL_WORKSPACE_147(v) (GLOBAL_EDL_WORKSPACE_147 = (v)) +#define GLOBAL_EDL_WORKSPACE_148 (*(IUH *)((IUH)Gdp + 2299)) +#define SET_GLOBAL_EDL_WORKSPACE_148(v) (GLOBAL_EDL_WORKSPACE_148 = (v)) +#define GLOBAL_EDL_WORKSPACE_149 (*(IUH *)((IUH)Gdp + 2303)) +#define SET_GLOBAL_EDL_WORKSPACE_149(v) (GLOBAL_EDL_WORKSPACE_149 = (v)) +#define GLOBAL_EDL_WORKSPACE_150 (*(IUH *)((IUH)Gdp + 2307)) +#define SET_GLOBAL_EDL_WORKSPACE_150(v) (GLOBAL_EDL_WORKSPACE_150 = (v)) +#define GLOBAL_EDL_WORKSPACE_151 (*(IUH *)((IUH)Gdp + 2311)) +#define SET_GLOBAL_EDL_WORKSPACE_151(v) (GLOBAL_EDL_WORKSPACE_151 = (v)) +#define GLOBAL_EDL_WORKSPACE_152 (*(IUH *)((IUH)Gdp + 2315)) +#define SET_GLOBAL_EDL_WORKSPACE_152(v) (GLOBAL_EDL_WORKSPACE_152 = (v)) +#define GLOBAL_EDL_WORKSPACE_153 (*(IUH *)((IUH)Gdp + 2319)) +#define SET_GLOBAL_EDL_WORKSPACE_153(v) (GLOBAL_EDL_WORKSPACE_153 = (v)) +#define GLOBAL_EDL_WORKSPACE_154 (*(IUH *)((IUH)Gdp + 2323)) +#define SET_GLOBAL_EDL_WORKSPACE_154(v) (GLOBAL_EDL_WORKSPACE_154 = (v)) +#define GLOBAL_EDL_WORKSPACE_155 (*(IUH *)((IUH)Gdp + 2327)) +#define SET_GLOBAL_EDL_WORKSPACE_155(v) (GLOBAL_EDL_WORKSPACE_155 = (v)) +#define GLOBAL_EDL_WORKSPACE_156 (*(IUH *)((IUH)Gdp + 2331)) +#define SET_GLOBAL_EDL_WORKSPACE_156(v) (GLOBAL_EDL_WORKSPACE_156 = (v)) +#define GLOBAL_EDL_WORKSPACE_157 (*(IUH *)((IUH)Gdp + 2335)) +#define SET_GLOBAL_EDL_WORKSPACE_157(v) (GLOBAL_EDL_WORKSPACE_157 = (v)) +#define GLOBAL_EDL_WORKSPACE_158 (*(IUH *)((IUH)Gdp + 2339)) +#define SET_GLOBAL_EDL_WORKSPACE_158(v) (GLOBAL_EDL_WORKSPACE_158 = (v)) +#define GLOBAL_EDL_WORKSPACE_159 (*(IUH *)((IUH)Gdp + 2343)) +#define SET_GLOBAL_EDL_WORKSPACE_159(v) (GLOBAL_EDL_WORKSPACE_159 = (v)) +#define GLOBAL_EDL_WORKSPACE_160 (*(IUH *)((IUH)Gdp + 2347)) +#define SET_GLOBAL_EDL_WORKSPACE_160(v) (GLOBAL_EDL_WORKSPACE_160 = (v)) +#define GLOBAL_EDL_WORKSPACE_161 (*(IUH *)((IUH)Gdp + 2351)) +#define SET_GLOBAL_EDL_WORKSPACE_161(v) (GLOBAL_EDL_WORKSPACE_161 = (v)) +#define GLOBAL_EDL_WORKSPACE_162 (*(IUH *)((IUH)Gdp + 2355)) +#define SET_GLOBAL_EDL_WORKSPACE_162(v) (GLOBAL_EDL_WORKSPACE_162 = (v)) +#define GLOBAL_EDL_WORKSPACE_163 (*(IUH *)((IUH)Gdp + 2359)) +#define SET_GLOBAL_EDL_WORKSPACE_163(v) (GLOBAL_EDL_WORKSPACE_163 = (v)) +#define GLOBAL_EDL_WORKSPACE_164 (*(IUH *)((IUH)Gdp + 2363)) +#define SET_GLOBAL_EDL_WORKSPACE_164(v) (GLOBAL_EDL_WORKSPACE_164 = (v)) +#define GLOBAL_EDL_WORKSPACE_165 (*(IUH *)((IUH)Gdp + 2367)) +#define SET_GLOBAL_EDL_WORKSPACE_165(v) (GLOBAL_EDL_WORKSPACE_165 = (v)) +#define GLOBAL_EDL_WORKSPACE_166 (*(IUH *)((IUH)Gdp + 2371)) +#define SET_GLOBAL_EDL_WORKSPACE_166(v) (GLOBAL_EDL_WORKSPACE_166 = (v)) +#define GLOBAL_EDL_WORKSPACE_167 (*(IUH *)((IUH)Gdp + 2375)) +#define SET_GLOBAL_EDL_WORKSPACE_167(v) (GLOBAL_EDL_WORKSPACE_167 = (v)) +#define GLOBAL_EDL_WORKSPACE_168 (*(IUH *)((IUH)Gdp + 2379)) +#define SET_GLOBAL_EDL_WORKSPACE_168(v) (GLOBAL_EDL_WORKSPACE_168 = (v)) +#define GLOBAL_EDL_WORKSPACE_169 (*(IUH *)((IUH)Gdp + 2383)) +#define SET_GLOBAL_EDL_WORKSPACE_169(v) (GLOBAL_EDL_WORKSPACE_169 = (v)) +#define GLOBAL_EDL_WORKSPACE_170 (*(IUH *)((IUH)Gdp + 2387)) +#define SET_GLOBAL_EDL_WORKSPACE_170(v) (GLOBAL_EDL_WORKSPACE_170 = (v)) +#define GLOBAL_EDL_WORKSPACE_171 (*(IUH *)((IUH)Gdp + 2391)) +#define SET_GLOBAL_EDL_WORKSPACE_171(v) (GLOBAL_EDL_WORKSPACE_171 = (v)) +#define GLOBAL_EDL_WORKSPACE_172 (*(IUH *)((IUH)Gdp + 2395)) +#define SET_GLOBAL_EDL_WORKSPACE_172(v) (GLOBAL_EDL_WORKSPACE_172 = (v)) +#define GLOBAL_EDL_WORKSPACE_173 (*(IUH *)((IUH)Gdp + 2399)) +#define SET_GLOBAL_EDL_WORKSPACE_173(v) (GLOBAL_EDL_WORKSPACE_173 = (v)) +#define GLOBAL_EDL_WORKSPACE_174 (*(IUH *)((IUH)Gdp + 2403)) +#define SET_GLOBAL_EDL_WORKSPACE_174(v) (GLOBAL_EDL_WORKSPACE_174 = (v)) +#define GLOBAL_EDL_WORKSPACE_175 (*(IUH *)((IUH)Gdp + 2407)) +#define SET_GLOBAL_EDL_WORKSPACE_175(v) (GLOBAL_EDL_WORKSPACE_175 = (v)) +#define GLOBAL_EDL_WORKSPACE_176 (*(IUH *)((IUH)Gdp + 2411)) +#define SET_GLOBAL_EDL_WORKSPACE_176(v) (GLOBAL_EDL_WORKSPACE_176 = (v)) +#define GLOBAL_EDL_WORKSPACE_177 (*(IUH *)((IUH)Gdp + 2415)) +#define SET_GLOBAL_EDL_WORKSPACE_177(v) (GLOBAL_EDL_WORKSPACE_177 = (v)) +#define GLOBAL_EDL_WORKSPACE_178 (*(IUH *)((IUH)Gdp + 2419)) +#define SET_GLOBAL_EDL_WORKSPACE_178(v) (GLOBAL_EDL_WORKSPACE_178 = (v)) +#define GLOBAL_EDL_WORKSPACE_179 (*(IUH *)((IUH)Gdp + 2423)) +#define SET_GLOBAL_EDL_WORKSPACE_179(v) (GLOBAL_EDL_WORKSPACE_179 = (v)) +#define GLOBAL_EDL_WORKSPACE_180 (*(IUH *)((IUH)Gdp + 2427)) +#define SET_GLOBAL_EDL_WORKSPACE_180(v) (GLOBAL_EDL_WORKSPACE_180 = (v)) +#define GLOBAL_EDL_WORKSPACE_181 (*(IUH *)((IUH)Gdp + 2431)) +#define SET_GLOBAL_EDL_WORKSPACE_181(v) (GLOBAL_EDL_WORKSPACE_181 = (v)) +#define GLOBAL_EDL_WORKSPACE_182 (*(IUH *)((IUH)Gdp + 2435)) +#define SET_GLOBAL_EDL_WORKSPACE_182(v) (GLOBAL_EDL_WORKSPACE_182 = (v)) +#define GLOBAL_EDL_WORKSPACE_183 (*(IUH *)((IUH)Gdp + 2439)) +#define SET_GLOBAL_EDL_WORKSPACE_183(v) (GLOBAL_EDL_WORKSPACE_183 = (v)) +#define GLOBAL_EDL_WORKSPACE_184 (*(IUH *)((IUH)Gdp + 2443)) +#define SET_GLOBAL_EDL_WORKSPACE_184(v) (GLOBAL_EDL_WORKSPACE_184 = (v)) +#define GLOBAL_EDL_WORKSPACE_185 (*(IUH *)((IUH)Gdp + 2447)) +#define SET_GLOBAL_EDL_WORKSPACE_185(v) (GLOBAL_EDL_WORKSPACE_185 = (v)) +#define GLOBAL_EDL_WORKSPACE_186 (*(IUH *)((IUH)Gdp + 2451)) +#define SET_GLOBAL_EDL_WORKSPACE_186(v) (GLOBAL_EDL_WORKSPACE_186 = (v)) +#define GLOBAL_EDL_WORKSPACE_187 (*(IUH *)((IUH)Gdp + 2455)) +#define SET_GLOBAL_EDL_WORKSPACE_187(v) (GLOBAL_EDL_WORKSPACE_187 = (v)) +#define GLOBAL_EDL_WORKSPACE_188 (*(IUH *)((IUH)Gdp + 2459)) +#define SET_GLOBAL_EDL_WORKSPACE_188(v) (GLOBAL_EDL_WORKSPACE_188 = (v)) +#define GLOBAL_EDL_WORKSPACE_189 (*(IUH *)((IUH)Gdp + 2463)) +#define SET_GLOBAL_EDL_WORKSPACE_189(v) (GLOBAL_EDL_WORKSPACE_189 = (v)) +#define GLOBAL_EDL_WORKSPACE_190 (*(IUH *)((IUH)Gdp + 2467)) +#define SET_GLOBAL_EDL_WORKSPACE_190(v) (GLOBAL_EDL_WORKSPACE_190 = (v)) +#define GLOBAL_EDL_WORKSPACE_191 (*(IUH *)((IUH)Gdp + 2471)) +#define SET_GLOBAL_EDL_WORKSPACE_191(v) (GLOBAL_EDL_WORKSPACE_191 = (v)) +#define GLOBAL_EDL_WORKSPACE_192 (*(IUH *)((IUH)Gdp + 2475)) +#define SET_GLOBAL_EDL_WORKSPACE_192(v) (GLOBAL_EDL_WORKSPACE_192 = (v)) +#define GLOBAL_EDL_WORKSPACE_193 (*(IUH *)((IUH)Gdp + 2479)) +#define SET_GLOBAL_EDL_WORKSPACE_193(v) (GLOBAL_EDL_WORKSPACE_193 = (v)) +#define GLOBAL_EDL_WORKSPACE_194 (*(IUH *)((IUH)Gdp + 2483)) +#define SET_GLOBAL_EDL_WORKSPACE_194(v) (GLOBAL_EDL_WORKSPACE_194 = (v)) +#define GLOBAL_EDL_WORKSPACE_195 (*(IUH *)((IUH)Gdp + 2487)) +#define SET_GLOBAL_EDL_WORKSPACE_195(v) (GLOBAL_EDL_WORKSPACE_195 = (v)) +#define GLOBAL_EDL_WORKSPACE_196 (*(IUH *)((IUH)Gdp + 2491)) +#define SET_GLOBAL_EDL_WORKSPACE_196(v) (GLOBAL_EDL_WORKSPACE_196 = (v)) +#define GLOBAL_EDL_WORKSPACE_197 (*(IUH *)((IUH)Gdp + 2495)) +#define SET_GLOBAL_EDL_WORKSPACE_197(v) (GLOBAL_EDL_WORKSPACE_197 = (v)) +#define GLOBAL_EDL_WORKSPACE_198 (*(IUH *)((IUH)Gdp + 2499)) +#define SET_GLOBAL_EDL_WORKSPACE_198(v) (GLOBAL_EDL_WORKSPACE_198 = (v)) +#define GLOBAL_EDL_WORKSPACE_199 (*(IUH *)((IUH)Gdp + 2503)) +#define SET_GLOBAL_EDL_WORKSPACE_199(v) (GLOBAL_EDL_WORKSPACE_199 = (v)) +#define GLOBAL_EDL_WORKSPACE_200 (*(IUH *)((IUH)Gdp + 2507)) +#define SET_GLOBAL_EDL_WORKSPACE_200(v) (GLOBAL_EDL_WORKSPACE_200 = (v)) +#define GLOBAL_EDL_WORKSPACE_201 (*(IUH *)((IUH)Gdp + 2511)) +#define SET_GLOBAL_EDL_WORKSPACE_201(v) (GLOBAL_EDL_WORKSPACE_201 = (v)) +#define GLOBAL_EDL_WORKSPACE_202 (*(IUH *)((IUH)Gdp + 2515)) +#define SET_GLOBAL_EDL_WORKSPACE_202(v) (GLOBAL_EDL_WORKSPACE_202 = (v)) +#define GLOBAL_EDL_WORKSPACE_203 (*(IUH *)((IUH)Gdp + 2519)) +#define SET_GLOBAL_EDL_WORKSPACE_203(v) (GLOBAL_EDL_WORKSPACE_203 = (v)) +#define GLOBAL_EDL_WORKSPACE_204 (*(IUH *)((IUH)Gdp + 2523)) +#define SET_GLOBAL_EDL_WORKSPACE_204(v) (GLOBAL_EDL_WORKSPACE_204 = (v)) +#define GLOBAL_EDL_WORKSPACE_205 (*(IUH *)((IUH)Gdp + 2527)) +#define SET_GLOBAL_EDL_WORKSPACE_205(v) (GLOBAL_EDL_WORKSPACE_205 = (v)) +#define GLOBAL_EDL_WORKSPACE_206 (*(IUH *)((IUH)Gdp + 2531)) +#define SET_GLOBAL_EDL_WORKSPACE_206(v) (GLOBAL_EDL_WORKSPACE_206 = (v)) +#define GLOBAL_EDL_WORKSPACE_207 (*(IUH *)((IUH)Gdp + 2535)) +#define SET_GLOBAL_EDL_WORKSPACE_207(v) (GLOBAL_EDL_WORKSPACE_207 = (v)) +#define GLOBAL_EDL_WORKSPACE_208 (*(IUH *)((IUH)Gdp + 2539)) +#define SET_GLOBAL_EDL_WORKSPACE_208(v) (GLOBAL_EDL_WORKSPACE_208 = (v)) +#define GLOBAL_EDL_WORKSPACE_209 (*(IUH *)((IUH)Gdp + 2543)) +#define SET_GLOBAL_EDL_WORKSPACE_209(v) (GLOBAL_EDL_WORKSPACE_209 = (v)) +#define GLOBAL_EDL_WORKSPACE_210 (*(IUH *)((IUH)Gdp + 2547)) +#define SET_GLOBAL_EDL_WORKSPACE_210(v) (GLOBAL_EDL_WORKSPACE_210 = (v)) +#define GLOBAL_EDL_WORKSPACE_211 (*(IUH *)((IUH)Gdp + 2551)) +#define SET_GLOBAL_EDL_WORKSPACE_211(v) (GLOBAL_EDL_WORKSPACE_211 = (v)) +#define GLOBAL_EDL_WORKSPACE_212 (*(IUH *)((IUH)Gdp + 2555)) +#define SET_GLOBAL_EDL_WORKSPACE_212(v) (GLOBAL_EDL_WORKSPACE_212 = (v)) +#define GLOBAL_PoolAllocationRec (*(struct PoolAllocationREC *)((IUH)Gdp + 2559)) +#define SET_GLOBAL_PoolAllocationRec(v) (GLOBAL_PoolAllocationRec = (v)) +#define GLOBAL_LightCompiledLRUrec (*(struct BufferIndexREC* *)((IUH)Gdp + 2879)) +#define SET_GLOBAL_LightCompiledLRUrec(v) (GLOBAL_LightCompiledLRUrec = (v)) +#define GLOBAL_HSPinCodePages (((*(IBOOL *)((IUH)Gdp + 2883)) & 1) != 0) +#define SET_GLOBAL_HSPinCodePages(v) ((*(IBOOL *)((IUH)Gdp + 2883)) = (v) ? 1: 0) +#define GLOBAL_LastCompiledCsDesc (*(struct GLDC_REC* *)((IUH)Gdp + 2887)) +#define SET_GLOBAL_LastCompiledCsDesc(v) (GLOBAL_LastCompiledCsDesc = (v)) +#define GLOBAL_CrossPageInstructions (*(IU8* *)((IUH)Gdp + 2891)) +#define SET_GLOBAL_CrossPageInstructions(v) (GLOBAL_CrossPageInstructions = (v)) +#define GLOBAL_FlushingCache (((*(IBOOL *)((IUH)Gdp + 2895)) & 1) != 0) +#define SET_GLOBAL_FlushingCache(v) ((*(IBOOL *)((IUH)Gdp + 2895)) = (v) ? 1: 0) +#define GLOBAL_suppressIroning (((*(IBOOL *)((IUH)Gdp + 2899)) & 1) != 0) +#define SET_GLOBAL_suppressIroning(v) ((*(IBOOL *)((IUH)Gdp + 2899)) = (v) ? 1: 0) +#define GLOBAL_IHook (*(IU32 *)((IUH)Gdp + 2903)) +#define SET_GLOBAL_IHook(v) (GLOBAL_IHook = (v)) +#define GLOBAL_EDL_WORKSPACE_213 (*(IUH *)((IUH)Gdp + 2907)) +#define SET_GLOBAL_EDL_WORKSPACE_213(v) (GLOBAL_EDL_WORKSPACE_213 = (v)) +#define GLOBAL_InterruptRec (*(struct InterruptREC *)((IUH)Gdp + 2911)) +#define SET_GLOBAL_InterruptRec(v) (GLOBAL_InterruptRec = (v)) +#define GLOBAL_SasReInitNow (((*(IBOOL *)((IUH)Gdp + 2923)) & 1) != 0) +#define SET_GLOBAL_SasReInitNow(v) ((*(IBOOL *)((IUH)Gdp + 2923)) = (v) ? 1: 0) +#define GLOBAL_SasReInitSize (*(IU32 *)((IUH)Gdp + 2927)) +#define SET_GLOBAL_SasReInitSize(v) (GLOBAL_SasReInitSize = (v)) +#define GLOBAL_EDL_WORKSPACE_214 (*(IUH *)((IUH)Gdp + 2931)) +#define SET_GLOBAL_EDL_WORKSPACE_214(v) (GLOBAL_EDL_WORKSPACE_214 = (v)) +#define GLOBAL_EDL_WORKSPACE_215 (*(IUH *)((IUH)Gdp + 2935)) +#define SET_GLOBAL_EDL_WORKSPACE_215(v) (GLOBAL_EDL_WORKSPACE_215 = (v)) +#define GLOBAL_EDL_WORKSPACE_216 (*(IUH *)((IUH)Gdp + 2939)) +#define SET_GLOBAL_EDL_WORKSPACE_216(v) (GLOBAL_EDL_WORKSPACE_216 = (v)) +#define GLOBAL_QuickTickerRec (*(struct QuickTickerREC *)((IUH)Gdp + 2943)) +#define SET_GLOBAL_QuickTickerRec(v) (GLOBAL_QuickTickerRec = (v)) +#define GLOBAL_PigSynchCount (*(IUH *)((IUH)Gdp + 2967)) +#define SET_GLOBAL_PigSynchCount(v) (GLOBAL_PigSynchCount = (v)) +#define GLOBAL_CodeBufferSizeBits (*(IUH *)((IUH)Gdp + 2971)) +#define SET_GLOBAL_CodeBufferSizeBits(v) (GLOBAL_CodeBufferSizeBits = (v)) +#define GLOBAL_CodeBufferSize (*(IUH *)((IUH)Gdp + 2975)) +#define SET_GLOBAL_CodeBufferSize(v) (GLOBAL_CodeBufferSize = (v)) +#define GLOBAL_DataBufferSize (*(IUH *)((IUH)Gdp + 2979)) +#define SET_GLOBAL_DataBufferSize(v) (GLOBAL_DataBufferSize = (v)) +#define GLOBAL_AllBuffers (*(struct BufferIndexREC* *)((IUH)Gdp + 2983)) +#define SET_GLOBAL_AllBuffers(v) (GLOBAL_AllBuffers = (v)) +#define GLOBAL_LightBufferLRU (*(struct BufferIndexREC* *)((IUH)Gdp + 2987)) +#define SET_GLOBAL_LightBufferLRU(v) (GLOBAL_LightBufferLRU = (v)) +#define GLOBAL_CompilationBuffer (*(struct BufferIndexREC* *)((IUH)Gdp + 2991)) +#define SET_GLOBAL_CompilationBuffer(v) (GLOBAL_CompilationBuffer = (v)) +#define GLOBAL_PendingDeletions (*(struct BufferIndexREC* *)((IUH)Gdp + 2995)) +#define SET_GLOBAL_PendingDeletions(v) (GLOBAL_PendingDeletions = (v)) +#define GLOBAL_FragmentInfoArray (*(struct FragmentInfoREC* *)((IUH)Gdp + 2999)) +#define SET_GLOBAL_FragmentInfoArray(v) (GLOBAL_FragmentInfoArray = (v)) +#define GLOBAL_HostCodeBufferLimit (*(IU32* *)((IUH)Gdp + 3003)) +#define SET_GLOBAL_HostCodeBufferLimit(v) (GLOBAL_HostCodeBufferLimit = (v)) +#define GLOBAL_CopiedCleanups (*(IU8* *)((IUH)Gdp + 3007)) +#define SET_GLOBAL_CopiedCleanups(v) (GLOBAL_CopiedCleanups = (v)) +#define GLOBAL_FreeDebugInfoList (*(struct DebugInfoREC* *)((IUH)Gdp + 3011)) +#define SET_GLOBAL_FreeDebugInfoList(v) (GLOBAL_FreeDebugInfoList = (v)) +#define GLOBAL_CodeBufferOverrun (*(IU32* *)((IUH)Gdp + 3015)) +#define SET_GLOBAL_CodeBufferOverrun(v) (GLOBAL_CodeBufferOverrun = (v)) +#define GLOBAL_OverrunHighWaterMark (*(IU32* *)((IUH)Gdp + 3019)) +#define SET_GLOBAL_OverrunHighWaterMark(v) (GLOBAL_OverrunHighWaterMark = (v)) +#define GLOBAL_NumberOfBuffers (*(IU16 *)((IUH)Gdp + 3023)) +#define SET_GLOBAL_NumberOfBuffers(v) (GLOBAL_NumberOfBuffers = (v)) +#define GLOBAL_NextFragmentIndex (*(struct FragmentIndexREC* *)((IUH)Gdp + 3027)) +#define SET_GLOBAL_NextFragmentIndex(v) (GLOBAL_NextFragmentIndex = (v)) +#define GLOBAL_NextFragmentData (*(struct FragmentDataREC* *)((IUH)Gdp + 3031)) +#define SET_GLOBAL_NextFragmentData(v) (GLOBAL_NextFragmentData = (v)) +#define GLOBAL_FpuDisabled (((*(IBOOL *)((IUH)Gdp + 3035)) & 1) != 0) +#define SET_GLOBAL_FpuDisabled(v) ((*(IBOOL *)((IUH)Gdp + 3035)) = (v) ? 1: 0) +#define GLOBAL_GenerateNPXexception (((*(IBOOL *)((IUH)Gdp + 3039)) & 1) != 0) +#define SET_GLOBAL_GenerateNPXexception(v) ((*(IBOOL *)((IUH)Gdp + 3039)) = (v) ? 1: 0) +#define GLOBAL_NpxExceptionEIP (*(IUH *)((IUH)Gdp + 3043)) +#define SET_GLOBAL_NpxExceptionEIP(v) (GLOBAL_NpxExceptionEIP = (v)) +#define GLOBAL_NpxControl (*(IUH *)((IUH)Gdp + 3047)) +#define SET_GLOBAL_NpxControl(v) (GLOBAL_NpxControl = (v)) +#define GLOBAL_NpxStatus (*(IUH *)((IUH)Gdp + 3051)) +#define SET_GLOBAL_NpxStatus(v) (GLOBAL_NpxStatus = (v)) +#define GLOBAL_NpxFEA (*(IUH *)((IUH)Gdp + 3055)) +#define SET_GLOBAL_NpxFEA(v) (GLOBAL_NpxFEA = (v)) +#define GLOBAL_NpxFDS (*(IUH *)((IUH)Gdp + 3059)) +#define SET_GLOBAL_NpxFDS(v) (GLOBAL_NpxFDS = (v)) +#define GLOBAL_NpxFIP (*(IUH *)((IUH)Gdp + 3063)) +#define SET_GLOBAL_NpxFIP(v) (GLOBAL_NpxFIP = (v)) +#define GLOBAL_NpxFOP (*(IUH *)((IUH)Gdp + 3067)) +#define SET_GLOBAL_NpxFOP(v) (GLOBAL_NpxFOP = (v)) +#define GLOBAL_NpxFCS (*(IUH *)((IUH)Gdp + 3071)) +#define SET_GLOBAL_NpxFCS(v) (GLOBAL_NpxFCS = (v)) +#define GLOBAL_NpxSWFlagC0 (*(IUH *)((IUH)Gdp + 3075)) +#define SET_GLOBAL_NpxSWFlagC0(v) (GLOBAL_NpxSWFlagC0 = (v)) +#define GLOBAL_NpxSWFlagC1 (*(IUH *)((IUH)Gdp + 3079)) +#define SET_GLOBAL_NpxSWFlagC1(v) (GLOBAL_NpxSWFlagC1 = (v)) +#define GLOBAL_NpxSWFlagC2 (*(IUH *)((IUH)Gdp + 3083)) +#define SET_GLOBAL_NpxSWFlagC2(v) (GLOBAL_NpxSWFlagC2 = (v)) +#define GLOBAL_NpxSWFlagC3 (*(IUH *)((IUH)Gdp + 3087)) +#define SET_GLOBAL_NpxSWFlagC3(v) (GLOBAL_NpxSWFlagC3 = (v)) +#define GLOBAL_NpxLastSel (*(IUH *)((IUH)Gdp + 3091)) +#define SET_GLOBAL_NpxLastSel(v) (GLOBAL_NpxLastSel = (v)) +#define GLOBAL_NpxLastOff (*(IUH *)((IUH)Gdp + 3095)) +#define SET_GLOBAL_NpxLastOff(v) (GLOBAL_NpxLastOff = (v)) +#define GLOBAL_NpxException (((*(IBOOL *)((IUH)Gdp + 3099)) & 1) != 0) +#define SET_GLOBAL_NpxException(v) ((*(IBOOL *)((IUH)Gdp + 3099)) = (v) ? 1: 0) +#define GLOBAL_npxRounding (*(IUH *)((IUH)Gdp + 3103)) +#define SET_GLOBAL_npxRounding(v) (GLOBAL_npxRounding = (v)) +#define GLOBAL_UnmaskedOUP (((*(IBOOL *)((IUH)Gdp + 3107)) & 1) != 0) +#define SET_GLOBAL_UnmaskedOUP(v) ((*(IBOOL *)((IUH)Gdp + 3107)) = (v) ? 1: 0) +#define GLOBAL_hostFpuExceptions (*(IUH *)((IUH)Gdp + 3111)) +#define SET_GLOBAL_hostFpuExceptions(v) (GLOBAL_hostFpuExceptions = (v)) +#define GLOBAL_savedFpuExceptions (*(IUH *)((IUH)Gdp + 3115)) +#define SET_GLOBAL_savedFpuExceptions(v) (GLOBAL_savedFpuExceptions = (v)) +#define GLOBAL_tempFpuExceptions (*(IUH *)((IUH)Gdp + 3119)) +#define SET_GLOBAL_tempFpuExceptions(v) (GLOBAL_tempFpuExceptions = (v)) +#define GLOBAL_savedFpuXcptnOverflow (*(IUH *)((IUH)Gdp + 3123)) +#define SET_GLOBAL_savedFpuXcptnOverflow(v) (GLOBAL_savedFpuXcptnOverflow = (v)) +#define GLOBAL_savedFpuXcptnUnderflow (*(IUH *)((IUH)Gdp + 3127)) +#define SET_GLOBAL_savedFpuXcptnUnderflow(v) (GLOBAL_savedFpuXcptnUnderflow = (v)) +#define GLOBAL_savedFpuXcptnPrecision (*(IUH *)((IUH)Gdp + 3131)) +#define SET_GLOBAL_savedFpuXcptnPrecision(v) (GLOBAL_savedFpuXcptnPrecision = (v)) +#define GLOBAL_MaxBCDValue (*(struct FPSTACKENTRY *)((IUH)Gdp + 3135)) +#define SET_GLOBAL_MaxBCDValue(v) (GLOBAL_MaxBCDValue = (v)) +#define GLOBAL_FPUpload (*(struct FPSTACKENTRY *)((IUH)Gdp + 3151)) +#define SET_GLOBAL_FPUpload(v) (GLOBAL_FPUpload = (v)) +#define GLOBAL_ConstTable (*(struct FPSTACKENTRY* *)((IUH)Gdp + 3167)) +#define SET_GLOBAL_ConstTable(v) (GLOBAL_ConstTable = (v)) +#define GLOBAL_FPTemp (*(struct FPSTACKENTRY* *)((IUH)Gdp + 3171)) +#define SET_GLOBAL_FPTemp(v) (GLOBAL_FPTemp = (v)) +#define GLOBAL_FPUStackBase (*(struct FPSTACKENTRY* *)((IUH)Gdp + 3175)) +#define SET_GLOBAL_FPUStackBase(v) (GLOBAL_FPUStackBase = (v)) +#define GLOBAL_TOSPtr (*(struct FPSTACKENTRY* *)((IUH)Gdp + 3179)) +#define SET_GLOBAL_TOSPtr(v) (GLOBAL_TOSPtr = (v)) +#define GLOBAL_Npx64BitZero (*(struct FP_I64 *)((IUH)Gdp + 3183)) +#define SET_GLOBAL_Npx64BitZero(v) (GLOBAL_Npx64BitZero = (v)) +#define GLOBAL_Npx64BitMaxNeg (*(struct FP_I64 *)((IUH)Gdp + 3191)) +#define SET_GLOBAL_Npx64BitMaxNeg(v) (GLOBAL_Npx64BitMaxNeg = (v)) +#define GLOBAL_Npx64BitHalfMaxNeg (*(struct FP_I64 *)((IUH)Gdp + 3199)) +#define SET_GLOBAL_Npx64BitHalfMaxNeg(v) (GLOBAL_Npx64BitHalfMaxNeg = (v)) +#define GLOBAL_Npx64BitVal1 (*(struct FP_I64 *)((IUH)Gdp + 3207)) +#define SET_GLOBAL_Npx64BitVal1(v) (GLOBAL_Npx64BitVal1 = (v)) +#define GLOBAL_FscaleTable (*(IUH* *)((IUH)Gdp + 3215)) +#define SET_GLOBAL_FscaleTable(v) (GLOBAL_FscaleTable = (v)) +#define GLOBAL_CompZeroTable (*(IU32* *)((IUH)Gdp + 3219)) +#define SET_GLOBAL_CompZeroTable(v) (GLOBAL_CompZeroTable = (v)) +#define GLOBAL_BCDLowNibble (*(struct FP_I64* *)((IUH)Gdp + 3223)) +#define SET_GLOBAL_BCDLowNibble(v) (GLOBAL_BCDLowNibble = (v)) +#define GLOBAL_BCDHighNibble (*(struct FP_I64* *)((IUH)Gdp + 3227)) +#define SET_GLOBAL_BCDHighNibble(v) (GLOBAL_BCDHighNibble = (v)) +#define GLOBAL_FpatanTable (*(struct FPSTACKENTRY* *)((IUH)Gdp + 3231)) +#define SET_GLOBAL_FpatanTable(v) (GLOBAL_FpatanTable = (v)) +#define GLOBAL_Pigging (((*(IBOOL *)((IUH)Gdp + 3235)) & 1) != 0) +#define SET_GLOBAL_Pigging(v) ((*(IBOOL *)((IUH)Gdp + 3235)) = (v) ? 1: 0) +#define GLOBAL_PigInterruptState (((*(IBOOL *)((IUH)Gdp + 3239)) & 1) != 0) +#define SET_GLOBAL_PigInterruptState(v) ((*(IBOOL *)((IUH)Gdp + 3239)) = (v) ? 1: 0) +#define GLOBAL_PigIgnoreFlags (((*(IBOOL *)((IUH)Gdp + 3243)) & 1) != 0) +#define SET_GLOBAL_PigIgnoreFlags(v) ((*(IBOOL *)((IUH)Gdp + 3243)) = (v) ? 1: 0) +#define GLOBAL_ApiPigSynchCount (*(IU16 *)((IUH)Gdp + 3247)) +#define SET_GLOBAL_ApiPigSynchCount(v) (GLOBAL_ApiPigSynchCount = (v)) +#define GLOBAL_ApiPigSynchTable (*(IU32* *)((IUH)Gdp + 3251)) +#define SET_GLOBAL_ApiPigSynchTable(v) (GLOBAL_ApiPigSynchTable = (v)) +#define GLOBAL_PigSynchWanted (((*(IBOOL *)((IUH)Gdp + 3255)) & 1) != 0) +#define SET_GLOBAL_PigSynchWanted(v) ((*(IBOOL *)((IUH)Gdp + 3255)) = (v) ? 1: 0) +#define GLOBAL_SadAX (*(ISH *)((IUH)Gdp + 3259)) +#define SET_GLOBAL_SadAX(v) (GLOBAL_SadAX = (v)) +#define GLOBAL_SadBX (*(ISH *)((IUH)Gdp + 3263)) +#define SET_GLOBAL_SadBX(v) (GLOBAL_SadBX = (v)) +#define GLOBAL_SadCX (*(ISH *)((IUH)Gdp + 3267)) +#define SET_GLOBAL_SadCX(v) (GLOBAL_SadCX = (v)) +#define GLOBAL_SadDX (*(ISH *)((IUH)Gdp + 3271)) +#define SET_GLOBAL_SadDX(v) (GLOBAL_SadDX = (v)) +#define GLOBAL_SadBP (*(ISH *)((IUH)Gdp + 3275)) +#define SET_GLOBAL_SadBP(v) (GLOBAL_SadBP = (v)) +#define GLOBAL_SadSP (*(ISH *)((IUH)Gdp + 3279)) +#define SET_GLOBAL_SadSP(v) (GLOBAL_SadSP = (v)) +#define GLOBAL_SadSI (*(ISH *)((IUH)Gdp + 3283)) +#define SET_GLOBAL_SadSI(v) (GLOBAL_SadSI = (v)) +#define GLOBAL_SadDI (*(ISH *)((IUH)Gdp + 3287)) +#define SET_GLOBAL_SadDI(v) (GLOBAL_SadDI = (v)) +#define GLOBAL_SadEIP (*(ISH *)((IUH)Gdp + 3291)) +#define SET_GLOBAL_SadEIP(v) (GLOBAL_SadEIP = (v)) +#define GLOBAL_SadEFLAGS (*(ISH *)((IUH)Gdp + 3295)) +#define SET_GLOBAL_SadEFLAGS(v) (GLOBAL_SadEFLAGS = (v)) +#define GLOBAL_Parameter1 (*(ISH *)((IUH)Gdp + 3299)) +#define SET_GLOBAL_Parameter1(v) (GLOBAL_Parameter1 = (v)) +#define GLOBAL_Parameter2 (*(ISH *)((IUH)Gdp + 3303)) +#define SET_GLOBAL_Parameter2(v) (GLOBAL_Parameter2 = (v)) +#define GLOBAL_BpiKnownTable (*(ISH* *)((IUH)Gdp + 3307)) +#define SET_GLOBAL_BpiKnownTable(v) (GLOBAL_BpiKnownTable = (v)) +#define GLOBAL_BpiWorkTable (*(ISH* *)((IUH)Gdp + 3311)) +#define SET_GLOBAL_BpiWorkTable(v) (GLOBAL_BpiWorkTable = (v)) +#define GLOBAL_BpiLabelTable (*(ISH* *)((IUH)Gdp + 3315)) +#define SET_GLOBAL_BpiLabelTable(v) (GLOBAL_BpiLabelTable = (v)) +#define GLOBAL_BpiFragment (*(struct FragmentDataREC* *)((IUH)Gdp + 3319)) +#define SET_GLOBAL_BpiFragment(v) (GLOBAL_BpiFragment = (v)) +#define GLOBAL_BpiCompilationBuffer (*(struct BufferIndexREC* *)((IUH)Gdp + 3323)) +#define SET_GLOBAL_BpiCompilationBuffer(v) (GLOBAL_BpiCompilationBuffer = (v)) +#define GLOBAL_BpiCompiledCode (*(IU32* *)((IUH)Gdp + 3327)) +#define SET_GLOBAL_BpiCompiledCode(v) (GLOBAL_BpiCompiledCode = (v)) +#define GLOBAL_BpiCompiledStep (*(IU32* *)((IUH)Gdp + 3331)) +#define SET_GLOBAL_BpiCompiledStep(v) (GLOBAL_BpiCompiledStep = (v)) +#define GLOBAL_BpiCompiledUser (*(IU32* *)((IUH)Gdp + 3335)) +#define SET_GLOBAL_BpiCompiledUser(v) (GLOBAL_BpiCompiledUser = (v)) +#define GLOBAL_SafeToReturnToSnippet (((*(IBOOL *)((IUH)Gdp + 3339)) & 1) != 0) +#define SET_GLOBAL_SafeToReturnToSnippet(v) ((*(IBOOL *)((IUH)Gdp + 3339)) = (v) ? 1: 0) +#define GLOBAL_BpiIntelStats (((*(IBOOL *)((IUH)Gdp + 3343)) & 1) != 0) +#define SET_GLOBAL_BpiIntelStats(v) ((*(IBOOL *)((IUH)Gdp + 3343)) = (v) ? 1: 0) +#define GLOBAL_BpiSuppressFunc (((*(IBOOL *)((IUH)Gdp + 3347)) & 1) != 0) +#define SET_GLOBAL_BpiSuppressFunc(v) ((*(IBOOL *)((IUH)Gdp + 3347)) = (v) ? 1: 0) +#define GLOBAL_BpiIntelStatFree (*(struct BpiIntelStatBlock* *)((IUH)Gdp + 3351)) +#define SET_GLOBAL_BpiIntelStatFree(v) (GLOBAL_BpiIntelStatFree = (v)) +#define GLOBAL_BpiIntelStatIndx (*(struct BpiIntelStatBlock** *)((IUH)Gdp + 3355)) +#define SET_GLOBAL_BpiIntelStatIndx(v) (GLOBAL_BpiIntelStatIndx = (v)) +#define GLOBAL_OpBpirealFt (*(IUH *)((IUH)Gdp + 3359)) +#define SET_GLOBAL_OpBpirealFt(v) (GLOBAL_OpBpirealFt = (v)) +#define GLOBAL_OpBpirealF1 (*(IUH *)((IUH)Gdp + 3363)) +#define SET_GLOBAL_OpBpirealF1(v) (GLOBAL_OpBpirealF1 = (v)) +#define GLOBAL_OpBpirealF2 (*(IUH *)((IUH)Gdp + 3367)) +#define SET_GLOBAL_OpBpirealF2(v) (GLOBAL_OpBpirealF2 = (v)) +#define GLOBAL_OpBpirealF3 (*(IUH *)((IUH)Gdp + 3371)) +#define SET_GLOBAL_OpBpirealF3(v) (GLOBAL_OpBpirealF3 = (v)) +#define GLOBAL_OpBpirealUniv (*(IU32 *)((IUH)Gdp + 3375)) +#define SET_GLOBAL_OpBpirealUniv(v) (GLOBAL_OpBpirealUniv = (v)) +#define GLOBAL_OpBpirealWhereAmI (*(IU32* *)((IUH)Gdp + 3379)) +#define SET_GLOBAL_OpBpirealWhereAmI(v) (GLOBAL_OpBpirealWhereAmI = (v)) +#define GLOBAL_EDL_WORKSPACE_217 (*(IUH *)((IUH)Gdp + 3383)) +#define SET_GLOBAL_EDL_WORKSPACE_217(v) (GLOBAL_EDL_WORKSPACE_217 = (v)) +#define GLOBAL_EDL_WORKSPACE_218 (*(IUH *)((IUH)Gdp + 3387)) +#define SET_GLOBAL_EDL_WORKSPACE_218(v) (GLOBAL_EDL_WORKSPACE_218 = (v)) +#define GLOBAL_ApiBufferChain (*(struct BufferIndexREC *)((IUH)Gdp + 3391)) +#define SET_GLOBAL_ApiBufferChain(v) (GLOBAL_ApiBufferChain = (v)) +#define GLOBAL_ApiCompilationBuffer (*(struct BufferIndexREC* *)((IUH)Gdp + 3427)) +#define SET_GLOBAL_ApiCompilationBuffer(v) (GLOBAL_ApiCompilationBuffer = (v)) +#define GLOBAL_ApiNumberOfBuffers (*(IU8 *)((IUH)Gdp + 3431)) +#define SET_GLOBAL_ApiNumberOfBuffers(v) (GLOBAL_ApiNumberOfBuffers = (v)) +#define GLOBAL_ApiNextFragmentIndex (*(struct FragmentIndexREC* *)((IUH)Gdp + 3435)) +#define SET_GLOBAL_ApiNextFragmentIndex(v) (GLOBAL_ApiNextFragmentIndex = (v)) +#define GLOBAL_ApiNextFragmentData (*(struct FragmentDataREC* *)((IUH)Gdp + 3439)) +#define SET_GLOBAL_ApiNextFragmentData(v) (GLOBAL_ApiNextFragmentData = (v)) +#define GLOBAL_ApiGDTBase (*(IU32 *)((IUH)Gdp + 3443)) +#define SET_GLOBAL_ApiGDTBase(v) (GLOBAL_ApiGDTBase = (v)) +#define GLOBAL_ApiGDTLimit (*(IU16 *)((IUH)Gdp + 3447)) +#define SET_GLOBAL_ApiGDTLimit(v) (GLOBAL_ApiGDTLimit = (v)) +#define GLOBAL_ApiMinBuffNr (*(IUH *)((IUH)Gdp + 3451)) +#define SET_GLOBAL_ApiMinBuffNr(v) (GLOBAL_ApiMinBuffNr = (v)) +#define GLOBAL_ApiMaxBuffNr (*(IUH *)((IUH)Gdp + 3455)) +#define SET_GLOBAL_ApiMaxBuffNr(v) (GLOBAL_ApiMaxBuffNr = (v)) +#define GLOBAL_EDL_WORKSPACE_219 (*(IUH *)((IUH)Gdp + 3459)) +#define SET_GLOBAL_EDL_WORKSPACE_219(v) (GLOBAL_EDL_WORKSPACE_219 = (v)) +#define GLOBAL_EDL_WORKSPACE_220 (*(IUH *)((IUH)Gdp + 3463)) +#define SET_GLOBAL_EDL_WORKSPACE_220(v) (GLOBAL_EDL_WORKSPACE_220 = (v)) +#define GLOBAL_EDL_WORKSPACE_221 (*(IUH *)((IUH)Gdp + 3467)) +#define SET_GLOBAL_EDL_WORKSPACE_221(v) (GLOBAL_EDL_WORKSPACE_221 = (v)) +#define GLOBAL_EDL_WORKSPACE_222 (*(IUH *)((IUH)Gdp + 3471)) +#define SET_GLOBAL_EDL_WORKSPACE_222(v) (GLOBAL_EDL_WORKSPACE_222 = (v)) +#define GLOBAL_EDL_WORKSPACE_223 (*(IUH *)((IUH)Gdp + 3475)) +#define SET_GLOBAL_EDL_WORKSPACE_223(v) (GLOBAL_EDL_WORKSPACE_223 = (v)) +#define GLOBAL_EDL_WORKSPACE_224 (*(IUH *)((IUH)Gdp + 3479)) +#define SET_GLOBAL_EDL_WORKSPACE_224(v) (GLOBAL_EDL_WORKSPACE_224 = (v)) +#define GLOBAL_EDL_WORKSPACE_225 (*(IUH *)((IUH)Gdp + 3483)) +#define SET_GLOBAL_EDL_WORKSPACE_225(v) (GLOBAL_EDL_WORKSPACE_225 = (v)) +#define GLOBAL_EDL_WORKSPACE_226 (*(IUH *)((IUH)Gdp + 3487)) +#define SET_GLOBAL_EDL_WORKSPACE_226(v) (GLOBAL_EDL_WORKSPACE_226 = (v)) +#define GLOBAL_EDL_WORKSPACE_227 (*(IUH *)((IUH)Gdp + 3491)) +#define SET_GLOBAL_EDL_WORKSPACE_227(v) (GLOBAL_EDL_WORKSPACE_227 = (v)) +#define GLOBAL_EDL_WORKSPACE_228 (*(IUH *)((IUH)Gdp + 3495)) +#define SET_GLOBAL_EDL_WORKSPACE_228(v) (GLOBAL_EDL_WORKSPACE_228 = (v)) +#define GLOBAL_EDL_WORKSPACE_229 (*(IUH *)((IUH)Gdp + 3499)) +#define SET_GLOBAL_EDL_WORKSPACE_229(v) (GLOBAL_EDL_WORKSPACE_229 = (v)) +#define GLOBAL_EDL_WORKSPACE_230 (*(IUH *)((IUH)Gdp + 3503)) +#define SET_GLOBAL_EDL_WORKSPACE_230(v) (GLOBAL_EDL_WORKSPACE_230 = (v)) +#define GLOBAL_EDL_WORKSPACE_231 (*(IUH *)((IUH)Gdp + 3507)) +#define SET_GLOBAL_EDL_WORKSPACE_231(v) (GLOBAL_EDL_WORKSPACE_231 = (v)) +#define GLOBAL_EDL_WORKSPACE_232 (*(IUH *)((IUH)Gdp + 3511)) +#define SET_GLOBAL_EDL_WORKSPACE_232(v) (GLOBAL_EDL_WORKSPACE_232 = (v)) +#define GLOBAL_EDL_WORKSPACE_233 (*(IUH *)((IUH)Gdp + 3515)) +#define SET_GLOBAL_EDL_WORKSPACE_233(v) (GLOBAL_EDL_WORKSPACE_233 = (v)) +#define GLOBAL_EDL_WORKSPACE_234 (*(IUH *)((IUH)Gdp + 3519)) +#define SET_GLOBAL_EDL_WORKSPACE_234(v) (GLOBAL_EDL_WORKSPACE_234 = (v)) +#define GLOBAL_EDL_WORKSPACE_235 (*(IUH *)((IUH)Gdp + 3523)) +#define SET_GLOBAL_EDL_WORKSPACE_235(v) (GLOBAL_EDL_WORKSPACE_235 = (v)) +#define GLOBAL_EDL_WORKSPACE_236 (*(IUH *)((IUH)Gdp + 3527)) +#define SET_GLOBAL_EDL_WORKSPACE_236(v) (GLOBAL_EDL_WORKSPACE_236 = (v)) +#define GLOBAL_EDL_WORKSPACE_237 (*(IUH *)((IUH)Gdp + 3531)) +#define SET_GLOBAL_EDL_WORKSPACE_237(v) (GLOBAL_EDL_WORKSPACE_237 = (v)) +#define GLOBAL_EDL_WORKSPACE_238 (*(IUH *)((IUH)Gdp + 3535)) +#define SET_GLOBAL_EDL_WORKSPACE_238(v) (GLOBAL_EDL_WORKSPACE_238 = (v)) +#define GLOBAL_EDL_WORKSPACE_239 (*(IUH *)((IUH)Gdp + 3539)) +#define SET_GLOBAL_EDL_WORKSPACE_239(v) (GLOBAL_EDL_WORKSPACE_239 = (v)) +#define GLOBAL_EDL_WORKSPACE_240 (*(IUH *)((IUH)Gdp + 3543)) +#define SET_GLOBAL_EDL_WORKSPACE_240(v) (GLOBAL_EDL_WORKSPACE_240 = (v)) +#define GLOBAL_EDL_WORKSPACE_241 (*(IUH *)((IUH)Gdp + 3547)) +#define SET_GLOBAL_EDL_WORKSPACE_241(v) (GLOBAL_EDL_WORKSPACE_241 = (v)) +#define GLOBAL_EDL_WORKSPACE_242 (*(IUH *)((IUH)Gdp + 3551)) +#define SET_GLOBAL_EDL_WORKSPACE_242(v) (GLOBAL_EDL_WORKSPACE_242 = (v)) +#define GLOBAL_EDL_WORKSPACE_243 (*(IUH *)((IUH)Gdp + 3555)) +#define SET_GLOBAL_EDL_WORKSPACE_243(v) (GLOBAL_EDL_WORKSPACE_243 = (v)) +#define GLOBAL_EDL_WORKSPACE_244 (*(IUH *)((IUH)Gdp + 3559)) +#define SET_GLOBAL_EDL_WORKSPACE_244(v) (GLOBAL_EDL_WORKSPACE_244 = (v)) +#define GLOBAL_EDL_WORKSPACE_245 (*(IUH *)((IUH)Gdp + 3563)) +#define SET_GLOBAL_EDL_WORKSPACE_245(v) (GLOBAL_EDL_WORKSPACE_245 = (v)) +#define GLOBAL_EDL_WORKSPACE_246 (*(IUH *)((IUH)Gdp + 3567)) +#define SET_GLOBAL_EDL_WORKSPACE_246(v) (GLOBAL_EDL_WORKSPACE_246 = (v)) +#define GLOBAL_EDL_WORKSPACE_247 (*(IUH *)((IUH)Gdp + 3571)) +#define SET_GLOBAL_EDL_WORKSPACE_247(v) (GLOBAL_EDL_WORKSPACE_247 = (v)) +#define GLOBAL_EDL_WORKSPACE_248 (*(IUH *)((IUH)Gdp + 3575)) +#define SET_GLOBAL_EDL_WORKSPACE_248(v) (GLOBAL_EDL_WORKSPACE_248 = (v)) +#define GLOBAL_EDL_WORKSPACE_249 (*(IUH *)((IUH)Gdp + 3579)) +#define SET_GLOBAL_EDL_WORKSPACE_249(v) (GLOBAL_EDL_WORKSPACE_249 = (v)) +#define GLOBAL_NpxOpndBuff (*(struct OpndBuffREC *)((IUH)Gdp + 3583)) +#define SET_GLOBAL_NpxOpndBuff(v) (GLOBAL_NpxOpndBuff = (v)) +#define GLOBAL_NewRingOffsetPtr (*(IUH* *)((IUH)Gdp + 3711)) +#define SET_GLOBAL_NewRingOffsetPtr(v) (GLOBAL_NewRingOffsetPtr = (v)) +#define GLOBAL_GLDC_NextCtxId (*(IUH *)((IUH)Gdp + 3715)) +#define SET_GLOBAL_GLDC_NextCtxId(v) (GLOBAL_GLDC_NextCtxId = (v)) +#define GLOBAL_GLDC_curCtxId (*(IUH *)((IUH)Gdp + 3719)) +#define SET_GLOBAL_GLDC_curCtxId(v) (GLOBAL_GLDC_curCtxId = (v)) +#define GLOBAL_GLDC_CxtIDs (*(IU8* *)((IUH)Gdp + 3723)) +#define SET_GLOBAL_GLDC_CxtIDs(v) (GLOBAL_GLDC_CxtIDs = (v)) +#define GLOBAL_GLDC_Index_High_Water (*(IUH *)((IUH)Gdp + 3727)) +#define SET_GLOBAL_GLDC_Index_High_Water(v) (GLOBAL_GLDC_Index_High_Water = (v)) +#define GLOBAL_GLDC_Context_High_Water (*(IUH *)((IUH)Gdp + 3731)) +#define SET_GLOBAL_GLDC_Context_High_Water(v) (GLOBAL_GLDC_Context_High_Water = (v)) +#define GLOBAL_GLDC_IndexPtr (*(struct GLDC_REC** *)((IUH)Gdp + 3735)) +#define SET_GLOBAL_GLDC_IndexPtr(v) (GLOBAL_GLDC_IndexPtr = (v)) +#define GLOBAL_GLDC_CrBase (*(IUH* *)((IUH)Gdp + 3739)) +#define SET_GLOBAL_GLDC_CrBase(v) (GLOBAL_GLDC_CrBase = (v)) +#define GLOBAL_GLDC_NULL_REC (*(struct GLDC_REC* *)((IUH)Gdp + 3743)) +#define SET_GLOBAL_GLDC_NULL_REC(v) (GLOBAL_GLDC_NULL_REC = (v)) +#define GLOBAL_GLDC_DUMMY_REC (*(struct GLDC_REC* *)((IUH)Gdp + 3747)) +#define SET_GLOBAL_GLDC_DUMMY_REC(v) (GLOBAL_GLDC_DUMMY_REC = (v)) +#define GLOBAL_hackyfix (*(IUH *)((IUH)Gdp + 3751)) +#define SET_GLOBAL_hackyfix(v) (GLOBAL_hackyfix = (v)) +#define GLOBAL_IDC_ArrayPtr (*(struct IDC_REC* *)((IUH)Gdp + 3755)) +#define SET_GLOBAL_IDC_ArrayPtr(v) (GLOBAL_IDC_ArrayPtr = (v)) +#define GLOBAL_IDC_BaseLimitCntxTable (*(struct IDC_BASE_LIMIT_CONTEXT* *)((IUH)Gdp + 3759)) +#define SET_GLOBAL_IDC_BaseLimitCntxTable(v) (GLOBAL_IDC_BaseLimitCntxTable = (v)) +#define GLOBAL_IDC_IdtSeqVal (*(IUH *)((IUH)Gdp + 3763)) +#define SET_GLOBAL_IDC_IdtSeqVal(v) (GLOBAL_IDC_IdtSeqVal = (v)) +#define GLOBAL_IDC_IdtHighWater (*(IUH *)((IUH)Gdp + 3767)) +#define SET_GLOBAL_IDC_IdtHighWater(v) (GLOBAL_IDC_IdtHighWater = (v)) +#define GLOBAL_IDC_IdtCntrlVal (*(IUH *)((IUH)Gdp + 3771)) +#define SET_GLOBAL_IDC_IdtCntrlVal(v) (GLOBAL_IDC_IdtCntrlVal = (v)) +#define GLOBAL_IDC_IdtCntrlValNoCheck (*(IUH *)((IUH)Gdp + 3775)) +#define SET_GLOBAL_IDC_IdtCntrlValNoCheck(v) (GLOBAL_IDC_IdtCntrlValNoCheck = (v)) +#define GLOBAL_IDC_IdtSeqMask (*(IUH *)((IUH)Gdp + 3779)) +#define SET_GLOBAL_IDC_IdtSeqMask(v) (GLOBAL_IDC_IdtSeqMask = (v)) +#define GLOBAL_PX_trace (((*(IBOOL *)((IUH)Gdp + 3783)) & 1) != 0) +#define SET_GLOBAL_PX_trace(v) ((*(IBOOL *)((IUH)Gdp + 3783)) = (v) ? 1: 0) +#define GLOBAL_PX_doing_contributory (((*(IBOOL *)((IUH)Gdp + 3787)) & 1) != 0) +#define SET_GLOBAL_PX_doing_contributory(v) ((*(IBOOL *)((IUH)Gdp + 3787)) = (v) ? 1: 0) +#define GLOBAL_PX_doing_page_fault (((*(IBOOL *)((IUH)Gdp + 3791)) & 1) != 0) +#define SET_GLOBAL_PX_doing_page_fault(v) ((*(IBOOL *)((IUH)Gdp + 3791)) = (v) ? 1: 0) +#define GLOBAL_PX_doing_double_fault (((*(IBOOL *)((IUH)Gdp + 3795)) & 1) != 0) +#define SET_GLOBAL_PX_doing_double_fault(v) ((*(IBOOL *)((IUH)Gdp + 3795)) = (v) ? 1: 0) +#define GLOBAL_PX_doing_fault (((*(IBOOL *)((IUH)Gdp + 3799)) & 1) != 0) +#define SET_GLOBAL_PX_doing_fault(v) ((*(IBOOL *)((IUH)Gdp + 3799)) = (v) ? 1: 0) +#define GLOBAL_PX_source (*(IUH *)((IUH)Gdp + 3803)) +#define SET_GLOBAL_PX_source(v) (GLOBAL_PX_source = (v)) +#define GLOBAL_RF_OnXcptnWanted (((*(IBOOL *)((IUH)Gdp + 3807)) & 1) != 0) +#define SET_GLOBAL_RF_OnXcptnWanted(v) ((*(IBOOL *)((IUH)Gdp + 3807)) = (v) ? 1: 0) +#define GLOBAL_PX_Cleaned_Eip (*(IU32 *)((IUH)Gdp + 3811)) +#define SET_GLOBAL_PX_Cleaned_Eip(v) (GLOBAL_PX_Cleaned_Eip = (v)) +#define GLOBAL_VDM_FaultHandler (*(IUH* *)((IUH)Gdp + 3815)) +#define SET_GLOBAL_VDM_FaultHandler(v) (GLOBAL_VDM_FaultHandler = (v)) +#define GLOBAL_IntrHasErrorCode (((*(IBOOL *)((IUH)Gdp + 3819)) & 1) != 0) +#define SET_GLOBAL_IntrHasErrorCode(v) ((*(IBOOL *)((IUH)Gdp + 3819)) = (v) ? 1: 0) +#define GLOBAL_IntrErrorCode (*(IU16 *)((IUH)Gdp + 3823)) +#define SET_GLOBAL_IntrErrorCode(v) (GLOBAL_IntrErrorCode = (v)) +#define GLOBAL_CInbTable (*(IUH** *)((IUH)Gdp + 3827)) +#define SET_GLOBAL_CInbTable(v) (GLOBAL_CInbTable = (v)) +#define GLOBAL_CInwTable (*(IUH** *)((IUH)Gdp + 3831)) +#define SET_GLOBAL_CInwTable(v) (GLOBAL_CInwTable = (v)) +#define GLOBAL_CIndTable (*(IUH** *)((IUH)Gdp + 3835)) +#define SET_GLOBAL_CIndTable(v) (GLOBAL_CIndTable = (v)) +#define GLOBAL_COutbTable (*(IUH** *)((IUH)Gdp + 3839)) +#define SET_GLOBAL_COutbTable(v) (GLOBAL_COutbTable = (v)) +#define GLOBAL_COutwTable (*(IUH** *)((IUH)Gdp + 3843)) +#define SET_GLOBAL_COutwTable(v) (GLOBAL_COutwTable = (v)) +#define GLOBAL_COutdTable (*(IUH** *)((IUH)Gdp + 3847)) +#define SET_GLOBAL_COutdTable(v) (GLOBAL_COutdTable = (v)) +#define GLOBAL_InAdapFromPort (*(IU8* *)((IUH)Gdp + 3851)) +#define SET_GLOBAL_InAdapFromPort(v) (GLOBAL_InAdapFromPort = (v)) +#define GLOBAL_OutAdapFromPort (*(IU8* *)((IUH)Gdp + 3855)) +#define SET_GLOBAL_OutAdapFromPort(v) (GLOBAL_OutAdapFromPort = (v)) +#define GLOBAL_InbFuncWrapper (*(IUH** *)((IUH)Gdp + 3859)) +#define SET_GLOBAL_InbFuncWrapper(v) (GLOBAL_InbFuncWrapper = (v)) +#define GLOBAL_InwFuncWrapper (*(IUH** *)((IUH)Gdp + 3863)) +#define SET_GLOBAL_InwFuncWrapper(v) (GLOBAL_InwFuncWrapper = (v)) +#define GLOBAL_IndFuncWrapper (*(IUH** *)((IUH)Gdp + 3867)) +#define SET_GLOBAL_IndFuncWrapper(v) (GLOBAL_IndFuncWrapper = (v)) +#define GLOBAL_OutbFuncWrapper (*(IUH** *)((IUH)Gdp + 3871)) +#define SET_GLOBAL_OutbFuncWrapper(v) (GLOBAL_OutbFuncWrapper = (v)) +#define GLOBAL_OutwFuncWrapper (*(IUH** *)((IUH)Gdp + 3875)) +#define SET_GLOBAL_OutwFuncWrapper(v) (GLOBAL_OutwFuncWrapper = (v)) +#define GLOBAL_OutdFuncWrapper (*(IUH** *)((IUH)Gdp + 3879)) +#define SET_GLOBAL_OutdFuncWrapper(v) (GLOBAL_OutdFuncWrapper = (v)) +#define GLOBAL_TempByteDest (*(IU8 *)((IUH)Gdp + 3883)) +#define SET_GLOBAL_TempByteDest(v) (GLOBAL_TempByteDest = (v)) +#define GLOBAL_TempWordDest (*(IU16 *)((IUH)Gdp + 3887)) +#define SET_GLOBAL_TempWordDest(v) (GLOBAL_TempWordDest = (v)) +#define GLOBAL_TempDoubleDest (*(IU32 *)((IUH)Gdp + 3891)) +#define SET_GLOBAL_TempDoubleDest(v) (GLOBAL_TempDoubleDest = (v)) +#define GLOBAL_MaxValidAdaptor (*(IUH *)((IUH)Gdp + 3895)) +#define SET_GLOBAL_MaxValidAdaptor(v) (GLOBAL_MaxValidAdaptor = (v)) +#define GLOBAL_IOSPortMask (*(IU16 *)((IUH)Gdp + 3899)) +#define SET_GLOBAL_IOSPortMask(v) (GLOBAL_IOSPortMask = (v)) +#define GLOBAL_nt_adaptor (*(IU8 *)((IUH)Gdp + 3903)) +#define SET_GLOBAL_nt_adaptor(v) (GLOBAL_nt_adaptor = (v)) +#define GLOBAL_EDL_WORKSPACE_250 (*(IUH *)((IUH)Gdp + 3907)) +#define SET_GLOBAL_EDL_WORKSPACE_250(v) (GLOBAL_EDL_WORKSPACE_250 = (v)) +#define GLOBAL_EDL_WORKSPACE_251 (*(IUH *)((IUH)Gdp + 3911)) +#define SET_GLOBAL_EDL_WORKSPACE_251(v) (GLOBAL_EDL_WORKSPACE_251 = (v)) +#define GLOBAL_EDL_WORKSPACE_252 (*(IUH *)((IUH)Gdp + 3915)) +#define SET_GLOBAL_EDL_WORKSPACE_252(v) (GLOBAL_EDL_WORKSPACE_252 = (v)) +#define GLOBAL_EDL_WORKSPACE_253 (*(IUH *)((IUH)Gdp + 3919)) +#define SET_GLOBAL_EDL_WORKSPACE_253(v) (GLOBAL_EDL_WORKSPACE_253 = (v)) +#define GLOBAL_EDL_WORKSPACE_254 (*(IUH *)((IUH)Gdp + 3923)) +#define SET_GLOBAL_EDL_WORKSPACE_254(v) (GLOBAL_EDL_WORKSPACE_254 = (v)) +#define GLOBAL_EDL_WORKSPACE_255 (*(IUH *)((IUH)Gdp + 3927)) +#define SET_GLOBAL_EDL_WORKSPACE_255(v) (GLOBAL_EDL_WORKSPACE_255 = (v)) +#define GLOBAL_EDL_WORKSPACE_256 (*(IUH *)((IUH)Gdp + 3931)) +#define SET_GLOBAL_EDL_WORKSPACE_256(v) (GLOBAL_EDL_WORKSPACE_256 = (v)) +#define GLOBAL_SegDescPtrLookupREC (*(struct DYNAMIC_DESC_PTR_LOOKUP *)((IUH)Gdp + 3935)) +#define SET_GLOBAL_SegDescPtrLookupREC(v) (GLOBAL_SegDescPtrLookupREC = (v)) +#define GLOBAL_SegBaseLookupREC (*(struct DYNAMIC_SEG_COOKIE_LOOKUP *)((IUH)Gdp + 3967)) +#define SET_GLOBAL_SegBaseLookupREC(v) (GLOBAL_SegBaseLookupREC = (v)) +#define GLOBAL_SegCookieLookupREC (*(struct DYNAMIC_SEG_COOKIE_LOOKUP *)((IUH)Gdp + 3999)) +#define SET_GLOBAL_SegCookieLookupREC(v) (GLOBAL_SegCookieLookupREC = (v)) +#define GLOBAL_ZeroValue (*(IU32 *)((IUH)Gdp + 4031)) +#define SET_GLOBAL_ZeroValue(v) (GLOBAL_ZeroValue = (v)) +#define GLOBAL_HSP (*(IU8* *)((IUH)Gdp + 4035)) +#define SET_GLOBAL_HSP(v) (GLOBAL_HSP = (v)) +#define GLOBAL_ESPsanctuary (*(IU32 *)((IUH)Gdp + 4039)) +#define SET_GLOBAL_ESPsanctuary(v) (GLOBAL_ESPsanctuary = (v)) +#define GLOBAL_exclPopLimit (*(IU8* *)((IUH)Gdp + 4043)) +#define SET_GLOBAL_exclPopLimit(v) (GLOBAL_exclPopLimit = (v)) +#define GLOBAL_inclPushLimit (*(IU8* *)((IUH)Gdp + 4047)) +#define SET_GLOBAL_inclPushLimit(v) (GLOBAL_inclPushLimit = (v)) +#define GLOBAL_notionalSsBase (*(IU8* *)((IUH)Gdp + 4051)) +#define SET_GLOBAL_notionalSsBase(v) (GLOBAL_notionalSsBase = (v)) +#define GLOBAL_notionalSsBase2 (*(IU8* *)((IUH)Gdp + 4055)) +#define SET_GLOBAL_notionalSsBase2(v) (GLOBAL_notionalSsBase2 = (v)) +#define GLOBAL_notionalSsBase4 (*(IU8* *)((IUH)Gdp + 4059)) +#define SET_GLOBAL_notionalSsBase4(v) (GLOBAL_notionalSsBase4 = (v)) +#define GLOBAL_stackIsWrappable (((*(IBOOL *)((IUH)Gdp + 4063)) & 1) != 0) +#define SET_GLOBAL_stackIsWrappable(v) ((*(IBOOL *)((IUH)Gdp + 4063)) = (v) ? 1: 0) +#define GLOBAL_stackIsBig (((*(IBOOL *)((IUH)Gdp + 4067)) & 1) != 0) +#define SET_GLOBAL_stackIsBig(v) ((*(IBOOL *)((IUH)Gdp + 4067)) = (v) ? 1: 0) +#define GLOBAL_stackIsExpandDown (((*(IBOOL *)((IUH)Gdp + 4071)) & 1) != 0) +#define SET_GLOBAL_stackIsExpandDown(v) ((*(IBOOL *)((IUH)Gdp + 4071)) = (v) ? 1: 0) +#define GLOBAL_stackMask (*(IU32 *)((IUH)Gdp + 4075)) +#define SET_GLOBAL_stackMask(v) (GLOBAL_stackMask = (v)) +#define GLOBAL_stackNeedsNormalising (((*(IBOOL *)((IUH)Gdp + 4079)) & 1) != 0) +#define SET_GLOBAL_stackNeedsNormalising(v) ((*(IBOOL *)((IUH)Gdp + 4079)) = (v) ? 1: 0) +#define GLOBAL_laInTopPage (*(IU32 *)((IUH)Gdp + 4083)) +#define SET_GLOBAL_laInTopPage(v) (GLOBAL_laInTopPage = (v)) +#define GLOBAL_laInBottomPage (*(IU32 *)((IUH)Gdp + 4087)) +#define SET_GLOBAL_laInBottomPage(v) (GLOBAL_laInBottomPage = (v)) +#define GLOBAL_hspOK (((*(IBOOL *)((IUH)Gdp + 4091)) & 1) != 0) +#define SET_GLOBAL_hspOK(v) ((*(IBOOL *)((IUH)Gdp + 4091)) = (v) ? 1: 0) +#define GLOBAL_pushScratch (*(IU8* *)((IUH)Gdp + 4095)) +#define SET_GLOBAL_pushScratch(v) (GLOBAL_pushScratch = (v)) +#define GLOBAL_pushScratchInUse (((*(IBOOL *)((IUH)Gdp + 4099)) & 1) != 0) +#define SET_GLOBAL_pushScratchInUse(v) ((*(IBOOL *)((IUH)Gdp + 4099)) = (v) ? 1: 0) +#define GLOBAL_pushScratchReqSize (*(IUH *)((IUH)Gdp + 4103)) +#define SET_GLOBAL_pushScratchReqSize(v) (GLOBAL_pushScratchReqSize = (v)) +#define GLOBAL_popScratch (*(IU8* *)((IUH)Gdp + 4107)) +#define SET_GLOBAL_popScratch(v) (GLOBAL_popScratch = (v)) +#define GLOBAL_popScratchInUse (((*(IBOOL *)((IUH)Gdp + 4111)) & 1) != 0) +#define SET_GLOBAL_popScratchInUse(v) ((*(IBOOL *)((IUH)Gdp + 4111)) = (v) ? 1: 0) +#define GLOBAL_SafeStackIronFrig (((*(IBOOL *)((IUH)Gdp + 4115)) & 1) != 0) +#define SET_GLOBAL_SafeStackIronFrig(v) ((*(IBOOL *)((IUH)Gdp + 4115)) = (v) ? 1: 0) +#define GLOBAL_SafeOutOfBoundsFrig (((*(IBOOL *)((IUH)Gdp + 4119)) & 1) != 0) +#define SET_GLOBAL_SafeOutOfBoundsFrig(v) ((*(IBOOL *)((IUH)Gdp + 4119)) = (v) ? 1: 0) +#define GLOBAL_HBP (*(IU8* *)((IUH)Gdp + 4123)) +#define SET_GLOBAL_HBP(v) (GLOBAL_HBP = (v)) +#define GLOBAL_newHSP (*(IU8* *)((IUH)Gdp + 4127)) +#define SET_GLOBAL_newHSP(v) (GLOBAL_newHSP = (v)) +#define GLOBAL_newExclPopLimit (*(IU8* *)((IUH)Gdp + 4131)) +#define SET_GLOBAL_newExclPopLimit(v) (GLOBAL_newExclPopLimit = (v)) +#define GLOBAL_newInclPushLimit (*(IU8* *)((IUH)Gdp + 4135)) +#define SET_GLOBAL_newInclPushLimit(v) (GLOBAL_newInclPushLimit = (v)) +#define GLOBAL_newNotionalSsBase (*(IU8* *)((IUH)Gdp + 4139)) +#define SET_GLOBAL_newNotionalSsBase(v) (GLOBAL_newNotionalSsBase = (v)) +#define GLOBAL_newStackIsWrappable (((*(IBOOL *)((IUH)Gdp + 4143)) & 1) != 0) +#define SET_GLOBAL_newStackIsWrappable(v) ((*(IBOOL *)((IUH)Gdp + 4143)) = (v) ? 1: 0) +#define GLOBAL_newStackIsBig (((*(IBOOL *)((IUH)Gdp + 4147)) & 1) != 0) +#define SET_GLOBAL_newStackIsBig(v) ((*(IBOOL *)((IUH)Gdp + 4147)) = (v) ? 1: 0) +#define GLOBAL_newStackIsExpandDown (((*(IBOOL *)((IUH)Gdp + 4151)) & 1) != 0) +#define SET_GLOBAL_newStackIsExpandDown(v) ((*(IBOOL *)((IUH)Gdp + 4151)) = (v) ? 1: 0) +#define GLOBAL_newStackMask (*(IU32 *)((IUH)Gdp + 4155)) +#define SET_GLOBAL_newStackMask(v) (GLOBAL_newStackMask = (v)) +#define GLOBAL_newLaInBottomPage (*(IU32 *)((IUH)Gdp + 4159)) +#define SET_GLOBAL_newLaInBottomPage(v) (GLOBAL_newLaInBottomPage = (v)) +#define GLOBAL_newHspOK (((*(IBOOL *)((IUH)Gdp + 4163)) & 1) != 0) +#define SET_GLOBAL_newHspOK(v) ((*(IBOOL *)((IUH)Gdp + 4163)) = (v) ? 1: 0) +#define GLOBAL_newPushScratch (*(IU8* *)((IUH)Gdp + 4167)) +#define SET_GLOBAL_newPushScratch(v) (GLOBAL_newPushScratch = (v)) +#define GLOBAL_newPushScratchInUse (((*(IBOOL *)((IUH)Gdp + 4171)) & 1) != 0) +#define SET_GLOBAL_newPushScratchInUse(v) ((*(IBOOL *)((IUH)Gdp + 4171)) = (v) ? 1: 0) +#define GLOBAL_newPushScratchReqSize (*(IUH *)((IUH)Gdp + 4175)) +#define SET_GLOBAL_newPushScratchReqSize(v) (GLOBAL_newPushScratchReqSize = (v)) +#define GLOBAL_newStackIsSupervisor (((*(IBOOL *)((IUH)Gdp + 4179)) & 1) != 0) +#define SET_GLOBAL_newStackIsSupervisor(v) ((*(IBOOL *)((IUH)Gdp + 4179)) = (v) ? 1: 0) +#define GLOBAL_SSTAT_PostDstOddBailOut (*(IUH *)((IUH)Gdp + 4183)) +#define SET_GLOBAL_SSTAT_PostDstOddBailOut(v) (GLOBAL_SSTAT_PostDstOddBailOut = (v)) +#define GLOBAL_SSTAT_PostDstBailOut (*(IUH *)((IUH)Gdp + 4187)) +#define SET_GLOBAL_SSTAT_PostDstBailOut(v) (GLOBAL_SSTAT_PostDstBailOut = (v)) +#define GLOBAL_SSTAT_JcProcBailOut (*(IUH *)((IUH)Gdp + 4191)) +#define SET_GLOBAL_SSTAT_JcProcBailOut(v) (GLOBAL_SSTAT_JcProcBailOut = (v)) +#define GLOBAL_SSTAT_CalcStackUniBailOut (*(IUH *)((IUH)Gdp + 4195)) +#define SET_GLOBAL_SSTAT_CalcStackUniBailOut(v) (GLOBAL_SSTAT_CalcStackUniBailOut = (v)) +#define GLOBAL_SSTAT_SetupHbpBailOut (*(IUH *)((IUH)Gdp + 4199)) +#define SET_GLOBAL_SSTAT_SetupHbpBailOut(v) (GLOBAL_SSTAT_SetupHbpBailOut = (v)) +#define GLOBAL_SSTAT_SetupHbpOddBailOut (*(IUH *)((IUH)Gdp + 4203)) +#define SET_GLOBAL_SSTAT_SetupHbpOddBailOut(v) (GLOBAL_SSTAT_SetupHbpOddBailOut = (v)) +#define GLOBAL_VDM_SoftIntHandler (*(IUH* *)((IUH)Gdp + 4207)) +#define SET_GLOBAL_VDM_SoftIntHandler(v) (GLOBAL_VDM_SoftIntHandler = (v)) +#define GLOBAL_EOIEnable (*(IU8* *)((IUH)Gdp + 4211)) +#define SET_GLOBAL_EOIEnable(v) (GLOBAL_EOIEnable = (v)) +#define GLOBAL_AddProfilePtr (*(IUH* *)((IUH)Gdp + 4215)) +#define SET_GLOBAL_AddProfilePtr(v) (GLOBAL_AddProfilePtr = (v)) +#define GLOBAL_MaxProfileData (*(IUH* *)((IUH)Gdp + 4219)) +#define SET_GLOBAL_MaxProfileData(v) (GLOBAL_MaxProfileData = (v)) +#define GLOBAL_FreeContextHead (*(struct ContextREC* *)((IUH)Gdp + 4223)) +#define SET_GLOBAL_FreeContextHead(v) (GLOBAL_FreeContextHead = (v)) +#define GLOBAL_ValidContextHead (*(struct ContextREC* *)((IUH)Gdp + 4227)) +#define SET_GLOBAL_ValidContextHead(v) (GLOBAL_ValidContextHead = (v)) +#define GLOBAL_CurrentContextPtr (*(struct ContextREC* *)((IUH)Gdp + 4231)) +#define SET_GLOBAL_CurrentContextPtr(v) (GLOBAL_CurrentContextPtr = (v)) +#define GLOBAL_CurrentContext (*(IU8 *)((IUH)Gdp + 4235)) +#define SET_GLOBAL_CurrentContext(v) (GLOBAL_CurrentContext = (v)) +#define GLOBAL_SeenGDTUse (((*(IBOOL *)((IUH)Gdp + 4239)) & 1) != 0) +#define SET_GLOBAL_SeenGDTUse(v) ((*(IBOOL *)((IUH)Gdp + 4239)) = (v) ? 1: 0) +#define GLOBAL_SeenLDTUse (((*(IBOOL *)((IUH)Gdp + 4243)) & 1) != 0) +#define SET_GLOBAL_SeenLDTUse(v) ((*(IBOOL *)((IUH)Gdp + 4243)) = (v) ? 1: 0) +#define GLOBAL_Context (*(struct ContextREC* *)((IUH)Gdp + 4247)) +#define SET_GLOBAL_Context(v) (GLOBAL_Context = (v)) +#define GLOBAL_diffLDTList (*(IU16* *)((IUH)Gdp + 4251)) +#define SET_GLOBAL_diffLDTList(v) (GLOBAL_diffLDTList = (v)) +#define GLOBAL_nextDiffLDT (*(IUH *)((IUH)Gdp + 4255)) +#define SET_GLOBAL_nextDiffLDT(v) (GLOBAL_nextDiffLDT = (v)) +#define GLOBAL_functions (*(IU32** *)((IUH)Gdp + 4259)) +#define SET_GLOBAL_functions(v) (GLOBAL_functions = (v)) +#define GLOBAL_selectedFunction (*(IU32* *)((IUH)Gdp + 4263)) +#define SET_GLOBAL_selectedFunction(v) (GLOBAL_selectedFunction = (v)) +#define GLOBAL_instrCountdown (*(ISH *)((IUH)Gdp + 4267)) +#define SET_GLOBAL_instrCountdown(v) (GLOBAL_instrCountdown = (v)) +#define GLOBAL_blockRecords (*(struct BLOCK_RECORD* *)((IUH)Gdp + 4271)) +#define SET_GLOBAL_blockRecords(v) (GLOBAL_blockRecords = (v)) +#define GLOBAL_patchRecords (*(struct PatchREC* *)((IUH)Gdp + 4275)) +#define SET_GLOBAL_patchRecords(v) (GLOBAL_patchRecords = (v)) +#define GLOBAL_nanoCompParameter (*(IUH *)((IUH)Gdp + 4279)) +#define SET_GLOBAL_nanoCompParameter(v) (GLOBAL_nanoCompParameter = (v)) +#define GLOBAL_intelCopyPtrComp (*(IU8* *)((IUH)Gdp + 4283)) +#define SET_GLOBAL_intelCopyPtrComp(v) (GLOBAL_intelCopyPtrComp = (v)) +#define GLOBAL_nrOfBlocksToCompile (*(IUH *)((IUH)Gdp + 4287)) +#define SET_GLOBAL_nrOfBlocksToCompile(v) (GLOBAL_nrOfBlocksToCompile = (v)) +#define GLOBAL_entryPointHashTable (*(IU16* *)((IUH)Gdp + 4291)) +#define SET_GLOBAL_entryPointHashTable(v) (GLOBAL_entryPointHashTable = (v)) +#define GLOBAL_nextFreeEntryPointRec (*(struct EntryPointREC* *)((IUH)Gdp + 4295)) +#define SET_GLOBAL_nextFreeEntryPointRec(v) (GLOBAL_nextFreeEntryPointRec = (v)) +#define GLOBAL_firstEntryPointPtr (*(struct EntryPointREC* *)((IUH)Gdp + 4299)) +#define SET_GLOBAL_firstEntryPointPtr(v) (GLOBAL_firstEntryPointPtr = (v)) +#define GLOBAL_blockPtr (*(struct BLOCK_RECORD* *)((IUH)Gdp + 4303)) +#define SET_GLOBAL_blockPtr(v) (GLOBAL_blockPtr = (v)) +#define GLOBAL_headAndTailBlockPtr (*(struct BLOCK_RECORD* *)((IUH)Gdp + 4307)) +#define SET_GLOBAL_headAndTailBlockPtr(v) (GLOBAL_headAndTailBlockPtr = (v)) +#define GLOBAL_nrOfInstrsParsed (*(IUH *)((IUH)Gdp + 4311)) +#define SET_GLOBAL_nrOfInstrsParsed(v) (GLOBAL_nrOfInstrsParsed = (v)) +#define GLOBAL_intelPtrLimit (*(IU8* *)((IUH)Gdp + 4315)) +#define SET_GLOBAL_intelPtrLimit(v) (GLOBAL_intelPtrLimit = (v)) +#define GLOBAL_blockStartIntelPtr (*(IU8* *)((IUH)Gdp + 4319)) +#define SET_GLOBAL_blockStartIntelPtr(v) (GLOBAL_blockStartIntelPtr = (v)) +#define GLOBAL_blockStartCodeOffset (*(IUH *)((IUH)Gdp + 4323)) +#define SET_GLOBAL_blockStartCodeOffset(v) (GLOBAL_blockStartCodeOffset = (v)) +#define GLOBAL_finalCodeOffset (*(IUH *)((IUH)Gdp + 4327)) +#define SET_GLOBAL_finalCodeOffset(v) (GLOBAL_finalCodeOffset = (v)) +#define GLOBAL_ni_BlockPtr (*(struct NI_BLOCK_RECORD* *)((IUH)Gdp + 4331)) +#define SET_GLOBAL_ni_BlockPtr(v) (GLOBAL_ni_BlockPtr = (v)) +#define GLOBAL_nanoOp3 (*(IUH *)((IUH)Gdp + 4335)) +#define SET_GLOBAL_nanoOp3(v) (GLOBAL_nanoOp3 = (v)) +#define GLOBAL_sibByte (*(IUH *)((IUH)Gdp + 4339)) +#define SET_GLOBAL_sibByte(v) (GLOBAL_sibByte = (v)) +#define GLOBAL_dynamicOffset (*(IU32 *)((IUH)Gdp + 4343)) +#define SET_GLOBAL_dynamicOffset(v) (GLOBAL_dynamicOffset = (v)) +#define GLOBAL_eaSegCode (*(IUH *)((IUH)Gdp + 4347)) +#define SET_GLOBAL_eaSegCode(v) (GLOBAL_eaSegCode = (v)) +#define GLOBAL_simpleAccess (((*(IBOOL *)((IUH)Gdp + 4351)) & 1) != 0) +#define SET_GLOBAL_simpleAccess(v) ((*(IBOOL *)((IUH)Gdp + 4351)) = (v) ? 1: 0) +#define GLOBAL_simpleAccessPtr (*(IU8* *)((IUH)Gdp + 4355)) +#define SET_GLOBAL_simpleAccessPtr(v) (GLOBAL_simpleAccessPtr = (v)) +#define GLOBAL_instrStartIntelPtr (*(IU8* *)((IUH)Gdp + 4359)) +#define SET_GLOBAL_instrStartIntelPtr(v) (GLOBAL_instrStartIntelPtr = (v)) +#define GLOBAL_npxIntelPtr (*(IU8* *)((IUH)Gdp + 4363)) +#define SET_GLOBAL_npxIntelPtr(v) (GLOBAL_npxIntelPtr = (v)) +#define GLOBAL_topLevel (*(IUH* *)((IUH)Gdp + 4367)) +#define SET_GLOBAL_topLevel(v) (GLOBAL_topLevel = (v)) +#define GLOBAL_defaultPrimaryActions (*(IU32** *)((IUH)Gdp + 4371)) +#define SET_GLOBAL_defaultPrimaryActions(v) (GLOBAL_defaultPrimaryActions = (v)) +#define GLOBAL_actualPrimaryActions (*(IU32** *)((IUH)Gdp + 4375)) +#define SET_GLOBAL_actualPrimaryActions(v) (GLOBAL_actualPrimaryActions = (v)) +#define GLOBAL_codeOffset (*(IUH *)((IUH)Gdp + 4379)) +#define SET_GLOBAL_codeOffset(v) (GLOBAL_codeOffset = (v)) +#define GLOBAL_destCodeSegment (*(IUH *)((IUH)Gdp + 4383)) +#define SET_GLOBAL_destCodeSegment(v) (GLOBAL_destCodeSegment = (v)) +#define GLOBAL_destCodeOffset (*(IUH *)((IUH)Gdp + 4387)) +#define SET_GLOBAL_destCodeOffset(v) (GLOBAL_destCodeOffset = (v)) +#define GLOBAL_nanoEax (*(IU32 *)((IUH)Gdp + 4391)) +#define SET_GLOBAL_nanoEax(v) (GLOBAL_nanoEax = (v)) +#define GLOBAL_nanoEcx (*(IU32 *)((IUH)Gdp + 4395)) +#define SET_GLOBAL_nanoEcx(v) (GLOBAL_nanoEcx = (v)) +#define GLOBAL_nanoEdx (*(IU32 *)((IUH)Gdp + 4399)) +#define SET_GLOBAL_nanoEdx(v) (GLOBAL_nanoEdx = (v)) +#define GLOBAL_nanoEbx (*(IU32 *)((IUH)Gdp + 4403)) +#define SET_GLOBAL_nanoEbx(v) (GLOBAL_nanoEbx = (v)) +#define GLOBAL_nanoEsp (*(IU32 *)((IUH)Gdp + 4407)) +#define SET_GLOBAL_nanoEsp(v) (GLOBAL_nanoEsp = (v)) +#define GLOBAL_nanoEbp (*(IU32 *)((IUH)Gdp + 4411)) +#define SET_GLOBAL_nanoEbp(v) (GLOBAL_nanoEbp = (v)) +#define GLOBAL_nanoEsi (*(IU32 *)((IUH)Gdp + 4415)) +#define SET_GLOBAL_nanoEsi(v) (GLOBAL_nanoEsi = (v)) +#define GLOBAL_nanoEdi (*(IU32 *)((IUH)Gdp + 4419)) +#define SET_GLOBAL_nanoEdi(v) (GLOBAL_nanoEdi = (v)) +#define GLOBAL_espToRestore (*(IU32 *)((IUH)Gdp + 4423)) +#define SET_GLOBAL_espToRestore(v) (GLOBAL_espToRestore = (v)) +#define GLOBAL_entryExitCount (*(IU32 *)((IUH)Gdp + 4427)) +#define SET_GLOBAL_entryExitCount(v) (GLOBAL_entryExitCount = (v)) +#define GLOBAL_instructionCount (*(IU32 *)((IUH)Gdp + 4431)) +#define SET_GLOBAL_instructionCount(v) (GLOBAL_instructionCount = (v)) +#define GLOBAL_nanoDebugControl (*(IU32 *)((IUH)Gdp + 4435)) +#define SET_GLOBAL_nanoDebugControl(v) (GLOBAL_nanoDebugControl = (v)) +#define GLOBAL_compilationThreshold (*(IU32 *)((IUH)Gdp + 4439)) +#define SET_GLOBAL_compilationThreshold(v) (GLOBAL_compilationThreshold = (v)) +#define GLOBAL_maxBlocksToCompile (*(IUH *)((IUH)Gdp + 4443)) +#define SET_GLOBAL_maxBlocksToCompile(v) (GLOBAL_maxBlocksToCompile = (v)) +#define GLOBAL_blocksToCompile (*(struct BLOCK_TO_COMPILE* *)((IUH)Gdp + 4447)) +#define SET_GLOBAL_blocksToCompile(v) (GLOBAL_blocksToCompile = (v)) +#define GLOBAL_byteMemory (*(IU8* *)((IUH)Gdp + 4451)) +#define SET_GLOBAL_byteMemory(v) (GLOBAL_byteMemory = (v)) +#define GLOBAL_wordMemory (*(IU16* *)((IUH)Gdp + 4455)) +#define SET_GLOBAL_wordMemory(v) (GLOBAL_wordMemory = (v)) +#define GLOBAL_longMemory (*(IU32* *)((IUH)Gdp + 4459)) +#define SET_GLOBAL_longMemory(v) (GLOBAL_longMemory = (v)) +#define GLOBAL_ni_BlockRecords (*(struct NI_BLOCK_RECORD* *)((IUH)Gdp + 4463)) +#define SET_GLOBAL_ni_BlockRecords(v) (GLOBAL_ni_BlockRecords = (v)) +#define GLOBAL_intelCopyMemoryExec (*(IU8* *)((IUH)Gdp + 4467)) +#define SET_GLOBAL_intelCopyMemoryExec(v) (GLOBAL_intelCopyMemoryExec = (v)) +#define GLOBAL_intelCopyMemoryComp (*(IU8* *)((IUH)Gdp + 4471)) +#define SET_GLOBAL_intelCopyMemoryComp(v) (GLOBAL_intelCopyMemoryComp = (v)) +#define GLOBAL_intelCopyMemoryCompEnd (*(IU8* *)((IUH)Gdp + 4475)) +#define SET_GLOBAL_intelCopyMemoryCompEnd(v) (GLOBAL_intelCopyMemoryCompEnd = (v)) +#define GLOBAL_PpcCR4Save (*(IUH *)((IUH)Gdp + 4479)) +#define SET_GLOBAL_PpcCR4Save(v) (GLOBAL_PpcCR4Save = (v)) +#define GLOBAL_SfDelayFlagPtr (*(struct SfDelayRecord* *)((IUH)Gdp + 4483)) +#define SET_GLOBAL_SfDelayFlagPtr(v) (GLOBAL_SfDelayFlagPtr = (v)) +#define GLOBAL_SfDelayFlagLim (*(IUH *)((IUH)Gdp + 4487)) +#define SET_GLOBAL_SfDelayFlagLim(v) (GLOBAL_SfDelayFlagLim = (v)) +#define GLOBAL_SfDecrementerVal (*(IUH *)((IUH)Gdp + 4491)) +#define SET_GLOBAL_SfDecrementerVal(v) (GLOBAL_SfDecrementerVal = (v)) +#define GLOBAL_SFPciPageCount (*(IU32 *)((IUH)Gdp + 4495)) +#define SET_GLOBAL_SFPciPageCount(v) (GLOBAL_SFPciPageCount = (v)) +#define GLOBAL_SfProcessorType (*(IUH *)((IUH)Gdp + 4499)) +#define SET_GLOBAL_SfProcessorType(v) (GLOBAL_SfProcessorType = (v)) +#define GLOBAL_SfQEventPending (((*(IBOOL *)((IUH)Gdp + 4503)) & 1) != 0) +#define SET_GLOBAL_SfQEventPending(v) ((*(IBOOL *)((IUH)Gdp + 4503)) = (v) ? 1: 0) +#define GLOBAL_AllowUncheckedMode (((*(IBOOL *)((IUH)Gdp + 4507)) & 1) != 0) +#define SET_GLOBAL_AllowUncheckedMode(v) ((*(IBOOL *)((IUH)Gdp + 4507)) = (v) ? 1: 0) +#define GLOBAL_AllowAnyUnchecked (((*(IBOOL *)((IUH)Gdp + 4511)) & 1) != 0) +#define SET_GLOBAL_AllowAnyUnchecked(v) ((*(IBOOL *)((IUH)Gdp + 4511)) = (v) ? 1: 0) +#define GLOBAL_LastProtected (*(IUH *)((IUH)Gdp + 4515)) +#define SET_GLOBAL_LastProtected(v) (GLOBAL_LastProtected = (v)) +#define GLOBAL_EmulationSR (*(IUH *)((IUH)Gdp + 4519)) +#define SET_GLOBAL_EmulationSR(v) (GLOBAL_EmulationSR = (v)) +#define GLOBAL_CurrentCheckLevel (*(IUH *)((IUH)Gdp + 4523)) +#define SET_GLOBAL_CurrentCheckLevel(v) (GLOBAL_CurrentCheckLevel = (v)) +#define GLOBAL_UnProtSegmentValue (*(IUH *)((IUH)Gdp + 4527)) +#define SET_GLOBAL_UnProtSegmentValue(v) (GLOBAL_UnProtSegmentValue = (v)) +#define GLOBAL_SavedSegmentValue (*(IUH *)((IUH)Gdp + 4531)) +#define SET_GLOBAL_SavedSegmentValue(v) (GLOBAL_SavedSegmentValue = (v)) +#define GLOBAL_SavedBATIValue (*(IUH *)((IUH)Gdp + 4535)) +#define SET_GLOBAL_SavedBATIValue(v) (GLOBAL_SavedBATIValue = (v)) +#define GLOBAL_SavedBATDValue (*(IUH *)((IUH)Gdp + 4539)) +#define SET_GLOBAL_SavedBATDValue(v) (GLOBAL_SavedBATDValue = (v)) +#define GLOBAL_LogicalBaseAddrForIO (*(IU8* *)((IUH)Gdp + 4543)) +#define SET_GLOBAL_LogicalBaseAddrForIO(v) (GLOBAL_LogicalBaseAddrForIO = (v)) +#define GLOBAL_WriteToOutputPort (((*(IBOOL *)((IUH)Gdp + 4547)) & 1) != 0) +#define SET_GLOBAL_WriteToOutputPort(v) ((*(IBOOL *)((IUH)Gdp + 4547)) = (v) ? 1: 0) +#define GLOBAL_GateA20Status (*(IU8 *)((IUH)Gdp + 4551)) +#define SET_GLOBAL_GateA20Status(v) (GLOBAL_GateA20Status = (v)) +#define GLOBAL_MmuInVideoUniverse (*(IUH *)((IUH)Gdp + 4555)) +#define SET_GLOBAL_MmuInVideoUniverse(v) (GLOBAL_MmuInVideoUniverse = (v)) +#define GLOBAL_MmuWpBit (*(IUH *)((IUH)Gdp + 4559)) +#define SET_GLOBAL_MmuWpBit(v) (GLOBAL_MmuWpBit = (v)) +#define GLOBAL_MmuUsBit (*(IUH *)((IUH)Gdp + 4563)) +#define SET_GLOBAL_MmuUsBit(v) (GLOBAL_MmuUsBit = (v)) +#define GLOBAL_SfSkipVideoWriteSync (((*(IBOOL *)((IUH)Gdp + 4567)) & 1) != 0) +#define SET_GLOBAL_SfSkipVideoWriteSync(v) ((*(IBOOL *)((IUH)Gdp + 4567)) = (v) ? 1: 0) +#define GLOBAL_SfSkipVideoReadSync (((*(IBOOL *)((IUH)Gdp + 4571)) & 1) != 0) +#define SET_GLOBAL_SfSkipVideoReadSync(v) ((*(IBOOL *)((IUH)Gdp + 4571)) = (v) ? 1: 0) +#define GLOBAL_forceVideoState (((*(IBOOL *)((IUH)Gdp + 4575)) & 1) != 0) +#define SET_GLOBAL_forceVideoState(v) ((*(IBOOL *)((IUH)Gdp + 4575)) = (v) ? 1: 0) +#define GLOBAL_EDL_WORKSPACE_257 (*(IUH *)((IUH)Gdp + 4579)) +#define SET_GLOBAL_EDL_WORKSPACE_257(v) (GLOBAL_EDL_WORKSPACE_257 = (v)) +#define GLOBAL_EDL_WORKSPACE_258 (*(IUH *)((IUH)Gdp + 4583)) +#define SET_GLOBAL_EDL_WORKSPACE_258(v) (GLOBAL_EDL_WORKSPACE_258 = (v)) +#define GLOBAL_EDL_WORKSPACE_259 (*(IUH *)((IUH)Gdp + 4587)) +#define SET_GLOBAL_EDL_WORKSPACE_259(v) (GLOBAL_EDL_WORKSPACE_259 = (v)) +#define GLOBAL_EDL_WORKSPACE_260 (*(IUH *)((IUH)Gdp + 4591)) +#define SET_GLOBAL_EDL_WORKSPACE_260(v) (GLOBAL_EDL_WORKSPACE_260 = (v)) +#define GLOBAL_EDL_WORKSPACE_261 (*(IUH *)((IUH)Gdp + 4595)) +#define SET_GLOBAL_EDL_WORKSPACE_261(v) (GLOBAL_EDL_WORKSPACE_261 = (v)) +#define GLOBAL_EDL_WORKSPACE_262 (*(IUH *)((IUH)Gdp + 4599)) +#define SET_GLOBAL_EDL_WORKSPACE_262(v) (GLOBAL_EDL_WORKSPACE_262 = (v)) +#define GLOBAL_EDL_WORKSPACE_263 (*(IUH *)((IUH)Gdp + 4603)) +#define SET_GLOBAL_EDL_WORKSPACE_263(v) (GLOBAL_EDL_WORKSPACE_263 = (v)) +#define GLOBAL_ProtectedSet (*(struct SfRegisterSetREC *)((IUH)Gdp + 4607)) +#define SET_GLOBAL_ProtectedSet(v) (GLOBAL_ProtectedSet = (v)) +#define GLOBAL_CurrentFullRegSet (*(IUH *)((IUH)Gdp + 4671)) +#define SET_GLOBAL_CurrentFullRegSet(v) (GLOBAL_CurrentFullRegSet = (v)) +#define GLOBAL_AltRegZeros (*(struct SfRegZeroAlternateREC* *)((IUH)Gdp + 4675)) +#define SET_GLOBAL_AltRegZeros(v) (GLOBAL_AltRegZeros = (v)) +#define GLOBAL_FullSets (*(struct SfFullRegSetREC* *)((IUH)Gdp + 4679)) +#define SET_GLOBAL_FullSets(v) (GLOBAL_FullSets = (v)) +#define GLOBAL_RegSetNextFree (*(struct SfFullRegSetREC* *)((IUH)Gdp + 4683)) +#define SET_GLOBAL_RegSetNextFree(v) (GLOBAL_RegSetNextFree = (v)) +#define GLOBAL_ValidRegSetHeadPtr (*(struct SfFullRegSetREC* *)((IUH)Gdp + 4687)) +#define SET_GLOBAL_ValidRegSetHeadPtr(v) (GLOBAL_ValidRegSetHeadPtr = (v)) +#define GLOBAL_AltRegZeroNextFree (*(struct SfRegZeroAlternateREC* *)((IUH)Gdp + 4691)) +#define SET_GLOBAL_AltRegZeroNextFree(v) (GLOBAL_AltRegZeroNextFree = (v)) +#define GLOBAL_SfPciBaseAddressRegCount (*(IUH *)((IUH)Gdp + 4695)) +#define SET_GLOBAL_SfPciBaseAddressRegCount(v) (GLOBAL_SfPciBaseAddressRegCount = (v)) +#define GLOBAL_SfPciBaseAddressRegRecs (*(struct SfPciBaseAddressRegREC* *)((IUH)Gdp + 4699)) +#define SET_GLOBAL_SfPciBaseAddressRegRecs(v) (GLOBAL_SfPciBaseAddressRegRecs = (v)) +#define GLOBAL_SfPciMemoryWindowBase (*(IUH *)((IUH)Gdp + 4703)) +#define SET_GLOBAL_SfPciMemoryWindowBase(v) (GLOBAL_SfPciMemoryWindowBase = (v)) +#define GLOBAL_tmpESP (*(IUH *)((IUH)Gdp + 4707)) +#define SET_GLOBAL_tmpESP(v) (GLOBAL_tmpESP = (v)) +#define GLOBAL_EaOffs (*(IU32 *)((IUH)Gdp + 4711)) +#define SET_GLOBAL_EaOffs(v) (GLOBAL_EaOffs = (v)) +#define GLOBAL_BusinessResult (*(IUH *)((IUH)Gdp + 4715)) +#define SET_GLOBAL_BusinessResult(v) (GLOBAL_BusinessResult = (v)) +#define GLOBAL_TraceVector ((IU8 *)((IUH)Gdp + 4719)) +#define GLOBAL_TraceVectorSize (40000) +#define GDP_OFFSET 1 +#define GDP_SIZE 44719 +#define GDP_CHECKSUM 32240743 +extern IHP Gdp; +#endif /* _gdpvar_h */ + +/* A total of 1053 T_GLOBALs */ diff --git a/private/mvdm/softpc.new/base/ccpu386/idiv.c b/private/mvdm/softpc.new/base/ccpu386/idiv.c new file mode 100644 index 000000000..1bbd34be8 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/idiv.c @@ -0,0 +1,171 @@ +/*[ + +idiv.c + +LOCAL CHAR SccsID[]="@(#)idiv.c 1.7 08/01/94"; + +IDIV CPU functions. +------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Signed Divide. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +IDIV8 + +IFN1( + IU32, op2 /* divisor operand */ + ) + + + { + IS32 sresult; + IS32 sop1; + IS32 sop2; + + if ( op2 == 0 ) + Int0(); /* Divide by Zero Exception */ + + sop2 = (IS32)op2; + sop1 = (IS32)GET_AX(); + + if ( sop1 & BIT15_MASK ) /* Sign extend operands to 32 bits */ + sop1 |= ~WORD_MASK; + if ( sop2 & BIT7_MASK ) + sop2 |= ~BYTE_MASK; + + sresult = sop1 / sop2; /* Do operation */ + + if ( (sresult & 0xff80) == 0 || (sresult & 0xff80) == 0xff80 ) + ; /* it fits */ + else + Int0(); /* Result doesn't fit in destination */ + + SET_AL(sresult); /* Store Quotient */ + SET_AH(sop1 % sop2); /* Store Remainder */ + + /* Set all undefined flag(s) */ +#ifdef SET_UNDEFINED_DIV_FLAG + SET_CF(UNDEFINED_FLAG); + SET_OF(UNDEFINED_FLAG); + SET_SF(UNDEFINED_FLAG); + SET_ZF(UNDEFINED_FLAG); + SET_PF(UNDEFINED_FLAG); + SET_AF(UNDEFINED_FLAG); +#endif + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Signed Divide. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +IDIV16 + +IFN1( + IU32, op2 /* divisor operand */ + ) + + + { + IS32 sresult; + IS32 sop1; + IS32 sop2; + + if ( op2 == 0 ) + Int0(); /* Divide by Zero Exception */ + + sop2 = (IS32)op2; + sop1 = (IU32)GET_DX() << 16 | GET_AX(); + + if ( sop2 & BIT15_MASK ) /* Sign extend operands to 32 bits */ + sop2 |= ~WORD_MASK; + + sresult = sop1 / sop2; /* Do operation */ + + if ( (sresult & 0xffff8000) == 0 || (sresult & 0xffff8000) == 0xffff8000 ) + ; /* it fits */ + else + Int0(); /* Result doesn't fit in destination */ + + SET_AX(sresult); /* Store Quotient */ + SET_DX(sop1 % sop2); /* Store Remainder */ + + /* Set all undefined flag(s) */ +#ifdef SET_UNDEFINED_DIV_FLAG + SET_CF(UNDEFINED_FLAG); + SET_OF(UNDEFINED_FLAG); + SET_SF(UNDEFINED_FLAG); + SET_ZF(UNDEFINED_FLAG); + SET_PF(UNDEFINED_FLAG); + SET_AF(UNDEFINED_FLAG); +#endif + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Signed Divide. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +IDIV32 + +IFN1( + IU32, op2 /* divisor operand */ + ) + + + { + IS32 slr; /* low result */ + IS32 shr; /* high result */ + IS32 srem; /* remainder */ + + if ( op2 == 0 ) + Int0(); /* Divide by Zero Exception */ + + shr = GET_EDX(); + slr = GET_EAX(); + div64(&shr, &slr, (IS32)op2, &srem); + + if ( ((shr == 0x00000000) && ((slr & BIT31_MASK) == 0)) || + ((shr == 0xffffffff) && ((slr & BIT31_MASK) != 0)) ) + ; /* it fits */ + else + Int0(); /* Result doesn't fit in destination */ + + SET_EAX(slr); /* Store Quotient */ + SET_EDX(srem); /* Store Remainder */ + + /* Set all undefined flag(s) */ +#ifdef SET_UNDEFINED_DIV_FLAG + SET_CF(UNDEFINED_FLAG); + SET_OF(UNDEFINED_FLAG); + SET_SF(UNDEFINED_FLAG); + SET_ZF(UNDEFINED_FLAG); + SET_PF(UNDEFINED_FLAG); + SET_AF(UNDEFINED_FLAG); +#endif + } diff --git a/private/mvdm/softpc.new/base/ccpu386/idiv.h b/private/mvdm/softpc.new/base/ccpu386/idiv.h new file mode 100644 index 000000000..fe4f2ee3e --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/idiv.h @@ -0,0 +1,30 @@ +/* + idiv.h + + Define all IDIV CPU functions. + */ + +/* + static char SccsID[]="@(#)idiv.h 1.4 02/09/94"; + */ + +IMPORT VOID IDIV8 + +IPT1( + IU32, op2 + + ); + +IMPORT VOID IDIV16 + +IPT1( + IU32, op2 + + ); + +IMPORT VOID IDIV32 + +IPT1( + IU32, op2 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/imul.c b/private/mvdm/softpc.new/base/ccpu386/imul.c new file mode 100644 index 000000000..c72d4ffbb --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/imul.c @@ -0,0 +1,243 @@ +/*[ + +imul.c + +LOCAL CHAR SccsID[]="@(#)imul.c 1.8 11/09/94"; + +IMUL CPU functions. +------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Signed multiply. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +IMUL8 + +IFN2( + IU32 *, pop1, /* pntr to dst(low half)/lsrc operand */ + IU32, op2 /* rsrc operand */ + ) + + + { + IU32 result; + + /* Sign extend operands to 32-bits (ie Host Size) */ + if ( *pop1 & BIT7_MASK ) + *pop1 |= ~BYTE_MASK; + if ( op2 & BIT7_MASK ) + op2 |= ~BYTE_MASK; + + result = *pop1 * op2; /* Do operation */ + SET_AH(result >> 8 & BYTE_MASK); /* Store top half of result */ + + /* Set CF/OF. */ + if ( (result & 0xff80) == 0 || (result & 0xff80) == 0xff80 ) + { + SET_CF(0); SET_OF(0); + } + else + { + SET_CF(1); SET_OF(1); + } + +#ifdef SET_UNDEFINED_MUL_FLAG + /* Do NOT Set all undefined flag. + * Microsoft VGA Mouse relies on preserved flags + */ +#endif + *pop1 = result; /* Return low half of result */ + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Signed multiply. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +IMUL16 + +IFN2( + IU32 *, pop1, /* pntr to dst(low half)/lsrc operand */ + IU32, op2 /* rsrc operand */ + ) + + + { + IU32 result; + + /* Sign extend operands to 32-bits (ie Host Size) */ + if ( *pop1 & BIT15_MASK ) + *pop1 |= ~WORD_MASK; + if ( op2 & BIT15_MASK ) + op2 |= ~WORD_MASK; + + result = *pop1 * op2; /* Do operation */ + SET_DX(result >> 16 & WORD_MASK); /* Store top half of result */ + + /* Set CF/OF. */ + if ( (result & 0xffff8000) == 0 || (result & 0xffff8000) == 0xffff8000 ) + { + SET_CF(0); SET_OF(0); + } + else + { + SET_CF(1); SET_OF(1); + } + +#ifdef SET_UNDEFINED_MUL_FLAG + /* Do NOT Set all undefined flag. + * Microsoft VGA Mouse relies on preserved flags + */ +#endif + *pop1 = result; /* Return low half of result */ + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Signed multiply, 16bit = 16bit x 16bit. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +IMUL16T + +IFN3( + IU32 *, pop1, /* pntr to dst operand */ + IU32, op2, /* lsrc operand */ + IU32, op3 /* rsrc operand */ + ) + + + { + IU32 result; + + /* Sign extend operands to 32-bits (ie Host Size) */ + if ( op2 & BIT15_MASK ) + op2 |= ~WORD_MASK; + if ( op3 & BIT15_MASK ) + op3 |= ~WORD_MASK; + + result = op2 * op3; /* Do operation */ + + /* Set CF/OF. */ + if ( (result & 0xffff8000) == 0 || (result & 0xffff8000) == 0xffff8000 ) + { + SET_CF(0); SET_OF(0); + } + else + { + SET_CF(1); SET_OF(1); + } + +#ifdef SET_UNDEFINED_MUL_FLAG + /* Do NOT Set all undefined flag. + * Microsoft VGA Mouse relies on preserved flags + */ +#endif + *pop1 = result; /* Return low half of result */ + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Signed multiply. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +IMUL32 + +IFN2( + IU32 *, pop1, /* pntr to dst(low half)/lsrc operand */ + IU32, op2 /* rsrc operand */ + ) + + + { + IS32 result; + IS32 top; + IBOOL is_signed = FALSE; + + mul64(&top, &result, (IS32)*pop1, (IS32)op2); /* Do operation */ + SET_EDX(top); /* Store top half of result */ + + if ( result & BIT31_MASK ) + is_signed = TRUE; + + /* Set CF/OF. */ + if ( top == 0 && !is_signed || top == 0xffffffff && is_signed ) + { + SET_CF(0); SET_OF(0); + } + else + { + SET_CF(1); SET_OF(1); + } + +#ifdef SET_UNDEFINED_MUL_FLAG + /* Do NOT Set all undefined flag. + * Microsoft VGA Mouse relies on preserved flags + */ +#endif + *pop1 = result; /* Return low half of result */ + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Signed multiply, 32bit = 32bit x 32bit. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +IMUL32T + +IFN3( + IU32 *, pop1, /* pntr to dst operand */ + IU32, op2, /* lsrc operand */ + IU32, op3 /* rsrc operand */ + ) + + + { + IS32 result; + IS32 top; + IBOOL is_signed = FALSE; + + mul64(&top, &result, (IS32)op2, (IS32)op3); /* Do operation */ + + if ( result & BIT31_MASK ) + is_signed = TRUE; + + /* Set CF/OF. */ + if ( top == 0 && !is_signed || top == 0xffffffff && is_signed ) + { + SET_CF(0); SET_OF(0); + } + else + { + SET_CF(1); SET_OF(1); + } + +#ifdef SET_UNDEFINED_MUL_FLAG + /* Do NOT Set all undefined flag. + * Microsoft VGA Mouse relies on preserved flags + */ +#endif + + *pop1 = result; /* Return low half of result */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/imul.h b/private/mvdm/softpc.new/base/ccpu386/imul.h new file mode 100644 index 000000000..1dc5d89c9 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/imul.h @@ -0,0 +1,51 @@ +/* + imul.h + + Define all IMUL CPU functions. + */ + +/* + static char SccsID[]="@(#)imul.h 1.4 02/09/94"; + */ + +IMPORT VOID IMUL8 + +IPT2( + IU32 *, pop1, + IU32, op2 + + ); + +IMPORT VOID IMUL16 + +IPT2( + IU32 *, pop1, + IU32, op2 + + ); + +IMPORT VOID IMUL16T + +IPT3( + IU32 *, pop1, + IU32, op2, + IU32, op3 + + ); + +IMPORT VOID IMUL32 + +IPT2( + IU32 *, pop1, + IU32, op2 + + ); + +IMPORT VOID IMUL32T + +IPT3( + IU32 *, pop1, + IU32, op2, + IU32, op3 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/in.c b/private/mvdm/softpc.new/base/ccpu386/in.c new file mode 100644 index 000000000..5e17b9b49 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/in.c @@ -0,0 +1,101 @@ +/*[ + +in.c + +LOCAL CHAR SccsID[]="@(#)in.c 1.8 09/27/94"; + +IN CPU Functions. +----------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE + ===================================================================== + */ + + +/* + * Need to call the IO functions directly from the base arrays (just like + * the assembler CPU does), rather than calling inb etc., as the latter + * could cause a virtualisation that would end-up back here. + */ + +GLOBAL VOID +IN8 + +IFN2( + IU32 *, pop1, /* pntr to dst operand */ + IU32, op2 /* src(port nr.) operand */ + ) + + + { +#ifndef PIG + IU8 temp; + + (*Ios_inb_function[Ios_in_adapter_table[(IO_ADDR)op2 & (PC_IO_MEM_SIZE-1)]]) + ((IO_ADDR)op2, &temp); + *pop1 = temp; +#endif /* !PIG */ + } + +GLOBAL VOID +IN16 + +IFN2( + IU32 *, pop1, /* pntr to dst operand */ + IU32, op2 /* src(port nr.) operand */ + ) + + + { +#ifndef PIG + IU16 temp; + + (*Ios_inw_function[Ios_in_adapter_table[(IO_ADDR)op2 & (PC_IO_MEM_SIZE-1)]]) + ((IO_ADDR)op2, &temp); + *pop1 = temp; +#endif /* !PIG */ + } + +GLOBAL VOID +IN32 IFN2( + IU32 *, pop1, /* pntr to dst operand */ + IU32, op2 /* src(port nr.) operand */ + ) +{ +#ifndef PIG + IU32 temp; + +#ifdef SFELLOW + (*Ios_ind_function[Ios_in_adapter_table[(IO_ADDR)op2 & + (PC_IO_MEM_SIZE-1)]]) + ((IO_ADDR)op2, &temp); + *pop1 = temp; +#else + IN16(&temp, op2); + *pop1 = temp; + IN16(&temp, op2 + 2); + *pop1 += temp << 16; +#endif +#endif /* !PIG */ +} diff --git a/private/mvdm/softpc.new/base/ccpu386/in.h b/private/mvdm/softpc.new/base/ccpu386/in.h new file mode 100644 index 000000000..4f263a1dd --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/in.h @@ -0,0 +1,33 @@ +/* + in.h + + Define all IN CPU functions. + */ + +/* + static char SccsID[]="@(#)in.h 1.4 02/09/94"; + */ + +IMPORT VOID IN8 + +IPT2( + IU32 *, pop1, + IU32, op2 + + ); + +IMPORT VOID IN16 + +IPT2( + IU32 *, pop1, + IU32, op2 + + ); + +IMPORT VOID IN32 + +IPT2( + IU32 *, pop1, + IU32, op2 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/inc.c b/private/mvdm/softpc.new/base/ccpu386/inc.c new file mode 100644 index 000000000..22a05bf82 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/inc.c @@ -0,0 +1,66 @@ +/*[ + +inc.c + +LOCAL CHAR SccsID[]="@(#)inc.c 1.5 02/09/94"; + +INC CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'inc'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +INC + +IFN2( + IU32 *, pop1, /* pntr to dst/src operand */ + IUM8, op_sz /* 8, 16 or 32-bit */ + ) + + + { + IU32 result; + IU32 msb; + IU32 op1_msb; + IU32 res_msb; + + msb = SZ2MSB(op_sz); + + result = *pop1 + 1 & SZ2MASK(op_sz); /* Do operation */ + op1_msb = (*pop1 & msb) != 0; /* Isolate all msb's */ + res_msb = (result & msb) != 0; + /* Determine flags */ + SET_OF(!op1_msb & res_msb); /* OF = !op1 & res */ + /* CF left unchanged */ + SET_PF(pf_table[result & BYTE_MASK]); + SET_ZF(result == 0); + SET_SF((result & msb) != 0); /* SF = MSB */ + SET_AF(((*pop1 ^ result) & BIT4_MASK) != 0); /* AF = Bit 4 carry */ + *pop1 = result; /* Return answer */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/inc.h b/private/mvdm/softpc.new/base/ccpu386/inc.h new file mode 100644 index 000000000..fa19500a3 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/inc.h @@ -0,0 +1,17 @@ +/* + inc.h + + Define all INC CPU functions. + */ + +/* + static char SccsID[]="@(#)inc.h 1.4 02/09/94"; + */ + +IMPORT VOID INC + +IPT2( + IU32 *, pop1, + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/into.c b/private/mvdm/softpc.new/base/ccpu386/into.c new file mode 100644 index 000000000..ef409231d --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/into.c @@ -0,0 +1,55 @@ +/*[ + +into.c + +LOCAL CHAR SccsID[]="@(#)into.c 1.5 02/09/94"; + +INTO CPU Functions. +------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Interrupt on Overflow */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +INTO() + { + + if ( GET_OF() ) + { +#ifdef NTVDM + extern BOOL host_swint_hook IPT1(IS32, int_no); + + if(GET_PE() && host_swint_hook((IS32) 4)) + return; /* Interrupt processed by user defined handler */ +#endif + + EXT = INTERNAL; + do_intrupt((IU16)4, TRUE, FALSE, (IU16)0); + } + } diff --git a/private/mvdm/softpc.new/base/ccpu386/into.h b/private/mvdm/softpc.new/base/ccpu386/into.h new file mode 100644 index 000000000..d36f1f696 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/into.h @@ -0,0 +1,11 @@ +/* + into.h + + Define INTO CPU functions. + */ + +/* + static char SccsID[]="@(#)into.h 1.5 09/01/94"; + */ + +IMPORT VOID INTO IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/intx.c b/private/mvdm/softpc.new/base/ccpu386/intx.c new file mode 100644 index 000000000..bdcd8f86e --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/intx.c @@ -0,0 +1,57 @@ +/*[ + +intx.c + +LOCAL CHAR SccsID[]="@(#)intx.c 1.5 02/09/94"; + +INT andISM323 CPU Functions. +---------------------------- + +]*/ + + +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/*ISM32n orISM323. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +INTx + +IFN1( + IU32, op1 + ) + + + { +#ifdef NTVDM + extern BOOL host_swint_hook IPT1(IS32, int_no); + + if(GET_PE() && host_swint_hook((IS32) op1)) + return; /* Interrupt processed by user defined handler */ +#endif + + EXT = INTERNAL; + do_intrupt((IU16)op1, TRUE, FALSE, (IU16)0); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/intx.h b/private/mvdm/softpc.new/base/ccpu386/intx.h new file mode 100644 index 000000000..7b6d3b898 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/intx.h @@ -0,0 +1,16 @@ +/* + intx.h + + DefineISM32andISM323 (ie INTx) CPU functions. + */ + +/* + static char SccsID[]="@(#)intx.h 1.4 02/09/94"; + */ + +IMPORT VOID INTx + +IPT1( + IU32, op1 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/invd.c b/private/mvdm/softpc.new/base/ccpu386/invd.c new file mode 100644 index 000000000..67e8fc951 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/invd.c @@ -0,0 +1,45 @@ +/*[ + +invd.c + +LOCAL CHAR SccsID[]="@(#)invd.c 1.5 02/09/94"; + +INVD CPU Functions. +------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + ===================================================================== + EXECUTION STARTS HERE. + ===================================================================== + */ + + +#ifdef SPC486 + +VOID +INVD() + { + /* + If cache is implemented - then make call to flush cache. + flush_cache(); + */ + } + +#endif /* SPC486 */ diff --git a/private/mvdm/softpc.new/base/ccpu386/invd.h b/private/mvdm/softpc.new/base/ccpu386/invd.h new file mode 100644 index 000000000..02418978d --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/invd.h @@ -0,0 +1,11 @@ +/* + invd.h + + Define INVD CPU functions. + */ + +/* + static char SccsID[]="@(#)invd.h 1.5 09/01/94"; + */ + +IMPORT VOID INVD IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/invlpg.c b/private/mvdm/softpc.new/base/ccpu386/invlpg.c new file mode 100644 index 000000000..5643baddc --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/invlpg.c @@ -0,0 +1,49 @@ +/*[ + +invlpg.c + +LOCAL CHAR SccsID[]="@(#)invlpg.c 1.5 02/09/94"; + +INVLPG CPU Functions. +--------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + ===================================================================== + EXECUTION STARTS HERE. + ===================================================================== + */ + + +#ifdef SPC486 + +GLOBAL VOID +INVLPG + +IFN1( + IU32, op1 /* src operand */ + ) + + + { + invalidate_tlb_entry((IU32) op1); + } + +#endif /* SPC486 */ diff --git a/private/mvdm/softpc.new/base/ccpu386/invlpg.h b/private/mvdm/softpc.new/base/ccpu386/invlpg.h new file mode 100644 index 000000000..54242f10b --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/invlpg.h @@ -0,0 +1,16 @@ +/* + invlpg.h + + Define INVLPG CPU functions. + */ + +/* + static char SccsID[]="@(#)invlpg.h 1.4 02/09/94"; + */ + +IMPORT VOID INVLPG + +IPT1( + IU32, op1 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/iret.c b/private/mvdm/softpc.new/base/ccpu386/iret.c new file mode 100644 index 000000000..26d8af112 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/iret.c @@ -0,0 +1,330 @@ +/*[ + +iret.c + +LOCAL CHAR SccsID[]="@(#)iret.c 1.13 1/19/95"; + +IRET CPU Functions. +------------------- + +]*/ + + +#include + +#include +#include +#include CpuH +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + + +/* + ===================================================================== + INTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +/*--------------------------------------------------------------------*/ +/* Intelligent support for writing (E)FLAGS. */ +/*--------------------------------------------------------------------*/ +LOCAL VOID +set_current_FLAGS + +IFN1( + IU32, flags + ) + + + { + if ( GET_OPERAND_SIZE() == USE16 ) + setFLAGS(flags); + else /* USE32 */ + c_setEFLAGS(flags); + } + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +GLOBAL VOID +IRET() + { + IU16 new_cs; /* The return destination */ + IU32 new_ip; + + IU32 new_flags; /* The new flags */ + + IU16 back_link; /* Task Return variables */ + IU32 tss_descr_addr; + + ISM32 dest_type; /* category for destination */ + ISM32 privilege; /* return privilege level */ + + IU32 cs_descr_addr; /* code segment descriptor address */ + CPU_DESCR cs_entry; /* code segment descriptor entry */ + + IU16 new_ss; /* The new stack */ + IU32 new_sp; + + IU16 new_data_selector; /* ES,DS,FS,GS selector */ + + IU32 ss_descr_addr; /* stack segment descriptor address */ + CPU_DESCR ss_entry; /* stack segment descriptor entry */ + + if ( GET_PE() == 0 || GET_VM() == 1 ) + { + /* Real Mode or V86 Mode */ + + /* must have (E)IP:CS:(E)FLAGS on stack */ + validate_stack_exists(USE_SP, (ISM32)NR_ITEMS_3); + + /* retrieve return destination and flags from stack */ + new_ip = tpop(STACK_ITEM_1, NULL_BYTE_OFFSET); + new_cs = tpop(STACK_ITEM_2, NULL_BYTE_OFFSET); + new_flags = tpop(STACK_ITEM_3, NULL_BYTE_OFFSET); + +#ifdef TAKE_REAL_MODE_LIMIT_FAULT + + /* do ip limit check */ + if ( new_ip > GET_CS_LIMIT() ) + GP((IU16)0, FAULT_IRET_RM_CS_LIMIT); + +#else /* TAKE_REAL_MODE_LIMIT_FAULT */ + + /* The Soft486 EDL CPU does not take Real Mode limit failures. + * Since the Ccpu486 is used as a "reference" cpu we wish it + * to behave a C version of the EDL Cpu rather than as a C + * version of a i486. + */ + +#endif /* TAKE_REAL_MODE_LIMIT_FAULT */ + + /* ALL SYSTEMS GO */ + + load_CS_cache(new_cs, (IU32)0, (CPU_DESCR *)0); + SET_EIP(new_ip); + + change_SP((IS32)NR_ITEMS_3); + + set_current_FLAGS(new_flags); + + return; + } + + /* PROTECTED MODE */ + + /* look for nested return, ie return to another task */ + if ( GET_NT() == 1 ) + { + /* NESTED RETURN - get old TSS */ + back_link = spr_read_word(GET_TR_BASE()); + (VOID)validate_TSS(back_link, &tss_descr_addr, TRUE); + switch_tasks(RETURNING, NOT_NESTING, back_link, tss_descr_addr, + GET_EIP()); + + /* limit check new IP (now in new task) */ + if ( GET_EIP() > GET_CS_LIMIT() ) + GP((IU16)0, FAULT_IRET_PM_TASK_CS_LIMIT); + + return; + } + + /* SAME TASK RETURN */ + + /* must have (E)IP:CS:(E)FLAGS on stack */ + validate_stack_exists(USE_SP, (ISM32)NR_ITEMS_3); + + /* retrieve return destination from stack */ + new_ip = tpop(STACK_ITEM_1, NULL_BYTE_OFFSET); + new_cs = tpop(STACK_ITEM_2, NULL_BYTE_OFFSET); + new_flags = tpop(STACK_ITEM_3, NULL_BYTE_OFFSET); + + if ( GET_CPL() != 0 ) + new_flags = new_flags & ~BIT17_MASK; /* Clear new VM */ + + if ( new_flags & BIT17_MASK ) /* VM bit set? */ + { + /* + Return to V86 Mode. Stack holds:- + + =========== + | EIP | + | | CS | + | EFLAGS | + | ESP | + | | SS | + | | ES | + | | DS | + | | FS | + | | GS | + =========== + */ + + validate_stack_exists(USE_SP, (ISM32)NR_ITEMS_9); + + /* Check Instruction Pointer valid. */ + if ( new_ip > (IU32)0xffff ) + GP((IU16)0, FAULT_IRET_VM_CS_LIMIT); + + /* ALL SYSTEMS GO */ + c_setEFLAGS(new_flags); /* ensure VM set before segment loads */ + + SET_CPL(3); /* V86 privilege level */ + load_CS_cache(new_cs, (IU32)0, (CPU_DESCR *)0); + SET_CS_LIMIT(0xffff); + + SET_EIP(new_ip); + + /* Retrieve new stack ESP:SS */ + new_sp = tpop(STACK_ITEM_4, NULL_BYTE_OFFSET); + new_ss = tpop(STACK_ITEM_5, NULL_BYTE_OFFSET); + + /* Retrieve and set up new data selectors */ + new_data_selector = tpop(STACK_ITEM_6, NULL_BYTE_OFFSET); + load_data_seg(ES_REG, new_data_selector); + + new_data_selector = tpop(STACK_ITEM_7, NULL_BYTE_OFFSET); + load_data_seg(DS_REG, new_data_selector); + + new_data_selector = tpop(STACK_ITEM_8, NULL_BYTE_OFFSET); + load_data_seg(FS_REG, new_data_selector); + + new_data_selector = tpop(STACK_ITEM_9, NULL_BYTE_OFFSET); + load_data_seg(GS_REG, new_data_selector); + + /* Set up new stack */ + load_stack_seg(new_ss); + set_current_SP(new_sp); + + /* Set up pseudo descriptors */ + load_pseudo_descr(SS_REG); + load_pseudo_descr(DS_REG); + load_pseudo_descr(ES_REG); + load_pseudo_descr(FS_REG); + load_pseudo_descr(GS_REG); + + return; + } + + /* decode action and further check stack */ + privilege = GET_SELECTOR_RPL(new_cs); + if ( privilege < GET_CPL() ) + { + GP(new_cs, FAULT_IRET_CS_ACCESS_1); /* you can't get to higher privilege */ + } + else if ( privilege == GET_CPL() ) + { + dest_type = SAME_LEVEL; + } + else + { + /* going to lower privilege */ + /* must have (E)IP:CS, (E)FLAGS, (E)SP:SS on stack */ + validate_stack_exists(USE_SP, (ISM32)NR_ITEMS_5); + dest_type = LOWER_PRIVILEGE; + } + + if ( selector_outside_GDT_LDT(new_cs, &cs_descr_addr) ) + GP(new_cs, FAULT_IRET_SELECTOR); + + /* check type, access and presence of return addr */ + + /* load descriptor */ + read_descriptor_linear(cs_descr_addr, &cs_entry); + + /* must be a code segment */ + switch ( descriptor_super_type(cs_entry.AR) ) + { + case CONFORM_NOREAD_CODE: + case CONFORM_READABLE_CODE: + /* access check requires DPL <= return RPL */ + /* note that this even true when changing to outer rings - despite + what it says in the 80286 & i486 PRMs - this has been verified on + a real 80386 & i486 - Wayne 18th May 1994 */ + if ( GET_AR_DPL(cs_entry.AR) > privilege ) + GP(new_cs, FAULT_IRET_ACCESS_2); + break; + + case NONCONFORM_NOREAD_CODE: + case NONCONFORM_READABLE_CODE: + /* access check requires DPL == return RPL */ + if ( GET_AR_DPL(cs_entry.AR) != privilege ) + GP(new_cs, FAULT_IRET_ACCESS_3); + break; + + default: + GP(new_cs, FAULT_IRET_BAD_SEG_TYPE); + } + + if ( GET_AR_P(cs_entry.AR) == NOT_PRESENT ) + NP(new_cs, FAULT_IRET_NP_CS); + + /* action the target */ + switch ( dest_type ) + { + case SAME_LEVEL: + /* do ip limit checking */ + if ( new_ip > cs_entry.limit ) + GP((IU16)0, FAULT_IRET_PM_CS_LIMIT_1); + + /* ALL SYSTEMS GO */ + + load_CS_cache(new_cs, cs_descr_addr, &cs_entry); + SET_EIP(new_ip); + + change_SP((IS32)NR_ITEMS_3); + + set_current_FLAGS(new_flags); + break; + + case LOWER_PRIVILEGE: + /* check new stack */ + new_ss = tpop(STACK_ITEM_5, NULL_BYTE_OFFSET); + check_SS(new_ss, privilege, &ss_descr_addr, &ss_entry); + + /* do ip limit checking */ + if ( new_ip > cs_entry.limit ) + GP((IU16)0, FAULT_IRET_PM_CS_LIMIT_2); + + /* ALL SYSTEMS GO */ + + load_CS_cache(new_cs, cs_descr_addr, &cs_entry); + SET_EIP(new_ip); + + set_current_FLAGS(new_flags); + + new_sp = tpop(STACK_ITEM_4, NULL_BYTE_OFFSET); + load_SS_cache(new_ss, ss_descr_addr, &ss_entry); + if ( GET_OPERAND_SIZE() == USE16 ) + SET_SP (new_sp); + else + SET_ESP (new_sp); + + SET_CPL(privilege); + + /* finally re-validate DS and ES segments */ + load_data_seg_new_privilege(DS_REG); + load_data_seg_new_privilege(ES_REG); + load_data_seg_new_privilege(FS_REG); + load_data_seg_new_privilege(GS_REG); + break; + } + } diff --git a/private/mvdm/softpc.new/base/ccpu386/iret.h b/private/mvdm/softpc.new/base/ccpu386/iret.h new file mode 100644 index 000000000..8a786bbaf --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/iret.h @@ -0,0 +1,11 @@ +/* + iret.h + + Define IRET CPU functions. + */ + +/* + static char SccsID[]="@(#)iret.h 1.5 09/01/94"; + */ + +IMPORT VOID IRET IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/jcxz.c b/private/mvdm/softpc.new/base/ccpu386/jcxz.c new file mode 100644 index 000000000..a52627679 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/jcxz.c @@ -0,0 +1,60 @@ +/*[ + +jcxz.c + +LOCAL CHAR SccsID[]="@(#)jcxz.c 1.5 02/09/94"; + +JCXZ CPU Functions. +------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +GLOBAL VOID +JCXZ + +IFN1( + IU32, rel_offset + ) + + + { + if ( GET_CX() == 0 ) + update_relative_ip(rel_offset); + } + +GLOBAL VOID +JECXZ + +IFN1( + IU32, rel_offset + ) + + + { + if ( GET_ECX() == 0 ) + update_relative_ip(rel_offset); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/jcxz.h b/private/mvdm/softpc.new/base/ccpu386/jcxz.h new file mode 100644 index 000000000..32c0c9f6b --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/jcxz.h @@ -0,0 +1,23 @@ +/* + jcxz.h + + Define all JCXZ CPU functions. + */ + +/* + static char SccsID[]="@(#)jcxz.h 1.4 02/09/94"; + */ + +IMPORT VOID JCXZ + +IPT1( + IU32, rel_offset + + ); + +IMPORT VOID JECXZ + +IPT1( + IU32, rel_offset + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/jmp.c b/private/mvdm/softpc.new/base/ccpu386/jmp.c new file mode 100644 index 000000000..5df44e451 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/jmp.c @@ -0,0 +1,198 @@ +/*[ + +jmp.c + +LOCAL CHAR SccsID[]="@(#)jmp.c 1.10 01/19/95"; + +JMP CPU Functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define TAKE_PROT_MODE_LIMIT_FAULT + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Process far jmps. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +JMPF +#ifdef ANSI + ( + IU32 op1[2] /* offset:segment pointer */ + ) +#else + (op1) + IU32 op1[2]; +#endif + { + IU16 new_cs; /* The destination */ + IU32 new_ip; + + IU32 descr_addr; /* cs descriptor address and entry */ + CPU_DESCR entry; + + ISM32 dest_type; /* category for destination */ + IU8 count; /* dummy for call gate count */ + + new_cs = op1[1]; + new_ip = op1[0]; + + if ( GET_PE() == 0 || GET_VM() == 1 ) + { + /* Real Mode or V86 Mode */ + +#ifdef TAKE_REAL_MODE_LIMIT_FAULT + + /* + Although the 386 book says a 16-bit operand should be AND'ed + with 0x0000ffff, a 16-bit operand is never fetched with the + top bits dirty anyway, so we don't AND here. + */ + if ( new_ip > GET_CS_LIMIT() ) + GP((IU16)0, FAULT_JMPF_RM_CS_LIMIT); + +#else /* TAKE_REAL_MODE_LIMIT_FAULT */ + + /* The Soft486 EDL CPU does not take Real Mode limit failures. + * Since the Ccpu486 is used as a "reference" cpu we wish it + * to behave a C version of the EDL Cpu rather than as a C + * version of a i486. + */ + +#endif /* TAKE_REAL_MODE_LIMIT_FAULT */ + + load_CS_cache(new_cs, (IU32)0, (CPU_DESCR *)0); + SET_EIP(new_ip); + } + else + { + /* Protected Mode */ + + /* decode and check final destination */ + validate_far_dest(&new_cs, &new_ip, &descr_addr, &count, + &dest_type, JMP_ID); + + /* action possible types of target */ + switch ( dest_type ) + { + case NEW_TASK: + switch_tasks(NOT_RETURNING, NOT_NESTING, new_cs, descr_addr, GET_EIP()); + + /* limit check new IP (now in new task) */ + if ( GET_EIP() > GET_CS_LIMIT() ) + GP((IU16)0, FAULT_JMPF_TASK_CS_LIMIT); + + break; + + case SAME_LEVEL: + read_descriptor_linear(descr_addr, &entry); + + /* do limit checking */ + if ( new_ip > entry.limit ) + GP((IU16)0, FAULT_JMPF_PM_CS_LIMIT); + + /* stamp new selector with CPL */ + SET_SELECTOR_RPL(new_cs, GET_CPL()); + load_CS_cache(new_cs, descr_addr, &entry); + SET_EIP(new_ip); + break; + } + } + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* jump near indirect */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +JMPN + +IFN1( + IU32, offset + ) + + + { + /* + Although the 386 book says a 16-bit operand should be AND'ed + with 0x0000ffff, a 16-bit operand is never fetched with the + top bits dirty anyway, so we don't AND here. + */ + + /* do ip limit check */ +#ifdef TAKE_REAL_MODE_LIMIT_FAULT + + if ( offset > GET_CS_LIMIT() ) + GP((IU16)0, FAULT_JMPN_RM_CS_LIMIT); + +#else /* TAKE_REAL_MODE_LIMIT_FAULT */ + + /* The Soft486 EDL CPU does not take Real Mode limit failures. + * Since the Ccpu486 is used as a "reference" cpu we wish it + * to behave a C version of the EDL Cpu rather than as a C + * version of a i486. + */ + +#ifdef TAKE_PROT_MODE_LIMIT_FAULT + + if ( GET_PE() == 1 && GET_VM() == 0 ) + { + if ( offset > GET_CS_LIMIT() ) + GP((IU16)0, FAULT_JMPN_PM_CS_LIMIT); + } + +#endif /* TAKE_PROT_MODE_LIMIT_FAULT */ + + /* The Soft486 EDL CPU does not take Protected Mode limit failues + * for the instructions with relative offsets, Jxx, LOOPxx, JCXZ, + * JMP rel and CALL rel, or instructions with near offsets, + * JMP near and CALL near. + * Since the Ccpu486 is used as a "reference" cpu we wish it + * to behave a C version of the EDL Cpu rather than as a C + * version of a i486. + */ + +#endif /* TAKE_REAL_MODE_LIMIT_FAULT */ + + SET_EIP(offset); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* jump near relative */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +JMPR + +IFN1( + IU32, rel_offset + ) + + + { + update_relative_ip(rel_offset); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/jmp.h b/private/mvdm/softpc.new/base/ccpu386/jmp.h new file mode 100644 index 000000000..0ab6d14c7 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/jmp.h @@ -0,0 +1,30 @@ +/* + jmp.h + + Define all JMP CPU functions. + */ + +/* + static char SccsID[]="@(#)jmp.h 1.4 02/09/94"; + */ + +IMPORT VOID JMPF + +IPT1( + IU32, op1[2] + + ); + +IMPORT VOID JMPN + +IPT1( + IU32, offset + + ); + +IMPORT VOID JMPR + +IPT1( + IU32, rel_offset + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/jxx.c b/private/mvdm/softpc.new/base/ccpu386/jxx.c new file mode 100644 index 000000000..214317b17 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/jxx.c @@ -0,0 +1,290 @@ +/*[ + +jxx.c + +LOCAL CHAR SccsID[]="@(#)jxx.c 1.5 02/09/94"; + +Jxx CPU Functions (Conditional Jumps). +-------------------------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Jump if Below (CF=1) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +JB + +IFN1( + IU32, rel_offset + ) + + + { + if ( GET_CF() ) + update_relative_ip(rel_offset); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Jump if Below or Equal (CF=1 || ZF=1) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +JBE + +IFN1( + IU32, rel_offset + ) + + + { + if ( GET_CF() || GET_ZF() ) + update_relative_ip(rel_offset); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Jump if Less (SF != OF) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +JL + +IFN1( + IU32, rel_offset + ) + + + { + if ( GET_SF() != GET_OF() ) + update_relative_ip(rel_offset); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Jump if Less or Equal (ZF=1 || (SF != OF)) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +JLE + +IFN1( + IU32, rel_offset + ) + + + { + if ( GET_SF() != GET_OF() || GET_ZF() ) + update_relative_ip(rel_offset); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Jump if Not Below (CF=0) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +JNB + +IFN1( + IU32, rel_offset + ) + + + { + if ( !GET_CF() ) + update_relative_ip(rel_offset); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Jump if Not Below or Equal (CF=0 && ZF=0) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +JNBE + +IFN1( + IU32, rel_offset + ) + + + { + if ( !GET_CF() && !GET_ZF() ) + update_relative_ip(rel_offset); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Jump if Not Less (SF==OF) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +JNL + +IFN1( + IU32, rel_offset + ) + + + { + if ( GET_SF() == GET_OF() ) + update_relative_ip(rel_offset); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Jump if Not Less or Equal (ZF=0 && (SF==OF)) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +JNLE + +IFN1( + IU32, rel_offset + ) + + + { + if ( GET_SF() == GET_OF() && !GET_ZF() ) + update_relative_ip(rel_offset); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Jump if Not Overflow (OF=0) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +JNO + +IFN1( + IU32, rel_offset + ) + + + { + if ( !GET_OF() ) + update_relative_ip(rel_offset); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Jump if Not Parity (PF=0) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +JNP + +IFN1( + IU32, rel_offset + ) + + + { + if ( !GET_PF() ) + update_relative_ip(rel_offset); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Jump if Not Sign (SF=0) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +JNS + +IFN1( + IU32, rel_offset + ) + + + { + if ( !GET_SF() ) + update_relative_ip(rel_offset); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Jump if Not Zero (ZF=0) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +JNZ + +IFN1( + IU32, rel_offset + ) + + + { + if ( !GET_ZF() ) + update_relative_ip(rel_offset); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Jump if Overflow (OF=1) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +JO + +IFN1( + IU32, rel_offset + ) + + + { + if ( GET_OF() ) + update_relative_ip(rel_offset); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Jump if Parity (PF=1) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +JP + +IFN1( + IU32, rel_offset + ) + + + { + if ( GET_PF() ) + update_relative_ip(rel_offset); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Jump if Sign (SF=1) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +JS + +IFN1( + IU32, rel_offset + ) + + + { + if ( GET_SF() ) + update_relative_ip(rel_offset); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Jump if Zero (ZF=1) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +JZ + +IFN1( + IU32, rel_offset + ) + + + { + if ( GET_ZF() ) + update_relative_ip(rel_offset); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/jxx.h b/private/mvdm/softpc.new/base/ccpu386/jxx.h new file mode 100644 index 000000000..3057c8ac0 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/jxx.h @@ -0,0 +1,121 @@ +/* + jxx.h + + Define all Jxx CPU functions. + */ + +/* + static char SccsID[]="@(#)jxx.h 1.4 02/09/94"; + */ + +IMPORT VOID JB + +IPT1( + IU32, rel_offset + + ); + +IMPORT VOID JBE + +IPT1( + IU32, rel_offset + + ); + +IMPORT VOID JL + +IPT1( + IU32, rel_offset + + ); + +IMPORT VOID JLE + +IPT1( + IU32, rel_offset + + ); + +IMPORT VOID JNB + +IPT1( + IU32, rel_offset + + ); + +IMPORT VOID JNBE + +IPT1( + IU32, rel_offset + + ); + +IMPORT VOID JNL + +IPT1( + IU32, rel_offset + + ); + +IMPORT VOID JNLE + +IPT1( + IU32, rel_offset + + ); + +IMPORT VOID JNO + +IPT1( + IU32, rel_offset + + ); + +IMPORT VOID JNP + +IPT1( + IU32, rel_offset + + ); + +IMPORT VOID JNS + +IPT1( + IU32, rel_offset + + ); + +IMPORT VOID JNZ + +IPT1( + IU32, rel_offset + + ); + +IMPORT VOID JO + +IPT1( + IU32, rel_offset + + ); + +IMPORT VOID JP + +IPT1( + IU32, rel_offset + + ); + +IMPORT VOID JS + +IPT1( + IU32, rel_offset + + ); + +IMPORT VOID JZ + +IPT1( + IU32, rel_offset + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/lahf.c b/private/mvdm/softpc.new/base/ccpu386/lahf.c new file mode 100644 index 000000000..7c753b28a --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/lahf.c @@ -0,0 +1,46 @@ +/*[ + +lahf.c + +LOCAL CHAR SccsID[]="@(#)lahf.c 1.5 02/09/94"; + +LAHF CPU functions. +------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +GLOBAL VOID +LAHF() + { + IU32 temp; + + /* 7 6 5 4 3 2 1 0 */ + /* set AH = < 0>< 0>< 1> */ + + temp = GET_SF() << 7 | GET_ZF() << 6 | GET_AF() << 4 | GET_PF() << 2 | + GET_CF() | 0x2; + SET_AH(temp); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/lahf.h b/private/mvdm/softpc.new/base/ccpu386/lahf.h new file mode 100644 index 000000000..639f06c91 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/lahf.h @@ -0,0 +1,11 @@ +/* + lahf.h + + Define all LAHF CPU functions. + */ + +/* + static char SccsID[]="@(#)lahf.h 1.5 09/01/94"; + */ + +IMPORT VOID LAHF IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/lar.c b/private/mvdm/softpc.new/base/ccpu386/lar.c new file mode 100644 index 000000000..a41a20d3b --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/lar.c @@ -0,0 +1,101 @@ +/*[ + +lar.c + +LOCAL CHAR SccsID[]="@(#)lar.c 1.5 02/09/94"; + +LAR CPU Functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE + ===================================================================== + */ + + +GLOBAL VOID +LAR + +IFN2( + IU32 *, pop1, /* pntr to dst operand */ + IU32, op2 /* src operand */ + ) + + + { + BOOL loadable = FALSE; + IU32 descr_addr; + CPU_DESCR entry; + + if ( !selector_outside_GDT_LDT((IU16)op2, &descr_addr) ) + { + /* read descriptor from memory */ + read_descriptor_linear(descr_addr, &entry); + + switch ( descriptor_super_type(entry.AR) ) + { + case INVALID: + break; /* never loaded */ + + case CONFORM_NOREAD_CODE: + case CONFORM_READABLE_CODE: + loadable = TRUE; /* always loadable */ + break; + + case INTERRUPT_GATE: + case TRAP_GATE: + case XTND_AVAILABLE_TSS: + case XTND_BUSY_TSS: + case XTND_CALL_GATE: + case XTND_INTERRUPT_GATE: + case XTND_TRAP_GATE: + case AVAILABLE_TSS: + case LDT_SEGMENT: + case BUSY_TSS: + case CALL_GATE: + case TASK_GATE: + case EXPANDUP_READONLY_DATA: + case EXPANDUP_WRITEABLE_DATA: + case EXPANDDOWN_READONLY_DATA: + case EXPANDDOWN_WRITEABLE_DATA: + case NONCONFORM_NOREAD_CODE: + case NONCONFORM_READABLE_CODE: + /* access depends on privilege, it is required that + DPL >= CPL and DPL >= RPL */ + if ( GET_AR_DPL(entry.AR) >= GET_CPL() && + GET_AR_DPL(entry.AR) >= GET_SELECTOR_RPL(op2) ) + loadable = TRUE; + break; + } + } + + if ( loadable ) + { + /* Give em the access rights, in a suitable format */ + *pop1 = (IU32)entry.AR << 8; + SET_ZF(1); + } + else + { + SET_ZF(0); + } + } diff --git a/private/mvdm/softpc.new/base/ccpu386/lar.h b/private/mvdm/softpc.new/base/ccpu386/lar.h new file mode 100644 index 000000000..d7c97c463 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/lar.h @@ -0,0 +1,17 @@ +/* + lar.h + + Define all LAR CPU functions. + */ + +/* + static char SccsID[]="@(#)lar.h 1.4 02/09/94"; + */ + +IMPORT VOID LAR + +IPT2( + IU32 *, pop1, + IU32, op2 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/lea.c b/private/mvdm/softpc.new/base/ccpu386/lea.c new file mode 100644 index 000000000..3f6a32869 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/lea.c @@ -0,0 +1,46 @@ +/*[ + +lea.c + +LOCAL CHAR SccsID[]="@(#)lea.c 1.5 02/09/94"; + +LEA CPU Functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE + ===================================================================== + */ + + +GLOBAL VOID +LEA + +IFN2( + IU32 *, pop1, /* pntr to dst operand */ + IU32, op2 /* src(address) operand */ + ) + + + { + *pop1 = op2; + } diff --git a/private/mvdm/softpc.new/base/ccpu386/lea.h b/private/mvdm/softpc.new/base/ccpu386/lea.h new file mode 100644 index 000000000..95b0e9065 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/lea.h @@ -0,0 +1,17 @@ +/* + lea.h + + Define all LEA CPU functions. + */ + +/* + static char SccsID[]="@(#)lea.h 1.4 02/09/94"; + */ + +IMPORT VOID LEA + +IPT2( + IU32 *, pop1, + IU32, op2 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/leave.c b/private/mvdm/softpc.new/base/ccpu386/leave.c new file mode 100644 index 000000000..c717c1672 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/leave.c @@ -0,0 +1,65 @@ +/*[ + +leave.c + +LOCAL CHAR SccsID[]="@(#)leave.c 1.5 02/09/94"; + +LEAVE CPU functions. +-------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +GLOBAL VOID +LEAVE16() + { + IU32 new_bp; + + /* check operand exists */ + validate_stack_exists(USE_BP, (ISM32)NR_ITEMS_1); + + /* all ok - we can safely update the stack pointer */ + set_current_SP(GET_EBP()); + + /* and update frame pointer */ + new_bp = spop(); + SET_BP(new_bp); + } + +GLOBAL VOID +LEAVE32() + { + IU32 new_bp; + + /* check operand exists */ + validate_stack_exists(USE_BP, (ISM32)NR_ITEMS_1); + + /* all ok - we can safely update the stack pointer */ + set_current_SP(GET_EBP()); + + /* and update frame pointer */ + new_bp = spop(); + SET_EBP(new_bp); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/leave.h b/private/mvdm/softpc.new/base/ccpu386/leave.h new file mode 100644 index 000000000..62fb0abd1 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/leave.h @@ -0,0 +1,13 @@ +/* + leave.h + + Define all LEAVE CPU functions. + */ + +/* + static char SccsID[]="@(#)leave.h 1.5 09/01/94"; + */ + +IMPORT VOID LEAVE16 IPT0(); + +IMPORT VOID LEAVE32 IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/lgdt.c b/private/mvdm/softpc.new/base/ccpu386/lgdt.c new file mode 100644 index 000000000..95ab828cd --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/lgdt.c @@ -0,0 +1,68 @@ +/*[ + +lgdt.c + +LOCAL CHAR SccsID[]="@(#)lgdt.c 1.5 02/09/94"; + +LGDT CPU Functions. +------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE + ===================================================================== + */ + + +GLOBAL VOID +LGDT16 +#ifdef ANSI + ( + IU32 op1[2] /* src(limit:base pair) operand */ + ) +#else + (op1) + IU32 op1[2]; +#endif + { + SET_STAR_LIMIT(GDT_REG, op1[0]); + SET_STAR_BASE(GDT_REG, op1[1] & 0xffffff); /* store 24-bit base */ +#ifdef DOUBLE_CPU + double_switch_to(SOFT_CPU); +#endif + } + +GLOBAL VOID +LGDT32 +#ifdef ANSI + ( + IU32 op1[2] /* src(limit:base pair) operand */ + ) +#else + (op1) + IU32 op1[2]; +#endif + { + SET_STAR_LIMIT(GDT_REG, op1[0]); + SET_STAR_BASE(GDT_REG, op1[1]); +#ifdef DOUBLE_CPU + double_switch_to(SOFT_CPU); +#endif + } diff --git a/private/mvdm/softpc.new/base/ccpu386/lgdt.h b/private/mvdm/softpc.new/base/ccpu386/lgdt.h new file mode 100644 index 000000000..b331d5ad0 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/lgdt.h @@ -0,0 +1,23 @@ +/* + lgdt.h + + Define all LGDT CPU functions. + */ + +/* + static char SccsID[]="@(#)lgdt.h 1.4 02/09/94"; + */ + +IMPORT VOID LGDT16 + +IPT1( + IU32, op1[2] + + ); + +IMPORT VOID LGDT32 + +IPT1( + IU32, op1[2] + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/lidt.c b/private/mvdm/softpc.new/base/ccpu386/lidt.c new file mode 100644 index 000000000..0943553ba --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/lidt.c @@ -0,0 +1,63 @@ +/*[ + +lidt.c + +LOCAL CHAR SccsID[]="@(#)lidt.c 1.5 02/09/94"; + +LIDT CPU Functions. +------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE + ===================================================================== + */ + + +GLOBAL VOID +LIDT16 +#ifdef ANSI + ( + IU32 op1[2] /* src(limit:base pair) operand */ + ) +#else + (op1) + IU32 op1[2]; +#endif + { + SET_STAR_LIMIT(IDT_REG, op1[0]); + SET_STAR_BASE(IDT_REG, op1[1] & 0xffffff); /* store 24-bit base */ + } + +GLOBAL VOID +LIDT32 +#ifdef ANSI + ( + IU32 op1[2] /* src(limit:base pair) operand */ + ) +#else + (op1) + IU32 op1[2]; +#endif + { + SET_STAR_LIMIT(IDT_REG, op1[0]); + SET_STAR_BASE(IDT_REG, op1[1]); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/lidt.h b/private/mvdm/softpc.new/base/ccpu386/lidt.h new file mode 100644 index 000000000..fa026bc74 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/lidt.h @@ -0,0 +1,23 @@ +/* + lidt.h + + Define all LIDT CPU functions. + */ + +/* + static char SccsID[]="@(#)lidt.h 1.4 02/09/94"; + */ + +IMPORT VOID LIDT16 + +IPT1( + IU32, op1[2] + + ); + +IMPORT VOID LIDT32 + +IPT1( + IU32, op1[2] + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/lldt.c b/private/mvdm/softpc.new/base/ccpu386/lldt.c new file mode 100644 index 000000000..398ebc583 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/lldt.c @@ -0,0 +1,87 @@ +/*[ + +lldt.c + +LOCAL CHAR SccsID[]="@(#)lldt.c 1.8 01/19/95"; + +LLDT CPU Functions. +------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE + ===================================================================== + */ + + +GLOBAL VOID +LLDT + +IFN1( + IU32, op1 + ) + + + { + IU16 selector; + IU32 descr_addr; + CPU_DESCR entry; + + if ( selector_is_null(selector = op1) ) + { +#ifndef DONT_CLEAR_LDTR_ON_INVALID + SET_LDT_SELECTOR(selector); +#else + SET_LDT_SELECTOR(0); /* just invalidate LDT */ +#endif /* DONT_CLEAR_LDTR_ON_INVALID */ +#ifndef DONT_CLEAR_LDT_BL_ON_INVALID + /* Make the C-CPU behave like the assembler CPU with respect + * to LDT base and limit when the selector is set to NULL + * - there is no way for an Intel app to determine the values + * of the LDT base&limit so this will not affect the emulation + */ + SET_LDT_BASE(0); + SET_LDT_LIMIT(0); +#endif /* DONT_CLEAR_LDT_BL_ON_INVALID */ + } + else + { + /* must be in GDT */ + if ( selector_outside_GDT(selector, &descr_addr) ) + GP(selector, FAULT_LLDT_SELECTOR); + + read_descriptor_linear(descr_addr, &entry); + + if ( descriptor_super_type(entry.AR) != LDT_SEGMENT ) + GP(selector, FAULT_LLDT_NOT_LDT); + + /* must be present */ + if ( GET_AR_P(entry.AR) == NOT_PRESENT ) + NP(selector, FAULT_LLDT_NP); + + /* all OK - load up register */ + + SET_LDT_SELECTOR(selector); + SET_LDT_BASE(entry.base); + SET_LDT_LIMIT(entry.limit); + } + } diff --git a/private/mvdm/softpc.new/base/ccpu386/lldt.h b/private/mvdm/softpc.new/base/ccpu386/lldt.h new file mode 100644 index 000000000..35db351cc --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/lldt.h @@ -0,0 +1,16 @@ +/* + lldt.h + + Define all LLDT CPU functions. + */ + +/* + static char SccsID[]="@(#)lldt.h 1.4 02/09/94"; + */ + +IMPORT VOID LLDT + +IPT1( + IU32, op1 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/lmsw.c b/private/mvdm/softpc.new/base/ccpu386/lmsw.c new file mode 100644 index 000000000..09dfcd7b5 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/lmsw.c @@ -0,0 +1,56 @@ +/*[ + +lmsw.c + +LOCAL CHAR SccsID[]="@(#)lmsw.c 1.5 02/09/94"; + +LMSW CPU functions. +------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +GLOBAL VOID +LMSW + +IFN1( + IU32, op1 /* src operand */ + ) + + + { + IU32 temp; + IU32 no_clear = 0xfffffff1; /* can't clear top 28-bits or PE */ + IU32 no_set = 0xfffffff0; /* can't set top 28-bits */ + + /* kill off bits which can not be set */ + op1 = op1 & ~no_set; + + /* retain bits which can not be cleared */ + temp = GET_CR(CR_STAT) & no_clear; + + /* thus update only the bits allowed */ + SET_CR(CR_STAT, temp | op1); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/lmsw.h b/private/mvdm/softpc.new/base/ccpu386/lmsw.h new file mode 100644 index 000000000..e1d16b8ae --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/lmsw.h @@ -0,0 +1,16 @@ +/* + lmsw.h + + Define all LMSW CPU functions. + */ + +/* + static char SccsID[]="@(#)lmsw.h 1.4 02/09/94"; + */ + +IMPORT VOID LMSW + +IPT1( + IU32, op1 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/localfm.c b/private/mvdm/softpc.new/base/ccpu386/localfm.c new file mode 100644 index 000000000..6e84bc46c --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/localfm.c @@ -0,0 +1,9 @@ +#include +#include +#include +#include CpuH + +IHP Gdp; +struct CpuVector Cpu; +struct SasVector Sas; +struct VideoVector Video; diff --git a/private/mvdm/softpc.new/base/ccpu386/loopxx.c b/private/mvdm/softpc.new/base/ccpu386/loopxx.c new file mode 100644 index 000000000..d7dbf6eb1 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/loopxx.c @@ -0,0 +1,118 @@ +/*[ + +loopxx.c + +LOCAL CHAR SccsID[]="@(#)loopxx.c 1.5 02/09/94"; + +LOOPxx CPU Functions. +--------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +GLOBAL VOID +LOOP16 + +IFN1( + IU32, rel_offset + ) + + + { + SET_CX(GET_CX() - 1); + if ( GET_CX() != 0 ) + update_relative_ip(rel_offset); + } + +GLOBAL VOID +LOOP32 + +IFN1( + IU32, rel_offset + ) + + + { + SET_ECX(GET_ECX() - 1); + if ( GET_ECX() != 0 ) + update_relative_ip(rel_offset); + } + +GLOBAL VOID +LOOPE16 + +IFN1( + IU32, rel_offset + ) + + + { + SET_CX(GET_CX() - 1); + if ( GET_CX() != 0 && GET_ZF() ) + update_relative_ip(rel_offset); + } + +GLOBAL VOID +LOOPE32 + +IFN1( + IU32, rel_offset + ) + + + { + SET_ECX(GET_ECX() - 1); + if ( GET_ECX() != 0 && GET_ZF() ) + update_relative_ip(rel_offset); + } + +GLOBAL VOID +LOOPNE16 + +IFN1( + IU32, rel_offset + ) + + + { + SET_CX(GET_CX() - 1); + if ( GET_CX() != 0 && !GET_ZF() ) + update_relative_ip(rel_offset); + } + +GLOBAL VOID +LOOPNE32 + +IFN1( + IU32, rel_offset + ) + + + { + SET_ECX(GET_ECX() - 1); + if ( GET_ECX() != 0 && !GET_ZF() ) + update_relative_ip(rel_offset); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/loopxx.h b/private/mvdm/softpc.new/base/ccpu386/loopxx.h new file mode 100644 index 000000000..74a8124b2 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/loopxx.h @@ -0,0 +1,51 @@ +/* + loopxx.h + + Define all LOOPxx CPU functions. + */ + +/* + static char SccsID[]="@(#)loopxx.h 1.4 02/09/94"; + */ + +IMPORT VOID LOOP16 + +IPT1( + IU32, rel_offset + + ); + +IMPORT VOID LOOP32 + +IPT1( + IU32, rel_offset + + ); + +IMPORT VOID LOOPE16 + +IPT1( + IU32, rel_offset + + ); + +IMPORT VOID LOOPE32 + +IPT1( + IU32, rel_offset + + ); + +IMPORT VOID LOOPNE16 + +IPT1( + IU32, rel_offset + + ); + +IMPORT VOID LOOPNE32 + +IPT1( + IU32, rel_offset + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/lsl.c b/private/mvdm/softpc.new/base/ccpu386/lsl.c new file mode 100644 index 000000000..8a3e91546 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/lsl.c @@ -0,0 +1,101 @@ +/*[ + +lsl.c + +LOCAL CHAR SccsID[]="@(#)lsl.c 1.5 02/09/94"; + +LSL CPU Functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE + ===================================================================== + */ + + +GLOBAL VOID +LSL + +IFN2( + IU32 *, pop1, /* pntr to dst operand */ + IU32, op2 /* src operand */ + ) + + + { + BOOL loadable = FALSE; + IU32 descr_addr; + CPU_DESCR entry; + + if ( !selector_outside_GDT_LDT((IU16)op2, &descr_addr) ) + { + /* read descriptor from memory */ + read_descriptor_linear(descr_addr, &entry); + + switch ( descriptor_super_type(entry.AR) ) + { + case INVALID: + case CALL_GATE: + case TASK_GATE: + case INTERRUPT_GATE: + case TRAP_GATE: + case XTND_CALL_GATE: + case XTND_INTERRUPT_GATE: + case XTND_TRAP_GATE: + break; /* never loaded - don't have a limit */ + + case CONFORM_NOREAD_CODE: + case CONFORM_READABLE_CODE: + loadable = TRUE; /* always loadable */ + break; + + case AVAILABLE_TSS: + case LDT_SEGMENT: + case BUSY_TSS: + case XTND_AVAILABLE_TSS: + case XTND_BUSY_TSS: + case EXPANDUP_READONLY_DATA: + case EXPANDUP_WRITEABLE_DATA: + case EXPANDDOWN_READONLY_DATA: + case EXPANDDOWN_WRITEABLE_DATA: + case NONCONFORM_NOREAD_CODE: + case NONCONFORM_READABLE_CODE: + /* access depends on privilege, it is required that + DPL >= CPL and DPL >= RPL */ + if ( GET_AR_DPL(entry.AR) >= GET_CPL() && + GET_AR_DPL(entry.AR) >= GET_SELECTOR_RPL(op2) ) + loadable = TRUE; + break; + } + } + + if ( loadable ) + { + /* Give em the limit */ + *pop1 = entry.limit; + SET_ZF(1); + } + else + { + SET_ZF(0); + } + } diff --git a/private/mvdm/softpc.new/base/ccpu386/lsl.h b/private/mvdm/softpc.new/base/ccpu386/lsl.h new file mode 100644 index 000000000..aa13cc0dd --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/lsl.h @@ -0,0 +1,17 @@ +/* + lsl.h + + Define all LSL CPU functions. + */ + +/* + static char SccsID[]="@(#)lsl.h 1.4 02/09/94"; + */ + +IMPORT VOID LSL + +IPT2( + IU32 *, pop1, + IU32, op2 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/ltr.c b/private/mvdm/softpc.new/base/ccpu386/ltr.c new file mode 100644 index 000000000..4851a9848 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/ltr.c @@ -0,0 +1,67 @@ +/*[ + +ltr.c + +LOCAL CHAR SccsID[]="@(#)ltr.c 1.5 02/09/94"; + +LTR CPU Functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE + ===================================================================== + */ + + +GLOBAL VOID +LTR + +IFN1( + IU32, op1 /* alleged TSS selector */ + ) + + + { + IU16 selector; + IU32 descr_addr; + CPU_DESCR entry; + ISM32 super; + + /* Validate and Read decrciptor info. */ + selector = op1; + super = validate_TSS(selector, &descr_addr, FALSE); + read_descriptor_linear(descr_addr, &entry); + + /* mark in memory descriptor as busy */ + entry.AR |= BIT1_MASK; + spr_write_byte(descr_addr+5, (IU8)entry.AR); + + /* finally load components of task register */ + SET_TR_SELECTOR(selector); + SET_TR_BASE(entry.base); + SET_TR_LIMIT(entry.limit); + + /* store busy form of TSS */ + super |= BIT1_MASK; + SET_TR_AR_SUPER(super); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/ltr.h b/private/mvdm/softpc.new/base/ccpu386/ltr.h new file mode 100644 index 000000000..39564ea45 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/ltr.h @@ -0,0 +1,16 @@ +/* + ltr.h + + Define all LTR CPU functions. + */ + +/* + static char SccsID[]="@(#)ltr.h 1.4 02/09/94"; + */ + +IMPORT VOID LTR + +IPT1( + IU32, op1 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/lxs.c b/private/mvdm/softpc.new/base/ccpu386/lxs.c new file mode 100644 index 000000000..7e8f22dad --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/lxs.c @@ -0,0 +1,149 @@ +/*[ + +lxs.c + +LOCAL CHAR SccsID[]="@(#)lxs.c 1.5 02/09/94"; + +LDS, LES, LGS, LGS and LSS (ie LxS) CPU Functions. +-------------------------------------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Load Full Pointer to DS segment register:general register pair. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +LDS +#ifdef ANSI + ( + IU32 *pop1, /* Pntr to dst(offset) operand */ + IU32 op2[2] /* src(offset:selector pair) operand */ + ) +#else + (pop1, op2) + IU32 *pop1; + IU32 op2[2]; +#endif + { + /* load segment selector first */ + MOV_SR((IU32)DS_REG, op2[1]); + + /* then (if it works) load offset */ + *pop1 = op2[0]; + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Load Full Pointer to ES segment register:general register pair. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +LES +#ifdef ANSI + ( + IU32 *pop1, /* Pntr to dst(offset) operand */ + IU32 op2[2] /* src(offset:selector pair) operand */ + ) +#else + (pop1, op2) + IU32 *pop1; + IU32 op2[2]; +#endif + { + /* load segment selector first */ + MOV_SR((IU32)ES_REG, op2[1]); + + /* then (if it works) load offset */ + *pop1 = op2[0]; + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Load Full Pointer to FS segment register:general register pair. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +LFS +#ifdef ANSI + ( + IU32 *pop1, /* Pntr to dst(offset) operand */ + IU32 op2[2] /* src(offset:selector pair) operand */ + ) +#else + (pop1, op2) + IU32 *pop1; + IU32 op2[2]; +#endif + { + /* load segment selector first */ + MOV_SR((IU32)FS_REG, op2[1]); + + /* then (if it works) load offset */ + *pop1 = op2[0]; + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Load Full Pointer to GS segment register:general register pair. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +LGS +#ifdef ANSI + ( + IU32 *pop1, /* Pntr to dst(offset) operand */ + IU32 op2[2] /* src(offset:selector pair) operand */ + ) +#else + (pop1, op2) + IU32 *pop1; + IU32 op2[2]; +#endif + { + /* load segment selector first */ + MOV_SR((IU32)GS_REG, op2[1]); + + /* then (if it works) load offset */ + *pop1 = op2[0]; + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Load Full Pointer to SS segment register:general register pair. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +LSS +#ifdef ANSI + ( + IU32 *pop1, /* Pntr to dst(offset) operand */ + IU32 op2[2] /* src(offset:selector pair) operand */ + ) +#else + (pop1, op2) + IU32 *pop1; + IU32 op2[2]; +#endif + { + /* load segment selector first */ + MOV_SR((IU32)SS_REG, op2[1]); + + /* then (if it works) load offset */ + *pop1 = op2[0]; + } diff --git a/private/mvdm/softpc.new/base/ccpu386/lxs.h b/private/mvdm/softpc.new/base/ccpu386/lxs.h new file mode 100644 index 000000000..f2a0c56df --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/lxs.h @@ -0,0 +1,49 @@ +/* + lxs.h + + Define LDS and LES (ie LxS) CPU functions. + */ + +/* + static char SccsID[]="@(#)lxs.h 1.4 02/09/94"; + */ + +IMPORT VOID LDS + +IPT2( + IU32 *, pop1, + IU32, op2[2] + + ); + +IMPORT VOID LES + +IPT2( + IU32 *, pop1, + IU32, op2[2] + + ); + +IMPORT VOID LFS + +IPT2( + IU32 *, pop1, + IU32, op2[2] + + ); + +IMPORT VOID LGS + +IPT2( + IU32 *, pop1, + IU32, op2[2] + + ); + +IMPORT VOID LSS + +IPT2( + IU32 *, pop1, + IU32, op2[2] + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/makefile b/private/mvdm/softpc.new/base/ccpu386/makefile new file mode 100644 index 000000000..6ee4f43fa --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/makefile @@ -0,0 +1,6 @@ +# +# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source +# file to this component. This file merely indirects to the real make file +# that is shared by all the components of NT OS/2 +# +!INCLUDE $(NTMAKEENV)\makefile.def diff --git a/private/mvdm/softpc.new/base/ccpu386/mov.c b/private/mvdm/softpc.new/base/ccpu386/mov.c new file mode 100644 index 000000000..b7929b455 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/mov.c @@ -0,0 +1,239 @@ +/*[ + +mov.c + +LOCAL CHAR SccsID[]="@(#)mov.c 1.12 02/13/95"; + +MOV CPU Functions. +------------------ + +]*/ + + +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include /* For C_SWITCHNPX */ + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'lods'. */ +/* Generic - one size fits all 'mov'. */ +/* Generic - one size fits all 'movzx'. */ +/* Generic - one size fits all 'movs'. */ +/* Generic - one size fits all 'stos'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +MOV + +IFN2( + IU32 *, pop1, /* pntr to dst operand */ + IU32, op2 /* src operand */ + ) + + + { + *pop1 = op2; + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* 'mov' to segment register. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +MOV_SR + +IFN2( + IU32, op1, /* index to segment register */ + IU32, op2 /* src operand */ + ) + + + { + switch ( op1 ) + { + case DS_REG: + case ES_REG: + case FS_REG: + case GS_REG: + load_data_seg((ISM32)op1, (IU16)op2); + break; + + case SS_REG: + load_stack_seg((IU16)op2); + break; + + default: + break; + } + } + + +#ifdef SPC486 +#define CR0_VALID_BITS 0xe005003f +#define CR3_VALID_BITS 0xfffff018 +#else +#define CR0_VALID_BITS 0x8000001f +#define CR3_VALID_BITS 0xfffff000 +#endif /* SPC486 */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* 'mov' to control register. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +MOV_CR + +IFN2( + IU32, op1, /* index to control register */ + IU32, op2 /* src operand */ + ) + + + { + IU32 keep_et; + + /* + Maintain all Reserved bits as 0. + */ + switch ( op1 ) + { + case CR_STAT: /* system control flags */ + /* If trying to set PG=1 and PE=0, then fault. */ + if ( (op2 & BIT31_MASK) && !(op2 & BIT0_MASK) ) + GP((IU16)0, FAULT_MOV_CR_PAGE_IN_RM); + + /* Note ET bit is set at RESET time and remains unchanged */ + keep_et = GET_ET(); + SET_CR(CR_STAT, op2 & CR0_VALID_BITS); + SET_ET(keep_et); + break; + + case 1: /* reserved */ + break; + + case CR_PFLA: /* page fault linear address */ + SET_CR(CR_PFLA, op2); + break; + + case CR_PDBR: /* page directory base register (PDBR) */ + SET_CR(CR_PDBR, (op2 & CR3_VALID_BITS)); + flush_tlb(); + break; + + default: + break; + } + } + +#define DR7_VALID_BITS 0xffff03ff +#define DR6_VALID_BITS 0x0000e00f + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* 'mov' to debug register. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +MOV_DR + +IFN2( + IU32, op1, /* index to debug register, (0 - 7) */ + IU32, op2 /* src operand */ + ) + + + { + switch ( op1 ) + { + case 0: /* Breakpoint Linear Address */ + case 1: + case 2: + case 3: + SET_DR(op1, op2); + setup_breakpoints(); + break; + + case 4: /* Reserved */ + case 5: + break; + + case 6: /* Debug Status Register */ + SET_DR(DR_DSR, (op2 & DR6_VALID_BITS)); + break; + + case 7: /* Debug Control Register */ + SET_DR(DR_DCR, (op2 & DR7_VALID_BITS)); + setup_breakpoints(); + break; + + default: + break; + } + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* 'mov' to test register. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +MOV_TR + +IFN2( + IU32, op1, /* index to test register */ + IU32, op2 /* src operand */ + ) + + + { + switch ( op1 ) + { + case 0: /* Reserved */ + case 1: + case 2: + break; + + case TR_CDR: /* Cache test Data Register */ + printf("Write to Cache Test Data Register.\n"); + break; + + case TR_CSR: /* Cache test Status Register */ + printf("Write to Cache Test Status Register.\n"); + break; + + case TR_CCR: /* Cache test Control Register */ + printf("Write to Cache Test Control Register.\n"); + break; + + case TR_TCR: /* Test Command Register */ + SET_TR(TR_TCR, op2); + test_tlb(); + break; + + case TR_TDR: /* Test Data Register */ + SET_TR(TR_TDR, op2); + break; + + default: + break; + } + } + diff --git a/private/mvdm/softpc.new/base/ccpu386/mov.h b/private/mvdm/softpc.new/base/ccpu386/mov.h new file mode 100644 index 000000000..92f79fa4c --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/mov.h @@ -0,0 +1,49 @@ +/* + mov.h + + Define all MOV CPU functions. + */ + +/* + static char SccsID[]="@(#)mov.h 1.4 02/09/94"; + */ + +IMPORT VOID MOV + +IPT2( + IU32 *, pop1, + IU32, op2 + + ); + +IMPORT VOID MOV_SR /* to Segment Register */ + +IPT2( + IU32, op1, + IU32, op2 + + ); + +IMPORT VOID MOV_CR /* to Control Register */ + +IPT2( + IU32, op1, + IU32, op2 + + ); + +IMPORT VOID MOV_DR /* to Debug Register */ + +IPT2( + IU32, op1, + IU32, op2 + + ); + +IMPORT VOID MOV_TR /* to Test Register */ + +IPT2( + IU32, op1, + IU32, op2 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/movsx.c b/private/mvdm/softpc.new/base/ccpu386/movsx.c new file mode 100644 index 000000000..23e525e18 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/movsx.c @@ -0,0 +1,56 @@ +/*[ + +movsx.c + +LOCAL CHAR SccsID[]="@(#)movsx.c 1.5 02/09/94"; + +MOVSX CPU Functions. +-------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'movsx'. */ +/* NB. This function sign extends to 32-bits. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +MOVSX + +IFN3( + IU32 *, pop1, /* pntr to dst/lsrc operand */ + IU32, op2, /* rsrc operand */ + IUM8, op_sz /* 8 or 16-bit (original rsrc operand size) */ + ) + + + { + if ( SZ2MSB(op_sz) & op2 ) /* sign bit set? */ + { + /* or in sign extension */ + op2 = op2 | ~SZ2MASK(op_sz); + } + *pop1 = op2; + } diff --git a/private/mvdm/softpc.new/base/ccpu386/movsx.h b/private/mvdm/softpc.new/base/ccpu386/movsx.h new file mode 100644 index 000000000..e74e07b9d --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/movsx.h @@ -0,0 +1,18 @@ +/* + movsx.h + + MOVSX CPU functions. + */ + +/* + static char SccsID[]="@(#)movsx.h 1.4 02/09/94"; + */ + +IMPORT VOID MOVSX + +IPT3( + IU32 *, pop1, + IU32, op2, + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/mul.c b/private/mvdm/softpc.new/base/ccpu386/mul.c new file mode 100644 index 000000000..5b4b9561c --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/mul.c @@ -0,0 +1,147 @@ +/*[ + +mul.c + +LOCAL CHAR SccsID[]="@(#)mul.c 1.8 11/09/94"; + +MUL CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Unsigned multiply. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +MUL8 + +IFN2( + IU32 *, pop1, /* pntr to dst(low half)/lsrc operand */ + IU32, op2 /* rsrc operand */ + ) + + + { + IU32 result; + IU32 top; + + result = *pop1 * op2; /* Do operation */ + top = result >> 8 & 0xff; /* get top 8 bits of result */ + SET_AH(top); /* Store top half of result */ + + if ( top ) /* Set CF/OF */ + { + SET_CF(1); SET_OF(1); + } + else + { + SET_CF(0); SET_OF(0); + } + +#ifdef SET_UNDEFINED_MUL_FLAG + /* Do NOT Set all undefined flag. + * Microsoft VGA Mouse relies on preserved flags in IMUL + */ +#endif + + *pop1 = result; /* Return low half of result */ + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Unsigned multiply. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +MUL16 + +IFN2( + IU32 *, pop1, /* pntr to dst(low half)/lsrc operand */ + IU32, op2 /* rsrc operand */ + ) + + + { + IU32 result; + IU32 top; + + result = *pop1 * op2; /* Do operation */ + top = result >> 16 & WORD_MASK; /* get top 16 bits of result */ + SET_DX(top); /* Store top half of result */ + + if ( top ) /* Set CF/OF */ + { + SET_CF(1); SET_OF(1); + } + else + { + SET_CF(0); SET_OF(0); + } + +#ifdef SET_UNDEFINED_MUL_FLAG + /* Do NOT Set all undefined flag. + * Microsoft VGA Mouse relies on preserved flags in IMUL + */ +#endif + + *pop1 = result; /* Return low half of result */ + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Unsigned multiply. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +MUL32 + +IFN2( + IU32 *, pop1, /* pntr to dst(low half)/lsrc operand */ + IU32, op2 /* rsrc operand */ + ) + + + { + IU32 result; + IU32 top; + + mulu64(&top, &result, *pop1, op2); /* Do operation */ + SET_EDX(top); /* Store top half of result */ + + if ( top ) /* Set CF/OF */ + { + SET_CF(1); SET_OF(1); + } + else + { + SET_CF(0); SET_OF(0); + } + +#ifdef SET_UNDEFINED_MUL_FLAG + /* Do NOT Set all undefined flag. + * Microsoft VGA Mouse relies on preserved flags in IMUL + */ +#endif + + *pop1 = result; /* Return low half of result */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/mul.h b/private/mvdm/softpc.new/base/ccpu386/mul.h new file mode 100644 index 000000000..2199014ef --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/mul.h @@ -0,0 +1,33 @@ +/* + mul.h + + Define all MUL CPU functions. + */ + +/* + static char SccsID[]="@(#)mul.h 1.4 02/09/94"; + */ + +IMPORT VOID MUL8 + +IPT2( + IU32 *, pop1, + IU32, op2 + + ); + +IMPORT VOID MUL16 + +IPT2( + IU32 *, pop1, + IU32, op2 + + ); + +IMPORT VOID MUL32 + +IPT2( + IU32 *, pop1, + IU32, op2 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/neg.c b/private/mvdm/softpc.new/base/ccpu386/neg.c new file mode 100644 index 000000000..02671a6bb --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/neg.c @@ -0,0 +1,66 @@ +/*[ + +neg.c + +LOCAL CHAR SccsID[]="@(#)neg.c 1.5 02/09/94"; + +NEG CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'neg'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +NEG + +IFN2( + IU32 *, pop1, /* pntr to dst/src operand */ + IUM8, op_sz /* 8, 16 or 32-bit */ + ) + + + { + IU32 result; + IU32 msb; + IU32 op1_msb; + IU32 res_msb; + + msb = SZ2MSB(op_sz); + + result = -(*pop1) & SZ2MASK(op_sz); /* Do operation */ + op1_msb = (*pop1 & msb) != 0; /* Isolate all msb's */ + res_msb = (result & msb) != 0; + /* Determine flags */ + SET_OF(op1_msb & res_msb); /* OF = op1 & res */ + SET_CF(op1_msb | res_msb); /* CF = op1 | res */ + SET_PF(pf_table[result & BYTE_MASK]); + SET_ZF(result == 0); + SET_SF((result & msb) != 0); /* SF = MSB */ + SET_AF(((*pop1 ^ result) & BIT4_MASK) != 0); /* AF = Bit 4 carry */ + *pop1 = result; /* Return answer */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/neg.h b/private/mvdm/softpc.new/base/ccpu386/neg.h new file mode 100644 index 000000000..cc8b50bff --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/neg.h @@ -0,0 +1,17 @@ +/* + neg.h + + Define all NEG CPU functions. + */ + +/* + static char SccsID[]="@(#)neg.h 1.4 02/09/94"; + */ + +IMPORT VOID NEG + +IPT2( + IU32 *, pop1, + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/newnpx.h b/private/mvdm/softpc.new/base/ccpu386/newnpx.h new file mode 100644 index 000000000..92fefe90b --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/newnpx.h @@ -0,0 +1,73 @@ +/* + * SccsID = @(#)newnpx.h 1.4 10/06/94 + */ + +/* Function prototypes - everything returns void */ +IMPORT VOID F2XM1(); +IMPORT VOID FABS(); +IMPORT VOID FADD(); +IMPORT VOID FBLD(); +IMPORT VOID FBSTP(); +IMPORT VOID FCHS(); +IMPORT VOID FCLEX(); +IMPORT VOID FCOM(); +IMPORT VOID FCOS(); +IMPORT VOID FDECSTP(); +IMPORT VOID FDIV(); +IMPORT VOID FFREE(); +IMPORT VOID FILD(); +IMPORT VOID FLD(); +IMPORT VOID FINCSTP(); +IMPORT VOID FINIT(); +IMPORT VOID FIST(); +IMPORT VOID FLDCONST(); +IMPORT VOID FLDCW(); +IMPORT VOID FMUL(); +IMPORT VOID FNOP(); +IMPORT VOID FPATAN(); +IMPORT VOID FPREM(); +IMPORT VOID FPREM1(); +IMPORT VOID FPTAN(); +IMPORT VOID FRNDINT(); +IMPORT VOID FSTCW(); +IMPORT VOID FRSTOR(); +IMPORT VOID FSAVE(); +IMPORT VOID FSCALE(); +IMPORT VOID FSIN(); +IMPORT VOID FSINCOS(); +IMPORT VOID FSQRT(); +IMPORT VOID FST(); +IMPORT VOID FSTENV(); +IMPORT VOID FSTSW(); +IMPORT VOID FSTCW(); +IMPORT VOID FSUB(); +IMPORT VOID FTST(); +IMPORT VOID FXAM(); +IMPORT VOID FXCH(); +IMPORT VOID FXTRACT(); +IMPORT VOID FYL2X(); +IMPORT VOID FYL2XP1(); + +#define SAVE_PTRS() \ + if (!NPX_PROT_MODE) { \ + NpxFOP = NpxInstr; \ + } \ + NpxFCS = GET_CS_SELECTOR(); \ + NpxFIP = GET_EIP(); + +#define SAVE_DPTRS() \ + NpxFEA = m_off[0]; \ + NpxFDS = GET_SR_SELECTOR(m_seg[0]) + +typedef enum +{ +FPSTACK, +M16I, +M32I, +M64I, +M32R, +M64R, +M80R +} NPXOPTYPE; + +IMPORT IU8 FPtype; diff --git a/private/mvdm/softpc.new/base/ccpu386/nop.c b/private/mvdm/softpc.new/base/ccpu386/nop.c new file mode 100644 index 000000000..e140e2099 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/nop.c @@ -0,0 +1,38 @@ +/*[ + +nop.c + +LOCAL CHAR SccsID[]="@(#)nop.c 1.5 02/09/94"; + +NOP CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +GLOBAL VOID +NOP() + { + } diff --git a/private/mvdm/softpc.new/base/ccpu386/nop.h b/private/mvdm/softpc.new/base/ccpu386/nop.h new file mode 100644 index 000000000..d360ffdc7 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/nop.h @@ -0,0 +1,11 @@ +/* + nop.h + + Define all NOP CPU functions. + */ + +/* + static char SccsID[]="@(#)nop.h 1.5 09/01/94"; + */ + +IMPORT VOID NOP IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/not.c b/private/mvdm/softpc.new/base/ccpu386/not.c new file mode 100644 index 000000000..3b7fa0fdc --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/not.c @@ -0,0 +1,48 @@ +/*[ + +not.c + +LOCAL CHAR SccsID[]="@(#)not.c 1.5 02/09/94"; + +NOT CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'not'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +NOT + +IFN1( + IU32 *, pop1 /* pntr to dst/src operand */ + ) + + + { + *pop1 = ~*pop1; + } diff --git a/private/mvdm/softpc.new/base/ccpu386/not.h b/private/mvdm/softpc.new/base/ccpu386/not.h new file mode 100644 index 000000000..adb5ae61d --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/not.h @@ -0,0 +1,16 @@ +/* + not.h + + Define all NOT CPU functions. + */ + +/* + static char SccsID[]="@(#)not.h 1.4 02/09/94"; + */ + +IMPORT VOID NOT + +IPT1( + IU32 *, pop1 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/ntstubs.c b/private/mvdm/softpc.new/base/ccpu386/ntstubs.c new file mode 100644 index 000000000..df1855755 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/ntstubs.c @@ -0,0 +1,226 @@ +#include "insignia.h" +#include "host_def.h" +#include "evidgen.h" + +#include "cpu4.h" + +#ifndef PIG + +extern struct VideoVector C_Video; + +IHP Gdp; +struct CpuVector Cpu; +//struct SasVector Sas; +struct VideoVector Video; + +a3_cpu_interrupt (int errupt, IU16 numint) +{ + switch(errupt) + { + case 1: /* 3.0 cpu_timer_tick */ + c_cpu_interrupt(CPU_TIMER_TICK, numint); + break; + case 3: /* 3.0 cpu_hw_int */ + c_cpu_interrupt(CPU_HW_INT, numint); + break; + default: + printf("a3_cpu_interrupt - unhandled int %d\n", errupt); + } + +} +GLOBAL IBOOL AlreadyInYoda=FALSE; + +void Cpu_define_outb (IU16 id, void (*func)() ) +{ + UNUSED(id); + UNUSED(func); +} + +void CpuInitializeProfile() +{ +} + +void CpuAnalyzeProfile() +{ +} + +void CpuStartProfile() +{ +} + +IU32 a3_cpu_calc_q_ev_inst_for_time (IU32 val) +{ + return(c_cpu_calc_q_ev_inst_for_time (val)); +} + +void a3_cpu_init() +{ + c_cpu_init(); +} + +void a3_cpu_q_ev_set_count (IU32 val) +{ + c_cpu_q_ev_set_count (val); +} + +IU32 a3_cpu_q_ev_get_count () +{ + return(c_cpu_q_ev_get_count ()); +} + +void a3_cpu_clear_hw_int () +{ +} + +void a3_cpu_terminate () +{ + c_cpu_terminate(); +} + +void _asm_simulate() +{ + c_cpu_simulate(); +} + +#if 0 +void cpu_simulate() +{ + c_cpu_simulate(); +} +#endif + +void copyROM() +{ +} + +void initialise_npx() +{ +} + +void npx_reset() +{ +} + +IHPE Cpu_outb_function; +IHPE GDP; + +void _Call_C_2(IHPE a, IHPE b) +{ + UNUSED(a); + UNUSED(b); +} + +void D2DmpBinaryImage (LONG base) { UNUSED(base); } +void D2ForceTraceInit() { } +LONG D2LowerThreshold, D2UpperThreshold; +void IH_dump_frag_hist(ULONG n) { UNUSED(n); } +void Mgr_yoda() { } +char *NPXDebugBase = "NPXDebugBase"; +char *NPXDebugPtr = "NPXDebugPtr"; +ULONG *NPXFreq = (ULONG *)0; +ULONG get_287_control_word() { return(0L); } +double get_287_reg_as_double(int n) { return((double)n); } +int get_287_sp() { return(0); } +ULONG get_287_status_word() { return(0L); } +word get_287_tag_word() { return(0); } + + +#include "sas.h" + +#undef sas_connect_memory +void sas_connect_memory IFN3(PHY_ADDR, low, PHY_ADDR, high, SAS_MEM_TYPE, type) +{ + c_sas_connect_memory(low, high, type); +} +#undef sas_disable_20_bit_wrapping +void sas_disable_20_bit_wrapping IFN0() { c_sas_disable_20_bit_wrapping(); } +#undef sas_enable_20_bit_wrapping +void sas_enable_20_bit_wrapping IFN0() { c_sas_enable_20_bit_wrapping(); } +#undef sas_dw_at +IU32 sas_dw_at IFN1(LIN_ADDR, addr) { return(c_sas_dw_at(addr)); } +#undef sas_fills +void sas_fills IFN3(LIN_ADDR, dest, IU8 , val, LIN_ADDR, len) { c_sas_fills(dest, val, len); } +#undef sas_fillsw +void sas_fillsw IFN3(LIN_ADDR, dest, IU16 , val, LIN_ADDR, len) { c_sas_fillsw(dest, val, len); } +#undef sas_hw_at +IU8 sas_hw_at IFN1(LIN_ADDR, addr) { return(c_sas_hw_at(addr)); } +#undef sas_hw_at_no_check +IU8 sas_hw_at_no_check IFN1(LIN_ADDR, addr) { return(c_sas_hw_at(addr)); } +#undef sas_load +void sas_load IFN2(sys_addr, addr, half_word *, val) +{ + *val = c_sas_hw_at(addr); +} +#undef sas_loadw +void sas_loadw IFN2(sys_addr, addr, word *, val) +{ + *val = c_sas_w_at(addr); +} +#undef sas_loads +void sas_loads IFN3(LIN_ADDR, src, IU8 *, dest, LIN_ADDR, len) +{ + c_sas_loads(src, dest, len); +} +#undef sas_memory_size +PHY_ADDR sas_memory_size IFN0() { return(c_sas_memory_size()); } +#undef sas_memory_type +SAS_MEM_TYPE sas_memory_type IFN1(PHY_ADDR, addr) { return(c_sas_memory_type(addr)); } +#undef sas_move_bytes_forward +void sas_move_bytes_forward IFN3(sys_addr, src, sys_addr, dest, sys_addr, len) +{ + c_sas_move_bytes_forward(src, dest, len); +} +#undef sas_move_words_forward +void sas_move_words_forward IFN3(sys_addr, src, sys_addr, dest, sys_addr, len) +{ + c_sas_move_words_forward(src, dest, len); +} +#undef sas_overwrite_memory +void sas_overwrite_memory IFN2(PHY_ADDR, addr, PHY_ADDR, len) +{ + c_sas_overwrite_memory(addr, len); +} +#undef sas_scratch_address +IU8 *sas_scratch_address IFN1(sys_addr, length) { return(c_sas_scratch_address(length)); } +#undef sas_store +void sas_store IFN2(LIN_ADDR, addr, IU8, val) { c_sas_store(addr, val); } +#undef sas_store_no_check +void sas_store_no_check IFN2(LIN_ADDR, addr, IU8, val) { c_sas_store(addr, val); } +#undef sas_storedw +void sas_storedw IFN2(LIN_ADDR, addr, IU32, val) { c_sas_storedw(addr, val); } +#undef sas_storew +void sas_storew IFN2(LIN_ADDR, addr, IU16, val) { c_sas_storew(addr, val); } +#undef sas_storew_no_check +void sas_storew_no_check IFN2(LIN_ADDR, addr, IU16, val) { c_sas_storew(addr, val); } +#undef sas_stores +void sas_stores IFN3(LIN_ADDR, dest, IU8 *, src, LIN_ADDR, len) +{ + c_sas_stores(dest, src, len); +} +#undef sas_w_at +IU16 sas_w_at IFN1(LIN_ADDR, addr) { return(c_sas_w_at(addr)); } +#undef sas_w_at_no_check +IU16 sas_w_at_no_check IFN1(LIN_ADDR, addr) { return(c_sas_w_at(addr)); } +#undef sas_transbuf_address +IU8 *sas_transbuf_address IFN2(LIN_ADDR, dest_intel_addr, PHY_ADDR, len) +{ + return(c_sas_transbuf_address(dest_intel_addr, len)); +} +#undef sas_twenty_bit_wrapping_enabled +IBOOL sas_twenty_bit_wrapping_enabled() { return(c_sas_twenty_bit_wrapping_enabled()); } +#undef sas_loads_to_transbuf +void sas_loads_to_transbuf(IU32 src, IU8 * dest, IU32 len) +{ + sas_loads(src, dest, len); +} + +#undef sas_stores_from_transbuf +void sas_stores_from_transbuf(IU32 dest, IU8 * src, IU32 len) +{ + sas_stores(dest, src, len); +} + +/************************************************************************* +*************************************************************************/ + +#endif /* !PIG */ diff --git a/private/mvdm/softpc.new/base/ccpu386/ntthread.c b/private/mvdm/softpc.new/base/ccpu386/ntthread.c new file mode 100644 index 000000000..48f79d8d9 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/ntthread.c @@ -0,0 +1,253 @@ +#include +#include "insignia.h" +#include "host_def.h" + +#include +#include +#include + +#define BADID ((DWORD)-1) + +#define MAXDEPTH 20 + +typedef struct { + IS32 level; + jmp_buf sims[MAXDEPTH]; + jmp_buf excepts[MAXDEPTH]; +} ThreadSimBuf, *ThreadSimBufPtr; + +typedef struct tids { + DWORD tid; + struct tids *next; +} TidList, *TidListPtr; + +#define TIDNULL ((TidListPtr)0) + +TidListPtr tidlist = TIDNULL; + +void ccpu386InitThreadStuff(); +void ccpu386foundnewthread(); +void ccpu386newthread(); +void ccpu386exitthread(); +jmp_buf *ccpu386SimulatePtr(); +void ccpu386Unsimulate(); +jmp_buf *ccpu386ThrdExptnPtr(); +void ccpu386GotoThrdExptnPt(); + +DWORD ccpuSimId = BADID; +IBOOL potentialNewThread = FALSE; + +void ccpu386InitThreadStuff() +{ + static TidList lhead; + + ccpuSimId = TlsAlloc(); + + if (ccpuSimId == BADID) + fprintf(stderr, "ccpu386InitThreadStuff: TlsAlloc() failed\n"); + + lhead.tid = GetCurrentThreadId(); + lhead.next = TIDNULL; + tidlist = &lhead; + + ccpu386foundnewthread(); /* for main thread */ + +} + +// what we'd really like to do at create thread time if we could be called +// in the correct context. +void ccpu386foundnewthread() +{ + ThreadSimBufPtr simstack; + TidListPtr tp; + + if (ccpuSimId == BADID) + { + fprintf(stderr, "ccpu386foundnewthread id:%#x called with Bad Id\n", GetCurrentThreadId()); + return; + } + // get buffer for this thread to do sim/unsim on. + simstack = (ThreadSimBufPtr)malloc(sizeof(ThreadSimBuf)); + + if (simstack == (ThreadSimBufPtr)0) + { + fprintf(stderr, "ccpu386foundnewthread id:%#x cant malloc %d bytes. Err:%#x\n", GetCurrentThreadId(), sizeof(ThreadSimBuf), GetLastError()); + return; + } + simstack->level = 0; + if (!TlsSetValue(ccpuSimId, simstack)) + { + fprintf(stderr, "ccpu386foundnewthread id:%#x simid %#x TlsSetValue failed (err:%#x)\n", GetCurrentThreadId(), ccpuSimId, GetLastError()); + return; + } +} + +/* just set bool to be checked in simulate which will be in new thread context*/ +void ccpu386newthread() +{ + potentialNewThread = TRUE; +} + +void ccpu386exitthread() +{ + ThreadSimBufPtr simstack; + TidListPtr tp, prev; + + if (ccpuSimId == BADID) + { + fprintf(stderr, "ccpu386exitthread id:%#x called with Bad Id\n", GetCurrentThreadId()); + return; + } + simstack = (ThreadSimBufPtr)TlsGetValue(ccpuSimId); + if (simstack == (ThreadSimBufPtr)0) + { + fprintf(stderr, "ccpu386exitthread tid:%#x simid %#x TlsGetValue failed (err:%#x)\n", GetCurrentThreadId(), ccpuSimId, GetLastError()); + return; + } + free(simstack); //lose host sim memory for this thread + + prev = tidlist; + tp = tidlist->next; // assume wont lose main thread + + // remove tid from list of known threads + while(tp != TIDNULL) + { + if (tp->tid == GetCurrentThreadId()) + { + prev->next = tp->next; /* take current node out of chain */ + free(tp); + break; + } + prev = tp; + tp = tp->next; + } +} + +jmp_buf *ccpu386SimulatePtr() +{ + ThreadSimBufPtr simstack; + TidListPtr tp, prev; + + if (ccpuSimId == BADID) + { + fprintf(stderr, "ccpu386SimulatePtr id:%#x called with Bad Id\n", GetCurrentThreadId()); + return ((jmp_buf *)0); + } + + // Check for 'first call in new thread context' case where we need to set + // up new thread data space. + if (potentialNewThread) + { + prev = tp = tidlist; + while(tp != TIDNULL) // look for tid in current list + { + if (tp->tid == GetCurrentThreadId()) + break; + prev = tp; + tp = tp->next; + } + if (tp == TIDNULL) // must be new thread! + { + potentialNewThread = FALSE; // remove search criteria + + tp = (TidListPtr)malloc(sizeof(TidList)); // make new node + if (tp == TIDNULL) + { + fprintf(stderr, "ccpuSimulatePtr: can't malloc space for new thread data\n"); + return((jmp_buf *)0); + } + // connect & initialise node + prev->next = tp; + tp->tid = GetCurrentThreadId(); + tp->next = TIDNULL; + //get tls data + ccpu386foundnewthread(); + } + } + + simstack = (ThreadSimBufPtr)TlsGetValue(ccpuSimId); + if (simstack == (ThreadSimBufPtr)0) + { + fprintf(stderr, "ccpu386SimulatePtr tid:%#x simid %#x TlsGetValue failed (err:%#x)\n", GetCurrentThreadId(), ccpuSimId, GetLastError()); + return ((jmp_buf *)0); + } + + if (simstack->level >= MAXDEPTH) + { + fprintf(stderr, "Stack overflow in ccpu386SimulatePtr()!\n"); + return((jmp_buf *)0); + } + + /* return pointer to current context and invoke a new CPU level */ + /* can't setjmp here & return otherwise stack unwinds & context lost */ + + return(&simstack->sims[simstack->level++]); +} + +void ccpu386Unsimulate() +{ + ThreadSimBufPtr simstack; + extern ISM32 in_C; + + if (ccpuSimId == BADID) + { + fprintf(stderr, "ccpu386Unsimulate id:%#x called with Bad Id\n", GetCurrentThreadId()); + return ; + } + simstack = (ThreadSimBufPtr)TlsGetValue(ccpuSimId); + if (simstack == (ThreadSimBufPtr)0) + { + fprintf(stderr, "ccpu386Unsimulate tid:%#x simid %#x TlsGetValue failed (err:%#x)\n", GetCurrentThreadId(), ccpuSimId, GetLastError()); + return ; + } + + if (simstack->level == 0) + { + fprintf(stderr, "host_unsimulate() - already at base of stack!\n"); + } + + /* Return to previous context */ + in_C = 1; + simstack->level --; + longjmp(simstack->sims[simstack->level], 1); +} + + /* somewhere for exceptions to return to */ +jmp_buf *ccpu386ThrdExptnPtr() +{ + ThreadSimBufPtr simstack; + + if (ccpuSimId == BADID) + { + fprintf(stderr, "ccpu386ThrdExptnPtr id:%#x called with Bad Id\n", GetCurrentThreadId()); + return ; + } + simstack = (ThreadSimBufPtr)TlsGetValue(ccpuSimId); + if (simstack == (ThreadSimBufPtr)0) + { + fprintf(stderr, "ccpu386ThrdExptnPtr id:%#x TlsGetValue failed (err:%#x)\n", GetCurrentThreadId(), GetLastError()); + return ; + } + + return(&simstack->excepts[simstack->level - 1]); +} + +/* take exception */ +void ccpu386GotoThrdExptnPt() +{ + ThreadSimBufPtr simstack; + + if (ccpuSimId == BADID) + { + fprintf(stderr, "ccpu386GotoThrdExptnPtr id:%#x called with Bad Id\n", GetCurrentThreadId()); + return; + } + simstack = (ThreadSimBufPtr)TlsGetValue(ccpuSimId); + if (simstack == (ThreadSimBufPtr)0) + { + fprintf(stderr, "ccpu386GotoThrdExptnPtr id:%#x TlsGetValue failed (err:%#x)\n", GetCurrentThreadId(), GetLastError()); + return ; + } + + longjmp(simstack->excepts[simstack->level - 1], 1); +} diff --git a/private/mvdm/softpc.new/base/ccpu386/ntthread.h b/private/mvdm/softpc.new/base/ccpu386/ntthread.h new file mode 100644 index 000000000..a78d7bb5e --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/ntthread.h @@ -0,0 +1,9 @@ +extern void ccpu386InitThreadStuff(); +extern void ccpu386foundnewthread(); +extern void ccpu386newthread(); +extern void ccpu386exitthread(); +extern jmp_buf *ccpu386SimulatePtr(); +extern void ccpu386Unsimulate(); +extern jmp_buf *ccpu386ThrdExptnPtr(); +extern void ccpu386GotoThrdExptnPt(); + diff --git a/private/mvdm/softpc.new/base/ccpu386/or.c b/private/mvdm/softpc.new/base/ccpu386/or.c new file mode 100644 index 000000000..3c08e4751 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/or.c @@ -0,0 +1,59 @@ +/*[ + +or.c + +LOCAL CHAR SccsID[]="@(#)or.c 1.5 02/09/94"; + +OR CPU functions. +----------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'or'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +OR + +IFN3( + IU32 *, pop1, /* pntr to dst/lsrc operand */ + IU32, op2, /* rsrc operand */ + IUM8, op_sz /* 8, 16 or 32-bit */ + ) + + + { + IU32 result; + + result = *pop1 | op2; /* Do operation */ + SET_CF(0); /* Determine flags */ + SET_OF(0); + SET_AF(0); + SET_PF(pf_table[result & BYTE_MASK]); + SET_ZF(result == 0); + SET_SF((result & SZ2MSB(op_sz)) != 0); /* SF = MSB */ + *pop1 = result; /* Return answer */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/or.h b/private/mvdm/softpc.new/base/ccpu386/or.h new file mode 100644 index 000000000..164487c42 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/or.h @@ -0,0 +1,18 @@ +/* + or.h + + Define all OR CPU functions. + */ + +/* + static char SccsID[]="@(#)or.h 1.4 02/09/94"; + */ + +IMPORT VOID OR + +IPT3( + IU32 *, pop1, + IU32, op2, + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/out.c b/private/mvdm/softpc.new/base/ccpu386/out.c new file mode 100644 index 000000000..21ab73939 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/out.c @@ -0,0 +1,91 @@ +/*[ + +out.c + +LOCAL CHAR SccsID[]="@(#)out.c 1.8 09/27/94"; + +OUT CPU Functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE + ===================================================================== + */ + +/* + * Need to call the IO functions directly from the base arrays (just like + * the assembler CPU does), rather than calling outb etc., as the latter + * could cause a virtualisation that would end-up back here. + */ + +GLOBAL VOID +OUT8 + +IFN2( + IU32, op1, /* src1(port nr.) operand */ + IU32, op2 /* src2(data) operand */ + ) + + + { +#ifndef PIG + (*Ios_outb_function[Ios_out_adapter_table[op1 & + (PC_IO_MEM_SIZE-1)]]) + (op1, op2); +#endif /* !PIG */ + } + +GLOBAL VOID +OUT16 + +IFN2( + IU32, op1, /* src1(port nr.) operand */ + IU32, op2 /* src2(data) operand */ + ) + + + { +#ifndef PIG + (*Ios_outw_function[Ios_out_adapter_table[op1 & + (PC_IO_MEM_SIZE-1)]]) + (op1, op2); +#endif /* !PIG */ + } + +GLOBAL VOID +OUT32 IFN2( + IU32, op1, /* src1(port nr.) operand */ + IU32, op2 /* src2(data) operand */ + ) +{ +#ifndef PIG +#ifdef SFELLOW + (*Ios_outd_function[Ios_out_adapter_table[op1 & + (PC_IO_MEM_SIZE-1)]]) + (op1, op2); +#else + OUT16(op1, op2 & 0xffff); + OUT16(op1 + 2, op2 >> 16); +#endif +#endif /* !PIG */ +} diff --git a/private/mvdm/softpc.new/base/ccpu386/out.h b/private/mvdm/softpc.new/base/ccpu386/out.h new file mode 100644 index 000000000..083679cd7 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/out.h @@ -0,0 +1,33 @@ +/* + out.h + + Define all OUT CPU functions. + */ + +/* + static char SccsID[]="@(#)out.h 1.4 02/09/94"; + */ + +IMPORT VOID OUT8 + +IPT2( + IU32, op1, + IU32, op2 + + ); + +IMPORT VOID OUT16 + +IPT2( + IU32, op1, + IU32, op2 + + ); + +IMPORT VOID OUT32 + +IPT2( + IU32, op1, + IU32, op2 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/pigger_c.h b/private/mvdm/softpc.new/base/ccpu386/pigger_c.h new file mode 100644 index 000000000..bd74bf42b --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/pigger_c.h @@ -0,0 +1,4 @@ +#ifndef _Pigger_c_h +#define _Pigger_c_h +#define Pig (1) +#endif /* ! _Pigger_c_h */ diff --git a/private/mvdm/softpc.new/base/ccpu386/pop.c b/private/mvdm/softpc.new/base/ccpu386/pop.c new file mode 100644 index 000000000..5ff195b54 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/pop.c @@ -0,0 +1,78 @@ +/*[ + +pop.c + +LOCAL CHAR SccsID[]="@(#)pop.c 1.5 02/09/94"; + +POP CPU Functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'pop'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +POP + +IFN1( + IU32 *, pop1 + ) + + + { + validate_stack_exists(USE_SP, (ISM32)NR_ITEMS_1); + *pop1 = spop(); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* 'pop' to segment register. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +POP_SR + +IFN1( + IU32, op1 /* index to segment register */ + ) + + + { + IU32 op2; /* data from stack */ + + /* get implicit operand without changing (E)SP */ + validate_stack_exists(USE_SP, (ISM32)NR_ITEMS_1); + op2 = tpop(STACK_ITEM_1, NULL_BYTE_OFFSET); + + /* only use bottom 16-bits */ + op2 &= WORD_MASK; + + /* do the move */ + MOV_SR(op1, op2); + + /* if it works update (E)SP */ + change_SP((IS32)NR_ITEMS_1); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/pop.h b/private/mvdm/softpc.new/base/ccpu386/pop.h new file mode 100644 index 000000000..fff5856f1 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/pop.h @@ -0,0 +1,23 @@ +/* + pop.h + + Define all POP CPU functions. + */ + +/* + static char SccsID[]="@(#)pop.h 1.4 02/09/94"; + */ + +IMPORT VOID POP + +IPT1( + IU32 *, pop1 + + ); + +IMPORT VOID POP_SR /* to Segment Register */ + +IPT1( + IU32, op1 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/popa.c b/private/mvdm/softpc.new/base/ccpu386/popa.c new file mode 100644 index 000000000..4a6e2e1e0 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/popa.c @@ -0,0 +1,61 @@ +/*[ + +popa.c + +LOCAL CHAR SccsID[]="@(#)popa.c 1.5 02/09/94"; + +POPA CPU Functions. +------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE + ===================================================================== + */ + + +GLOBAL VOID +POPA() + { + validate_stack_exists(USE_SP, (ISM32)NR_ITEMS_8); + SET_DI(spop()); + SET_SI(spop()); + SET_BP(spop()); + (VOID) spop(); /* throwaway SP */ + SET_BX(spop()); + SET_DX(spop()); + SET_CX(spop()); + SET_AX(spop()); + } + +GLOBAL VOID +POPAD() + { + validate_stack_exists(USE_SP, (ISM32)NR_ITEMS_8); + SET_EDI(spop()); + SET_ESI(spop()); + SET_EBP(spop()); + (VOID) spop(); /* throwaway ESP */ + SET_EBX(spop()); + SET_EDX(spop()); + SET_ECX(spop()); + SET_EAX(spop()); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/popa.h b/private/mvdm/softpc.new/base/ccpu386/popa.h new file mode 100644 index 000000000..9999551b4 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/popa.h @@ -0,0 +1,13 @@ +/* + popa.h + + Define all POPA CPU functions. + */ + +/* + static char SccsID[]="@(#)popa.h 1.5 09/01/94"; + */ + +IMPORT VOID POPA IPT0(); + +IMPORT VOID POPAD IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/popf.c b/private/mvdm/softpc.new/base/ccpu386/popf.c new file mode 100644 index 000000000..848f39910 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/popf.c @@ -0,0 +1,67 @@ +/*[ + +popf.c + +LOCAL CHAR SccsID[]="@(#)popf.c 1.6 02/05/95"; + +POPF CPU Functions. +------------------- + +]*/ + + +#include + +#include +#include +#include CpuH +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE + ===================================================================== + */ + + +GLOBAL VOID +POPF() + { + validate_stack_exists(USE_SP, (ISM32)NR_ITEMS_1); + setFLAGS(spop()); + } + +GLOBAL VOID +POPFD() + { + IU32 keep_vm; + IU32 keep_rf; + IU32 val; + + validate_stack_exists(USE_SP, (ISM32)NR_ITEMS_1); + + /* NB. POPFD does not change the VM or RF flags. */ + keep_vm = GET_VM(); + keep_rf = GET_RF(); + val = spop(); + if (val & (7 << 19)) + { + char buf[64]; + sprintf(buf, "POPFD attempt to pop %08x", val); + note_486_instruction(buf); + } + c_setEFLAGS(val); + SET_VM(keep_vm); + SET_RF(keep_rf); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/popf.h b/private/mvdm/softpc.new/base/ccpu386/popf.h new file mode 100644 index 000000000..6a5690334 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/popf.h @@ -0,0 +1,13 @@ +/* + popf.h + + Define all POPF CPU functions. + */ + +/* + static char SccsID[]="@(#)popf.h 1.5 09/01/94"; + */ + +IMPORT VOID POPF IPT0(); + +IMPORT VOID POPFD IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/push.c b/private/mvdm/softpc.new/base/ccpu386/push.c new file mode 100644 index 000000000..f0e250a06 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/push.c @@ -0,0 +1,68 @@ +/*[ + +push.c + +LOCAL CHAR SccsID[]="@(#)push.c 1.6 07/05/94"; + +PUSH CPU Functions. +------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'push'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +PUSH + +IFN1( + IU32, op1 + ) + + + { + validate_stack_space(USE_SP, (ISM32)NR_ITEMS_1); + spush(op1); + } + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* 'push' segment register (always write 16 bits, in a 16/32 bit hole)*/ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +PUSH_SR + +IFN1( + IU32, op1 + ) + + + { + validate_stack_space(USE_SP, (ISM32)NR_ITEMS_1); + spush16(op1); + } + + diff --git a/private/mvdm/softpc.new/base/ccpu386/push.h b/private/mvdm/softpc.new/base/ccpu386/push.h new file mode 100644 index 000000000..57f3d747e --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/push.h @@ -0,0 +1,23 @@ +/* + push.h + + Define all PUSH CPU functions. + */ + +/* + static char SccsID[]="@(#)push.h 1.5 07/05/94"; + */ + +IMPORT VOID PUSH + +IPT1( + IU32, op1 + + ); + +IMPORT VOID PUSH_SR + +IPT1( + IU32, op1 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/pusha.c b/private/mvdm/softpc.new/base/ccpu386/pusha.c new file mode 100644 index 000000000..5addeaa51 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/pusha.c @@ -0,0 +1,53 @@ +/*[ + +pusha.c + +LOCAL CHAR SccsID[]="@(#)pusha.c 1.5 02/09/94"; + +PUSHA CPU Functions. +-------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE + ===================================================================== + */ + + +GLOBAL VOID +PUSHA() + { + IU32 temp; + + /* verify stack is writable */ + validate_stack_space(USE_SP, (ISM32)NR_ITEMS_8); + + /* all ok, shunt data onto stack */ + temp = GET_ESP(); + spush((IU32)GET_EAX()); + spush((IU32)GET_ECX()); + spush((IU32)GET_EDX()); + spush((IU32)GET_EBX()); + spush(temp); + spush((IU32)GET_EBP()); + spush((IU32)GET_ESI()); + spush((IU32)GET_EDI()); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/pusha.h b/private/mvdm/softpc.new/base/ccpu386/pusha.h new file mode 100644 index 000000000..08002c029 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/pusha.h @@ -0,0 +1,11 @@ +/* + pusha.h + + Define all PUSHA CPU functions. + */ + +/* + static char SccsID[]="@(#)pusha.h 1.5 09/01/94"; + */ + +IMPORT VOID PUSHA IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/pushf.c b/private/mvdm/softpc.new/base/ccpu386/pushf.c new file mode 100644 index 000000000..b3dd130db --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/pushf.c @@ -0,0 +1,51 @@ +/*[ + +pushf.c + +LOCAL CHAR SccsID[]="@(#)pushf.c 1.6 01/17/95"; + +PUSHF CPU Functions. +-------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE + ===================================================================== + */ + + +GLOBAL VOID +PUSHF() + { + IU32 flags; + + /* verify stack is writable */ + validate_stack_space(USE_SP, (ISM32)NR_ITEMS_1); + + /* all ok, shunt data onto stack */ + flags = c_getEFLAGS(); + + /* VM and RF are cleared in pushed image. */ + flags = flags & ~BIT17_MASK; /* Clear VM */ + flags = flags & ~BIT16_MASK; /* Clear RF */ + + spush(flags); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/pushf.h b/private/mvdm/softpc.new/base/ccpu386/pushf.h new file mode 100644 index 000000000..172f8fd59 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/pushf.h @@ -0,0 +1,11 @@ +/* + pushf.h + + Define all PUSHF CPU functions. + */ + +/* + static char SccsID[]="@(#)pushf.h 1.5 09/01/94"; + */ + +IMPORT VOID PUSHF IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/rcl.c b/private/mvdm/softpc.new/base/ccpu386/rcl.c new file mode 100644 index 000000000..8920af476 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/rcl.c @@ -0,0 +1,91 @@ +/*[ + +rcl.c + +LOCAL CHAR SccsID[]="@(#)rcl.c 1.5 02/09/94"; + +RCL CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'rcl'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +RCL + +IFN3( + IU32 *, pop1, /* pntr to dst/src operand */ + IU32, op2, /* rotation count operand */ + IUM8, op_sz /* 8, 16 or 32-bit */ + ) + + + { + IU32 result; + IU32 feedback; /* Bit posn to feed into carry */ + ISM32 i; + ISM32 new_of; + + /* only use lower five bits of count */ + if ( (op2 &= 0x1f) == 0 ) + return; + + /* + ==== ================= + -- |CF| <-- | | | | | | | | | <-- + | ==== ================= | + --------------------------------- + */ + feedback = SZ2MSB(op_sz); + for ( result = *pop1, i = 0; i < op2; i++ ) + { + if ( result & feedback ) + { + result = result << 1 | GET_CF(); + SET_CF(1); + } + else + { + result = result << 1 | GET_CF(); + SET_CF(0); + } + } + + /* OF = CF ^ MSB of result */ + new_of = GET_CF() ^ (result & feedback) != 0; + + if ( op2 == 1 ) + { + SET_OF(new_of); + } + else + { + do_multiple_shiftrot_of(new_of); + } + + *pop1 = result; /* Return answer */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/rcl.h b/private/mvdm/softpc.new/base/ccpu386/rcl.h new file mode 100644 index 000000000..10e836d4a --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/rcl.h @@ -0,0 +1,18 @@ +/* + rcl.h + + Define all RCL CPU functions. + */ + +/* + static char SccsID[]="@(#)rcl.h 1.4 02/09/94"; + */ + +IMPORT VOID RCL + +IPT3( + IU32 *, pop1, + IU32, op2, + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/rcr.c b/private/mvdm/softpc.new/base/ccpu386/rcr.c new file mode 100644 index 000000000..df6515a94 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/rcr.c @@ -0,0 +1,87 @@ +/*[ + +rcr.c + +LOCAL CHAR SccsID[]="@(#)rcr.c 1.5 02/09/94"; + +RCR CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'rcr'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +RCR + +IFN3( + IU32 *, pop1, /* pntr to dst/src operand */ + IU32, op2, /* rotation count operand */ + IUM8, op_sz /* 8, 16 or 32-bit */ + ) + + + { + IU32 temp_cf; + IU32 result; + IU32 feedback; /* Bit posn to feed carry back to */ + ISM32 i; + ISM32 new_of; + + /* only use lower five bits of count */ + if ( (op2 &= 0x1f) == 0 ) + return; + + /* + ================= ==== + -> | | | | | | | | | --> |CF| --- + | ================= ==== | + --------------------------------- + */ + feedback = SZ2MSB(op_sz); + for ( result = *pop1, i = 0; i < op2; i++ ) + { + temp_cf = GET_CF(); + SET_CF((result & BIT0_MASK) != 0); /* CF <= Bit 0 */ + result >>= 1; + if ( temp_cf ) + result |= feedback; + } + + /* OF = MSB of result ^ (MSB-1) of result */ + new_of = ((result ^ result << 1) & feedback) != 0; + + if ( op2 == 1 ) + { + SET_OF(new_of); + } + else + { + do_multiple_shiftrot_of(new_of); + } + + *pop1 = result; /* Return answer */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/rcr.h b/private/mvdm/softpc.new/base/ccpu386/rcr.h new file mode 100644 index 000000000..ca1010663 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/rcr.h @@ -0,0 +1,18 @@ +/* + rcr.h + + Define all RCR CPU functions. + */ + +/* + static char SccsID[]="@(#)rcr.h 1.4 02/09/94"; + */ + +IMPORT VOID RCR + +IPT3( + IU32 *, pop1, + IU32, op2, + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/ret.c b/private/mvdm/softpc.new/base/ccpu386/ret.c new file mode 100644 index 000000000..196744737 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/ret.c @@ -0,0 +1,270 @@ +/*[ + +ret.c + +LOCAL CHAR SccsID[]="@(#)ret.c 1.9 02/27/95"; + +RET CPU Functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Process far RET. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +RETF + +IFN1( + IU32, op1 /* Number of bytes to pop from stack. + NB OS2 Rel 2 implies (contrary to Intel doc.) that + imm16(op1) is always a byte quantity! */ + ) + + + { + IU16 new_cs; /* The return destination */ + IU32 new_ip; + + IU32 cs_descr_addr; /* code segment descriptor address */ + CPU_DESCR cs_entry; /* code segment descriptor entry */ + + ISM32 dest_type; /* category for destination */ + ISM32 privilege; /* return privilege level */ + + IU16 new_ss; /* The new stack */ + IU32 new_sp; + + IU32 ss_descr_addr; /* stack segment descriptor address */ + CPU_DESCR ss_entry; /* stack segment descriptor entry */ + + IS32 stk_inc; /* Stack increment for basic instruction */ + ISM32 stk_item; /* Number of items of immediate data */ + + /* must have CS:(E)IP on the stack */ + validate_stack_exists(USE_SP, (ISM32)NR_ITEMS_2); + + /* retrieve return destination from stack */ + new_ip = tpop(STACK_ITEM_1, NULL_BYTE_OFFSET); + new_cs = tpop(STACK_ITEM_2, NULL_BYTE_OFFSET); + + /* force immediate offset to be an item count */ + if ( GET_OPERAND_SIZE() == USE16 ) + stk_item = op1 / 2; + else /* USE32 */ + stk_item = op1 / 4; + + if ( GET_PE() == 0 || GET_VM() == 1 ) + { + /* Real Mode or V86 Mode */ + +#ifdef TAKE_REAL_MODE_LIMIT_FAULT + + /* do ip limit check */ + if ( new_ip > GET_CS_LIMIT() ) + GP((IU16)0, FAULT_RETF_RM_CS_LIMIT); + +#else /* TAKE_REAL_MODE_LIMIT_FAULT */ + + /* The Soft486 EDL CPU does not take Real Mode limit failures. + * Since the Ccpu486 is used as a "reference" cpu we wish it + * to behave a C version of the EDL Cpu rather than as a C + * version of a i486. + */ + +#endif /* TAKE_REAL_MODE_LIMIT_FAULT */ + + /* all systems go */ + load_CS_cache(new_cs, (IU32)0, (CPU_DESCR *)0); + SET_EIP(new_ip); + + stk_inc = NR_ITEMS_2; /* allow for CS:(E)IP */ + } + else + { + /* Protected Mode */ + + /* decode final action and complete stack check */ + privilege = GET_SELECTOR_RPL(new_cs); + if ( privilege < GET_CPL() ) + { + GP(new_cs, FAULT_RETF_PM_ACCESS); /* you can't get to higher privilege */ + } + else if ( privilege == GET_CPL() ) + { + dest_type = SAME_LEVEL; + } + else + { + /* going to lower privilege */ + /* must have CS:(E)IP, immed bytes, SS:(E)SP on stack */ + validate_stack_exists(USE_SP, (ISM32)(NR_ITEMS_4 + stk_item)); + dest_type = LOWER_PRIVILEGE; + } + + if ( selector_outside_GDT_LDT(new_cs, &cs_descr_addr) ) + GP(new_cs, FAULT_RETF_SELECTOR); + + /* check type, access and presence of return addr */ + + /* load descriptor */ + read_descriptor_linear(cs_descr_addr, &cs_entry); + + /* must be a code segment */ + switch ( descriptor_super_type(cs_entry.AR) ) + { + case CONFORM_NOREAD_CODE: + case CONFORM_READABLE_CODE: + /* access check requires DPL <= return RPL */ + if ( GET_AR_DPL(cs_entry.AR) > privilege ) + GP(new_cs, FAULT_RETF_ACCESS_1); + break; + + case NONCONFORM_NOREAD_CODE: + case NONCONFORM_READABLE_CODE: + /* access check requires DPL == return RPL */ + if ( GET_AR_DPL(cs_entry.AR) != privilege ) + GP(new_cs, FAULT_RETF_ACCESS_2); + break; + + default: + GP(new_cs, FAULT_RETF_BAD_SEG_TYPE); + } + + if ( GET_AR_P(cs_entry.AR) == NOT_PRESENT ) + NP(new_cs, FAULT_RETF_CS_NOTPRESENT); + + /* action the target */ + switch ( dest_type ) + { + case SAME_LEVEL: + /* do ip limit checking */ + if ( new_ip > cs_entry.limit ) + GP((IU16)0, FAULT_RETF_PM_CS_LIMIT_1); + + /* ALL SYSTEMS GO */ + + load_CS_cache(new_cs, cs_descr_addr, &cs_entry); + SET_EIP(new_ip); + stk_inc = NR_ITEMS_2; /* allow for CS:(E)IP */ + break; + + case LOWER_PRIVILEGE: + /* + + ========== + SS:SP -> | old IP | + | old CS | + | parm 1 | + | ... | + | parm n | + | old SP | + | old SS | + ========== + */ + + /* check new stack */ + new_ss = tpop(STACK_ITEM_4, (ISM32)op1); + check_SS(new_ss, privilege, &ss_descr_addr, &ss_entry); + + /* do ip limit checking */ + if ( new_ip > cs_entry.limit ) + GP((IU16)0, FAULT_RETF_PM_CS_LIMIT_2); + + /* ALL SYSTEMS GO */ + + SET_CPL(privilege); + + load_CS_cache(new_cs, cs_descr_addr, &cs_entry); + SET_EIP(new_ip); + + new_sp = tpop(STACK_ITEM_3, (ISM32)op1); + load_SS_cache(new_ss, ss_descr_addr, &ss_entry); + if ( GET_OPERAND_SIZE() == USE16 ) + SET_SP(new_sp); + else + SET_ESP(new_sp); + stk_inc = 0; + + /* finally re-validate DS and ES segments */ + load_data_seg_new_privilege(DS_REG); + load_data_seg_new_privilege(ES_REG); + load_data_seg_new_privilege(FS_REG); + load_data_seg_new_privilege(GS_REG); + break; + } + } + + /* finally increment stack pointer */ + change_SP(stk_inc); + byte_change_SP((IS32)op1); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* near return */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +RETN + +IFN1( + IU32, op1 + ) + + + { + IU32 new_ip; + + /* must have ip on stack */ + validate_stack_exists(USE_SP, (ISM32)NR_ITEMS_1); + + new_ip = tpop(STACK_ITEM_1, NULL_BYTE_OFFSET); /* get ip */ + + /* do ip limit check */ +#ifndef TAKE_REAL_MODE_LIMIT_FAULT + /* The Soft486 EDL CPU does not take Real Mode limit failures. + * Since the Ccpu486 is used as a "reference" cpu we wish it + * to behave a C version of the EDL Cpu rather than as a C + * version of a i486. + */ + + if ( GET_PE() == 1 && GET_VM() == 0 ) +#endif /* nTAKE_REAL_MODE_LIMIT_FAULT */ + { + if ( new_ip > GET_CS_LIMIT() ) + GP((IU16)0, FAULT_RETN_CS_LIMIT); + } + + /* all systems go */ + SET_EIP(new_ip); + change_SP((IS32)NR_ITEMS_1); + + if ( op1 ) + { + byte_change_SP((IS32)op1); + } + } diff --git a/private/mvdm/softpc.new/base/ccpu386/ret.h b/private/mvdm/softpc.new/base/ccpu386/ret.h new file mode 100644 index 000000000..b2f35db92 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/ret.h @@ -0,0 +1,23 @@ +/* + ret.h + + Define all RET CPU functions. + */ + +/* + static char SccsID[]="@(#)ret.h 1.4 02/09/94"; + */ + +IMPORT VOID RETF + +IPT1( + IU32, op1 + + ); + +IMPORT VOID RETN + +IPT1( + IU32, op1 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/rol.c b/private/mvdm/softpc.new/base/ccpu386/rol.c new file mode 100644 index 000000000..96a691b11 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/rol.c @@ -0,0 +1,91 @@ +/*[ + +rol.c + +LOCAL CHAR SccsID[]="@(#)rol.c 1.5 02/09/94"; + +ROL CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'rol'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +ROL + +IFN3( + IU32 *, pop1, /* pntr to dst/src operand */ + IU32, op2, /* rotation count operand */ + IUM8, op_sz /* 8, 16 or 32-bit */ + ) + + + { + IU32 result; + IU32 feedback; /* Bit posn to feed into Bit 0 */ + ISM32 i; + ISM32 new_of; + + /* only use lower five bits of count */ + if ( (op2 &= 0x1f) == 0 ) + return; + + /* + ==== ================= + |CF| <-- -- | | | | | | | | | <-- + ==== | ================= | + ------------------------ + */ + feedback = SZ2MSB(op_sz); + for ( result = *pop1, i = 0; i < op2; i++ ) + { + if ( result & feedback ) + { + result = result << 1 | 1; + SET_CF(1); + } + else + { + result <<= 1; + SET_CF(0); + } + } + + /* OF = CF ^ MSB of result */ + new_of = GET_CF() ^ (result & feedback) != 0; + + if ( op2 == 1 ) + { + SET_OF(new_of); + } + else + { + do_multiple_shiftrot_of(new_of); + } + + *pop1 = result; /* Return answer */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/rol.h b/private/mvdm/softpc.new/base/ccpu386/rol.h new file mode 100644 index 000000000..7711b7303 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/rol.h @@ -0,0 +1,18 @@ +/* + rol.h + + Define all ROL CPU functions. + */ + +/* + static char SccsID[]="@(#)rol.h 1.4 02/09/94"; + */ + +IMPORT VOID ROL + +IPT3( + IU32 *, pop1, + IU32, op2, + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/ror.c b/private/mvdm/softpc.new/base/ccpu386/ror.c new file mode 100644 index 000000000..66b06c0b6 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/ror.c @@ -0,0 +1,91 @@ +/*[ + +ror.c + +LOCAL CHAR SccsID[]="@(#)ror.c 1.5 02/09/94"; + +ROR CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'ror'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +ROR + +IFN3( + IU32 *, pop1, /* pntr to dst/src operand */ + IU32, op2, /* rotation count operand */ + IUM8, op_sz /* 8, 16 or 32-bit */ + ) + + + { + IU32 result; + IU32 feedback; /* Bit posn to feed Bit 0 back to */ + ISM32 i; + ISM32 new_of; + + /* only use lower five bits of count */ + if ( (op2 &= 0x1f) == 0 ) + return; + + /* + ================= ==== + -> | | | | | | | | | --- --> |CF| + | ================= | ==== + ------------------------ + */ + feedback = SZ2MSB(op_sz); + for ( result = *pop1, i = 0; i < op2; i++ ) + { + if ( result & BIT0_MASK ) + { + result = result >> 1 | feedback; + SET_CF(1); + } + else + { + result >>= 1; + SET_CF(0); + } + } + + /* OF = MSB of result ^ (MSB-1) of result */ + new_of = ((result ^ result << 1) & feedback) != 0; + + if ( op2 == 1 ) + { + SET_OF(new_of); + } + else + { + do_multiple_shiftrot_of(new_of); + } + + *pop1 = result; /* Return answer */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/ror.h b/private/mvdm/softpc.new/base/ccpu386/ror.h new file mode 100644 index 000000000..de4d08d95 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/ror.h @@ -0,0 +1,18 @@ +/* + ror.h + + Define all ROR CPU functions. + */ + +/* + static char SccsID[]="@(#)ror.h 1.4 02/09/94"; + */ + +IMPORT VOID ROR + +IPT3( + IU32 *, pop1, + IU32, op2, + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/rsrvd.c b/private/mvdm/softpc.new/base/ccpu386/rsrvd.c new file mode 100644 index 000000000..0554359e0 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/rsrvd.c @@ -0,0 +1,45 @@ +/*[ + +rsrvd.c + +LOCAL CHAR SccsID[]="@(#)rsrvd.c 1.5 02/09/94"; + +Reserved CPU Functions. +----------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + ===================================================================== + EXECUTION STARTS HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Reserved opcode. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +VOID +RSRVD() + { + /* + Reserved operation - nothing to do. + In particular reserved opcodes do not cause Int6 exceptions. + 0f 07, 0f 10, 0f 11, 0f 12, 0f 13 are known to be reserved. + */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/rsrvd.h b/private/mvdm/softpc.new/base/ccpu386/rsrvd.h new file mode 100644 index 000000000..7316f215c --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/rsrvd.h @@ -0,0 +1,11 @@ +/* + rsrvd.h + + Define Reserved CPU functions. + */ + +/* + static char SccsID[]="@(#)rsrvd.h 1.5 09/01/94"; + */ + +IMPORT VOID RSRVD IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/sahf.c b/private/mvdm/softpc.new/base/ccpu386/sahf.c new file mode 100644 index 000000000..4a9b3deb7 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/sahf.c @@ -0,0 +1,49 @@ +/*[ + +sahf.c + +LOCAL CHAR SccsID[]="@(#)sahf.c 1.5 02/09/94"; + +SAHF CPU functions. +------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +GLOBAL VOID +SAHF() + { + IU32 temp; + + /* 7 6 5 4 3 2 1 0 */ + /* AH = */ + + temp = GET_AH(); + SET_SF((temp & BIT7_MASK) != 0); + SET_ZF((temp & BIT6_MASK) != 0); + SET_AF((temp & BIT4_MASK) != 0); + SET_PF((temp & BIT2_MASK) != 0); + SET_CF((temp & BIT0_MASK) != 0); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/sahf.h b/private/mvdm/softpc.new/base/ccpu386/sahf.h new file mode 100644 index 000000000..38783c63c --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/sahf.h @@ -0,0 +1,11 @@ +/* + sahf.h + + Define all SAHF CPU functions. + */ + +/* + static char SccsID[]="@(#)sahf.h 1.5 09/01/94"; + */ + +IMPORT VOID SAHF IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/sar.c b/private/mvdm/softpc.new/base/ccpu386/sar.c new file mode 100644 index 000000000..9cbc0dfe9 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/sar.c @@ -0,0 +1,82 @@ +/*[ + +sar.c + +LOCAL CHAR SccsID[]="@(#)sar.c 1.5 02/09/94"; + +SAR CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'sar'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +SAR + +IFN3( + IU32 *, pop1, /* pntr to dst/src operand */ + IU32, op2, /* shift count operand */ + IUM8, op_sz /* 8, 16 or 32-bit */ + ) + + + { + IU32 prelim; + IU32 result; + IU32 feedback; + ISM32 i; + + /* only use lower five bits of count */ + if ( (op2 &= 0x1f) == 0 ) + return; + + /* + ================= ==== + --> | | | | | | | | | --> |CF| + | ================= ==== + ---- | + */ + prelim = *pop1; /* Initialise */ + feedback = prelim & SZ2MSB(op_sz); /* Determine MSB */ + for ( i = 0; i < (op2 - 1); i++ ) /* Do all but last shift */ + { + prelim = prelim >> 1 | feedback; + } + SET_CF((prelim & BIT0_MASK) != 0); /* CF = Bit 0 */ + result = prelim >> 1 | feedback; /* Do final shift */ + SET_OF(0); + SET_PF(pf_table[result & BYTE_MASK]); + SET_ZF(result == 0); + SET_SF(feedback != 0); /* SF = MSB */ + + /* Set undefined flag(s) */ +#ifdef SET_UNDEFINED_FLAG + SET_AF(UNDEFINED_FLAG); +#endif + + *pop1 = result; /* Return answer */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/sar.h b/private/mvdm/softpc.new/base/ccpu386/sar.h new file mode 100644 index 000000000..ec2bf6288 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/sar.h @@ -0,0 +1,18 @@ +/* + sar.h + + Define all SAR CPU functions. + */ + +/* + static char SccsID[]="@(#)sar.h 1.4 02/09/94"; + */ + +IMPORT VOID SAR + +IPT3( + IU32 *, pop1, + IU32, op2, + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/sascdef.c b/private/mvdm/softpc.new/base/ccpu386/sascdef.c new file mode 100644 index 000000000..4d6959da1 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/sascdef.c @@ -0,0 +1,142 @@ +/*[ + * Generated File: sasCdef.c + * +]*/ + +#include "insignia.h" +#include "host_inc.h" +#include "host_def.h" +#include "Fpu_c.h" +#include "PigReg_c.h" +#include "Univer_c.h" +#define CPU_PRIVATE +#include "cpu4.h" +#include "gdpvar.h" +#include "sas.h" +#include "evidgen.h" + +#include +GLOBAL void SasAccessProblem IFN0() +{ + fprintf(stderr, "Sas used at illegal time\n"); +} + +extern TYPE_sas_memory_size c_sas_memory_size; +extern TYPE_sas_connect_memory c_sas_connect_memory; +extern TYPE_sas_enable_20_bit_wrapping c_sas_enable_20_bit_wrapping; +extern TYPE_sas_disable_20_bit_wrapping c_sas_disable_20_bit_wrapping; +extern TYPE_sas_twenty_bit_wrapping_enabled c_sas_twenty_bit_wrapping_enabled; +extern TYPE_sas_memory_type c_sas_memory_type; +extern TYPE_sas_hw_at c_sas_hw_at; +extern TYPE_sas_w_at c_sas_w_at; +extern TYPE_sas_dw_at c_sas_dw_at; +extern TYPE_sas_hw_at_no_check c_sas_hw_at; +extern TYPE_sas_w_at_no_check c_sas_w_at; +extern TYPE_sas_dw_at_no_check c_sas_dw_at; +extern TYPE_sas_store c_sas_store; +extern TYPE_sas_storew c_sas_storew; +extern TYPE_sas_storedw c_sas_storedw; +extern TYPE_sas_store_no_check c_sas_store; +extern TYPE_sas_storew_no_check c_sas_storew; +extern TYPE_sas_storedw_no_check c_sas_storedw; +extern TYPE_sas_loads c_sas_loads; +extern TYPE_sas_stores c_sas_stores; +extern TYPE_sas_loads_no_check c_sas_loads_no_check; +extern TYPE_sas_stores_no_check c_sas_stores_no_check; +extern TYPE_sas_move_bytes_forward c_sas_move_bytes_forward; +extern TYPE_sas_move_words_forward c_sas_move_words_forward; +extern TYPE_sas_move_doubles_forward c_sas_move_doubles_forward; +extern TYPE_sas_move_bytes_backward c_sas_move_bytes_backward; +extern TYPE_sas_move_words_backward c_sas_move_words_backward; +extern TYPE_sas_move_doubles_backward c_sas_move_doubles_backward; +extern TYPE_sas_fills c_sas_fills; +extern TYPE_sas_fillsw c_sas_fillsw; +extern TYPE_sas_fillsdw c_sas_fillsdw; +extern TYPE_sas_scratch_address c_sas_scratch_address; +extern TYPE_sas_transbuf_address c_sas_transbuf_address; +extern TYPE_sas_loads_to_transbuf c_sas_loads; +extern TYPE_sas_stores_from_transbuf c_sas_stores; +extern TYPE_sas_PR8 phy_r8; +extern TYPE_sas_PR16 phy_r16; +extern TYPE_sas_PR32 phy_r32; +extern TYPE_sas_PW8 phy_w8; +extern TYPE_sas_PW16 phy_w16; +extern TYPE_sas_PW32 phy_w32; +extern TYPE_sas_PW8_no_check phy_w8_no_check; +extern TYPE_sas_PW16_no_check phy_w16_no_check; +extern TYPE_sas_PW32_no_check phy_w32_no_check; +extern TYPE_getPtrToPhysAddrByte c_GetPhyAdd; +extern TYPE_get_byte_addr c_get_byte_addr; +extern TYPE_getPtrToLinAddrByte c_GetLinAdd; +extern TYPE_sas_init_pm_selectors c_SasRegisterVirtualSelectors; +extern TYPE_sas_PWS c_sas_PWS; +extern TYPE_sas_PWS_no_check c_sas_PWS_no_check; +extern TYPE_sas_PRS c_sas_PRS; +extern TYPE_sas_PRS_no_check c_sas_PRS_no_check; +extern TYPE_sas_PigCmpPage c_sas_PigCmpPage; +extern TYPE_sas_touch c_sas_touch; +extern TYPE_IOVirtualised c_IOVirtualised; +extern TYPE_VirtualiseInstruction c_VirtualiseInstruction; + + +struct SasVector cSasPtrs = { + c_sas_memory_size, + c_sas_connect_memory, + c_sas_enable_20_bit_wrapping, + c_sas_disable_20_bit_wrapping, + c_sas_twenty_bit_wrapping_enabled, + c_sas_memory_type, + c_sas_hw_at, + c_sas_w_at, + c_sas_dw_at, + c_sas_hw_at, + c_sas_w_at, + c_sas_dw_at, + c_sas_store, + c_sas_storew, + c_sas_storedw, + c_sas_store, + c_sas_storew, + c_sas_storedw, + c_sas_loads, + c_sas_stores, + c_sas_loads_no_check, + c_sas_stores_no_check, + c_sas_move_bytes_forward, + c_sas_move_words_forward, + c_sas_move_doubles_forward, + c_sas_move_bytes_backward, + c_sas_move_words_backward, + c_sas_move_doubles_backward, + c_sas_fills, + c_sas_fillsw, + c_sas_fillsdw, + c_sas_scratch_address, + c_sas_transbuf_address, + c_sas_loads, + c_sas_stores, + phy_r8, + phy_r16, + phy_r32, + phy_w8, + phy_w16, + phy_w32, + phy_w8_no_check, + phy_w16_no_check, + phy_w32_no_check, + c_GetPhyAdd, + c_get_byte_addr, + c_GetLinAdd, + c_SasRegisterVirtualSelectors, + (void (*)()) 0, + c_sas_PWS, + c_sas_PWS_no_check, + c_sas_PRS, + c_sas_PRS_no_check, + c_sas_PigCmpPage, + c_sas_touch, + c_IOVirtualised, + c_VirtualiseInstruction +}; + +/*======================================== END ========================================*/ diff --git a/private/mvdm/softpc.new/base/ccpu386/sbb.c b/private/mvdm/softpc.new/base/ccpu386/sbb.c new file mode 100644 index 000000000..0c73b5426 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/sbb.c @@ -0,0 +1,80 @@ +/*[ + +sbb.c + +LOCAL CHAR SccsID[]="@(#)sbb.c 1.5 02/09/94"; + +SBB CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'sbb'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +SBB + +IFN3( + IU32 *, pop1, /* pntr to dst/lsrc operand */ + IU32, op2, /* rsrc operand */ + IUM8, op_sz /* 8, 16 or 32-bit */ + ) + + + { + IU32 result; + IU32 carry; + IU32 msb; + IU32 op1_msb; + IU32 op2_msb; + IU32 res_msb; + + msb = SZ2MSB(op_sz); + /* Do operation */ + result = *pop1 - op2 - GET_CF() & SZ2MASK(op_sz); + op1_msb = (*pop1 & msb) != 0; /* Isolate all msb's */ + op2_msb = (op2 & msb) != 0; + res_msb = (result & msb) != 0; + carry = *pop1 ^ op2 ^ result; /* Isolate carries */ + /* Determine flags */ + /* + OF = (op1 == !op2) & (op1 ^ res) + ie if operand signs differ and res sign different to original + destination set OF. + */ + SET_OF((op1_msb != op2_msb) & (op1_msb ^ res_msb)); + /* + Formally:- CF = !op1 & op2 | res & !op1 | res & op2 + Equivalently:- CF = OF ^ op1 ^ op2 ^ res + */ + SET_CF(((carry & msb) != 0) ^ GET_OF()); + SET_PF(pf_table[result & BYTE_MASK]); + SET_ZF(result == 0); + SET_SF((result & msb) != 0); /* SF = MSB */ + SET_AF((carry & BIT4_MASK) != 0); /* AF = Bit 4 carry */ + *pop1 = result; /* Return answer */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/sbb.h b/private/mvdm/softpc.new/base/ccpu386/sbb.h new file mode 100644 index 000000000..8b6e67a9d --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/sbb.h @@ -0,0 +1,18 @@ +/* + sbb.h + + Define all SBB CPU functions. + */ + +/* + static char SccsID[]="@(#)sbb.h 1.4 02/09/94"; + */ + +IMPORT VOID SBB + +IPT3( + IU32 *, pop1, + IU32, op2, + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/setxx.c b/private/mvdm/softpc.new/base/ccpu386/setxx.c new file mode 100644 index 000000000..ba4f19237 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/setxx.c @@ -0,0 +1,275 @@ +/*[ + +setxx.c + +LOCAL CHAR SccsID[]="@(#)setxx.c 1.5 02/09/94"; + +SETxx CPU functions (Byte Set on Condition). +-------------------------------------------- + +All these functions return 1 if the condition is true, else 0. + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Set Byte if Below (CF=1) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +SETB + +IFN1( + IU32 *, pop1 /* pntr to dst operand */ + ) + + + { + *pop1 = GET_CF(); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Set Byte if Below or Equal (CF=1 || ZF=1) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +SETBE + +IFN1( + IU32 *, pop1 /* pntr to dst operand */ + ) + + + { + *pop1 = GET_CF() || GET_ZF(); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Set Byte if Less (SF != OF) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +SETL + +IFN1( + IU32 *, pop1 /* pntr to dst operand */ + ) + + + { + *pop1 = GET_SF() != GET_OF(); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Set Byte if Less or Equal (ZF=1 || (SF != OF)) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +SETLE + +IFN1( + IU32 *, pop1 /* pntr to dst operand */ + ) + + + { + *pop1 = GET_SF() != GET_OF() || GET_ZF(); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Set Byte if Not Below (CF=0) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +SETNB + +IFN1( + IU32 *, pop1 /* pntr to dst operand */ + ) + + + { + *pop1 = !GET_CF(); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Set Byte if Not Below or Equal (CF=0 && ZF=0) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +SETNBE + +IFN1( + IU32 *, pop1 /* pntr to dst operand */ + ) + + + { + *pop1 = !GET_CF() && !GET_ZF(); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Set Byte if Not Less (SF==OF) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +SETNL + +IFN1( + IU32 *, pop1 /* pntr to dst operand */ + ) + + + { + *pop1 = GET_SF() == GET_OF(); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Set Byte if Not Less or Equal (ZF=0 && (SF==OF)) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +SETNLE + +IFN1( + IU32 *, pop1 /* pntr to dst operand */ + ) + + + { + *pop1 = GET_SF() == GET_OF() && !GET_ZF(); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Set Byte if Not Overflow (OF=0) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +SETNO + +IFN1( + IU32 *, pop1 /* pntr to dst operand */ + ) + + + { + *pop1 = !GET_OF(); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Set Byte if Not Parity (PF=0) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +SETNP + +IFN1( + IU32 *, pop1 /* pntr to dst operand */ + ) + + + { + *pop1 = !GET_PF(); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Set Byte if Not Sign (SF=0) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +SETNS + +IFN1( + IU32 *, pop1 /* pntr to dst operand */ + ) + + + { + *pop1 = !GET_SF(); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Set Byte if Not Zero (ZF=0) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +SETNZ + +IFN1( + IU32 *, pop1 /* pntr to dst operand */ + ) + + + { + *pop1 = !GET_ZF(); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Set Byte if Overflow (OF=1) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +SETO + +IFN1( + IU32 *, pop1 /* pntr to dst operand */ + ) + + + { + *pop1 = GET_OF(); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Set Byte if Parity (PF=1) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +SETP + +IFN1( + IU32 *, pop1 /* pntr to dst operand */ + ) + + + { + *pop1 = GET_PF(); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Set Byte if Sign (SF=1) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +SETS + +IFN1( + IU32 *, pop1 /* pntr to dst operand */ + ) + + + { + *pop1 = GET_SF(); + } + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Set Byte if Zero (ZF=1) */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +SETZ + +IFN1( + IU32 *, pop1 /* pntr to dst operand */ + ) + + + { + *pop1 = GET_ZF(); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/setxx.h b/private/mvdm/softpc.new/base/ccpu386/setxx.h new file mode 100644 index 000000000..615bb7bda --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/setxx.h @@ -0,0 +1,121 @@ +/* + setxx.h + + SETxx CPU functions. + */ + +/* + static char SccsID[]="@(#)setxx.h 1.4 02/09/94"; + */ + +IMPORT VOID SETB + +IPT1( + IU32 *, pop1 + + ); + +IMPORT VOID SETBE + +IPT1( + IU32 *, pop1 + + ); + +IMPORT VOID SETL + +IPT1( + IU32 *, pop1 + + ); + +IMPORT VOID SETLE + +IPT1( + IU32 *, pop1 + + ); + +IMPORT VOID SETNB + +IPT1( + IU32 *, pop1 + + ); + +IMPORT VOID SETNBE + +IPT1( + IU32 *, pop1 + + ); + +IMPORT VOID SETNL + +IPT1( + IU32 *, pop1 + + ); + +IMPORT VOID SETNLE + +IPT1( + IU32 *, pop1 + + ); + +IMPORT VOID SETNO + +IPT1( + IU32 *, pop1 + + ); + +IMPORT VOID SETNP + +IPT1( + IU32 *, pop1 + + ); + +IMPORT VOID SETNS + +IPT1( + IU32 *, pop1 + + ); + +IMPORT VOID SETNZ + +IPT1( + IU32 *, pop1 + + ); + +IMPORT VOID SETO + +IPT1( + IU32 *, pop1 + + ); + +IMPORT VOID SETP + +IPT1( + IU32 *, pop1 + + ); + +IMPORT VOID SETS + +IPT1( + IU32 *, pop1 + + ); + +IMPORT VOID SETZ + +IPT1( + IU32 *, pop1 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/sgdt.c b/private/mvdm/softpc.new/base/ccpu386/sgdt.c new file mode 100644 index 000000000..90012c0e9 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/sgdt.c @@ -0,0 +1,70 @@ +/*[ + +sgdt.c + +LOCAL CHAR SccsID[]="@(#)sgdt.c 1.5 02/09/94"; + +SGDT CPU Functions. +------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE + ===================================================================== + */ + + +GLOBAL VOID +SGDT16 +#ifdef ANSI + ( + IU32 op1[2] /* dst (limit:base pair) operand */ + ) +#else + (op1) + IU32 op1[2]; +#endif + { + /* + NB. The Intel manual says the top 8-bits will be stored as zero's, + I think they mean this only if it was loaded with a 24-bit (286 + like) value. Otherwise it just stores what was loaded. + It might be that it always stores 'FF' like 286, this needs + checking. + */ + op1[0] = GET_STAR_LIMIT(GDT_REG); + op1[1] = GET_STAR_BASE(GDT_REG); + } + +GLOBAL VOID +SGDT32 +#ifdef ANSI + ( + IU32 op1[2] /* dst (limit:base pair) operand */ + ) +#else + (op1) + IU32 op1[2]; +#endif + { + op1[0] = GET_STAR_LIMIT(GDT_REG); + op1[1] = GET_STAR_BASE(GDT_REG); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/sgdt.h b/private/mvdm/softpc.new/base/ccpu386/sgdt.h new file mode 100644 index 000000000..455f7ecad --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/sgdt.h @@ -0,0 +1,23 @@ +/* + sgdt.h + + Define all SGDT CPU functions. + */ + +/* + static char SccsID[]="@(#)sgdt.h 1.4 02/09/94"; + */ + +IMPORT VOID SGDT16 + +IPT1( + IU32, op1[2] + + ); + +IMPORT VOID SGDT32 + +IPT1( + IU32, op1[2] + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/shl.c b/private/mvdm/softpc.new/base/ccpu386/shl.c new file mode 100644 index 000000000..8c849adbc --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/shl.c @@ -0,0 +1,88 @@ +/*[ + +shl.c + +LOCAL CHAR SccsID[]="@(#)shl.c 1.5 02/09/94"; + +SHL CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'shl'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +SHL + +IFN3( + IU32 *, pop1, /* pntr to dst/src operand */ + IU32, op2, /* shift count operand */ + IUM8, op_sz /* 8, 16 or 32-bit */ + ) + + + { + IU32 result; + IU32 msb; + ISM32 new_of; + + /* only use lower five bits of count */ + if ( (op2 &= 0x1f) == 0 ) + return; + + msb = SZ2MSB(op_sz); + + /* + ==== ================= + |CF| <-- | | | | | | | | | <-- 0 + ==== ================= + */ + result = *pop1 << op2 - 1; /* Do all but last shift */ + SET_CF((result & msb) != 0); /* CF = MSB */ + result = result << 1 & SZ2MASK(op_sz); /* Do final shift */ + SET_PF(pf_table[result & BYTE_MASK]); + SET_ZF(result == 0); + SET_SF((result & msb) != 0); /* SF = MSB */ + + /* OF = CF ^ SF(MSB) */ + new_of = GET_CF() ^ GET_SF(); + + if ( op2 == 1 ) + { + SET_OF(new_of); + } + else + { + do_multiple_shiftrot_of(new_of); + } + + /* Set undefined flag(s) */ +#ifdef SET_UNDEFINED_FLAG + SET_AF(UNDEFINED_FLAG); +#endif + + *pop1 = result; /* Return answer */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/shl.h b/private/mvdm/softpc.new/base/ccpu386/shl.h new file mode 100644 index 000000000..a76d75434 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/shl.h @@ -0,0 +1,18 @@ +/* + shl.h + + Define all SHL CPU functions. + */ + +/* + static char SccsID[]="@(#)shl.h 1.4 02/09/94"; + */ + +IMPORT VOID SHL + +IPT3( + IU32 *, pop1, + IU32, op2, + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/shld.c b/private/mvdm/softpc.new/base/ccpu386/shld.c new file mode 100644 index 000000000..f7e3e24a1 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/shld.c @@ -0,0 +1,125 @@ +/*[ + +shld.c + +LOCAL CHAR SccsID[]="@(#)shld.c 1.6 09/02/94"; + +SHLD CPU functions. +------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'shld'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +SHLD + +IFN4( + IU32 *, pop1, /* pntr to dst/lsrc operand */ + IU32, op2, /* rsrc operand */ + IU32, op3, /* shift count operand */ + IUM8, op_sz /* 16 or 32-bit */ + ) + + + { + IU32 result; + IU32 msb; + ISM32 new_of; + + /* only use lower five bits of count, ie modulo 32 */ + if ( (op3 &= 0x1f) == 0 ) + return; + + /* + NB. Intel doc. says that if op3 >= op_sz then the operation + is undefined. In practice if op_sz is 32 then as op3 is taken + modulo 32 it can never be in the undefined range and if op_sz + is 16 the filler bits from op2 are 'recycled' for counts of 16 + and above. + */ + + /* + ==== ================= ================= + |CF| <-- | | | |op1| | | | <-- | | | |op2| | | | + ==== ================= ================= + */ + + if ( op_sz == 16 ) + { + op2 = op2 << 16 | op2; /* Double up filler bits */ + } + + /* Do all but last shift */ + op3 = op3 - 1; /* op3 now in range 0 - 30 */ + if ( op3 != 0 ) + { + result = *pop1 << op3 | op2 >> 32-op3; + op2 = op2 << op3; + } + else + { + result = *pop1; + } + + /* Last shift will put MSB into carry */ + msb = SZ2MSB(op_sz); + SET_CF((result & msb) != 0); + + /* Now do final shift */ + result = result << 1 | op2 >> 31; + result = result & SZ2MASK(op_sz); + + SET_PF(pf_table[result & 0xff]); + SET_ZF(result == 0); + SET_SF((result & msb) != 0); + + /* OF set if sign changes */ + new_of = GET_CF() ^ GET_SF(); + + if ( op3 == 0 ) /* NB Count has been decremented! */ + { + SET_OF(new_of); + } + else + { +#ifdef SET_UNDEFINED_SHxD_FLAG + /* Set OF to changed SF(original) and SF(result) */ + new_of = ((result ^ *pop1) & SZ2MSB(op_sz)) != 0; + SET_OF(new_of); +#else /* SET_UNDEFINED_SHxD_FLAG */ + do_multiple_shiftrot_of(new_of); +#endif /* SET_UNDEFINED_SHxD_FLAG */ + } + + /* Set undefined flag(s) */ +#ifdef SET_UNDEFINED_FLAG + SET_AF(UNDEFINED_FLAG); +#endif + + *pop1 = result; /* Return answer */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/shld.h b/private/mvdm/softpc.new/base/ccpu386/shld.h new file mode 100644 index 000000000..76dca6c2f --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/shld.h @@ -0,0 +1,19 @@ +/* + shld.h + + SHLD CPU functions. + */ + +/* + static char SccsID[]="@(#)shld.h 1.4 02/09/94"; + */ + +IMPORT VOID SHLD + +IPT4( + IU32 *, pop1, + IU32, op2, + IU32, op3, + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/shr.c b/private/mvdm/softpc.new/base/ccpu386/shr.c new file mode 100644 index 000000000..43c774d13 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/shr.c @@ -0,0 +1,87 @@ +/*[ + +shr.c + +LOCAL CHAR SccsID[]="@(#)shr.c 1.5 02/09/94"; + +SHR CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'shr'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +SHR + +IFN3( + IU32 *, pop1, /* pntr to dst/src operand */ + IU32, op2, /* shift count operand */ + IUM8, op_sz /* 8, 16 or 32-bit */ + ) + + + { + IU32 prelim; + IU32 result; + ISM32 new_of; + + /* only use lower five bits of count */ + if ( (op2 &= 0x1f) == 0 ) + return; + + /* + ================= ==== + 0 --> | | | | | | | | | --> |CF| + ================= ==== + */ + prelim = *pop1 >> op2 - 1; /* Do all but last shift */ + SET_CF((prelim & BIT0_MASK) != 0); /* CF = Bit 0 */ + + /* OF = MSB of operand */ + new_of = (prelim & SZ2MSB(op_sz)) != 0; + + result = prelim >> 1; /* Do final shift */ + SET_PF(pf_table[result & BYTE_MASK]); + SET_ZF(result == 0); + SET_SF(0); + + if ( op2 == 1 ) + { + SET_OF(new_of); + } + else + { + do_multiple_shiftrot_of(new_of); + } + + /* Set undefined flag(s) */ +#ifdef SET_UNDEFINED_FLAG + SET_AF(UNDEFINED_FLAG); +#endif + + *pop1 = result; /* Return answer */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/shr.h b/private/mvdm/softpc.new/base/ccpu386/shr.h new file mode 100644 index 000000000..942f5348c --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/shr.h @@ -0,0 +1,18 @@ +/* + shr.h + + Define all SHR CPU functions. + */ + +/* + static char SccsID[]="@(#)shr.h 1.4 02/09/94"; + */ + +IMPORT VOID SHR + +IPT3( + IU32 *, pop1, + IU32, op2, + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/shrd.c b/private/mvdm/softpc.new/base/ccpu386/shrd.c new file mode 100644 index 000000000..0d519768a --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/shrd.c @@ -0,0 +1,127 @@ +/*[ + +shrd.c + +LOCAL CHAR SccsID[]="@(#)shrd.c 1.6 09/02/94"; + +SHRD CPU functions. +------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'shrd'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +SHRD + +IFN4( + IU32 *, pop1, /* pntr to dst/lsrc operand */ + IU32, op2, /* rsrc operand */ + IU32, op3, /* shift count operand */ + IUM8, op_sz /* 16 or 32-bit */ + ) + + + { + IU32 result; + IU32 msb; + ISM32 new_of; + + /* only use lower five bits of count */ + if ( (op3 &= 0x1f) == 0 ) + return; + + /* + NB. Intel doc. says that if op3 >= op_sz then the operation + is undefined. In practice if op_sz is 32 then as op3 is taken + modulo 32 it can never be in the undefined range and if op_sz + is 16 the filler bits from op2 are 'recycled' for counts of 16 + and above. + */ + + /* + ================= ================= ==== + | | | |op2| | | | --> | | | |op1| | | | --> |CF| + ================= ================= ==== + */ + + if ( op_sz == 16 ) + { + *pop1 = op2 << 16 | *pop1; /* Double up filler bits */ + } + + /* Do all but last shift */ + op3 = op3 - 1; /* op3 now in range 0 - 30 */ + if ( op3 != 0 ) + { + result = *pop1 >> op3 | op2 << 32-op3; + op2 = op2 >> op3; + } + else + { + result = *pop1; + } + + SET_CF((result & BIT0_MASK) != 0); /* last shift puts LSB in CF */ + + /* save msb */ + msb = SZ2MSB(op_sz); + msb = (result & msb) != 0; + + /* Now do final shift */ + result = result >> 1 | op2 << 31; + result = result & SZ2MASK(op_sz); + + SET_PF(pf_table[result & 0xff]); + SET_ZF(result == 0); + SET_SF((result & SZ2MSB(op_sz)) != 0); + + /* set OF if sign changes */ + new_of = msb ^ GET_SF(); + + if ( op3 == 0 ) /* NB Count has been decremented! */ + { + SET_OF(new_of); + } + else + { +#ifdef SET_UNDEFINED_SHxD_FLAG + /* Set OF to changed SF(original) and SF(result) */ + new_of = ((result ^ *pop1) & SZ2MSB(op_sz)) != 0; + SET_OF(new_of); +#else /* SET_UNDEFINED_SHxD_FLAG */ + do_multiple_shiftrot_of(new_of); +#endif /* SET_UNDEFINED_SHxD_FLAG */ + } + + /* Set undefined flag(s) */ +#ifdef SET_UNDEFINED_FLAG + SET_AF(UNDEFINED_FLAG); +#endif + + *pop1 = result; /* Return answer */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/shrd.h b/private/mvdm/softpc.new/base/ccpu386/shrd.h new file mode 100644 index 000000000..e4a3c6ae8 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/shrd.h @@ -0,0 +1,19 @@ +/* + shrd.h + + SHRD CPU functions. + */ + +/* + static char SccsID[]="@(#)shrd.h 1.4 02/09/94"; + */ + +IMPORT VOID SHRD + +IPT4( + IU32 *, pop1, + IU32, op2, + IU32, op3, + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/sidt.c b/private/mvdm/softpc.new/base/ccpu386/sidt.c new file mode 100644 index 000000000..6e1911c1d --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/sidt.c @@ -0,0 +1,71 @@ +/*[ + +sidt.c + +LOCAL CHAR SccsID[]="@(#)sidt.c 1.5 02/09/94"; + +SIDT CPU Functions. +------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE + ===================================================================== + */ + + +GLOBAL VOID +SIDT16 +#ifdef ANSI + ( + IU32 op1[2] /* dst (limit:base pair) operand */ + ) +#else + (op1) + IU32 op1[2]; +#endif + { + /* + NB. The Intel manual says the top 8-bits will be stored as zero's, + I think they mean this only if it was loaded with a 24-bit (286 + like) value. Otherwise it just stores what was loaded. + It might be that it always stores 'FF' like 286, this needs + checking. + */ + + op1[0] = GET_STAR_LIMIT(IDT_REG); + op1[1] = GET_STAR_BASE(IDT_REG); + } + +GLOBAL VOID +SIDT32 +#ifdef ANSI + ( + IU32 op1[2] /* dst (limit:base pair) operand */ + ) +#else + (op1) + IU32 op1[2]; +#endif + { + op1[0] = GET_STAR_LIMIT(IDT_REG); + op1[1] = GET_STAR_BASE(IDT_REG); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/sidt.h b/private/mvdm/softpc.new/base/ccpu386/sidt.h new file mode 100644 index 000000000..37e94ca8d --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/sidt.h @@ -0,0 +1,23 @@ +/* + sidt.h + + Define all SIDT CPU functions. + */ + +/* + static char SccsID[]="@(#)sidt.h 1.4 02/09/94"; + */ + +IMPORT VOID SIDT16 + +IPT1( + IU32, op1[2] + + ); + +IMPORT VOID SIDT32 + +IPT1( + IU32, op1[2] + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/sldt.c b/private/mvdm/softpc.new/base/ccpu386/sldt.c new file mode 100644 index 000000000..08449a102 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/sldt.c @@ -0,0 +1,45 @@ +/*[ + +sldt.c + +LOCAL CHAR SccsID[]="@(#)sldt.c 1.5 02/09/94"; + +SLDT CPU Functions. +------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE + ===================================================================== + */ + + +GLOBAL VOID +SLDT + +IFN1( + IU32 *, pop1 + ) + + + { + *pop1 = GET_LDT_SELECTOR(); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/sldt.h b/private/mvdm/softpc.new/base/ccpu386/sldt.h new file mode 100644 index 000000000..97dfd5e94 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/sldt.h @@ -0,0 +1,16 @@ +/* + sldt.h + + Define all SLDT CPU functions. + */ + +/* + static char SccsID[]="@(#)sldt.h 1.4 02/09/94"; + */ + +IMPORT VOID SLDT + +IPT1( + IU32 *, pop1 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/smsw.c b/private/mvdm/softpc.new/base/ccpu386/smsw.c new file mode 100644 index 000000000..c48037992 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/smsw.c @@ -0,0 +1,43 @@ +/*[ + +smsw.c + +LOCAL CHAR SccsID[]="@(#)smsw.c 1.5 02/09/94"; + +SMSW CPU Functions. +------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE + ===================================================================== + */ + +GLOBAL VOID +SMSW + +IFN1( + IU32 *, pop1 + ) + + { + *pop1 = GET_MSW(); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/smsw.h b/private/mvdm/softpc.new/base/ccpu386/smsw.h new file mode 100644 index 000000000..054f53048 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/smsw.h @@ -0,0 +1,16 @@ +/* + smsw.h + + Define all SMSW CPU functions. + */ + +/* + static char SccsID[]="@(#)smsw.h 1.4 02/09/94"; + */ + +IMPORT VOID SMSW + +IPT1( + IU32 *, pop1 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/sources b/private/mvdm/softpc.new/base/ccpu386/sources new file mode 100644 index 000000000..19214a837 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/sources @@ -0,0 +1,183 @@ +!IF 0 + +Copyright (c) 1989 Microsoft Corporation + +Module Name: + + sources. + +Abstract: + + This file specifies the target component being built and the list of + sources files needed to build that component. Also specifies optional + compiler switches and libraries that are unique for the component being + built. + + +Author: + + Steve Wood (stevewo) 12-Apr-1990 + +NOTE: Commented description of this file is in \nt\bak\bin\sources.tpl + +!ENDIF + + +MAJORCOMP=spclib +MINORCOMP=ccpu + +TARGETNAME=ccpu386 + +TARGETPATH=obj + + +NTPROFILEINPUT=yes + +# Pick one of the following and delete the others +TARGETTYPE=LIBRARY + + +TARGETLIBS= + +SOFTPC_TREE=$(BASEDIR)\private\mvdm\softpc.new + +INCLUDES=$(SOFTPC_TREE)\Ccpu386;$(SOFTPC_TREE)\host\inc;$(SOFTPC_TREE)\base\inc;$(SOFTPC_TREE)\host\genPg\inc +GPSIZE=32 + + + +SOURCES= aaa.c \ + aad.c \ + aam.c \ + aas.c \ + adc.c \ + add.c \ + and.c \ + arpl.c \ + bound.c \ + bsf.c \ + bsr.c \ + bswap.c \ + bt.c \ + btc.c \ + btr.c \ + bts.c \ + call.c \ + cbw.c \ + ccpupig.c \ + ccpusas4.c \ + cdq.c \ + clc.c \ + cld.c \ + cli.c \ + clts.c \ + cmc.c \ + cmp.c \ + cmpxchg.c \ + cwd.c \ + cwde.c \ + c_addr.c \ + c_bsic.c \ + c_debug.c \ + c_div64.c \ + c_getset.c \ + c_intr.c \ + c_main.c \ + c_mul64.c \ + c_neg64.c \ + c_page.c \ + c_prot.c \ + c_reg.c \ + c_seg.c \ + c_stack.c \ + c_tlb.c \ + c_tsksw.c \ + c_xcptn.c \ + c_xfer.c \ + c_xtrn.c \ + daa.c \ + das.c \ + dec.c \ + div.c \ + enter.c \ + fpu.c \ + idiv.c \ + imul.c \ + in.c \ + inc.c \ + into.c \ + intx.c \ + invd.c \ + invlpg.c \ + iret.c \ + jcxz.c \ + jmp.c \ + jxx.c \ + lahf.c \ + lar.c \ + lea.c \ + leave.c \ + lgdt.c \ + lidt.c \ + lldt.c \ + lmsw.c \ + loopxx.c \ + lsl.c \ + ltr.c \ + lxs.c \ + mov.c \ + movsx.c \ + mul.c \ + neg.c \ + nop.c \ + not.c \ + or.c \ + out.c \ + pop.c \ + popa.c \ + popf.c \ + push.c \ + pusha.c \ + pushf.c \ + rcl.c \ + rcr.c \ + ret.c \ + rol.c \ + ror.c \ + rsrvd.c \ + sahf.c \ + sar.c \ + sbb.c \ + setxx.c \ + sgdt.c \ + shl.c \ + shld.c \ + shr.c \ + shrd.c \ + sidt.c \ + sldt.c \ + smsw.c \ + stc.c \ + std.c \ + sti.c \ + str.c \ + stubs.c \ + sub.c \ + test.c \ + verr.c \ + verw.c \ + wait.c \ + wbinvd.c \ + xadd.c \ + xchg.c \ + xlat.c \ + xor.c \ + zfrsrvd.c \ + sasCdef.c \ + ntstubs.c \ + ntthread.c + + +!INCLUDE ccpudefs.inc + +UMTYPE=console diff --git a/private/mvdm/softpc.new/base/ccpu386/stc.c b/private/mvdm/softpc.new/base/ccpu386/stc.c new file mode 100644 index 000000000..ce296f669 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/stc.c @@ -0,0 +1,39 @@ +/*[ + +stc.c + +LOCAL CHAR SccsID[]="@(#)stc.c 1.5 02/09/94"; + +STC CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +GLOBAL VOID +STC() + { + SET_CF(1); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/stc.h b/private/mvdm/softpc.new/base/ccpu386/stc.h new file mode 100644 index 000000000..2fed702a2 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/stc.h @@ -0,0 +1,11 @@ +/* + stc.h + + Define all STC CPU functions. + */ + +/* + static char SccsID[]="@(#)stc.h 1.5 09/01/94"; + */ + +IMPORT VOID STC IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/std.c b/private/mvdm/softpc.new/base/ccpu386/std.c new file mode 100644 index 000000000..504eb4811 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/std.c @@ -0,0 +1,39 @@ +/*[ + +std.c + +LOCAL CHAR SccsID[]="@(#)std.c 1.5 02/09/94"; + +STD CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +GLOBAL VOID +STD() + { + SET_DF(1); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/std.h b/private/mvdm/softpc.new/base/ccpu386/std.h new file mode 100644 index 000000000..b2051c7d5 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/std.h @@ -0,0 +1,11 @@ +/* + std.h + + Define all STD CPU functions. + */ + +/* + static char SccsID[]="@(#)std.h 1.5 09/01/94"; + */ + +IMPORT VOID STD IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/sti.c b/private/mvdm/softpc.new/base/ccpu386/sti.c new file mode 100644 index 000000000..fe1b2cf3f --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/sti.c @@ -0,0 +1,39 @@ +/*[ + +sti.c + +LOCAL CHAR SccsID[]="@(#)sti.c 1.5 02/09/94"; + +STI CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +GLOBAL VOID +STI() + { + SET_IF(1); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/sti.h b/private/mvdm/softpc.new/base/ccpu386/sti.h new file mode 100644 index 000000000..8ba9a0be2 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/sti.h @@ -0,0 +1,11 @@ +/* + sti.h + + Define all STI CPU functions. + */ + +/* + static char SccsID[]="@(#)sti.h 1.5 09/01/94"; + */ + +IMPORT VOID STI IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/str.c b/private/mvdm/softpc.new/base/ccpu386/str.c new file mode 100644 index 000000000..63ffe3f10 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/str.c @@ -0,0 +1,45 @@ +/*[ + +str.c + +LOCAL CHAR SccsID[]="@(#)str.c 1.5 02/09/94"; + +STR CPU Functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE + ===================================================================== + */ + + +GLOBAL VOID +STR + +IFN1( + IU32 *, pop1 + ) + + + { + *pop1 = GET_TR_SELECTOR(); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/str.h b/private/mvdm/softpc.new/base/ccpu386/str.h new file mode 100644 index 000000000..c011c2797 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/str.h @@ -0,0 +1,16 @@ +/* + str.h + + Define all STR CPU functions. + */ + +/* + static char SccsID[]="@(#)str.h 1.4 02/09/94"; + */ + +IMPORT VOID STR + +IPT1( + IU32 *, pop1 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/stubs.c b/private/mvdm/softpc.new/base/ccpu386/stubs.c new file mode 100644 index 000000000..70e526e7a --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/stubs.c @@ -0,0 +1,21 @@ +#include "insignia.h" +#include "host_def.h" + +/* @(#)stubs.c 1.1 06/26/94 + + Stubs file for Prod Ccpu (Ccpu too hard to deyodarise) +*/ + +void check_I IFN0() +{ +} + +void check_D IFN0() +{ +} + +void force_yoda() +{ +} + +IBOOL do_condition_checks = FALSE; diff --git a/private/mvdm/softpc.new/base/ccpu386/sub.c b/private/mvdm/softpc.new/base/ccpu386/sub.c new file mode 100644 index 000000000..1b0c314ca --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/sub.c @@ -0,0 +1,80 @@ +/*[ + +sub.c + +LOCAL CHAR SccsID[]="@(#)sub.c 1.5 02/09/94"; + +SUB CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'sub'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +SUB + +IFN3( + IU32 *, pop1, /* pntr to dst/lsrc operand */ + IU32, op2, /* rsrc operand */ + IUM8, op_sz /* 8, 16 or 32-bit */ + ) + + + { + IU32 result; + IU32 carry; + IU32 msb; + IU32 op1_msb; + IU32 op2_msb; + IU32 res_msb; + + msb = SZ2MSB(op_sz); + + result = *pop1 - op2 & SZ2MASK(op_sz); /* Do operation */ + op1_msb = (*pop1 & msb) != 0; /* Isolate all msb's */ + op2_msb = (op2 & msb) != 0; + res_msb = (result & msb) != 0; + carry = *pop1 ^ op2 ^ result; /* Isolate carries */ + /* Determine flags */ + /* + OF = (op1 == !op2) & (op1 ^ res) + ie if operand signs differ and res sign different to original + destination set OF. + */ + SET_OF((op1_msb != op2_msb) & (op1_msb ^ res_msb)); + /* + Formally:- CF = !op1 & op2 | res & !op1 | res & op2 + Equivalently:- CF = OF ^ op1 ^ op2 ^ res + */ + SET_CF(((carry & msb) != 0) ^ GET_OF()); + SET_PF(pf_table[result & BYTE_MASK]); + SET_ZF(result == 0); + SET_SF((result & msb) != 0); /* SF = MSB */ + SET_AF((carry & BIT4_MASK) != 0); /* AF = Bit 4 carry */ + *pop1 = result; /* Return answer */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/sub.h b/private/mvdm/softpc.new/base/ccpu386/sub.h new file mode 100644 index 000000000..6bbbedb8f --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/sub.h @@ -0,0 +1,18 @@ +/* + sub.h + + Define all SUB CPU functions. + */ + +/* + static char SccsID[]="@(#)sub.h 1.4 02/09/94"; + */ + +IMPORT VOID SUB + +IPT3( + IU32 *, pop1, + IU32, op2, + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/test.c b/private/mvdm/softpc.new/base/ccpu386/test.c new file mode 100644 index 000000000..7d975a5c0 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/test.c @@ -0,0 +1,58 @@ +/*[ + +test.c + +LOCAL CHAR SccsID[]="@(#)test.c 1.5 02/09/94"; + +TEST CPU functions. +------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'test'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +TEST + +IFN3( + IU32, op1, /* lsrc operand */ + IU32, op2, /* rsrc operand */ + IUM8, op_sz /* 8, 16 or 32-bit */ + ) + + + { + IU32 result; + + result = op1 & op2; /* Do operation */ + SET_CF(0); /* Determine flags */ + SET_OF(0); + SET_AF(0); + SET_PF(pf_table[result & BYTE_MASK]); + SET_ZF(result == 0); + SET_SF((result & SZ2MSB(op_sz)) != 0); /* SF = MSB */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/test.h b/private/mvdm/softpc.new/base/ccpu386/test.h new file mode 100644 index 000000000..df677c260 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/test.h @@ -0,0 +1,18 @@ +/* + test.h + + Define all Arithmetic/Logical CPU functions. + */ + +/* + static char SccsID[]="@(#)test.h 1.4 02/09/94"; + */ + +IMPORT VOID TEST + +IPT3( + IU32, op1, + IU32, op2, + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/univer_c.h b/private/mvdm/softpc.new/base/ccpu386/univer_c.h new file mode 100644 index 000000000..c47b507a7 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/univer_c.h @@ -0,0 +1,4 @@ +#ifndef _Univer_c_h +#define _Univer_c_h +#define ImpossibleConstraint (-1) +#endif /* ! _Univer_c_h */ diff --git a/private/mvdm/softpc.new/base/ccpu386/verr.c b/private/mvdm/softpc.new/base/ccpu386/verr.c new file mode 100644 index 000000000..25ea4135f --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/verr.c @@ -0,0 +1,100 @@ +/*[ + +verr.c + +LOCAL CHAR SccsID[]="@(#)verr.c 1.5 02/09/94"; + +VERR CPU Functions. +------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE + ===================================================================== + */ + + +GLOBAL VOID +VERR + +IFN1( + IU32, op1 /* src(selector) operand */ + ) + + + { + BOOL readable = FALSE; + IU32 descr; + IU8 AR; + + if ( !selector_outside_GDT_LDT((IU16)op1, &descr) ) + { + /* get access rights */ + AR = spr_read_byte(descr+5); + + /* Handle each type of descriptor */ + switch ( descriptor_super_type((IU16)AR) ) + { + case INVALID: + case AVAILABLE_TSS: + case LDT_SEGMENT: + case BUSY_TSS: + case CALL_GATE: + case TASK_GATE: + case INTERRUPT_GATE: + case TRAP_GATE: + case XTND_AVAILABLE_TSS: + case XTND_BUSY_TSS: + case XTND_CALL_GATE: + case XTND_INTERRUPT_GATE: + case XTND_TRAP_GATE: + case CONFORM_NOREAD_CODE: + case NONCONFORM_NOREAD_CODE: + break; /* never readable */ + + case CONFORM_READABLE_CODE: + readable = TRUE; /* always readable */ + break; + + case EXPANDUP_READONLY_DATA: + case EXPANDUP_WRITEABLE_DATA: + case EXPANDDOWN_READONLY_DATA: + case EXPANDDOWN_WRITEABLE_DATA: + case NONCONFORM_READABLE_CODE: + /* access depends on privilege, it is required that + DPL >= CPL and DPL >= RPL */ + if ( GET_AR_DPL(AR) >= GET_CPL() && + GET_AR_DPL(AR) >= GET_SELECTOR_RPL(op1) ) + readable = TRUE; + break; + } + } + + if ( readable ) + { + SET_ZF(1); + } + else + { + SET_ZF(0); + } + } diff --git a/private/mvdm/softpc.new/base/ccpu386/verr.h b/private/mvdm/softpc.new/base/ccpu386/verr.h new file mode 100644 index 000000000..218d3cc3b --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/verr.h @@ -0,0 +1,16 @@ +/* + verr.h + + Define all VERR CPU functions. + */ + +/* + static char SccsID[]="@(#)verr.h 1.4 02/09/94"; + */ + +IMPORT VOID VERR + +IPT1( + IU32, op1 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/verw.c b/private/mvdm/softpc.new/base/ccpu386/verw.c new file mode 100644 index 000000000..a1412f3e3 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/verw.c @@ -0,0 +1,96 @@ +/*[ + +verw.c + +LOCAL CHAR SccsID[]="@(#)verw.c 1.5 02/09/94"; + +VERW CPU Functions. +------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE + ===================================================================== + */ + + +GLOBAL VOID +VERW + +IFN1( + IU32, op1 /* src(selector) operand */ + ) + + + { + BOOL writeable = FALSE; + IU32 descr; + IU8 AR; + + if ( !selector_outside_GDT_LDT((IU16)op1, &descr) ) + { + /* get access rights */ + AR = spr_read_byte(descr+5); + + switch ( descriptor_super_type((IU16)AR) ) + { + case INVALID: + case AVAILABLE_TSS: + case LDT_SEGMENT: + case BUSY_TSS: + case CALL_GATE: + case TASK_GATE: + case INTERRUPT_GATE: + case TRAP_GATE: + case XTND_AVAILABLE_TSS: + case XTND_BUSY_TSS: + case XTND_CALL_GATE: + case XTND_INTERRUPT_GATE: + case XTND_TRAP_GATE: + case CONFORM_NOREAD_CODE: + case CONFORM_READABLE_CODE: + case NONCONFORM_NOREAD_CODE: + case NONCONFORM_READABLE_CODE: + case EXPANDUP_READONLY_DATA: + case EXPANDDOWN_READONLY_DATA: + break; /* never writeable */ + + case EXPANDUP_WRITEABLE_DATA: + case EXPANDDOWN_WRITEABLE_DATA: + /* access depends on privilege, it is required that + DPL >= CPL and DPL >= RPL */ + if ( GET_AR_DPL(AR) >= GET_CPL() && + GET_AR_DPL(AR) >= GET_SELECTOR_RPL(op1) ) + writeable = TRUE; + break; + } + } + + if ( writeable ) + { + SET_ZF(1); + } + else + { + SET_ZF(0); + } + } diff --git a/private/mvdm/softpc.new/base/ccpu386/verw.h b/private/mvdm/softpc.new/base/ccpu386/verw.h new file mode 100644 index 000000000..605fb1ea9 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/verw.h @@ -0,0 +1,16 @@ +/* + verw.h + + Define all VERW CPU functions. + */ + +/* + static char SccsID[]="@(#)verw.h 1.4 02/09/94"; + */ + +IMPORT VOID VERW + +IPT1( + IU32, op1 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/vglob.c b/private/mvdm/softpc.new/base/ccpu386/vglob.c new file mode 100644 index 000000000..d1f01ac2f --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/vglob.c @@ -0,0 +1,451 @@ +/*[ +************************************************************************* + + Name: Vglob.c + Author: Simon Frost + Created: October 1994 + Derived from: Vglob.edl + Sccs ID: @(#)Vglob.c 1.1 10/24/94 + Purpose: EXTERNAL interface to VGLOB record. + Rewritten in C to save overhead of EDL/C context change + for one memory read/write. + + (c)Copyright Insignia Solutions Ltd., 1993. All rights reserved. + +************************************************************************* +]*/ + +#include "insignia.h" +#include "host_def.h" +#include "Evid_c.h" +#include "gdpvar.h" + +/* + * Note: no interfaces produced for the following 3.0 VGlob entries as + * unused in Evid. + * copy_func_pbp ( now video_base_lin_addr ) + * route_reg1 + * route_reg2 + */ + +/* {get,set}Videolatches still in EvPtrs.edl as required for pigging */ + +GLOBAL void +setVideorplane IFN1(IU8 *, value) +{ + GLOBAL_VGAGlobals.VGA_rplane = value; +} +GLOBAL IU8 * +getVideorplane IFN0() +{ + return(GLOBAL_VGAGlobals.VGA_rplane); +} + +GLOBAL void +setVideowplane IFN1(IU8 *, value) +{ + GLOBAL_VGAGlobals.VGA_wplane = value; +} +GLOBAL IU8 * +getVideowplane IFN0() +{ + return(GLOBAL_VGAGlobals.VGA_wplane); +} + +GLOBAL void +setVideoscratch IFN1(IU8 *, value) +{ + GLOBAL_VGAGlobals.scratch = value; +} +GLOBAL IU8 * +getVideoscratch IFN0() +{ + return(GLOBAL_VGAGlobals.scratch); +} + +GLOBAL void +setVideosr_masked_val IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.sr_masked_val = value; +} +GLOBAL IU32 +getVideosr_masked_val IFN0() +{ + return(GLOBAL_VGAGlobals.sr_masked_val); +} + +GLOBAL void +setVideosr_nmask IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.sr_nmask = value; +} + +GLOBAL IU32 +getVideosr_nmask IFN0() +{ + return(GLOBAL_VGAGlobals.sr_nmask); +} + +GLOBAL void +setVideodata_and_mask IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.data_and_mask = value; +} + +GLOBAL IU32 +getVideodata_and_mask IFN0() +{ + return(GLOBAL_VGAGlobals.data_and_mask); +} + +GLOBAL void +setVideodata_xor_mask IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.data_xor_mask = value; +} +GLOBAL IU32 +getVideodata_xor_mask IFN0() +{ + return(GLOBAL_VGAGlobals.data_xor_mask); +} + +GLOBAL void +setVideolatch_xor_mask IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.latch_xor_mask = value; +} +GLOBAL IU32 +getVideolatch_xor_mask IFN0() +{ + return(GLOBAL_VGAGlobals.latch_xor_mask); +} + +GLOBAL void +setVideobit_prot_mask IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.bit_prot_mask = value; +} +GLOBAL IU32 +getVideobit_prot_mask IFN0() +{ + return(GLOBAL_VGAGlobals.bit_prot_mask); +} + +GLOBAL void +setVideoplane_enable IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.plane_enable = value; +} +GLOBAL IU32 +getVideoplane_enable IFN0() +{ + return(GLOBAL_VGAGlobals.plane_enable); +} + +GLOBAL void +setVideoplane_enable_mask IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.plane_enable_mask = value; +} +GLOBAL IU32 +getVideoplane_enable_mask IFN0() +{ + return(GLOBAL_VGAGlobals.plane_enable_mask); +} + +GLOBAL void +setVideosr_lookup IFN1(IUH *, value) +{ + GLOBAL_VGAGlobals.sr_lookup = value; +} +GLOBAL IUH * +getVideosr_lookup IFN0() +{ + return(GLOBAL_VGAGlobals.sr_lookup); +} + +GLOBAL void +setVideofwd_str_read_addr IFN1(IUH *, value) +{ + GLOBAL_VGAGlobals.fwd_str_read_addr = value; +} +GLOBAL IUH * +getVideofwd_str_read_addr IFN0() +{ + return(GLOBAL_VGAGlobals.fwd_str_read_addr); +} + +GLOBAL void +setVideobwd_str_read_addr IFN1(IUH *, value) +{ + GLOBAL_VGAGlobals.bwd_str_read_addr = value; +} +GLOBAL IUH * +getVideobwd_str_read_addr IFN0() +{ + return(GLOBAL_VGAGlobals.bwd_str_read_addr); +} + +GLOBAL void +setVideodirty_total IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.dirty_total = value; +} +GLOBAL IU32 +getVideodirty_total IFN0() +{ + return(GLOBAL_VGAGlobals.dirty_total); +} + +GLOBAL void +setVideodirty_low IFN1(IS32, value) +{ + GLOBAL_VGAGlobals.dirty_low = value; +} +GLOBAL IS32 +getVideodirty_low IFN0() +{ + return(GLOBAL_VGAGlobals.dirty_low); +} + +GLOBAL void +setVideodirty_high IFN1(IS32, value) +{ + GLOBAL_VGAGlobals.dirty_high = value; +} +GLOBAL IS32 +getVideodirty_high IFN0() +{ + return(GLOBAL_VGAGlobals.dirty_high); +} + +GLOBAL void +setVideovideo_copy IFN1(IU8 *, value) +{ + GLOBAL_VGAGlobals.video_copy = value; +} +GLOBAL IU8 * +getVideovideo_copy IFN0() +{ + return(GLOBAL_VGAGlobals.video_copy); +} + +GLOBAL void +setVideomark_byte IFN1(IUH *, value) +{ + GLOBAL_VGAGlobals.mark_byte = value; +} +GLOBAL IUH * +getVideomark_byte IFN0() +{ + return(GLOBAL_VGAGlobals.mark_byte); +} + +GLOBAL void +setVideomark_word IFN1(IUH *, value) +{ + GLOBAL_VGAGlobals.mark_word = value; +} +GLOBAL IUH * +getVideomark_word IFN0() +{ + return(GLOBAL_VGAGlobals.mark_word); +} + +GLOBAL void +setVideomark_string IFN1(IUH *, value) +{ + GLOBAL_VGAGlobals.mark_string = value; +} +GLOBAL IUH * +getVideomark_string IFN0() +{ + return(GLOBAL_VGAGlobals.mark_string); +} + +GLOBAL void +setVideoread_shift_count IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.read_shift_count = value; +} +GLOBAL IU32 +getVideoread_shift_count IFN0() +{ + return(GLOBAL_VGAGlobals.read_shift_count); +} + +GLOBAL void +setVideoread_mapped_plane IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.read_mapped_plane = value; +} +GLOBAL IU32 +getVideoread_mapped_plane IFN0() +{ + return(GLOBAL_VGAGlobals.read_mapped_plane); +} + +GLOBAL void +setVideocolour_comp IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.colour_comp = value; +} +GLOBAL IU32 +getVideocolour_comp IFN0() +{ + return(GLOBAL_VGAGlobals.colour_comp); +} + +GLOBAL void +setVideodont_care IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.dont_care = value; +} +GLOBAL IU32 +getVideodont_care IFN0() +{ + return(GLOBAL_VGAGlobals.dont_care); +} + +GLOBAL void +setVideov7_bank_vid_copy_off IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.v7_bank_vid_copy_off = value; +} +GLOBAL IU32 +getVideov7_bank_vid_copy_off IFN0() +{ + return(GLOBAL_VGAGlobals.v7_bank_vid_copy_off); +} + +GLOBAL void +setVideoscreen_ptr IFN1(IU8 *, value) +{ + GLOBAL_VGAGlobals.screen_ptr = value; +} +GLOBAL IU8 * +getVideoscreen_ptr IFN0() +{ + return(GLOBAL_VGAGlobals.screen_ptr); +} + +GLOBAL void +setVideorotate IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.rotate = value; +} +GLOBAL IU32 +getVideorotate IFN0() +{ + return(GLOBAL_VGAGlobals.rotate); +} + +GLOBAL void +setVideocalc_data_xor IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.calc_data_xor = value; +} +GLOBAL IU32 +getVideocalc_data_xor IFN0() +{ + return(GLOBAL_VGAGlobals.calc_data_xor); +} + +GLOBAL void +setVideocalc_latch_xor IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.calc_latch_xor = value; +} +GLOBAL IU32 +getVideocalc_latch_xor IFN0() +{ + return(GLOBAL_VGAGlobals.calc_latch_xor); +} + +GLOBAL void +setVideoread_byte_addr IFN1(IUH *, value) +{ + GLOBAL_VGAGlobals.read_byte_addr = value; +} +GLOBAL IUH * +getVideoread_byte_addr IFN0() +{ + return(GLOBAL_VGAGlobals.read_byte_addr); +} + +GLOBAL void +setVideov7_fg_latches IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.v7_fg_latches = value; +} +GLOBAL IU32 +getVideov7_fg_latches IFN0() +{ + return(GLOBAL_VGAGlobals.v7_fg_latches); +} + +GLOBAL void +setVideoGC_regs IFN1(IUH **, value) +{ + GLOBAL_VGAGlobals.GCRegs = value; +} +GLOBAL IUH ** +getVideoGC_regs IFN0() +{ + return(GLOBAL_VGAGlobals.GCRegs); +} + +GLOBAL void +setVideolast_GC_index IFN1(IU8, value) +{ + GLOBAL_VGAGlobals.lastGCindex = value; +} +GLOBAL IU8 +getVideolast_GC_index IFN0() +{ + return(GLOBAL_VGAGlobals.lastGCindex); +} + +GLOBAL void +setVideodither IFN1(IU8, value) +{ + GLOBAL_VGAGlobals.dither = value; +} +GLOBAL IU8 +getVideodither IFN0() +{ + return(GLOBAL_VGAGlobals.dither); +} + +GLOBAL void +setVideowrmode IFN1(IU8, value) +{ + GLOBAL_VGAGlobals.wrmode = value; +} +GLOBAL IU8 +getVideowrmode IFN0() +{ + return(GLOBAL_VGAGlobals.wrmode); +} + +GLOBAL void +setVideochain IFN1(IU8, value) +{ + GLOBAL_VGAGlobals.chain = value; +} +GLOBAL IU8 +getVideochain IFN0() +{ + return(GLOBAL_VGAGlobals.chain); +} + +GLOBAL void +setVideowrstate IFN1(IU8, value) +{ + GLOBAL_VGAGlobals.wrstate = value; +} +GLOBAL IU8 +getVideowrstate IFN0() +{ + return(GLOBAL_VGAGlobals.wrstate); +} diff --git a/private/mvdm/softpc.new/base/ccpu386/wait.c b/private/mvdm/softpc.new/base/ccpu386/wait.c new file mode 100644 index 000000000..3594c7fe2 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/wait.c @@ -0,0 +1,38 @@ +/*[ + +wait.c + +LOCAL CHAR SccsID[]="@(#)wait.c 1.5 02/09/94"; + +WAIT CPU functions. +------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES STARTS HERE. + ===================================================================== + */ + + +GLOBAL VOID +WAIT() + { + } diff --git a/private/mvdm/softpc.new/base/ccpu386/wait.h b/private/mvdm/softpc.new/base/ccpu386/wait.h new file mode 100644 index 000000000..e1a75a539 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/wait.h @@ -0,0 +1,11 @@ +/* + wait.h + + Define all WAIT CPU functions. + */ + +/* + static char SccsID[]="@(#)wait.h 1.5 09/01/94"; + */ + +IMPORT VOID WAIT IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/wbinvd.c b/private/mvdm/softpc.new/base/ccpu386/wbinvd.c new file mode 100644 index 000000000..171f1ec44 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/wbinvd.c @@ -0,0 +1,45 @@ +/*[ + +wbinvd.c + +LOCAL CHAR SccsID[]="@(#)wbinvd.c 1.5 02/09/94"; + +WBINVD CPU Functions. +--------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + ===================================================================== + EXECUTION STARTS HERE. + ===================================================================== + */ + + +#ifdef SPC486 + +VOID +WBINVD() + { + /* + If cache is implemented - then make call to flush cache. + flush_cache(); + */ + } + +#endif /* SPC486 */ diff --git a/private/mvdm/softpc.new/base/ccpu386/wbinvd.h b/private/mvdm/softpc.new/base/ccpu386/wbinvd.h new file mode 100644 index 000000000..bd83a530c --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/wbinvd.h @@ -0,0 +1,11 @@ +/* + wbinvd.h + + Define WBINVD CPU functions. + */ + +/* + static char SccsID[]="@(#)wbinvd.h 1.5 09/01/94"; + */ + +IMPORT VOID WBINVD IPT0(); diff --git a/private/mvdm/softpc.new/base/ccpu386/xadd.c b/private/mvdm/softpc.new/base/ccpu386/xadd.c new file mode 100644 index 000000000..d46c00a32 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/xadd.c @@ -0,0 +1,59 @@ +/*[ + +xadd.c + +LOCAL CHAR SccsID[]="@(#)xadd.c 1.5 02/09/94"; + +XADD CPU functions. +------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +#ifdef SPC486 + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'xadd'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +XADD + +IFN3( + IU32 *, pop1, /* pntr to dst/lsrc operand */ + IU32 *, pop2, /* pntr to dst/rsrc operand */ + IUM8, op_sz /* 8, 16 or 32-bit */ + ) + + + { + IU32 temp; + + temp = *pop1; + ADD(pop1, *pop2, op_sz); + *pop2 = temp; + } + +#endif /* SPC486 */ diff --git a/private/mvdm/softpc.new/base/ccpu386/xadd.h b/private/mvdm/softpc.new/base/ccpu386/xadd.h new file mode 100644 index 000000000..799743a9b --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/xadd.h @@ -0,0 +1,18 @@ +/* + xadd.h + + XADD CPU functions. + */ + +/* + static char SccsID[]="@(#)xadd.h 1.4 02/09/94"; + */ + +IMPORT VOID XADD + +IPT3( + IU32 *, pop1, + IU32 *, pop2, + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/xchg.c b/private/mvdm/softpc.new/base/ccpu386/xchg.c new file mode 100644 index 000000000..15c27842a --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/xchg.c @@ -0,0 +1,53 @@ +/*[ + +xchg.c + +LOCAL CHAR SccsID[]="@(#)xchg.c 1.5 02/09/94"; + +XCHG CPU Functions. +------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'xchg'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +XCHG + +IFN2( + IU32 *, pop1, /* pntr to dst/lsrc operand */ + IU32 *, pop2 /* pntr to dst/rsrc operand */ + ) + + + { + IU32 temp; + + temp = *pop1; + *pop1 = *pop2; + *pop2 = temp; + } diff --git a/private/mvdm/softpc.new/base/ccpu386/xchg.h b/private/mvdm/softpc.new/base/ccpu386/xchg.h new file mode 100644 index 000000000..3432686be --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/xchg.h @@ -0,0 +1,17 @@ +/* + xchg.h + + Define all XCHG CPU functions. + */ + +/* + static char SccsID[]="@(#)xchg.h 1.4 02/09/94"; + */ + +IMPORT VOID XCHG + +IPT2( + IU32 *, pop1, + IU32 *, pop2 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/xlat.c b/private/mvdm/softpc.new/base/ccpu386/xlat.c new file mode 100644 index 000000000..a12539455 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/xlat.c @@ -0,0 +1,45 @@ +/*[ + +xlat.c + +LOCAL CHAR SccsID[]="@(#)xlat.c 1.5 02/09/94"; + +XLAT CPU Functions. +------------------- + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE + ===================================================================== + */ + + +GLOBAL VOID +XLAT + +IFN1( + IU32, op1 /* src operand */ + ) + + + { + SET_AL(op1); + } diff --git a/private/mvdm/softpc.new/base/ccpu386/xlat.h b/private/mvdm/softpc.new/base/ccpu386/xlat.h new file mode 100644 index 000000000..5a2958feb --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/xlat.h @@ -0,0 +1,16 @@ +/* + xlat.h + + Define all XLAT CPU functions. + */ + +/* + static char SccsID[]="@(#)xlat.h 1.4 02/09/94"; + */ + +IMPORT VOID XLAT + +IPT1( + IU32, op1 + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/xor.c b/private/mvdm/softpc.new/base/ccpu386/xor.c new file mode 100644 index 000000000..17c96ff28 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/xor.c @@ -0,0 +1,59 @@ +/*[ + +xor.c + +LOCAL CHAR SccsID[]="@(#)xor.c 1.5 02/09/94"; + +XOR CPU functions. +------------------ + +]*/ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/* + ===================================================================== + EXTERNAL FUNCTIONS START HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'xor'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +XOR + +IFN3( + IU32 *, pop1, /* pntr to dst/lsrc operand */ + IU32, op2, /* rsrc operand */ + IUM8, op_sz /* 8, 16 or 32-bit */ + ) + + + { + IU32 result; + + result = *pop1 ^ op2; /* Do operation */ + SET_CF(0); /* Determine flags */ + SET_OF(0); + SET_AF(0); + SET_PF(pf_table[result & BYTE_MASK]); + SET_ZF(result == 0); + SET_SF((result & SZ2MSB(op_sz)) != 0); /* SF = MSB */ + *pop1 = result; /* Return answer */ + } diff --git a/private/mvdm/softpc.new/base/ccpu386/xor.h b/private/mvdm/softpc.new/base/ccpu386/xor.h new file mode 100644 index 000000000..ba8d7e185 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/xor.h @@ -0,0 +1,18 @@ +/* + xor.h + + Define all XOR CPU functions. + */ + +/* + static char SccsID[]="@(#)xor.h 1.4 02/09/94"; + */ + +IMPORT VOID XOR + +IPT3( + IU32 *, pop1, + IU32, op2, + IUM8, op_sz + + ); diff --git a/private/mvdm/softpc.new/base/ccpu386/zfrsrvd.c b/private/mvdm/softpc.new/base/ccpu386/zfrsrvd.c new file mode 100644 index 000000000..ead9baec8 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/zfrsrvd.c @@ -0,0 +1,4871 @@ +/*[ + +zfrsrvd.c + +LOCAL CHAR SccsID[]="@(#)zfrsrvd.c 1.23 03/28/95"; + +Reserved Floating Point CPU Functions. +-------------------------------------- + +]*/ +#include +#include +#include +#include +#include +#include /* DESCR and effective_addr support */ +#include /* need memory(M) */ +#define HOOKED_IRETS +#include /* need NPX interrupt line */ +#include /* the cpu internal sas bits */ +#include /* C CPU definitions-interfaces */ +#include /* Paging Interface */ +#include /* CPU - Memory Interface */ +#include +#include +#include /* Definition of Int16() */ +#include +#ifdef SFELLOW +#include +#endif /* SFELLOW */ + +typedef union +{ +IU32 sng; /* Single Part Operand */ +IU32 mlt[2]; /* Multiple (two) Part Operand */ +IU8 npxbuff[108]; /* Make it the maximum required size */ +} OPERAND; + +IMPORT IU8 *Start_of_M_area; +IMPORT PHY_ADDR Length_of_M_area; +IMPORT ISM32 in_C; +IMPORT IU8 *CCPU_M; +IMPORT IU32 Sas_wrap_mask; +IMPORT IU32 event_counter; +IMPORT IU8 *p; /* Pntr. to Intel Opcode Stream. */ +IMPORT IU8 *p_start; /* Pntr. to Start of Intel Opcode Stream. */ +IMPORT IU8 opcode; /* Last Opcode Byte Read. */ +IMPORT IU8 modRM; /* The modRM byte. */ +IMPORT OPERAND ops[3]; /* Inst. Operands. */ +IMPORT IU32 save_id[3]; /* Saved state for Inst. Operands. */ +IMPORT IU32 m_off[3]; /* Memory Operand offset. */ +IMPORT IU32 m_pa[3]; +IMPORT IU32 m_la[3]; +IMPORT ISM32 m_seg[3]; /* Memory Operand segment reg. index. */ +IMPORT BOOL m_isreg[3]; /* Memory Operand Register(true)/ + Memory(false) indicator */ +IMPORT IU8 segment_override; /* Segment Prefix for current inst. */ +IMPORT IU8 repeat; /* Repeat Prefix for current inst. */ +IMPORT IU32 rep_count; /* Repeat Count for string insts. */ +IMPORT IUM32 old_TF; /* used by POPF and IRET to save Trap Flag */ +IMPORT IU32 immed; /* For immediate generation. */ + +IMPORT BOOL POPST; +IMPORT BOOL DOUBLEPOP; +IMPORT BOOL REVERSE; +IMPORT BOOL UNORDERED; +IMPORT BOOL NPX_PROT_MODE; +IMPORT BOOL NPX_ADDRESS_SIZE_32; +IMPORT BOOL NpxException; +IMPORT IU32 NpxLastSel; +IMPORT IU32 NpxLastOff; +IMPORT IU32 NpxFEA; +IMPORT IU32 NpxFDS; +IMPORT IU32 NpxFIP; +IMPORT IU32 NpxFOP; +IMPORT IU32 NpxFCS; +IU16 Ax_regptr; +IMPORT SEGMENT_REGISTER CCPU_SR[6]; +IMPORT IU16 *CCPU_WR[8]; +IMPORT IU32 CCPU_IP; + +LOCAL BOOL DoNpxPrologue IPT0(); + +LOCAL IU32 NpxInstr; + +LOCAL VOID npx_fabs() { + SAVE_PTRS(); + FABS(); +} + +LOCAL VOID npx_fadd_f0_f0() { +/* fadd st,st */ + IU16 src2_index = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FADD(0, 0, (VOID *)&src2_index); +} + +LOCAL VOID npx_fadd_f0_f1() { +/* fadd st,st(1) */ + IU16 src2_index = 1; + + SAVE_PTRS(); + FPtype = FPSTACK; + FADD(0, 0, (VOID *)&src2_index); +} + +LOCAL VOID npx_fadd_f0_f2() { +/* fadd st,st(2) */ + IU16 src2_index = 2; + + SAVE_PTRS(); + FPtype = FPSTACK; + FADD(0, 0, (VOID *)&src2_index); +} + +LOCAL VOID npx_fadd_f0_f3() { +/* fadd st,st(3) */ + IU16 src2_index = 3; + + SAVE_PTRS(); + FPtype = FPSTACK; + FADD(0, 0, (VOID *)&src2_index); +} + +LOCAL VOID npx_fadd_f0_f4() { +/* fadd st,st(4) */ + IU16 src2_index = 4; + + SAVE_PTRS(); + FPtype = FPSTACK; + FADD(0, 0, (VOID *)&src2_index); +} + +LOCAL VOID npx_fadd_f0_f5() { +/* fadd st,st(5) */ + IU16 src2_index = 5; + + SAVE_PTRS(); + FPtype = FPSTACK; + FADD(0, 0, (VOID *)&src2_index); +} + +LOCAL VOID npx_fadd_f0_f6() { +/* fadd st,st(6) */ + IU16 src2_index = 6; + + SAVE_PTRS(); + FPtype = FPSTACK; + FADD(0, 0, (VOID *)&src2_index); +} + +LOCAL VOID npx_fadd_f0_f7() { +/* fadd st,st(7) */ + IU16 src2_index = 7; + + SAVE_PTRS(); + FPtype = FPSTACK; + FADD(0, 0, (VOID *)&src2_index); +} + +LOCAL VOID npx_fadd_f1_f0() { +/* fadd st(1),st */ + IU16 src2_index = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FADD(1, 1, (VOID *)&src2_index); +} + +LOCAL VOID npx_fadd_f2_f0() { +/* fadd st(2),st */ + IU16 src2_index = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FADD(2, 2, (VOID *)&src2_index); +} + +LOCAL VOID npx_fadd_f3_f0() { +/* fadd st(3),st */ + IU16 src2_index = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FADD(3, 3, (VOID *)&src2_index); +} + +LOCAL VOID npx_fadd_f4_f0() { +/* fadd st(4),st */ + IU16 src2_index = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FADD(4, 4, (VOID *)&src2_index); +} + +LOCAL VOID npx_fadd_f5_f0() { +/* fadd st(5),st */ + IU16 src2_index = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FADD(5, 5, (VOID *)&src2_index); +} + +LOCAL VOID npx_fadd_f6_f0() { +/* fadd st(6),st */ + IU16 src2_index = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FADD(6, 6, (VOID *)&src2_index); +} + +LOCAL VOID npx_fadd_f7_f0() { +/* fadd st(7),st */ + IU16 src2_index = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FADD(7, 7, (VOID *)&src2_index); +} + +LOCAL VOID npx_fadd_short() { +/* fadd DWORD PTR */ + + FPtype = M32R; + D_Ed(0, RO0, PG_R); + F_Ed(0); + SAVE_PTRS(); + SAVE_DPTRS(); + FADD(0, 0, &ops[0].sng); +} + +LOCAL VOID npx_fadd_long() { +/* fadd QWORD PTR */ + + FPtype = M64R; + D_E08(0, RO0, PG_R); + F_E08(0); + SAVE_PTRS(); + SAVE_DPTRS(); + FADD(0, 0, &ops[0].npxbuff[0]); +} + +LOCAL VOID npx_faddp_f0() { +/* faddp st(0),st */ + + POPST = TRUE; + npx_fadd_f0_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_faddp_f1() { +/* faddp st(1),st */ + + POPST = TRUE; + npx_fadd_f1_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_faddp_f2() { +/* faddp st(2),st */ + + POPST = TRUE; + npx_fadd_f2_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_faddp_f3() { +/* faddp st(3),st */ + + POPST = TRUE; + npx_fadd_f3_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_faddp_f4() { +/* faddp st(4),st */ + + POPST = TRUE; + npx_fadd_f4_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_faddp_f5() { +/* faddp st(5),st */ + + POPST = TRUE; + npx_fadd_f5_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_faddp_f6() { +/* faddp st(6),st */ + + POPST = TRUE; + npx_fadd_f6_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_faddp_f7() { +/* faddp st(7),st */ + + POPST = TRUE; + npx_fadd_f7_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_fbld() { +/* fbld TBYTE PTR */ + + D_E0a(0, RO0, PG_R); + F_E0a(0); + SAVE_PTRS(); + SAVE_DPTRS(); + FBLD(&ops[0].npxbuff[0]); +} + +LOCAL VOID npx_fbstp() { +/* fbstp TBYTE PTR */ + + D_E0a(0, WO0, PG_W); + SAVE_PTRS(); + SAVE_DPTRS(); + FBSTP(&ops[0].npxbuff[0]); + P_E0a(0); +} + +LOCAL VOID npx_fchs() { +/* fchs */ + + SAVE_PTRS(); + FCHS(); +} + +LOCAL VOID npx_fclex() { +/* fclex */ + + FCLEX(); +} + +LOCAL VOID npx_fcom_f0() { +/* fcom st(0) */ + IU16 src2_index = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FCOM((VOID *)&src2_index); +} + +LOCAL VOID npx_fcom_f1() { +/* fcom st(1) */ + IU16 src2_index = 1; + + SAVE_PTRS(); + FPtype = FPSTACK; + FCOM((VOID *)&src2_index); +} + +LOCAL VOID npx_fcom_f2() { +/* fcom st(2) */ + IU16 src2_index = 2; + + SAVE_PTRS(); + FPtype = FPSTACK; + FCOM((VOID *)&src2_index); +} + +LOCAL VOID npx_fcom_f3() { +/* fcom st(3) */ + IU16 src2_index = 3; + + SAVE_PTRS(); + FPtype = FPSTACK; + FCOM((VOID *)&src2_index); +} + +LOCAL VOID npx_fcom_f4() { +/* fcom st(4) */ + IU16 src2_index = 4; + + SAVE_PTRS(); + FPtype = FPSTACK; + FCOM((VOID *)&src2_index); +} + +LOCAL VOID npx_fcom_f5() { +/* fcom st(5) */ + IU16 src2_index = 5; + + SAVE_PTRS(); + FPtype = FPSTACK; + FCOM((VOID *)&src2_index); +} + +LOCAL VOID npx_fcom_f6() { +/* fcom st(6) */ + IU16 src2_index = 6; + + SAVE_PTRS(); + FPtype = FPSTACK; + FCOM((VOID *)&src2_index); +} + +LOCAL VOID npx_fcom_f7() { +/* fcom st(7) */ + IU16 src2_index = 7; + + SAVE_PTRS(); + FPtype = FPSTACK; + FCOM((VOID *)&src2_index); +} + +LOCAL VOID npx_fcom_short() { +/* fcom DWORD PTR */ + + FPtype = M32R; + D_Ed(0, RO0, PG_R); + F_Ed(0); + SAVE_PTRS(); + SAVE_DPTRS(); + FCOM(&ops[0].sng); +} + +LOCAL VOID npx_fcom_long() { +/* fcom QWORD PTR */ + + FPtype = M64R; + D_E08(0, RO0, PG_R); + F_E08(0); + SAVE_PTRS(); + SAVE_DPTRS(); + FCOM(&ops[0].npxbuff[0]); +} + +LOCAL VOID npx_fcomp_f0() { +/* fcomp st(0) */ + + POPST = TRUE; + npx_fcom_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_fcomp_f1() { +/* fcomp st(1) */ + + POPST = TRUE; + npx_fcom_f1(); + POPST = FALSE; +} + +LOCAL VOID npx_fcomp_f2() { +/* fcomp st(2) */ + + POPST = TRUE; + npx_fcom_f2(); + POPST = FALSE; +} + +LOCAL VOID npx_fcomp_f3() { +/* fcomp st(3) */ + + POPST = TRUE; + npx_fcom_f3(); + POPST = FALSE; +} + +LOCAL VOID npx_fcomp_f4() { +/* fcomp st(4) */ + + POPST = TRUE; + npx_fcom_f4(); + POPST = FALSE; +} + +LOCAL VOID npx_fcomp_f5() { +/* fcomp st(5) */ + + POPST = TRUE; + npx_fcom_f5(); + POPST = FALSE; +} + +LOCAL VOID npx_fcomp_f6() { +/* fcomp st(6) */ + + POPST = TRUE; + npx_fcom_f6(); + POPST = FALSE; +} + +LOCAL VOID npx_fcomp_f7() { +/* fcomp st(7) */ + + POPST = TRUE; + npx_fcom_f7(); + POPST = FALSE; +} + +LOCAL VOID npx_fcomp_short() { +/* fcomp DWORD PTR */ + + POPST = TRUE; + npx_fcom_short(); + POPST = FALSE; +} + +LOCAL VOID npx_fcomp_long() { +/* fcomp QWORD PTR */ + + POPST = TRUE; + npx_fcom_long(); + POPST = FALSE; +} + +LOCAL VOID npx_fcompp() { +/* fcompp */ + + DOUBLEPOP = TRUE; + npx_fcom_f1(); + DOUBLEPOP = FALSE; +} + +LOCAL VOID npx_fcos() { +/* fcos */ + + SAVE_PTRS(); + FCOS(); +} + +LOCAL VOID npx_fdecstp() { +/* fdecstp */ + + FDECSTP(); +} + +LOCAL VOID npx_fdiv_f0_f0() { +/* fdiv st,st */ + IU16 src2_index = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FDIV(0, 0, (VOID *)&src2_index); +} + +LOCAL VOID npx_fdiv_f0_f1() { +/* fdiv st,st(1) */ + IU16 src2_index = 1; + + SAVE_PTRS(); + FPtype = FPSTACK; + FDIV(0, 0, (VOID *)&src2_index); +} + +LOCAL VOID npx_fdiv_f0_f2() { +/* fdiv st,st(2) */ + IU16 src2_index = 2; + + SAVE_PTRS(); + FPtype = FPSTACK; + FDIV(0, 0, (VOID *)&src2_index); +} + +LOCAL VOID npx_fdiv_f0_f3() { +/* fdiv st,st(3) */ + IU16 src2_index = 3; + + SAVE_PTRS(); + FPtype = FPSTACK; + FDIV(0, 0, (VOID *)&src2_index); +} + +LOCAL VOID npx_fdiv_f0_f4() { +/* fdiv st,st(4) */ + IU16 src2_index = 4; + + SAVE_PTRS(); + FPtype = FPSTACK; + FDIV(0, 0, (VOID *)&src2_index); +} + +LOCAL VOID npx_fdiv_f0_f5() { +/* fdiv st,st(5) */ + IU16 src2_index = 5; + + SAVE_PTRS(); + FPtype = FPSTACK; + FDIV(0, 0, (VOID *)&src2_index); +} + +LOCAL VOID npx_fdiv_f0_f6() { +/* fdiv st,st(6) */ + IU16 src2_index = 6; + + SAVE_PTRS(); + FPtype = FPSTACK; + FDIV(0, 0, (VOID *)&src2_index); +} + +LOCAL VOID npx_fdiv_f0_f7() { +/* fdiv st,st(7) */ + IU16 src2_index = 7; + + SAVE_PTRS(); + FPtype = FPSTACK; + FDIV(0, 0, (VOID *)&src2_index); +} + +LOCAL VOID npx_fdiv_f1_f0() { +/* fdiv st(1),st */ + IU16 src2_index = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FDIV(1, 1, (VOID *)&src2_index); +} + +LOCAL VOID npx_fdiv_f2_f0() { +/* fdiv st(2),st */ + IU16 src2_index = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FDIV(2, 2, (VOID *)&src2_index); +} + +LOCAL VOID npx_fdiv_f3_f0() { +/* fdiv st(3),st */ + IU16 src2_index = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FDIV(3, 3, (VOID *)&src2_index); +} + +LOCAL VOID npx_fdiv_f4_f0() { +/* fdiv st(4),st */ + IU16 src2_index = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FDIV(4, 4, (VOID *)&src2_index); +} + +LOCAL VOID npx_fdiv_f5_f0() { +/* fdiv st(5),st */ + IU16 src2_index = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FDIV(5, 5, (VOID *)&src2_index); +} + +LOCAL VOID npx_fdiv_f6_f0() { +/* fdiv st(6),st */ + IU16 src2_index = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FDIV(6, 6, (VOID *)&src2_index); +} + +LOCAL VOID npx_fdiv_f7_f0() { +/* fdiv st(7),st */ + IU16 src2_index = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FDIV(7, 7, (VOID *)&src2_index); +} + +LOCAL VOID npx_fdiv_short() { +/* fdiv DWORD PTR */ + + FPtype = M32R; + D_Ed(0, RO0, PG_R); + F_Ed(0); + SAVE_PTRS(); + SAVE_DPTRS(); + FDIV(0, 0, &ops[0].sng); +} + +LOCAL VOID npx_fdiv_long() { +/* fdiv QWORD PTR */ + + FPtype = M64R; + D_E08(0, RO0, PG_R); + F_E08(0); + SAVE_PTRS(); + SAVE_DPTRS(); + FDIV(0, 0, &ops[0].npxbuff[0]); +} + +LOCAL VOID npx_fdivp_f0() { +/* fdivp st(0),st */ + + POPST = TRUE; + npx_fdiv_f0_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_fdivp_f1() { +/* fdivp st(1),st */ + + POPST = TRUE; + npx_fdiv_f1_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_fdivp_f2() { +/* fdivp st(2),st */ + + POPST = TRUE; + npx_fdiv_f2_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_fdivp_f3() { +/* fdivp st(3),st */ + + POPST = TRUE; + npx_fdiv_f3_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_fdivp_f4() { +/* fdivp st(4),st */ + + POPST = TRUE; + npx_fdiv_f4_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_fdivp_f5() { +/* fdivp st(5),st */ + + POPST = TRUE; + npx_fdiv_f5_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_fdivp_f6() { +/* fdivp st(6),st */ + + POPST = TRUE; + npx_fdiv_f6_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_fdivp_f7() { +/* fdivp st(7),st */ + + POPST = TRUE; + npx_fdiv_f7_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_fdivr_f0_f0() { +/* fdivr st,st */ + + REVERSE = TRUE; + npx_fdiv_f0_f0(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fdivr_f0_f1() { +/* fdivr st,st(1) */ + + REVERSE = TRUE; + npx_fdiv_f0_f1(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fdivr_f0_f2() { +/* fdivr st,st(2) */ + + REVERSE = TRUE; + npx_fdiv_f0_f2(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fdivr_f0_f3() { +/* fdivr st,st(3) */ + + REVERSE = TRUE; + npx_fdiv_f0_f3(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fdivr_f0_f4() { +/* fdivr st,st(4) */ + + REVERSE = TRUE; + npx_fdiv_f0_f4(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fdivr_f0_f5() { +/* fdivr st,st(5) */ + + REVERSE = TRUE; + npx_fdiv_f0_f5(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fdivr_f0_f6() { +/* fdivr st,st(6) */ + + REVERSE = TRUE; + npx_fdiv_f0_f6(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fdivr_f0_f7() { +/* fdivr st,st(7) */ + + REVERSE = TRUE; + npx_fdiv_f0_f7(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fdivr_f1_f0() { +/* fdivr st(1),st */ + + REVERSE = TRUE; + npx_fdiv_f1_f0(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fdivr_f2_f0() { +/* fdivr st(2),st */ + + REVERSE = TRUE; + npx_fdiv_f2_f0(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fdivr_f3_f0() { +/* fdivr st(3),st */ + + REVERSE = TRUE; + npx_fdiv_f3_f0(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fdivr_f4_f0() { +/* fdivr st(4),st */ + + REVERSE = TRUE; + npx_fdiv_f4_f0(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fdivr_f5_f0() { +/* fdivr st(5),st */ + + REVERSE = TRUE; + npx_fdiv_f5_f0(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fdivr_f6_f0() { +/* fdivr st(6),st */ + + REVERSE = TRUE; + npx_fdiv_f6_f0(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fdivr_f7_f0() { +/* fdivr st(7),st */ + + REVERSE = TRUE; + npx_fdiv_f7_f0(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fdivr_short() { +/* fdivr DWORD PTR */ + + REVERSE = TRUE; + npx_fdiv_short(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fdivr_long() { +/* fdivr QWORD PTR */ + + REVERSE = TRUE; + npx_fdiv_long(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fdivrp_f0() { +/* fdivrp st(0),st */ + + REVERSE = TRUE; + POPST = TRUE; + npx_fdiv_f0_f0(); + POPST = FALSE; + REVERSE = FALSE; +} + +LOCAL VOID npx_fdivrp_f1() { +/* fdivrp st(1),st */ + + REVERSE = TRUE; + POPST = TRUE; + npx_fdiv_f1_f0(); + POPST = FALSE; + REVERSE = FALSE; +} + +LOCAL VOID npx_fdivrp_f2() { +/* fdivrp st(2),st */ + + REVERSE = TRUE; + POPST = TRUE; + npx_fdiv_f2_f0(); + POPST = FALSE; + REVERSE = FALSE; +} + +LOCAL VOID npx_fdivrp_f3() { +/* fdivrp st(3),st */ + + REVERSE = TRUE; + POPST = TRUE; + npx_fdiv_f3_f0(); + POPST = FALSE; + REVERSE = FALSE; +} + +LOCAL VOID npx_fdivrp_f4() { +/* fdivrp st(4),st */ + + REVERSE = TRUE; + POPST = TRUE; + npx_fdiv_f4_f0(); + POPST = FALSE; + REVERSE = FALSE; +} + +LOCAL VOID npx_fdivrp_f5() { +/* fdivrp st(5),st */ + + REVERSE = TRUE; + POPST = TRUE; + npx_fdiv_f5_f0(); + POPST = FALSE; + REVERSE = FALSE; +} + +LOCAL VOID npx_fdivrp_f6() { +/* fdivrp st(6),st */ + + REVERSE = TRUE; + POPST = TRUE; + npx_fdiv_f6_f0(); + POPST = FALSE; + REVERSE = FALSE; +} + +LOCAL VOID npx_fdivrp_f7() { +/* fdivrp st(7),st */ + + REVERSE = TRUE; + POPST = TRUE; + npx_fdiv_f7_f0(); + POPST = FALSE; + REVERSE = FALSE; +} + +LOCAL VOID npx_ffree_f0() { +/* ffree st(0) */ + + SAVE_PTRS(); + FFREE(0); +} + +LOCAL VOID npx_ffree_f1() { +/* ffree st(1) */ + + SAVE_PTRS(); + FFREE(1); +} + +LOCAL VOID npx_ffree_f2() { +/* ffree st(2) */ + + SAVE_PTRS(); + FFREE(2); +} + +LOCAL VOID npx_ffree_f3() { +/* ffree st(3) */ + + SAVE_PTRS(); + FFREE(3); +} + +LOCAL VOID npx_ffree_f4() { +/* ffree st(4) */ + + SAVE_PTRS(); + FFREE(4); +} + +LOCAL VOID npx_ffree_f5() { +/* ffree st(5) */ + + SAVE_PTRS(); + FFREE(5); +} + +LOCAL VOID npx_ffree_f6() { +/* ffree st(6) */ + + SAVE_PTRS(); + FFREE(6); +} + +LOCAL VOID npx_ffree_f7() { +/* ffree st(7) */ + + SAVE_PTRS(); + FFREE(7); +} + +LOCAL VOID npx_ffreep_f0() { +/* ffreep st(0) */ + + POPST=TRUE; + npx_ffree_f0(); + POPST=FALSE; +} + +LOCAL VOID npx_ffreep_f1() { +/* ffreep st(1) */ + + POPST=TRUE; + npx_ffree_f1(); + POPST=FALSE; +} + +LOCAL VOID npx_ffreep_f2() { +/* ffreep st(2) */ + + POPST=TRUE; + npx_ffree_f2(); + POPST=FALSE; +} + +LOCAL VOID npx_ffreep_f3() { +/* ffreep st(3) */ + + POPST=TRUE; + npx_ffree_f3(); + POPST=FALSE; +} + +LOCAL VOID npx_ffreep_f4() { +/* ffreep st(4) */ + + POPST=TRUE; + npx_ffree_f4(); + POPST=FALSE; +} + +LOCAL VOID npx_ffreep_f5() { +/* ffreep st(5) */ + + POPST=TRUE; + npx_ffree_f5(); + POPST=FALSE; +} + +LOCAL VOID npx_ffreep_f6() { +/* ffreep st(6) */ + + POPST=TRUE; + npx_ffree_f6(); + POPST=FALSE; +} + +LOCAL VOID npx_ffreep_f7() { +/* ffreep st(7) */ + + POPST=TRUE; + npx_ffree_f7(); + POPST=FALSE; +} + +LOCAL VOID npx_fiadd_word() { +/* fiadd WORD PTR */ + + FPtype = M16I; + D_Ew(0, RO0, PG_R); + F_Ew(0); + SAVE_PTRS(); + SAVE_DPTRS(); + FADD(0, 0, &ops[0].sng); +} + + +LOCAL VOID npx_fiadd_short() { +/* fiadd DWORD PTR */ + + FPtype = M32I; + D_Ed(0, RO0, PG_R); + F_Ed(0); + SAVE_PTRS(); + SAVE_DPTRS(); + FADD(0, 0, &ops[0].sng); +} + +LOCAL VOID npx_ficom_word() { +/* ficom WORD PTR */ + + FPtype = M16I; + D_Ew(0, RO0, PG_R); + F_Ew(0); + SAVE_PTRS(); + SAVE_DPTRS(); + FCOM(&ops[0].sng); +} + +LOCAL VOID npx_ficom_short() { +/* ficom DWORD PTR */ + + FPtype = M32I; + D_Ed(0, RO0, PG_R); + F_Ed(0); + SAVE_PTRS(); + SAVE_DPTRS(); + FCOM(&ops[0].sng); +} + +LOCAL VOID npx_ficomp_word() { +/* ficomp WORD PTR */ + + POPST = TRUE; + npx_ficom_word(); + POPST = FALSE; +} + +LOCAL VOID npx_ficomp_short() { +/* ficomp DWORD PTR */ + + POPST = TRUE; + npx_ficom_short(); + POPST = FALSE; +} + +LOCAL VOID npx_fidiv_word() { +/* fidiv WORD PTR */ + + FPtype = M16I; + D_Ew(0, RO0, PG_R); + F_Ew(0); + SAVE_PTRS(); + SAVE_DPTRS(); + FDIV(0, 0, &ops[0].sng); +} + +LOCAL VOID npx_fidiv_short() { +/* fidiv DWORD PTR */ + + FPtype = M32I; + D_Ed(0, RO0, PG_R); + F_Ed(0); + SAVE_PTRS(); + SAVE_DPTRS(); + FDIV(0, 0, &ops[0].sng); +} + +LOCAL VOID npx_fidivr_word() { +/* fidivr WORD PTR */ + + REVERSE=TRUE; + npx_fidiv_word(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fidivr_short() { +/* fidivr DWORD PTR */ + + REVERSE=TRUE; + npx_fidiv_short(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fild_word() { +/* fild WORD PTR */ + + FPtype = M16I; + D_Ew(0, RO0, PG_R); + F_Ew(0); + SAVE_PTRS(); + SAVE_DPTRS(); + FLD(&ops[0].sng); +} + +LOCAL VOID npx_fild_short() { +/* fild DWORD PTR */ + + FPtype = M32I; + D_Ed(0, RO0, PG_R); + F_Ed(0); + SAVE_PTRS(); + SAVE_DPTRS(); + FLD(&ops[0].sng); +} + +LOCAL VOID npx_fild_long() { +/* fild QWORD PTR */ + + FPtype = M64I; + D_E08(0, RO0, PG_R); + F_E08(0); + SAVE_PTRS(); + SAVE_DPTRS(); + FLD(&ops[0].npxbuff[0]); +} + +LOCAL VOID npx_fimul_word() { +/* fimul WORD PTR */ + + FPtype = M16I; + D_Ew(0, RO0, PG_R); + F_Ew(0); + SAVE_PTRS(); + SAVE_DPTRS(); + FMUL(0, 0, &ops[0].sng); +} + +LOCAL VOID npx_fimul_short() { +/* fimul DWORD PTR */ + + FPtype = M32I; + D_Ed(0, RO0, PG_R); + F_Ed(0); + SAVE_PTRS(); + SAVE_DPTRS(); + FMUL(0, 0, &ops[0].sng); +} + +LOCAL VOID npx_fincstp() { +/* fincstp */ + + FINCSTP(); +} + +LOCAL VOID npx_finit() { +/* finit */ + + FINIT(); +} + +LOCAL VOID npx_fist_word() { +/* fist WORD PTR */ + + FPtype = M16I; + D_Ew(0, WO0, PG_W); + SAVE_PTRS(); + SAVE_DPTRS(); + FIST(&ops[0].sng); + P_Ew(0); +} + +LOCAL VOID npx_fist_short() { +/* fist DWORD PTR */ + + FPtype = M32I; + D_Ed(0, WO0, PG_W); + SAVE_PTRS(); + SAVE_DPTRS(); + FIST(&ops[0].sng); + P_Ed(0); +} + +LOCAL VOID npx_fistp_word() { +/* fistp WORD PTR */ + + POPST = TRUE; + npx_fist_word(); + POPST = FALSE; +} + +LOCAL VOID npx_fistp_short() { +/* fistp DWORD PTR */ + + POPST = TRUE; + npx_fist_short(); + POPST = FALSE; +} + +LOCAL VOID npx_fistp_long() { +/* fistp QWORD PTR */ + + FPtype = M64I; + POPST = TRUE; + D_E08(0, WO0, PG_W); + SAVE_PTRS(); + SAVE_DPTRS(); + FIST(&ops[0].npxbuff[0]); + P_E08(0); + POPST = FALSE; +} + +LOCAL VOID npx_fisub_word() { +/* fisub WORD PTR */ + + FPtype = M16I; + D_Ew(0, RO0, PG_R); + F_Ew(0); + SAVE_PTRS(); + SAVE_DPTRS(); + FSUB(0, 0, &ops[0].sng); +} + +LOCAL VOID npx_fisub_short() { +/* fisub DWORD PTR */ + + FPtype = M32I; + D_Ed(0, RO0, PG_R); + F_Ed(0); + SAVE_PTRS(); + SAVE_DPTRS(); + FSUB(0, 0, &ops[0].sng); +} + +LOCAL VOID npx_fisubr_word() { +/* fisubr WORD PTR */ + + REVERSE = TRUE; + npx_fisub_word(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fisubr_short() { +/* fisubr DWORD PTR */ + + REVERSE = TRUE; + npx_fisub_short(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fld_f0() { +/* fld st(0) */ + IU16 stackPtr = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FLD((VOID *)&stackPtr); +} + +LOCAL VOID npx_fld_f1() { +/* fld st(1) */ + IU16 stackPtr = 1; + + SAVE_PTRS(); + FPtype = FPSTACK; + FLD((VOID *)&stackPtr); +} + +LOCAL VOID npx_fld_f2() { +/* fld st(2) */ + IU16 stackPtr = 2; + + SAVE_PTRS(); + FPtype = FPSTACK; + FLD((VOID *)&stackPtr); +} + +LOCAL VOID npx_fld_f3() { +/* fld st(3) */ + IU16 stackPtr = 3; + + SAVE_PTRS(); + FPtype = FPSTACK; + FLD((VOID *)&stackPtr); +} + +LOCAL VOID npx_fld_f4() { +/* fld st(4) */ + IU16 stackPtr = 4; + + SAVE_PTRS(); + FPtype = FPSTACK; + FLD((VOID *)&stackPtr); +} + +LOCAL VOID npx_fld_f5() { +/* fld st(5) */ + IU16 stackPtr = 5; + + SAVE_PTRS(); + FPtype = FPSTACK; + FLD((VOID *)&stackPtr); +} + +LOCAL VOID npx_fld_f6() { +/* fld st(6) */ + IU16 stackPtr = 6; + + SAVE_PTRS(); + FPtype = FPSTACK; + FLD((VOID *)&stackPtr); +} + +LOCAL VOID npx_fld_f7() { +/* fld st(7) */ + IU16 stackPtr = 7; + + SAVE_PTRS(); + FPtype = FPSTACK; + FLD((VOID *)&stackPtr); +} + +LOCAL VOID npx_fld_short() { +/* fld DWORD PTR */ + + FPtype=M32R; + D_Ed(0, RO0, PG_R); + F_Ed(0); + SAVE_PTRS(); + SAVE_DPTRS(); + FLD(&ops[0].sng); +} + +LOCAL VOID npx_fld_long() { +/* fld QWORD PTR */ + + FPtype=M64R; + D_E08(0, RO0, PG_R); + F_E08(0); + SAVE_PTRS(); + SAVE_DPTRS(); + FLD(&ops[0].npxbuff[0]); +} + +LOCAL VOID npx_fld_temp() { +/* fld TBYTE PTR */ + + FPtype=M80R; + D_E0a(0, RO0, PG_R); + F_E0a(0); + SAVE_PTRS(); + SAVE_DPTRS(); + FLD(&ops[0].npxbuff[0]); +} + +LOCAL VOID npx_fldcw() { +/* fldcw */ + + D_Ew(0, RO0, PG_R); + F_Ew(0); + FLDCW(&ops[0].sng); +} + +LOCAL VOID npx_fldenv() { +/* fldenv */ + + NPX_ADDRESS_SIZE_32 = (GET_OPERAND_SIZE()==USE16)?FALSE:TRUE; + NPX_PROT_MODE = ( GET_PE() && (GET_VM() == 0) ); + D_E0e(0, RO0, PG_R); + F_E0e(0); + FLDENV(&ops[0].npxbuff[0]); +} + +LOCAL VOID npx_fldlg2() { +/* fldlg2 */ + + SAVE_PTRS(); + FLDCONST(4); +} + +LOCAL VOID npx_fldln2() { +/* fldln2 */ + + SAVE_PTRS(); + FLDCONST(5); +} + +LOCAL VOID npx_fldl2e() { +/* fldl2e */ + + SAVE_PTRS(); + FLDCONST(2); +} + +LOCAL VOID npx_fldl2t() { +/* fldl2t */ + + SAVE_PTRS(); + FLDCONST(1); +} + +LOCAL VOID npx_fldpi() { +/* fldpi */ + + SAVE_PTRS(); + FLDCONST(3); +} + +LOCAL VOID npx_fldz() { +/* fldz */ + + SAVE_PTRS(); + FLDCONST(6); +} + +LOCAL VOID npx_fld1() { +/* fld1 */ + + SAVE_PTRS(); + FLDCONST(0); +} + +LOCAL VOID npx_fmul_f0_f0() { +/* fmul st,st */ + IU16 StackPtr = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FMUL(0, 0, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fmul_f0_f1() { +/* fmul st,st(1) */ + IU16 StackPtr = 1; + + SAVE_PTRS(); + FPtype = FPSTACK; + FMUL(0, 0, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fmul_f0_f2() { +/* fmul st,st(2) */ + IU16 StackPtr = 2; + + SAVE_PTRS(); + FPtype = FPSTACK; + FMUL(0, 0, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fmul_f0_f3() { +/* fmul st,st(3) */ + IU16 StackPtr = 3; + + SAVE_PTRS(); + FPtype = FPSTACK; + FMUL(0, 0, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fmul_f0_f4() { +/* fmul st,st(4) */ + IU16 StackPtr = 4; + + SAVE_PTRS(); + FPtype = FPSTACK; + FMUL(0, 0, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fmul_f0_f5() { +/* fmul st,st(5) */ + IU16 StackPtr = 5; + + SAVE_PTRS(); + FPtype = FPSTACK; + FMUL(0, 0, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fmul_f0_f6() { +/* fmul st,st(6) */ + IU16 StackPtr = 6; + + SAVE_PTRS(); + FPtype = FPSTACK; + FMUL(0, 0, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fmul_f0_f7() { +/* fmul st,st(7) */ + IU16 StackPtr = 7; + + SAVE_PTRS(); + FPtype = FPSTACK; + FMUL(0, 0, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fmul_f1_f0() { +/* fmul st(1),st */ + IU16 StackPtr = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FMUL(1, 1, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fmul_f2_f0() { +/* fmul st(2),st */ + IU16 StackPtr = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FMUL(2, 2, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fmul_f3_f0() { +/* fmul st(3),st */ + IU16 StackPtr = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FMUL(3, 3, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fmul_f4_f0() { +/* fmul st(4),st */ + IU16 StackPtr = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FMUL(4, 4, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fmul_f5_f0() { +/* fmul st(5),st */ + IU16 StackPtr = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FMUL(5, 5, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fmul_f6_f0() { +/* fmul st(6),st */ + IU16 StackPtr = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FMUL(6, 6, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fmul_f7_f0() { +/* fmul st(7),st */ + IU16 StackPtr = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FMUL(7, 7, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fmul_short() { +/* fmul DWORD PTR */ + + FPtype = M32R; + D_Ed(0, RO0, PG_R); + F_Ed(0); + SAVE_PTRS(); + SAVE_DPTRS(); + FMUL(0, 0, &ops[0].sng); +} + +LOCAL VOID npx_fmul_long() { +/* fmul QWORD PTR */ + + FPtype = M64R; + D_E08(0, RO0, PG_R); + F_E08(0); + SAVE_PTRS(); + SAVE_DPTRS(); + FMUL(0, 0, &ops[0].npxbuff[0]); +} + +LOCAL VOID npx_fmulp_f0() { +/* fmulp st(0),st */ + + POPST = TRUE; + npx_fmul_f0_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_fmulp_f1() { +/* fmulp st(1),st */ + + POPST = TRUE; + npx_fmul_f1_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_fmulp_f2() { +/* fmulp st(2),st */ + + POPST = TRUE; + npx_fmul_f2_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_fmulp_f3() { +/* fmulp st(3),st */ + + POPST = TRUE; + npx_fmul_f3_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_fmulp_f4() { +/* fmulp st(4),st */ + + POPST = TRUE; + npx_fmul_f4_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_fmulp_f5() { +/* fmulp st(5),st */ + + POPST = TRUE; + npx_fmul_f5_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_fmulp_f6() { +/* fmulp st(6),st */ + + POPST = TRUE; + npx_fmul_f6_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_fmulp_f7() { +/* fmulp st(7),st */ + + POPST = TRUE; + npx_fmul_f7_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_fnop() { +/* fnop */ + + SAVE_PTRS(); + FNOP(); +} + +LOCAL VOID npx_fpatan() { +/* fpatan */ + + SAVE_PTRS(); + FPATAN(); +} + +LOCAL VOID npx_fprem() { +/* fprem */ + + SAVE_PTRS(); + FPREM(); +} + +LOCAL VOID npx_fprem1() { +/* fprem */ + + SAVE_PTRS(); + FPREM1(); +} + +LOCAL VOID npx_fptan() { +/* fptan */ + + SAVE_PTRS(); + FPTAN(); +} + +LOCAL VOID npx_frndint() { +/* frndint */ + + SAVE_PTRS(); + FRNDINT(); +} + +LOCAL VOID npx_fscale() { +/* fscale */ + + SAVE_PTRS(); + FSCALE(); +} + +LOCAL VOID npx_fsin() { +/* fsin */ + + SAVE_PTRS(); + FSIN(); +} + +LOCAL VOID npx_fsincos() { +/* fsincos */ + + SAVE_PTRS(); + FSINCOS(); +} + +LOCAL VOID npx_fsqrt() { +/* fsqrt */ + + SAVE_PTRS(); + FSQRT(); +} + +LOCAL VOID npx_frstor() { +/* frstor */ + + NPX_ADDRESS_SIZE_32 = (GET_OPERAND_SIZE()==USE16)?FALSE:TRUE; + NPX_PROT_MODE = ( GET_PE() && (GET_VM() == 0) ); + D_E5e(0, RO0, PG_R); + F_E5e(0); + FRSTOR(&ops[0].npxbuff[0]); +} + +LOCAL VOID npx_fsave() { +/* fsave */ + + NPX_ADDRESS_SIZE_32 = (GET_OPERAND_SIZE()==USE16)?FALSE:TRUE; + NPX_PROT_MODE = ( GET_PE() && (GET_VM() == 0) ); + D_E5e(0, WO0, PG_W); + FSAVE(&ops[0].npxbuff[0]); + P_E5e(0); +} + +LOCAL VOID npx_fst_f0() { +/* fst st(0) */ + IU16 StackPtr=0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FST((VOID *)&StackPtr); +} + +LOCAL VOID npx_fst_f1() { +/* fst st(1) */ + IU16 StackPtr=1; + + SAVE_PTRS(); + FPtype = FPSTACK; + FST((VOID *)&StackPtr); +} + +LOCAL VOID npx_fst_f2() { +/* fst st(2) */ + IU16 StackPtr=2; + + SAVE_PTRS(); + FPtype = FPSTACK; + FST((VOID *)&StackPtr); +} + +LOCAL VOID npx_fst_f3() { +/* fst st(3) */ + IU16 StackPtr=3; + + SAVE_PTRS(); + FPtype = FPSTACK; + FST((VOID *)&StackPtr); +} + +LOCAL VOID npx_fst_f4() { +/* fst st(4) */ + IU16 StackPtr=4; + + SAVE_PTRS(); + FPtype = FPSTACK; + FST((VOID *)&StackPtr); +} + +LOCAL VOID npx_fst_f5() { +/* fst st(5) */ + IU16 StackPtr=5; + + SAVE_PTRS(); + FPtype = FPSTACK; + FST((VOID *)&StackPtr); +} + +LOCAL VOID npx_fst_f6() { +/* fst st(6) */ + IU16 StackPtr=6; + + SAVE_PTRS(); + FPtype = FPSTACK; + FST((VOID *)&StackPtr); +} + +LOCAL VOID npx_fst_f7() { +/* fst st(7) */ + IU16 StackPtr=7; + + SAVE_PTRS(); + FPtype = FPSTACK; + FST((VOID *)&StackPtr); +} + +LOCAL VOID npx_fst_short() { +/* fst DWORD PTR */ + + FPtype = M32R; + D_Ed(0, WO0, PG_W); + SAVE_PTRS(); + SAVE_DPTRS(); + FST(&ops[0].sng); + P_Ed(0); +} + +LOCAL VOID npx_fst_long() { +/* fst QWORD PTR */ + + FPtype = M64R; + D_E08(0, WO0, PG_W); + SAVE_PTRS(); + SAVE_DPTRS(); + FST(&ops[0].npxbuff[0]); + P_E08(0); +} + +LOCAL VOID npx_fstcw() { +/* fstcw */ + + D_Ew(0, WO0, PG_W); + FSTCW(&ops[0].sng); + P_Ew(0); +} + +LOCAL VOID npx_fstenv() { +/* fstenv */ + + NPX_ADDRESS_SIZE_32 = (GET_OPERAND_SIZE()==USE16)?FALSE:TRUE; + NPX_PROT_MODE = ( GET_PE() && (GET_VM() == 0) ); + D_E0e(0, WO0, PG_W); + FSTENV(&ops[0].npxbuff[0]); + P_E0e(0); +} + +LOCAL VOID npx_fstp_f0() { +/* fstp st(0) */ + + POPST = TRUE; + npx_fst_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_fstp_f1() { +/* fstp st(1) */ + + POPST = TRUE; + npx_fst_f1(); + POPST = FALSE; +} + +LOCAL VOID npx_fstp_f2() { +/* fstp st(2) */ + + POPST = TRUE; + npx_fst_f2(); + POPST = FALSE; +} + +LOCAL VOID npx_fstp_f3() { +/* fstp st(3) */ + + POPST = TRUE; + npx_fst_f3(); + POPST = FALSE; +} + +LOCAL VOID npx_fstp_f4() { +/* fstp st(4) */ + + POPST = TRUE; + npx_fst_f4(); + POPST = FALSE; +} + +LOCAL VOID npx_fstp_f5() { +/* fstp st(5) */ + + POPST = TRUE; + npx_fst_f5(); + POPST = FALSE; +} + +LOCAL VOID npx_fstp_f6() { +/* fstp st(6) */ + + POPST = TRUE; + npx_fst_f6(); + POPST = FALSE; +} + +LOCAL VOID npx_fstp_f7() { +/* fstp st(7) */ + + POPST = TRUE; + npx_fst_f7(); + POPST = FALSE; +} + +LOCAL VOID npx_fstp_short() { +/* fstp DWORD PTR */ + + POPST = TRUE; + npx_fst_short(); + POPST = FALSE; +} + +LOCAL VOID npx_fstp_long() { +/* fstp QWORD PTR */ + + POPST = TRUE; + npx_fst_long(); + POPST = FALSE; +} + +LOCAL VOID npx_fstp_temp() { +/* fstp TBYTE PTR */ + + POPST = TRUE; + FPtype = M80R; + D_E0a(0, WO0, PG_W); + SAVE_PTRS(); + SAVE_DPTRS(); + FST(&ops[0].npxbuff[0]); + P_E0a(0); + POPST = FALSE; +} + +LOCAL VOID npx_fstsw() { +/* fstsw */ + + D_Ew(0, WO0, PG_W); + FSTSW(&ops[0].sng, FALSE); + P_Ew(0); +} + +LOCAL VOID npx_fstswax() { +/* fstswax */ + + FSTSW((VOID *)&Ax_regptr, TRUE); + SET_AX(Ax_regptr); +} + +LOCAL VOID npx_fsub_f0_f0() { +/* fsub st,st */ + IU16 StackPtr = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FSUB(0, 0, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fsub_f0_f1() { +/* fsub st,st(1) */ + IU16 StackPtr = 1; + + SAVE_PTRS(); + FPtype = FPSTACK; + FSUB(0, 0, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fsub_f0_f2() { +/* fsub st,st(2) */ + IU16 StackPtr = 2; + + SAVE_PTRS(); + FPtype = FPSTACK; + FSUB(0, 0, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fsub_f0_f3() { +/* fsub st,st(3) */ + IU16 StackPtr = 3; + + SAVE_PTRS(); + FPtype = FPSTACK; + FSUB(0, 0, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fsub_f0_f4() { +/* fsub st,st(4) */ + IU16 StackPtr = 4; + + SAVE_PTRS(); + FPtype = FPSTACK; + FSUB(0, 0, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fsub_f0_f5() { +/* fsub st,st(5) */ + IU16 StackPtr = 5; + + SAVE_PTRS(); + FPtype = FPSTACK; + FSUB(0, 0, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fsub_f0_f6() { +/* fsub st,st(6) */ + IU16 StackPtr = 6; + + SAVE_PTRS(); + FPtype = FPSTACK; + FSUB(0, 0, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fsub_f0_f7() { +/* fsub st,st(7) */ + IU16 StackPtr = 7; + + SAVE_PTRS(); + FPtype = FPSTACK; + FSUB(0, 0, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fsub_f1_f0() { +/* fsub st(1),st */ + IU16 StackPtr = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FSUB(1, 1, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fsub_f2_f0() { +/* fsub st(2),st */ + IU16 StackPtr = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FSUB(2, 2, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fsub_f3_f0() { +/* fsub st(3),st */ + IU16 StackPtr = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FSUB(3, 3, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fsub_f4_f0() { +/* fsub st(4),st */ + IU16 StackPtr = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FSUB(4, 4, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fsub_f5_f0() { +/* fsub st(5),st */ + IU16 StackPtr = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FSUB(5, 5, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fsub_f6_f0() { +/* fsub st(6),st */ + IU16 StackPtr = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FSUB(6, 6, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fsub_f7_f0() { +/* fsub st(7),st */ + IU16 StackPtr = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + FSUB(7, 7, (VOID *)&StackPtr); +} + +LOCAL VOID npx_fsub_short() { +/* fsub DWORD PTR */ + + FPtype = M32R; + D_Ed(0, RO0, PG_R); + F_Ed(0); + SAVE_PTRS(); + SAVE_DPTRS(); + FSUB(0, 0, &ops[0].sng); +} + +LOCAL VOID npx_fsub_long() { +/* fsub QWORD PTR */ + + FPtype = M64R; + D_E08(0, RO0, PG_R); + F_E08(0); + SAVE_PTRS(); + SAVE_DPTRS(); + FSUB(0, 0, &ops[0].npxbuff[0]); +} + +LOCAL VOID npx_fsubp_f0() { +/* fsubp st(0),st */ + + POPST = TRUE; + npx_fsub_f0_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_fsubp_f1() { +/* fsubp st(1),st */ + + POPST = TRUE; + npx_fsub_f1_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_fsubp_f2() { +/* fsubp st(2),st */ + + POPST = TRUE; + npx_fsub_f2_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_fsubp_f3() { +/* fsubp st(3),st */ + + POPST = TRUE; + npx_fsub_f3_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_fsubp_f4() { +/* fsubp st(4),st */ + + POPST = TRUE; + npx_fsub_f4_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_fsubp_f5() { +/* fsubp st(5),st */ + + POPST = TRUE; + npx_fsub_f5_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_fsubp_f6() { +/* fsubp st(6),st */ + + POPST = TRUE; + npx_fsub_f6_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_fsubp_f7() { +/* fsubp st(7),st */ + + POPST = TRUE; + npx_fsub_f7_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_fsubr_f0_f0() { +/* fsubr st,st */ + + REVERSE = TRUE; + npx_fsub_f0_f0(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fsubr_f0_f1() { +/* fsubr st,st(1) */ + + REVERSE = TRUE; + npx_fsub_f0_f1(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fsubr_f0_f2() { +/* fsubr st,st(2) */ + + REVERSE = TRUE; + npx_fsub_f0_f2(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fsubr_f0_f3() { +/* fsubr st,st(3) */ + + REVERSE = TRUE; + npx_fsub_f0_f3(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fsubr_f0_f4() { +/* fsubr st,st(4) */ + + REVERSE = TRUE; + npx_fsub_f0_f4(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fsubr_f0_f5() { +/* fsubr st,st(5) */ + + REVERSE = TRUE; + npx_fsub_f0_f5(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fsubr_f0_f6() { +/* fsubr st,st(6) */ + + REVERSE = TRUE; + npx_fsub_f0_f6(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fsubr_f0_f7() { +/* fsubr st,st(7) */ + + REVERSE = TRUE; + npx_fsub_f0_f7(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fsubr_f1_f0() { +/* fsubr st(1),st */ + + REVERSE = TRUE; + npx_fsub_f1_f0(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fsubr_f2_f0() { +/* fsubr st(2),st */ + + REVERSE = TRUE; + npx_fsub_f2_f0(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fsubr_f3_f0() { +/* fsubr st(3),st */ + + REVERSE = TRUE; + npx_fsub_f3_f0(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fsubr_f4_f0() { +/* fsubr st(4),st */ + + REVERSE = TRUE; + npx_fsub_f4_f0(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fsubr_f5_f0() { +/* fsubr st(5),st */ + + REVERSE = TRUE; + npx_fsub_f5_f0(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fsubr_f6_f0() { +/* fsubr st(6),st */ + + REVERSE = TRUE; + npx_fsub_f6_f0(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fsubr_f7_f0() { +/* fsubr st(7),st */ + + REVERSE = TRUE; + npx_fsub_f7_f0(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fsubr_short() { +/* fsubr DWORD PTR */ + + REVERSE = TRUE; + npx_fsub_short(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fsubr_long() { +/* fsubr QWORD PTR */ + + REVERSE = TRUE; + npx_fsub_long(); + REVERSE = FALSE; +} + +LOCAL VOID npx_fsubrp_f0() { +/* fsubrp st(0),st */ + + REVERSE = TRUE; + POPST = TRUE; + npx_fsub_f0_f0(); + POPST = FALSE; + REVERSE = FALSE; +} + +LOCAL VOID npx_fsubrp_f1() { +/* fsubrp st(1),st */ + + REVERSE = TRUE; + POPST = TRUE; + npx_fsub_f1_f0(); + POPST = FALSE; + REVERSE = FALSE; +} + +LOCAL VOID npx_fsubrp_f2() { +/* fsubrp st(2),st */ + + REVERSE = TRUE; + POPST = TRUE; + npx_fsub_f2_f0(); + POPST = FALSE; + REVERSE = FALSE; +} + +LOCAL VOID npx_fsubrp_f3() { +/* fsubrp st(3),st */ + + REVERSE = TRUE; + POPST = TRUE; + npx_fsub_f3_f0(); + POPST = FALSE; + REVERSE = FALSE; +} + +LOCAL VOID npx_fsubrp_f4() { +/* fsubrp st(4),st */ + + REVERSE = TRUE; + POPST = TRUE; + npx_fsub_f4_f0(); + POPST = FALSE; + REVERSE = FALSE; +} + +LOCAL VOID npx_fsubrp_f5() { +/* fsubrp st(5),st */ + + REVERSE = TRUE; + POPST = TRUE; + npx_fsub_f5_f0(); + POPST = FALSE; + REVERSE = FALSE; +} + +LOCAL VOID npx_fsubrp_f6() { +/* fsubrp st(6),st */ + + REVERSE = TRUE; + POPST = TRUE; + npx_fsub_f6_f0(); + POPST = FALSE; + REVERSE = FALSE; +} + +LOCAL VOID npx_fsubrp_f7() { +/* fsubrp st(7),st */ + + REVERSE = TRUE; + POPST = TRUE; + npx_fsub_f7_f0(); + POPST = FALSE; + REVERSE = FALSE; +} + +LOCAL VOID npx_ftst() { +/* ftst */ + + SAVE_PTRS(); + FTST(); +} + +LOCAL VOID npx_fucom_f0() { +/* fucom st(0) */ + IU16 src2_index = 0; + + SAVE_PTRS(); + FPtype = FPSTACK; + UNORDERED = TRUE; + FCOM((VOID *)&src2_index); + UNORDERED = FALSE; +} + +LOCAL VOID npx_fucom_f1() { +/* fucom st(1) */ + IU16 src2_index = 1; + + SAVE_PTRS(); + FPtype = FPSTACK; + UNORDERED = TRUE; + FCOM((VOID *)&src2_index); + UNORDERED = FALSE; +} + +LOCAL VOID npx_fucom_f2() { +/* fucom st(2) */ + IU16 src2_index = 2; + + SAVE_PTRS(); + FPtype = FPSTACK; + UNORDERED = TRUE; + FCOM((VOID *)&src2_index); + UNORDERED = FALSE; +} + +LOCAL VOID npx_fucom_f3() { +/* fucom st(3) */ + IU16 src2_index = 3; + + SAVE_PTRS(); + FPtype = FPSTACK; + UNORDERED = TRUE; + FCOM((VOID *)&src2_index); + UNORDERED = FALSE; +} + +LOCAL VOID npx_fucom_f4() { +/* fucom st(4) */ + IU16 src2_index = 4; + + SAVE_PTRS(); + FPtype = FPSTACK; + UNORDERED = TRUE; + FCOM((VOID *)&src2_index); + UNORDERED = FALSE; +} + +LOCAL VOID npx_fucom_f5() { +/* fucom st(5) */ + IU16 src2_index = 5; + + SAVE_PTRS(); + FPtype = FPSTACK; + UNORDERED = TRUE; + FCOM((VOID *)&src2_index); + UNORDERED = FALSE; +} + +LOCAL VOID npx_fucom_f6() { +/* fucom st(6) */ + IU16 src2_index = 6; + + SAVE_PTRS(); + FPtype = FPSTACK; + UNORDERED = TRUE; + FCOM((VOID *)&src2_index); + UNORDERED = FALSE; +} + +LOCAL VOID npx_fucom_f7() { +/* fucom st(7) */ + IU16 src2_index = 7; + + SAVE_PTRS(); + FPtype = FPSTACK; + UNORDERED = TRUE; + FCOM((VOID *)&src2_index); + UNORDERED = FALSE; +} + +LOCAL VOID npx_fucomp_f0() { +/* fucomp st(0) */ + + POPST = TRUE; + npx_fucom_f0(); + POPST = FALSE; +} + +LOCAL VOID npx_fucomp_f1() { +/* fucomp st(1) */ + + POPST = TRUE; + npx_fucom_f1(); + POPST = FALSE; +} + +LOCAL VOID npx_fucomp_f2() { +/* fucomp st(2) */ + + POPST = TRUE; + npx_fucom_f2(); + POPST = FALSE; +} + +LOCAL VOID npx_fucomp_f3() { +/* fucomp st(3) */ + + POPST = TRUE; + npx_fucom_f3(); + POPST = FALSE; +} + +LOCAL VOID npx_fucomp_f4() { +/* fucomp st(4) */ + + POPST = TRUE; + npx_fucom_f4(); + POPST = FALSE; +} + +LOCAL VOID npx_fucomp_f5() { +/* fucomp st(5) */ + + POPST = TRUE; + npx_fucom_f5(); + POPST = FALSE; +} + +LOCAL VOID npx_fucomp_f6() { +/* fucomp st(6) */ + + POPST = TRUE; + npx_fucom_f6(); + POPST = FALSE; +} + +LOCAL VOID npx_fucomp_f7() { +/* fucomp st(7) */ + + POPST = TRUE; + npx_fucom_f7(); + POPST = FALSE; +} + +LOCAL VOID npx_fucompp() { +/* fucompp */ + + DOUBLEPOP = TRUE; + npx_fucom_f1(); + DOUBLEPOP = FALSE; +} + +LOCAL VOID npx_fxam() { +/* fxam */ + + SAVE_PTRS(); + FXAM(); +} + +LOCAL VOID npx_fxch_f0() { +/* fxch st(0) */ + + SAVE_PTRS(); + FXCH(0); +} + +LOCAL VOID npx_fxch_f1() { +/* fxch st(1) */ + + SAVE_PTRS(); + FXCH(1); +} + +LOCAL VOID npx_fxch_f2() { +/* fxch st(2) */ + + SAVE_PTRS(); + FXCH(2); +} + +LOCAL VOID npx_fxch_f3() { +/* fxch st(3) */ + + SAVE_PTRS(); + FXCH(3); +} + +LOCAL VOID npx_fxch_f4() { +/* fxch st(4) */ + + SAVE_PTRS(); + FXCH(4); +} + +LOCAL VOID npx_fxch_f5() { +/* fxch st(5) */ + + SAVE_PTRS(); + FXCH(5); +} + +LOCAL VOID npx_fxch_f6() { +/* fxch st(6) */ + + SAVE_PTRS(); + FXCH(6); +} + +LOCAL VOID npx_fxch_f7() { +/* fxch st(7) */ + + SAVE_PTRS(); + FXCH(7); +} + +LOCAL VOID npx_fxtract() { +/* fxtract */ + + SAVE_PTRS(); + FXTRACT(); +} + +LOCAL VOID npx_fyl2x() { +/* fyl2x */ + + SAVE_PTRS(); + FYL2X(); +} + +LOCAL VOID npx_fyl2xp1() { +/* fyl2xp1 */ + + SAVE_PTRS(); + FYL2XP1(); +} + +LOCAL VOID npx_f2xm1() { +/* f2xm1 */ + + SAVE_PTRS(); + F2XM1(); +} + +LOCAL VOID npx_funimp() { + Int6(); +} + + +LOCAL VOID (*inst_table[])() = { +npx_fadd_short, /* d8 00 */ +npx_fadd_short, /* d8 01 */ +npx_fadd_short, /* d8 02 */ +npx_fadd_short, /* d8 03 */ +npx_fadd_short, /* d8 04 */ +npx_fadd_short, /* d8 05 */ +npx_fadd_short, /* d8 06 */ +npx_fadd_short, /* d8 07 */ +npx_fmul_short, /* d8 08 */ +npx_fmul_short, /* d8 09 */ +npx_fmul_short, /* d8 0a */ +npx_fmul_short, /* d8 0b */ +npx_fmul_short, /* d8 0c */ +npx_fmul_short, /* d8 0d */ +npx_fmul_short, /* d8 0e */ +npx_fmul_short, /* d8 0f */ +npx_fcom_short, /* d8 10 */ +npx_fcom_short, /* d8 11 */ +npx_fcom_short, /* d8 12 */ +npx_fcom_short, /* d8 13 */ +npx_fcom_short, /* d8 14 */ +npx_fcom_short, /* d8 15 */ +npx_fcom_short, /* d8 16 */ +npx_fcom_short, /* d8 17 */ +npx_fcomp_short, /* d8 18 */ +npx_fcomp_short, /* d8 19 */ +npx_fcomp_short, /* d8 1a */ +npx_fcomp_short, /* d8 1b */ +npx_fcomp_short, /* d8 1c */ +npx_fcomp_short, /* d8 1d */ +npx_fcomp_short, /* d8 1e */ +npx_fcomp_short, /* d8 1f */ +npx_fsub_short, /* d8 20 */ +npx_fsub_short, /* d8 21 */ +npx_fsub_short, /* d8 22 */ +npx_fsub_short, /* d8 23 */ +npx_fsub_short, /* d8 24 */ +npx_fsub_short, /* d8 25 */ +npx_fsub_short, /* d8 26 */ +npx_fsub_short, /* d8 27 */ +npx_fsubr_short, /* d8 28 */ +npx_fsubr_short, /* d8 29 */ +npx_fsubr_short, /* d8 2a */ +npx_fsubr_short, /* d8 2b */ +npx_fsubr_short, /* d8 2c */ +npx_fsubr_short, /* d8 2d */ +npx_fsubr_short, /* d8 2e */ +npx_fsubr_short, /* d8 2f */ +npx_fdiv_short, /* d8 30 */ +npx_fdiv_short, /* d8 31 */ +npx_fdiv_short, /* d8 32 */ +npx_fdiv_short, /* d8 33 */ +npx_fdiv_short, /* d8 34 */ +npx_fdiv_short, /* d8 35 */ +npx_fdiv_short, /* d8 36 */ +npx_fdiv_short, /* d8 37 */ +npx_fdivr_short, /* d8 38 */ +npx_fdivr_short, /* d8 39 */ +npx_fdivr_short, /* d8 3a */ +npx_fdivr_short, /* d8 3b */ +npx_fdivr_short, /* d8 3c */ +npx_fdivr_short, /* d8 3d */ +npx_fdivr_short, /* d8 3e */ +npx_fdivr_short, /* d8 3f */ +npx_fadd_short, /* d8 40 */ +npx_fadd_short, /* d8 41 */ +npx_fadd_short, /* d8 42 */ +npx_fadd_short, /* d8 43 */ +npx_fadd_short, /* d8 44 */ +npx_fadd_short, /* d8 45 */ +npx_fadd_short, /* d8 46 */ +npx_fadd_short, /* d8 47 */ +npx_fmul_short, /* d8 48 */ +npx_fmul_short, /* d8 49 */ +npx_fmul_short, /* d8 4a */ +npx_fmul_short, /* d8 4b */ +npx_fmul_short, /* d8 4c */ +npx_fmul_short, /* d8 4d */ +npx_fmul_short, /* d8 4e */ +npx_fmul_short, /* d8 4f */ +npx_fcom_short, /* d8 50 */ +npx_fcom_short, /* d8 51 */ +npx_fcom_short, /* d8 52 */ +npx_fcom_short, /* d8 53 */ +npx_fcom_short, /* d8 54 */ +npx_fcom_short, /* d8 55 */ +npx_fcom_short, /* d8 56 */ +npx_fcom_short, /* d8 57 */ +npx_fcomp_short, /* d8 58 */ +npx_fcomp_short, /* d8 59 */ +npx_fcomp_short, /* d8 5a */ +npx_fcomp_short, /* d8 5b */ +npx_fcomp_short, /* d8 5c */ +npx_fcomp_short, /* d8 5d */ +npx_fcomp_short, /* d8 5e */ +npx_fcomp_short, /* d8 5f */ +npx_fsub_short, /* d8 60 */ +npx_fsub_short, /* d8 61 */ +npx_fsub_short, /* d8 62 */ +npx_fsub_short, /* d8 63 */ +npx_fsub_short, /* d8 64 */ +npx_fsub_short, /* d8 65 */ +npx_fsub_short, /* d8 66 */ +npx_fsub_short, /* d8 67 */ +npx_fsubr_short, /* d8 68 */ +npx_fsubr_short, /* d8 69 */ +npx_fsubr_short, /* d8 6a */ +npx_fsubr_short, /* d8 6b */ +npx_fsubr_short, /* d8 6c */ +npx_fsubr_short, /* d8 6d */ +npx_fsubr_short, /* d8 6e */ +npx_fsubr_short, /* d8 6f */ +npx_fdiv_short, /* d8 70 */ +npx_fdiv_short, /* d8 71 */ +npx_fdiv_short, /* d8 72 */ +npx_fdiv_short, /* d8 73 */ +npx_fdiv_short, /* d8 74 */ +npx_fdiv_short, /* d8 75 */ +npx_fdiv_short, /* d8 76 */ +npx_fdiv_short, /* d8 77 */ +npx_fdivr_short, /* d8 78 */ +npx_fdivr_short, /* d8 79 */ +npx_fdivr_short, /* d8 7a */ +npx_fdivr_short, /* d8 7b */ +npx_fdivr_short, /* d8 7c */ +npx_fdivr_short, /* d8 7d */ +npx_fdivr_short, /* d8 7e */ +npx_fdivr_short, /* d8 7f */ +npx_fadd_short, /* d8 80 */ +npx_fadd_short, /* d8 81 */ +npx_fadd_short, /* d8 82 */ +npx_fadd_short, /* d8 83 */ +npx_fadd_short, /* d8 84 */ +npx_fadd_short, /* d8 85 */ +npx_fadd_short, /* d8 86 */ +npx_fadd_short, /* d8 87 */ +npx_fmul_short, /* d8 88 */ +npx_fmul_short, /* d8 89 */ +npx_fmul_short, /* d8 8a */ +npx_fmul_short, /* d8 8b */ +npx_fmul_short, /* d8 8c */ +npx_fmul_short, /* d8 8d */ +npx_fmul_short, /* d8 8e */ +npx_fmul_short, /* d8 8f */ +npx_fcom_short, /* d8 90 */ +npx_fcom_short, /* d8 91 */ +npx_fcom_short, /* d8 92 */ +npx_fcom_short, /* d8 93 */ +npx_fcom_short, /* d8 94 */ +npx_fcom_short, /* d8 95 */ +npx_fcom_short, /* d8 96 */ +npx_fcom_short, /* d8 97 */ +npx_fcomp_short, /* d8 98 */ +npx_fcomp_short, /* d8 99 */ +npx_fcomp_short, /* d8 9a */ +npx_fcomp_short, /* d8 9b */ +npx_fcomp_short, /* d8 9c */ +npx_fcomp_short, /* d8 9d */ +npx_fcomp_short, /* d8 9e */ +npx_fcomp_short, /* d8 9f */ +npx_fsub_short, /* d8 a0 */ +npx_fsub_short, /* d8 a1 */ +npx_fsub_short, /* d8 a2 */ +npx_fsub_short, /* d8 a3 */ +npx_fsub_short, /* d8 a4 */ +npx_fsub_short, /* d8 a5 */ +npx_fsub_short, /* d8 a6 */ +npx_fsub_short, /* d8 a7 */ +npx_fsubr_short, /* d8 a8 */ +npx_fsubr_short, /* d8 a9 */ +npx_fsubr_short, /* d8 aa */ +npx_fsubr_short, /* d8 ab */ +npx_fsubr_short, /* d8 ac */ +npx_fsubr_short, /* d8 ad */ +npx_fsubr_short, /* d8 ae */ +npx_fsubr_short, /* d8 af */ +npx_fdiv_short, /* d8 b0 */ +npx_fdiv_short, /* d8 b1 */ +npx_fdiv_short, /* d8 b2 */ +npx_fdiv_short, /* d8 b3 */ +npx_fdiv_short, /* d8 b4 */ +npx_fdiv_short, /* d8 b5 */ +npx_fdiv_short, /* d8 b6 */ +npx_fdiv_short, /* d8 b7 */ +npx_fdivr_short, /* d8 b8 */ +npx_fdivr_short, /* d8 b9 */ +npx_fdivr_short, /* d8 ba */ +npx_fdivr_short, /* d8 bb */ +npx_fdivr_short, /* d8 bc */ +npx_fdivr_short, /* d8 bd */ +npx_fdivr_short, /* d8 be */ +npx_fdivr_short, /* d8 bf */ +npx_fadd_f0_f0, /* d8 c0 */ +npx_fadd_f0_f1, +npx_fadd_f0_f2, +npx_fadd_f0_f3, +npx_fadd_f0_f4, +npx_fadd_f0_f5, +npx_fadd_f0_f6, +npx_fadd_f0_f7, +npx_fmul_f0_f0, /* d8 c7 */ +npx_fmul_f0_f1, +npx_fmul_f0_f2, +npx_fmul_f0_f3, +npx_fmul_f0_f4, +npx_fmul_f0_f5, +npx_fmul_f0_f6, +npx_fmul_f0_f7, +npx_fcom_f0, /* d8 d0 */ +npx_fcom_f1, +npx_fcom_f2, +npx_fcom_f3, +npx_fcom_f4, +npx_fcom_f5, +npx_fcom_f6, +npx_fcom_f7, +npx_fcomp_f0, +npx_fcomp_f1, +npx_fcomp_f2, +npx_fcomp_f3, +npx_fcomp_f4, +npx_fcomp_f5, +npx_fcomp_f6, +npx_fcomp_f7, +npx_fsub_f0_f0, /* d8 e0 */ +npx_fsub_f0_f1, +npx_fsub_f0_f2, +npx_fsub_f0_f3, +npx_fsub_f0_f4, +npx_fsub_f0_f5, +npx_fsub_f0_f6, +npx_fsub_f0_f7, +npx_fsubr_f0_f0, +npx_fsubr_f0_f1, +npx_fsubr_f0_f2, +npx_fsubr_f0_f3, +npx_fsubr_f0_f4, +npx_fsubr_f0_f5, +npx_fsubr_f0_f6, +npx_fsubr_f0_f7, +npx_fdiv_f0_f0, /* d8 f0 */ +npx_fdiv_f0_f1, +npx_fdiv_f0_f2, +npx_fdiv_f0_f3, +npx_fdiv_f0_f4, +npx_fdiv_f0_f5, +npx_fdiv_f0_f6, +npx_fdiv_f0_f7, +npx_fdivr_f0_f0, +npx_fdivr_f0_f1, +npx_fdivr_f0_f2, +npx_fdivr_f0_f3, +npx_fdivr_f0_f4, +npx_fdivr_f0_f5, +npx_fdivr_f0_f6, +npx_fdivr_f0_f7, +npx_fld_short, /* d9 00 */ +npx_fld_short, /* d9 01 */ +npx_fld_short, /* d9 02 */ +npx_fld_short, /* d9 03 */ +npx_fld_short, /* d9 04 */ +npx_fld_short, /* d9 05 */ +npx_fld_short, /* d9 06 */ +npx_fld_short, /* d9 07 */ +npx_funimp, /* d9 08 */ +npx_funimp, /* d9 09 */ +npx_funimp, /* d9 0a */ +npx_funimp, /* d9 0b */ +npx_funimp, /* d9 0c */ +npx_funimp, /* d9 0d */ +npx_funimp, /* d9 0e */ +npx_funimp, /* d9 0f */ +npx_fst_short, /* d9 10 */ +npx_fst_short, /* d9 11 */ +npx_fst_short, /* d9 12 */ +npx_fst_short, /* d9 13 */ +npx_fst_short, /* d9 14 */ +npx_fst_short, /* d9 15 */ +npx_fst_short, /* d9 16 */ +npx_fst_short, /* d9 17 */ +npx_fstp_short, /* d9 18 */ +npx_fstp_short, /* d9 19 */ +npx_fstp_short, /* d9 1a */ +npx_fstp_short, /* d9 1b */ +npx_fstp_short, /* d9 1c */ +npx_fstp_short, /* d9 1d */ +npx_fstp_short, /* d9 1e */ +npx_fstp_short, /* d9 1f */ +npx_fldenv, /* d9 20 */ +npx_fldenv, /* d9 21 */ +npx_fldenv, /* d9 22 */ +npx_fldenv, /* d9 23 */ +npx_fldenv, /* d9 24 */ +npx_fldenv, /* d9 25 */ +npx_fldenv, /* d9 26 */ +npx_fldenv, /* d9 27 */ +npx_fldcw, /* d9 28 */ +npx_fldcw, /* d9 29 */ +npx_fldcw, /* d9 2a */ +npx_fldcw, /* d9 2b */ +npx_fldcw, /* d9 2c */ +npx_fldcw, /* d9 2d */ +npx_fldcw, /* d9 2e */ +npx_fldcw, /* d9 2f */ +npx_fstenv, /* d9 30 */ +npx_fstenv, /* d9 31 */ +npx_fstenv, /* d9 32 */ +npx_fstenv, /* d9 33 */ +npx_fstenv, /* d9 34 */ +npx_fstenv, /* d9 35 */ +npx_fstenv, /* d9 36 */ +npx_fstenv, /* d9 37 */ +npx_fstcw, /* d9 38 */ +npx_fstcw, /* d9 39 */ +npx_fstcw, /* d9 3a */ +npx_fstcw, /* d9 3b */ +npx_fstcw, /* d9 3c */ +npx_fstcw, /* d9 3d */ +npx_fstcw, /* d9 3e */ +npx_fstcw, /* d9 3f */ +npx_fld_short, /* d9 40 */ +npx_fld_short, /* d9 41 */ +npx_fld_short, /* d9 42 */ +npx_fld_short, /* d9 43 */ +npx_fld_short, /* d9 44 */ +npx_fld_short, /* d9 45 */ +npx_fld_short, /* d9 46 */ +npx_fld_short, /* d9 47 */ +npx_funimp, /* d9 48 */ +npx_funimp, /* d9 49 */ +npx_funimp, /* d9 4a */ +npx_funimp, /* d9 4b */ +npx_funimp, /* d9 4c */ +npx_funimp, /* d9 4d */ +npx_funimp, /* d9 4e */ +npx_funimp, /* d9 4f */ +npx_fst_short, /* d9 50 */ +npx_fst_short, /* d9 51 */ +npx_fst_short, /* d9 52 */ +npx_fst_short, /* d9 53 */ +npx_fst_short, /* d9 54 */ +npx_fst_short, /* d9 55 */ +npx_fst_short, /* d9 56 */ +npx_fst_short, /* d9 57 */ +npx_fstp_short, /* d9 58 */ +npx_fstp_short, /* d9 59 */ +npx_fstp_short, /* d9 5a */ +npx_fstp_short, /* d9 5b */ +npx_fstp_short, /* d9 5c */ +npx_fstp_short, /* d9 5d */ +npx_fstp_short, /* d9 5e */ +npx_fstp_short, /* d9 5f */ +npx_fldenv, /* d9 60 */ +npx_fldenv, /* d9 61 */ +npx_fldenv, /* d9 62 */ +npx_fldenv, /* d9 63 */ +npx_fldenv, /* d9 64 */ +npx_fldenv, /* d9 65 */ +npx_fldenv, /* d9 66 */ +npx_fldenv, /* d9 67 */ +npx_fldcw, /* d9 68 */ +npx_fldcw, /* d9 69 */ +npx_fldcw, /* d9 6a */ +npx_fldcw, /* d9 6b */ +npx_fldcw, /* d9 6c */ +npx_fldcw, /* d9 6d */ +npx_fldcw, /* d9 6e */ +npx_fldcw, /* d9 6f */ +npx_fstenv, /* d9 70 */ +npx_fstenv, /* d9 71 */ +npx_fstenv, /* d9 72 */ +npx_fstenv, /* d9 73 */ +npx_fstenv, /* d9 74 */ +npx_fstenv, /* d9 75 */ +npx_fstenv, /* d9 76 */ +npx_fstenv, /* d9 77 */ +npx_fstcw, /* d9 78 */ +npx_fstcw, /* d9 79 */ +npx_fstcw, /* d9 7a */ +npx_fstcw, /* d9 7b */ +npx_fstcw, /* d9 7c */ +npx_fstcw, /* d9 7d */ +npx_fstcw, /* d9 7e */ +npx_fstcw, /* d9 7f */ +npx_fld_short, /* d9 80 */ +npx_fld_short, /* d9 81 */ +npx_fld_short, /* d9 82 */ +npx_fld_short, /* d9 83 */ +npx_fld_short, /* d9 84 */ +npx_fld_short, /* d9 85 */ +npx_fld_short, /* d9 86 */ +npx_fld_short, /* d9 87 */ +npx_funimp, /* d9 88 */ +npx_funimp, /* d9 89 */ +npx_funimp, /* d9 8a */ +npx_funimp, /* d9 8b */ +npx_funimp, /* d9 8c */ +npx_funimp, /* d9 8d */ +npx_funimp, /* d9 8e */ +npx_funimp, /* d9 8f */ +npx_fst_short, /* d9 90 */ +npx_fst_short, /* d9 91 */ +npx_fst_short, /* d9 92 */ +npx_fst_short, /* d9 93 */ +npx_fst_short, /* d9 94 */ +npx_fst_short, /* d9 95 */ +npx_fst_short, /* d9 96 */ +npx_fst_short, /* d9 97 */ +npx_fstp_short, /* d9 98 */ +npx_fstp_short, /* d9 99 */ +npx_fstp_short, /* d9 9a */ +npx_fstp_short, /* d9 9b */ +npx_fstp_short, /* d9 9c */ +npx_fstp_short, /* d9 9d */ +npx_fstp_short, /* d9 9e */ +npx_fstp_short, /* d9 9f */ +npx_fldenv, /* d9 a0 */ +npx_fldenv, /* d9 a1 */ +npx_fldenv, /* d9 a2 */ +npx_fldenv, /* d9 a3 */ +npx_fldenv, /* d9 a4 */ +npx_fldenv, /* d9 a5 */ +npx_fldenv, /* d9 a6 */ +npx_fldenv, /* d9 a7 */ +npx_fldcw, /* d9 a8 */ +npx_fldcw, /* d9 a9 */ +npx_fldcw, /* d9 aa */ +npx_fldcw, /* d9 ab */ +npx_fldcw, /* d9 ac */ +npx_fldcw, /* d9 ad */ +npx_fldcw, /* d9 ae */ +npx_fldcw, /* d9 af */ +npx_fstenv, /* d9 b0 */ +npx_fstenv, /* d9 b1 */ +npx_fstenv, /* d9 b2 */ +npx_fstenv, /* d9 b3 */ +npx_fstenv, /* d9 b4 */ +npx_fstenv, /* d9 b5 */ +npx_fstenv, /* d9 b6 */ +npx_fstenv, /* d9 b7 */ +npx_fstcw, /* d9 b8 */ +npx_fstcw, /* d9 b9 */ +npx_fstcw, /* d9 ba */ +npx_fstcw, /* d9 bb */ +npx_fstcw, /* d9 bc */ +npx_fstcw, /* d9 bd */ +npx_fstcw, /* d9 be */ +npx_fstcw, /* d9 bf */ +npx_fld_f0, /* d9 c0 */ +npx_fld_f1, +npx_fld_f2, +npx_fld_f3, +npx_fld_f4, +npx_fld_f5, +npx_fld_f6, +npx_fld_f7, +npx_fxch_f0, +npx_fxch_f1, +npx_fxch_f2, +npx_fxch_f3, +npx_fxch_f4, +npx_fxch_f5, +npx_fxch_f6, +npx_fxch_f7, +npx_fnop, /* d9 d0 */ +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_fstp_f0, +npx_fstp_f1, +npx_fstp_f2, +npx_fstp_f3, +npx_fstp_f4, +npx_fstp_f5, +npx_fstp_f6, +npx_fstp_f7, +npx_fchs, /* d9 e0 */ +npx_fabs, /* d9 e1 */ +npx_funimp, +npx_funimp, +npx_ftst, /* d9 e4 */ +npx_fxam, /* d9 e5 */ +npx_funimp, +npx_funimp, +npx_fld1, /* d9 e8 */ +npx_fldl2t, /* d9 e9 */ +npx_fldl2e, /* d9 ea */ +npx_fldpi, /* d9 eb */ +npx_fldlg2, /* d9 ec */ +npx_fldln2, /* d9 ed */ +npx_fldz, /* d9 ee */ +npx_funimp, +npx_f2xm1, /* d9 f0 */ +npx_fyl2x, /* d9 f1 */ +npx_fptan, /* d9 f2 */ +npx_fpatan, /* d9 f3 */ +npx_fxtract, /* d9 f4 */ +npx_fprem1, /* d9 f5 */ +npx_fdecstp, /* d9 f6 */ +npx_fincstp, /* d9 f7 */ +npx_fprem, /* d9 f8 */ +npx_fyl2xp1, /* d9 f9 */ +npx_fsqrt, /* d9 fa */ +npx_fsincos, /* d9 fb */ +npx_frndint, /* d9 fc */ +npx_fscale, /* d9 fd */ +npx_fsin, /* d9 fe */ +npx_fcos, /* d9 ff */ +npx_fiadd_short, /* da 00 */ +npx_fiadd_short, /* da 01 */ +npx_fiadd_short, /* da 02 */ +npx_fiadd_short, /* da 03 */ +npx_fiadd_short, /* da 04 */ +npx_fiadd_short, /* da 05 */ +npx_fiadd_short, /* da 06 */ +npx_fiadd_short, /* da 07 */ +npx_fimul_short, /* da 08 */ +npx_fimul_short, /* da 09 */ +npx_fimul_short, /* da 0a */ +npx_fimul_short, /* da 0b */ +npx_fimul_short, /* da 0c */ +npx_fimul_short, /* da 0d */ +npx_fimul_short, /* da 0e */ +npx_fimul_short, /* da 0f */ +npx_ficom_short, /* da 10 */ +npx_ficom_short, /* da 11 */ +npx_ficom_short, /* da 12 */ +npx_ficom_short, /* da 13 */ +npx_ficom_short, /* da 14 */ +npx_ficom_short, /* da 15 */ +npx_ficom_short, /* da 16 */ +npx_ficom_short, /* da 17 */ +npx_ficomp_short, /* da 18 */ +npx_ficomp_short, /* da 19 */ +npx_ficomp_short, /* da 1a */ +npx_ficomp_short, /* da 1b */ +npx_ficomp_short, /* da 1c */ +npx_ficomp_short, /* da 1d */ +npx_ficomp_short, /* da 1e */ +npx_ficomp_short, /* da 1f */ +npx_fisub_short, /* da 20 */ +npx_fisub_short, /* da 21 */ +npx_fisub_short, /* da 22 */ +npx_fisub_short, /* da 23 */ +npx_fisub_short, /* da 24 */ +npx_fisub_short, /* da 25 */ +npx_fisub_short, /* da 26 */ +npx_fisub_short, /* da 27 */ +npx_fisubr_short, /* da 28 */ +npx_fisubr_short, /* da 29 */ +npx_fisubr_short, /* da 2a */ +npx_fisubr_short, /* da 2b */ +npx_fisubr_short, /* da 2c */ +npx_fisubr_short, /* da 2d */ +npx_fisubr_short, /* da 2e */ +npx_fisubr_short, /* da 2f */ +npx_fidiv_short, /* da 30 */ +npx_fidiv_short, /* da 31 */ +npx_fidiv_short, /* da 32 */ +npx_fidiv_short, /* da 33 */ +npx_fidiv_short, /* da 34 */ +npx_fidiv_short, /* da 35 */ +npx_fidiv_short, /* da 36 */ +npx_fidiv_short, /* da 37 */ +npx_fidivr_short, /* da 38 */ +npx_fidivr_short, /* da 39 */ +npx_fidivr_short, /* da 3a */ +npx_fidivr_short, /* da 3b */ +npx_fidivr_short, /* da 3c */ +npx_fidivr_short, /* da 3d */ +npx_fidivr_short, /* da 3e */ +npx_fidivr_short, /* da 3f */ +npx_fiadd_short, /* da 40 */ +npx_fiadd_short, /* da 41 */ +npx_fiadd_short, /* da 42 */ +npx_fiadd_short, /* da 43 */ +npx_fiadd_short, /* da 44 */ +npx_fiadd_short, /* da 45 */ +npx_fiadd_short, /* da 46 */ +npx_fiadd_short, /* da 47 */ +npx_fimul_short, /* da 48 */ +npx_fimul_short, /* da 49 */ +npx_fimul_short, /* da 4a */ +npx_fimul_short, /* da 4b */ +npx_fimul_short, /* da 4c */ +npx_fimul_short, /* da 4d */ +npx_fimul_short, /* da 4e */ +npx_fimul_short, /* da 4f */ +npx_ficom_short, /* da 50 */ +npx_ficom_short, /* da 51 */ +npx_ficom_short, /* da 52 */ +npx_ficom_short, /* da 53 */ +npx_ficom_short, /* da 54 */ +npx_ficom_short, /* da 55 */ +npx_ficom_short, /* da 56 */ +npx_ficom_short, /* da 57 */ +npx_ficomp_short, /* da 58 */ +npx_ficomp_short, /* da 59 */ +npx_ficomp_short, /* da 5a */ +npx_ficomp_short, /* da 5b */ +npx_ficomp_short, /* da 5c */ +npx_ficomp_short, /* da 5d */ +npx_ficomp_short, /* da 5e */ +npx_ficomp_short, /* da 5f */ +npx_fisub_short, /* da 60 */ +npx_fisub_short, /* da 61 */ +npx_fisub_short, /* da 62 */ +npx_fisub_short, /* da 63 */ +npx_fisub_short, /* da 64 */ +npx_fisub_short, /* da 65 */ +npx_fisub_short, /* da 66 */ +npx_fisub_short, /* da 67 */ +npx_fisubr_short, /* da 68 */ +npx_fisubr_short, /* da 69 */ +npx_fisubr_short, /* da 6a */ +npx_fisubr_short, /* da 6b */ +npx_fisubr_short, /* da 6c */ +npx_fisubr_short, /* da 6d */ +npx_fisubr_short, /* da 6e */ +npx_fisubr_short, /* da 6f */ +npx_fidiv_short, /* da 70 */ +npx_fidiv_short, /* da 71 */ +npx_fidiv_short, /* da 72 */ +npx_fidiv_short, /* da 73 */ +npx_fidiv_short, /* da 74 */ +npx_fidiv_short, /* da 75 */ +npx_fidiv_short, /* da 76 */ +npx_fidiv_short, /* da 77 */ +npx_fidivr_short, /* da 78 */ +npx_fidivr_short, /* da 79 */ +npx_fidivr_short, /* da 7a */ +npx_fidivr_short, /* da 7b */ +npx_fidivr_short, /* da 7c */ +npx_fidivr_short, /* da 7d */ +npx_fidivr_short, /* da 7e */ +npx_fidivr_short, /* da 7f */ +npx_fiadd_short, /* da 80 */ +npx_fiadd_short, /* da 81 */ +npx_fiadd_short, /* da 82 */ +npx_fiadd_short, /* da 83 */ +npx_fiadd_short, /* da 84 */ +npx_fiadd_short, /* da 85 */ +npx_fiadd_short, /* da 86 */ +npx_fiadd_short, /* da 87 */ +npx_fimul_short, /* da 88 */ +npx_fimul_short, /* da 89 */ +npx_fimul_short, /* da 8a */ +npx_fimul_short, /* da 8b */ +npx_fimul_short, /* da 8c */ +npx_fimul_short, /* da 8d */ +npx_fimul_short, /* da 8e */ +npx_fimul_short, /* da 8f */ +npx_ficom_short, /* da 90 */ +npx_ficom_short, /* da 91 */ +npx_ficom_short, /* da 92 */ +npx_ficom_short, /* da 93 */ +npx_ficom_short, /* da 94 */ +npx_ficom_short, /* da 95 */ +npx_ficom_short, /* da 96 */ +npx_ficom_short, /* da 97 */ +npx_ficomp_short, /* da 98 */ +npx_ficomp_short, /* da 99 */ +npx_ficomp_short, /* da 9a */ +npx_ficomp_short, /* da 9b */ +npx_ficomp_short, /* da 9c */ +npx_ficomp_short, /* da 9d */ +npx_ficomp_short, /* da 9e */ +npx_ficomp_short, /* da 9f */ +npx_fisub_short, /* da a0 */ +npx_fisub_short, /* da a1 */ +npx_fisub_short, /* da a2 */ +npx_fisub_short, /* da a3 */ +npx_fisub_short, /* da a4 */ +npx_fisub_short, /* da a5 */ +npx_fisub_short, /* da a6 */ +npx_fisub_short, /* da a7 */ +npx_fisubr_short, /* da a8 */ +npx_fisubr_short, /* da a9 */ +npx_fisubr_short, /* da aa */ +npx_fisubr_short, /* da ab */ +npx_fisubr_short, /* da ac */ +npx_fisubr_short, /* da ad */ +npx_fisubr_short, /* da ae */ +npx_fisubr_short, /* da af */ +npx_fidiv_short, /* da b0 */ +npx_fidiv_short, /* da b1 */ +npx_fidiv_short, /* da b2 */ +npx_fidiv_short, /* da b3 */ +npx_fidiv_short, /* da b4 */ +npx_fidiv_short, /* da b5 */ +npx_fidiv_short, /* da b6 */ +npx_fidiv_short, /* da b7 */ +npx_fidivr_short, /* da b8 */ +npx_fidivr_short, /* da b9 */ +npx_fidivr_short, /* da ba */ +npx_fidivr_short, /* da bb */ +npx_fidivr_short, /* da bc */ +npx_fidivr_short, /* da bd */ +npx_fidivr_short, /* da be */ +npx_fidivr_short, /* da bf */ +npx_funimp, /* da c0 */ +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, /* da d0 */ +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, /* da e0 */ +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_fucompp, /* da e9 */ +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, /* da f0 */ +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_fild_short, /* db 00 */ +npx_fild_short, /* db 01 */ +npx_fild_short, /* db 02 */ +npx_fild_short, /* db 03 */ +npx_fild_short, /* db 04 */ +npx_fild_short, /* db 05 */ +npx_fild_short, /* db 06 */ +npx_fild_short, /* db 07 */ +npx_funimp, /* db 08 */ +npx_funimp, /* db 09 */ +npx_funimp, /* db 0a */ +npx_funimp, /* db 0b */ +npx_funimp, /* db 0c */ +npx_funimp, /* db 0d */ +npx_funimp, /* db 0e */ +npx_funimp, /* db 0f */ +npx_fist_short, /* db 10 */ +npx_fist_short, /* db 11 */ +npx_fist_short, /* db 12 */ +npx_fist_short, /* db 13 */ +npx_fist_short, /* db 14 */ +npx_fist_short, /* db 15 */ +npx_fist_short, /* db 16 */ +npx_fist_short, /* db 17 */ +npx_fistp_short, /* db 18 */ +npx_fistp_short, /* db 19 */ +npx_fistp_short, /* db 1a */ +npx_fistp_short, /* db 1b */ +npx_fistp_short, /* db 1c */ +npx_fistp_short, /* db 1d */ +npx_fistp_short, /* db 1e */ +npx_fistp_short, /* db 1f */ +npx_funimp, /* db 20 */ +npx_funimp, /* db 21 */ +npx_funimp, /* db 22 */ +npx_funimp, /* db 23 */ +npx_funimp, /* db 24 */ +npx_funimp, /* db 25 */ +npx_funimp, /* db 26 */ +npx_funimp, /* db 27 */ +npx_fld_temp, /* db 28 */ +npx_fld_temp, /* db 29 */ +npx_fld_temp, /* db 2a */ +npx_fld_temp, /* db 2b */ +npx_fld_temp, /* db 2c */ +npx_fld_temp, /* db 2d */ +npx_fld_temp, /* db 2e */ +npx_fld_temp, /* db 2f */ +npx_funimp, /* db 30 */ +npx_funimp, /* db 31 */ +npx_funimp, /* db 32 */ +npx_funimp, /* db 33 */ +npx_funimp, /* db 34 */ +npx_funimp, /* db 35 */ +npx_funimp, /* db 36 */ +npx_funimp, /* db 37 */ +npx_fstp_temp, /* db 38 */ +npx_fstp_temp, /* db 39 */ +npx_fstp_temp, /* db 3a */ +npx_fstp_temp, /* db 3b */ +npx_fstp_temp, /* db 3c */ +npx_fstp_temp, /* db 3d */ +npx_fstp_temp, /* db 3e */ +npx_fstp_temp, /* db 3f */ +npx_fild_short, /* db 40 */ +npx_fild_short, /* db 41 */ +npx_fild_short, /* db 42 */ +npx_fild_short, /* db 43 */ +npx_fild_short, /* db 44 */ +npx_fild_short, /* db 45 */ +npx_fild_short, /* db 46 */ +npx_fild_short, /* db 47 */ +npx_funimp, /* db 48 */ +npx_funimp, /* db 49 */ +npx_funimp, /* db 4a */ +npx_funimp, /* db 4b */ +npx_funimp, /* db 4c */ +npx_funimp, /* db 4d */ +npx_funimp, /* db 4e */ +npx_funimp, /* db 4f */ +npx_fist_short, /* db 50 */ +npx_fist_short, /* db 51 */ +npx_fist_short, /* db 52 */ +npx_fist_short, /* db 53 */ +npx_fist_short, /* db 54 */ +npx_fist_short, /* db 55 */ +npx_fist_short, /* db 56 */ +npx_fist_short, /* db 57 */ +npx_fistp_short, /* db 58 */ +npx_fistp_short, /* db 59 */ +npx_fistp_short, /* db 5a */ +npx_fistp_short, /* db 5b */ +npx_fistp_short, /* db 5c */ +npx_fistp_short, /* db 5d */ +npx_fistp_short, /* db 5e */ +npx_fistp_short, /* db 5f */ +npx_funimp, /* db 60 */ +npx_funimp, /* db 61 */ +npx_funimp, /* db 62 */ +npx_funimp, /* db 63 */ +npx_funimp, /* db 64 */ +npx_funimp, /* db 65 */ +npx_funimp, /* db 66 */ +npx_funimp, /* db 67 */ +npx_fld_temp, /* db 68 */ +npx_fld_temp, /* db 69 */ +npx_fld_temp, /* db 6a */ +npx_fld_temp, /* db 6b */ +npx_fld_temp, /* db 6c */ +npx_fld_temp, /* db 6d */ +npx_fld_temp, /* db 6e */ +npx_fld_temp, /* db 6f */ +npx_funimp, /* db 70 */ +npx_funimp, /* db 71 */ +npx_funimp, /* db 72 */ +npx_funimp, /* db 73 */ +npx_funimp, /* db 74 */ +npx_funimp, /* db 75 */ +npx_funimp, /* db 76 */ +npx_funimp, /* db 77 */ +npx_fstp_temp, /* db 78 */ +npx_fstp_temp, /* db 79 */ +npx_fstp_temp, /* db 7a */ +npx_fstp_temp, /* db 7b */ +npx_fstp_temp, /* db 7c */ +npx_fstp_temp, /* db 7d */ +npx_fstp_temp, /* db 7e */ +npx_fstp_temp, /* db 7f */ +npx_fild_short, /* db 80 */ +npx_fild_short, /* db 81 */ +npx_fild_short, /* db 82 */ +npx_fild_short, /* db 83 */ +npx_fild_short, /* db 84 */ +npx_fild_short, /* db 85 */ +npx_fild_short, /* db 86 */ +npx_fild_short, /* db 87 */ +npx_funimp, /* db 88 */ +npx_funimp, /* db 89 */ +npx_funimp, /* db 8a */ +npx_funimp, /* db 8b */ +npx_funimp, /* db 8c */ +npx_funimp, /* db 8d */ +npx_funimp, /* db 8e */ +npx_funimp, /* db 8f */ +npx_fist_short, /* db 90 */ +npx_fist_short, /* db 91 */ +npx_fist_short, /* db 92 */ +npx_fist_short, /* db 93 */ +npx_fist_short, /* db 94 */ +npx_fist_short, /* db 95 */ +npx_fist_short, /* db 96 */ +npx_fist_short, /* db 97 */ +npx_fistp_short, /* db 98 */ +npx_fistp_short, /* db 99 */ +npx_fistp_short, /* db 9a */ +npx_fistp_short, /* db 9b */ +npx_fistp_short, /* db 9c */ +npx_fistp_short, /* db 9d */ +npx_fistp_short, /* db 9e */ +npx_fistp_short, /* db 9f */ +npx_funimp, /* db a0 */ +npx_funimp, /* db a1 */ +npx_funimp, /* db a2 */ +npx_funimp, /* db a3 */ +npx_funimp, /* db a4 */ +npx_funimp, /* db a5 */ +npx_funimp, /* db a6 */ +npx_funimp, /* db a7 */ +npx_fld_temp, /* db a8 */ +npx_fld_temp, /* db a9 */ +npx_fld_temp, /* db aa */ +npx_fld_temp, /* db ab */ +npx_fld_temp, /* db ac */ +npx_fld_temp, /* db ad */ +npx_fld_temp, /* db ae */ +npx_fld_temp, /* db af */ +npx_funimp, /* db b0 */ +npx_funimp, /* db b1 */ +npx_funimp, /* db b2 */ +npx_funimp, /* db b3 */ +npx_funimp, /* db b4 */ +npx_funimp, /* db b5 */ +npx_funimp, /* db b6 */ +npx_funimp, /* db b7 */ +npx_fstp_temp, /* db b8 */ +npx_fstp_temp, /* db b9 */ +npx_fstp_temp, /* db ba */ +npx_fstp_temp, /* db bb */ +npx_fstp_temp, /* db bc */ +npx_fstp_temp, /* db bd */ +npx_fstp_temp, /* db be */ +npx_fstp_temp, /* db bf */ +npx_funimp, /* db c0 */ +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, /* db d0 */ +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_fnop, /* db e0 */ +npx_fnop, +npx_fclex, /* db e2 */ +npx_finit, /* db e3 */ +npx_fnop, /* db e4 - used to be fsetpm */ +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, /* db f0 */ +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_fadd_long, /* dc 00 */ +npx_fadd_long, /* dc 01 */ +npx_fadd_long, /* dc 02 */ +npx_fadd_long, /* dc 03 */ +npx_fadd_long, /* dc 04 */ +npx_fadd_long, /* dc 05 */ +npx_fadd_long, /* dc 06 */ +npx_fadd_long, /* dc 07 */ +npx_fmul_long, /* dc 08 */ +npx_fmul_long, /* dc 09 */ +npx_fmul_long, /* dc 0a */ +npx_fmul_long, /* dc 0b */ +npx_fmul_long, /* dc 0c */ +npx_fmul_long, /* dc 0d */ +npx_fmul_long, /* dc 0e */ +npx_fmul_long, /* dc 0f */ +npx_fcom_long, /* dc 10 */ +npx_fcom_long, /* dc 11 */ +npx_fcom_long, /* dc 12 */ +npx_fcom_long, /* dc 13 */ +npx_fcom_long, /* dc 14 */ +npx_fcom_long, /* dc 15 */ +npx_fcom_long, /* dc 16 */ +npx_fcom_long, /* dc 17 */ +npx_fcomp_long, /* dc 18 */ +npx_fcomp_long, /* dc 19 */ +npx_fcomp_long, /* dc 1a */ +npx_fcomp_long, /* dc 1b */ +npx_fcomp_long, /* dc 1c */ +npx_fcomp_long, /* dc 1d */ +npx_fcomp_long, /* dc 1e */ +npx_fcomp_long, /* dc 1f */ +npx_fsub_long, /* dc 20 */ +npx_fsub_long, /* dc 21 */ +npx_fsub_long, /* dc 22 */ +npx_fsub_long, /* dc 23 */ +npx_fsub_long, /* dc 24 */ +npx_fsub_long, /* dc 25 */ +npx_fsub_long, /* dc 26 */ +npx_fsub_long, /* dc 27 */ +npx_fsubr_long, /* dc 28 */ +npx_fsubr_long, /* dc 29 */ +npx_fsubr_long, /* dc 2a */ +npx_fsubr_long, /* dc 2b */ +npx_fsubr_long, /* dc 2c */ +npx_fsubr_long, /* dc 2d */ +npx_fsubr_long, /* dc 2e */ +npx_fsubr_long, /* dc 2f */ +npx_fdiv_long, /* dc 30 */ +npx_fdiv_long, /* dc 31 */ +npx_fdiv_long, /* dc 32 */ +npx_fdiv_long, /* dc 33 */ +npx_fdiv_long, /* dc 34 */ +npx_fdiv_long, /* dc 35 */ +npx_fdiv_long, /* dc 36 */ +npx_fdiv_long, /* dc 37 */ +npx_fdivr_long, /* dc 38 */ +npx_fdivr_long, /* dc 39 */ +npx_fdivr_long, /* dc 3a */ +npx_fdivr_long, /* dc 3b */ +npx_fdivr_long, /* dc 3c */ +npx_fdivr_long, /* dc 3d */ +npx_fdivr_long, /* dc 3e */ +npx_fdivr_long, /* dc 3f */ +npx_fadd_long, /* dc 40 */ +npx_fadd_long, /* dc 41 */ +npx_fadd_long, /* dc 42 */ +npx_fadd_long, /* dc 43 */ +npx_fadd_long, /* dc 44 */ +npx_fadd_long, /* dc 45 */ +npx_fadd_long, /* dc 46 */ +npx_fadd_long, /* dc 47 */ +npx_fmul_long, /* dc 48 */ +npx_fmul_long, /* dc 49 */ +npx_fmul_long, /* dc 4a */ +npx_fmul_long, /* dc 4b */ +npx_fmul_long, /* dc 4c */ +npx_fmul_long, /* dc 4d */ +npx_fmul_long, /* dc 4e */ +npx_fmul_long, /* dc 4f */ +npx_fcom_long, /* dc 50 */ +npx_fcom_long, /* dc 51 */ +npx_fcom_long, /* dc 52 */ +npx_fcom_long, /* dc 53 */ +npx_fcom_long, /* dc 54 */ +npx_fcom_long, /* dc 55 */ +npx_fcom_long, /* dc 56 */ +npx_fcom_long, /* dc 57 */ +npx_fcomp_long, /* dc 58 */ +npx_fcomp_long, /* dc 59 */ +npx_fcomp_long, /* dc 5a */ +npx_fcomp_long, /* dc 5b */ +npx_fcomp_long, /* dc 5c */ +npx_fcomp_long, /* dc 5d */ +npx_fcomp_long, /* dc 5e */ +npx_fcomp_long, /* dc 5f */ +npx_fsub_long, /* dc 60 */ +npx_fsub_long, /* dc 61 */ +npx_fsub_long, /* dc 62 */ +npx_fsub_long, /* dc 63 */ +npx_fsub_long, /* dc 64 */ +npx_fsub_long, /* dc 65 */ +npx_fsub_long, /* dc 66 */ +npx_fsub_long, /* dc 67 */ +npx_fsubr_long, /* dc 68 */ +npx_fsubr_long, /* dc 69 */ +npx_fsubr_long, /* dc 6a */ +npx_fsubr_long, /* dc 6b */ +npx_fsubr_long, /* dc 6c */ +npx_fsubr_long, /* dc 6d */ +npx_fsubr_long, /* dc 6e */ +npx_fsubr_long, /* dc 6f */ +npx_fdiv_long, /* dc 70 */ +npx_fdiv_long, /* dc 71 */ +npx_fdiv_long, /* dc 72 */ +npx_fdiv_long, /* dc 73 */ +npx_fdiv_long, /* dc 74 */ +npx_fdiv_long, /* dc 75 */ +npx_fdiv_long, /* dc 76 */ +npx_fdiv_long, /* dc 77 */ +npx_fdivr_long, /* dc 78 */ +npx_fdivr_long, /* dc 79 */ +npx_fdivr_long, /* dc 7a */ +npx_fdivr_long, /* dc 7b */ +npx_fdivr_long, /* dc 7c */ +npx_fdivr_long, /* dc 7d */ +npx_fdivr_long, /* dc 7e */ +npx_fdivr_long, /* dc 7f */ +npx_fadd_long, /* dc 80 */ +npx_fadd_long, /* dc 81 */ +npx_fadd_long, /* dc 82 */ +npx_fadd_long, /* dc 83 */ +npx_fadd_long, /* dc 84 */ +npx_fadd_long, /* dc 85 */ +npx_fadd_long, /* dc 86 */ +npx_fadd_long, /* dc 87 */ +npx_fmul_long, /* dc 88 */ +npx_fmul_long, /* dc 89 */ +npx_fmul_long, /* dc 8a */ +npx_fmul_long, /* dc 8b */ +npx_fmul_long, /* dc 8c */ +npx_fmul_long, /* dc 8d */ +npx_fmul_long, /* dc 8e */ +npx_fmul_long, /* dc 8f */ +npx_fcom_long, /* dc 90 */ +npx_fcom_long, /* dc 91 */ +npx_fcom_long, /* dc 92 */ +npx_fcom_long, /* dc 93 */ +npx_fcom_long, /* dc 94 */ +npx_fcom_long, /* dc 95 */ +npx_fcom_long, /* dc 96 */ +npx_fcom_long, /* dc 97 */ +npx_fcomp_long, /* dc 98 */ +npx_fcomp_long, /* dc 99 */ +npx_fcomp_long, /* dc 9a */ +npx_fcomp_long, /* dc 9b */ +npx_fcomp_long, /* dc 9c */ +npx_fcomp_long, /* dc 9d */ +npx_fcomp_long, /* dc 9e */ +npx_fcomp_long, /* dc 9f */ +npx_fsub_long, /* dc a0 */ +npx_fsub_long, /* dc a1 */ +npx_fsub_long, /* dc a2 */ +npx_fsub_long, /* dc a3 */ +npx_fsub_long, /* dc a4 */ +npx_fsub_long, /* dc a5 */ +npx_fsub_long, /* dc a6 */ +npx_fsub_long, /* dc a7 */ +npx_fsubr_long, /* dc a8 */ +npx_fsubr_long, /* dc a9 */ +npx_fsubr_long, /* dc aa */ +npx_fsubr_long, /* dc ab */ +npx_fsubr_long, /* dc ac */ +npx_fsubr_long, /* dc ad */ +npx_fsubr_long, /* dc ae */ +npx_fsubr_long, /* dc af */ +npx_fdiv_long, /* dc b0 */ +npx_fdiv_long, /* dc b1 */ +npx_fdiv_long, /* dc b2 */ +npx_fdiv_long, /* dc b3 */ +npx_fdiv_long, /* dc b4 */ +npx_fdiv_long, /* dc b5 */ +npx_fdiv_long, /* dc b6 */ +npx_fdiv_long, /* dc b7 */ +npx_fdivr_long, /* dc b8 */ +npx_fdivr_long, /* dc b9 */ +npx_fdivr_long, /* dc 3a */ +npx_fdivr_long, /* dc bb */ +npx_fdivr_long, /* dc bc */ +npx_fdivr_long, /* dc bd */ +npx_fdivr_long, /* dc be */ +npx_fdivr_long, /* dc bf */ +npx_fadd_f0_f0, /* dc c0 */ +npx_fadd_f1_f0, +npx_fadd_f2_f0, +npx_fadd_f3_f0, +npx_fadd_f4_f0, +npx_fadd_f5_f0, +npx_fadd_f6_f0, +npx_fadd_f7_f0, +npx_fmul_f0_f0, /* dc c8 */ +npx_fmul_f1_f0, +npx_fmul_f2_f0, +npx_fmul_f3_f0, +npx_fmul_f4_f0, +npx_fmul_f5_f0, +npx_fmul_f6_f0, +npx_fmul_f7_f0, +npx_fcom_f0, /* dc d0 */ +npx_fcom_f1, +npx_fcom_f2, +npx_fcom_f3, +npx_fcom_f4, +npx_fcom_f5, +npx_fcom_f6, +npx_fcom_f7, +npx_fcomp_f0, +npx_fcomp_f1, +npx_fcomp_f2, +npx_fcomp_f3, +npx_fcomp_f4, +npx_fcomp_f5, +npx_fcomp_f6, +npx_fcomp_f7, +npx_fsubr_f0_f0, /* dc e0 */ +npx_fsubr_f1_f0, +npx_fsubr_f2_f0, +npx_fsubr_f3_f0, +npx_fsubr_f4_f0, +npx_fsubr_f5_f0, +npx_fsubr_f6_f0, +npx_fsubr_f7_f0, +npx_fsub_f0_f0, /* dc e8 */ +npx_fsub_f1_f0, +npx_fsub_f2_f0, +npx_fsub_f3_f0, +npx_fsub_f4_f0, +npx_fsub_f5_f0, +npx_fsub_f6_f0, +npx_fsub_f7_f0, +npx_fdivr_f0_f0, /* dc f0 */ +npx_fdivr_f1_f0, +npx_fdivr_f2_f0, +npx_fdivr_f3_f0, +npx_fdivr_f4_f0, +npx_fdivr_f5_f0, +npx_fdivr_f6_f0, +npx_fdivr_f7_f0, +npx_fdiv_f0_f0, /* dc f8 */ +npx_fdiv_f1_f0, +npx_fdiv_f2_f0, +npx_fdiv_f3_f0, +npx_fdiv_f4_f0, +npx_fdiv_f5_f0, +npx_fdiv_f6_f0, +npx_fdiv_f7_f0, +npx_fld_long, /* dd 00 */ +npx_fld_long, /* dd 01 */ +npx_fld_long, /* dd 02 */ +npx_fld_long, /* dd 03 */ +npx_fld_long, /* dd 04 */ +npx_fld_long, /* dd 05 */ +npx_fld_long, /* dd 06 */ +npx_fld_long, /* dd 07 */ +npx_funimp, /* dd 08 */ +npx_funimp, /* dd 09 */ +npx_funimp, /* dd 0a */ +npx_funimp, /* dd 0b */ +npx_funimp, /* dd 0c */ +npx_funimp, /* dd 0d */ +npx_funimp, /* dd 0e */ +npx_funimp, /* dd 0f */ +npx_fst_long, /* dd 10 */ +npx_fst_long, /* dd 11 */ +npx_fst_long, /* dd 12 */ +npx_fst_long, /* dd 13 */ +npx_fst_long, /* dd 14 */ +npx_fst_long, /* dd 15 */ +npx_fst_long, /* dd 16 */ +npx_fst_long, /* dd 17 */ +npx_fstp_long, /* dd 18 */ +npx_fstp_long, /* dd 19 */ +npx_fstp_long, /* dd 1a */ +npx_fstp_long, /* dd 1b */ +npx_fstp_long, /* dd 1c */ +npx_fstp_long, /* dd 1d */ +npx_fstp_long, /* dd 1e */ +npx_fstp_long, /* dd 1f */ +npx_frstor, /* dd 20 */ +npx_frstor, /* dd 21 */ +npx_frstor, /* dd 22 */ +npx_frstor, /* dd 23 */ +npx_frstor, /* dd 24 */ +npx_frstor, /* dd 25 */ +npx_frstor, /* dd 26 */ +npx_frstor, /* dd 27 */ +npx_funimp, /* dd 28 */ +npx_funimp, /* dd 29 */ +npx_funimp, /* dd 2a */ +npx_funimp, /* dd 2b */ +npx_funimp, /* dd 2c */ +npx_funimp, /* dd 2d */ +npx_funimp, /* dd 2e */ +npx_funimp, /* dd 2f */ +npx_fsave, /* dd 30 */ +npx_fsave, /* dd 31 */ +npx_fsave, /* dd 32 */ +npx_fsave, /* dd 33 */ +npx_fsave, /* dd 34 */ +npx_fsave, /* dd 35 */ +npx_fsave, /* dd 36 */ +npx_fsave, /* dd 37 */ +npx_fstsw, /* dd 38 */ +npx_fstsw, /* dd 39 */ +npx_fstsw, /* dd 3a */ +npx_fstsw, /* dd 3b */ +npx_fstsw, /* dd 3c */ +npx_fstsw, /* dd 3d */ +npx_fstsw, /* dd 3e */ +npx_fstsw, /* dd 3f */ +npx_fld_long, /* dd 40 */ +npx_fld_long, /* dd 41 */ +npx_fld_long, /* dd 42 */ +npx_fld_long, /* dd 43 */ +npx_fld_long, /* dd 44 */ +npx_fld_long, /* dd 45 */ +npx_fld_long, /* dd 46 */ +npx_fld_long, /* dd 47 */ +npx_funimp, /* dd 48 */ +npx_funimp, /* dd 49 */ +npx_funimp, /* dd 4a */ +npx_funimp, /* dd 4b */ +npx_funimp, /* dd 4c */ +npx_funimp, /* dd 4d */ +npx_funimp, /* dd 4e */ +npx_funimp, /* dd 4f */ +npx_fst_long, /* dd 50 */ +npx_fst_long, /* dd 51 */ +npx_fst_long, /* dd 52 */ +npx_fst_long, /* dd 53 */ +npx_fst_long, /* dd 54 */ +npx_fst_long, /* dd 55 */ +npx_fst_long, /* dd 56 */ +npx_fst_long, /* dd 57 */ +npx_fstp_long, /* dd 58 */ +npx_fstp_long, /* dd 59 */ +npx_fstp_long, /* dd 5a */ +npx_fstp_long, /* dd 5b */ +npx_fstp_long, /* dd 5c */ +npx_fstp_long, /* dd 5d */ +npx_fstp_long, /* dd 5e */ +npx_fstp_long, /* dd 5f */ +npx_frstor, /* dd 60 */ +npx_frstor, /* dd 61 */ +npx_frstor, /* dd 62 */ +npx_frstor, /* dd 63 */ +npx_frstor, /* dd 64 */ +npx_frstor, /* dd 65 */ +npx_frstor, /* dd 66 */ +npx_frstor, /* dd 67 */ +npx_funimp, /* dd 68 */ +npx_funimp, /* dd 69 */ +npx_funimp, /* dd 6a */ +npx_funimp, /* dd 6b */ +npx_funimp, /* dd 6c */ +npx_funimp, /* dd 6d */ +npx_funimp, /* dd 6e */ +npx_funimp, /* dd 6f */ +npx_fsave, /* dd 70 */ +npx_fsave, /* dd 71 */ +npx_fsave, /* dd 72 */ +npx_fsave, /* dd 73 */ +npx_fsave, /* dd 74 */ +npx_fsave, /* dd 75 */ +npx_fsave, /* dd 76 */ +npx_fsave, /* dd 77 */ +npx_fstsw, /* dd 78 */ +npx_fstsw, /* dd 79 */ +npx_fstsw, /* dd 7a */ +npx_fstsw, /* dd 7b */ +npx_fstsw, /* dd 7c */ +npx_fstsw, /* dd 7d */ +npx_fstsw, /* dd 7e */ +npx_fstsw, /* dd 7f */ +npx_fld_long, /* dd 80 */ +npx_fld_long, /* dd 81 */ +npx_fld_long, /* dd 82 */ +npx_fld_long, /* dd 83 */ +npx_fld_long, /* dd 84 */ +npx_fld_long, /* dd 85 */ +npx_fld_long, /* dd 86 */ +npx_fld_long, /* dd 87 */ +npx_funimp, /* dd 88 */ +npx_funimp, /* dd 89 */ +npx_funimp, /* dd 8a */ +npx_funimp, /* dd 8b */ +npx_funimp, /* dd 8c */ +npx_funimp, /* dd 8d */ +npx_funimp, /* dd 8e */ +npx_funimp, /* dd 8f */ +npx_fst_long, /* dd 90 */ +npx_fst_long, /* dd 91 */ +npx_fst_long, /* dd 92 */ +npx_fst_long, /* dd 93 */ +npx_fst_long, /* dd 94 */ +npx_fst_long, /* dd 95 */ +npx_fst_long, /* dd 96 */ +npx_fst_long, /* dd 97 */ +npx_fstp_long, /* dd 98 */ +npx_fstp_long, /* dd 99 */ +npx_fstp_long, /* dd 9a */ +npx_fstp_long, /* dd 9b */ +npx_fstp_long, /* dd 9c */ +npx_fstp_long, /* dd 9d */ +npx_fstp_long, /* dd 9e */ +npx_fstp_long, /* dd 9f */ +npx_frstor, /* dd a0 */ +npx_frstor, /* dd a1 */ +npx_frstor, /* dd a2 */ +npx_frstor, /* dd a3 */ +npx_frstor, /* dd a4 */ +npx_frstor, /* dd a5 */ +npx_frstor, /* dd a6 */ +npx_frstor, /* dd a7 */ +npx_funimp, /* dd a8 */ +npx_funimp, /* dd a9 */ +npx_funimp, /* dd aa */ +npx_funimp, /* dd ab */ +npx_funimp, /* dd ac */ +npx_funimp, /* dd ad */ +npx_funimp, /* dd ae */ +npx_funimp, /* dd af */ +npx_fsave, /* dd b0 */ +npx_fsave, /* dd b1 */ +npx_fsave, /* dd b2 */ +npx_fsave, /* dd b3 */ +npx_fsave, /* dd b4 */ +npx_fsave, /* dd b5 */ +npx_fsave, /* dd b6 */ +npx_fsave, /* dd b7 */ +npx_fstsw, /* dd b8 */ +npx_fstsw, /* dd b9 */ +npx_fstsw, /* dd ba */ +npx_fstsw, /* dd bb */ +npx_fstsw, /* dd bc */ +npx_fstsw, /* dd bd */ +npx_fstsw, /* dd be */ +npx_fstsw, /* dd bf */ +npx_ffree_f0, /* dd c0 */ +npx_ffree_f1, +npx_ffree_f2, +npx_ffree_f3, +npx_ffree_f4, +npx_ffree_f5, +npx_ffree_f6, +npx_ffree_f7, +npx_fxch_f0, /* dd c8 */ +npx_fxch_f1, +npx_fxch_f2, +npx_fxch_f3, +npx_fxch_f4, +npx_fxch_f5, +npx_fxch_f6, +npx_fxch_f7, +npx_fst_f0, /* dd d0 */ +npx_fst_f1, +npx_fst_f2, +npx_fst_f3, +npx_fst_f4, +npx_fst_f5, +npx_fst_f6, +npx_fst_f7, +npx_fstp_f0, /* dd d8 */ +npx_fstp_f1, +npx_fstp_f2, +npx_fstp_f3, +npx_fstp_f4, +npx_fstp_f5, +npx_fstp_f6, +npx_fstp_f7, +npx_fucom_f0, /* dd e0 */ +npx_fucom_f1, +npx_fucom_f2, +npx_fucom_f3, +npx_fucom_f4, +npx_fucom_f5, +npx_fucom_f6, +npx_fucom_f7, +npx_fucomp_f0, /* dd e8 */ +npx_fucomp_f1, +npx_fucomp_f2, +npx_fucomp_f3, +npx_fucomp_f4, +npx_fucomp_f5, +npx_fucomp_f6, +npx_fucomp_f7, +npx_funimp, /* dd f0 */ +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_fiadd_word, /* de 00 */ +npx_fiadd_word, /* de 01 */ +npx_fiadd_word, /* de 02 */ +npx_fiadd_word, /* de 03 */ +npx_fiadd_word, /* de 04 */ +npx_fiadd_word, /* de 05 */ +npx_fiadd_word, /* de 06 */ +npx_fiadd_word, /* de 07 */ +npx_fimul_word, /* de 08 */ +npx_fimul_word, /* de 09 */ +npx_fimul_word, /* de 0a */ +npx_fimul_word, /* de 0b */ +npx_fimul_word, /* de 0c */ +npx_fimul_word, /* de 0d */ +npx_fimul_word, /* de 0e */ +npx_fimul_word, /* de 0f */ +npx_ficom_word, /* de 10 */ +npx_ficom_word, /* de 11 */ +npx_ficom_word, /* de 12 */ +npx_ficom_word, /* de 13 */ +npx_ficom_word, /* de 14 */ +npx_ficom_word, /* de 15 */ +npx_ficom_word, /* de 16 */ +npx_ficom_word, /* de 17 */ +npx_ficomp_word, /* de 18 */ +npx_ficomp_word, /* de 19 */ +npx_ficomp_word, /* de 1a */ +npx_ficomp_word, /* de 1b */ +npx_ficomp_word, /* de 1c */ +npx_ficomp_word, /* de 1d */ +npx_ficomp_word, /* de 1e */ +npx_ficomp_word, /* de 1f */ +npx_fisub_word, /* de 20 */ +npx_fisub_word, /* de 21 */ +npx_fisub_word, /* de 22 */ +npx_fisub_word, /* de 23 */ +npx_fisub_word, /* de 24 */ +npx_fisub_word, /* de 25 */ +npx_fisub_word, /* de 26 */ +npx_fisub_word, /* de 27 */ +npx_fisubr_word, /* de 28 */ +npx_fisubr_word, /* de 29 */ +npx_fisubr_word, /* de 2a */ +npx_fisubr_word, /* de 2b */ +npx_fisubr_word, /* de 2c */ +npx_fisubr_word, /* de 2d */ +npx_fisubr_word, /* de 2e */ +npx_fisubr_word, /* de 2f */ +npx_fidiv_word, /* de 30 */ +npx_fidiv_word, /* de 31 */ +npx_fidiv_word, /* de 32 */ +npx_fidiv_word, /* de 33 */ +npx_fidiv_word, /* de 34 */ +npx_fidiv_word, /* de 35 */ +npx_fidiv_word, /* de 36 */ +npx_fidiv_word, /* de 37 */ +npx_fidivr_word, /* de 38 */ +npx_fidivr_word, /* de 39 */ +npx_fidivr_word, /* de 3a */ +npx_fidivr_word, /* de 3b */ +npx_fidivr_word, /* de 3c */ +npx_fidivr_word, /* de 3d */ +npx_fidivr_word, /* de 3e */ +npx_fidivr_word, /* de 3f */ +npx_fiadd_word, /* de 40 */ +npx_fiadd_word, /* de 41 */ +npx_fiadd_word, /* de 42 */ +npx_fiadd_word, /* de 43 */ +npx_fiadd_word, /* de 44 */ +npx_fiadd_word, /* de 45 */ +npx_fiadd_word, /* de 46 */ +npx_fiadd_word, /* de 47 */ +npx_fimul_word, /* de 48 */ +npx_fimul_word, /* de 49 */ +npx_fimul_word, /* de 4a */ +npx_fimul_word, /* de 4b */ +npx_fimul_word, /* de 4c */ +npx_fimul_word, /* de 4d */ +npx_fimul_word, /* de 4e */ +npx_fimul_word, /* de 4f */ +npx_ficom_word, /* de 50 */ +npx_ficom_word, /* de 51 */ +npx_ficom_word, /* de 52 */ +npx_ficom_word, /* de 53 */ +npx_ficom_word, /* de 54 */ +npx_ficom_word, /* de 55 */ +npx_ficom_word, /* de 56 */ +npx_ficom_word, /* de 57 */ +npx_ficomp_word, /* de 58 */ +npx_ficomp_word, /* de 59 */ +npx_ficomp_word, /* de 5a */ +npx_ficomp_word, /* de 5b */ +npx_ficomp_word, /* de 5c */ +npx_ficomp_word, /* de 5d */ +npx_ficomp_word, /* de 5e */ +npx_ficomp_word, /* de 5f */ +npx_fisub_word, /* de 60 */ +npx_fisub_word, /* de 61 */ +npx_fisub_word, /* de 62 */ +npx_fisub_word, /* de 63 */ +npx_fisub_word, /* de 64 */ +npx_fisub_word, /* de 65 */ +npx_fisub_word, /* de 66 */ +npx_fisub_word, /* de 67 */ +npx_fisubr_word, /* de 68 */ +npx_fisubr_word, /* de 69 */ +npx_fisubr_word, /* de 6a */ +npx_fisubr_word, /* de 6b */ +npx_fisubr_word, /* de 6c */ +npx_fisubr_word, /* de 6d */ +npx_fisubr_word, /* de 6e */ +npx_fisubr_word, /* de 6f */ +npx_fidiv_word, /* de 70 */ +npx_fidiv_word, /* de 71 */ +npx_fidiv_word, /* de 72 */ +npx_fidiv_word, /* de 73 */ +npx_fidiv_word, /* de 74 */ +npx_fidiv_word, /* de 75 */ +npx_fidiv_word, /* de 76 */ +npx_fidiv_word, /* de 77 */ +npx_fidivr_word, /* de 78 */ +npx_fidivr_word, /* de 79 */ +npx_fidivr_word, /* de 7a */ +npx_fidivr_word, /* de 7b */ +npx_fidivr_word, /* de 7c */ +npx_fidivr_word, /* de 7d */ +npx_fidivr_word, /* de 7e */ +npx_fidivr_word, /* de 7f */ +npx_fiadd_word, /* de 80 */ +npx_fiadd_word, /* de 81 */ +npx_fiadd_word, /* de 82 */ +npx_fiadd_word, /* de 83 */ +npx_fiadd_word, /* de 84 */ +npx_fiadd_word, /* de 85 */ +npx_fiadd_word, /* de 86 */ +npx_fiadd_word, /* de 87 */ +npx_fimul_word, /* de 88 */ +npx_fimul_word, /* de 89 */ +npx_fimul_word, /* de 8a */ +npx_fimul_word, /* de 8b */ +npx_fimul_word, /* de 8c */ +npx_fimul_word, /* de 8d */ +npx_fimul_word, /* de 8e */ +npx_fimul_word, /* de 8f */ +npx_ficom_word, /* de 90 */ +npx_ficom_word, /* de 91 */ +npx_ficom_word, /* de 92 */ +npx_ficom_word, /* de 93 */ +npx_ficom_word, /* de 94 */ +npx_ficom_word, /* de 95 */ +npx_ficom_word, /* de 96 */ +npx_ficom_word, /* de 97 */ +npx_ficomp_word, /* de 98 */ +npx_ficomp_word, /* de 99 */ +npx_ficomp_word, /* de 9a */ +npx_ficomp_word, /* de 9b */ +npx_ficomp_word, /* de 9c */ +npx_ficomp_word, /* de 9d */ +npx_ficomp_word, /* de 9e */ +npx_ficomp_word, /* de 9f */ +npx_fisub_word, /* de a0 */ +npx_fisub_word, /* de a1 */ +npx_fisub_word, /* de a2 */ +npx_fisub_word, /* de a3 */ +npx_fisub_word, /* de a4 */ +npx_fisub_word, /* de a5 */ +npx_fisub_word, /* de a6 */ +npx_fisub_word, /* de a7 */ +npx_fisubr_word, /* de a8 */ +npx_fisubr_word, /* de a9 */ +npx_fisubr_word, /* de aa */ +npx_fisubr_word, /* de ab */ +npx_fisubr_word, /* de ac */ +npx_fisubr_word, /* de ad */ +npx_fisubr_word, /* de ae */ +npx_fisubr_word, /* de af */ +npx_fidiv_word, /* de b0 */ +npx_fidiv_word, /* de b1 */ +npx_fidiv_word, /* de b2 */ +npx_fidiv_word, /* de b3 */ +npx_fidiv_word, /* de b4 */ +npx_fidiv_word, /* de b5 */ +npx_fidiv_word, /* de b6 */ +npx_fidiv_word, /* de b7 */ +npx_fidivr_word, /* de b8 */ +npx_fidivr_word, /* de b9 */ +npx_fidivr_word, /* de ba */ +npx_fidivr_word, /* de bb */ +npx_fidivr_word, /* de bc */ +npx_fidivr_word, /* de bd */ +npx_fidivr_word, /* de be */ +npx_fidivr_word, /* de bf */ +npx_faddp_f0, /* de c0 */ +npx_faddp_f1, +npx_faddp_f2, +npx_faddp_f3, +npx_faddp_f4, +npx_faddp_f5, +npx_faddp_f6, +npx_faddp_f7, +npx_fmulp_f0, /* de c8 */ +npx_fmulp_f1, +npx_fmulp_f2, +npx_fmulp_f3, +npx_fmulp_f4, +npx_fmulp_f5, +npx_fmulp_f6, +npx_fmulp_f7, +npx_fcomp_f0, /* de d0 */ +npx_fcomp_f1, +npx_fcomp_f2, +npx_fcomp_f3, +npx_fcomp_f4, +npx_fcomp_f5, +npx_fcomp_f6, +npx_fcomp_f7, +npx_funimp, +npx_fcompp, /* de d9 */ +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_fsubrp_f0, /* de e0 */ +npx_fsubrp_f1, +npx_fsubrp_f2, +npx_fsubrp_f3, +npx_fsubrp_f4, +npx_fsubrp_f5, +npx_fsubrp_f6, +npx_fsubrp_f7, +npx_fsubp_f0, /* de e8 */ +npx_fsubp_f1, +npx_fsubp_f2, +npx_fsubp_f3, +npx_fsubp_f4, +npx_fsubp_f5, +npx_fsubp_f6, +npx_fsubp_f7, +npx_fdivrp_f0, /* de f0 */ +npx_fdivrp_f1, +npx_fdivrp_f2, +npx_fdivrp_f3, +npx_fdivrp_f4, +npx_fdivrp_f5, +npx_fdivrp_f6, +npx_fdivrp_f7, +npx_fdivp_f0, /* de f8 */ +npx_fdivp_f1, +npx_fdivp_f2, +npx_fdivp_f3, +npx_fdivp_f4, +npx_fdivp_f5, +npx_fdivp_f6, +npx_fdivp_f7, +npx_fild_word, /* df 00 */ +npx_fild_word, /* df 01 */ +npx_fild_word, /* df 02 */ +npx_fild_word, /* df 03 */ +npx_fild_word, /* df 04 */ +npx_fild_word, /* df 05 */ +npx_fild_word, /* df 06 */ +npx_fild_word, /* df 07 */ +npx_funimp, /* df 08 */ +npx_funimp, /* df 09 */ +npx_funimp, /* df 0a */ +npx_funimp, /* df 0b */ +npx_funimp, /* df 0c */ +npx_funimp, /* df 0d */ +npx_funimp, /* df 0e */ +npx_funimp, /* df 0f */ +npx_fist_word, /* df 10 */ +npx_fist_word, /* df 11 */ +npx_fist_word, /* df 12 */ +npx_fist_word, /* df 13 */ +npx_fist_word, /* df 14 */ +npx_fist_word, /* df 15 */ +npx_fist_word, /* df 16 */ +npx_fist_word, /* df 17 */ +npx_fistp_word, /* df 18 */ +npx_fistp_word, /* df 19 */ +npx_fistp_word, /* df 1a */ +npx_fistp_word, /* df 1b */ +npx_fistp_word, /* df 1c */ +npx_fistp_word, /* df 1d */ +npx_fistp_word, /* df 1e */ +npx_fistp_word, /* df 1f */ +npx_fbld, /* df 20 */ +npx_fbld, /* df 21 */ +npx_fbld, /* df 22 */ +npx_fbld, /* df 23 */ +npx_fbld, /* df 24 */ +npx_fbld, /* df 25 */ +npx_fbld, /* df 26 */ +npx_fbld, /* df 27 */ +npx_fild_long, /* df 28 */ +npx_fild_long, /* df 29 */ +npx_fild_long, /* df 2a */ +npx_fild_long, /* df 2b */ +npx_fild_long, /* df 2c */ +npx_fild_long, /* df 2d */ +npx_fild_long, /* df 2e */ +npx_fild_long, /* df 2f */ +npx_fbstp, /* df 30 */ +npx_fbstp, /* df 31 */ +npx_fbstp, /* df 32 */ +npx_fbstp, /* df 33 */ +npx_fbstp, /* df 34 */ +npx_fbstp, /* df 35 */ +npx_fbstp, /* df 36 */ +npx_fbstp, /* df 37 */ +npx_fistp_long, /* df 38 */ +npx_fistp_long, /* df 39 */ +npx_fistp_long, /* df 3a */ +npx_fistp_long, /* df 3b */ +npx_fistp_long, /* df 3c */ +npx_fistp_long, /* df 3d */ +npx_fistp_long, /* df 3e */ +npx_fistp_long, /* df 3f */ +npx_fild_word, /* df 40 */ +npx_fild_word, /* df 41 */ +npx_fild_word, /* df 42 */ +npx_fild_word, /* df 43 */ +npx_fild_word, /* df 44 */ +npx_fild_word, /* df 45 */ +npx_fild_word, /* df 46 */ +npx_fild_word, /* df 47 */ +npx_funimp, /* df 48 */ +npx_funimp, /* df 49 */ +npx_funimp, /* df 4a */ +npx_funimp, /* df 4b */ +npx_funimp, /* df 4c */ +npx_funimp, /* df 4d */ +npx_funimp, /* df 4e */ +npx_funimp, /* df 4f */ +npx_fist_word, /* df 50 */ +npx_fist_word, /* df 51 */ +npx_fist_word, /* df 52 */ +npx_fist_word, /* df 53 */ +npx_fist_word, /* df 54 */ +npx_fist_word, /* df 55 */ +npx_fist_word, /* df 56 */ +npx_fist_word, /* df 57 */ +npx_fistp_word, /* df 58 */ +npx_fistp_word, /* df 59 */ +npx_fistp_word, /* df 5a */ +npx_fistp_word, /* df 5b */ +npx_fistp_word, /* df 5c */ +npx_fistp_word, /* df 5d */ +npx_fistp_word, /* df 5e */ +npx_fistp_word, /* df 5f */ +npx_fbld, /* df 60 */ +npx_fbld, /* df 61 */ +npx_fbld, /* df 62 */ +npx_fbld, /* df 63 */ +npx_fbld, /* df 64 */ +npx_fbld, /* df 65 */ +npx_fbld, /* df 66 */ +npx_fbld, /* df 67 */ +npx_fild_long, /* df 68 */ +npx_fild_long, /* df 69 */ +npx_fild_long, /* df 6a */ +npx_fild_long, /* df 6b */ +npx_fild_long, /* df 6c */ +npx_fild_long, /* df 6d */ +npx_fild_long, /* df 6e */ +npx_fild_long, /* df 6f */ +npx_fbstp, /* df 70 */ +npx_fbstp, /* df 71 */ +npx_fbstp, /* df 72 */ +npx_fbstp, /* df 73 */ +npx_fbstp, /* df 34 */ +npx_fbstp, /* df 75 */ +npx_fbstp, /* df 76 */ +npx_fbstp, /* df 77 */ +npx_fistp_long, /* df 78 */ +npx_fistp_long, /* df 79 */ +npx_fistp_long, /* df 7a */ +npx_fistp_long, /* df 7b */ +npx_fistp_long, /* df 7c */ +npx_fistp_long, /* df 7d */ +npx_fistp_long, /* df 7e */ +npx_fistp_long, /* df 7f */ +npx_fild_word, /* df 80 */ +npx_fild_word, /* df 81 */ +npx_fild_word, /* df 82 */ +npx_fild_word, /* df 83 */ +npx_fild_word, /* df 84 */ +npx_fild_word, /* df 85 */ +npx_fild_word, /* df 86 */ +npx_fild_word, /* df 87 */ +npx_funimp, /* df 88 */ +npx_funimp, /* df 89 */ +npx_funimp, /* df 8a */ +npx_funimp, /* df 8b */ +npx_funimp, /* df 8c */ +npx_funimp, /* df 8d */ +npx_funimp, /* df 8e */ +npx_funimp, /* df 8f */ +npx_fist_word, /* df 90 */ +npx_fist_word, /* df 91 */ +npx_fist_word, /* df 92 */ +npx_fist_word, /* df 93 */ +npx_fist_word, /* df 94 */ +npx_fist_word, /* df 95 */ +npx_fist_word, /* df 96 */ +npx_fist_word, /* df 97 */ +npx_fistp_word, /* df 98 */ +npx_fistp_word, /* df 99 */ +npx_fistp_word, /* df 9a */ +npx_fistp_word, /* df 9b */ +npx_fistp_word, /* df 9c */ +npx_fistp_word, /* df 9d */ +npx_fistp_word, /* df 9e */ +npx_fistp_word, /* df 9f */ +npx_fbld, /* df a0 */ +npx_fbld, /* df a1 */ +npx_fbld, /* df a2 */ +npx_fbld, /* df a3 */ +npx_fbld, /* df a4 */ +npx_fbld, /* df a5 */ +npx_fbld, /* df a6 */ +npx_fbld, /* df a7 */ +npx_fild_long, /* df a8 */ +npx_fild_long, /* df a9 */ +npx_fild_long, /* df aa */ +npx_fild_long, /* df ab */ +npx_fild_long, /* df ac */ +npx_fild_long, /* df ad */ +npx_fild_long, /* df ae */ +npx_fild_long, /* df af */ +npx_fbstp, /* df b0 */ +npx_fbstp, /* df b1 */ +npx_fbstp, /* df b2 */ +npx_fbstp, /* df b3 */ +npx_fbstp, /* df b4 */ +npx_fbstp, /* df b5 */ +npx_fbstp, /* df b6 */ +npx_fbstp, /* df b7 */ +npx_fistp_long, /* df b8 */ +npx_fistp_long, /* df b9 */ +npx_fistp_long, /* df ba */ +npx_fistp_long, /* df bb */ +npx_fistp_long, /* df bc */ +npx_fistp_long, /* df bd */ +npx_fistp_long, /* df be */ +npx_fistp_long, /* df bf */ +npx_ffreep_f0, /* df c0 */ +npx_ffreep_f1, +npx_ffreep_f2, +npx_ffreep_f3, +npx_ffreep_f4, +npx_ffreep_f5, +npx_ffreep_f6, +npx_ffreep_f7, +npx_fxch_f0, /* df c8 */ +npx_fxch_f1, +npx_fxch_f2, +npx_fxch_f3, +npx_fxch_f4, +npx_fxch_f5, +npx_fxch_f6, +npx_fxch_f7, +npx_fstp_f0, /* df d0 */ +npx_fstp_f1, +npx_fstp_f2, +npx_fstp_f3, +npx_fstp_f4, +npx_fstp_f5, +npx_fstp_f6, +npx_fstp_f7, +npx_fstp_f0, /* df d8 */ +npx_fstp_f1, +npx_fstp_f2, +npx_fstp_f3, +npx_fstp_f4, +npx_fstp_f5, +npx_fstp_f6, +npx_fstp_f7, +npx_fstswax, /* df e0 */ +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, /* df f0 */ +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp, +npx_funimp +}; + +VOID ZFRSRVD(npx_instr) +IU32 npx_instr; +{ + if (!NPX_PROT_MODE) { + NpxInstr = npx_instr; + } + if (DoNpxPrologue()) + (*inst_table[npx_instr])(); +} + +LOCAL BOOL DoNpxPrologue() { + if (GET_EM() || GET_TS()) { + INTx(0x7); + return(FALSE); + } else { + return(TRUE); + } +} + +GLOBAL IBOOL NpxIntrNeeded = FALSE; +LOCAL IU32 NpxExceptionEIP = 0; + +VOID DoNpxException() { + + NpxException = FALSE; + NpxExceptionEIP = NpxFIP; + NpxIntrNeeded = TRUE; /* interrupt delayed until next NPX inst */ +} + +/* called on NPX instr that follows faulting instr */ +void TakeNpxExceptionInt() +{ + IU32 hook_address; + IU16 cpu_hw_interrupt_number; + + NpxIntrNeeded = FALSE; + NpxFIP = NpxExceptionEIP; + +#ifdef SPC486 + if (GET_NE() == 0) + { +#ifndef SFELLOW + ica_hw_interrupt (ICA_SLAVE, CPU_AT_NPX_INT, 1); +#else /* SFELLOW */ + c_cpu_interrupt(CPU_NPX_INT, 0); +#endif /* SFELLOW */ + } + else + { + Int16(); + } +#else /* SPC486 */ + ica_hw_interrupt (ICA_SLAVE, CPU_AT_NPX_INT, 1); +#endif /* SPC486 */ + +#ifndef SFELLOW + /* and immediately dispatch to interrupt */ + if (GET_IF()) + { + cpu_hw_interrupt_number = ica_intack(&hook_address); + EXT = EXTERNAL; + do_intrupt(cpu_hw_interrupt_number, FALSE, FALSE, (IU16)0); + CCPU_save_EIP = GET_EIP(); /* to reflect IP change */ + } +#endif /*SFELLOW*/ +} diff --git a/private/mvdm/softpc.new/base/ccpu386/zfrsrvd.h b/private/mvdm/softpc.new/base/ccpu386/zfrsrvd.h new file mode 100644 index 000000000..2de84495d --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/zfrsrvd.h @@ -0,0 +1,15 @@ +/* + zfrsrvd.h + + Define Reserved Floating Point CPU functions. + */ + +/* + static char SccsID[]="@(#)zfrsrvd.h 1.4 02/09/94"; + */ + +IMPORT VOID ZFRSRVD + +IPT1( + IU32, npxopcode + ); diff --git a/private/mvdm/softpc.new/base/comms/com.c b/private/mvdm/softpc.new/base/comms/com.c new file mode 100644 index 000000000..6bed7be4b --- /dev/null +++ b/private/mvdm/softpc.new/base/comms/com.c @@ -0,0 +1,3254 @@ +#include "insignia.h" +#include "host_def.h" +/* + * SoftPC Version 3.0 + * + * Title : com.c + * + * Description : Asynchronous Adaptor I/O functions. + * + * Notes : Refer to the PC-XT Tech Ref Manual Section 1-185 + * For a detailed description of the Asynchronous Adaptor Card. + * + */ + +#ifdef SCCSID +static char SccsID[]="@(#)com.c 1.45 04/26/94 Copyright Insignia Solutions Ltd."; +#endif + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_COMMS.seg" +#endif + +/* + * O/S include files. + */ +#include +#include +#if defined(NTVDM) && defined(MONITOR) +#include +#endif +#include TypesH +#include StringH + +/* + * SoftPC include files + */ +#include "xt.h" +#include CpuH +#include "sas.h" +#include "bios.h" +#include "ios.h" +#include "rs232.h" +#include "trace.h" +#include "error.h" +#include "config.h" +#include "host_com.h" +#include "ica.h" +#include "debug.h" +#include "timer.h" +#include "quick_ev.h" +#include "idetect.h" +#include "ckmalloc.h" +#ifdef GISP_CPU +#include "hg_cpu.h" /* GISP CPU interface */ +#endif /* GISP_CPU */ + +LOCAL UTINY selectBits[4] = { 0x1f, 0x3f, 0x7f, 0xff } ; +/* + * ===================================================================== + * The rs232 adaptor state + * ===================================================================== + */ + +/* + * batch_size, current_count + * The IRET_HOOKS parameters batch_size and curr_count are used to prevent + * the number of interrupts that are emulated in one batch getting too + * large. When we reach the batch size we'll unhook the interrupt, and + * wait a while. + * batch_running, qev_running + * These variables are used to prevent multiple quick events or batches + * running at once on a single adapter. + */ +static struct ADAPTER_STATE +{ + BUFFER_REG tx_buffer; + BUFFER_REG rx_buffer; + DIVISOR_LATCH divisor_latch; + INT_ENABLE_REG int_enable_reg; + INT_ID_REG int_id_reg; + LINE_CONTROL_REG line_control_reg; + MODEM_CONTROL_REG modem_control_reg; + LINE_STATUS_REG line_status_reg; + MODEM_STATUS_REG modem_status_reg; +#if defined(NTVDM) && defined(FIFO_ON) + FIFO_CONTROL_REG fifo_control_reg; + FIFORXDATA rx_fifo[FIFO_BUFFER_SIZE]; + half_word rx_fifo_write_counter; + half_word rx_fifo_read_counter; + half_word fifo_trigger_counter; + int fifo_timeout_interrupt_state; +#endif + half_word scratch; /* scratch register */ + + int break_state; /* either OFF or ON */ + int loopback_state; /* either OFF or ON */ + int dtr_state; /* either OFF or ON */ + int rts_state; /* either OFF or ON */ + int out1_state; /* either OFF or ON */ + int out2_state; /* either OFF or ON */ + + int receiver_line_status_interrupt_state; + int data_available_interrupt_state; + int tx_holding_register_empty_interrupt_state; + int modem_status_interrupt_state; + int hw_interrupt_priority; + int com_baud_ind; + int had_first_read; +#ifdef IRET_HOOKS + IUM32 batch_size; + IUM32 current_count; + IBOOL batch_running; + IBOOL qev_running; +#endif /* IRET_HOOKS */ +#ifdef NTVDM + MODEM_STATUS_REG last_modem_status_value; + int modem_status_changed; +#endif +} adapter_state[NUM_SERIAL_PORTS]; + + +#ifdef NTVDM +#define MODEM_STATE_CHANGE() asp->modem_status_changed = TRUE; +#else +#define MODEM_STATE_CHANGE() +#endif + + +#ifdef IRET_HOOKS +/* + * Also have an overall quick events running flag that is set, if either + * adapter has an event running. + */ + +IBOOL qev_running = FALSE; +#endif /* IRET_HOOKS */ + +/* + * For synchronisation of adapter input. + * Note this code is essential for the VMS equivalent of the async + * event manager. Removing it causes characters to be lost on reception. + */ +static int com_critical[NUM_SERIAL_PORTS]; +#define is_com_critical(adapter) (com_critical[adapter] != 0) +#define com_critical_start(adapter) (++com_critical[adapter]) +#define com_critical_end(adapter) (--com_critical[adapter]) +#define com_critical_reset(adapter) (com_critical[adapter] = 0) + + +/* + * Used to determine whether a flush input is needed for a LCR change + */ +static LINE_CONTROL_REG LCRFlushMask; + +/* + * Please note that the following arrays have been made global in order + * that they can be accessed from some SUN_VA code. Please do not make + * them static. + */ + +#if defined(NTVDM) && defined(FIFO_ON) +static half_word level_to_counter[4] = { 1, 4, 8, 14}; +#endif + +/* + * The delay needed in microseconds between receiving 2 characters + * note this time is about 10% less than the time for actual reception. + * + * These delays have been heavily fudged and are now based on the idea that + * most of the comms interrupt handlers can handle 9600 baud. So as a + * result the delays between 2 characters are now always set for 9600 baud. + * Also note the delays of the faster baud rates have been decreased to + * 1/2 of original delays, again this is to try to empty the host buffers + * quickly enough to avoid buffer overflows. + * NB these figures are heuristic. + * + * Finally it may be possible that the transmit delays will have to + * be similarly fudged. + */ +unsigned long RX_delay[] = +{ + 34, /* 115200 baud */ + 67, /* 57600 baud */ + 103, /* 38400 baud */ + 900, /* 19200 baud */ + 900, /* 9600 baud */ + 900, /* 7200 baud */ + 900, /* 4800 baud */ + 900, /* 3600 baud */ + 900, /* 2400 baud */ + 900, /* 2000 baud */ + 900, /* 1800 baud */ + 900, /* 1200 baud */ + 900, /* 600 baud */ + 900, /* 300 baud */ + 900, /* 150 baud */ + 900, /* 134 baud */ + 900, /* 110 baud */ + 900, /* 75 baud */ + 900 /* 50 baud */ +}; + +/* + * the delay needed in microseconds between transmitting 2 characters + * note this time is about 10% more than the time for actual transmission. + */ +unsigned long TX_delay[] = +{ + 83, /* 115200 baud */ + 165, /* 57600 baud */ + 253, /* 38400 baud */ + 495, /* 19200 baud */ + 1100, /* 9600 baud */ + 1375, /* 7200 baud */ + 2063, /* 4800 baud */ + 2750, /* 3600 baud */ + 4125, /* 2400 baud */ + 5042, /* 2000 baud */ + 5500, /* 1800 baud */ + 8250, /* 1200 baud */ + 16500, /* 600 baud */ + 33000, /* 300 baud */ + 66000, /* 150 baud */ + 73920, /* 134 baud */ + 89980, /* 110 baud */ + 132000, /* 75 baud */ + 198000 /* 50 baud */ +}; + +#ifndef PROD +FILE *com_trace_fd = NULL; +int com_dbg_pollcount = 0; +#endif /* !PROD */ +/* + * ===================================================================== + * Other variables + * ===================================================================== + */ + +#if !defined(PROD) || defined(SHORT_TRACE) +static char buf[80]; /* Buffer for diagnostic prints */ +#endif /* !PROD || SHORT_TRACE */ + +#ifdef PS_FLUSHING +LOCAL IBOOL psFlushEnabled[NUM_SERIAL_PORTS]; /* TRUE if PostScript flushing + is enabled */ +#endif /* PS_FLUSHING */ + +/* Control TX pacing */ +IBOOL tx_pacing_enabled = FALSE; + +/* + * ===================================================================== + * Static forward declarations + * ===================================================================== + */ +static void raise_rls_interrupt IPT1(struct ADAPTER_STATE *, asp); +static void raise_rda_interrupt IPT1(struct ADAPTER_STATE *, asp); +static void raise_ms_interrupt IPT1(struct ADAPTER_STATE *,asp); +static void raise_thre_interrupt IPT1(struct ADAPTER_STATE *, asp); +static void generate_iir IPT1(struct ADAPTER_STATE *, asp); +static void raise_interrupt IPT1(struct ADAPTER_STATE *, asp); +static void clear_interrupt IPT1(struct ADAPTER_STATE *, asp); +static void com_flush_input IPT1(int, adapter); +static void com_send_not_finished IPT1(int, adapter); +#ifndef NTVDM +static void do_wait_on_send IPT1(long, adapter); +#endif +void com_inb IPT2(io_addr, port, half_word *, value); +void com_outb IPT2(io_addr, port, half_word, value); +void com_recv_char IPT1(int, adapter); +GLOBAL void recv_char IPT1(long, adapter); +void com_modem_change IPT1(int, adapter); +static void modem_change IPT1(int, adapter); +static void set_recv_char_status IPT1(struct ADAPTER_STATE *, asp); +static void set_xmit_char_status IPT1(struct ADAPTER_STATE *, asp); +static void set_break IPT1(int, adapter); +static void set_baud_rate IPT1(int, adapter); +static void set_line_control IPT2(int, adapter, int, value); +static void set_dtr IPT1(int, adapter); +static void set_rts IPT1(int, adapter); +static void set_out1 IPT1(int, adapter); +static void set_out2 IPT1(int, adapter); +static void set_loopback IPT1(int, adapter); +static void super_trace IPT1(char *, string); +void com1_flush_printer IPT0(); +void com2_flush_printer IPT0(); +static void com_reset IPT1(int, adapter); +GLOBAL VOID com_init IPT1(int, adapter); +void com_post IPT1(int, adapter); +void com_close IPT1(int, adapter); +LOCAL void next_batch IPT1(long, l_adapter); +#ifdef NTVDM +static void lsr_change(struct ADAPTER_STATE *asp, unsigned int error); +#ifdef FIFO_ON +static void recv_char_from_fifo(struct ADAPTER_STATE *asp); +#endif +#endif + +/* + * ===================================================================== + * Subsidiary functions - for interrupt emulation + * ===================================================================== + */ + +static void raise_rls_interrupt IFN1(struct ADAPTER_STATE *, asp) +{ + /* + * Follow somewhat dubious advice on Page 1-188 of XT Tech Ref + * regarding the adapter card sending interrupts to the system. + * Apparently confirmed by the logic diagram. + */ + if ( asp->modem_control_reg.bits.OUT2 == 0 ) + return; + + /* + * Check if receiver line status interrupt is enabled + */ + if ( asp->int_enable_reg.bits.rx_line == 0 ) + return; + + /* + * Raise interrupt + */ + raise_interrupt(asp); + asp->receiver_line_status_interrupt_state = ON; +} + +static void raise_rda_interrupt IFN1(struct ADAPTER_STATE *, asp) +{ + if (( asp->modem_control_reg.bits.OUT2 == 0 ) && + ( asp->loopback_state == OFF )) + return; + + /* + * Check if data available interrupt is enabled + */ + if ( asp->int_enable_reg.bits.data_available == 0 ) + return; + + /* + * Raise interrupt + */ + raise_interrupt(asp); + asp->data_available_interrupt_state = ON; +} + +static void raise_ms_interrupt IFN1(struct ADAPTER_STATE *, asp) +{ + if ( asp->modem_control_reg.bits.OUT2 == 0 ) + return; + + /* + * Check if modem status interrupt is enabled + */ + if ( asp->int_enable_reg.bits.modem_status == 0 ) + return; + + /* + * Raise interrupt + */ + raise_interrupt(asp); + asp->modem_status_interrupt_state = ON; +} + +static void raise_thre_interrupt IFN1(struct ADAPTER_STATE *, asp) +{ + if ( asp->modem_control_reg.bits.OUT2 == 0 ) + return; + + /* + * Check if tx holding register empty interrupt is enabled + */ + if ( asp->int_enable_reg.bits.tx_holding == 0 ) + return; + + /* + * Raise interrupt + */ + raise_interrupt(asp); + asp->tx_holding_register_empty_interrupt_state = ON; +} + +static void generate_iir IFN1(struct ADAPTER_STATE *, asp) +{ + /* + * Set up interrupt identification register with highest priority + * pending interrupt. + */ + + if ( asp->receiver_line_status_interrupt_state == ON ) + { + asp->int_id_reg.bits.interrupt_ID = RLS_INT; + asp->int_id_reg.bits.no_int_pending = 0; + } + else if ( asp->data_available_interrupt_state == ON ) + { + asp->int_id_reg.bits.interrupt_ID = RDA_INT; + asp->int_id_reg.bits.no_int_pending = 0; + } +#if defined(NTVDM) && defined(FIFO_ON) + else if (asp->fifo_timeout_interrupt_state == ON) + { + asp->int_id_reg.bits.interrupt_ID = FIFO_INT; + asp->int_id_reg.bits.no_int_pending = 0; + } +#endif + else if ( asp->tx_holding_register_empty_interrupt_state == ON ) + { + asp->int_id_reg.bits.interrupt_ID = THRE_INT; + asp->int_id_reg.bits.no_int_pending = 0; + } + else if ( asp->modem_status_interrupt_state == ON ) + { + asp->int_id_reg.bits.interrupt_ID = MS_INT; + asp->int_id_reg.bits.no_int_pending = 0; + } + else + { + /* clear interrupt */ + asp->int_id_reg.bits.no_int_pending = 1; + asp->int_id_reg.bits.interrupt_ID = 0; + } +} + +static void raise_interrupt IFN1(struct ADAPTER_STATE *, asp) +{ + /* + * Make sure that some thing else has not raised an interrupt + * already. + */ + if ( ( asp->receiver_line_status_interrupt_state == OFF ) + && ( asp->data_available_interrupt_state == OFF ) + && ( asp->tx_holding_register_empty_interrupt_state == OFF ) + && ( asp->modem_status_interrupt_state == OFF ) +#if defined(NTVDM) && defined(FIFO_ON) + && (asp->fifo_timeout_interrupt_state == OFF ) +#endif + ) + { +#ifndef DELAYED_INTS + ica_hw_interrupt(0, asp->hw_interrupt_priority, 1); +#else + ica_hw_interrupt_delay(0, asp->hw_interrupt_priority, 1, + HOST_COM_INT_DELAY); +#endif + } +} + +static void clear_interrupt IFN1(struct ADAPTER_STATE *, asp) +{ + /* + * Make sure that some thing else has not raised an interrupt + * already. If so then we cant drop the line. + */ + if ( ( asp->receiver_line_status_interrupt_state == OFF ) + && ( asp->data_available_interrupt_state == OFF ) + && ( asp->tx_holding_register_empty_interrupt_state == OFF ) + && ( asp->modem_status_interrupt_state == OFF ) +#if defined(NTVDM) && defined(FIFO_ON) + && ( asp->fifo_timeout_interrupt_state == OFF ) +#endif + ) + { + ica_clear_int(0, asp->hw_interrupt_priority); + } +} +#if defined(NTVDM) && defined(FIFO_ON) + +static void raise_fifo_timeout_interrupt(struct ADAPTER_STATE *asp) +{ + if (( asp->modem_control_reg.bits.OUT2 == 0 ) && + ( asp->loopback_state == OFF )) + return; + + /* + * Check if data available interrupt is enabled + */ + if ( asp->int_enable_reg.bits.data_available == 0 ) + return; + + /* + * Raise interrupt + */ + raise_interrupt(asp); + asp->fifo_timeout_interrupt_state = ON; +} +#endif + + + +/* + * ===================================================================== + * The Adaptor functions + * ===================================================================== + */ + +static void com_flush_input IFN1(int, adapter) +{ + struct ADAPTER_STATE *asp = &adapter_state[adapter]; + int finished, error_mask; + long input_ready = 0; + + sure_note_trace1(RS232_VERBOSE, "flushing the input for COM%c", + adapter+'1'); + finished=FALSE; + while(!finished) + { + host_com_ioctl(adapter, HOST_COM_INPUT_READY, + (long)&input_ready); + if (input_ready) + { + host_com_read(adapter, (UTINY *)&asp->rx_buffer, + &error_mask); + } + else + { + finished=TRUE; + } + } + set_xmit_char_status(asp); +} + +static void com_send_not_finished IFN1(int, adapter) +{ + struct ADAPTER_STATE *asp = &adapter_state[adapter]; + + asp->line_status_reg.bits.tx_holding_empty=0; + asp->line_status_reg.bits.tx_shift_empty=0; +} + + +#ifndef NTVDM +static void do_wait_on_send IFN1(long, adapter) +{ + extern void host_com_send_delay_done IPT2(long, p1, int, p2); + struct ADAPTER_STATE *asp; + + asp= &adapter_state[adapter]; + set_xmit_char_status(asp); + host_com_send_delay_done(adapter, TX_delay[asp->com_baud_ind]); +} +#endif + + +void com_inb IFN2(io_addr, port, half_word *, value) +{ + int adapter = adapter_for_port(port); + struct ADAPTER_STATE *asp = &adapter_state[adapter]; + long input_ready = 0; + boolean adapter_was_critical; + +#ifdef NTVDM + if((port & 0x7) != RS232_MSR) host_com_lock(adapter); +#endif /* NTVDM */ + + switch(port & 0x7) + { + case RS232_TX_RX: + IDLE_comlpt(); + if (asp->line_control_reg.bits.DLAB == 0) + { + /* + * Read of rx buffer + */ +#ifndef NTVDM + if (!(asp->had_first_read)) + { + com_flush_input(adapter); + asp->had_first_read=TRUE; + } +#else /* NTVDM is defined */ + //Flushing on first read removes characters from + //the communications system that are needed !!!! + //This assumes that the first read from the comms + //system will return one character only. This is + //a false assumption under NT windows. +#endif /* !NTVDM */ + *value = asp->rx_buffer; + + adapter_was_critical = + (asp->line_status_reg.bits.data_ready == 1); + + asp->line_status_reg.bits.data_ready = 0; + asp->data_available_interrupt_state = OFF; + clear_interrupt(asp); + + if ( asp->loopback_state == OFF ) + { + /* + * Adapter out of critical region, + * check for further input. For IRET_HOOKS + * we don't need to do this, as receipt + * of the next character is kicked off + * by the IRET, however we do something + * else instead. If this is the first + * character of a batch, we kick off a quick + * event for what will eventually be the + * start of the next batch (assuming there + * isn't already a quick event running). + * In any case we increment the count of + * characters in this batch. + */ + if (adapter_was_critical) + { +#ifdef NTVDM +#ifdef FIFO_ON + if (asp->fifo_control_reg.bits.enabled) { + recv_char_from_fifo(asp); + *value = asp->rx_buffer; + host_com_fifo_char_read(adapter); + if (asp->rx_fifo_write_counter) + /* say this if we have more char in + the buffer to be deliveried + */ + asp->line_status_reg.bits.data_ready = 1; + else + host_com_char_read(adapter, + asp->int_enable_reg.bits.data_available); + } + else + host_com_char_read(adapter, + asp->int_enable_reg.bits.data_available + ); +#else /* !FIFO_ON */ + host_com_char_read(adapter, + asp->int_enable_reg.bits.data_available + ); +#endif /* !FIFO_ON */ +#endif /* NTVDM */ + +#ifndef NTVDM +#ifdef IRET_HOOKS + if (!asp->batch_running) { + asp->batch_running = TRUE; + asp->current_count = 1; + asp->qev_running = TRUE; + if (!qev_running) { + qev_running = TRUE; +#ifdef GISP_CPU + hg_add_comms_cb(next_batch, MIN_COMMS_RX_QEV); +#else + add_q_event_t(next_batch, MIN_COMMS_RX_QEV, adapter); +#endif + } + } else { /* batch running */ + asp->current_count++; + } +#else /* IRET_HOOKS */ + host_com_ioctl(adapter, HOST_COM_INPUT_READY, + (long)&input_ready); + if (input_ready) +#ifdef DELAYED_INTS + recv_char((long)adapter); +#else + add_q_event_t(recv_char, + RX_delay[asp->com_baud_ind], + adapter); +#endif /* DELAYED_INTS */ + else + com_critical_reset(adapter); +#endif /* IRET_HOOKS */ +#endif /* !NTVDM */ + } + + + } + else + { + set_xmit_char_status(asp); + } +#ifdef IRET_HOOKS + { + LOCAL IBOOL com_hook_again IPT1(IUM32, adapter); + GLOBAL IBOOL is_hooked IPT1(IUM8, line_number); + if(!is_hooked(asp->hw_interrupt_priority)) + com_hook_again(adapter); + } +#endif /* IRET_HOOKS */ + } + else + *value = asp->divisor_latch.byte.LSByte; +#ifdef SHORT_TRACE + if ( io_verbose & RS232_VERBOSE ) + { + sprintf(buf, "%cRX -> %x (%c)\n", + id_for_adapter(adapter), *value, + isprint(toascii(*value))?toascii(*value):'?'); + super_trace(buf); + } +#endif +#ifndef PROD + if (com_trace_fd) + { + if (com_dbg_pollcount) + { + fprintf(com_trace_fd,"\n"); + com_dbg_pollcount = 0; + } + fprintf(com_trace_fd,"RX %x (%c)\n",*value, + isprint(toascii(*value))?toascii(*value):'?'); + } +#endif + break; + + case RS232_IER: + if (asp->line_control_reg.bits.DLAB == 0) + *value = asp->int_enable_reg.all; + else + *value = asp->divisor_latch.byte.MSByte; +#ifdef SHORT_TRACE + if ( io_verbose & RS232_VERBOSE ) + { + sprintf(buf,"%cIER -> %x\n", id_for_adapter(adapter), + *value); + super_trace(buf); + } +#endif +#ifndef PROD + if (com_trace_fd) + { + if (com_dbg_pollcount) + { + fprintf(com_trace_fd,"\n"); + com_dbg_pollcount = 0; + } + fprintf(com_trace_fd,"IER read %x \n",*value); + } +#endif + break; + + case RS232_IIR: + generate_iir(asp); + *value = asp->int_id_reg.all; + + if ( asp->int_id_reg.bits.interrupt_ID == THRE_INT ) + { + asp->tx_holding_register_empty_interrupt_state = OFF; + clear_interrupt(asp); + } + +#ifdef SHORT_TRACE + if ( io_verbose & RS232_VERBOSE ) + { + sprintf(buf,"%cIIR -> %x\n", id_for_adapter(adapter), + *value); + super_trace(buf); + } +#endif +#ifndef PROD + if (com_trace_fd) + { + if (com_dbg_pollcount) + { + fprintf(com_trace_fd,"\n"); + com_dbg_pollcount = 0; + } + fprintf(com_trace_fd,"IIR read %x \n",*value); + } +#endif + break; + + case RS232_LCR: +#ifdef NTVDM + /* Before returning the information on the current configuation + of the serial link make sure the System comms port is open */ + + { + extern int host_com_open(int adapter); + + host_com_open(adapter); + } +#endif + + + *value = asp->line_control_reg.all; +#ifdef SHORT_TRACE + if ( io_verbose & RS232_VERBOSE ) + { + sprintf(buf,"%cLCR -> %x\n", id_for_adapter(adapter), + *value); + super_trace(buf); + } +#endif +#ifndef PROD + if (com_trace_fd) + { + if (com_dbg_pollcount) + { + fprintf(com_trace_fd,"\n"); + com_dbg_pollcount = 0; + } + fprintf(com_trace_fd,"LCR read %x \n",*value); + } +#endif + break; + + case RS232_MCR: + *value = asp->modem_control_reg.all; +#ifdef SHORT_TRACE + if ( io_verbose & RS232_VERBOSE ) + { + sprintf(buf,"%cMCR -> %x\n", id_for_adapter(adapter), + *value); + super_trace(buf); + } +#endif +#ifndef PROD + if (com_trace_fd) + { + if (com_dbg_pollcount) + { + fprintf(com_trace_fd,"\n"); + com_dbg_pollcount = 0; + } + fprintf(com_trace_fd,"MCR read %x \n",*value); + } +#endif + break; + + case RS232_LSR: + *value = asp->line_status_reg.all; + + asp->line_status_reg.bits.overrun_error = 0; + asp->line_status_reg.bits.parity_error = 0; + asp->line_status_reg.bits.framing_error = 0; + asp->line_status_reg.bits.break_interrupt = 0; + asp->receiver_line_status_interrupt_state = OFF; + clear_interrupt(asp); +#if defined(NTVDM) && defined(FIFO_ON) + asp->fifo_timeout_interrupt_state = OFF; +#endif + +#ifdef SHORT_TRACE + if ((!asp->line_status_reg.bits.tx_holding_empty) || + (!asp->line_status_reg.bits.tx_shift_empty)) + { + IDLE_comlpt(); + } + if ( io_verbose & RS232_VERBOSE ) + { + sprintf(buf,"%cLSR -> %x\n", id_for_adapter(adapter), + *value); + super_trace(buf); + } +#endif +#ifndef PROD + if (com_trace_fd) + { + if ((*value & 0x9f) != 0x0) + { + if (com_dbg_pollcount) + { + fprintf(com_trace_fd,"\n"); + com_dbg_pollcount = 0; + } + fprintf(com_trace_fd,"LSR read %x \n",*value); + } + else + { + com_dbg_pollcount++; + if (*value == 0) + fprintf(com_trace_fd,"0"); + else + fprintf(com_trace_fd,"."); + if (com_dbg_pollcount > 19) + { + fprintf(com_trace_fd,"\n"); + com_dbg_pollcount = 0; + } + } + } +#endif + break; + + case RS232_MSR: + +#ifndef NTVDM + if (asp->loopback_state == OFF) + { + com_modem_change(adapter); + } + else + { + asp->modem_status_reg.bits.CTS = asp->modem_control_reg.bits.RTS; + asp->modem_status_reg.bits.DSR = asp->modem_control_reg.bits.DTR; + asp->modem_status_reg.bits.RI = asp->modem_control_reg.bits.OUT1; + asp->modem_status_reg.bits.RLSD = asp->modem_control_reg.bits.OUT2; + } + *value = asp->modem_status_reg.all; + asp->modem_status_reg.bits.delta_CTS = 0; + asp->modem_status_reg.bits.delta_DSR = 0; + asp->modem_status_reg.bits.delta_RLSD = 0; + asp->modem_status_reg.bits.TERI = 0; + asp->modem_status_interrupt_state = OFF; + + host_com_msr_callback (adapter, asp->modem_status_reg.all); + clear_interrupt(asp); +#else + if(!asp->modem_status_changed && asp->loopback_state == OFF) + { + *value = asp->last_modem_status_value.all; + } + else + { + host_com_lock(adapter); + asp->modem_status_changed = TRUE; + + /* if the adapter is not opened yet, just return POST + value. + */ + if (host_com_check_adapter(adapter)) { + if(asp->loopback_state == OFF) + { + com_modem_change(adapter); + asp->modem_status_changed = FALSE; + + } + else + { + asp->modem_status_reg.bits.CTS = asp->modem_control_reg.bits.RTS; + asp->modem_status_reg.bits.DSR = asp->modem_control_reg.bits.DTR; + asp->modem_status_reg.bits.RI = asp->modem_control_reg.bits.OUT1; + asp->modem_status_reg.bits.RLSD = asp->modem_control_reg.bits.OUT2; + } + } + + *value = asp->modem_status_reg.all; + + asp->modem_status_reg.bits.delta_CTS = 0; + asp->modem_status_reg.bits.delta_DSR = 0; + asp->modem_status_reg.bits.delta_RLSD = 0; + asp->modem_status_reg.bits.TERI = 0; + asp->modem_status_interrupt_state = OFF; + host_com_msr_callback (adapter, asp->modem_status_reg.all); + clear_interrupt(asp); + asp->last_modem_status_value.all = asp->modem_status_reg.all; + host_com_unlock(adapter); + } +#endif /* ifndef NTVDM */ + + +#ifdef SHORT_TRACE + if ( io_verbose & RS232_VERBOSE ) + { + sprintf(buf,"%cMSR -> %x\n", id_for_adapter(adapter), + *value); + super_trace(buf); + } +#endif +#ifndef PROD + if (com_trace_fd) + { + if (com_dbg_pollcount) + { + fprintf(com_trace_fd,"\n"); + com_dbg_pollcount = 0; + } + fprintf(com_trace_fd,"MSR read %x \n",*value); + } +#endif + break; + +/* + * Scratch register. Just output the value stored. + */ + case RS232_SCRATCH: + *value = asp->scratch; + break; + + } + +#ifndef PROD + if (io_verbose & RS232_VERBOSE) + { + if (((port & 0xf) == 0xd) && (*value == 0x60)) + fprintf(trace_file,"."); + else + { + sprintf(buf, "com_inb() - port %x, returning val %x", port, + *value); + trace(buf, DUMP_REG); + } + } +#endif + +#ifdef NTVDM + if((port & 0x7) != RS232_MSR) host_com_unlock(adapter); +#endif NTVDM +} + + +void com_outb IFN2(io_addr, port, half_word, value) +{ + int adapter = adapter_for_port(port); + struct ADAPTER_STATE *asp = &adapter_state[adapter]; + int i; + +#ifdef NTVDM + host_com_lock(adapter); +#endif NTVDM + + +#ifndef PROD + if (io_verbose & RS232_VERBOSE) + { + sprintf(buf, "com_outb() - port %x, set to value %x", + port, value); + trace(buf, DUMP_REG); + } +#endif + + switch(port & 0x7) + { + case RS232_TX_RX: + IDLE_comlpt(); + if (asp->line_control_reg.bits.DLAB == 0) + { + /* + * Write char from tx buffer + */ + asp->tx_holding_register_empty_interrupt_state = OFF; + clear_interrupt(asp); + asp->tx_buffer = value; + asp->line_status_reg.bits.tx_holding_empty = 0; + asp->line_status_reg.bits.tx_shift_empty = 0; + if ( asp->loopback_state == OFF ) + { +#ifdef PS_FLUSHING + /* + * If PostScript flushing is enabled for this + * port then we flush on a Ctrl-D + */ + if ( psFlushEnabled[adapter] && + asp->tx_buffer == 0x04 /* ^D */ ) + host_com_ioctl(adapter,HOST_COM_FLUSH, + 0); + else { +#endif /* PS_FLUSHING */ + host_com_write(adapter, asp->tx_buffer); +#if defined (DELAYED_INTS) || defined (NTVDM) + set_xmit_char_status(asp); +#else + if(tx_pacing_enabled) + add_q_event_t(do_wait_on_send, + TX_delay[asp->com_baud_ind], adapter); + else + do_wait_on_send(adapter); + +#endif /* DELAYED_INTS || NTVDM */ +#ifdef PS_FLUSHING + } +#endif /* PS_FLUSHING */ + } + else + { /* Loopback case requires masking off */ + /* of bits based upon word length. */ + asp->rx_buffer = asp->tx_buffer & selectBits[asp->line_control_reg.bits.word_length] ; + set_xmit_char_status(asp); + set_recv_char_status(asp); + } + } + else + { + asp->divisor_latch.byte.LSByte = value; +#ifndef NTVDM + set_baud_rate(adapter); +#endif + } +#ifdef SHORT_TRACE + if ( io_verbose & RS232_VERBOSE ) + { + sprintf(buf,"%cTX <- %x (%c)\n", + id_for_adapter(adapter), value, + isprint(toascii(value))?toascii(value):'?'); + super_trace(buf); + } +#endif +#ifndef PROD + if (com_trace_fd) + { + if (com_dbg_pollcount) + { + fprintf(com_trace_fd,"\n"); + com_dbg_pollcount = 0; + } + fprintf(com_trace_fd,"TX %x (%c)\n",value, + isprint(toascii(value))?toascii(value):'?'); + } +#endif + break; + + case RS232_IER: + if (asp->line_control_reg.bits.DLAB == 0) + { +#ifdef NTVDM + int org_da = asp->int_enable_reg.bits.data_available; +#endif + asp->int_enable_reg.all = value & 0xf; + /* + * Kill off any pending interrupts for those items + * which are set now as disabled + */ + if ( asp->int_enable_reg.bits.data_available == 0 ) + asp->data_available_interrupt_state = OFF; + if ( asp->int_enable_reg.bits.tx_holding == 0 ) + asp->tx_holding_register_empty_interrupt_state = + OFF; + if ( asp->int_enable_reg.bits.rx_line == 0 ) + asp->receiver_line_status_interrupt_state = OFF; + if ( asp->int_enable_reg.bits.modem_status == 0 ) + asp->modem_status_interrupt_state = OFF; + + /* + * Check for immediately actionable interrupts + * If you change these, change the code for out2 as well. + */ + if ( asp->line_status_reg.bits.data_ready == 1 ) + raise_rda_interrupt(asp); + if ( asp->line_status_reg.bits.tx_holding_empty == 1 ) + raise_thre_interrupt(asp); + + /* lower int line if no outstanding interrupts */ + clear_interrupt(asp); + +#ifdef NTVDM + // Inform the host interface if the status of the + // data available interrupt has changed + + if(org_da != asp->int_enable_reg.bits.data_available) + { + host_com_da_int_change(adapter, + asp->int_enable_reg.bits.data_available, + asp->line_status_reg.bits.data_ready); + } +#endif /* NTVDM */ + } + else + { + asp->divisor_latch.byte.MSByte = value; +#ifndef NTVDM + set_baud_rate(adapter); +#endif /* NTVDM */ + } +#ifdef SHORT_TRACE + if ( io_verbose & RS232_VERBOSE ) + { + sprintf(buf,"%cIER <- %x\n", id_for_adapter(adapter), + value); + super_trace(buf); + } +#endif +#ifndef PROD + if (com_trace_fd) + { + if (com_dbg_pollcount) + { + fprintf(com_trace_fd,"\n"); + com_dbg_pollcount = 0; + } + fprintf(com_trace_fd,"IER write %x \n",value); + } +#endif + break; + +#if defined(NTVDM) && defined(FIFO_ON) + case RS232_FIFO: + { + FIFO_CONTROL_REG new_reg; + new_reg.all = value; + if (new_reg.bits.enabled != asp->fifo_control_reg.bits.enabled) + { + /* fifo enable state change, clear the fifo */ + asp->rx_fifo_write_counter = 0; + asp->rx_fifo_read_counter = 0; + + } + if (new_reg.bits.enabled != 0) { + asp->fifo_trigger_counter = level_to_counter[new_reg.bits.trigger_le +vel]; + if (new_reg.bits.rx_reset) { + asp->rx_fifo_write_counter = 0; + asp->rx_fifo_read_counter = 0; + } + asp->int_id_reg.bits.fifo_enabled = 3; + } + else { + asp->fifo_control_reg.bits.enabled = 0; + asp->int_id_reg.bits.fifo_enabled = 0; + } + asp->fifo_control_reg.all = new_reg.all; + break; + } +#else /* !(NTVDM && FIFO_ON) */ + case RS232_IIR: + /* + * Essentially a READ ONLY register + */ +#ifdef SHORT_TRACE + if ( io_verbose & RS232_VERBOSE ) + { + sprintf(buf,"%cIIR <- READ ONLY\n", + id_for_adapter(adapter)); + super_trace(buf); + } +#endif +#ifndef PROD + if (com_trace_fd) + { + if (com_dbg_pollcount) + { + fprintf(com_trace_fd,"\n"); + com_dbg_pollcount = 0; + } + fprintf(com_trace_fd,"IIR write %x \n",value); + } +#endif + break; +#endif /* NTVDM && FIFO_ON */ + + case RS232_LCR: +#ifdef NTVDM + /* The NT host code attempts to distinguish between applications + that probe the UART and those that use it. Probes of the UART + will not cause the systems comms port to be opened. The NT + host code inherits the line settings from NT when the system + comms port is opened. Therefore before an application reads + or writes to the divisor bytes or the LCR the system + comms port must be opened. This prevents the application + reading incorrect values for the divisor bytes and writes + to the divisor bytes getting overwritten by the system + defaults. */ + + { + extern int host_com_open(int adapter); + + host_com_open(adapter); + } +#endif /* NTVDM */ + + if ((value & LCRFlushMask.all) + != (asp->line_control_reg.all & LCRFlushMask.all)) + com_flush_input(adapter); + + set_line_control(adapter, value); + set_break(adapter); +#ifdef SHORT_TRACE + if ( io_verbose & RS232_VERBOSE ) + { + sprintf(buf,"%cLCR <- %x\n", id_for_adapter(adapter), + value); + super_trace(buf); + } +#endif +#ifndef PROD + if (com_trace_fd) + { + if (com_dbg_pollcount) + { + fprintf(com_trace_fd,"\n"); + com_dbg_pollcount = 0; + } + fprintf(com_trace_fd,"LCR write %x \n",value); + } +#endif + break; + + case RS232_MCR: +#ifdef SHORT_TRACE + if ( io_verbose & RS232_VERBOSE ) + { + sprintf(buf,"%cMCR <- %x\n", id_for_adapter(adapter), + value); + super_trace(buf); + } +#endif + /* + * Optimisation - DOS keeps re-writing this register + */ + if ( asp->modem_control_reg.all == value ) + break; + + asp->modem_control_reg.all = value; + asp->modem_control_reg.bits.pad = 0; + + /* Must be called before set_dtr */ + set_loopback(adapter); + set_dtr(adapter); + set_rts(adapter); + set_out1(adapter); + set_out2(adapter); +#ifndef PROD + if (com_trace_fd) + { + if (com_dbg_pollcount) + { + fprintf(com_trace_fd,"\n"); + com_dbg_pollcount = 0; + } + fprintf(com_trace_fd,"MCR write %x \n",value); + } +#endif + break; + + case RS232_LSR: + i = asp->line_status_reg.bits.tx_shift_empty; /* READ ONLY */ + asp->line_status_reg.all = value; + asp->line_status_reg.bits.tx_shift_empty = i; +#ifdef SHORT_TRACE + if ( io_verbose & RS232_VERBOSE ) + { + sprintf(buf,"%cLSR <- %x\n", id_for_adapter(adapter), + value); + super_trace(buf); + } +#endif +#ifndef PROD + if (com_trace_fd) + { + if (com_dbg_pollcount) + { + fprintf(com_trace_fd,"\n"); + com_dbg_pollcount = 0; + } + fprintf(com_trace_fd,"LSR write %x \n",value); + } +#endif + break; + + case RS232_MSR: + /* + * Essentially a READ ONLY register. + */ +#ifdef SHORT_TRACE + if ( io_verbose & RS232_VERBOSE ) + { + sprintf(buf,"%cMSR <- READ ONLY\n", + id_for_adapter(adapter)); + super_trace(buf); + } +#endif +#ifndef PROD + if (com_trace_fd) + { + if (com_dbg_pollcount) + { + fprintf(com_trace_fd,"\n"); + com_dbg_pollcount = 0; + } + fprintf(com_trace_fd,"MSR write %x \n",value); + } +#endif + /* DrDOS writes to this reg after setting int on MSR change + * and expects to get an interrupt back!!! So we will oblige. + * Writing to this reg only seems to affect the delta bits + * (bits 0-3) of the reg. + */ + if ((value & 0xf) != (asp->modem_status_reg.all & 0xf)) + { + asp->modem_status_reg.all &= 0xf0; + asp->modem_status_reg.all |= value & 0xf; + host_com_msr_callback (adapter, asp->modem_status_reg.all); + + if (asp->loopback_state == OFF) + raise_ms_interrupt(asp); + + MODEM_STATE_CHANGE(); + } + break; + +/* + * Scratch register. Just store the value. + */ + case RS232_SCRATCH: + asp->scratch = value; + break; + + } + + +#ifdef NTVDM + host_com_unlock(adapter); +#endif +} + + +#ifdef IRET_HOOKS +/*( + *========================== com_hook_again() ================================== + * com_hook_again + * + * Purpose + * This is the function that we tell the ica to call when a comms + * interrupt service routine IRETs. + * + * Input + * adapter_id The adapter id for the line. (Note the caller doesn't + * know what this is, he's just returning something + * we gave him earlier). + * + * Outputs + * return TRUE if there are more interrupts to service, FALSE otherwise. + * + * Description + * First we call host_com_ioctl to find out if there are characters + * waiting. If not, or we have reached the end of the current batch, + * we mark the end of batch and return FALSE. + * Otherwise we call recv_char() to kick-off the next character + * and return TRUE. +)*/ + +LOCAL IBOOL /* local because we pass a pointer to it */ +com_hook_again IFN1(IUM32, adapter) +{ + int input_ready; /* the host wants a pointer to an 'int'! */ + struct ADAPTER_STATE *asp = &adapter_state[adapter]; + + host_com_ioctl(adapter, HOST_COM_INPUT_READY, (long)&input_ready); + +#ifndef PROD + if ((input_ready) && (asp->current_count >= asp->batch_size)) { + sure_note_trace1(RS232_VERBOSE, "In hook again, adapter %d", adapter); + } +#endif + + if((!input_ready) || (asp->current_count >= asp->batch_size)) { + asp->batch_running = FALSE; + return(FALSE); + } else { + recv_char((long)adapter); + return(TRUE); /* more to do */ + } +} + +/*( + *========================== next_batch() ================================== + * next_batch + * + * Purpose + * This function is called by the quick event system to kick-off the + * next batch of characters. + * + * Input + * dummy Sometimes the adapter id, sometimes not. Don't + * use it! + * + * Outputs + * None. + * + * Description + * If a batch is already running, now would not be a good time + * to start another, so we simply press the snooze button. + * Otherwise we check whether there is any data to process, + * and if so kick-off the next batch. +)*/ + +LOCAL void +next_batch IFN1 (long, dummy) +{ + int input_ready; /* the host wants a pointer to an 'int'! */ + IUM8 adapter; /* check all adapters */ + struct ADAPTER_STATE *asp; + IBOOL new_qe_reqd; /* Do we need to restart the quick event */ + + UNUSED(dummy); + + new_qe_reqd = FALSE; /* Dont need another by default */ + + for (adapter = 0; adapter < NUM_SERIAL_PORTS; adapter++) { + asp = &adapter_state[adapter]; + + + if (asp->batch_running) { + new_qe_reqd = TRUE; /* not finished yet */ + } else if (asp->qev_running) { + /* + * We need to set qev running to false, as it has now + * finished. If there is data to process, we call + * recv_char() which will start-off a new batch (and + * set the batch_running flag). + */ + + asp->qev_running = FALSE; + host_com_ioctl((int)adapter,HOST_COM_INPUT_READY, (long)&input_ready); + if(input_ready) { + recv_char((int)adapter); + } + } + } + if (new_qe_reqd) { +#ifdef GISP_CPU + hg_add_comms_cb(next_batch, MIN_COMMS_RX_QEV); +#else + add_q_event_t(next_batch, MIN_COMMS_RX_QEV, 0); +#endif + sure_note_trace0(RS232_VERBOSE, "Reset batch quick event"); + } else { + qev_running = FALSE; + } +} + +#endif /* of ifdef IRET_HOOKS */ + +/* + * ===================================================================== + * Subsidiary functions - for transmitting characters + * ===================================================================== + */ + +#ifdef NTVDM +// This code has been added for the MS project!!!!!!! + + +void com_recv_char(int adapter) +{ + struct ADAPTER_STATE *asp = &adapter_state[adapter]; + int error; + +#ifdef FIFO_ON + if(asp->fifo_control_reg.bits.enabled) { + /* pull data from serial driver until the fifo is full or + there are no more data + */ + asp->rx_fifo_read_counter = 0; + + asp->rx_fifo_write_counter = host_com_read_char(adapter, + asp->rx_fifo, + FIFO_BUFFER_SIZE + ); + /* if the total chars in the fifo is more than or equalt to the trigger + count, raise a RDA int, otherwise, raise a fifo time out int. + We will continue to delivery char available in the fifo until + the rx_fifo_write_counter reaches zero every time the application + read out the byte we put in rx_buffer + */ + if (asp->rx_fifo_write_counter) { + /* we have at least one byte to delivery */ + asp->line_status_reg.bits.data_ready = 1; + if (asp->rx_fifo_write_counter >= asp->fifo_trigger_counter) + raise_rda_interrupt(asp); + else + raise_fifo_timeout_interrupt(asp); + } + } + else +#endif + + { + error = 0; + host_com_read(adapter, (char *)&asp->rx_buffer, &error); + if (error != 0) + { + lsr_change(asp, error); + raise_rls_interrupt(asp); + } + set_recv_char_status(asp); + } +} +#ifdef FIFO_ON +static void recv_char_from_fifo(struct ADAPTER_STATE *asp) +{ + int error; + + asp->rx_buffer = asp->rx_fifo[asp->rx_fifo_read_counter].data; + error = asp->rx_fifo[asp->rx_fifo_read_counter++].error; + if (error != 0) { + lsr_change(asp, error); + raise_rls_interrupt(asp); + } + asp->rx_fifo_write_counter--; +} +#endif + +#else /* NTVDM */ + +void com_recv_char IFN1(int, adapter) +{ + /* + * Character available on input device; process character if adapter + * is ready to receive it + */ + + /* Check adapter not already in critical region */ + if (!is_com_critical(adapter)) + { + com_critical_start(adapter); + recv_char((long)adapter); + } +} +#endif /* NTVDM */ + +/* + * BCN 2151 - recv_char must use long param to match add_event function prototype + */ +GLOBAL void +recv_char IFN1(long, adapt_long) +{ + int adapter = adapt_long; + + /* + * Character available on input device, read char, format char + * checking for parity and overrun errors, raise the appropriate + * interrupt. + */ + struct ADAPTER_STATE *asp = &adapter_state[adapter]; + int error_mask = 0; + + host_com_read(adapter, (UTINY *)&asp->rx_buffer, &error_mask); + + if (error_mask) + { + /* + * Set line status register and raise line status interrupt + */ + if (error_mask & HOST_COM_OVERRUN_ERROR) + asp->line_status_reg.bits.overrun_error = 1; + + if (error_mask & HOST_COM_FRAMING_ERROR) + asp->line_status_reg.bits.framing_error = 1; + + if (error_mask & HOST_COM_PARITY_ERROR) + asp->line_status_reg.bits.parity_error = 1; + + if (error_mask & HOST_COM_BREAK_RECEIVED) + asp->line_status_reg.bits.break_interrupt = 1; + + raise_rls_interrupt(asp); + } + + set_recv_char_status(asp); + +#ifdef DOCUMENTATION + /* + * I think this is wrong for polled comms applications WTGC BCN 354 + */ + + /* + * If the data available interrupt is not to be delivered to the CPU, + * then the adapter must come out of the critical region at once + */ + if (asp->data_available_interrupt_state != ON) + { + long input_ready = 0; + + /* check for further input */ + host_com_ioctl(adapter, HOST_COM_INPUT_READY, + (long)&input_ready); + if (input_ready) + recv_char((long)adapter); + else + com_critical_reset(adapter); + } +#endif +} +#ifdef NTVDM +static void lsr_change(struct ADAPTER_STATE *asp, unsigned int new_lsr) +{ + if (new_lsr & HOST_COM_OVERRUN_ERROR) + asp->line_status_reg.bits.overrun_error = 1; + if (new_lsr & HOST_COM_FRAMING_ERROR) + asp->line_status_reg.bits.framing_error = 1; + if (new_lsr & HOST_COM_PARITY_ERROR) + asp->line_status_reg.bits.parity_error = 1; + if (new_lsr & HOST_COM_BREAK_RECEIVED) + asp->line_status_reg.bits.break_interrupt = 1; +/* we have no control of serial driver fifo enable/disabled states + we may receive a fifo error even the application doesn't enable it. + fake either framing or parity error +*/ + if (new_lsr & HOST_COM_FIFO_ERROR) +#ifdef FIFO_ON + if (asp->fifo_control_reg.bits.enabled) + asp->line_status_reg.bits.fifo_error = 1; + else if (asp->line_control_reg.bits.parity_enabled == PARITYENABLE_OFF) + asp->line_status_reg.bits.framing_error = 1; + else + asp->line_status_reg.bits.parity_error = 1; +#else + if (asp->line_control_reg.bits.parity_enabled == PARITYENABLE_OFF) + asp->line_status_reg.bits.framing_error = 1; + else + asp->line_status_reg.bits.parity_error = 1; +#endif + +} + +void com_lsr_change(int adapter) +{ + int new_lsr; + struct ADAPTER_STATE *asp = &adapter_state[adapter]; + + new_lsr = -1; + host_com_ioctl(adapter, HOST_COM_LSR, (long)&new_lsr); + if (new_lsr != -1) + lsr_change(asp, new_lsr); +} + +#endif /* NTVDM */ + +/* + * One of the modem control input lines has changed state + */ +void com_modem_change IFN1(int, adapter) +{ + modem_change(adapter); +} + +static void modem_change IFN1(int, adapter) +{ + /* + * Update the modem status register after a change to one of the + * modem control input lines + */ + struct ADAPTER_STATE *asp = &adapter_state[adapter]; + long modem_status = 0; + int cts_state, dsr_state, rlsd_state, ri_state; + + if (asp->loopback_state == OFF) + { + /* get current modem input state */ + host_com_ioctl(adapter, HOST_COM_MODEM, (long)&modem_status); + cts_state = (modem_status & HOST_COM_MODEM_CTS) ? ON : OFF; + dsr_state = (modem_status & HOST_COM_MODEM_DSR) ? ON : OFF; + rlsd_state = (modem_status & HOST_COM_MODEM_RLSD) ? ON : OFF; + ri_state = (modem_status & HOST_COM_MODEM_RI) ? ON : OFF; + + /* + * Establish CTS state + */ + switch(change_state(cts_state, asp->modem_status_reg.bits.CTS)) + { + case ON: + asp->modem_status_reg.bits.CTS = ON; + asp->modem_status_reg.bits.delta_CTS = ON; + host_com_msr_callback (adapter, asp->modem_status_reg.all); + + raise_ms_interrupt(asp); + MODEM_STATE_CHANGE(); + break; + + case OFF: + asp->modem_status_reg.bits.CTS = OFF; + asp->modem_status_reg.bits.delta_CTS = ON; + host_com_msr_callback (adapter, asp->modem_status_reg.all); + + raise_ms_interrupt(asp); + MODEM_STATE_CHANGE(); + break; + + case LEAVE_ALONE: + break; + } + + /* + * Establish DSR state + */ + switch(change_state(dsr_state, asp->modem_status_reg.bits.DSR)) + { + case ON: + asp->modem_status_reg.bits.DSR = ON; + asp->modem_status_reg.bits.delta_DSR = ON; + host_com_msr_callback (adapter, asp->modem_status_reg.all); + + raise_ms_interrupt(asp); + MODEM_STATE_CHANGE(); + break; + + case OFF: + asp->modem_status_reg.bits.DSR = OFF; + asp->modem_status_reg.bits.delta_DSR = ON; + host_com_msr_callback (adapter, asp->modem_status_reg.all); + + raise_ms_interrupt(asp); + MODEM_STATE_CHANGE(); + break; + + case LEAVE_ALONE: + break; + } + + /* + * Establish RLSD state + */ + switch(change_state(rlsd_state, + asp->modem_status_reg.bits.RLSD)) + { + case ON: + asp->modem_status_reg.bits.RLSD = ON; + asp->modem_status_reg.bits.delta_RLSD = ON; + host_com_msr_callback (adapter, asp->modem_status_reg.all); + + raise_ms_interrupt(asp); + MODEM_STATE_CHANGE(); + break; + + case OFF: + asp->modem_status_reg.bits.RLSD = OFF; + asp->modem_status_reg.bits.delta_RLSD = ON; + host_com_msr_callback (adapter, asp->modem_status_reg.all); + + raise_ms_interrupt(asp); + MODEM_STATE_CHANGE(); + break; + + case LEAVE_ALONE: + break; + } + + /* + * Establish RI state + */ + switch(change_state(ri_state, asp->modem_status_reg.bits.RI)) + { + case ON: + asp->modem_status_reg.bits.RI = ON; + host_com_msr_callback (adapter, asp->modem_status_reg.all); + MODEM_STATE_CHANGE(); + break; + + case OFF: + asp->modem_status_reg.bits.RI = OFF; + asp->modem_status_reg.bits.TERI = ON; + host_com_msr_callback (adapter, asp->modem_status_reg.all); + + raise_ms_interrupt(asp); + MODEM_STATE_CHANGE(); + break; + + case LEAVE_ALONE: + break; + } + } +} + +static void set_recv_char_status IFN1(struct ADAPTER_STATE *, asp) +{ + /* + * Check for data overrun and set up correct interrupt + */ + if ( asp->line_status_reg.bits.data_ready == 1 ) + { + sure_note_trace0(RS232_VERBOSE, "overrun error in set_recv_char_status"); + asp->line_status_reg.bits.overrun_error = 1; + raise_rls_interrupt(asp); + } + else + { + asp->line_status_reg.bits.data_ready = 1; + raise_rda_interrupt(asp); + } +} + +static void set_xmit_char_status IFN1(struct ADAPTER_STATE *, asp) +{ + /* + * Set line status register and raise interrupt + */ + asp->line_status_reg.bits.tx_holding_empty = 1; + asp->line_status_reg.bits.tx_shift_empty = 1; + raise_thre_interrupt(asp); +} + +#ifdef NTVDM +GLOBAL void tx_shift_register_empty(int adapter) +{ + struct ADAPTER_STATE *asp = &adapter_state[adapter]; + asp->line_status_reg.bits.tx_shift_empty = 1; +} +GLOBAL void tx_holding_register_empty(int adapter) +{ + struct ADAPTER_STATE *asp = &adapter_state[adapter]; + asp->line_status_reg.bits.tx_holding_empty = 1; + raise_thre_interrupt(asp); +} +#endif + +/* + * ===================================================================== + * Subsidiary functions - for setting comms parameters + * ===================================================================== + */ + +static void set_break IFN1(int, adapter) +{ + /* + * Process the set break control bit. Bit 6 of the Line Control + * Register. + */ + struct ADAPTER_STATE *asp = &adapter_state[adapter]; + + switch ( change_state((int)asp->line_control_reg.bits.set_break, + asp->break_state) ) + { + case ON: + asp->break_state = ON; + host_com_ioctl(adapter, HOST_COM_SBRK, 0); + break; + + case OFF: + asp->break_state = OFF; + host_com_ioctl(adapter, HOST_COM_CBRK, 0); + break; + + case LEAVE_ALONE: + break; + } +} + +/* + * The following table is derived from page 1-200 of the XT Tech Ref 1st Ed + * (except rates above 9600 which are not OFFICIALLY supported on the XT and + * AT, but are theoretically possible) */ + +static word valid_latches[] = +{ + 1, 2, 3, 6, 12, 16, 24, 32, + 48, 58, 64, 96, 192, 384, 768, 857, + 1047, 1536, 2304 +}; + +#if !defined(PROD) || defined(IRET_HOOKS) +static IUM32 bauds[] = +{ + 115200, /* 115200 baud */ + 57600, /* 57600 baud */ + 38400, /* 38400 baud */ + 19200, /* 19200 baud */ + 9600, /* 9600 baud */ + 7200, /* 7200 baud */ + 4800, /* 4800 baud */ + 3600, /* 3600 baud */ + 2400, /* 2400 baud */ + 2000, /* 2000 baud */ + 1800, /* 1800 baud */ + 1200, /* 1200 baud */ + 600, /* 600 baud */ + 300, /* 300 baud */ + 150, /* 150 baud */ + 134, /* 134 baud */ + 110, /* 110 baud */ + 75, /* 75 baud */ + 50 /* 50 baud */ +}; +#endif /* !PROD or IRET_HOOKS*/ + +static word speeds[] = +{ + HOST_COM_B115200, + HOST_COM_B57600, + HOST_COM_B38400, + HOST_COM_B19200, + HOST_COM_B9600, + HOST_COM_B7200, + HOST_COM_B4800, + HOST_COM_B3600, + HOST_COM_B2400, + HOST_COM_B2000, + HOST_COM_B1800, + HOST_COM_B1200, + HOST_COM_B600, + HOST_COM_B300, + HOST_COM_B150, + HOST_COM_B134, + HOST_COM_B110, + HOST_COM_B75, + HOST_COM_B50 +}; + +static int no_valid_latches = + (int)(sizeof(valid_latches)/sizeof(valid_latches[0])); + +static void set_baud_rate IFN1(int, adapter) +{ + /* + * Map divisor latch into a valid line speed and set our Unix + * device accordingly. Note as the sixteen bit divisor latch is + * likely to be written in two eight bit bytes, we ignore illegal + * values of the sixteen bit divisor latch - hoping a second + * byte will be written to produce a legal value. In addition + * the reset value (0) is illegal! + * + * For IRET hooks, we need to determine the batch size from + * the line speed, and an idea of how many quick events + * we can get per second. We add one to alow us to catch-up! + * Hence + * batch size = line_speed (in bits per second) + * / number of bits in a byte + * * number of quick events ticks per second (normally 1000000) + * / the length in quick event ticks of a batch + * + 1 + */ + struct ADAPTER_STATE *asp = &adapter_state[adapter]; + int i; + + com_flush_input(adapter); + +#ifndef NTVDM + + /* + * Check for valid divisor latch + */ + for (i = 0; i < no_valid_latches && asp->divisor_latch.all != + valid_latches[i]; i++) + ; + + if (i < no_valid_latches) /* ie map found */ + { + host_com_ioctl(adapter, HOST_COM_BAUD, speeds[i]); + asp->com_baud_ind = i; + sure_note_trace3(RS232_VERBOSE, + " delay for baud %d RX:%d TX:%d", bauds[i], + RX_delay[i], TX_delay[i]); +#ifdef IRET_HOOKS +#ifdef VARIABLE_TICK_COMMS + asp->batch_size = ((bauds[i] / BITS_PER_ASYNC_CHAR) / + (COMMS_QEV_PER_SEC/2)) + 1; + sure_note_trace2(RS232_VERBOSE, + "baud %d asp->batch_size =%d",bauds[i],asp->batch_size); +#else /* VARIABLE_TICK_COMMS */ + asp->batch_size = ((bauds[i] / BITS_PER_ASYNC_CHAR) / + COMMS_QEV_PER_SEC) + 1; +#endif /* VARIABLE_TICK_COMMS */ +#endif /* IRET_HOOKS */ + } +#else /* NTVDM */ + //The host is not limited in the baud rates that it supports + + if(asp->divisor_latch.all) + /* baudrate = clock frequency / (diviso * 16) by taking + frequency as 1.8432 MHZ + */ + host_com_ioctl(adapter,HOST_COM_BAUD,115200/asp->divisor_latch.all); +#endif /* NTVDM */ +} + +static void set_line_control IFN2(int, adapter, int, value) +{ + /* + * Set Number of data bits + * Parity bits + * Number of stop bits + */ + struct ADAPTER_STATE *asp = &adapter_state[adapter]; + LINE_CONTROL_REG newLCR; + int newParity, parity; + + newLCR.all = value; + + /* + * Set up the number of data bits + */ + if (asp->line_control_reg.bits.word_length != newLCR.bits.word_length) + host_com_ioctl(adapter, HOST_COM_DATABITS, + newLCR.bits.word_length + 5); + + /* + * Set up the number of stop bits + */ + if (asp->line_control_reg.bits.no_of_stop_bits + != newLCR.bits.no_of_stop_bits) + host_com_ioctl(adapter, HOST_COM_STOPBITS, + newLCR.bits.no_of_stop_bits + 1); + + /* What are new settings to check for a difference */ +#ifdef NTVDM + if (newLCR.bits.parity_enabled == PARITYENABLE_OFF) +#else + if (newLCR.bits.parity_enabled == PARITY_OFF) +#endif + { + newParity = HOST_COM_PARITY_NONE; + } + else if (newLCR.bits.stick_parity == PARITY_STICK) + { +#ifdef NTVDM + newParity = newLCR.bits.even_parity == EVENPARITY_ODD ? +#else + newParity = newLCR.bits.even_parity == PARITY_ODD ? +#endif + HOST_COM_PARITY_MARK : HOST_COM_PARITY_SPACE; + } + else /* regular parity */ + { +#ifdef NTVDM + newParity = newLCR.bits.even_parity == EVENPARITY_ODD ? +#else + newParity = newLCR.bits.even_parity == PARITY_ODD ? +#endif + HOST_COM_PARITY_ODD : HOST_COM_PARITY_EVEN; + } + + /* + * Try to make sense of the current parity setting + */ +#ifdef NTVDM + if (asp->line_control_reg.bits.parity_enabled == PARITYENABLE_OFF) +#else + if (asp->line_control_reg.bits.parity_enabled == PARITY_OFF) +#endif + { + parity = HOST_COM_PARITY_NONE; + } + else if (asp->line_control_reg.bits.stick_parity == PARITY_STICK) + { +#ifdef NTVDM + parity = asp->line_control_reg.bits.even_parity == EVENPARITY_ODD ? +#else + parity = asp->line_control_reg.bits.even_parity == PARITY_ODD ? +#endif + HOST_COM_PARITY_MARK : HOST_COM_PARITY_SPACE; + } + else /* regular parity */ + { +#ifdef NTVDM + parity = asp->line_control_reg.bits.even_parity == EVENPARITY_ODD ? +#else + parity = asp->line_control_reg.bits.even_parity == PARITY_ODD ? +#endif + HOST_COM_PARITY_ODD : HOST_COM_PARITY_EVEN; + } + + if (newParity != parity) + host_com_ioctl(adapter, HOST_COM_PARITY, newParity); + +#ifdef NTVDM + //Change in the status of the DLAB selection bit, now is the time + //to change the baud rate. + + if(!newLCR.bits.DLAB && asp->line_control_reg.bits.DLAB) + set_baud_rate(adapter); +#endif + + /* finally update the current line control settings */ + asp->line_control_reg.all = value; +} + +static void set_dtr IFN1(int, adapter) +{ + /* + * Process the DTR control bit, Bit 0 of the Modem Control + * Register. + */ + struct ADAPTER_STATE *asp = &adapter_state[adapter]; + + switch ( change_state((int)asp->modem_control_reg.bits.DTR, + asp->dtr_state) ) + { + case ON: + asp->dtr_state = ON; + if (asp->loopback_state == OFF) + { + /* set the real DTR modem output */ + host_com_ioctl(adapter, HOST_COM_SDTR, 0); + } + else + { + /* + * loopback the DTR modem output into the + * DSR modem input + */ + asp->modem_status_reg.bits.DSR = ON; + asp->modem_status_reg.bits.delta_DSR = ON; + host_com_msr_callback (adapter, asp->modem_status_reg.all); + + raise_ms_interrupt(asp); + } + MODEM_STATE_CHANGE(); + break; + + case OFF: + asp->dtr_state = OFF; + if (asp->loopback_state == OFF) + { + /* clear the real DTR modem output */ + host_com_ioctl(adapter, HOST_COM_CDTR, 0); + } + else + { + /* + * loopback the DTR modem output into the + * DSR modem input + */ + asp->modem_status_reg.bits.DSR = OFF; + asp->modem_status_reg.bits.delta_DSR = ON; + host_com_msr_callback (adapter, asp->modem_status_reg.all); + + raise_ms_interrupt(asp); + } + MODEM_STATE_CHANGE(); + break; + + case LEAVE_ALONE: + break; + } +} + +static void set_rts IFN1(int, adapter) +{ + /* + * Process the RTS control bit, Bit 1 of the Modem Control + * Register. + */ + struct ADAPTER_STATE *asp = &adapter_state[adapter]; + + switch ( change_state((int)asp->modem_control_reg.bits.RTS, + asp->rts_state) ) + { + case ON: + asp->rts_state = ON; + if (asp->loopback_state == OFF) + { + /* set the real RTS modem output */ + host_com_ioctl(adapter, HOST_COM_SRTS, 0); + } + else + { + /* loopback the RTS modem out into the CTS modem in */ + asp->modem_status_reg.bits.CTS = ON; + asp->modem_status_reg.bits.delta_CTS = ON; + host_com_msr_callback (adapter, asp->modem_status_reg.all); + + raise_ms_interrupt(asp); + } + MODEM_STATE_CHANGE(); + break; + + case OFF: + asp->rts_state = OFF; + if (asp->loopback_state == OFF) + { + /* clear the real RTS modem output */ + host_com_ioctl(adapter, HOST_COM_CRTS, 0); + } + else + { + /* loopback the RTS modem out into the CTS modem in */ + asp->modem_status_reg.bits.CTS = OFF; + asp->modem_status_reg.bits.delta_CTS = ON; + host_com_msr_callback (adapter, asp->modem_status_reg.all); + + raise_ms_interrupt(asp); + } + MODEM_STATE_CHANGE(); + break; + + case LEAVE_ALONE: + break; + } +} + +static void set_out1 IFN1(int, adapter) +{ + /* + * Process the OUT1 control bit, Bit 2 of the Modem Control + * Register. + */ + struct ADAPTER_STATE *asp = &adapter_state[adapter]; + + switch ( change_state((int)asp->modem_control_reg.bits.OUT1, + asp->out1_state) ) + { + case ON: + asp->out1_state = ON; + if (asp->loopback_state == OFF) + { + /* + * In the real adapter, this modem control output + * signal is not connected; so no real modem + * control change is required + */ + } + else + { + /* loopback the OUT1 modem out into the RI modem in */ + asp->modem_status_reg.bits.RI = ON; + host_com_msr_callback (adapter, asp->modem_status_reg.all); + } + MODEM_STATE_CHANGE(); + break; + + case OFF: + asp->out1_state = OFF; + if (asp->loopback_state == OFF) + { + /* + * In the real adapter, this modem control output + * signal is not connected; so no real modem control + * change is required + */ + } + else + { + /* loopback the OUT1 modem out into the RI modem in */ + asp->modem_status_reg.bits.RI = OFF; + asp->modem_status_reg.bits.TERI = ON; + host_com_msr_callback (adapter, asp->modem_status_reg.all); + + raise_ms_interrupt(asp); + } + MODEM_STATE_CHANGE(); + break; + + case LEAVE_ALONE: + break; + } +} + +static void set_out2 IFN1(int, adapter) +{ + /* + * Process the OUT2 control bit, Bit 3 of the Modem Control + * Register. + */ + struct ADAPTER_STATE *asp = &adapter_state[adapter]; + + switch ( change_state((int)asp->modem_control_reg.bits.OUT2, + asp->out2_state) ) + { + case ON: + asp->out2_state = ON; + if (asp->loopback_state == OFF) + { + /* + * In the real adapter, this modem control output + * signal is used to determine whether the + * communications card should send interrupts; so + * check for immediately actionable interrupts. + * If you change this code, change the equivalent code + * for the interrupt enable register. + */ + if ( asp->line_status_reg.bits.data_ready == 1 ) + raise_rda_interrupt(asp); + if ( asp->line_status_reg.bits.tx_holding_empty == 1 ) + raise_thre_interrupt(asp); + } + else + { + /* loopback the OUT2 modem output into the RLSD modem input */ + asp->modem_status_reg.bits.RLSD = ON; + asp->modem_status_reg.bits.delta_RLSD = ON; + host_com_msr_callback (adapter, asp->modem_status_reg.all); + + raise_ms_interrupt(asp); + } + MODEM_STATE_CHANGE(); + break; + + case OFF: + asp->out2_state = OFF; + if (asp->loopback_state == OFF) + { + /* + * In the real adapter, this modem control output signal + * is used to determine whether the communications + * card should send interrupts; so no real modem + * control change is required + */ + } + else + { + /* loopback the OUT2 modem out into the RLSD modem in */ + asp->modem_status_reg.bits.RLSD = OFF; + asp->modem_status_reg.bits.delta_RLSD = ON; + host_com_msr_callback (adapter, asp->modem_status_reg.all); + + raise_ms_interrupt(asp); + } + MODEM_STATE_CHANGE(); + break; + + case LEAVE_ALONE: + break; + } +} + +static void set_loopback IFN1(int, adapter) +{ + /* + * Process the loopback control bit, Bit 4 of the Modem Control + * Register. + */ + struct ADAPTER_STATE *asp = &adapter_state[adapter]; + + switch ( change_state((int)asp->modem_control_reg.bits.loop, + asp->loopback_state) ) + { + case ON: + asp->loopback_state = ON; + /* + * Subsequent calls to set_dtr(), set_rts(), set_out1() and + * set_out2() will cause the modem control inputs to be set + * according to the the modem control outputs + */ + break; + + case OFF: + asp->loopback_state = OFF; + /* + * Set the modem control inputs according to the real + * modem state + */ + modem_change(adapter); + break; + + case LEAVE_ALONE: + break; + } +} + +#ifdef SHORT_TRACE + +static char last_buffer[80]; +static int repeat_count = 0; + +static void super_trace IFN1(char *, string) +{ + if ( strcmp(string, last_buffer) == 0 ) + repeat_count++; + else + { + if ( repeat_count != 0 ) + { + fprintf(trace_file,"repeated %d\n",repeat_count); + repeat_count = 0; + } + fprintf(trace_file, "%s", string); + strcpy(last_buffer, string); + } +} +#endif + + +void com1_flush_printer IFN0() +{ +#ifdef NTVDM + host_com_lock(COM1); +#endif + + host_com_ioctl(COM1, HOST_COM_FLUSH, 0); + +#ifdef NTVDM + host_com_unlock(COM1); +#endif +} + +void com2_flush_printer IFN0() +{ +#ifdef NTVDM + host_com_lock(COM2); +#endif + + host_com_ioctl(COM2, HOST_COM_FLUSH, 0); + +#ifdef NTVDM + host_com_unlock(COM2); +#endif +} + + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_INIT.seg" +#endif + +static void com_reset IFN1(int, adapter) +{ + struct ADAPTER_STATE *asp = &adapter_state[adapter]; + + /* setup the LCRFlushMask if it has not already been setup */ + if (!LCRFlushMask.all) + { + LCRFlushMask.all = ~0; /* turn all bits on */ + + /* + * Now turn off the bits that should NOT cause the input + * to be flushed. Note set_break is handled seperately by + * the set_break() routine. + */ + LCRFlushMask.bits.DLAB = 0; + LCRFlushMask.bits.no_of_stop_bits = 0; + LCRFlushMask.bits.set_break = 0; + } + + /* + * Set default state of all adapter registers + */ + asp->int_enable_reg.all = 0; + +#ifdef NTVDM + // Tell host side the state of the data available interrupt + host_com_da_int_change(adapter,asp->int_enable_reg.bits.data_available,0); +#endif /* NTVDM */ + + + asp->int_id_reg.all = 0; + asp->int_id_reg.bits.no_int_pending = 1; + + /* make sure a change occurs to 0 */ + asp->line_control_reg.all = ~0; + + /* + * set up modem control reg so next set_dtr etc. + * Will produce required status + */ + asp->modem_control_reg.all = 0; + asp->modem_control_reg.bits.DTR = ON; + asp->modem_control_reg.bits.RTS = ON; + asp->modem_control_reg.bits.OUT1 = ON; + asp->modem_control_reg.bits.OUT2 = ON; + host_com_ioctl(adapter, HOST_COM_SDTR, 0); + host_com_ioctl(adapter, HOST_COM_SRTS, 0); + + asp->line_status_reg.all = 0; + asp->line_status_reg.bits.tx_holding_empty = 1; + asp->line_status_reg.bits.tx_shift_empty = 1; + + asp->modem_status_reg.all = 0; + MODEM_STATE_CHANGE(); + host_com_msr_callback (adapter, asp->modem_status_reg.all); + + /* + * Set up default state of our state variables + */ + asp->receiver_line_status_interrupt_state = OFF; + asp->data_available_interrupt_state = OFF; + asp->tx_holding_register_empty_interrupt_state = OFF; + asp->modem_status_interrupt_state = OFF; + asp->break_state = OFF; + asp->loopback_state = OFF; + asp->dtr_state = ON; + asp->rts_state = ON; + asp->out1_state = ON; + asp->out2_state = ON; +#if defined(NTVDM) && defined(FIFO_ON) + /* disable fifo */ + asp->fifo_control_reg.all = 0; + asp->int_id_reg.bits.fifo_enabled = 0; + asp->rx_fifo_write_counter = 0; + asp->rx_fifo_read_counter = 0; + asp->fifo_trigger_counter = 1; + asp->fifo_timeout_interrupt_state = OFF; +#endif + + /* + * Reset adapter synchronisation + */ + com_critical_reset(adapter); + + /* + * Set Unix devices to default state + */ + set_baud_rate(adapter); + set_line_control(adapter, 0); + set_break(adapter); + + /* Must be called before set_dtr */ + set_loopback(adapter); + set_dtr(adapter); + set_rts(adapter); + set_out1(adapter); + set_out2(adapter); + +#ifdef IRET_HOOKS + /* + * Remove any existing hook call-back, and re-instate it afresh. + */ + + Ica_enable_hooking(asp->hw_interrupt_priority, NULL, adapter); + Ica_enable_hooking(asp->hw_interrupt_priority, com_hook_again, adapter); + + /* + * Clear the IRET status flags. + */ + + asp->batch_running = FALSE; + asp->qev_running = FALSE; + asp->batch_size = 10; /* sounds like a safe default ! */ +#endif /* IRET_HOOKS */ +} + +#ifndef COM3_ADAPTOR +#define COM3_ADAPTOR 0 +#endif +#ifndef COM4_ADAPTOR +#define COM4_ADAPTOR 0 +#endif + +static int com_adaptor[4] = {COM1_ADAPTOR,COM2_ADAPTOR, + COM3_ADAPTOR,COM4_ADAPTOR}; +static int port_start[4] = {RS232_COM1_PORT_START, + RS232_COM2_PORT_START, + RS232_COM3_PORT_START, + RS232_COM4_PORT_START}; +static int port_end[4] = {RS232_COM1_PORT_END, + RS232_COM2_PORT_END, + RS232_COM3_PORT_END, + RS232_COM4_PORT_END}; +static int int_pri[4] = {CPU_RS232_PRI_INT, + CPU_RS232_SEC_INT, + CPU_RS232_PRI_INT, + CPU_RS232_SEC_INT}; +static int timeout[4] = {RS232_COM1_TIMEOUT, + RS232_COM2_TIMEOUT, + RS232_COM3_TIMEOUT, + RS232_COM4_TIMEOUT}; + + +GLOBAL VOID com_init IFN1(int, adapter) +{ + io_addr i; + +#ifdef NTVDM + host_com_lock(adapter); + host_com_disable_open(adapter,TRUE); +#endif + + adapter_state[adapter].had_first_read = FALSE; + + /* Set up the IO chip select logic for this adaptor */ +#ifdef NTVDM + { + extern BOOL VDMForWOW; + extern void wow_com_outb(io_addr port, half_word value); + extern void wow_com_inb(io_addr port, half_word *value); + + io_define_inb(com_adaptor[adapter],VDMForWOW ? wow_com_inb: com_inb) +; + io_define_outb(com_adaptor[adapter],VDMForWOW ? wow_com_outb: com_outb); + } +#else + io_define_inb(com_adaptor[adapter], com_inb); + io_define_outb(com_adaptor[adapter], com_outb); +#endif /* NTVDM */ + + for(i = port_start[adapter]; i <= port_end[adapter]; i++) + io_connect_port(i, com_adaptor[adapter], IO_READ_WRITE); + + + adapter_state[adapter].hw_interrupt_priority = int_pri[adapter]; + + /* reset adapter state */ + host_com_reset(adapter); + + /* reset adapter state */ + com_reset(adapter); + +#ifndef NTVDM + /* Should we enable TX pacing ? */ + tx_pacing_enabled = host_getenv("TX_PACING_ENABLED") ? TRUE : FALSE; +#else /* not NTVDM */ + host_com_disable_open(adapter,FALSE); + host_com_unlock(adapter); +#endif + + return; +} + +void com_post IFN1(int, adapter) +{ + /* Set up BIOS data area. */ + sas_storew( BIOS_VAR_START + (2*adapter), port_start[adapter]); + sas_store(timeout[adapter] , (half_word)1 ); +} + +void com_close IFN1(int, adapter) +{ +#ifdef NTVDM + host_com_lock(adapter); +#endif + +#ifndef PROD + if (com_trace_fd) + fclose (com_trace_fd); + com_trace_fd = NULL; +#endif + /* reset host specific communications channel */ + config_activate(C_COM1_NAME + adapter, FALSE); + +#ifdef NTVDM + host_com_unlock(adapter); +#endif +} + +#ifdef NTVDM + +/*********************************************************/ +/* Com extentions - DAB (MS-project) */ + +GLOBAL void SyncBaseLineSettings(int adapter,DIVISOR_LATCH *divisor_latch, + LINE_CONTROL_REG *LCR_reg) +{ + register struct ADAPTER_STATE *asp = &adapter_state[adapter]; + + //Setup baud rate control register + asp->divisor_latch.all = (*divisor_latch).all; + + //Setup line control settings + asp->line_control_reg.bits.word_length = (*LCR_reg).bits.word_length; + asp->line_control_reg.bits.no_of_stop_bits = (*LCR_reg).bits.no_of_stop_bits +; + asp->line_control_reg.bits.parity_enabled = (*LCR_reg).bits.parity_enabled; + asp->line_control_reg.bits.stick_parity = (*LCR_reg).bits.stick_parity; + asp->line_control_reg.bits.even_parity = (*LCR_reg).bits.even_parity; +} + +GLOBAL void setup_RTSDTR(int adapter) +{ + struct ADAPTER_STATE *asp = &adapter_state[adapter]; + + host_com_ioctl(adapter,asp->dtr_state == ON ? HOST_COM_SDTR : HOST_COM_CDTR, +0); + host_com_ioctl(adapter,asp->rts_state == ON ? HOST_COM_SRTS : HOST_COM_CRTS, +0); +} + +GLOBAL int AdapterReadyForCharacter(int adapter) +{ + BOOL AdapterReady = FALSE; + + /*......................................... Are RX interrupts enabled */ + + if(adapter_state[adapter].line_status_reg.bits.data_ready == 0 && + adapter_state[adapter].data_available_interrupt_state == OFF) + { + AdapterReady = TRUE; + } + + return(AdapterReady); +} + +// This function returns the ICA controller and line used to generate +// interrupts on a adapter. This information is used to register a EOI +// hook. + + +GLOBAL void com_int_data(int adapter,int *controller, int *line) +{ + struct ADAPTER_STATE *asp = &adapter_state[adapter]; + + *controller = 0; // Controller ints raised on + *line = (int) asp->hw_interrupt_priority; // Line ints raised on +} + +#endif /* NTVDM */ + +#ifdef PS_FLUSHING +/*( +=========================== com_psflush_change ================================ +PURPOSE: + Handle change of PostScript flush configuration option for a serial + port. +INPUT: + hostID - Configuration item I.D. + apply - TRUE if change to be applied +OUTPUT: + None +ALGORITHM: + If PostScript flushing is being enabled then; + set the PostScript flush enable flag for the port; + disable autoflush for the port; + else; + reset the PostScript flush enable flag for the port; + enable autoflush for the port; +=============================================================================== +)*/ + +GLOBAL void com_psflush_change IFN2( + IU8, hostID, + IBOOL, apply +) { + IS32 adapter = hostID - C_COM1_PSFLUSH; + + assert1(adapter < NUM_SERIAL_PORTS,"Bad hostID %d",hostID); + + if ( apply ) + if ( psFlushEnabled[adapter] = (IBOOL)config_inquire(hostID,NULL) ) + host_com_disable_autoflush(adapter); + else + host_com_enable_autoflush(adapter); +} +#endif /* PS_FLUSHING */ + + + +/********************************************************/ +/* Com debugging shell - Ade Brownlow / Ian Wellock + * NB: This stuff only works for COM1. It is called from yoda using 'cd' + * - comdebug - from the yoda command line.... + */ +#ifndef PROD +#define YODA_LOOP 2 +#define RX_BYTE 1 +#define TX_BYTE 2 +int srxcount = 0, stxcount = 0; +int com_save_rx = 0, com_save_tx = 0; +unsigned char *rxtx_buff = NULL; + +int com_debug_help (); +void psaved(); + +static char *port_debugs[] = +{ + "txrx","ier","iir", "lcr", "mcr","lsr", "msr" +}; + +static int do_inbs = 0; /* start with inb reporting OFF */ + +static unsigned char *locate_register () +{ + int i; + char ref[10]; + struct ADAPTER_STATE *asp = &adapter_state[COM1]; + + printf ("COM.. reg? "); + scanf ("%s", ref); + for (i=0; i<7; i++) + { + if (!strcmp (ref, port_debugs[i])) + { + switch (i) + { + case 0: + return (&asp->tx_buffer); + case 1: + return (&(asp->int_enable_reg.all)); + case 2: + return (&(asp->int_id_reg.all)); + case 3: + return (&(asp->line_control_reg.all)); + case 4: + return (&(asp->modem_control_reg.all)); + case 5: + return (&(asp->line_status_reg.all)); + case 6: + return (&(asp->modem_status_reg.all)); + default: + return (NULL); + } + } + } + return (NULL); +} + +int com_debug_stat () +{ + printf ("DEBUG STATUS...\n"); + printf ("INB mismatch reporting .... %s\n", do_inbs ? "ON" : "OFF"); + printf ("INB/OUTB tracing .......... %s\n", com_trace_fd ? "ON" : "OFF"); + return (0); +} + +int com_reg_dump () +{ + /* dump com1 emulations registers */ + struct ADAPTER_STATE *asp = &adapter_state[COM1]; + + printf ("TX %2x RX %2x IER %2x IIR %2x LCR %2x MCR %2x LSR %2x MSR %2x \n", + (asp->tx_buffer), (asp->rx_buffer), (asp->int_enable_reg.all), + (asp->int_id_reg.all), (asp->line_control_reg.all), + (asp->modem_control_reg.all), (asp->line_status_reg.all), + (asp->modem_status_reg.all)); + printf (" break_state %d\n loopback_state %d\n", + asp->break_state, asp->loopback_state); + printf(" dtr_state %d\n rts_state %d\n", + asp->dtr_state, asp->rts_state); + printf(" out1_state %d\n out2_state %d\n", + asp->out1_state, asp->out2_state); + printf(" receiver_line_status_interrupt_state %d\n", + asp->receiver_line_status_interrupt_state); + printf(" data_available_interrupt_state %d\n", + asp->data_available_interrupt_state); + printf(" tx_holding_register_empty_interrupt_state %d\n", + asp->tx_holding_register_empty_interrupt_state); + printf(" modem_status_interrupt_state %d\n", + asp->modem_status_interrupt_state); + printf(" hw_interrupt_priority %d\n", + asp->hw_interrupt_priority); + printf(" com_baud_delay %d\n had_first_read %d\n", + TX_delay[asp->com_baud_ind], asp->had_first_read); + return (0); +} + +int com_s_reg () +{ + unsigned char *creg; + int val1; + + if (creg = locate_register()) + { + printf ("SET to > "); + scanf ("%x", &val1); + + *creg = (unsigned char)val1; + } + else + printf ("Unknown reg\n"); + return (0); +} + +int com_p_reg () +{ + unsigned char *creg; + + if (creg = locate_register()) + printf ("%x\n", *creg); + else + printf ("Unknown reg\n"); + return (0); +} + +int conv_com_reg (com_reg) +char *com_reg; +{ + int loop; + + for (loop = 0; loop < 7; loop++) + if (!strcmp (port_debugs[loop], com_reg)) + return (loop+RS232_COM1_PORT_START); + return (0); +} + +int com_do_inb () +{ + char com_reg[10]; + half_word val; + io_addr port; + + printf ("Port > "); + scanf ("%s", com_reg); + if (!(port = conv_com_reg (com_reg))) + { + printf ("funny port %s\n", com_reg); + return (0); + } + com_inb (port, &val); + printf ("%s = %x\n", val); + return (0); +} + +int com_do_outb () +{ + char com_reg[10]; + half_word val; + io_addr port; + + printf ("Port > "); + scanf ("%s", com_reg); + if (!(port = conv_com_reg (com_reg))) + { + printf ("funny port %s\n", com_reg); + return (0); + } + printf ("Value >> "); + scanf ("%x", &val); + com_outb (port, val); + return (0); +} + +int com_run_file () +{ + char filename[100], com_reg[10], dir; + int val, line; + half_word spare_val; + io_addr port; + FILE *fd = NULL; + + printf ("FILE > "); + scanf ("%s", filename); + if (!(fd = fopen (filename, "r"))) + { + printf ("Cannot open %s\n", filename); + return (0); + } + line = 1; + + /* dump file is of format : %c-%x-%s + * 1 char I or O denotes inb or outb + * - + * Hex value the value expected in case of inb or value to write in + * case of outb. + * - + * string representing the register port to use.. + * + * A typical entry would be + * O-txrx-60 - which translates to outb(START_OF_COM1+txrx, 0x60); + * + * Files for this feature can be generated using the comdebug 'open' command. + */ + while (fscanf (fd, "%c-%x-%s", &dir, &val, com_reg) != EOF) + { + if (!(port = conv_com_reg (com_reg))) + { + printf ("funny port %s at line %d\n", com_reg, line); + break; + } + switch (dir) + { + case 'I': + /* inb */ + com_inb (port, &spare_val); + if (spare_val != val && do_inbs) + { + printf ("INB no match at line %d %c-%s-%x val= %x\n", + line, dir, com_reg, val, spare_val); + } + break; + case 'O': + /* outb */ + /* convert com_register to COM1 address com_register */ + com_outb (port, val); + printf ("outb (%s, %x)\n", com_reg, val); + break; + default: + /* crap */ + break; + } + line ++; + } + fclose (fd); + return (0); +} + +int com_debug_quit () +{ + printf ("Returning to YODA\n"); + return (1); +} + +int com_o_debug_file () +{ + char filename[100]; + printf ("FILE > "); + scanf ("%s", filename); + if (!(com_trace_fd = fopen (filename, "w"))) + { + printf ("Cannot open %s\n", filename); + return (0); + } + printf ("Com debug file = '%s'\n", filename); + return (0); +} + +int com_c_debug_file () +{ + if (com_trace_fd) + fclose (com_trace_fd); + com_trace_fd = NULL; + return (0); +} + +int com_forget_inb () +{ + do_inbs = 1- do_inbs; + if (do_inbs) + printf ("INB mismatch reporting ON\n"); + else + printf ("INB mismatch reporting OFF\n"); + return (0); +} + +int com_s_rx() +{ + srxcount = stxcount = 0; + com_save_rx = 1 - com_save_rx; + printf("Save and Dump Received Bytes "); + if (com_save_rx) + printf("ON\n"); + else + printf("OFF\n"); + return(0); +} + +int com_s_tx() +{ + srxcount = stxcount = 0; + com_save_tx = 1 - com_save_tx; + printf("Save and Dump Transmitted Bytes "); + if (com_save_tx) + printf("ON\n"); + else + printf("OFF\n"); + return(0); +} + +int com_p_rx() +{ + printf("There are %d received bytes, out of %d bytes saved.\n", + srxcount, srxcount + stxcount); + psaved(RX_BYTE, stdout); + return(0); +} + +int com_p_tx() +{ + printf("There are %d transmitted bytes, out of %d bytes saved.\n", + stxcount, srxcount + stxcount); + psaved(TX_BYTE, stdout); + return(0); +} + +int com_p_all() +{ + printf("There are %d bytes saved.\n", srxcount + stxcount); + psaved(RX_BYTE + TX_BYTE, stdout); + return(0); +} + +int com_d_all() +{ + int cl_fin = 0; + + if (!com_trace_fd) + { + com_o_debug_file(); + cl_fin = 1; + } + + fprintf(com_trace_fd, "There are %d bytes saved.\n", srxcount + stxcount); + psaved(RX_BYTE + TX_BYTE, com_trace_fd); + + if (cl_fin) + com_c_debug_file(); + return(0); +} + +void psaved(typ, fd) + +int typ; +FILE *fd; +{ + int c, nc = 0; + + for (c = 0; c < srxcount + stxcount; c++) + { + if (rxtx_buff[c * 2] & typ) + { + if (typ == RX_BYTE + TX_BYTE) + if (rxtx_buff[c * 2] & RX_BYTE) + fprintf(fd, "R "); + else + fprintf(fd, "T "); + fprintf(fd, "%2x ",rxtx_buff[c * 2 + 1]); + nc++; + if ((nc % 16) == 0) + fprintf(fd, "\n"); + } + } + fprintf(fd, "\nAll bytes dumped.\n"); +} + +com_save_rxbytes IFN2(int, n, CHAR *, buf) +{ + int tc, bs; + + if (com_save_rx) + { + bs = srxcount + stxcount; + for (tc = 0; tc < n; tc++) + { + rxtx_buff[(tc + bs) * 2] = RX_BYTE; + rxtx_buff[(tc + bs) * 2 + 1] = buf[tc]; + } + srxcount += n; + } +} + +com_save_txbyte IFN1(CHAR, value) +{ + if (com_save_tx) + { + rxtx_buff[(srxcount + stxcount) * 2] = TX_BYTE; + rxtx_buff[(srxcount + stxcount) * 2 + 1] = value; + stxcount++; + } +} + +static struct +{ + char *name; + int (*fn)(); + char *comment; +} comtab[]= +{ + {"q", com_debug_quit, " QUIT comdebug return to YODA"}, + {"h", com_debug_help, " Print this message"}, + {"stat", com_debug_stat, " Print status of comdebug"}, + {"s", com_s_reg, " Set the specified register"}, + {"p", com_p_reg, " Print specified register"}, + {"dump", com_reg_dump, " Print all registers"}, + {"open", com_o_debug_file, " Open a debug file"}, + {"close", com_c_debug_file, " Close current debug file"}, + {"runf", com_run_file, " 'Run' a trace file"}, + {"toginb", com_forget_inb, " Toggle INB mismatch reporting"}, + {"inb", com_do_inb, " Perform INB on port"}, + {"outb", com_do_outb, " Perform OUTB on port"}, + {"srx", com_s_rx, " Save all received bytes"}, + {"stx", com_s_tx, " Save all transmitted bytes"}, + {"prx", com_p_rx, " Print all received bytes"}, + {"ptx", com_p_tx, " Print all transmitted bytes"}, + {"pall", com_p_all, " Print all received/transmitted bytes"}, + {"dall", com_d_all, " Dump all received/transmitted bytes"}, + {"", NULL, ""} +}; + +int com_debug_help () +{ + int i; + printf ("COMDEBUG COMMANDS\n"); + for (i=0; comtab[i].name[0]; i++) + printf ("%s\t%s\n", comtab[i].name, comtab[i].comment); + printf ("recognised registers :\n"); + for (i=0; i<7; i++) + printf ("%s\n", port_debugs[i]); + return (0); +} + +int com_debug() +{ + char com[100]; + int i; + + if (rxtx_buff == NULL) + check_malloc(rxtx_buff, 50000, unsigned char); + + printf ("COM1 debugging stuff...\n"); + while (TRUE) + { + printf ("COM> "); + scanf ("%s", com); + for (i=0; comtab[i].name[0]; i++) + { + if (!strcmp (comtab[i].name, com)) + { + if ((*comtab[i].fn) ()) + return(YODA_LOOP); + break; + } + } + if (comtab[i].name[0]) + continue; + printf ("Unknown command %s\n", com); + } +} +#endif /* !PROD */ +/********************************************************/ diff --git a/private/mvdm/softpc.new/base/comms/makefile b/private/mvdm/softpc.new/base/comms/makefile new file mode 100644 index 000000000..6ee4f43fa --- /dev/null +++ b/private/mvdm/softpc.new/base/comms/makefile @@ -0,0 +1,6 @@ +# +# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source +# file to this component. This file merely indirects to the real make file +# that is shared by all the components of NT OS/2 +# +!INCLUDE $(NTMAKEENV)\makefile.def diff --git a/private/mvdm/softpc.new/base/comms/printer.c b/private/mvdm/softpc.new/base/comms/printer.c new file mode 100644 index 000000000..0ef68ce1d --- /dev/null +++ b/private/mvdm/softpc.new/base/comms/printer.c @@ -0,0 +1,836 @@ +#include "insignia.h" +#include "host_def.h" +#ifdef PRINTER + +/* + * VPC-XT Revision 1.0 + * + * Title: Parallel Printer Port Emulation + * + * Description: Emulates the IBM || Printer card as used in the original + * IBM XT, which is itself a H/W emulation of an Intel 8255. + * + * Author: Henry Nash + * + * Notes: None + * + * Mods: + * + * Allow transition to NOTBUSY in the OUTA state as well as the READY + * state. i.e. at the leading edge of the ACK pulse after just one + * INB (STATUS) rather than two. Our printer port emulation relies on + * these INB's to toggle the ACK line and set NOTBUSY true again. So + * the port could be left in the BUSY condition at the end of an app's + * print job (which can confuse the next print request). NOTE we could + * still have a problem if the PC app bypasses the BIOS and is too lazy + * to do even one INB(STATUS) after the last print byte. + */ + + + +/* for NTVDM port -- williamh + * There are such things called Dongles which many software companies have + * used for copy protection. Each software comes with its dedicated Dongle + * that records necessary indentification inforamtion. It is required + * to plug the device onto the parallel port in order to run the software + * correctly. The device has an outlet which can be connectted to parallel + * port printer so the the user doesn't sacrifice his parallel port when + * the device in plugged on the original connector. + * There are several Dongle vendors and each one of them provides their + * propietary library or driver for the applications to link to. These + * drivers know how to read/WRITE the Dongle to verify a legitmate copy. + * Since it has to maintain compatiblility with standard PC parallel port, + * the devices are designed in a way that it can be programmed without + * disturbing ordinary parallel port operation. To do this, it usually does + * this: + * (1) Turn off strobe. + * (2) output data pattern to data port + * (3) delay a little bit(looping in instructions) and then go to (2) + * until the chunk of data has been sent. NOTE THAT THE STROBE LINE + * IS NEVER "strobe" + * (4). Read status port and by interpreting the line differently, + * the driver decodes any id information it is looking for. + * + * In order to support these devices, we have to do these: + * (1). We can not fake printer status. We have to get the real + * status line states. + * (2). we have to output data to the printer without waiting the data + * to be qualified(strobing). + * (3). We must be smart enough to detect the application is done with + * its Dongle things and wants everything goes back to normal. + * We must adjust ourselves under this circumestances. + * (4). Down level printer driver must provide function that we can call + * to control the port directly. + * (5). Printer h/w interrupt is not allowed to be enabled under this + * circumstance --and how can we make sure of that????? + * + */ + +#ifdef SCCSID +static char SccsID[] = "@(#)printer.c 1.19 11/14/94 Copyright Insignia Solutions Ltd."; +#endif + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_PRINTER.seg" +#endif + + +/* + * O/S include files. + */ +#include +#include TypesH +#include TimeH +#ifdef SYSTEMV +#ifdef STINGER +#include +#endif +#endif + +/* + * SoftPC include files + */ +#include "xt.h" +#include CpuH +#include "sas.h" +#include "ios.h" +#include "bios.h" +#include "printer.h" +#include "error.h" +#include "config.h" +#include "host_lpt.h" +#include "ica.h" +#include "quick_ev.h" + +#include "debug.h" +#ifndef PROD +#include "trace.h" +#endif + + +/* + * ============================================================================ + * Global data + * ============================================================================ + */ + + +/* + * ============================================================================ + * Static data and defines + * ============================================================================ + */ + +#define PRINTER_BIT_MASK 0x3 /* bits decoded from address bus */ +#define CONTROL_REG_MASK 0xE0; /* unused bits drift to HIGH */ +#define STATUS_REG_MASK 0x07; /* unused bits drift to HIGH */ + +#define DATA_OFFSET 0 /* ouput register */ +#define STATUS_OFFSET 1 /* status register */ +#define CONTROL_OFFSET 2 /* control register */ + +#ifdef ERROR +#undef ERROR +#endif + +static half_word output_reg[NUM_PARALLEL_PORTS]; +static half_word control_reg[NUM_PARALLEL_PORTS]; +#define NOTBUSY 0x80 +#define ACK 0x40 +#define PEND 0x20 +#define SELECT 0x10 +#define ERROR 0x08 + +static half_word status_reg[NUM_PARALLEL_PORTS]; +#define IRQ 0x10 +#define SELECT_IN 0x08 +#define INIT_P 0x04 +#define AUTO_FEED 0x02 +#define STROBE 0x01 + +LOCAL IU8 retryErrorCount = 0; /* num status inb before clearing ERROR */ + +static int state[NUM_PARALLEL_PORTS]; /* state control variable */ +/* + * set up arrays of all port addresses + */ +static io_addr port_start[] = {LPT1_PORT_START,LPT2_PORT_START,LPT3_PORT_START}; +static io_addr port_end[] = {LPT1_PORT_END, LPT2_PORT_END, LPT3_PORT_END}; +static int port_no[] = {LPT1_PORT_START & LPT_MASK, LPT2_PORT_START & LPT_MASK, + LPT3_PORT_START & LPT_MASK }; +static half_word lpt_adapter[] = {LPT1_ADAPTER, LPT2_ADAPTER, LPT3_ADAPTER}; +static sys_addr port_address[] = {LPT1_PORT_ADDRESS, LPT2_PORT_ADDRESS, LPT3_PORT_ADDRESS}; +static sys_addr timeout_address[] = {LPT1_TIMEOUT_ADDRESS, LPT2_TIMEOUT_ADDRESS, LPT3_TIMEOUT_ADDRESS}; +static q_ev_handle handle_for_out_event[NUM_PARALLEL_PORTS]; +static q_ev_handle handle_for_outa_event[NUM_PARALLEL_PORTS]; + +#if defined(NTVDM) && defined(MONITOR) +/* sudeepb 24-Jan-1993 for printing performance for x86 */ +sys_addr lp16BitPrtBuf; +sys_addr lp16BitPrtId; +sys_addr lp16BitPrtCount; +sys_addr lp16BitPrtBusy; +#endif + +#define STATE_READY 0 +#define STATE_OUT 1 +#define STATE_OUTA 2 +#if defined(NTVDM) +#define STATE_DATA 3 +#define STATE_DONGLE 4 +#endif + +/* + * State transitions: + * + * +-> STATE_READY + * | | + * | | ........ write char to output_reg, print on low-high strobe + * | V set NOTBUSY to false + * | STATE_OUT + * | | + * | | ........ (read status) set ACK low + * | V + * | STATE_OUTA + * | | + * | | ........ (read status) set ACK high + * +-----+ + * + * Caveat: if the control register interrupt request bit is set, + * we assume that the application isn't interested in getting the + * ACKs and just wants to know when the printer state changes back + * to NOTBUSY. I'm not sure to want extent you can get away with + * this: however, applications using the BIOS printer services + * should be OK. + */ + +#ifdef PS_FLUSHING +LOCAL IBOOL psFlushEnabled[NUM_PARALLEL_PORTS]; /* TRUE if PostScript flushing + is enabled */ +#endif /* PS_FLUSHING */ + + +/* + * ============================================================================ + * Internal functions & macros + * ============================================================================ + */ + +#define set_low(val, bit) val &= ~bit +#define set_high(val, bit) val |= bit +#define low_high(val1, val2, bit) (!(val1 & bit) && (val2 & bit)) +#define high_low(val1, val2, bit) ((val1 & bit) && !(val2 & bit)) +#define toggled(val1, val2, bit) ((val1 & bit) != (val2 & bit)) +#define negate(val, bit) val ^= bit + +/* + * Defines and variables to handle tables stored in 16-bit code for NT + * monitors. + */ +#if defined(NTVDM) && defined(MONITOR) + +static BOOL intel_setup = FALSE; + +static sys_addr status_addr; +static sys_addr control_addr; +static sys_addr state_addr; + +#define get_status(adap) (sas_hw_at_no_check(status_addr+(adap))) +#define set_status(adap,val) (sas_store_no_check(status_addr+(adap),(val))) + +#define get_control(adap) (sas_hw_at_no_check(control_addr+(adap))) +#define set_control(adap,val) (sas_store_no_check(control_addr+(adap),(val))) + +#define get_state(adap) (sas_hw_at_no_check(state_addr+(adap))) +#define set_state(adap,val) (sas_store_no_check(state_addr+(adap),(val))) + +#else /* NTVDM && MONITOR */ + +#define get_status(adap) (status_reg[adapter]) +#define set_status(adap,val) (status_reg[adapter] = (val)) + +#define get_control(adap) (control_reg[adapter]) +#define set_control(adap,val) (control_reg[adapter] = (val)) + +#define get_state(adap) (state[adapter]) +#define set_state(adap,val) (state[adapter] = (val)) + +#endif /* NTVDM && MONITOR */ + +static void printer_inb IPT2(io_addr, port, half_word *, value); +static void printer_outb IPT2(io_addr, port, half_word, value); +static void notbusy_check IPT1(int,adapter); + + +/* + * ============================================================================ + * External functions + * ============================================================================ + */ + +void printer_post IFN1(int,adapter) +{ + /* + * Set up BIOS data area. + */ + sas_storew(port_address[adapter],(word)port_start[adapter]); + sas_store(timeout_address[adapter], (half_word)0x14 ); /* timeout */ +} + +#if defined(NTVDM) && defined(MONITOR) +static void lpr_state_outa_event IFN1(long,adapter) +{ + set_status(adapter, get_status(adapter) | ACK); + set_state(adapter, STATE_READY); +} + +static void lpr_state_out_event IFN1(long,adapter) +{ + set_status(adapter, get_status(adapter) & ~ACK); + set_state(adapter, STATE_OUTA); + handle_for_outa_event[adapter]=add_q_event_t(lpr_state_outa_event,HOST_PRINTER_DELAY,adapter); +} + +#else /* NTVDM && MONITOR */ + +static void lpr_state_outa_event IFN1(long,adapter) +{ + set_high(status_reg[adapter],ACK); + state[adapter]=STATE_READY; +} + +static void lpr_state_out_event IFN1(long,adapter) +{ + set_low(status_reg[adapter], ACK); + state[adapter]=STATE_OUTA; + handle_for_outa_event[adapter]=add_q_event_t(lpr_state_outa_event,HOST_PRINTER_DELAY,adapter); +} +#endif /* NTVDM && MONITOR */ + +static void printer_inb IFN2(io_addr,port, half_word *,value) +{ + int adapter, i; + + note_trace1(PRINTER_VERBOSE,"inb from printer port %#x ",port); + /* + ** Scan the ports to find out which one is used. NB the + ** port must be valid one because we only used io_define_inb() + ** for the valid ports + */ + for(i=0; i < NUM_PARALLEL_PORTS; i++) + if((port & LPT_MASK) == port_no[i]) + break; + adapter = i % NUM_PARALLEL_PORTS; + + port = port & PRINTER_BIT_MASK; /* clear unused bits */ + + switch(port) + { + case DATA_OFFSET: + *value = output_reg[adapter]; + break; + + case STATUS_OFFSET: + switch(get_state(adapter)) + { +#if defined(NTVDM) + case STATE_DONGLE: + /* read directly from the port for Dongle */ + *value = host_read_printer_status_port(adapter); + set_status(adapter, *value); + break; + case STATE_DATA: + +#endif + + case STATE_READY: + notbusy_check(adapter); + *value = get_status(adapter) | STATUS_REG_MASK; + + + /* Clear ERROR as it will be set if we fail on the print. */ + /* Clear after two inbs as DOS seems to require this. */ + if (retryErrorCount > 0) + retryErrorCount--; + else + set_status(adapter, get_status(adapter) | ERROR); + break; + case STATE_OUT: + *value = get_status(adapter) | STATUS_REG_MASK; +#ifndef DELAYED_INTS + delete_q_event(handle_for_out_event[adapter]); + lpr_state_out_event(adapter); +#else + set_low(status_reg[adapter], ACK); + state[adapter] = STATE_OUTA; +#endif /* DELAYED INTS */ + break; + case STATE_OUTA: + notbusy_check(adapter); /* */ + *value = get_status(adapter) | STATUS_REG_MASK; +#ifndef DELAYED_INTS + delete_q_event(handle_for_outa_event[adapter]); + lpr_state_outa_event(adapter); +#else + set_high(status_reg[adapter], ACK); + state[adapter] = STATE_READY; +#endif + break; + default: + note_trace1(PRINTER_VERBOSE, + "", + get_state(adapter)); + break; + } + break; + case CONTROL_OFFSET: + *value = get_control(adapter) | CONTROL_REG_MASK; + negate(*value, STROBE); + negate(*value, AUTO_FEED); + negate(*value, SELECT_IN); + break; + } + note_trace3(PRINTER_VERBOSE, "", + port, *value, get_state(adapter)); + + +} + +static void printer_outb IFN2(io_addr,port, half_word,value) +{ + int adapter, i; + half_word old_control; +#ifdef PC_CONFIG + char variable_text[MAXPATHLEN]; + int softpcerr; + int severity; + + softpcerr = 0; + severity = 0; +#endif + + + note_trace2(PRINTER_VERBOSE,"outb to printer port %#x with value %#x", + port, value); + + /* + ** Scan the ports to find out which one is used. NB the + ** port must be valid one because we only used io_define_inb() + ** for the valid ports + */ + for(i=0; i < NUM_PARALLEL_PORTS; i++) + if((port & LPT_MASK) == port_no[i]) + break; + adapter = i % NUM_PARALLEL_PORTS; + + note_trace3(PRINTER_VERBOSE, "", + port, value, get_state(adapter)); + + port = port & PRINTER_BIT_MASK; /* clear unused bits */ + + switch(get_state(adapter)) + { +#if defined(NTVDM) + case STATE_DONGLE: + if (port == DATA_OFFSET) { + output_reg[adapter] = value; + host_print_byte(adapter, value); + break; + } + // fall through + case STATE_DATA: + if (port == DATA_OFFSET) { + if (host_set_lpt_direct_access(adapter, TRUE)) { + host_print_byte(adapter, output_reg[adapter]); + host_print_byte(adapter, value); + set_state(adapter, STATE_DONGLE); + /* Write char to internal buffer */ + output_reg[adapter] = value; + } + else { + /* unable to open the lpt for direct access, + mark the device busy */ + +#if !defined(MONITOR) + set_low(status_reg[adapter], NOTBUSY); +#else /* NTVDM && !MONITOR */ + set_status(adapter, 0x7F); +#endif + + + } + break; + } + + // fall through +#endif + case STATE_OUT: + case STATE_OUTA: + case STATE_READY: + switch(port) + { + case DATA_OFFSET: +#if defined(NTVDM) + set_state(adapter, STATE_DATA); +#endif + /* Write char to internal buffer */ + output_reg[adapter] = value; + break; + case STATUS_OFFSET: + /* Not possible */ + break; + + case CONTROL_OFFSET: + /* Write control bits */ + old_control = get_control(adapter); /* Save old value to see what's changed */ + set_control(adapter, value); + if (low_high(old_control, value, INIT_P)) +#ifdef PC_CONFIG + /* this was a call to host_print_doc - */ + host_reset_print(&softpcerr, &severity); + if (softpcerr != 0) + host_error(softpcerr, severity, variable_text); +#else + /* this was a call to host_print_doc - */ + host_reset_print(adapter); +#endif + + if (toggled(old_control, value, AUTO_FEED)) + host_print_auto_feed(adapter, + ((value & AUTO_FEED) != 0)); + + if (low_high(old_control, value, STROBE)) + { +#if defined(NTVDM) + if (get_state(adapter) == STATE_DONGLE) { + host_set_lpt_direct_access(adapter, FALSE); + /* pass through to print out the last byte + * which we have sent it out the data port + * while we are in DONGLE state. + */ + + set_state(adapter, STATE_READY); + } +#endif + +#ifdef PS_FLUSHING + /* + * If PostScript flushing is enabled for this + * port then we flush on a Ctrl-D + */ + if ( psFlushEnabled[adapter] && + output_reg[adapter] == 0x04 /* ^D */ ) { + host_print_doc(adapter); + } else { +#endif /* PS_FLUSHING */ + /* + * Send the stored internal buffer to + * the printer + */ + if(host_print_byte(adapter,output_reg[adapter]) == FALSE) + { + set_status(adapter, get_status(adapter) & ~ERROR); /* active Low */ + /* NTVDM had here(?): set_status(adapter, ACK|PEND|SELECT|ERROR); */ + /* two status inbs before we clear ERROR */ + retryErrorCount = 2; + } + else + { + /* clear ERROR condition */ + set_status(adapter, get_status(adapter) | ERROR); +#if defined(NTVDM) && !defined(MONITOR) + set_low(status_reg[adapter], NOTBUSY); +#else /* NTVDM && !MONITOR */ + set_status(adapter, + get_status(adapter) & ~NOTBUSY); +#endif /* NTVDM && !MONITOR */ + set_state(adapter, STATE_OUT); +#ifndef DELAYED_INTS + handle_for_out_event[adapter]=add_q_event_t(lpr_state_out_event,HOST_PRINTER_DELAY,adapter); +#endif /* DELAYED_INTS */ + } +#ifdef PS_FLUSHING + } +#endif /* PS_FLUSHING */ + } + else if (high_low(old_control, value, STROBE) + && get_state(adapter) == STATE_OUT) + { + if (value & IRQ) + { + /* + * Application is using + * interrupts, so we can't + * rely on INBs being + * used to check the + * printer status. + */ + set_state(adapter, STATE_READY); + notbusy_check(adapter); + } + } + +#if defined(NTVDM) + else if (low_high(old_control, value, IRQ) && + get_state(adapter) == STATE_DONGLE) { + + host_set_lpt_direct_access(adapter, FALSE); + set_state(adapter, STATE_READY); + } + +#endif + +#ifndef PROD + if (old_control & IRQ) + note_trace1(PRINTER_VERBOSE, "Warning: LPT%d is being interrupt driven\n", + number_for_adapter(adapter)); +#endif + break; + } + break; + default: + note_trace1(PRINTER_VERBOSE, "", + get_state(adapter)); + break; + } +} + +void printer_status_changed IFN1(int,adapter) +{ + note_trace1(PRINTER_VERBOSE, "", + adapter); + + /* check whether the printer has just changed state to NOTBUSY */ + notbusy_check(adapter); +} + +/* + * ============================================================================ + * Internal functions + * ============================================================================ + */ + +static void notbusy_check IFN1(int,adapter) +{ + /* + * This function is used to detect when the printer + * state transition to NOTBUSY occurs. + * + * If the parallel port is being polled, the port + * emulation will stop this transition occurring + * until the application has detected the ACK + * pulse. notbusy_check() is then called each time the + * port status is read using the INB; when the host + * says the printer is HOST_LPT_BUSY, the port status + * returns to the NOTBUSY state. + * + * If the parallel port is interrupt driven, we cannot + * rely on the application using the INB: so we first + * check the host printer status immediately after + * outputting the character. If the host printer isn't + * HOST_LPT_BUSY, then we interrupt immediately; + * otherwise, we rely on the printer_status_changed() + * call to notify us of when HOST_LPT_BUSY is cleared. + */ + + /* allow not busy at leading edge of ack pulse too */ + if ( (get_state(adapter) == STATE_READY || +#if defined(NTVDM) + get_state(adapter) == STATE_DATA || +#endif + get_state(adapter) == STATE_OUTA) + && !(get_status(adapter) & NOTBUSY) + && !(host_lpt_status(adapter) & HOST_LPT_BUSY)) + { +#if defined(NTVDM) && !defined(MONITOR) + set_high(status_reg[adapter], NOTBUSY); +#else /* NTVDM && !MONITOR */ + set_status(adapter, get_status(adapter) | NOTBUSY); +#endif /* NTVDM && !MONITOR */ + +#ifndef PROD + if (io_verbose & PRINTER_VERBOSE) + fprintf(trace_file, "\n", adapter); +#endif + + if (get_control(adapter) & IRQ) + { + ica_hw_interrupt(0, CPU_PRINTER_INT, 1); + } + } +} +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_INIT.seg" +#endif + +/* +** Initialise the printer port required. +*/ +void printer_init IFN1(int,adapter) +{ + io_addr i; + + io_define_inb( lpt_adapter[adapter], printer_inb ); + io_define_outb( lpt_adapter[adapter], printer_outb ); + for(i = port_start[adapter]; i < port_end[adapter]; i++) + io_connect_port(i,lpt_adapter[adapter],IO_READ_WRITE); + +#if defined(NTVDM) && defined(MONITOR) + /* + * If we know the addresses of the 16-bit variables write directly + * to them, otherwise save the value until we do. + */ + if (intel_setup) + { + set_status(adapter, 0xDF); + set_control(adapter, 0xEC); + } + else +#endif /* NTVDM && MONITOR */ + { + control_reg[adapter] = 0xEC; + status_reg[adapter] = 0xDF; + } + output_reg[adapter] = 0xAA; + + /* + * The call to host_print_doc has been removed since it is + * sensible to distinguish between a hard flush (on ctl-alt-del) + * or menu reset and a soft flush under user control or at end + * of PC application. The calls to host_lpt_close() followed + * by host_lpt_open() should already cause a flush to occur, + * so no functionality is lost. The first time printer_init is + * called host_lpt_close() is not called, but this cannot + * matter since host_print_doc() can only be a no-op. + */ + /* host_print_doc(adapter); */ + host_print_auto_feed(adapter, FALSE); + +#if defined(NTVDM) && defined(MONITOR) + if (intel_setup) + set_state(adapter, STATE_READY); + else +#endif /* NTVDM && MONITOR */ + state[adapter] = STATE_READY; + +} /* end of printer_init() */ + +#if defined(NTVDM) && defined(MONITOR) +/* +** Store 16-bit address of status table and fill it with current values. +*/ +#ifdef ANSI +void printer_setup_table(sys_addr table_addr) +#else /* ANSI */ +void printer_setup_table(table_addr) +sys_addr table_addr; +#endif /* ANSI */ +{ + int i; + sys_addr lp16BufSize; + unsigned int cbBuf; + word lptBasePortAddr[NUM_PARALLEL_PORTS]; + + if (!intel_setup) + { + + /* + * Store the addresses of the tables resident in 16-bit code. These + * are: + * status register (NUM_PARALLEL_PORTS bytes) + * state register (NUM_PARALLEL_PORTS bytes) + * control register (NUM_PARALLEL_PORTS bytes) + * host_lpt_status (NUM_PARALLEL_PORTS bytes) + * + * Then transfer any values which have already been set up into the + * variables. This is in case printer_init has been called prior to + * this function. + */ + status_addr = table_addr; + state_addr = table_addr + NUM_PARALLEL_PORTS; + control_addr = table_addr + 2 * NUM_PARALLEL_PORTS; + for (i = 0; i < NUM_PARALLEL_PORTS; i++) + { + set_status(i, status_reg[i]); + set_state(i, state[i]); + set_control(i, control_reg[i]); + lptBasePortAddr[i] = port_start[i]; + } + + /* Let host know where host_lpt_status is stored in 16-bit code. */ + host_printer_setup_table(table_addr, NUM_PARALLEL_PORTS, lptBasePortAddr); +/* sudeepb 24-Jan-1993 for printing performance for x86 */ + lp16BufSize = table_addr + 4 * NUM_PARALLEL_PORTS; + cbBuf = (sas_w_at_no_check(lp16BufSize)); + lp16BitPrtBuf = table_addr + (4 * NUM_PARALLEL_PORTS) + 2; + lp16BitPrtId = lp16BitPrtBuf + cbBuf; + lp16BitPrtCount = lp16BitPrtId + 1; + lp16BitPrtBusy = lp16BitPrtCount + 2; + intel_setup = TRUE; + } +} +#endif /* NTVDM && MONITOR */ + +#endif + +#ifdef NTVDM +void printer_is_being_closed(int adapter) +{ + +#if defined(MONITOR) + set_state(adapter, STATE_READY); +#else + state[adapter] = STATE_READY; + +#endif +} + +#endif + + +#ifdef PS_FLUSHING +/*( +=========================== printer_psflush_change ============================ +PURPOSE: + Handle change of PostScript flush configuration option for a printer + port. +INPUT: + hostID - Configuration item I.D. + apply - TRUE if change to be applied +OUTPUT: + None +ALGORITHM: + If PostScript flushing is being enabled then; + set the PostScript flush enable flag for the port; + disable autoflush for the port; + else; + reset the PostScript flush enable flag for the port; + enable autoflush for the port; +=============================================================================== +)*/ + +GLOBAL void printer_psflush_change IFN2( + IU8, hostID, + IBOOL, apply +) { + IS32 adapter = hostID - C_LPT1_PSFLUSH; + + assert1(adapter < NUM_PARALLEL_PORTS,"Bad hostID %d",hostID); + + if ( apply ) + if ( psFlushEnabled[adapter] = (IBOOL)config_inquire(hostID,NULL) ) + host_lpt_disable_autoflush(adapter); + else + host_lpt_enable_autoflush(adapter); +} +#endif /* PS_FLUSHING */ diff --git a/private/mvdm/softpc.new/base/comms/printer_.c b/private/mvdm/softpc.new/base/comms/printer_.c new file mode 100644 index 000000000..e214b1ca2 --- /dev/null +++ b/private/mvdm/softpc.new/base/comms/printer_.c @@ -0,0 +1,242 @@ + +#include "insignia.h" +#include "host_def.h" +/* + * SoftPC-AT Revision 2.0 + * + * Title : Parallel Printer BIOS functions. + * + * Description : The Bios functions for printing a char, initializing the + * printer and getting the printer status. The low + * level printer emulation is in printer.c. + * + * Author : Henry Nash + * + * Mods: (r3.2) : The system directory /usr/include/sys is not available + * on a Mac running Finder and MPW. Bracket references to + * such include files by "#ifdef macintosh #else + * #endif". + * + * (r3.3) : Implement the real code, inside compile switch. + */ + +#ifdef SCCSID +static char SccsID[]="@(#)printer_io.c 1.11 08/25/93 Copyright Insignia Solutions Ltd."; +#endif + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_BIOS.seg" +#endif + + +/* + * O/S include files. + */ +#ifdef PRINTER +#include + +#include TypesH + +#ifdef SYSTEMV +#include +#endif + +/* + * SoftPC include files + */ +#include "xt.h" +#include CpuH +#include "sas.h" +#include "ios.h" +#include "bios.h" +#include "printer.h" +#include "trace.h" +#include "error.h" +#include "config.h" +#include "host_lpt.h" +#include "idetect.h" + +#if defined(NTVDM) && defined(MONITOR) +void printer_bop_flush (void); +#endif + +#if defined(NTVDM) +void printer_bop_openclose (int); +#endif + +/* + * Set up arrays of addresses in BIOS data area, pointing to LPT ports and timeout values + */ +static sys_addr port_address[] = { + LPT1_PORT_ADDRESS, + LPT2_PORT_ADDRESS, + LPT3_PORT_ADDRESS }; +static sys_addr timeout_address[] = { + LPT1_TIMEOUT_ADDRESS, + LPT2_TIMEOUT_ADDRESS, + LPT3_TIMEOUT_ADDRESS }; + +#endif /* PRINTER */ + +#if defined(NTVDM) && defined(MONITOR) +void printer_bop_flush (void); +#endif +/* + * The printer bios consists of three functions: + * + * AH == 0 print char in AL + * AH == 1 initialize the printer + * AH == 2 get printer status + * + * The bios only supports programmed IO operations to the printer, although + * the printer adaptor does support interrupts if Bit 4 is set in the control + * register. + */ + +void printer_io() +{ +#ifdef PRINTER + + half_word time_out, status; + word printer_io_address, printer_io_reg, printer_status_reg, printer_control_reg; + boolean printer_busy = TRUE; + unsigned long time_count; + int adapter; + +#ifdef NTVDM + int bopsubfunction = getSI(); + + switch (bopsubfunction) { +#ifdef MONITOR + case 0: + /* this is the bop to flush 16bit printer buffer */ + printer_bop_flush (); + return; +#endif + + case 1: + case 2: + /* this is the bop to track a DOS open/close on LPTn */ + printer_bop_openclose (bopsubfunction); + return; + } +#endif + + setIF(1); + adapter = getDX() % NUM_PARALLEL_PORTS; + sas_loadw(port_address[adapter], &printer_io_address); + printer_io_reg = printer_io_address; + printer_status_reg = printer_io_address + 1; + printer_control_reg = printer_io_address + 2; + + sas_load(timeout_address[adapter], &time_out); + time_count = time_out * 0xFFFF; + + if (printer_io_address != 0) + { + IDLE_comlpt (); + + switch(getAH()) + { + case 0: + /* Check the port status for busy before sending the character*/ + while(printer_busy && time_count > 0) + { + /* The host_lpt_status() should check for status changes */ + /* possibly by calling AsyncEventManager() if it's using */ + /* XON /XOFF flow control. */ + inb(printer_status_reg, &status); + if (status & 0x80) + printer_busy = FALSE; + else + time_count--; + } + + if (printer_busy) + { + status &= 0xF8; /* clear bottom unused bits */ + status |= 1; /* set error flag */ + } + else + { + /* Only send the character if the port isn't still busy */ + outb(printer_io_reg, getAL()); + outb(printer_control_reg, 0x0D); /* strobe low-high */ + outb(printer_control_reg, 0x0C); /* strobe high-low */ + inb(printer_status_reg, &status); + status &= 0xF8; /* clear unused bits */ + } + + status ^= 0x48; /* flip the odd bit */ + setAH(status); + break; + + case 1: outb(printer_control_reg, 0x08); /* set init line low */ + outb(printer_control_reg, 0x0C); /* set init line high */ + inb(printer_status_reg, &status); + status &= 0xF8; /* clear unused bits */ + status ^= 0x48; /* flip the odd bit */ + setAH(status); + break; + + case 2: inb(printer_status_reg, &status); + status &= 0xF8; /* clear unused bits */ + status ^= 0x48; /* flip the odd bit */ + setAH(status); + break; + + default: + break; + } + } +#endif +} + +#if defined(NTVDM) && defined(MONITOR) +/* for printing performance on x86 */ + +extern sys_addr lp16BitPrtId; +extern boolean host_print_buffer(int); +extern void host_lpt_dos_open(int); +extern void host_lpt_dos_close(int); + +void printer_bop_flush(void) +{ +#ifdef PRINTER + int adapter; + + adapter = sas_hw_at_no_check(lp16BitPrtId); + + if (host_print_buffer (adapter) == FALSE) + setAH(0x08); /* IO error */ + else + setAH(0x90); /* Success */ + return; + +#endif +} +#endif + +#if defined(NTVDM) +void printer_bop_openclose(int func) +{ +#ifdef PRINTER + int adapter; + + adapter = getDX() % NUM_PARALLEL_PORTS; + + /* func must be 1 or 2 (open,close) */ + if (func == 1) + host_lpt_dos_open(adapter); + else + host_lpt_dos_close(adapter); + return; + +#endif +} +#endif diff --git a/private/mvdm/softpc.new/base/comms/prt_scrn.c b/private/mvdm/softpc.new/base/comms/prt_scrn.c new file mode 100644 index 000000000..0cad48fee --- /dev/null +++ b/private/mvdm/softpc.new/base/comms/prt_scrn.c @@ -0,0 +1,7 @@ +/* + * @(#)prt_screen.c 1.8 06/28/95 + * + * This file has been deleted, its functionality has been replaced by + * a pure Intel implementation in bios4.rom + */ + diff --git a/private/mvdm/softpc.new/base/comms/rs232_io.c b/private/mvdm/softpc.new/base/comms/rs232_io.c new file mode 100644 index 000000000..489c2e278 --- /dev/null +++ b/private/mvdm/softpc.new/base/comms/rs232_io.c @@ -0,0 +1,294 @@ +#include "insignia.h" +#include "host_def.h" +/* + * SoftPC Revision 3.0 + * + * Title : rs232_io.c + * + * Description : RS232 Asynchronous Adaptor BIOS functions. + * + * Notes : None + * + */ + +#ifdef SCCSID +static char SccsID[]="@(#)rs232_io.c 1.7 08/03/93 Copyright Insignia Solutions Ltd."; +#endif + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_BIOS.seg" +#endif + + +/* + * O/S include files. + */ +#include +#include TypesH + +/* + * SoftPC include files + */ +#include "xt.h" +#include CpuH +#include "sas.h" +#include "ios.h" +#include "bios.h" +#include "trace.h" +#include "rs232.h" +#include "idetect.h" + +static word divisors[] = { 1047,768, 384, 192, 96, 48, 24, 12, 6 }; + +/* workaround for IP32 and Tek43xx compiler bug follows: */ +#if defined(IP32) || defined(TK43) || defined(macintosh) +static int port; +#else +static io_addr port; +#endif + +static half_word value; + + +static void return_status() +{ + inb(port + (io_addr) RS232_LSR, &value); + setAH(value); + inb(port + (io_addr) RS232_MSR, &value); + setAL(value); +} + + +void rs232_io() +{ +#ifdef BIT_ORDER2 + union { + half_word all; + struct { + HALF_WORD_BIT_FIELD word_length:2; + HALF_WORD_BIT_FIELD stop_bit:1; + HALF_WORD_BIT_FIELD parity:2; + HALF_WORD_BIT_FIELD baud_rate:3; + } bit; + } parameters; +#endif +#ifdef BIT_ORDER1 + union { + half_word all; + struct { + HALF_WORD_BIT_FIELD baud_rate:3; + HALF_WORD_BIT_FIELD parity:2; + HALF_WORD_BIT_FIELD stop_bit:1; + HALF_WORD_BIT_FIELD word_length:2; + } bit; + } parameters; +#endif + + DIVISOR_LATCH divisor_latch; + int j; + half_word timeout; + sys_addr timeout_location; + + /* clear com/lpt idle flag */ + IDLE_comlpt (); + + setIF(1); + + /* + * Which adapter? + */ + switch (getDX ()) + { + case 0: + port = RS232_COM1_PORT_START; + timeout_location = RS232_COM1_TIMEOUT; + break; + case 1: + port = RS232_COM2_PORT_START; + timeout_location = RS232_COM2_TIMEOUT; + break; + case 2: + port = RS232_COM3_PORT_START; + timeout_location = RS232_COM3_TIMEOUT; + break; + case 3: + port = RS232_COM4_PORT_START; + timeout_location = RS232_COM4_TIMEOUT; + break; + default: + break; + } + + /* + * Determine function + */ + switch (getAH ()) + { + case 0: + /* + * Initialise the communication port + */ + value = 0x80; /* set DLAB */ + outb(port + (io_addr) RS232_LCR, value); + /* + * Set baud rate + */ + parameters.all = getAL(); + divisor_latch.all = divisors[parameters.bit.baud_rate]; + outb(port + (io_addr) RS232_IER, divisor_latch.byte.MSByte); + outb(port + (io_addr) RS232_TX_RX, divisor_latch.byte.LSByte); + /* + * Set word length, stop bits and parity + */ + parameters.bit.baud_rate = 0; + outb(port + (io_addr) RS232_LCR, parameters.all); + /* + * Disable interrupts + */ + value = 0; + outb(port + (io_addr) RS232_IER, value); + return_status(); + break; + + case 1: + /* + * Send char over the comms line + */ + + /* + * Set DTR and RTS + */ + outb(port + (io_addr) RS232_MCR, 3); + /* + * Real BIOS checks CTS and DSR - we know DSR ok. + * Real BIOS check THRE - we know it's ok. + * We only check CTS - this is supported on a few ports, eg. Macintosh. + */ + /* + * Wait for CTS to go high, or timeout + */ + sas_load(timeout_location, &timeout); + for ( j = 0; j < timeout; j++) + { + inb(port + (io_addr) RS232_MSR, &value); + if(value & 0x10)break; /* CTS High, all is well */ + } + if(j < timeout) + { + outb(port + (io_addr) RS232_TX_RX, getAL()); /* Send byte */ + inb(port + (io_addr) RS232_LSR, &value); + setAH(value); /* Return Line Status Reg in AH */ + } + else + { + setAH(value | 0x80); /* Indicate time out */ + } + break; + + case 2: + /* + * Receive char over the comms line + */ + /* + * Set DTR + */ + value = 1; + outb(port + (io_addr) RS232_MCR, value); + /* + * Real BIOS checks DSR - we know it's ok. + */ + /* + * Wait for data to appear, or timeout(just an empirical guess) + */ + + sas_load(timeout_location, &timeout); + for ( j = 0; j < timeout; j++) + { + inb(port + (io_addr) RS232_LSR, &value); + if ( (value & 1) == 1 ) + { + /* + * Data ready go read it + */ + value &= 0x1e; /* keep error bits only */ + setAH(value); + + inb(port + (io_addr) RS232_TX_RX, &value); + setAL(value); + return; + } + } + + /* + * Set timeout + */ + value |= 0x80; + setAH(value); + break; + + case 3: + /* + * Return the communication port status + */ + return_status(); + break; + case 4: + /* + * EXTENDED (PS/2) Initialise the communication port + */ + value = 0x80; /* set DLAB */ + outb(port + (io_addr) RS232_LCR, value); + parameters.bit.word_length = getCH(); + parameters.bit.stop_bit = getBL(); + parameters.bit.parity = getBH(); + parameters.bit.baud_rate = getCL(); + + /* + Set baud rate + */ + divisor_latch.all = divisors[parameters.bit.baud_rate]; + outb(port + (io_addr) RS232_IER, divisor_latch.byte.MSByte); + outb(port + (io_addr) RS232_TX_RX, divisor_latch.byte.LSByte); + /* + * Set word length, stop bits and parity + */ + parameters.bit.baud_rate = 0; + outb(port + (io_addr) RS232_LCR, parameters.all); + /* + * Disable interrupts + */ + value = 0; + outb(port + (io_addr) RS232_IER, value); + return_status(); + break; + + case 5: /* EXTENDED Comms Port Control */ + switch( getAL() ) + { + case 0: /* Read modem control register */ + inb( port + (io_addr) RS232_MCR, &value); + setBL(value); + break; + case 1: /* Write modem control register */ + outb( port + (io_addr) RS232_MCR, getBL()); + break; + } + /* + Return the communication port status + */ + return_status(); + break; + default: + /* + ** Yes both XT and AT BIOS's really do this. + */ + setAH( getAH()-3 ); + break; + } +} + diff --git a/private/mvdm/softpc.new/base/comms/sources b/private/mvdm/softpc.new/base/comms/sources new file mode 100644 index 000000000..c4e15aeac --- /dev/null +++ b/private/mvdm/softpc.new/base/comms/sources @@ -0,0 +1,62 @@ +!IF 0 + +Copyright (c) 1989 Microsoft Corporation + +Module Name: + + sources. + +Abstract: + + This file specifies the target component being built and the list of + sources files needed to build that component. Also specifies optional + compiler switches and libraries that are unique for the component being + built. + + +Author: + + Steve Wood (stevewo) 12-Apr-1990 + +NOTE: Commented description of this file is in \nt\bak\bin\sources.tpl + +!ENDIF + + +MAJORCOMP=spcbase +MINORCOMP=comms + +TARGETNAME=comms + +TARGETPATH=obj + + +NTPROFILEINPUT=yes + +# Pick one of the following and delete the others +TARGETTYPE=LIBRARY + + +TARGETLIBS= + +SOFTPC_TREE=$(BASEDIR)\private\mvdm\softpc.new + +INCLUDES=$(SOFTPC_TREE)\host\inc;$(SOFTPC_TREE)\base\inc;$(BASEDIR)\private\inc + +!IF $(ALPHA) +GPSIZE=0 +!ELSE +GPSIZE=0 +!ENDIF + + + +SOURCES=com.c \ + printer.c \ + printer_.c \ + prt_scrn.c \ + rs232_io.c + +!INCLUDE $(SOFTPC_TREE)\obj.vdm\CDEFINE.INC + +UMTYPE=console diff --git a/private/mvdm/softpc.new/base/cpu/src/evid/ev_glue.c b/private/mvdm/softpc.new/base/cpu/src/evid/ev_glue.c new file mode 100644 index 000000000..b84b7b61a --- /dev/null +++ b/private/mvdm/softpc.new/base/cpu/src/evid/ev_glue.c @@ -0,0 +1,806 @@ +/*[ +************************************************************************* + + Name: ev_glue.c + Author: Simon Frost + Created: Janury 1994 + Derived from: Original + Sccs ID: @(#)ev_glue.c 1.16 10/21/94 + Purpose: Provides glue routines for C-E-vid functions + and the Jcode calling conventions. + + (c)Copyright Insignia Solutions Ltd., 1994. All rights reserved. + +************************************************************************* +]*/ + +#include "insignia.h" +#include "host_def.h" + +#ifdef CCPU +#include "gmi.h" +#endif + +#include "cpu_vid.h" +#include "video.h" +#include "egacpu.h" /* for Vglob fn defns */ +#include "ga_mark.h" /* for mark fn pointers struct defn */ +#include "evidfunc.h" /* generated by build process */ +#include "gdpvar.h" /* generated by build process */ + +#undef FORWARDS /* all these redefined in EDL code */ +#undef BACKWARDS +#undef UNCHAINED +#include "Evid_c.h" /* generated from Evid.edl */ +#include "j_c_lang.h" /* jcode to ccode register definition header */ + +EVID_WRT_POINTERS c_ev_write_ptr; +EVID_READ_POINTERS c_ev_read_ptr; + +/* defines in j_c_lang.h + *extern IUH jccc_parm1, jccc_parm2, jccc_parm3, jccc_parm4, + * jccc_parm5, jccc_gdp; + */ +extern IHP Gdp; + +extern IU32 gvi_pc_low_regen; + +#ifdef CCPU +IUH ega_gc_outb_mask; + +IHP Gdp; +#endif + +#ifdef C_VID +IHPE modeLookup; /* CEvid extern */ +IHPE EvidPortFuncs; /* CEvid extern */ +IHPE AdapCOutb; /* CEvid extern */ + +IHPE EvidWriteFuncs, EvidReadFuncs, EvidMarkFuncs; /* CEvid refs */ + + +/* let the c jcode know the addresses so it can lea them */ +/* NOTE These things are not accessed the jcode version of the code + * has been substituted with a c version + * LEAVE in so as not to get unresolved references + */ +IHPE j_modeLookup = (IHPE) &modeLookup ; +IHPE j_EvidPortFuncs = (IHPE) &EvidPortFuncs ; +IHPE j_AdapCOutb = (IHPE) &AdapCOutb; +IHPE j_EvidWriteFuncs = (IHPE) &EvidWriteFuncs; +IHPE j_EvidReadFuncs = (IHPE) &EvidReadFuncs; +IHPE j_EvidMarkFuncs = (IHPE) &EvidMarkFuncs; +/* Gdp is referenced */ +IHP j_Gdp; /* = Gdp ; SPECIAL CASE Gdp is the correct address see below for init */ +/*( +=========================== CrulesRuntimeError ======================= + +PURPOSE: resolve c-rules requirment to have a runtime error routine + +INPUT: message string. + +OUTPUT: To be Decided . +==================================================================== +)*/ +GLOBAL void +CrulesRuntimeError IFN1( char * , message ) +{ + printf("cevid runtime error: %s\r\n", message); +} + +/*( +=========================== write_byte_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call byte write function pointer + +INPUT: Write offset & value to write + +OUTPUT: None. + +==================================================================== +)*/ +GLOBAL void +write_byte_ev_glue IFN2(IU32, eaOff, IU8, eaVal) +{ + jccc_parm1 = (IUH)eaOff - gvi_pc_low_regen; + jccc_parm2 = (IUH)eaVal; + jccc_gdp = (IUH)Gdp; + + (*c_ev_write_ptr.b_write)(eaOff, eaVal); +} + +/*( +=========================== write_word_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call word write function pointer + +INPUT: Write offset & value to write + +OUTPUT: None. + +==================================================================== +)*/ +GLOBAL void +write_word_ev_glue IFN2(IU32, eaOff, IU16, eaVal) +{ + jccc_parm1 = (IUH)eaOff - gvi_pc_low_regen; + jccc_parm2 = (IUH)eaVal; + jccc_gdp = (IUH)Gdp; + + (*c_ev_write_ptr.w_write)(eaOff, eaVal); +} + +/*( +=========================== write_dword_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call dword write function pointer + +INPUT: Write offset & value to write + +OUTPUT: None. + +==================================================================== +)*/ +GLOBAL void +write_dword_ev_glue IFN2(IU32, eaOff, IU32, eaVal) +{ + jccc_parm1 = (IUH)eaOff - gvi_pc_low_regen; + jccc_parm2 = (IUH)eaVal; + jccc_gdp = (IUH)Gdp; + + (*c_ev_write_ptr.d_write)(eaOff, eaVal); +} + +/*( +=========================== fill_byte_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call byte fill function pointer + +INPUT: Write offset, value to write & fill count + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +fill_byte_ev_glue IFN3(IU32, eaOff, IU8, eaVal, IU32, count) +{ + jccc_parm1 = (IUH)eaOff - gvi_pc_low_regen; + jccc_parm2 = (IUH)eaVal; + jccc_parm3 = (IUH)count; + jccc_gdp = (IUH)Gdp; + + (*c_ev_write_ptr.b_fill)(eaOff, eaVal, count); +} + +/*( +=========================== fill_word_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call word fill function pointer + +INPUT: Write offset, value to write & fill count + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +fill_word_ev_glue IFN3(IU32, eaOff, IU16, eaVal, IU32, count) +{ + jccc_parm1 = (IUH)eaOff - gvi_pc_low_regen; + jccc_parm2 = (IUH)eaVal; + jccc_parm3 = (IUH)count; + jccc_gdp = (IUH)Gdp; + + (*c_ev_write_ptr.w_fill)(eaOff, eaVal, count); +} + +/*( +=========================== fill_dword_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call dword fill function pointer + +INPUT: Write offset, value to write & fill count + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +fill_dword_ev_glue IFN3(IU32, eaOff, IU32, eaVal, IU32, count) +{ + jccc_parm1 = (IUH)eaOff - gvi_pc_low_regen; + jccc_parm2 = (IUH)eaVal; + jccc_parm3 = (IUH)count; + jccc_gdp = (IUH)Gdp; + + (*c_ev_write_ptr.d_fill)(eaOff, eaVal, count); +} + +/*( +=========================== move_byte_fwd_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call byte fwd move function pointer + +INPUT: Write dest offset, src offset, move count & src type indicator + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +move_byte_fwd_ev_glue IFN4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM) +{ + jccc_parm1 = (IUH)eaOff - gvi_pc_low_regen; + jccc_parm2 = (IUH)fromOff; + if (!srcInRAM) + jccc_parm2 -= gvi_pc_low_regen; + jccc_parm3 = (IUH)count; + jccc_parm4 = (IUH)srcInRAM; + jccc_gdp = (IUH)Gdp; + + (*c_ev_write_ptr.b_fwd_move)(eaOff, fromOff, count, srcInRAM); +} + +/*( +=========================== move_byte_bwd_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call byte bwd move function pointer + +INPUT: Write dest offset, src offset, move count & src type indicator + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +move_byte_bwd_ev_glue IFN4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM) +{ + jccc_parm1 = (IUH)eaOff - gvi_pc_low_regen; + jccc_parm2 = (IUH)fromOff; + if (!srcInRAM) + jccc_parm2 -= gvi_pc_low_regen; + jccc_parm3 = (IUH)count; + jccc_parm4 = (IUH)srcInRAM; + jccc_gdp = (IUH)Gdp; + + (*c_ev_write_ptr.b_bwd_move)(eaOff, fromOff, count, srcInRAM); +} + +/*( +=========================== move_word_fwd_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call word fwd move function pointer + +INPUT: Write dest offset, src offset, move count & src type indicator + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +move_word_fwd_ev_glue IFN4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM) +{ + jccc_parm1 = (IUH)eaOff - gvi_pc_low_regen; + jccc_parm2 = (IUH)fromOff; + if (!srcInRAM) + jccc_parm2 -= gvi_pc_low_regen; + jccc_parm3 = (IUH)count; + jccc_parm4 = (IUH)srcInRAM; + jccc_gdp = (IUH)Gdp; + + (*c_ev_write_ptr.w_fwd_move)(eaOff, fromOff, count, srcInRAM); +} + +/*( +=========================== move_word_bwd_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call word bwd move function pointer + +INPUT: Write dest offset, src offset, move count & src type indicator + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +move_word_bwd_ev_glue IFN4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM) +{ + jccc_parm1 = (IUH)eaOff - gvi_pc_low_regen; + jccc_parm2 = (IUH)fromOff; + if (!srcInRAM) + jccc_parm2 -= gvi_pc_low_regen; + jccc_parm3 = (IUH)count; + jccc_parm4 = (IUH)srcInRAM; + jccc_gdp = (IUH)Gdp; + + (*c_ev_write_ptr.w_bwd_move)(eaOff, fromOff, count, srcInRAM); +} + +/*( +=========================== move_dword_fwd_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call dword fwd move function pointer + +INPUT: Write dest offset, src offset, move count & src type indicator + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +move_dword_fwd_ev_glue IFN4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM) +{ + jccc_parm1 = (IUH)eaOff - gvi_pc_low_regen; + jccc_parm2 = (IUH)fromOff; + if (!srcInRAM) + jccc_parm2 -= gvi_pc_low_regen; + jccc_parm3 = (IUH)count; + jccc_parm4 = (IUH)srcInRAM; + jccc_gdp = (IUH)Gdp; + + (*c_ev_write_ptr.d_fwd_move)(eaOff, fromOff, count, srcInRAM); +} + +/*( +=========================== move_dword_bwd_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call dword bwd move function pointer + +INPUT: Write dest offset, src offset, move count & src type indicator + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +move_dword_bwd_ev_glue IFN4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM) +{ + jccc_parm1 = (IUH)eaOff - gvi_pc_low_regen; + jccc_parm2 = (IUH)fromOff; + if (!srcInRAM) + jccc_parm2 -= gvi_pc_low_regen; + jccc_parm3 = (IUH)count; + jccc_parm4 = (IUH)srcInRAM; + jccc_gdp = (IUH)Gdp; + + (*c_ev_write_ptr.d_bwd_move)(eaOff, fromOff, count, srcInRAM); +} + +/*( +=========================== read_byte_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call read byte function pointer + +INPUT: read offset in planes + +OUTPUT: value read + +==================================================================== +*/ +GLOBAL IU32 +read_byte_ev_glue IFN1(IU32, eaOff) +{ + jccc_parm2 = (IUH)eaOff - gvi_pc_low_regen; + jccc_gdp = (IUH)Gdp; + + (*c_ev_read_ptr.b_read)(eaOff); + + return((IU32)jccc_parm1); +} + +/*( +=========================== read_word_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call read word function pointer + +INPUT: read offset in planes + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL IU32 +read_word_ev_glue IFN1(IU32, eaOff) +{ + jccc_parm2 = (IUH)eaOff - gvi_pc_low_regen; + jccc_gdp = (IUH)Gdp; + + (*c_ev_read_ptr.w_read)(eaOff); + + return((IU32)jccc_parm1); +} + +/*( +=========================== read_dword_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call read dword function pointer + +INPUT: read offset in planes + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL IU32 +read_dword_ev_glue IFN1(IU32, eaOff) +{ + jccc_parm2 = (IUH)eaOff - gvi_pc_low_regen; + jccc_gdp = (IUH)Gdp; + + (*c_ev_read_ptr.d_read)(eaOff); + + return((IU32)jccc_parm1); +} + +/*( +=========================== read_str_fwd_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call read string fwd function pointer + +INPUT: destination pointer, read offset in planes, number of bytes to read. + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +read_str_fwd_ev_glue IFN3(IU8 *, dest, IU32, eaOff, IU32, count) +{ + jccc_parm1 = (IUH)dest; + jccc_parm2 = (IUH)eaOff - gvi_pc_low_regen; + jccc_parm3 = (IUH)count; + jccc_parm4 = (IUH)1; /* destination in RAM */ + jccc_gdp = (IUH)Gdp; + + (*c_ev_read_ptr.str_fwd_read)(dest, eaOff, count); +} + +/*( +=========================== read_str_bwd_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call read string bwd function pointer + +INPUT: destination pointer, read offset in planes, number of bytes to read. + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +read_str_bwd_ev_glue IFN3(IU8 *, dest, IU32, eaOff, IU32, count) +{ + jccc_parm1 = (IUH)dest; + jccc_parm2 = (IUH)eaOff - gvi_pc_low_regen; + jccc_parm3 = (IUH)count; + jccc_parm4 = (IUH)1; /* destination in RAM */ + jccc_gdp = (IUH)Gdp; + + (*c_ev_read_ptr.str_bwd_read)(dest, eaOff, count); +} + +GLOBAL IBOOL cevid_verbose = FALSE; +/*( +=========================== setReadPointers ======================= + +PURPOSE: Set active struct entries for read functions. (c_ev_read_ptr). + +INPUT: index used to select read set. + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +setReadPointers IFN1(IUH, readset) +{ + IUH chain_index; /* current chaining for read modes 0 & 1 */ + + switch(readset) + { + case 0: /* read mode 0 */ + chain_index = getVideochain(); + if (cevid_verbose) printf("Set Read Pointers Mode 0, chain %d\n", chain_index); + c_ev_read_ptr.b_read = read_mode0_evid[chain_index].b_read; + c_ev_read_ptr.w_read = read_mode0_evid[chain_index].w_read; + c_ev_read_ptr.d_read = read_mode0_evid[chain_index].d_read; + c_ev_read_ptr.str_fwd_read = read_mode0_evid[chain_index].str_fwd_read; + c_ev_read_ptr.str_bwd_read = read_mode0_evid[chain_index].str_bwd_read; + setVideoread_byte_addr(read_mode0_evid[chain_index].b_read); + break; + + case 1: /* read mode 1 */ + chain_index = getVideochain(); + if (cevid_verbose) printf("Set Read Pointers Mode 1, chain %d\n", chain_index); + c_ev_read_ptr.b_read = read_mode1_evid[chain_index].b_read; + c_ev_read_ptr.w_read = read_mode1_evid[chain_index].w_read; + c_ev_read_ptr.d_read = read_mode1_evid[chain_index].d_read; + c_ev_read_ptr.str_fwd_read = read_mode1_evid[chain_index].str_fwd_read; + c_ev_read_ptr.str_bwd_read = read_mode1_evid[chain_index].str_bwd_read; + setVideoread_byte_addr(read_mode1_evid[chain_index].b_read); + break; + + case 2: /* RAM disabled */ + if (cevid_verbose) printf("Set Read Pointers RAM disabled\n"); + c_ev_read_ptr.b_read = ram_dsbld_read_evid.b_read; + c_ev_read_ptr.w_read = ram_dsbld_read_evid.w_read; + c_ev_read_ptr.d_read = ram_dsbld_read_evid.d_read; + c_ev_read_ptr.str_fwd_read = ram_dsbld_read_evid.str_fwd_read; + c_ev_read_ptr.str_bwd_read = ram_dsbld_read_evid.str_bwd_read; + setVideoread_byte_addr(ram_dsbld_read_evid.b_read); + break; + + case 3: /* Simple reads (non planed) */ + if (cevid_verbose) printf("Set Read Pointers Simple\n"); + c_ev_read_ptr.b_read = simple_read_evid.b_read; + c_ev_read_ptr.w_read = simple_read_evid.w_read; + c_ev_read_ptr.d_read = simple_read_evid.d_read; + c_ev_read_ptr.str_fwd_read = simple_read_evid.str_fwd_read; + c_ev_read_ptr.str_bwd_read = simple_read_evid.str_bwd_read; + setVideoread_byte_addr(simple_read_evid.b_read); + break; + } +} + +/*( +=========================== setWritePointers ======================= + +PURPOSE: Set active struct entries for write functions. (c_ev_write_ptr). + +INPUT: None. (All information gleaned from Vglobs). + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +setWritePointers IFN0() +{ + EVID_WRT_POINTERS *choice; /* point to selected write set */ + IU8 chain; + IU8 modelookup[] = + /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 */ + { 0, 1, 2, 3, 2, 3, 2, 3, 0, 1, 2, 3, 2, 3, 2, 3, + /* 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 */ + 8, 9, 10, 11, 10, 11, 6, 7, 8, 9, 10, 11, 10, 11, 10, 11 }; + + choice = (EVID_WRT_POINTERS *)0; /* debug check */ + + /* check for dithering 'override' of rest of checks */ + if (getVideodither() == 1) + { + if (cevid_verbose) printf("SetWritePointers Dither, Mode %d\n", getVideowrmode()); /*STF*/ + choice = &dith_evid[getVideowrmode()]; /* mode 0-3 */ + } + else + { + chain = getVideochain(); + switch (chain) + { + case UNCHAINED: + case CHAIN_4: + if (getVideorotate() > 0) + { + if (cevid_verbose) printf("SetWritePointers Generic Override for Chain %d, Mode %d\n", chain, getVideowrmode()); /*STF*/ + if (cevid_verbose) printf("Rotates set to %d\n", getVideorotate());/*STF*/ + choice = &gricvid_evid; + } + else + { + if (chain == UNCHAINED) + { + if (cevid_verbose) printf("SetWritePointers Unchained, State %#x", getVideowrstate()); /*STF*/ + choice = &unchained_evid[0]; + } + else + { + if (cevid_verbose) printf("SetWritePointers Chain4"); /*STF*/ + choice = &chain4_evid[0]; + } + switch(getVideowrmode()) + { + case MODE_0: + if (cevid_verbose) printf(" Mode 0, index %d\n", modelookup[getVideowrstate()]); /* STF */ + choice += modelookup[getVideowrstate()]; + break; + + case MODE_1: + if (cevid_verbose) printf(" Mode 1\n");/* STF */ + choice += NUM_M0_WRITES; + break; + + case MODE_2: + if (cevid_verbose) printf(" Mode 2, index %d\n", modelookup[getVideowrstate() & 0xf]);/* STF */ + choice += NUM_M0_WRITES + NUM_M1_WRITES; + choice += modelookup[getVideowrstate() & 0xf]; + break; + + case MODE_3: + if (cevid_verbose) printf(" Mode 3, index %d\n", modelookup[getVideowrstate() & 0xf]);/* STF */ + choice += NUM_M0_WRITES + NUM_M1_WRITES + NUM_M23_WRITES; + choice += modelookup[getVideowrstate() & 0xf]; + break; + + default: + if (cevid_verbose) printf(" unknown write mode %d\n",getVideowrmode()); + } + } + break; + + case CHAIN_2: + if (cevid_verbose) printf("SetWritePointers Chain2, Mode %d\n", getVideowrmode()); /*STF*/ + choice = &chain2_evid[getVideowrmode()]; + break; + + case SIMPLE_WRITES: + if (cevid_verbose) printf("SetWritePointers Simple\n"); /*STF*/ + choice = &simple_evid; + break; + } + } + if (choice == (EVID_WRT_POINTERS *)0) + { + printf("setWritePointers: ERROR - BAD POINTER SELECTION\n"); + choice = &chain2_evid[4]; + } + c_ev_write_ptr.b_write = choice->b_write; + c_ev_write_ptr.w_write = choice->w_write; + c_ev_write_ptr.d_write = choice->d_write; + c_ev_write_ptr.b_fill = choice->b_fill; + c_ev_write_ptr.w_fill = choice->w_fill; + c_ev_write_ptr.d_fill = choice->d_fill; + c_ev_write_ptr.b_fwd_move = choice->b_fwd_move; + c_ev_write_ptr.b_bwd_move = choice->b_bwd_move; + c_ev_write_ptr.w_fwd_move = choice->w_fwd_move; + c_ev_write_ptr.w_bwd_move = choice->w_bwd_move; + c_ev_write_ptr.d_fwd_move = choice->d_fwd_move; + c_ev_write_ptr.d_bwd_move = choice->d_bwd_move; +} + +/*( +=========================== setMarkPointers ======================= + +PURPOSE: Set VGlobs entries for mark functions + +INPUT: index used to select mark set. + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +setMarkPointers IFN1(IUH, markset) +{ + switch (markset) + { + + case 0: /* simple */ + if (cevid_verbose) printf("Set Mark Pointers Simple\n"); + setVideomark_byte(simple_mark_evid.b_mark); + setVideomark_word(simple_mark_evid.w_mark); + setVideomark_string(simple_mark_evid.str_mark); + break; + + case 1: /* CGA style */ + if (cevid_verbose) printf("Set Mark Pointers CGA\n"); + setVideomark_byte(cga_mark_evid.b_mark); + setVideomark_word(cga_mark_evid.w_mark); + setVideomark_string(cga_mark_evid.str_mark); + break; + + case 2: /* Unchained */ + if (cevid_verbose) printf("Set Mark Pointers Unchained\n"); + setVideomark_byte(unchained_mark_evid.b_mark); + setVideomark_word(unchained_mark_evid.w_mark); + setVideomark_string(unchained_mark_evid.str_mark); + break; + + case 3: /* Chain4 */ + if (cevid_verbose) printf("Set Mark Pointers Chain4\n"); + setVideomark_byte(chain4_mark_evid.b_mark); + setVideomark_word(chain4_mark_evid.w_mark); + setVideomark_string(chain4_mark_evid.str_mark); + break; + + } +} + +GLOBAL void +write_bios_byte IFN2(IU8, eaVal, IU32, eaOff) +{ + jccc_parm1 = (IUH)eaOff; + jccc_parm2 = (IUH)eaVal; + jccc_gdp = (IUH)Gdp; + + chain2_evid[4].b_write(eaOff, eaVal); +} + +GLOBAL void +write_bios_word IFN2(IU16, eaVal, IU32, eaOff) +{ + jccc_parm1 = (IUH)eaOff; + jccc_parm2 = (IUH)eaVal; + jccc_gdp = (IUH)Gdp; + + chain2_evid[4].w_write(eaOff, eaVal); +} + +/*( +=========================== SetBiosWrites ======================= + +PURPOSE: Set VGlobs entries for mark functions + +INPUT: index used to select mark set. + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +SetBiosWrites IFN1(IUH, markset) +{ + bios_ch2_byte_wrt_fn = write_bios_byte; + bios_ch2_word_wrt_fn = write_bios_word; +} + +#ifdef CCPU + +#define SUBRRINGBUFFERSIZE 25 +GLOBAL IUH SubrRingBuffer[SUBRRINGBUFFERSIZE]; +/*( +=========================== setup_vga_globals ======================= + +PURPOSE: Point VGLOBS into correct portion on Gdp + +INPUT: None. + +OUTPUT: None. + +==================================================================== +*/ + +GLOBAL void +setup_vga_globals IFN0() +{ + EGA_CPU.globals = &(GLOBAL_VGAGlobals); + + /* support memory for subr id ring buffer */ + GLOBAL_SubrRingLowIncl = &SubrRingBuffer[0]; + GLOBAL_SubrRingHighIncl = GLOBAL_SubrRingLowIncl + (SUBRRINGBUFFERSIZE-1 +); + GLOBAL_SubrRingPtr = GLOBAL_SubrRingLowIncl; + + +#ifndef PROD + if (getenv("CEVID_VERBOSE") != 0) + cevid_verbose = TRUE; +#endif /* PROD */ +} + +/*( +=========================== setup_global_data_ptr ======================= + +PURPOSE: Setup Gdp for CCPU/CEvid. + +INPUT: None. + +OUTPUT: None. + +==================================================================== +*/ + +GLOBAL IHP +setup_global_data_ptr IFN0() +{ + Gdp = (IHP)host_malloc(64 * 1024); + /* Gdp holds the correct value so in jcode an lea wants the value not + * the adrress of the data + */ + j_Gdp = Gdp ; + if (Gdp == (IHP)0) + printf("Error - can't malloc memory for Gdp\n"); + + return(Gdp); +} +#endif /* CCPU */ +#endif /* C_VID */ diff --git a/private/mvdm/softpc.new/base/cpu/src/evid/ev_stubs.c b/private/mvdm/softpc.new/base/cpu/src/evid/ev_stubs.c new file mode 100644 index 000000000..37a080788 --- /dev/null +++ b/private/mvdm/softpc.new/base/cpu/src/evid/ev_stubs.c @@ -0,0 +1,18 @@ +#include +#include +/*[ + * Name: ev_stubs.c + * SCCS ID: @(#)ev_stubs.c 1.1 07/22/94 + * + * Purpose: Provide the stub routines needed to give the a4+evid + * and ccpu+cevid libraries the same interface. + * + * (C) Copyright Insignia Solutions Ltd, 1994. +]*/ + +GLOBAL void setup_vga_globals IFN0() +{ +} +GLOBAL IHPE setup_global_data_ptr IFN0() +{ +} diff --git a/private/mvdm/softpc.new/base/cpu/src/evid/vglob.c b/private/mvdm/softpc.new/base/cpu/src/evid/vglob.c new file mode 100644 index 000000000..d1f01ac2f --- /dev/null +++ b/private/mvdm/softpc.new/base/cpu/src/evid/vglob.c @@ -0,0 +1,451 @@ +/*[ +************************************************************************* + + Name: Vglob.c + Author: Simon Frost + Created: October 1994 + Derived from: Vglob.edl + Sccs ID: @(#)Vglob.c 1.1 10/24/94 + Purpose: EXTERNAL interface to VGLOB record. + Rewritten in C to save overhead of EDL/C context change + for one memory read/write. + + (c)Copyright Insignia Solutions Ltd., 1993. All rights reserved. + +************************************************************************* +]*/ + +#include "insignia.h" +#include "host_def.h" +#include "Evid_c.h" +#include "gdpvar.h" + +/* + * Note: no interfaces produced for the following 3.0 VGlob entries as + * unused in Evid. + * copy_func_pbp ( now video_base_lin_addr ) + * route_reg1 + * route_reg2 + */ + +/* {get,set}Videolatches still in EvPtrs.edl as required for pigging */ + +GLOBAL void +setVideorplane IFN1(IU8 *, value) +{ + GLOBAL_VGAGlobals.VGA_rplane = value; +} +GLOBAL IU8 * +getVideorplane IFN0() +{ + return(GLOBAL_VGAGlobals.VGA_rplane); +} + +GLOBAL void +setVideowplane IFN1(IU8 *, value) +{ + GLOBAL_VGAGlobals.VGA_wplane = value; +} +GLOBAL IU8 * +getVideowplane IFN0() +{ + return(GLOBAL_VGAGlobals.VGA_wplane); +} + +GLOBAL void +setVideoscratch IFN1(IU8 *, value) +{ + GLOBAL_VGAGlobals.scratch = value; +} +GLOBAL IU8 * +getVideoscratch IFN0() +{ + return(GLOBAL_VGAGlobals.scratch); +} + +GLOBAL void +setVideosr_masked_val IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.sr_masked_val = value; +} +GLOBAL IU32 +getVideosr_masked_val IFN0() +{ + return(GLOBAL_VGAGlobals.sr_masked_val); +} + +GLOBAL void +setVideosr_nmask IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.sr_nmask = value; +} + +GLOBAL IU32 +getVideosr_nmask IFN0() +{ + return(GLOBAL_VGAGlobals.sr_nmask); +} + +GLOBAL void +setVideodata_and_mask IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.data_and_mask = value; +} + +GLOBAL IU32 +getVideodata_and_mask IFN0() +{ + return(GLOBAL_VGAGlobals.data_and_mask); +} + +GLOBAL void +setVideodata_xor_mask IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.data_xor_mask = value; +} +GLOBAL IU32 +getVideodata_xor_mask IFN0() +{ + return(GLOBAL_VGAGlobals.data_xor_mask); +} + +GLOBAL void +setVideolatch_xor_mask IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.latch_xor_mask = value; +} +GLOBAL IU32 +getVideolatch_xor_mask IFN0() +{ + return(GLOBAL_VGAGlobals.latch_xor_mask); +} + +GLOBAL void +setVideobit_prot_mask IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.bit_prot_mask = value; +} +GLOBAL IU32 +getVideobit_prot_mask IFN0() +{ + return(GLOBAL_VGAGlobals.bit_prot_mask); +} + +GLOBAL void +setVideoplane_enable IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.plane_enable = value; +} +GLOBAL IU32 +getVideoplane_enable IFN0() +{ + return(GLOBAL_VGAGlobals.plane_enable); +} + +GLOBAL void +setVideoplane_enable_mask IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.plane_enable_mask = value; +} +GLOBAL IU32 +getVideoplane_enable_mask IFN0() +{ + return(GLOBAL_VGAGlobals.plane_enable_mask); +} + +GLOBAL void +setVideosr_lookup IFN1(IUH *, value) +{ + GLOBAL_VGAGlobals.sr_lookup = value; +} +GLOBAL IUH * +getVideosr_lookup IFN0() +{ + return(GLOBAL_VGAGlobals.sr_lookup); +} + +GLOBAL void +setVideofwd_str_read_addr IFN1(IUH *, value) +{ + GLOBAL_VGAGlobals.fwd_str_read_addr = value; +} +GLOBAL IUH * +getVideofwd_str_read_addr IFN0() +{ + return(GLOBAL_VGAGlobals.fwd_str_read_addr); +} + +GLOBAL void +setVideobwd_str_read_addr IFN1(IUH *, value) +{ + GLOBAL_VGAGlobals.bwd_str_read_addr = value; +} +GLOBAL IUH * +getVideobwd_str_read_addr IFN0() +{ + return(GLOBAL_VGAGlobals.bwd_str_read_addr); +} + +GLOBAL void +setVideodirty_total IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.dirty_total = value; +} +GLOBAL IU32 +getVideodirty_total IFN0() +{ + return(GLOBAL_VGAGlobals.dirty_total); +} + +GLOBAL void +setVideodirty_low IFN1(IS32, value) +{ + GLOBAL_VGAGlobals.dirty_low = value; +} +GLOBAL IS32 +getVideodirty_low IFN0() +{ + return(GLOBAL_VGAGlobals.dirty_low); +} + +GLOBAL void +setVideodirty_high IFN1(IS32, value) +{ + GLOBAL_VGAGlobals.dirty_high = value; +} +GLOBAL IS32 +getVideodirty_high IFN0() +{ + return(GLOBAL_VGAGlobals.dirty_high); +} + +GLOBAL void +setVideovideo_copy IFN1(IU8 *, value) +{ + GLOBAL_VGAGlobals.video_copy = value; +} +GLOBAL IU8 * +getVideovideo_copy IFN0() +{ + return(GLOBAL_VGAGlobals.video_copy); +} + +GLOBAL void +setVideomark_byte IFN1(IUH *, value) +{ + GLOBAL_VGAGlobals.mark_byte = value; +} +GLOBAL IUH * +getVideomark_byte IFN0() +{ + return(GLOBAL_VGAGlobals.mark_byte); +} + +GLOBAL void +setVideomark_word IFN1(IUH *, value) +{ + GLOBAL_VGAGlobals.mark_word = value; +} +GLOBAL IUH * +getVideomark_word IFN0() +{ + return(GLOBAL_VGAGlobals.mark_word); +} + +GLOBAL void +setVideomark_string IFN1(IUH *, value) +{ + GLOBAL_VGAGlobals.mark_string = value; +} +GLOBAL IUH * +getVideomark_string IFN0() +{ + return(GLOBAL_VGAGlobals.mark_string); +} + +GLOBAL void +setVideoread_shift_count IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.read_shift_count = value; +} +GLOBAL IU32 +getVideoread_shift_count IFN0() +{ + return(GLOBAL_VGAGlobals.read_shift_count); +} + +GLOBAL void +setVideoread_mapped_plane IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.read_mapped_plane = value; +} +GLOBAL IU32 +getVideoread_mapped_plane IFN0() +{ + return(GLOBAL_VGAGlobals.read_mapped_plane); +} + +GLOBAL void +setVideocolour_comp IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.colour_comp = value; +} +GLOBAL IU32 +getVideocolour_comp IFN0() +{ + return(GLOBAL_VGAGlobals.colour_comp); +} + +GLOBAL void +setVideodont_care IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.dont_care = value; +} +GLOBAL IU32 +getVideodont_care IFN0() +{ + return(GLOBAL_VGAGlobals.dont_care); +} + +GLOBAL void +setVideov7_bank_vid_copy_off IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.v7_bank_vid_copy_off = value; +} +GLOBAL IU32 +getVideov7_bank_vid_copy_off IFN0() +{ + return(GLOBAL_VGAGlobals.v7_bank_vid_copy_off); +} + +GLOBAL void +setVideoscreen_ptr IFN1(IU8 *, value) +{ + GLOBAL_VGAGlobals.screen_ptr = value; +} +GLOBAL IU8 * +getVideoscreen_ptr IFN0() +{ + return(GLOBAL_VGAGlobals.screen_ptr); +} + +GLOBAL void +setVideorotate IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.rotate = value; +} +GLOBAL IU32 +getVideorotate IFN0() +{ + return(GLOBAL_VGAGlobals.rotate); +} + +GLOBAL void +setVideocalc_data_xor IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.calc_data_xor = value; +} +GLOBAL IU32 +getVideocalc_data_xor IFN0() +{ + return(GLOBAL_VGAGlobals.calc_data_xor); +} + +GLOBAL void +setVideocalc_latch_xor IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.calc_latch_xor = value; +} +GLOBAL IU32 +getVideocalc_latch_xor IFN0() +{ + return(GLOBAL_VGAGlobals.calc_latch_xor); +} + +GLOBAL void +setVideoread_byte_addr IFN1(IUH *, value) +{ + GLOBAL_VGAGlobals.read_byte_addr = value; +} +GLOBAL IUH * +getVideoread_byte_addr IFN0() +{ + return(GLOBAL_VGAGlobals.read_byte_addr); +} + +GLOBAL void +setVideov7_fg_latches IFN1(IU32, value) +{ + GLOBAL_VGAGlobals.v7_fg_latches = value; +} +GLOBAL IU32 +getVideov7_fg_latches IFN0() +{ + return(GLOBAL_VGAGlobals.v7_fg_latches); +} + +GLOBAL void +setVideoGC_regs IFN1(IUH **, value) +{ + GLOBAL_VGAGlobals.GCRegs = value; +} +GLOBAL IUH ** +getVideoGC_regs IFN0() +{ + return(GLOBAL_VGAGlobals.GCRegs); +} + +GLOBAL void +setVideolast_GC_index IFN1(IU8, value) +{ + GLOBAL_VGAGlobals.lastGCindex = value; +} +GLOBAL IU8 +getVideolast_GC_index IFN0() +{ + return(GLOBAL_VGAGlobals.lastGCindex); +} + +GLOBAL void +setVideodither IFN1(IU8, value) +{ + GLOBAL_VGAGlobals.dither = value; +} +GLOBAL IU8 +getVideodither IFN0() +{ + return(GLOBAL_VGAGlobals.dither); +} + +GLOBAL void +setVideowrmode IFN1(IU8, value) +{ + GLOBAL_VGAGlobals.wrmode = value; +} +GLOBAL IU8 +getVideowrmode IFN0() +{ + return(GLOBAL_VGAGlobals.wrmode); +} + +GLOBAL void +setVideochain IFN1(IU8, value) +{ + GLOBAL_VGAGlobals.chain = value; +} +GLOBAL IU8 +getVideochain IFN0() +{ + return(GLOBAL_VGAGlobals.chain); +} + +GLOBAL void +setVideowrstate IFN1(IU8, value) +{ + GLOBAL_VGAGlobals.wrstate = value; +} +GLOBAL IU8 +getVideowrstate IFN0() +{ + return(GLOBAL_VGAGlobals.wrstate); +} diff --git a/private/mvdm/softpc.new/base/cvidc/acc_efi.h b/private/mvdm/softpc.new/base/cvidc/acc_efi.h new file mode 100644 index 000000000..503ce44f3 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/acc_efi.h @@ -0,0 +1,512 @@ +/* 0 0000 NA SZ_B DFLT DS */ ACCESS_NA_NA, +/* 1 0001 NA SZ_B DFLT SS */ ACCESS_NA_NA, +/* 2 0010 NA SZ_B ES DS */ ACCESS_NA_NA, +/* 3 0011 NA SZ_B ES SS */ ACCESS_NA_NA, +/* 4 0020 NA SZ_B CS DS */ ACCESS_NA_NA, +/* 5 0021 NA SZ_B CS SS */ ACCESS_NA_NA, +/* 6 0030 NA SZ_B SS DS */ ACCESS_NA_NA, +/* 7 0031 NA SZ_B SS SS */ ACCESS_NA_NA, +/* 8 0040 NA SZ_B DS DS */ ACCESS_NA_NA, +/* 9 0041 NA SZ_B DS SS */ ACCESS_NA_NA, +/* 10 0050 NA SZ_B FS DS */ ACCESS_NA_NA, +/* 11 0051 NA SZ_B FS SS */ ACCESS_NA_NA, +/* 12 0060 NA SZ_B GS DS */ ACCESS_NA_NA, +/* 13 0061 NA SZ_B GS SS */ ACCESS_NA_NA, +/* 14 0070 NA SZ_B - DS */ ACCESS_NA_NA, +/* 15 0071 NA SZ_B - SS */ ACCESS_NA_NA, +/* 16 0100 NA SZ_B DFLT DS */ ACCESS_NA_NA, +/* 17 0101 NA SZ_B DFLT SS */ ACCESS_NA_NA, +/* 18 0110 NA SZ_B ES DS */ ACCESS_NA_NA, +/* 19 0111 NA SZ_B ES SS */ ACCESS_NA_NA, +/* 20 0120 NA SZ_B CS DS */ ACCESS_NA_NA, +/* 21 0121 NA SZ_B CS SS */ ACCESS_NA_NA, +/* 22 0130 NA SZ_B SS DS */ ACCESS_NA_NA, +/* 23 0131 NA SZ_B SS SS */ ACCESS_NA_NA, +/* 24 0140 NA SZ_B DS DS */ ACCESS_NA_NA, +/* 25 0141 NA SZ_B DS SS */ ACCESS_NA_NA, +/* 26 0150 NA SZ_B FS DS */ ACCESS_NA_NA, +/* 27 0151 NA SZ_B FS SS */ ACCESS_NA_NA, +/* 28 0160 NA SZ_B GS DS */ ACCESS_NA_NA, +/* 29 0161 NA SZ_B GS SS */ ACCESS_NA_NA, +/* 30 0170 NA SZ_B - DS */ ACCESS_NA_NA, +/* 31 0171 NA SZ_B - SS */ ACCESS_NA_NA, +/* 32 0200 NA SZ_W DFLT DS */ ACCESS_NA_NA, +/* 33 0201 NA SZ_W DFLT SS */ ACCESS_NA_NA, +/* 34 0210 NA SZ_W ES DS */ ACCESS_NA_NA, +/* 35 0211 NA SZ_W ES SS */ ACCESS_NA_NA, +/* 36 0220 NA SZ_W CS DS */ ACCESS_NA_NA, +/* 37 0221 NA SZ_W CS SS */ ACCESS_NA_NA, +/* 38 0230 NA SZ_W SS DS */ ACCESS_NA_NA, +/* 39 0231 NA SZ_W SS SS */ ACCESS_NA_NA, +/* 40 0240 NA SZ_W DS DS */ ACCESS_NA_NA, +/* 41 0241 NA SZ_W DS SS */ ACCESS_NA_NA, +/* 42 0250 NA SZ_W FS DS */ ACCESS_NA_NA, +/* 43 0251 NA SZ_W FS SS */ ACCESS_NA_NA, +/* 44 0260 NA SZ_W GS DS */ ACCESS_NA_NA, +/* 45 0261 NA SZ_W GS SS */ ACCESS_NA_NA, +/* 46 0270 NA SZ_W - DS */ ACCESS_NA_NA, +/* 47 0271 NA SZ_W - SS */ ACCESS_NA_NA, +/* 48 0300 NA SZ_D DFLT DS */ ACCESS_NA_NA, +/* 49 0301 NA SZ_D DFLT SS */ ACCESS_NA_NA, +/* 50 0310 NA SZ_D ES DS */ ACCESS_NA_NA, +/* 51 0311 NA SZ_D ES SS */ ACCESS_NA_NA, +/* 52 0320 NA SZ_D CS DS */ ACCESS_NA_NA, +/* 53 0321 NA SZ_D CS SS */ ACCESS_NA_NA, +/* 54 0330 NA SZ_D SS DS */ ACCESS_NA_NA, +/* 55 0331 NA SZ_D SS SS */ ACCESS_NA_NA, +/* 56 0340 NA SZ_D DS DS */ ACCESS_NA_NA, +/* 57 0341 NA SZ_D DS SS */ ACCESS_NA_NA, +/* 58 0350 NA SZ_D FS DS */ ACCESS_NA_NA, +/* 59 0351 NA SZ_D FS SS */ ACCESS_NA_NA, +/* 60 0360 NA SZ_D GS DS */ ACCESS_NA_NA, +/* 61 0361 NA SZ_D GS SS */ ACCESS_NA_NA, +/* 62 0370 NA SZ_D - DS */ ACCESS_NA_NA, +/* 63 0371 NA SZ_D - SS */ ACCESS_NA_NA, +/* 64 0400 NA SZ_W DFLT DS */ ACCESS_NA_NA, +/* 65 0401 NA SZ_W DFLT SS */ ACCESS_NA_NA, +/* 66 0410 NA SZ_W ES DS */ ACCESS_NA_NA, +/* 67 0411 NA SZ_W ES SS */ ACCESS_NA_NA, +/* 68 0420 NA SZ_W CS DS */ ACCESS_NA_NA, +/* 69 0421 NA SZ_W CS SS */ ACCESS_NA_NA, +/* 70 0430 NA SZ_W SS DS */ ACCESS_NA_NA, +/* 71 0431 NA SZ_W SS SS */ ACCESS_NA_NA, +/* 72 0440 NA SZ_W DS DS */ ACCESS_NA_NA, +/* 73 0441 NA SZ_W DS SS */ ACCESS_NA_NA, +/* 74 0450 NA SZ_W FS DS */ ACCESS_NA_NA, +/* 75 0451 NA SZ_W FS SS */ ACCESS_NA_NA, +/* 76 0460 NA SZ_W GS DS */ ACCESS_NA_NA, +/* 77 0461 NA SZ_W GS SS */ ACCESS_NA_NA, +/* 78 0470 NA SZ_W - DS */ ACCESS_NA_NA, +/* 79 0471 NA SZ_W - SS */ ACCESS_NA_NA, +/* 80 0500 NA - DFLT DS */ ACCESS_NA_NA, +/* 81 0501 NA - DFLT SS */ ACCESS_NA_NA, +/* 82 0510 NA - ES DS */ ACCESS_NA_NA, +/* 83 0511 NA - ES SS */ ACCESS_NA_NA, +/* 84 0520 NA - CS DS */ ACCESS_NA_NA, +/* 85 0521 NA - CS SS */ ACCESS_NA_NA, +/* 86 0530 NA - SS DS */ ACCESS_NA_NA, +/* 87 0531 NA - SS SS */ ACCESS_NA_NA, +/* 88 0540 NA - DS DS */ ACCESS_NA_NA, +/* 89 0541 NA - DS SS */ ACCESS_NA_NA, +/* 90 0550 NA - FS DS */ ACCESS_NA_NA, +/* 91 0551 NA - FS SS */ ACCESS_NA_NA, +/* 92 0560 NA - GS DS */ ACCESS_NA_NA, +/* 93 0561 NA - GS SS */ ACCESS_NA_NA, +/* 94 0570 NA - - DS */ ACCESS_NA_NA, +/* 95 0571 NA - - SS */ ACCESS_NA_NA, +/* 96 0600 NA SZ_W2 DFLT DS */ ACCESS_NA_NA, +/* 97 0601 NA SZ_W2 DFLT SS */ ACCESS_NA_NA, +/* 98 0610 NA SZ_W2 ES DS */ ACCESS_NA_NA, +/* 99 0611 NA SZ_W2 ES SS */ ACCESS_NA_NA, +/* 100 0620 NA SZ_W2 CS DS */ ACCESS_NA_NA, +/* 101 0621 NA SZ_W2 CS SS */ ACCESS_NA_NA, +/* 102 0630 NA SZ_W2 SS DS */ ACCESS_NA_NA, +/* 103 0631 NA SZ_W2 SS SS */ ACCESS_NA_NA, +/* 104 0640 NA SZ_W2 DS DS */ ACCESS_NA_NA, +/* 105 0641 NA SZ_W2 DS SS */ ACCESS_NA_NA, +/* 106 0650 NA SZ_W2 FS DS */ ACCESS_NA_NA, +/* 107 0651 NA SZ_W2 FS SS */ ACCESS_NA_NA, +/* 108 0660 NA SZ_W2 GS DS */ ACCESS_NA_NA, +/* 109 0661 NA SZ_W2 GS SS */ ACCESS_NA_NA, +/* 110 0670 NA SZ_W2 - DS */ ACCESS_NA_NA, +/* 111 0671 NA SZ_W2 - SS */ ACCESS_NA_NA, +/* 112 0700 NA SZ_WD DFLT DS */ ACCESS_NA_NA, +/* 113 0701 NA SZ_WD DFLT SS */ ACCESS_NA_NA, +/* 114 0710 NA SZ_WD ES DS */ ACCESS_NA_NA, +/* 115 0711 NA SZ_WD ES SS */ ACCESS_NA_NA, +/* 116 0720 NA SZ_WD CS DS */ ACCESS_NA_NA, +/* 117 0721 NA SZ_WD CS SS */ ACCESS_NA_NA, +/* 118 0730 NA SZ_WD SS DS */ ACCESS_NA_NA, +/* 119 0731 NA SZ_WD SS SS */ ACCESS_NA_NA, +/* 120 0740 NA SZ_WD DS DS */ ACCESS_NA_NA, +/* 121 0741 NA SZ_WD DS SS */ ACCESS_NA_NA, +/* 122 0750 NA SZ_WD FS DS */ ACCESS_NA_NA, +/* 123 0751 NA SZ_WD FS SS */ ACCESS_NA_NA, +/* 124 0760 NA SZ_WD GS DS */ ACCESS_NA_NA, +/* 125 0761 NA SZ_WD GS SS */ ACCESS_NA_NA, +/* 126 0770 NA SZ_WD - DS */ ACCESS_NA_NA, +/* 127 0771 NA SZ_WD - SS */ ACCESS_NA_NA, +/* 128 1000 RD SZ_B DFLT DS */ ACCESS_DS_RD_B, +/* 129 1001 RD SZ_B DFLT SS */ ACCESS_SS_RD_B, +/* 130 1010 RD SZ_B ES DS */ ACCESS_ES_RD_B, +/* 131 1011 RD SZ_B ES SS */ ACCESS_ES_RD_B, +/* 132 1020 RD SZ_B CS DS */ ACCESS_CS_RD_B, +/* 133 1021 RD SZ_B CS SS */ ACCESS_CS_RD_B, +/* 134 1030 RD SZ_B SS DS */ ACCESS_SS_RD_B, +/* 135 1031 RD SZ_B SS SS */ ACCESS_SS_RD_B, +/* 136 1040 RD SZ_B DS DS */ ACCESS_DS_RD_B, +/* 137 1041 RD SZ_B DS SS */ ACCESS_DS_RD_B, +/* 138 1050 RD SZ_B FS DS */ ACCESS_FS_RD_B, +/* 139 1051 RD SZ_B FS SS */ ACCESS_FS_RD_B, +/* 140 1060 RD SZ_B GS DS */ ACCESS_GS_RD_B, +/* 141 1061 RD SZ_B GS SS */ ACCESS_GS_RD_B, +/* 142 1070 RD SZ_B - DS */ ACCESS_NA_NA, +/* 143 1071 RD SZ_B - SS */ ACCESS_NA_NA, +/* 144 1100 RD SZ_B DFLT DS */ ACCESS_DS_RD_B, +/* 145 1101 RD SZ_B DFLT SS */ ACCESS_SS_RD_B, +/* 146 1110 RD SZ_B ES DS */ ACCESS_ES_RD_B, +/* 147 1111 RD SZ_B ES SS */ ACCESS_ES_RD_B, +/* 148 1120 RD SZ_B CS DS */ ACCESS_CS_RD_B, +/* 149 1121 RD SZ_B CS SS */ ACCESS_CS_RD_B, +/* 150 1130 RD SZ_B SS DS */ ACCESS_SS_RD_B, +/* 151 1131 RD SZ_B SS SS */ ACCESS_SS_RD_B, +/* 152 1140 RD SZ_B DS DS */ ACCESS_DS_RD_B, +/* 153 1141 RD SZ_B DS SS */ ACCESS_DS_RD_B, +/* 154 1150 RD SZ_B FS DS */ ACCESS_FS_RD_B, +/* 155 1151 RD SZ_B FS SS */ ACCESS_FS_RD_B, +/* 156 1160 RD SZ_B GS DS */ ACCESS_GS_RD_B, +/* 157 1161 RD SZ_B GS SS */ ACCESS_GS_RD_B, +/* 158 1170 RD SZ_B - DS */ ACCESS_NA_NA, +/* 159 1171 RD SZ_B - SS */ ACCESS_NA_NA, +/* 160 1200 RD SZ_W DFLT DS */ ACCESS_DS_RD_W, +/* 161 1201 RD SZ_W DFLT SS */ ACCESS_SS_RD_W, +/* 162 1210 RD SZ_W ES DS */ ACCESS_ES_RD_W, +/* 163 1211 RD SZ_W ES SS */ ACCESS_ES_RD_W, +/* 164 1220 RD SZ_W CS DS */ ACCESS_CS_RD_W, +/* 165 1221 RD SZ_W CS SS */ ACCESS_CS_RD_W, +/* 166 1230 RD SZ_W SS DS */ ACCESS_SS_RD_W, +/* 167 1231 RD SZ_W SS SS */ ACCESS_SS_RD_W, +/* 168 1240 RD SZ_W DS DS */ ACCESS_DS_RD_W, +/* 169 1241 RD SZ_W DS SS */ ACCESS_DS_RD_W, +/* 170 1250 RD SZ_W FS DS */ ACCESS_FS_RD_W, +/* 171 1251 RD SZ_W FS SS */ ACCESS_FS_RD_W, +/* 172 1260 RD SZ_W GS DS */ ACCESS_GS_RD_W, +/* 173 1261 RD SZ_W GS SS */ ACCESS_GS_RD_W, +/* 174 1270 RD SZ_W - DS */ ACCESS_NA_NA, +/* 175 1271 RD SZ_W - SS */ ACCESS_NA_NA, +/* 176 1300 RD SZ_D DFLT DS */ ACCESS_DS_RD_D, +/* 177 1301 RD SZ_D DFLT SS */ ACCESS_SS_RD_D, +/* 178 1310 RD SZ_D ES DS */ ACCESS_ES_RD_D, +/* 179 1311 RD SZ_D ES SS */ ACCESS_ES_RD_D, +/* 180 1320 RD SZ_D CS DS */ ACCESS_CS_RD_D, +/* 181 1321 RD SZ_D CS SS */ ACCESS_CS_RD_D, +/* 182 1330 RD SZ_D SS DS */ ACCESS_SS_RD_D, +/* 183 1331 RD SZ_D SS SS */ ACCESS_SS_RD_D, +/* 184 1340 RD SZ_D DS DS */ ACCESS_DS_RD_D, +/* 185 1341 RD SZ_D DS SS */ ACCESS_DS_RD_D, +/* 186 1350 RD SZ_D FS DS */ ACCESS_FS_RD_D, +/* 187 1351 RD SZ_D FS SS */ ACCESS_FS_RD_D, +/* 188 1360 RD SZ_D GS DS */ ACCESS_GS_RD_D, +/* 189 1361 RD SZ_D GS SS */ ACCESS_GS_RD_D, +/* 190 1370 RD SZ_D - DS */ ACCESS_NA_NA, +/* 191 1371 RD SZ_D - SS */ ACCESS_NA_NA, +/* 192 1400 RD SZ_W DFLT DS */ ACCESS_DS_RD_W, +/* 193 1401 RD SZ_W DFLT SS */ ACCESS_SS_RD_W, +/* 194 1410 RD SZ_W ES DS */ ACCESS_ES_RD_W, +/* 195 1411 RD SZ_W ES SS */ ACCESS_ES_RD_W, +/* 196 1420 RD SZ_W CS DS */ ACCESS_CS_RD_W, +/* 197 1421 RD SZ_W CS SS */ ACCESS_CS_RD_W, +/* 198 1430 RD SZ_W SS DS */ ACCESS_SS_RD_W, +/* 199 1431 RD SZ_W SS SS */ ACCESS_SS_RD_W, +/* 200 1440 RD SZ_W DS DS */ ACCESS_DS_RD_W, +/* 201 1441 RD SZ_W DS SS */ ACCESS_DS_RD_W, +/* 202 1450 RD SZ_W FS DS */ ACCESS_FS_RD_W, +/* 203 1451 RD SZ_W FS SS */ ACCESS_FS_RD_W, +/* 204 1460 RD SZ_W GS DS */ ACCESS_GS_RD_W, +/* 205 1461 RD SZ_W GS SS */ ACCESS_GS_RD_W, +/* 206 1470 RD SZ_W - DS */ ACCESS_NA_NA, +/* 207 1471 RD SZ_W - SS */ ACCESS_NA_NA, +/* 208 1500 RD - DFLT DS */ ACCESS_NA_NA, +/* 209 1501 RD - DFLT SS */ ACCESS_NA_NA, +/* 210 1510 RD - ES DS */ ACCESS_NA_NA, +/* 211 1511 RD - ES SS */ ACCESS_NA_NA, +/* 212 1520 RD - CS DS */ ACCESS_NA_NA, +/* 213 1521 RD - CS SS */ ACCESS_NA_NA, +/* 214 1530 RD - SS DS */ ACCESS_NA_NA, +/* 215 1531 RD - SS SS */ ACCESS_NA_NA, +/* 216 1540 RD - DS DS */ ACCESS_NA_NA, +/* 217 1541 RD - DS SS */ ACCESS_NA_NA, +/* 218 1550 RD - FS DS */ ACCESS_NA_NA, +/* 219 1551 RD - FS SS */ ACCESS_NA_NA, +/* 220 1560 RD - GS DS */ ACCESS_NA_NA, +/* 221 1561 RD - GS SS */ ACCESS_NA_NA, +/* 222 1570 RD - - DS */ ACCESS_NA_NA, +/* 223 1571 RD - - SS */ ACCESS_NA_NA, +/* 224 1600 RD SZ_W2 DFLT DS */ ACCESS_DS_RD_W2, +/* 225 1601 RD SZ_W2 DFLT SS */ ACCESS_SS_RD_W2, +/* 226 1610 RD SZ_W2 ES DS */ ACCESS_ES_RD_W2, +/* 227 1611 RD SZ_W2 ES SS */ ACCESS_ES_RD_W2, +/* 228 1620 RD SZ_W2 CS DS */ ACCESS_CS_RD_W2, +/* 229 1621 RD SZ_W2 CS SS */ ACCESS_CS_RD_W2, +/* 230 1630 RD SZ_W2 SS DS */ ACCESS_SS_RD_W2, +/* 231 1631 RD SZ_W2 SS SS */ ACCESS_SS_RD_W2, +/* 232 1640 RD SZ_W2 DS DS */ ACCESS_DS_RD_W2, +/* 233 1641 RD SZ_W2 DS SS */ ACCESS_DS_RD_W2, +/* 234 1650 RD SZ_W2 FS DS */ ACCESS_FS_RD_W2, +/* 235 1651 RD SZ_W2 FS SS */ ACCESS_FS_RD_W2, +/* 236 1660 RD SZ_W2 GS DS */ ACCESS_GS_RD_W2, +/* 237 1661 RD SZ_W2 GS SS */ ACCESS_GS_RD_W2, +/* 238 1670 RD SZ_W2 - DS */ ACCESS_NA_NA, +/* 239 1671 RD SZ_W2 - SS */ ACCESS_NA_NA, +/* 240 1700 RD SZ_WD DFLT DS */ ACCESS_DS_RD_WD, +/* 241 1701 RD SZ_WD DFLT SS */ ACCESS_SS_RD_WD, +/* 242 1710 RD SZ_WD ES DS */ ACCESS_ES_RD_WD, +/* 243 1711 RD SZ_WD ES SS */ ACCESS_ES_RD_WD, +/* 244 1720 RD SZ_WD CS DS */ ACCESS_CS_RD_WD, +/* 245 1721 RD SZ_WD CS SS */ ACCESS_CS_RD_WD, +/* 246 1730 RD SZ_WD SS DS */ ACCESS_SS_RD_WD, +/* 247 1731 RD SZ_WD SS SS */ ACCESS_SS_RD_WD, +/* 248 1740 RD SZ_WD DS DS */ ACCESS_DS_RD_WD, +/* 249 1741 RD SZ_WD DS SS */ ACCESS_DS_RD_WD, +/* 250 1750 RD SZ_WD FS DS */ ACCESS_FS_RD_WD, +/* 251 1751 RD SZ_WD FS SS */ ACCESS_FS_RD_WD, +/* 252 1760 RD SZ_WD GS DS */ ACCESS_GS_RD_WD, +/* 253 1761 RD SZ_WD GS SS */ ACCESS_GS_RD_WD, +/* 254 1770 RD SZ_WD - DS */ ACCESS_NA_NA, +/* 255 1771 RD SZ_WD - SS */ ACCESS_NA_NA, +/* 256 2000 WT SZ_B DFLT DS */ ACCESS_DS_WT_B, +/* 257 2001 WT SZ_B DFLT SS */ ACCESS_SS_WT_B, +/* 258 2010 WT SZ_B ES DS */ ACCESS_ES_WT_B, +/* 259 2011 WT SZ_B ES SS */ ACCESS_ES_WT_B, +/* 260 2020 WT SZ_B CS DS */ ACCESS_CS_WT_B, +/* 261 2021 WT SZ_B CS SS */ ACCESS_CS_WT_B, +/* 262 2030 WT SZ_B SS DS */ ACCESS_SS_WT_B, +/* 263 2031 WT SZ_B SS SS */ ACCESS_SS_WT_B, +/* 264 2040 WT SZ_B DS DS */ ACCESS_DS_WT_B, +/* 265 2041 WT SZ_B DS SS */ ACCESS_DS_WT_B, +/* 266 2050 WT SZ_B FS DS */ ACCESS_FS_WT_B, +/* 267 2051 WT SZ_B FS SS */ ACCESS_FS_WT_B, +/* 268 2060 WT SZ_B GS DS */ ACCESS_GS_WT_B, +/* 269 2061 WT SZ_B GS SS */ ACCESS_GS_WT_B, +/* 270 2070 WT SZ_B - DS */ ACCESS_NA_NA, +/* 271 2071 WT SZ_B - SS */ ACCESS_NA_NA, +/* 272 2100 WT SZ_B DFLT DS */ ACCESS_DS_WT_B, +/* 273 2101 WT SZ_B DFLT SS */ ACCESS_SS_WT_B, +/* 274 2110 WT SZ_B ES DS */ ACCESS_ES_WT_B, +/* 275 2111 WT SZ_B ES SS */ ACCESS_ES_WT_B, +/* 276 2120 WT SZ_B CS DS */ ACCESS_CS_WT_B, +/* 277 2121 WT SZ_B CS SS */ ACCESS_CS_WT_B, +/* 278 2130 WT SZ_B SS DS */ ACCESS_SS_WT_B, +/* 279 2131 WT SZ_B SS SS */ ACCESS_SS_WT_B, +/* 280 2140 WT SZ_B DS DS */ ACCESS_DS_WT_B, +/* 281 2141 WT SZ_B DS SS */ ACCESS_DS_WT_B, +/* 282 2150 WT SZ_B FS DS */ ACCESS_FS_WT_B, +/* 283 2151 WT SZ_B FS SS */ ACCESS_FS_WT_B, +/* 284 2160 WT SZ_B GS DS */ ACCESS_GS_WT_B, +/* 285 2161 WT SZ_B GS SS */ ACCESS_GS_WT_B, +/* 286 2170 WT SZ_B - DS */ ACCESS_NA_NA, +/* 287 2171 WT SZ_B - SS */ ACCESS_NA_NA, +/* 288 2200 WT SZ_W DFLT DS */ ACCESS_DS_WT_W, +/* 289 2201 WT SZ_W DFLT SS */ ACCESS_SS_WT_W, +/* 290 2210 WT SZ_W ES DS */ ACCESS_ES_WT_W, +/* 291 2211 WT SZ_W ES SS */ ACCESS_ES_WT_W, +/* 292 2220 WT SZ_W CS DS */ ACCESS_CS_WT_W, +/* 293 2221 WT SZ_W CS SS */ ACCESS_CS_WT_W, +/* 294 2230 WT SZ_W SS DS */ ACCESS_SS_WT_W, +/* 295 2231 WT SZ_W SS SS */ ACCESS_SS_WT_W, +/* 296 2240 WT SZ_W DS DS */ ACCESS_DS_WT_W, +/* 297 2241 WT SZ_W DS SS */ ACCESS_DS_WT_W, +/* 298 2250 WT SZ_W FS DS */ ACCESS_FS_WT_W, +/* 299 2251 WT SZ_W FS SS */ ACCESS_FS_WT_W, +/* 300 2260 WT SZ_W GS DS */ ACCESS_GS_WT_W, +/* 301 2261 WT SZ_W GS SS */ ACCESS_GS_WT_W, +/* 302 2270 WT SZ_W - DS */ ACCESS_NA_NA, +/* 303 2271 WT SZ_W - SS */ ACCESS_NA_NA, +/* 304 2300 WT SZ_D DFLT DS */ ACCESS_DS_WT_D, +/* 305 2301 WT SZ_D DFLT SS */ ACCESS_SS_WT_D, +/* 306 2310 WT SZ_D ES DS */ ACCESS_ES_WT_D, +/* 307 2311 WT SZ_D ES SS */ ACCESS_ES_WT_D, +/* 308 2320 WT SZ_D CS DS */ ACCESS_CS_WT_D, +/* 309 2321 WT SZ_D CS SS */ ACCESS_CS_WT_D, +/* 310 2330 WT SZ_D SS DS */ ACCESS_SS_WT_D, +/* 311 2331 WT SZ_D SS SS */ ACCESS_SS_WT_D, +/* 312 2340 WT SZ_D DS DS */ ACCESS_DS_WT_D, +/* 313 2341 WT SZ_D DS SS */ ACCESS_DS_WT_D, +/* 314 2350 WT SZ_D FS DS */ ACCESS_FS_WT_D, +/* 315 2351 WT SZ_D FS SS */ ACCESS_FS_WT_D, +/* 316 2360 WT SZ_D GS DS */ ACCESS_GS_WT_D, +/* 317 2361 WT SZ_D GS SS */ ACCESS_GS_WT_D, +/* 318 2370 WT SZ_D - DS */ ACCESS_NA_NA, +/* 319 2371 WT SZ_D - SS */ ACCESS_NA_NA, +/* 320 2400 WT SZ_W DFLT DS */ ACCESS_DS_WT_W, +/* 321 2401 WT SZ_W DFLT SS */ ACCESS_SS_WT_W, +/* 322 2410 WT SZ_W ES DS */ ACCESS_ES_WT_W, +/* 323 2411 WT SZ_W ES SS */ ACCESS_ES_WT_W, +/* 324 2420 WT SZ_W CS DS */ ACCESS_CS_WT_W, +/* 325 2421 WT SZ_W CS SS */ ACCESS_CS_WT_W, +/* 326 2430 WT SZ_W SS DS */ ACCESS_SS_WT_W, +/* 327 2431 WT SZ_W SS SS */ ACCESS_SS_WT_W, +/* 328 2440 WT SZ_W DS DS */ ACCESS_DS_WT_W, +/* 329 2441 WT SZ_W DS SS */ ACCESS_DS_WT_W, +/* 330 2450 WT SZ_W FS DS */ ACCESS_FS_WT_W, +/* 331 2451 WT SZ_W FS SS */ ACCESS_FS_WT_W, +/* 332 2460 WT SZ_W GS DS */ ACCESS_GS_WT_W, +/* 333 2461 WT SZ_W GS SS */ ACCESS_GS_WT_W, +/* 334 2470 WT SZ_W - DS */ ACCESS_NA_NA, +/* 335 2471 WT SZ_W - SS */ ACCESS_NA_NA, +/* 336 2500 WT - DFLT DS */ ACCESS_NA_NA, +/* 337 2501 WT - DFLT SS */ ACCESS_NA_NA, +/* 338 2510 WT - ES DS */ ACCESS_NA_NA, +/* 339 2511 WT - ES SS */ ACCESS_NA_NA, +/* 340 2520 WT - CS DS */ ACCESS_NA_NA, +/* 341 2521 WT - CS SS */ ACCESS_NA_NA, +/* 342 2530 WT - SS DS */ ACCESS_NA_NA, +/* 343 2531 WT - SS SS */ ACCESS_NA_NA, +/* 344 2540 WT - DS DS */ ACCESS_NA_NA, +/* 345 2541 WT - DS SS */ ACCESS_NA_NA, +/* 346 2550 WT - FS DS */ ACCESS_NA_NA, +/* 347 2551 WT - FS SS */ ACCESS_NA_NA, +/* 348 2560 WT - GS DS */ ACCESS_NA_NA, +/* 349 2561 WT - GS SS */ ACCESS_NA_NA, +/* 350 2570 WT - - DS */ ACCESS_NA_NA, +/* 351 2571 WT - - SS */ ACCESS_NA_NA, +/* 352 2600 WT SZ_W2 DFLT DS */ ACCESS_NA_NA, +/* 353 2601 WT SZ_W2 DFLT SS */ ACCESS_NA_NA, +/* 354 2610 WT SZ_W2 ES DS */ ACCESS_NA_NA, +/* 355 2611 WT SZ_W2 ES SS */ ACCESS_NA_NA, +/* 356 2620 WT SZ_W2 CS DS */ ACCESS_NA_NA, +/* 357 2621 WT SZ_W2 CS SS */ ACCESS_NA_NA, +/* 358 2630 WT SZ_W2 SS DS */ ACCESS_NA_NA, +/* 359 2631 WT SZ_W2 SS SS */ ACCESS_NA_NA, +/* 360 2640 WT SZ_W2 DS DS */ ACCESS_NA_NA, +/* 361 2641 WT SZ_W2 DS SS */ ACCESS_NA_NA, +/* 362 2650 WT SZ_W2 FS DS */ ACCESS_NA_NA, +/* 363 2651 WT SZ_W2 FS SS */ ACCESS_NA_NA, +/* 364 2660 WT SZ_W2 GS DS */ ACCESS_NA_NA, +/* 365 2661 WT SZ_W2 GS SS */ ACCESS_NA_NA, +/* 366 2670 WT SZ_W2 - DS */ ACCESS_NA_NA, +/* 367 2671 WT SZ_W2 - SS */ ACCESS_NA_NA, +/* 368 2700 WT SZ_WD DFLT DS */ ACCESS_DS_WT_WD, +/* 369 2701 WT SZ_WD DFLT SS */ ACCESS_SS_WT_WD, +/* 370 2710 WT SZ_WD ES DS */ ACCESS_ES_WT_WD, +/* 371 2711 WT SZ_WD ES SS */ ACCESS_ES_WT_WD, +/* 372 2720 WT SZ_WD CS DS */ ACCESS_CS_WT_WD, +/* 373 2721 WT SZ_WD CS SS */ ACCESS_CS_WT_WD, +/* 374 2730 WT SZ_WD SS DS */ ACCESS_SS_WT_WD, +/* 375 2731 WT SZ_WD SS SS */ ACCESS_SS_WT_WD, +/* 376 2740 WT SZ_WD DS DS */ ACCESS_DS_WT_WD, +/* 377 2741 WT SZ_WD DS SS */ ACCESS_DS_WT_WD, +/* 378 2750 WT SZ_WD FS DS */ ACCESS_FS_WT_WD, +/* 379 2751 WT SZ_WD FS SS */ ACCESS_FS_WT_WD, +/* 380 2760 WT SZ_WD GS DS */ ACCESS_GS_WT_WD, +/* 381 2761 WT SZ_WD GS SS */ ACCESS_GS_WT_WD, +/* 382 2770 WT SZ_WD - DS */ ACCESS_NA_NA, +/* 383 2771 WT SZ_WD - SS */ ACCESS_NA_NA, +/* 384 3000 RW SZ_B DFLT DS */ ACCESS_DS_RW_B, +/* 385 3001 RW SZ_B DFLT SS */ ACCESS_SS_RW_B, +/* 386 3010 RW SZ_B ES DS */ ACCESS_ES_RW_B, +/* 387 3011 RW SZ_B ES SS */ ACCESS_ES_RW_B, +/* 388 3020 RW SZ_B CS DS */ ACCESS_CS_RW_B, +/* 389 3021 RW SZ_B CS SS */ ACCESS_CS_RW_B, +/* 390 3030 RW SZ_B SS DS */ ACCESS_SS_RW_B, +/* 391 3031 RW SZ_B SS SS */ ACCESS_SS_RW_B, +/* 392 3040 RW SZ_B DS DS */ ACCESS_DS_RW_B, +/* 393 3041 RW SZ_B DS SS */ ACCESS_DS_RW_B, +/* 394 3050 RW SZ_B FS DS */ ACCESS_FS_RW_B, +/* 395 3051 RW SZ_B FS SS */ ACCESS_FS_RW_B, +/* 396 3060 RW SZ_B GS DS */ ACCESS_GS_RW_B, +/* 397 3061 RW SZ_B GS SS */ ACCESS_GS_RW_B, +/* 398 3070 RW SZ_B - DS */ ACCESS_NA_NA, +/* 399 3071 RW SZ_B - SS */ ACCESS_NA_NA, +/* 400 3100 RW SZ_B DFLT DS */ ACCESS_DS_RW_B, +/* 401 3101 RW SZ_B DFLT SS */ ACCESS_SS_RW_B, +/* 402 3110 RW SZ_B ES DS */ ACCESS_ES_RW_B, +/* 403 3111 RW SZ_B ES SS */ ACCESS_ES_RW_B, +/* 404 3120 RW SZ_B CS DS */ ACCESS_CS_RW_B, +/* 405 3121 RW SZ_B CS SS */ ACCESS_CS_RW_B, +/* 406 3130 RW SZ_B SS DS */ ACCESS_SS_RW_B, +/* 407 3131 RW SZ_B SS SS */ ACCESS_SS_RW_B, +/* 408 3140 RW SZ_B DS DS */ ACCESS_DS_RW_B, +/* 409 3141 RW SZ_B DS SS */ ACCESS_DS_RW_B, +/* 410 3150 RW SZ_B FS DS */ ACCESS_FS_RW_B, +/* 411 3151 RW SZ_B FS SS */ ACCESS_FS_RW_B, +/* 412 3160 RW SZ_B GS DS */ ACCESS_GS_RW_B, +/* 413 3161 RW SZ_B GS SS */ ACCESS_GS_RW_B, +/* 414 3170 RW SZ_B - DS */ ACCESS_NA_NA, +/* 415 3171 RW SZ_B - SS */ ACCESS_NA_NA, +/* 416 3200 RW SZ_W DFLT DS */ ACCESS_DS_RW_W, +/* 417 3201 RW SZ_W DFLT SS */ ACCESS_SS_RW_W, +/* 418 3210 RW SZ_W ES DS */ ACCESS_ES_RW_W, +/* 419 3211 RW SZ_W ES SS */ ACCESS_ES_RW_W, +/* 420 3220 RW SZ_W CS DS */ ACCESS_CS_RW_W, +/* 421 3221 RW SZ_W CS SS */ ACCESS_CS_RW_W, +/* 422 3230 RW SZ_W SS DS */ ACCESS_SS_RW_W, +/* 423 3231 RW SZ_W SS SS */ ACCESS_SS_RW_W, +/* 424 3240 RW SZ_W DS DS */ ACCESS_DS_RW_W, +/* 425 3241 RW SZ_W DS SS */ ACCESS_DS_RW_W, +/* 426 3250 RW SZ_W FS DS */ ACCESS_FS_RW_W, +/* 427 3251 RW SZ_W FS SS */ ACCESS_FS_RW_W, +/* 428 3260 RW SZ_W GS DS */ ACCESS_GS_RW_W, +/* 429 3261 RW SZ_W GS SS */ ACCESS_GS_RW_W, +/* 430 3270 RW SZ_W - DS */ ACCESS_NA_NA, +/* 431 3271 RW SZ_W - SS */ ACCESS_NA_NA, +/* 432 3300 RW SZ_D DFLT DS */ ACCESS_DS_RW_D, +/* 433 3301 RW SZ_D DFLT SS */ ACCESS_SS_RW_D, +/* 434 3310 RW SZ_D ES DS */ ACCESS_ES_RW_D, +/* 435 3311 RW SZ_D ES SS */ ACCESS_ES_RW_D, +/* 436 3320 RW SZ_D CS DS */ ACCESS_CS_RW_D, +/* 437 3321 RW SZ_D CS SS */ ACCESS_CS_RW_D, +/* 438 3330 RW SZ_D SS DS */ ACCESS_SS_RW_D, +/* 439 3331 RW SZ_D SS SS */ ACCESS_SS_RW_D, +/* 440 3340 RW SZ_D DS DS */ ACCESS_DS_RW_D, +/* 441 3341 RW SZ_D DS SS */ ACCESS_DS_RW_D, +/* 442 3350 RW SZ_D FS DS */ ACCESS_FS_RW_D, +/* 443 3351 RW SZ_D FS SS */ ACCESS_FS_RW_D, +/* 444 3360 RW SZ_D GS DS */ ACCESS_GS_RW_D, +/* 445 3361 RW SZ_D GS SS */ ACCESS_GS_RW_D, +/* 446 3370 RW SZ_D - DS */ ACCESS_NA_NA, +/* 447 3371 RW SZ_D - SS */ ACCESS_NA_NA, +/* 448 3400 RW SZ_W DFLT DS */ ACCESS_DS_RW_W, +/* 449 3401 RW SZ_W DFLT SS */ ACCESS_SS_RW_W, +/* 450 3410 RW SZ_W ES DS */ ACCESS_ES_RW_W, +/* 451 3411 RW SZ_W ES SS */ ACCESS_ES_RW_W, +/* 452 3420 RW SZ_W CS DS */ ACCESS_CS_RW_W, +/* 453 3421 RW SZ_W CS SS */ ACCESS_CS_RW_W, +/* 454 3430 RW SZ_W SS DS */ ACCESS_SS_RW_W, +/* 455 3431 RW SZ_W SS SS */ ACCESS_SS_RW_W, +/* 456 3440 RW SZ_W DS DS */ ACCESS_DS_RW_W, +/* 457 3441 RW SZ_W DS SS */ ACCESS_DS_RW_W, +/* 458 3450 RW SZ_W FS DS */ ACCESS_FS_RW_W, +/* 459 3451 RW SZ_W FS SS */ ACCESS_FS_RW_W, +/* 460 3460 RW SZ_W GS DS */ ACCESS_GS_RW_W, +/* 461 3461 RW SZ_W GS SS */ ACCESS_GS_RW_W, +/* 462 3470 RW SZ_W - DS */ ACCESS_NA_NA, +/* 463 3471 RW SZ_W - SS */ ACCESS_NA_NA, +/* 464 3500 RW - DFLT DS */ ACCESS_NA_NA, +/* 465 3501 RW - DFLT SS */ ACCESS_NA_NA, +/* 466 3510 RW - ES DS */ ACCESS_NA_NA, +/* 467 3511 RW - ES SS */ ACCESS_NA_NA, +/* 468 3520 RW - CS DS */ ACCESS_NA_NA, +/* 469 3521 RW - CS SS */ ACCESS_NA_NA, +/* 470 3530 RW - SS DS */ ACCESS_NA_NA, +/* 471 3531 RW - SS SS */ ACCESS_NA_NA, +/* 472 3540 RW - DS DS */ ACCESS_NA_NA, +/* 473 3541 RW - DS SS */ ACCESS_NA_NA, +/* 474 3550 RW - FS DS */ ACCESS_NA_NA, +/* 475 3551 RW - FS SS */ ACCESS_NA_NA, +/* 476 3560 RW - GS DS */ ACCESS_NA_NA, +/* 477 3561 RW - GS SS */ ACCESS_NA_NA, +/* 478 3570 RW - - DS */ ACCESS_NA_NA, +/* 479 3571 RW - - SS */ ACCESS_NA_NA, +/* 480 3600 RW SZ_W2 DFLT DS */ ACCESS_NA_NA, +/* 481 3601 RW SZ_W2 DFLT SS */ ACCESS_NA_NA, +/* 482 3610 RW SZ_W2 ES DS */ ACCESS_NA_NA, +/* 483 3611 RW SZ_W2 ES SS */ ACCESS_NA_NA, +/* 484 3620 RW SZ_W2 CS DS */ ACCESS_NA_NA, +/* 485 3621 RW SZ_W2 CS SS */ ACCESS_NA_NA, +/* 486 3630 RW SZ_W2 SS DS */ ACCESS_NA_NA, +/* 487 3631 RW SZ_W2 SS SS */ ACCESS_NA_NA, +/* 488 3640 RW SZ_W2 DS DS */ ACCESS_NA_NA, +/* 489 3641 RW SZ_W2 DS SS */ ACCESS_NA_NA, +/* 490 3650 RW SZ_W2 FS DS */ ACCESS_NA_NA, +/* 491 3651 RW SZ_W2 FS SS */ ACCESS_NA_NA, +/* 492 3660 RW SZ_W2 GS DS */ ACCESS_NA_NA, +/* 493 3661 RW SZ_W2 GS SS */ ACCESS_NA_NA, +/* 494 3670 RW SZ_W2 - DS */ ACCESS_NA_NA, +/* 495 3671 RW SZ_W2 - SS */ ACCESS_NA_NA, +/* 496 3700 RW SZ_WD DFLT DS */ ACCESS_NA_NA, +/* 497 3701 RW SZ_WD DFLT SS */ ACCESS_NA_NA, +/* 498 3710 RW SZ_WD ES DS */ ACCESS_NA_NA, +/* 499 3711 RW SZ_WD ES SS */ ACCESS_NA_NA, +/* 500 3720 RW SZ_WD CS DS */ ACCESS_NA_NA, +/* 501 3721 RW SZ_WD CS SS */ ACCESS_NA_NA, +/* 502 3730 RW SZ_WD SS DS */ ACCESS_NA_NA, +/* 503 3731 RW SZ_WD SS SS */ ACCESS_NA_NA, +/* 504 3740 RW SZ_WD DS DS */ ACCESS_NA_NA, +/* 505 3741 RW SZ_WD DS SS */ ACCESS_NA_NA, +/* 506 3750 RW SZ_WD FS DS */ ACCESS_NA_NA, +/* 507 3751 RW SZ_WD FS SS */ ACCESS_NA_NA, +/* 508 3760 RW SZ_WD GS DS */ ACCESS_NA_NA, +/* 509 3761 RW SZ_WD GS SS */ ACCESS_NA_NA, +/* 510 3770 RW SZ_WD - DS */ ACCESS_NA_NA, +/* 511 3771 RW SZ_WD - SS */ ACCESS_NA_NA diff --git a/private/mvdm/softpc.new/base/cvidc/access_c.h b/private/mvdm/softpc.new/base/cvidc/access_c.h new file mode 100644 index 000000000..4cb33c9e5 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/access_c.h @@ -0,0 +1,37 @@ +#ifndef _Access_c_h +#define _Access_c_h +enum AccessShapeEnum +{ + AccessShapeRD_B = 0, + AccessShapeRD_W = 1, + AccessShapeRD_D = 2, + AccessShapeWT_B = 3, + AccessShapeWT_W = 4, + AccessShapeWT_D = 5, + AccessShapeRW_B = 6, + AccessShapeRW_W = 7, + AccessShapeRW_D = 8, + AccessShapeRD_W2 = 9, + AccessShapeRD_WD = 10, + AccessShapeWT_WD = 11, + AccessShapeRD_DW = 12, + AccessShapeRD_8B = 13, + AccessShapeWT_8B = 14, + AccessShapeRD_10B = 15, + AccessShapeWT_10B = 16, + AccessShapeRD_14B = 17, + AccessShapeWT_14B = 18, + AccessShapeRD_94B = 19, + AccessShapeWT_94B = 20 +}; +enum AccessCheckType +{ + DoNoCheck = 0, + DoReadCheck = 1, + DoWriteCheck = 2 +}; +struct OpndBuffREC +{ + IU32 dWords[32]; +}; +#endif /* ! _Access_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/accessfn.c b/private/mvdm/softpc.new/base/cvidc/accessfn.c new file mode 100644 index 000000000..1b4acb4e0 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/accessfn.c @@ -0,0 +1,1622 @@ +/*[ + * Generated File: accessfn.c + * +]*/ + +#ifndef PROD +#include "insignia.h" +#include "host_inc.h" +#include "host_def.h" +#include "Fpu_c.h" +#include "Pigger_c.h" +#include "Univer_c.h" +#define CPU_PRIVATE +#include "cpu4.h" +#include "sas.h" +#include "evidgen.h" + +void cpu_simulate IFN0() +{ + (*(Cpu.Simulate))(); +} + +void cpu_interrupt IFN2(CPU_INT_TYPE, intType, IU16, intNum) +{ + (*(Cpu.Interrupt))(intType, intNum); +} + +void cpu_clearHwInt IFN0() +{ + (*(Cpu.ClearHwInt))(); +} + +void cpu_EOA_hook IFN0() +{ + (*(Cpu.EndOfApplication))(); +} + +void cpu_terminate IFN0() +{ + (*(Cpu.Terminate))(); +} + +void cpu_init IFN0() +{ + (*(Cpu.Initialise))(); +} + +void host_q_ev_set_count IFN1(IU32, val) +{ + (*(Cpu.SetQuickEventCount))(val); +} + +IU32 host_q_ev_get_count IFN0() +{ + IU32 count; + count = (*(Cpu.GetQuickEventCount))(); + return count; +} + +IU32 host_calc_q_ev_inst_for_time IFN1(IU32, val) +{ + IU32 result; + result = (*(Cpu.CalcQuickEventInstTime))(val); + return result; +} + +void cpu_init_ios_in IFN4(IHP, InTables, IHP, OutTables, IUH, maxAdaptor, IU16, portMask) +{ + (*(Cpu.InitIOS))(InTables, OutTables, maxAdaptor, portMask); +} + +void ios_define_inb IFN2(IUH, adaptor, IHP, func) +{ + (*(Cpu.DefineInb))(adaptor, func); +} + +void ios_define_inw IFN2(IUH, adaptor, IHP, func) +{ + (*(Cpu.DefineInw))(adaptor, func); +} + +void ios_define_ind IFN2(IUH, adaptor, IHP, func) +{ + (*(Cpu.DefineInd))(adaptor, func); +} + +void ios_define_outb IFN2(IUH, adaptor, IHP, func) +{ + (*(Cpu.DefineOutb))(adaptor, func); +} + +void ios_define_outw IFN2(IUH, adaptor, IHP, func) +{ + (*(Cpu.DefineOutw))(adaptor, func); +} + +void ios_define_outd IFN2(IUH, adaptor, IHP, func) +{ + (*(Cpu.DefineOutd))(adaptor, func); +} + +void setAL IFN1(IU8, val) +{ + (*(Cpu.SetAL))(val); +} + +void setAH IFN1(IU8, val) +{ + (*(Cpu.SetAH))(val); +} + +void setAX IFN1(IU16, val) +{ + (*(Cpu.SetAX))(val); +} + +void setEAX IFN1(IU32, val) +{ + (*(Cpu.SetEAX))(val); +} + +void setBL IFN1(IU8, val) +{ + (*(Cpu.SetBL))(val); +} + +void setBH IFN1(IU8, val) +{ + (*(Cpu.SetBH))(val); +} + +void setBX IFN1(IU16, val) +{ + (*(Cpu.SetBX))(val); +} + +void setEBX IFN1(IU32, val) +{ + (*(Cpu.SetEBX))(val); +} + +void setCL IFN1(IU8, val) +{ + (*(Cpu.SetCL))(val); +} + +void setCH IFN1(IU8, val) +{ + (*(Cpu.SetCH))(val); +} + +void setCX IFN1(IU16, val) +{ + (*(Cpu.SetCX))(val); +} + +void setECX IFN1(IU32, val) +{ + (*(Cpu.SetECX))(val); +} + +void setDL IFN1(IU8, val) +{ + (*(Cpu.SetDL))(val); +} + +void setDH IFN1(IU8, val) +{ + (*(Cpu.SetDH))(val); +} + +void setDX IFN1(IU16, val) +{ + (*(Cpu.SetDX))(val); +} + +void setEDX IFN1(IU32, val) +{ + (*(Cpu.SetEDX))(val); +} + +void setSI IFN1(IU16, val) +{ + (*(Cpu.SetSI))(val); +} + +void setESI IFN1(IU32, val) +{ + (*(Cpu.SetESI))(val); +} + +void setDI IFN1(IU16, val) +{ + (*(Cpu.SetDI))(val); +} + +void setEDI IFN1(IU32, val) +{ + (*(Cpu.SetEDI))(val); +} + +void setSP IFN1(IU16, val) +{ + (*(Cpu.SetSP))(val); +} + +void setESP IFN1(IU32, val) +{ + (*(Cpu.SetESP))(val); +} + +void setBP IFN1(IU16, val) +{ + (*(Cpu.SetBP))(val); +} + +void setEBP IFN1(IU32, val) +{ + (*(Cpu.SetEBP))(val); +} + +void setIP IFN1(IU16, val) +{ + (*(Cpu.SetIP))(val); +} + +void setEIP IFN1(IU32, val) +{ + (*(Cpu.SetEIP))(val); +} + +IUH setCS IFN1(IU16, val) +{ + IUH err; + err = (*(Cpu.SetCS))(val); + return err; +} + +IUH setSS IFN1(IU16, val) +{ + IUH err; + err = (*(Cpu.SetSS))(val); + return err; +} + +IUH setDS IFN1(IU16, val) +{ + IUH err; + err = (*(Cpu.SetDS))(val); + return err; +} + +IUH setES IFN1(IU16, val) +{ + IUH err; + err = (*(Cpu.SetES))(val); + return err; +} + +IUH setFS IFN1(IU16, val) +{ + IUH err; + err = (*(Cpu.SetFS))(val); + return err; +} + +IUH setGS IFN1(IU16, val) +{ + IUH err; + err = (*(Cpu.SetGS))(val); + return err; +} + +void setEFLAGS IFN1(IU32, val) +{ + (*(Cpu.SetEFLAGS))(val); +} + +void setSTATUS IFN1(IU16, val) +{ + (*(Cpu.SetSTATUS))(val); +} + +void setIOPL IFN1(IU8, val) +{ + (*(Cpu.SetIOPL))(val); +} + +void setMSW IFN1(IU16, val) +{ + (*(Cpu.SetMSW))(val); +} + +void setCR0 IFN1(IU32, val) +{ + (*(Cpu.SetCR0))(val); +} + +void setCR2 IFN1(IU32, val) +{ + (*(Cpu.SetCR2))(val); +} + +void setCR3 IFN1(IU32, val) +{ + (*(Cpu.SetCR3))(val); +} + +void setCF IFN1(IBOOL, val) +{ + (*(Cpu.SetCF))(val); +} + +void setPF IFN1(IBOOL, val) +{ + (*(Cpu.SetPF))(val); +} + +void setAF IFN1(IBOOL, val) +{ + (*(Cpu.SetAF))(val); +} + +void setZF IFN1(IBOOL, val) +{ + (*(Cpu.SetZF))(val); +} + +void setSF IFN1(IBOOL, val) +{ + (*(Cpu.SetSF))(val); +} + +void setTF IFN1(IBOOL, val) +{ + (*(Cpu.SetTF))(val); +} + +void setIF IFN1(IBOOL, val) +{ + (*(Cpu.SetIF))(val); +} + +void setDF IFN1(IBOOL, val) +{ + (*(Cpu.SetDF))(val); +} + +void setOF IFN1(IBOOL, val) +{ + (*(Cpu.SetOF))(val); +} + +void setNT IFN1(IBOOL, val) +{ + (*(Cpu.SetNT))(val); +} + +void setRF IFN1(IBOOL, val) +{ + (*(Cpu.SetRF))(val); +} + +void setVM IFN1(IBOOL, val) +{ + (*(Cpu.SetVM))(val); +} + +void setAC IFN1(IBOOL, val) +{ + (*(Cpu.SetAC))(val); +} + +void setPE IFN1(IBOOL, val) +{ + (*(Cpu.SetPE))(val); +} + +void setMP IFN1(IBOOL, val) +{ + (*(Cpu.SetMP))(val); +} + +void setEM IFN1(IBOOL, val) +{ + (*(Cpu.SetEM))(val); +} + +void setTS IFN1(IBOOL, val) +{ + (*(Cpu.SetTS))(val); +} + +void setPG IFN1(IBOOL, val) +{ + (*(Cpu.SetPG))(val); +} + +void setLDT_SELECTOR IFN1(IU16, val) +{ + (*(Cpu.SetLDT_SELECTOR))(val); +} + +void setTR_SELECTOR IFN1(IU16, val) +{ + (*(Cpu.SetTR_SELECTOR))(val); +} + +IU8 getAL IFN0() +{ + IU8 result; + result = (*(Cpu.GetAL))(); + return result; +} + +IU8 getAH IFN0() +{ + IU8 result; + result = (*(Cpu.GetAH))(); + return result; +} + +IU16 getAX IFN0() +{ + IU16 result; + result = (*(Cpu.GetAX))(); + return result; +} + +IU32 getEAX IFN0() +{ + IU32 result; + result = (*(Cpu.GetEAX))(); + return result; +} + +IU8 getBL IFN0() +{ + IU8 result; + result = (*(Cpu.GetBL))(); + return result; +} + +IU8 getBH IFN0() +{ + IU8 result; + result = (*(Cpu.GetBH))(); + return result; +} + +IU16 getBX IFN0() +{ + IU16 result; + result = (*(Cpu.GetBX))(); + return result; +} + +IU32 getEBX IFN0() +{ + IU32 result; + result = (*(Cpu.GetEBX))(); + return result; +} + +IU8 getCL IFN0() +{ + IU8 result; + result = (*(Cpu.GetCL))(); + return result; +} + +IU8 getCH IFN0() +{ + IU8 result; + result = (*(Cpu.GetCH))(); + return result; +} + +IU16 getCX IFN0() +{ + IU16 result; + result = (*(Cpu.GetCX))(); + return result; +} + +IU32 getECX IFN0() +{ + IU32 result; + result = (*(Cpu.GetECX))(); + return result; +} + +IU8 getDL IFN0() +{ + IU8 result; + result = (*(Cpu.GetDL))(); + return result; +} + +IU8 getDH IFN0() +{ + IU8 result; + result = (*(Cpu.GetDH))(); + return result; +} + +IU16 getDX IFN0() +{ + IU16 result; + result = (*(Cpu.GetDX))(); + return result; +} + +IU32 getEDX IFN0() +{ + IU32 result; + result = (*(Cpu.GetEDX))(); + return result; +} + +IU16 getSI IFN0() +{ + IU16 result; + result = (*(Cpu.GetSI))(); + return result; +} + +IU32 getESI IFN0() +{ + IU32 result; + result = (*(Cpu.GetESI))(); + return result; +} + +IU16 getDI IFN0() +{ + IU16 result; + result = (*(Cpu.GetDI))(); + return result; +} + +IU32 getEDI IFN0() +{ + IU32 result; + result = (*(Cpu.GetEDI))(); + return result; +} + +IU16 getSP IFN0() +{ + IU16 result; + result = (*(Cpu.GetSP))(); + return result; +} + +IU32 getESP IFN0() +{ + IU32 result; + result = (*(Cpu.GetESP))(); + return result; +} + +IU16 getBP IFN0() +{ + IU16 result; + result = (*(Cpu.GetBP))(); + return result; +} + +IU32 getEBP IFN0() +{ + IU32 result; + result = (*(Cpu.GetEBP))(); + return result; +} + +IU16 getIP IFN0() +{ + IU16 result; + result = (*(Cpu.GetIP))(); + return result; +} + +IU32 getEIP IFN0() +{ + IU32 result; + result = (*(Cpu.GetEIP))(); + return result; +} + +IU16 getCS IFN0() +{ + IU16 result; + result = (*(Cpu.GetCS))(); + return result; +} + +IU16 getSS IFN0() +{ + IU16 result; + result = (*(Cpu.GetSS))(); + return result; +} + +IU16 getDS IFN0() +{ + IU16 result; + result = (*(Cpu.GetDS))(); + return result; +} + +IU16 getES IFN0() +{ + IU16 result; + result = (*(Cpu.GetES))(); + return result; +} + +IU16 getFS IFN0() +{ + IU16 result; + result = (*(Cpu.GetFS))(); + return result; +} + +IU16 getGS IFN0() +{ + IU16 result; + result = (*(Cpu.GetGS))(); + return result; +} + +IU32 getEFLAGS IFN0() +{ + IU32 result; + result = (*(Cpu.GetEFLAGS))(); + return result; +} + +IU16 getSTATUS IFN0() +{ + IU16 result; + result = (*(Cpu.GetSTATUS))(); + return result; +} + +IU8 getIOPL IFN0() +{ + IU8 result; + result = (*(Cpu.GetIOPL))(); + return result; +} + +IU16 getMSW IFN0() +{ + IU16 result; + result = (*(Cpu.GetMSW))(); + return result; +} + +IU32 getCR0 IFN0() +{ + IU32 result; + result = (*(Cpu.GetCR0))(); + return result; +} + +IU32 getCR2 IFN0() +{ + IU32 result; + result = (*(Cpu.GetCR2))(); + return result; +} + +IU32 getCR3 IFN0() +{ + IU32 result; + result = (*(Cpu.GetCR3))(); + return result; +} + +IBOOL getCF IFN0() +{ + IBOOL result; + result = (*(Cpu.GetCF))(); + return result; +} + +IBOOL getPF IFN0() +{ + IBOOL result; + result = (*(Cpu.GetPF))(); + return result; +} + +IBOOL getAF IFN0() +{ + IBOOL result; + result = (*(Cpu.GetAF))(); + return result; +} + +IBOOL getZF IFN0() +{ + IBOOL result; + result = (*(Cpu.GetZF))(); + return result; +} + +IBOOL getSF IFN0() +{ + IBOOL result; + result = (*(Cpu.GetSF))(); + return result; +} + +IBOOL getTF IFN0() +{ + IBOOL result; + result = (*(Cpu.GetTF))(); + return result; +} + +IBOOL getIF IFN0() +{ + IBOOL result; + result = (*(Cpu.GetIF))(); + return result; +} + +IBOOL getDF IFN0() +{ + IBOOL result; + result = (*(Cpu.GetDF))(); + return result; +} + +IBOOL getOF IFN0() +{ + IBOOL result; + result = (*(Cpu.GetOF))(); + return result; +} + +IBOOL getNT IFN0() +{ + IBOOL result; + result = (*(Cpu.GetNT))(); + return result; +} + +IBOOL getRF IFN0() +{ + IBOOL result; + result = (*(Cpu.GetRF))(); + return result; +} + +IBOOL getVM IFN0() +{ + IBOOL result; + result = (*(Cpu.GetVM))(); + return result; +} + +IBOOL getAC IFN0() +{ + IBOOL result; + result = (*(Cpu.GetAC))(); + return result; +} + +IBOOL getPE IFN0() +{ + IBOOL result; + result = (*(Cpu.GetPE))(); + return result; +} + +IBOOL getMP IFN0() +{ + IBOOL result; + result = (*(Cpu.GetMP))(); + return result; +} + +IBOOL getEM IFN0() +{ + IBOOL result; + result = (*(Cpu.GetEM))(); + return result; +} + +IBOOL getTS IFN0() +{ + IBOOL result; + result = (*(Cpu.GetTS))(); + return result; +} + +IBOOL getET IFN0() +{ + IBOOL result; + result = (*(Cpu.GetET))(); + return result; +} + +IBOOL getNE IFN0() +{ + IBOOL result; + result = (*(Cpu.GetNE))(); + return result; +} + +IBOOL getWP IFN0() +{ + IBOOL result; + result = (*(Cpu.GetWP))(); + return result; +} + +IBOOL getPG IFN0() +{ + IBOOL result; + result = (*(Cpu.GetPG))(); + return result; +} + +IU32 getGDT_BASE IFN0() +{ + IU32 result; + result = (*(Cpu.GetGDT_BASE))(); + return result; +} + +IU16 getGDT_LIMIT IFN0() +{ + IU16 result; + result = (*(Cpu.GetGDT_LIMIT))(); + return result; +} + +IU32 getIDT_BASE IFN0() +{ + IU32 result; + result = (*(Cpu.GetIDT_BASE))(); + return result; +} + +IU16 getIDT_LIMIT IFN0() +{ + IU16 result; + result = (*(Cpu.GetIDT_LIMIT))(); + return result; +} + +IU16 getLDT_SELECTOR IFN0() +{ + IU16 result; + result = (*(Cpu.GetLDT_SELECTOR))(); + return result; +} + +IU32 getLDT_BASE IFN0() +{ + IU32 result; + result = (*(Cpu.GetLDT_BASE))(); + return result; +} + +IU32 getLDT_LIMIT IFN0() +{ + IU32 result; + result = (*(Cpu.GetLDT_LIMIT))(); + return result; +} + +IU16 getTR_SELECTOR IFN0() +{ + IU16 result; + result = (*(Cpu.GetTR_SELECTOR))(); + return result; +} + +IU32 getTR_BASE IFN0() +{ + IU32 result; + result = (*(Cpu.GetTR_BASE))(); + return result; +} + +IU32 getTR_LIMIT IFN0() +{ + IU32 result; + result = (*(Cpu.GetTR_LIMIT))(); + return result; +} + +IU16 getTR_AR IFN0() +{ + IU16 result; + result = (*(Cpu.GetTR_AR))(); + return result; +} + +IUH host_get_q_calib_val IFN0() +{ + IUH calibrate; + calibrate = (*(Cpu.GetJumpCalibrateVal))(); + return calibrate; +} + +IUH host_get_jump_restart IFN0() +{ + IUH initval; + initval = (*(Cpu.GetJumpInitialVal))(); + return initval; +} + +void host_set_jump_restart IFN1(IUH, initialVal) +{ + (*(Cpu.SetJumpInitialVal))(initialVal); +} + +void setEOIEnableAddr IFN1(IU8 *, initialVal) +{ + (*(Cpu.SetEOIEnable))(initialVal); +} + +void setAddProfileDataPtr IFN1(IHP, initialVal) +{ + (*(Cpu.SetAddProfileData))(initialVal); +} + +void setMaxProfileDataAddr IFN1(IHP, initialVal) +{ + (*(Cpu.SetMaxProfileData))(initialVal); +} + +IHP getAddProfileDataAddr IFN0() +{ + IHP result; + result = (*(Cpu.GetAddProfileDataAddr))(); + return result; +} + +void PurgeLostIretHookLine IFN1(IU16, lineNum) +{ + (*(Cpu.PurgeLostIretHookLine))(lineNum); +} + +IHP getSadInfoTable IFN0() +{ + IHP tabPtr; + tabPtr = (*((*(Cpu.Private)).GetSadInfoTable))(); + return tabPtr; +} + +IBOOL setGDT_BASE_LIMIT IFN2(IU32, base, IU16, limit) +{ + IBOOL Success; + Success = (*((*(Cpu.Private)).SetGDT_BASE_LIMIT))(base, limit); + return Success; +} + +IBOOL setIDT_BASE_LIMIT IFN2(IU32, base, IU16, limit) +{ + IBOOL Success; + Success = (*((*(Cpu.Private)).SetIDT_BASE_LIMIT))(base, limit); + return Success; +} + +IBOOL setLDT_BASE_LIMIT IFN2(IU32, base, IU32, limit) +{ + IBOOL Success; + Success = (*((*(Cpu.Private)).SetLDT_BASE_LIMIT))(base, limit); + return Success; +} + +IBOOL setTR_BASE_LIMIT IFN2(IU32, base, IU32, limit) +{ + IBOOL Success; + Success = (*((*(Cpu.Private)).SetTR_BASE_LIMIT))(base, limit); + return Success; +} + +IBOOL setTR_BASE_LIMIT_AR IFN3(IU32, base, IU32, limit, IU16, ar) +{ + IBOOL Success; + Success = (*((*(Cpu.Private)).SetTR_BASE_LIMIT_AR))(base, limit, ar); + return Success; +} + +IBOOL setCS_BASE_LIMIT_AR IFN3(IU32, base, IU32, limit, IU16, ar) +{ + IBOOL Success; + Success = (*((*(Cpu.Private)).SetCS_BASE_LIMIT_AR))(base, limit, ar); + return Success; +} + +IBOOL setSS_BASE_LIMIT_AR IFN3(IU32, base, IU32, limit, IU16, ar) +{ + IBOOL Success; + Success = (*((*(Cpu.Private)).SetSS_BASE_LIMIT_AR))(base, limit, ar); + return Success; +} + +IBOOL setDS_BASE_LIMIT_AR IFN3(IU32, base, IU32, limit, IU16, ar) +{ + IBOOL Success; + Success = (*((*(Cpu.Private)).SetDS_BASE_LIMIT_AR))(base, limit, ar); + return Success; +} + +IBOOL setES_BASE_LIMIT_AR IFN3(IU32, base, IU32, limit, IU16, ar) +{ + IBOOL Success; + Success = (*((*(Cpu.Private)).SetES_BASE_LIMIT_AR))(base, limit, ar); + return Success; +} + +IBOOL setFS_BASE_LIMIT_AR IFN3(IU32, base, IU32, limit, IU16, ar) +{ + IBOOL Success; + Success = (*((*(Cpu.Private)).SetFS_BASE_LIMIT_AR))(base, limit, ar); + return Success; +} + +IBOOL setGS_BASE_LIMIT_AR IFN3(IU32, base, IU32, limit, IU16, ar) +{ + IBOOL Success; + Success = (*((*(Cpu.Private)).SetGS_BASE_LIMIT_AR))(base, limit, ar); + return Success; +} + +void setCS_SELECTOR IFN1(IU16, val) +{ + (*((*(Cpu.Private)).SetCS_SELECTOR))(val); +} + +void setSS_SELECTOR IFN1(IU16, val) +{ + (*((*(Cpu.Private)).SetSS_SELECTOR))(val); +} + +void setDS_SELECTOR IFN1(IU16, val) +{ + (*((*(Cpu.Private)).SetDS_SELECTOR))(val); +} + +void setES_SELECTOR IFN1(IU16, val) +{ + (*((*(Cpu.Private)).SetES_SELECTOR))(val); +} + +void setFS_SELECTOR IFN1(IU16, val) +{ + (*((*(Cpu.Private)).SetFS_SELECTOR))(val); +} + +void setGS_SELECTOR IFN1(IU16, val) +{ + (*((*(Cpu.Private)).SetGS_SELECTOR))(val); +} + +IU16 getCS_SELECTOR IFN0() +{ + IU16 result; + result = (*((*(Cpu.Private)).GetCS_SELECTOR))(); + return result; +} + +IU16 getSS_SELECTOR IFN0() +{ + IU16 result; + result = (*((*(Cpu.Private)).GetSS_SELECTOR))(); + return result; +} + +IU16 getDS_SELECTOR IFN0() +{ + IU16 result; + result = (*((*(Cpu.Private)).GetDS_SELECTOR))(); + return result; +} + +IU16 getES_SELECTOR IFN0() +{ + IU16 result; + result = (*((*(Cpu.Private)).GetES_SELECTOR))(); + return result; +} + +IU16 getFS_SELECTOR IFN0() +{ + IU16 result; + result = (*((*(Cpu.Private)).GetFS_SELECTOR))(); + return result; +} + +IU16 getGS_SELECTOR IFN0() +{ + IU16 result; + result = (*((*(Cpu.Private)).GetGS_SELECTOR))(); + return result; +} + +IU32 getCS_BASE IFN0() +{ + IU32 result; + result = (*((*(Cpu.Private)).GetCS_BASE))(); + return result; +} + +IU32 getSS_BASE IFN0() +{ + IU32 result; + result = (*((*(Cpu.Private)).GetSS_BASE))(); + return result; +} + +IU32 getDS_BASE IFN0() +{ + IU32 result; + result = (*((*(Cpu.Private)).GetDS_BASE))(); + return result; +} + +IU32 getES_BASE IFN0() +{ + IU32 result; + result = (*((*(Cpu.Private)).GetES_BASE))(); + return result; +} + +IU32 getFS_BASE IFN0() +{ + IU32 result; + result = (*((*(Cpu.Private)).GetFS_BASE))(); + return result; +} + +IU32 getGS_BASE IFN0() +{ + IU32 result; + result = (*((*(Cpu.Private)).GetGS_BASE))(); + return result; +} + +IU32 getCS_LIMIT IFN0() +{ + IU32 result; + result = (*((*(Cpu.Private)).GetCS_LIMIT))(); + return result; +} + +IU32 getSS_LIMIT IFN0() +{ + IU32 result; + result = (*((*(Cpu.Private)).GetSS_LIMIT))(); + return result; +} + +IU32 getDS_LIMIT IFN0() +{ + IU32 result; + result = (*((*(Cpu.Private)).GetDS_LIMIT))(); + return result; +} + +IU32 getES_LIMIT IFN0() +{ + IU32 result; + result = (*((*(Cpu.Private)).GetES_LIMIT))(); + return result; +} + +IU32 getFS_LIMIT IFN0() +{ + IU32 result; + result = (*((*(Cpu.Private)).GetFS_LIMIT))(); + return result; +} + +IU32 getGS_LIMIT IFN0() +{ + IU32 result; + result = (*((*(Cpu.Private)).GetGS_LIMIT))(); + return result; +} + +IU16 getCS_AR IFN0() +{ + IU16 result; + result = (*((*(Cpu.Private)).GetCS_AR))(); + return result; +} + +IU16 getSS_AR IFN0() +{ + IU16 result; + result = (*((*(Cpu.Private)).GetSS_AR))(); + return result; +} + +IU16 getDS_AR IFN0() +{ + IU16 result; + result = (*((*(Cpu.Private)).GetDS_AR))(); + return result; +} + +IU16 getES_AR IFN0() +{ + IU16 result; + result = (*((*(Cpu.Private)).GetES_AR))(); + return result; +} + +IU16 getFS_AR IFN0() +{ + IU16 result; + result = (*((*(Cpu.Private)).GetFS_AR))(); + return result; +} + +IU16 getGS_AR IFN0() +{ + IU16 result; + result = (*((*(Cpu.Private)).GetGS_AR))(); + return result; +} + +IUH getCPL IFN0() +{ + IUH result; + result = (*((*(Cpu.Private)).GetCPL))(); + return result; +} + +void setCPL IFN1(IUH, prot) +{ + (*((*(Cpu.Private)).SetCPL))(prot); +} + +void getCpuState IFN1(TypeCpuStateRECptr, state) +{ + (*((*(Cpu.Private)).GetCpuState))(state); +} + +void setCpuState IFN1(TypeCpuStateRECptr, state) +{ + (*((*(Cpu.Private)).SetCpuState))(state); +} + +void initNanoCpu IFN1(IU32, variety) +{ + (*((*(Cpu.Private)).InitNanoCpu))(variety); +} + +void prepareBlocksToCompile IFN1(IU32, variety) +{ + (*((*(Cpu.Private)).PrepareBlocksToCompile))(variety); +} + +void setRegConstraint IFN2(IU32, regId, IU8, constraintType) +{ + (*((*(Cpu.Private)).SetRegConstraint))(regId, constraintType); +} + +void growRecPool IFN0() +{ + (*((*(Cpu.Private)).GrowRecPool))(); +} + +void BpiCompileBPI IFN1(char *, instructions) +{ + (*((*(Cpu.Private)).BpiCompileBPI))(instructions); +} + +void trashIntelregisters IFN0() +{ + (*((*(Cpu.Private)).TrashIntelRegisters))(); +} + +void FmDeleteAllStructures IFN1(IU32, newCR0) +{ + (*((*(Cpu.Private)).FmDeleteAllStructures))(newCR0); +} + +TypeConstraintBitMapRECptr constraintsFromUnivEpcPtr IFN1(TypeEntryPointCacheRECptr, univ) +{ + TypeConstraintBitMapRECptr result; + result = (*((*(Cpu.Private)).ConstraintsFromUnivEpcPtr))(univ); + return result; +} + +TypeConstraintBitMapRECptr constraintsFromUnivHandle IFN1(IU16, handle) +{ + TypeConstraintBitMapRECptr result; + result = (*((*(Cpu.Private)).ConstraintsFromUnivHandle))(handle); + return result; +} + +IU32 sas_memory_size IFN0() +{ + IU32 result; + result = (*(Sas.Sas_memory_size))(); + return result; +} + +void sas_connect_memory IFN3(IU32, lo_addr, IU32, Int_addr, SAS_MEM_TYPE, type) +{ + (*(Sas.Sas_connect_memory))(lo_addr, Int_addr, type); +} + +void sas_enable_20_bit_wrapping IFN0() +{ + (*(Sas.Sas_enable_20_bit_wrapping))(); +} + +void sas_disable_20_bit_wrapping IFN0() +{ + (*(Sas.Sas_disable_20_bit_wrapping))(); +} + +IBOOL sas_twenty_bit_wrapping_enabled IFN0() +{ + IBOOL result; + result = (*(Sas.Sas_twenty_bit_wrapping_enabled))(); + return result; +} + +SAS_MEM_TYPE sas_memory_type IFN1(IU32, addr) +{ + SAS_MEM_TYPE result; + result = (*(Sas.Sas_memory_type))(addr); + return result; +} + +IU8 sas_hw_at IFN1(IU32, addr) +{ + IU8 result; + result = (*(Sas.Sas_hw_at))(addr); + return result; +} + +IU16 sas_w_at IFN1(IU32, addr) +{ + IU16 result; + result = (*(Sas.Sas_w_at))(addr); + return result; +} + +IU32 sas_dw_at IFN1(IU32, addr) +{ + IU32 result; + result = (*(Sas.Sas_dw_at))(addr); + return result; +} + +IU8 sas_hw_at_no_check IFN1(IU32, addr) +{ + IU8 result; + result = (*(Sas.Sas_hw_at_no_check))(addr); + return result; +} + +IU16 sas_w_at_no_check IFN1(IU32, addr) +{ + IU16 result; + result = (*(Sas.Sas_w_at_no_check))(addr); + return result; +} + +IU32 sas_dw_at_no_check IFN1(IU32, addr) +{ + IU32 result; + result = (*(Sas.Sas_dw_at_no_check))(addr); + return result; +} + +void sas_store IFN2(IU32, addr, IU8, val) +{ + (*(Sas.Sas_store))(addr, val); +} + +void sas_storew IFN2(IU32, addr, IU16, val) +{ + (*(Sas.Sas_storew))(addr, val); +} + +void sas_storedw IFN2(IU32, addr, IU32, val) +{ + (*(Sas.Sas_storedw))(addr, val); +} + +void sas_store_no_check IFN2(IU32, addr, IU8, val) +{ + (*(Sas.Sas_store_no_check))(addr, val); +} + +void sas_storew_no_check IFN2(IU32, addr, IU16, val) +{ + (*(Sas.Sas_storew_no_check))(addr, val); +} + +void sas_storedw_no_check IFN2(IU32, addr, IU32, val) +{ + (*(Sas.Sas_storedw_no_check))(addr, val); +} + +void sas_loads IFN3(IU32, addr, IU8 *, stringptr, IU32, len) +{ + (*(Sas.Sas_loads))(addr, stringptr, len); +} + +void sas_stores IFN3(IU32, addr, IU8 *, stringptr, IU32, len) +{ + (*(Sas.Sas_stores))(addr, stringptr, len); +} + +void sas_loads_no_check IFN3(IU32, addr, IU8 *, stringptr, IU32, len) +{ + (*(Sas.Sas_loads_no_check))(addr, stringptr, len); +} + +void sas_stores_no_check IFN3(IU32, addr, IU8 *, stringptr, IU32, len) +{ + (*(Sas.Sas_stores_no_check))(addr, stringptr, len); +} + +void sas_move_bytes_forward IFN3(IU32, src, IU32, dest, IU32, len) +{ + (*(Sas.Sas_move_bytes_forward))(src, dest, len); +} + +void sas_move_words_forward IFN3(IU32, src, IU32, dest, IU32, len) +{ + (*(Sas.Sas_move_words_forward))(src, dest, len); +} + +void sas_move_doubles_forward IFN3(IU32, src, IU32, dest, IU32, len) +{ + (*(Sas.Sas_move_doubles_forward))(src, dest, len); +} + +void sas_move_bytes_backward IFN3(IU32, src, IU32, dest, IU32, len) +{ + (*(Sas.Sas_move_bytes_backward))(src, dest, len); +} + +void sas_move_words_backward IFN3(IU32, src, IU32, dest, IU32, len) +{ + (*(Sas.Sas_move_words_backward))(src, dest, len); +} + +void sas_move_doubles_backward IFN3(IU32, src, IU32, dest, IU32, len) +{ + (*(Sas.Sas_move_doubles_backward))(src, dest, len); +} + +void sas_fills IFN3(IU32, dest, IU8, val, IU32, len) +{ + (*(Sas.Sas_fills))(dest, val, len); +} + +void sas_fillsw IFN3(IU32, dest, IU16, val, IU32, len) +{ + (*(Sas.Sas_fillsw))(dest, val, len); +} + +void sas_fillsdw IFN3(IU32, dest, IU32, val, IU32, len) +{ + (*(Sas.Sas_fillsdw))(dest, val, len); +} + +IU8 * sas_scratch_address IFN1(IU32, length) +{ + IU8 * addr; + addr = (*(Sas.Sas_scratch_address))(length); + return addr; +} + +IU8 * sas_transbuf_address IFN2(IU32, dest_addr, IU32, length) +{ + IU8 * addr; + addr = (*(Sas.Sas_transbuf_address))(dest_addr, length); + return addr; +} + +void sas_loads_to_transbuf IFN3(IU32, src_addr, IU8 *, dest_addr, IU32, length) +{ + (*(Sas.Sas_loads_to_transbuf))(src_addr, dest_addr, length); +} + +void sas_stores_from_transbuf IFN3(IU32, dest_addr, IU8 *, src_addr, IU32, length) +{ + (*(Sas.Sas_stores_from_transbuf))(dest_addr, src_addr, length); +} + +IU8 sas_PR8 IFN1(IU32, addr) +{ + IU8 result; + result = (*(Sas.Sas_PR8))(addr); + return result; +} + +IU16 sas_PR16 IFN1(IU32, addr) +{ + IU16 result; + result = (*(Sas.Sas_PR16))(addr); + return result; +} + +IU32 sas_PR32 IFN1(IU32, addr) +{ + IU32 result; + result = (*(Sas.Sas_PR32))(addr); + return result; +} + +void sas_PW8 IFN2(IU32, addr, IU8, val) +{ + (*(Sas.Sas_PW8))(addr, val); +} + +void sas_PW16 IFN2(IU32, addr, IU16, val) +{ + (*(Sas.Sas_PW16))(addr, val); +} + +void sas_PW32 IFN2(IU32, addr, IU32, val) +{ + (*(Sas.Sas_PW32))(addr, val); +} + +void sas_PW8_no_check IFN2(IU32, addr, IU8, val) +{ + (*(Sas.Sas_PW8_no_check))(addr, val); +} + +void sas_PW16_no_check IFN2(IU32, addr, IU16, val) +{ + (*(Sas.Sas_PW16_no_check))(addr, val); +} + +void sas_PW32_no_check IFN2(IU32, addr, IU32, val) +{ + (*(Sas.Sas_PW32_no_check))(addr, val); +} + +IU8 * getPtrToPhysAddrByte IFN1(IU32, phys_addr) +{ + IU8 * host_address; + host_address = (*(Sas.SasPtrToPhysAddrByte))(phys_addr); + return host_address; +} + +IU8 * get_byte_addr IFN1(IU32, phys_addr) +{ + IU8 * host_address; + host_address = (*(Sas.Sas_get_byte_addr))(phys_addr); + return host_address; +} + +IU8 * getPtrToLinAddrByte IFN1(IU32, lin_addr) +{ + IU8 * host_address; + host_address = (*(Sas.SasPtrToLinAddrByte))(lin_addr); + return host_address; +} + +IBOOL sas_init_pm_selectors IFN2(IU16, sel1, IU16, sel2) +{ + IBOOL redundant; + redundant = (*(Sas.SasRegisterVirtualSelectors))(sel1, sel2); + return redundant; +} + +void sas_overwrite_memory IFN2(IU32, addr, IU32, length) +{ + (*(Sas.Sas_overwrite_memory))(addr, length); +} + +void sas_PWS IFN3(IU32, dest, IU8 *, src, IU32, len) +{ + (*(Sas.Sas_PWS))(dest, src, len); +} + +void sas_PWS_no_check IFN3(IU32, dest, IU8 *, src, IU32, len) +{ + (*(Sas.Sas_PWS_no_check))(dest, src, len); +} + +void sas_PRS IFN3(IU32, src, IU8 *, dest, IU32, len) +{ + (*(Sas.Sas_PRS))(src, dest, len); +} + +void sas_PRS_no_check IFN3(IU32, src, IU8 *, dest, IU32, len) +{ + (*(Sas.Sas_PRS_no_check))(src, dest, len); +} + +IBOOL sas_PigCmpPage IFN3(IU32, src, IU8 *, dest, IU32, len) +{ + IBOOL comp_OK; + comp_OK = (*(Sas.Sas_PigCmpPage))(src, dest, len); + return comp_OK; +} + +IBOOL IOVirtualised IFN4(IU16, port, IU32 *, value, IU32, offset, IU8, width) +{ + IBOOL isVirtual; + isVirtual = (*(Sas.IOVirtualised))(port, value, offset, width); + return isVirtual; +} + +#endif /* PROD */ +/*======================================== END ========================================*/ + diff --git a/private/mvdm/softpc.new/base/cvidc/add_c.h b/private/mvdm/softpc.new/base/cvidc/add_c.h new file mode 100644 index 000000000..dbfba4a2c --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/add_c.h @@ -0,0 +1,3 @@ +#ifndef _Add_c_h +#define _Add_c_h +#endif /* ! _Add_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/adjust_c.h b/private/mvdm/softpc.new/base/cvidc/adjust_c.h new file mode 100644 index 000000000..9c1b234c0 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/adjust_c.h @@ -0,0 +1,7 @@ +#ifndef _Adjust_c_h +#define _Adjust_c_h +#define LOWER_4_BITS (15) +#define NULL_MASK (0) +#define AFCF_SET (17) +#define AFCF_RESET (0) +#endif /* ! _Adjust_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/axphst_c.h b/private/mvdm/softpc.new/base/cvidc/axphst_c.h new file mode 100644 index 000000000..535f034ef --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/axphst_c.h @@ -0,0 +1,13 @@ +#ifndef _Axphst_c_h +#define _Axphst_c_h +#define AXP_HOST_ZERO_REG (31) +#define AXP_HOST_DEST_REG (13) +#define AXP_HOST_CALL_REG (26) +#define AXP_HOST_GDP_REG (29) +#define AxpPureAddressAdjustment (0) +#define AxpCallToRetAddrAdjustment (0) +#define AxpFpuOverflowExceptionMask (36) +#define AxpFpuOverflowExceptionBit (-1) +#define AxpFpuUnderflowExceptionBit (3) +#define AxpFpuPrecisionExceptionBit (4) +#endif /* ! _Axphst_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/bldr_c.h b/private/mvdm/softpc.new/base/cvidc/bldr_c.h new file mode 100644 index 000000000..fe9a5b6f5 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/bldr_c.h @@ -0,0 +1,7 @@ +#ifndef _Bldr_c_h +#define _Bldr_c_h +#define SizeByte (1) +#define SizeWord (2) +#define SizeTByte (3) +#define SizeDword (4) +#endif /* ! _Bldr_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/bodge_c.h b/private/mvdm/softpc.new/base/cvidc/bodge_c.h new file mode 100644 index 000000000..b1cb7f225 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/bodge_c.h @@ -0,0 +1,5 @@ +#ifndef _Bodge_c_h +#define _Bodge_c_h +#define AxpBranchCodeSizeAdjustment (1) +#define PpcBranchCodeSizeAdjustment (1) +#endif /* ! _Bodge_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/bound_c.h b/private/mvdm/softpc.new/base/cvidc/bound_c.h new file mode 100644 index 000000000..268de89ce --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/bound_c.h @@ -0,0 +1,3 @@ +#ifndef _Bound_c_h +#define _Bound_c_h +#endif /* ! _Bound_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/bpi_c.h b/private/mvdm/softpc.new/base/cvidc/bpi_c.h new file mode 100644 index 000000000..81b2545c4 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/bpi_c.h @@ -0,0 +1,108 @@ +#ifndef _Bpi_c_h +#define _Bpi_c_h +enum BpiInstruction +{ + BpiStart = 0, + BpiImmediate = 1, + BpiNeedsAL = 2, + BpiNeedsAX = 3, + BpiNeedsEAX = 4, + BpiNeedsBL = 5, + BpiNeedsBX = 6, + BpiNeedsEBX = 7, + BpiNeedsCL = 8, + BpiNeedsCX = 9, + BpiNeedsECX = 10, + BpiNeedsDL = 11, + BpiNeedsDX = 12, + BpiNeedsEDX = 13, + BpiNeedsBP = 14, + BpiNeedsEBP = 15, + BpiNeedsSP = 16, + BpiNeedsESP = 17, + BpiNeedsSI = 18, + BpiNeedsESI = 19, + BpiNeedsDI = 20, + BpiNeedsEDI = 21, + BpiNeedsEFLAGS = 22, + BpiGeneric = 23, + BpiAdd = 24, + BpiSub = 25, + BpiAnd = 26, + BpiOr = 27, + BpiXor = 28, + BpiLshift = 29, + BpiRshift = 30, + BpiTestEQ = 31, + BpiTestNE = 32, + BpiTestGE = 33, + BpiTestLE = 34, + BpiTestGT = 35, + BpiTestLT = 36, + BpiGet = 37, + BpiSwap = 38, + BpiGetAL = 39, + BpiGetAX = 40, + BpiGetEAX = 41, + BpiGetBL = 42, + BpiGetBX = 43, + BpiGetEBX = 44, + BpiGetCL = 45, + BpiGetCX = 46, + BpiGetECX = 47, + BpiGetDL = 48, + BpiGetDX = 49, + BpiGetEDX = 50, + BpiGetBP = 51, + BpiGetEBP = 52, + BpiGetSP = 53, + BpiGetESP = 54, + BpiGetSI = 55, + BpiGetESI = 56, + BpiGetDI = 57, + BpiGetEDI = 58, + BpiGetEIP = 59, + BpiGetEFLAGS = 60, + BpiGetCSbase = 61, + BpiGetCSsel = 62, + BpiGetDSbase = 63, + BpiGetDSsel = 64, + BpiGetESbase = 65, + BpiGetESsel = 66, + BpiGetFSbase = 67, + BpiGetFSsel = 68, + BpiGetGSbase = 69, + BpiGetGSsel = 70, + BpiGetSSbase = 71, + BpiGetSSsel = 72, + BpiGetFragment = 73, + BpiPrefixKnown = 74, + BpiPrefixWork = 75, + BpiPrefixLabel = 76, + BpiReadHostLs8 = 77, + BpiReadHostLs16 = 78, + BpiReadHostLs32 = 79, + BpiReadHostLsHbit = 80, + BpiReadCpuLs8 = 81, + BpiReadCpuLs16 = 82, + BpiReadCpuLs32 = 83, + BpiLabel = 84, + BpiStore = 85, + BpiCallC = 86, + BpiCall = 87, + BpiIfBranch = 88, + BpiElseBranch = 89, + BpiIfGoto = 90, + BpiElseGoto = 91, + BpiIfReturn = 92, + BpiElseReturn = 93, + BpiIfSad = 94, + BpiElseSad = 95, + BpiSad = 96, + BpiReturn = 97, + BpiCheckI = 98, + BpiGoto = 99, + BpiGetUNIV = 100, + BpiLastEntry = 101 +}; +#endif /* ! _Bpi_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/bswap_c.h b/private/mvdm/softpc.new/base/cvidc/bswap_c.h new file mode 100644 index 000000000..87e4f66c6 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/bswap_c.h @@ -0,0 +1,3 @@ +#ifndef _Bswap_c_h +#define _Bswap_c_h +#endif /* ! _Bswap_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/btest_c.h b/private/mvdm/softpc.new/base/cvidc/btest_c.h new file mode 100644 index 000000000..337aa7c4b --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/btest_c.h @@ -0,0 +1,3 @@ +#ifndef _BTest_c_h +#define _BTest_c_h +#endif /* ! _BTest_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/buffer_c.h b/private/mvdm/softpc.new/base/cvidc/buffer_c.h new file mode 100644 index 000000000..8cd40c6b2 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/buffer_c.h @@ -0,0 +1,103 @@ +#ifndef _Buffer_c_h +#define _Buffer_c_h +#define CodeOffsetScale (4) +#define CodeBufferSize (8192) +#define MaxCodeBufferOverrun (1500) +#define MaxCopiedCleanups (600) +#define BufferIndexNULL ((struct BufferIndexREC*)0) +#define nPartitionBits (5) +#define nPartitions (32) +#define DataHeaderNULL ((struct DataHeaderREC*)0) +#define FragmentIndexNULL ((struct FragmentIndexREC*)0) +#define FragmentDataNULL ((struct FragmentDataREC*)0) +#define CleanByteRemoveBase (207) +#define CleanByteAddBase (159) +#define CleanByteMaxFt (33) +#define CleanByteFtBase (126) +#define CleanByteMaxCodeUnits (125) +#define FragmentInfoNULL ((struct FragmentInfoREC*)0) +#define DebugInfoNULL ((struct DebugInfoREC*)0) +#define SavedIntelFragmentNULL ((struct SavedIntelFragmentREC*)0) +#define SavedIntelNULL ((struct SavedIntelREC*)0) +enum WhereAmItype +{ + CleanedWhereAmItype = 0, + BopWhereAmItype = 1, + CompileWhereAmItype = 2, + NormalWhereAmItype = 3 +}; +enum CompilationBufferType +{ + BufferTypeUnused = 0, + BufferTypeRecords = 1, + BufferTypeChained = 2, + BufferTypeCode = 3, + BufferTypeCompilation = 4, + BufferTypePendingDelete = 5, + BufferTypeBpi = 6 +}; +struct BufferIndexREC +{ + struct BufferIndexREC *moreRecent; + struct BufferIndexREC *lessRecent; + struct BufferIndexREC *headOfLRUchain; + IU8 type; + IU16 bufferNumber; + IU8 *dataBuffer; + IU32 *codeBuffer; + void *debugBuffer; + struct PigSynchREC *pigSynchList; +}; +struct DataHeaderREC +{ + struct FragmentIndexREC *partition[nPartitions]; +}; +struct FragmentIndexREC +{ + IU16 codeOffset; + IS16 dataOffset; +}; +struct FragmentDataREC +{ + IU32 linearAddress; + IU32 eip; + IU16 universe; + IU8 span; + IU8 vnum; + IU8 cleanTable[1]; +}; +enum DebugInfoType +{ + DebugInfo_Other = 0, + DebugInfo_Intel = 1 +}; +struct DebugInfoREC +{ + struct DebugInfoREC *next; + IUH size; + IUH type; +}; +struct SavedIntelFragmentREC +{ + IU32 eip; + IU8 *bytes; +}; +struct SavedIntelREC +{ + struct DebugInfoREC header; + IU8 *freePtr; + IU16 nEntries; + IU16 fragNumBase; + struct SavedIntelFragmentREC fragments[1]; +}; +enum CleanupTypes +{ + cleanHostOffset = 0, + cleanIntelOffset = 1, + cleanAddConstraint = 2, + cleanRemoveConstraint = 3, + cleanSetFlagsType = 4, + cleanFlagsNeeded = 5, + cleanEndList = 6 +}; +#endif /* ! _Buffer_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/c2cpug_c.h b/private/mvdm/softpc.new/base/cvidc/c2cpug_c.h new file mode 100644 index 000000000..344e0d983 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/c2cpug_c.h @@ -0,0 +1,3 @@ +#ifndef _C2CpuG_c_h +#define _C2CpuG_c_h +#endif /* ! _C2CpuG_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/c2cpusad.h b/private/mvdm/softpc.new/base/cvidc/c2cpusad.h new file mode 100644 index 000000000..4d3fb827f --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/c2cpusad.h @@ -0,0 +1,364 @@ +/*[ + * Generated File: C2CpuSad.h + * +]*/ + +char *CpuVectorNames[] = { + "Simulate", + "Interrupt", + "ClearHwInt", + "EndOfApplication", + "Terminate", + "Initialise", + "SetQuickEventCount", + "GetQuickEventCount", + "CalcQuickEventInstTime", + "InitIOS", + "DefineInb", + "DefineInw", + "DefineInd", + "DefineOutb", + "DefineOutw", + "DefineOutd", + "SetAL", + "SetAH", + "SetAX", + "SetEAX", + "SetBL", + "SetBH", + "SetBX", + "SetEBX", + "SetCL", + "SetCH", + "SetCX", + "SetECX", + "SetDL", + "SetDH", + "SetDX", + "SetEDX", + "SetSI", + "SetESI", + "SetDI", + "SetEDI", + "SetSP", + "SetESP", + "SetBP", + "SetEBP", + "SetIP", + "SetEIP", + "SetCS", + "SetSS", + "SetDS", + "SetES", + "SetFS", + "SetGS", + "SetEFLAGS", + "SetSTATUS", + "SetIOPL", + "SetMSW", + "SetCR0", + "SetCR2", + "SetCR3", + "SetCF", + "SetPF", + "SetAF", + "SetZF", + "SetSF", + "SetTF", + "SetIF", + "SetDF", + "SetOF", + "SetNT", + "SetRF", + "SetVM", + "SetAC", + "SetPE", + "SetMP", + "SetEM", + "SetTS", + "SetPG", + "SetLDT_SELECTOR", + "SetTR_SELECTOR", + "GetAL", + "GetAH", + "GetAX", + "GetEAX", + "GetBL", + "GetBH", + "GetBX", + "GetEBX", + "GetCL", + "GetCH", + "GetCX", + "GetECX", + "GetDL", + "GetDH", + "GetDX", + "GetEDX", + "GetSI", + "GetESI", + "GetDI", + "GetEDI", + "GetSP", + "GetESP", + "GetBP", + "GetEBP", + "GetIP", + "GetEIP", + "GetCS", + "GetSS", + "GetDS", + "GetES", + "GetFS", + "GetGS", + "GetEFLAGS", + "GetSTATUS", + "GetIOPL", + "GetMSW", + "GetCR0", + "GetCR2", + "GetCR3", + "GetCF", + "GetPF", + "GetAF", + "GetZF", + "GetSF", + "GetTF", + "GetIF", + "GetDF", + "GetOF", + "GetNT", + "GetRF", + "GetVM", + "GetAC", + "GetPE", + "GetMP", + "GetEM", + "GetTS", + "GetET", + "GetNE", + "GetWP", + "GetPG", + "GetGDT_BASE", + "GetGDT_LIMIT", + "GetIDT_BASE", + "GetIDT_LIMIT", + "GetLDT_SELECTOR", + "GetLDT_BASE", + "GetLDT_LIMIT", + "GetTR_SELECTOR", + "GetTR_BASE", + "GetTR_LIMIT", + "GetTR_AR", + "GetJumpCalibrateVal", + "GetJumpInitialVal", + "SetJumpInitialVal", + "SetEOIEnable", + "SetAddProfileData", + "SetMaxProfileData", + "GetAddProfileDataAddr", + "PurgeLostIretHookLine" +}; + +char *CpuPrivateVectorNames[] = { + "GetSadInfoTable", + "SetGDT_BASE_LIMIT", + "SetIDT_BASE_LIMIT", + "SetLDT_BASE_LIMIT", + "SetTR_BASE_LIMIT", + "SetTR_BASE_LIMIT_AR", + "SetCS_BASE_LIMIT_AR", + "SetSS_BASE_LIMIT_AR", + "SetDS_BASE_LIMIT_AR", + "SetES_BASE_LIMIT_AR", + "SetFS_BASE_LIMIT_AR", + "SetGS_BASE_LIMIT_AR", + "SetCS_SELECTOR", + "SetSS_SELECTOR", + "SetDS_SELECTOR", + "SetES_SELECTOR", + "SetFS_SELECTOR", + "SetGS_SELECTOR", + "GetCS_SELECTOR", + "GetSS_SELECTOR", + "GetDS_SELECTOR", + "GetES_SELECTOR", + "GetFS_SELECTOR", + "GetGS_SELECTOR", + "GetCS_BASE", + "GetSS_BASE", + "GetDS_BASE", + "GetES_BASE", + "GetFS_BASE", + "GetGS_BASE", + "GetCS_LIMIT", + "GetSS_LIMIT", + "GetDS_LIMIT", + "GetES_LIMIT", + "GetFS_LIMIT", + "GetGS_LIMIT", + "GetCS_AR", + "GetSS_AR", + "GetDS_AR", + "GetES_AR", + "GetFS_AR", + "GetGS_AR", + "GetCPL", + "SetCPL", + "GetCpuState", + "SetCpuState", + "InitNanoCpu", + "PrepareBlocksToCompile", + "SetRegConstraint", + "GrowRecPool", + "BpiCompileBPI", + "TrashIntelRegisters", + "FmDeleteAllStructures", + "ConstraintsFromUnivEpcPtr", + "ConstraintsFromUnivHandle" +}; + +char *SasVectorNames[] = { + "Sas_memory_size", + "Sas_connect_memory", + "Sas_enable_20_bit_wrapping", + "Sas_disable_20_bit_wrapping", + "Sas_twenty_bit_wrapping_enabled", + "Sas_memory_type", + "Sas_hw_at", + "Sas_w_at", + "Sas_dw_at", + "Sas_hw_at_no_check", + "Sas_w_at_no_check", + "Sas_dw_at_no_check", + "Sas_store", + "Sas_storew", + "Sas_storedw", + "Sas_store_no_check", + "Sas_storew_no_check", + "Sas_storedw_no_check", + "Sas_loads", + "Sas_stores", + "Sas_loads_no_check", + "Sas_stores_no_check", + "Sas_move_bytes_forward", + "Sas_move_words_forward", + "Sas_move_doubles_forward", + "Sas_move_bytes_backward", + "Sas_move_words_backward", + "Sas_move_doubles_backward", + "Sas_fills", + "Sas_fillsw", + "Sas_fillsdw", + "Sas_scratch_address", + "Sas_transbuf_address", + "Sas_loads_to_transbuf", + "Sas_stores_from_transbuf", + "Sas_PR8", + "Sas_PR16", + "Sas_PR32", + "Sas_PW8", + "Sas_PW16", + "Sas_PW32", + "Sas_PW8_no_check", + "Sas_PW16_no_check", + "Sas_PW32_no_check", + "SasPtrToPhysAddrByte", + "Sas_get_byte_addr", + "SasPtrToLinAddrByte", + "SasRegisterVirtualSelectors", + "Sas_overwrite_memory", + "Sas_PWS", + "Sas_PWS_no_check", + "Sas_PRS", + "Sas_PRS_no_check", + "Sas_PigCmpPage", + "IOVirtualised" +}; + +char *VideoVectorNames[] = { + "GetVideolatches", + "GetVideorplane", + "GetVideowplane", + "GetVideoscratch", + "GetVideosr_masked_val", + "GetVideosr_nmask", + "GetVideodata_and_mask", + "GetVideodata_xor_mask", + "GetVideolatch_xor_mask", + "GetVideobit_prot_mask", + "GetVideoplane_enable", + "GetVideoplane_enable_mask", + "GetVideosr_lookup", + "GetVideofwd_str_read_addr", + "GetVideobwd_str_read_addr", + "GetVideodirty_total", + "GetVideodirty_low", + "GetVideodirty_high", + "GetVideovideo_copy", + "GetVideomark_byte", + "GetVideomark_word", + "GetVideomark_string", + "GetVideoread_shift_count", + "GetVideoread_mapped_plane", + "GetVideocolour_comp", + "GetVideodont_care", + "GetVideov7_bank_vid_copy_off", + "GetVideoscreen_ptr", + "GetVideorotate", + "GetVideocalc_data_xor", + "GetVideocalc_latch_xor", + "GetVideoread_byte_addr", + "GetVideov7_fg_latches", + "GetVideoGC_regs", + "GetVideolast_GC_index", + "GetVideodither", + "GetVideowrmode", + "GetVideochain", + "GetVideowrstate", + "SetVideolatches", + "SetVideorplane", + "SetVideowplane", + "SetVideoscratch", + "SetVideosr_masked_val", + "SetVideosr_nmask", + "SetVideodata_and_mask", + "SetVideodata_xor_mask", + "SetVideolatch_xor_mask", + "SetVideobit_prot_mask", + "SetVideoplane_enable", + "SetVideoplane_enable_mask", + "SetVideosr_lookup", + "SetVideofwd_str_read_addr", + "SetVideobwd_str_read_addr", + "SetVideodirty_total", + "SetVideodirty_low", + "SetVideodirty_high", + "SetVideovideo_copy", + "SetVideomark_byte", + "SetVideomark_word", + "SetVideomark_string", + "SetVideoread_shift_count", + "SetVideoread_mapped_plane", + "SetVideocolour_comp", + "SetVideodont_care", + "SetVideov7_bank_vid_copy_off", + "SetVideoscreen_ptr", + "SetVideorotate", + "SetVideocalc_data_xor", + "SetVideocalc_latch_xor", + "SetVideoread_byte_addr", + "SetVideov7_fg_latches", + "SetVideoGC_regs", + "SetVideolast_GC_index", + "SetVideodither", + "SetVideowrmode", + "SetVideochain", + "SetVideowrstate", + "setWritePointers", + "setReadPointers", + "setMarkPointers" +}; + +/*======================================== END ========================================*/ + diff --git a/private/mvdm/softpc.new/base/cvidc/c2cput_c.h b/private/mvdm/softpc.new/base/cvidc/c2cput_c.h new file mode 100644 index 000000000..903df30f8 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/c2cput_c.h @@ -0,0 +1,3 @@ +#ifndef _C2CpuT_c_h +#define _C2CpuT_c_h +#endif /* ! _C2CpuT_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/ccpudefs.inc b/private/mvdm/softpc.new/base/cvidc/ccpudefs.inc new file mode 100644 index 000000000..13135539f --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/ccpudefs.inc @@ -0,0 +1 @@ +C_DEFINES= -DCPU_30_STYLE -DCPU_40_STYLE -DNEW_CPU -DCCPU -DSPC386 -DANSI -DNTVDM -DC_VID diff --git a/private/mvdm/softpc.new/base/cvidc/chain2_c.h b/private/mvdm/softpc.new/base/cvidc/chain2_c.h new file mode 100644 index 000000000..541b7f3cc --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/chain2_c.h @@ -0,0 +1,3 @@ +#ifndef _Chain2_c_h +#define _Chain2_c_h +#endif /* ! _Chain2_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/chain4_c.h b/private/mvdm/softpc.new/base/cvidc/chain4_c.h new file mode 100644 index 000000000..5eae43ef2 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/chain4_c.h @@ -0,0 +1,4 @@ +#ifndef _Chain4_c_h +#define _Chain4_c_h +#define NotTrue (0) +#endif /* ! _Chain4_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/cmp_c.h b/private/mvdm/softpc.new/base/cvidc/cmp_c.h new file mode 100644 index 000000000..e0939c1bd --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/cmp_c.h @@ -0,0 +1,3 @@ +#ifndef _Cmp_c_h +#define _Cmp_c_h +#endif /* ! _Cmp_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/contxt_c.h b/private/mvdm/softpc.new/base/cvidc/contxt_c.h new file mode 100644 index 000000000..fdfa4f819 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/contxt_c.h @@ -0,0 +1,26 @@ +#ifndef _Contxt_c_h +#define _Contxt_c_h +#define ContextNULL ((struct ContextREC*)0) +#define MAX_CONTEXTS (64) +#define MAX_QUEUED_LDT_CONTEXTS (64) +#define ContextShift (6) +#define ContextMask (4032) +#define Context_S (11) +#define Context_E (6) +#define AnyContext (128) +struct ContextREC +{ + struct ContextREC *NextCntxt; + struct ContextREC *PrevCntxt; + IU32 PDBRVal; + IU32 PDE0Val; + IU32 LDTBase; + IU32 GDTBase; + IU32 LDTLimit; + IU16 GDTLimit; + IBOOL TwentyBitWrap; + IBOOL Valid; + IBOOL CheckedOnly; + IU8 ThisCntxt; +}; +#endif /* ! _Contxt_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/conv_c.h b/private/mvdm/softpc.new/base/cvidc/conv_c.h new file mode 100644 index 000000000..248d83e49 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/conv_c.h @@ -0,0 +1,3 @@ +#ifndef _Conv_c_h +#define _Conv_c_h +#endif /* ! _Conv_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/copies_c.h b/private/mvdm/softpc.new/base/cvidc/copies_c.h new file mode 100644 index 000000000..7ef448ada --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/copies_c.h @@ -0,0 +1,3 @@ +#ifndef _Copies_c_h +#define _Copies_c_h +#endif /* ! _Copies_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/cpnote_c.h b/private/mvdm/softpc.new/base/cvidc/cpnote_c.h new file mode 100644 index 000000000..9b9545a2f --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/cpnote_c.h @@ -0,0 +1,8 @@ +#ifndef _CpNote_c_h +#define _CpNote_c_h +enum ConstraintChange +{ + ConstraintAdded = 0, + ConstraintRemoved = 1 +}; +#endif /* ! _CpNote_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/cpu4gen.h b/private/mvdm/softpc.new/base/cvidc/cpu4gen.h new file mode 100644 index 000000000..a5051d091 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/cpu4gen.h @@ -0,0 +1,2957 @@ +/*[ + * Generated File: cpu4gen.h + * +]*/ + + +struct CpuVector { +#ifdef CPU_PRIVATE + struct CpuPrivateVector *Private; +#else /* !CPU_PRIVATE */ + IHP Private; +#endif /* CPU_PRIVATE */ +#ifdef CPU_PRIVATE + struct SasVector *Sas; +#else /* !CPU_PRIVATE */ + IHP Sas; +#endif /* CPU_PRIVATE */ +#ifdef CPU_PRIVATE + struct VideoVector *Video; +#else /* !CPU_PRIVATE */ + IHP Video; +#endif /* CPU_PRIVATE */ + void (*Simulate) IPT0(); + void (*Interrupt) IPT2(CPU_INT_TYPE, intType, IU16, intNum); + void (*ClearHwInt) IPT0(); + void (*EndOfApplication) IPT0(); + void (*Terminate) IPT0(); + void (*Initialise) IPT0(); + void (*SetQuickEventCount) IPT1(IU32, val); + IU32 (*GetQuickEventCount) IPT0(); + IU32 (*CalcQuickEventInstTime) IPT1(IU32, val); + void (*InitIOS) IPT4(IHP, InTables, IHP, OutTables, IUH, maxAdaptor, IU16, portMask); + void (*DefineInb) IPT2(IUH, adaptor, IHP, func); + void (*DefineInw) IPT2(IUH, adaptor, IHP, func); + void (*DefineInd) IPT2(IUH, adaptor, IHP, func); + void (*DefineOutb) IPT2(IUH, adaptor, IHP, func); + void (*DefineOutw) IPT2(IUH, adaptor, IHP, func); + void (*DefineOutd) IPT2(IUH, adaptor, IHP, func); + void (*SetAL) IPT1(IU8, val); + void (*SetAH) IPT1(IU8, val); + void (*SetAX) IPT1(IU16, val); + void (*SetEAX) IPT1(IU32, val); + void (*SetBL) IPT1(IU8, val); + void (*SetBH) IPT1(IU8, val); + void (*SetBX) IPT1(IU16, val); + void (*SetEBX) IPT1(IU32, val); + void (*SetCL) IPT1(IU8, val); + void (*SetCH) IPT1(IU8, val); + void (*SetCX) IPT1(IU16, val); + void (*SetECX) IPT1(IU32, val); + void (*SetDL) IPT1(IU8, val); + void (*SetDH) IPT1(IU8, val); + void (*SetDX) IPT1(IU16, val); + void (*SetEDX) IPT1(IU32, val); + void (*SetSI) IPT1(IU16, val); + void (*SetESI) IPT1(IU32, val); + void (*SetDI) IPT1(IU16, val); + void (*SetEDI) IPT1(IU32, val); + void (*SetSP) IPT1(IU16, val); + void (*SetESP) IPT1(IU32, val); + void (*SetBP) IPT1(IU16, val); + void (*SetEBP) IPT1(IU32, val); + void (*SetIP) IPT1(IU16, val); + void (*SetEIP) IPT1(IU32, val); + IUH (*SetCS) IPT1(IU16, val); + IUH (*SetSS) IPT1(IU16, val); + IUH (*SetDS) IPT1(IU16, val); + IUH (*SetES) IPT1(IU16, val); + IUH (*SetFS) IPT1(IU16, val); + IUH (*SetGS) IPT1(IU16, val); + void (*SetEFLAGS) IPT1(IU32, val); + void (*SetSTATUS) IPT1(IU16, val); + void (*SetIOPL) IPT1(IU8, val); + void (*SetMSW) IPT1(IU16, val); + void (*SetCR0) IPT1(IU32, val); + void (*SetCR2) IPT1(IU32, val); + void (*SetCR3) IPT1(IU32, val); + void (*SetCF) IPT1(IBOOL, val); + void (*SetPF) IPT1(IBOOL, val); + void (*SetAF) IPT1(IBOOL, val); + void (*SetZF) IPT1(IBOOL, val); + void (*SetSF) IPT1(IBOOL, val); + void (*SetTF) IPT1(IBOOL, val); + void (*SetIF) IPT1(IBOOL, val); + void (*SetDF) IPT1(IBOOL, val); + void (*SetOF) IPT1(IBOOL, val); + void (*SetNT) IPT1(IBOOL, val); + void (*SetRF) IPT1(IBOOL, val); + void (*SetVM) IPT1(IBOOL, val); + void (*SetAC) IPT1(IBOOL, val); + void (*SetPE) IPT1(IBOOL, val); + void (*SetMP) IPT1(IBOOL, val); + void (*SetEM) IPT1(IBOOL, val); + void (*SetTS) IPT1(IBOOL, val); + void (*SetPG) IPT1(IBOOL, val); + void (*SetLDT_SELECTOR) IPT1(IU16, val); + void (*SetTR_SELECTOR) IPT1(IU16, val); + IU8 (*GetAL) IPT0(); + IU8 (*GetAH) IPT0(); + IU16 (*GetAX) IPT0(); + IU32 (*GetEAX) IPT0(); + IU8 (*GetBL) IPT0(); + IU8 (*GetBH) IPT0(); + IU16 (*GetBX) IPT0(); + IU32 (*GetEBX) IPT0(); + IU8 (*GetCL) IPT0(); + IU8 (*GetCH) IPT0(); + IU16 (*GetCX) IPT0(); + IU32 (*GetECX) IPT0(); + IU8 (*GetDL) IPT0(); + IU8 (*GetDH) IPT0(); + IU16 (*GetDX) IPT0(); + IU32 (*GetEDX) IPT0(); + IU16 (*GetSI) IPT0(); + IU32 (*GetESI) IPT0(); + IU16 (*GetDI) IPT0(); + IU32 (*GetEDI) IPT0(); + IU16 (*GetSP) IPT0(); + IU32 (*GetESP) IPT0(); + IU16 (*GetBP) IPT0(); + IU32 (*GetEBP) IPT0(); + IU16 (*GetIP) IPT0(); + IU32 (*GetEIP) IPT0(); + IU16 (*GetCS) IPT0(); + IU16 (*GetSS) IPT0(); + IU16 (*GetDS) IPT0(); + IU16 (*GetES) IPT0(); + IU16 (*GetFS) IPT0(); + IU16 (*GetGS) IPT0(); + IU32 (*GetEFLAGS) IPT0(); + IU16 (*GetSTATUS) IPT0(); + IU8 (*GetIOPL) IPT0(); + IU16 (*GetMSW) IPT0(); + IU32 (*GetCR0) IPT0(); + IU32 (*GetCR2) IPT0(); + IU32 (*GetCR3) IPT0(); + IBOOL (*GetCF) IPT0(); + IBOOL (*GetPF) IPT0(); + IBOOL (*GetAF) IPT0(); + IBOOL (*GetZF) IPT0(); + IBOOL (*GetSF) IPT0(); + IBOOL (*GetTF) IPT0(); + IBOOL (*GetIF) IPT0(); + IBOOL (*GetDF) IPT0(); + IBOOL (*GetOF) IPT0(); + IBOOL (*GetNT) IPT0(); + IBOOL (*GetRF) IPT0(); + IBOOL (*GetVM) IPT0(); + IBOOL (*GetAC) IPT0(); + IBOOL (*GetPE) IPT0(); + IBOOL (*GetMP) IPT0(); + IBOOL (*GetEM) IPT0(); + IBOOL (*GetTS) IPT0(); + IBOOL (*GetET) IPT0(); + IBOOL (*GetNE) IPT0(); + IBOOL (*GetWP) IPT0(); + IBOOL (*GetPG) IPT0(); + IU32 (*GetGDT_BASE) IPT0(); + IU16 (*GetGDT_LIMIT) IPT0(); + IU32 (*GetIDT_BASE) IPT0(); + IU16 (*GetIDT_LIMIT) IPT0(); + IU16 (*GetLDT_SELECTOR) IPT0(); + IU32 (*GetLDT_BASE) IPT0(); + IU32 (*GetLDT_LIMIT) IPT0(); + IU16 (*GetTR_SELECTOR) IPT0(); + IU32 (*GetTR_BASE) IPT0(); + IU32 (*GetTR_LIMIT) IPT0(); + IU16 (*GetTR_AR) IPT0(); + IUH (*GetJumpCalibrateVal) IPT0(); + IUH (*GetJumpInitialVal) IPT0(); + void (*SetJumpInitialVal) IPT1(IUH, initialVal); + void (*SetEOIEnable) IPT1(IU8 *, initialVal); + void (*SetAddProfileData) IPT1(IHP, initialVal); + void (*SetMaxProfileData) IPT1(IHP, initialVal); + IHP (*GetAddProfileDataAddr) IPT0(); + void (*PurgeLostIretHookLine) IPT1(IU16, lineNum); +}; + +extern struct CpuVector Cpu; + +#ifdef CCPU +IMPORT void c_cpu_simulate IPT0(); +#define cpu_simulate c_cpu_simulate +#else /* CCPU */ + +#ifdef PROD +#define cpu_simulate (*(Cpu.Simulate)) +#else /* PROD */ +IMPORT void cpu_simulate IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_cpu_interrupt IPT2(CPU_INT_TYPE, intType, IU16, intNum); +#define cpu_interrupt c_cpu_interrupt +#else /* CCPU */ + +#ifdef PROD +#define cpu_interrupt (*(Cpu.Interrupt)) +#else /* PROD */ +IMPORT void cpu_interrupt IPT2(CPU_INT_TYPE, intType, IU16, intNum); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_cpu_clearHwInt IPT0(); +#define cpu_clearHwInt c_cpu_clearHwInt +#else /* CCPU */ + +#ifdef PROD +#define cpu_clearHwInt (*(Cpu.ClearHwInt)) +#else /* PROD */ +IMPORT void cpu_clearHwInt IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_cpu_EOA_hook IPT0(); +#define cpu_EOA_hook c_cpu_EOA_hook +#else /* CCPU */ + +#ifdef PROD +#define cpu_EOA_hook (*(Cpu.EndOfApplication)) +#else /* PROD */ +IMPORT void cpu_EOA_hook IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_cpu_terminate IPT0(); +#define cpu_terminate c_cpu_terminate +#else /* CCPU */ + +#ifdef PROD +#define cpu_terminate (*(Cpu.Terminate)) +#else /* PROD */ +IMPORT void cpu_terminate IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_cpu_init IPT0(); +#define cpu_init c_cpu_init +#else /* CCPU */ + +#ifdef PROD +#define cpu_init (*(Cpu.Initialise)) +#else /* PROD */ +IMPORT void cpu_init IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_cpu_q_ev_set_count IPT1(IU32, val); +#define host_q_ev_set_count c_cpu_q_ev_set_count +#else /* CCPU */ + +#ifdef PROD +#define host_q_ev_set_count (*(Cpu.SetQuickEventCount)) +#else /* PROD */ +IMPORT void host_q_ev_set_count IPT1(IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_cpu_q_ev_get_count IPT0(); +#define host_q_ev_get_count c_cpu_q_ev_get_count +#else /* CCPU */ + +#ifdef PROD +#define host_q_ev_get_count (*(Cpu.GetQuickEventCount)) +#else /* PROD */ +IMPORT IU32 host_q_ev_get_count IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_cpu_calc_q_ev_inst_for_time IPT1(IU32, val); +#define host_calc_q_ev_inst_for_time c_cpu_calc_q_ev_inst_for_time +#else /* CCPU */ + +#ifdef PROD +#define host_calc_q_ev_inst_for_time (*(Cpu.CalcQuickEventInstTime)) +#else /* PROD */ +IMPORT IU32 host_calc_q_ev_inst_for_time IPT1(IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_cpu_init_ios_in IPT4(IHP, InTables, IHP, OutTables, IUH, maxAdaptor, IU16, portMask); +#define cpu_init_ios_in c_cpu_init_ios_in +#else /* CCPU */ + +#ifdef PROD +#define cpu_init_ios_in (*(Cpu.InitIOS)) +#else /* PROD */ +IMPORT void cpu_init_ios_in IPT4(IHP, InTables, IHP, OutTables, IUH, maxAdaptor, IU16, portMask); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_cpu_define_inb IPT2(IUH, adaptor, IHP, func); +#define ios_define_inb c_cpu_define_inb +#else /* CCPU */ + +#ifdef PROD +#define ios_define_inb (*(Cpu.DefineInb)) +#else /* PROD */ +IMPORT void ios_define_inb IPT2(IUH, adaptor, IHP, func); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_cpu_define_inw IPT2(IUH, adaptor, IHP, func); +#define ios_define_inw c_cpu_define_inw +#else /* CCPU */ + +#ifdef PROD +#define ios_define_inw (*(Cpu.DefineInw)) +#else /* PROD */ +IMPORT void ios_define_inw IPT2(IUH, adaptor, IHP, func); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_cpu_define_ind IPT2(IUH, adaptor, IHP, func); +#define ios_define_ind c_cpu_define_ind +#else /* CCPU */ + +#ifdef PROD +#define ios_define_ind (*(Cpu.DefineInd)) +#else /* PROD */ +IMPORT void ios_define_ind IPT2(IUH, adaptor, IHP, func); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_cpu_define_outb IPT2(IUH, adaptor, IHP, func); +#define ios_define_outb c_cpu_define_outb +#else /* CCPU */ + +#ifdef PROD +#define ios_define_outb (*(Cpu.DefineOutb)) +#else /* PROD */ +IMPORT void ios_define_outb IPT2(IUH, adaptor, IHP, func); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_cpu_define_outw IPT2(IUH, adaptor, IHP, func); +#define ios_define_outw c_cpu_define_outw +#else /* CCPU */ + +#ifdef PROD +#define ios_define_outw (*(Cpu.DefineOutw)) +#else /* PROD */ +IMPORT void ios_define_outw IPT2(IUH, adaptor, IHP, func); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_cpu_define_outd IPT2(IUH, adaptor, IHP, func); +#define ios_define_outd c_cpu_define_outd +#else /* CCPU */ + +#ifdef PROD +#define ios_define_outd (*(Cpu.DefineOutd)) +#else /* PROD */ +IMPORT void ios_define_outd IPT2(IUH, adaptor, IHP, func); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setAL IPT1(IU8, val); +#define setAL(val) c_setAL(val) +#else /* CCPU */ + +#ifdef PROD +#define setAL(val) (*(Cpu.SetAL))(val) +#else /* PROD */ +IMPORT void setAL IPT1(IU8, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setAH IPT1(IU8, val); +#define setAH(val) c_setAH(val) +#else /* CCPU */ + +#ifdef PROD +#define setAH(val) (*(Cpu.SetAH))(val) +#else /* PROD */ +IMPORT void setAH IPT1(IU8, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setAX IPT1(IU16, val); +#define setAX(val) c_setAX(val) +#else /* CCPU */ + +#ifdef PROD +#define setAX(val) (*(Cpu.SetAX))(val) +#else /* PROD */ +IMPORT void setAX IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setEAX IPT1(IU32, val); +#define setEAX(val) c_setEAX(val) +#else /* CCPU */ + +#ifdef PROD +#define setEAX(val) (*(Cpu.SetEAX))(val) +#else /* PROD */ +IMPORT void setEAX IPT1(IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setBL IPT1(IU8, val); +#define setBL(val) c_setBL(val) +#else /* CCPU */ + +#ifdef PROD +#define setBL(val) (*(Cpu.SetBL))(val) +#else /* PROD */ +IMPORT void setBL IPT1(IU8, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setBH IPT1(IU8, val); +#define setBH(val) c_setBH(val) +#else /* CCPU */ + +#ifdef PROD +#define setBH(val) (*(Cpu.SetBH))(val) +#else /* PROD */ +IMPORT void setBH IPT1(IU8, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setBX IPT1(IU16, val); +#define setBX(val) c_setBX(val) +#else /* CCPU */ + +#ifdef PROD +#define setBX(val) (*(Cpu.SetBX))(val) +#else /* PROD */ +IMPORT void setBX IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setEBX IPT1(IU32, val); +#define setEBX(val) c_setEBX(val) +#else /* CCPU */ + +#ifdef PROD +#define setEBX(val) (*(Cpu.SetEBX))(val) +#else /* PROD */ +IMPORT void setEBX IPT1(IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setCL IPT1(IU8, val); +#define setCL(val) c_setCL(val) +#else /* CCPU */ + +#ifdef PROD +#define setCL(val) (*(Cpu.SetCL))(val) +#else /* PROD */ +IMPORT void setCL IPT1(IU8, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setCH IPT1(IU8, val); +#define setCH(val) c_setCH(val) +#else /* CCPU */ + +#ifdef PROD +#define setCH(val) (*(Cpu.SetCH))(val) +#else /* PROD */ +IMPORT void setCH IPT1(IU8, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setCX IPT1(IU16, val); +#define setCX(val) c_setCX(val) +#else /* CCPU */ + +#ifdef PROD +#define setCX(val) (*(Cpu.SetCX))(val) +#else /* PROD */ +IMPORT void setCX IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setECX IPT1(IU32, val); +#define setECX(val) c_setECX(val) +#else /* CCPU */ + +#ifdef PROD +#define setECX(val) (*(Cpu.SetECX))(val) +#else /* PROD */ +IMPORT void setECX IPT1(IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setDL IPT1(IU8, val); +#define setDL(val) c_setDL(val) +#else /* CCPU */ + +#ifdef PROD +#define setDL(val) (*(Cpu.SetDL))(val) +#else /* PROD */ +IMPORT void setDL IPT1(IU8, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setDH IPT1(IU8, val); +#define setDH(val) c_setDH(val) +#else /* CCPU */ + +#ifdef PROD +#define setDH(val) (*(Cpu.SetDH))(val) +#else /* PROD */ +IMPORT void setDH IPT1(IU8, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setDX IPT1(IU16, val); +#define setDX(val) c_setDX(val) +#else /* CCPU */ + +#ifdef PROD +#define setDX(val) (*(Cpu.SetDX))(val) +#else /* PROD */ +IMPORT void setDX IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setEDX IPT1(IU32, val); +#define setEDX(val) c_setEDX(val) +#else /* CCPU */ + +#ifdef PROD +#define setEDX(val) (*(Cpu.SetEDX))(val) +#else /* PROD */ +IMPORT void setEDX IPT1(IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setSI IPT1(IU16, val); +#define setSI(val) c_setSI(val) +#else /* CCPU */ + +#ifdef PROD +#define setSI(val) (*(Cpu.SetSI))(val) +#else /* PROD */ +IMPORT void setSI IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setESI IPT1(IU32, val); +#define setESI(val) c_setESI(val) +#else /* CCPU */ + +#ifdef PROD +#define setESI(val) (*(Cpu.SetESI))(val) +#else /* PROD */ +IMPORT void setESI IPT1(IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setDI IPT1(IU16, val); +#define setDI(val) c_setDI(val) +#else /* CCPU */ + +#ifdef PROD +#define setDI(val) (*(Cpu.SetDI))(val) +#else /* PROD */ +IMPORT void setDI IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setEDI IPT1(IU32, val); +#define setEDI(val) c_setEDI(val) +#else /* CCPU */ + +#ifdef PROD +#define setEDI(val) (*(Cpu.SetEDI))(val) +#else /* PROD */ +IMPORT void setEDI IPT1(IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setSP IPT1(IU16, val); +#define setSP(val) c_setSP(val) +#else /* CCPU */ + +#ifdef PROD +#define setSP(val) (*(Cpu.SetSP))(val) +#else /* PROD */ +IMPORT void setSP IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setESP IPT1(IU32, val); +#define setESP(val) c_setESP(val) +#else /* CCPU */ + +#ifdef PROD +#define setESP(val) (*(Cpu.SetESP))(val) +#else /* PROD */ +IMPORT void setESP IPT1(IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setBP IPT1(IU16, val); +#define setBP(val) c_setBP(val) +#else /* CCPU */ + +#ifdef PROD +#define setBP(val) (*(Cpu.SetBP))(val) +#else /* PROD */ +IMPORT void setBP IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setEBP IPT1(IU32, val); +#define setEBP(val) c_setEBP(val) +#else /* CCPU */ + +#ifdef PROD +#define setEBP(val) (*(Cpu.SetEBP))(val) +#else /* PROD */ +IMPORT void setEBP IPT1(IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setIP IPT1(IU16, val); +#define setIP(val) c_setIP(val) +#else /* CCPU */ + +#ifdef PROD +#define setIP(val) (*(Cpu.SetIP))(val) +#else /* PROD */ +IMPORT void setIP IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setEIP IPT1(IU32, val); +#define setEIP(val) c_setEIP(val) +#else /* CCPU */ + +#ifdef PROD +#define setEIP(val) (*(Cpu.SetEIP))(val) +#else /* PROD */ +IMPORT void setEIP IPT1(IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IUH c_setCS IPT1(IU16, val); +#define setCS(val) c_setCS(val) +#else /* CCPU */ + +#ifdef PROD +#define setCS(val) (*(Cpu.SetCS))(val) +#else /* PROD */ +IMPORT IUH setCS IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IUH c_setSS IPT1(IU16, val); +#define setSS(val) c_setSS(val) +#else /* CCPU */ + +#ifdef PROD +#define setSS(val) (*(Cpu.SetSS))(val) +#else /* PROD */ +IMPORT IUH setSS IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IUH c_setDS IPT1(IU16, val); +#define setDS(val) c_setDS(val) +#else /* CCPU */ + +#ifdef PROD +#define setDS(val) (*(Cpu.SetDS))(val) +#else /* PROD */ +IMPORT IUH setDS IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IUH c_setES IPT1(IU16, val); +#define setES(val) c_setES(val) +#else /* CCPU */ + +#ifdef PROD +#define setES(val) (*(Cpu.SetES))(val) +#else /* PROD */ +IMPORT IUH setES IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IUH c_setFS IPT1(IU16, val); +#define setFS(val) c_setFS(val) +#else /* CCPU */ + +#ifdef PROD +#define setFS(val) (*(Cpu.SetFS))(val) +#else /* PROD */ +IMPORT IUH setFS IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IUH c_setGS IPT1(IU16, val); +#define setGS(val) c_setGS(val) +#else /* CCPU */ + +#ifdef PROD +#define setGS(val) (*(Cpu.SetGS))(val) +#else /* PROD */ +IMPORT IUH setGS IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setEFLAGS IPT1(IU32, val); +#define setEFLAGS(val) c_setEFLAGS(val) +#else /* CCPU */ + +#ifdef PROD +#define setEFLAGS(val) (*(Cpu.SetEFLAGS))(val) +#else /* PROD */ +IMPORT void setEFLAGS IPT1(IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setSTATUS IPT1(IU16, val); +#define setSTATUS(val) c_setSTATUS(val) +#else /* CCPU */ + +#ifdef PROD +#define setSTATUS(val) (*(Cpu.SetSTATUS))(val) +#else /* PROD */ +IMPORT void setSTATUS IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setIOPL IPT1(IU8, val); +#define setIOPL(val) c_setIOPL(val) +#else /* CCPU */ + +#ifdef PROD +#define setIOPL(val) (*(Cpu.SetIOPL))(val) +#else /* PROD */ +IMPORT void setIOPL IPT1(IU8, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setMSW IPT1(IU16, val); +#define setMSW(val) c_setMSW(val) +#else /* CCPU */ + +#ifdef PROD +#define setMSW(val) (*(Cpu.SetMSW))(val) +#else /* PROD */ +IMPORT void setMSW IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setCR0 IPT1(IU32, val); +#define setCR0(val) c_setCR0(val) +#else /* CCPU */ + +#ifdef PROD +#define setCR0(val) (*(Cpu.SetCR0))(val) +#else /* PROD */ +IMPORT void setCR0 IPT1(IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setCR2 IPT1(IU32, val); +#define setCR2(val) c_setCR2(val) +#else /* CCPU */ + +#ifdef PROD +#define setCR2(val) (*(Cpu.SetCR2))(val) +#else /* PROD */ +IMPORT void setCR2 IPT1(IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setCR3 IPT1(IU32, val); +#define setCR3(val) c_setCR3(val) +#else /* CCPU */ + +#ifdef PROD +#define setCR3(val) (*(Cpu.SetCR3))(val) +#else /* PROD */ +IMPORT void setCR3 IPT1(IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setCF IPT1(IBOOL, val); +#define setCF(val) c_setCF(val) +#else /* CCPU */ + +#ifdef PROD +#define setCF(val) (*(Cpu.SetCF))(val) +#else /* PROD */ +IMPORT void setCF IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setPF IPT1(IBOOL, val); +#define setPF(val) c_setPF(val) +#else /* CCPU */ + +#ifdef PROD +#define setPF(val) (*(Cpu.SetPF))(val) +#else /* PROD */ +IMPORT void setPF IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setAF IPT1(IBOOL, val); +#define setAF(val) c_setAF(val) +#else /* CCPU */ + +#ifdef PROD +#define setAF(val) (*(Cpu.SetAF))(val) +#else /* PROD */ +IMPORT void setAF IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setZF IPT1(IBOOL, val); +#define setZF(val) c_setZF(val) +#else /* CCPU */ + +#ifdef PROD +#define setZF(val) (*(Cpu.SetZF))(val) +#else /* PROD */ +IMPORT void setZF IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setSF IPT1(IBOOL, val); +#define setSF(val) c_setSF(val) +#else /* CCPU */ + +#ifdef PROD +#define setSF(val) (*(Cpu.SetSF))(val) +#else /* PROD */ +IMPORT void setSF IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setTF IPT1(IBOOL, val); +#define setTF(val) c_setTF(val) +#else /* CCPU */ + +#ifdef PROD +#define setTF(val) (*(Cpu.SetTF))(val) +#else /* PROD */ +IMPORT void setTF IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setIF IPT1(IBOOL, val); +#define setIF(val) c_setIF(val) +#else /* CCPU */ + +#ifdef PROD +#define setIF(val) (*(Cpu.SetIF))(val) +#else /* PROD */ +IMPORT void setIF IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setDF IPT1(IBOOL, val); +#define setDF(val) c_setDF(val) +#else /* CCPU */ + +#ifdef PROD +#define setDF(val) (*(Cpu.SetDF))(val) +#else /* PROD */ +IMPORT void setDF IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setOF IPT1(IBOOL, val); +#define setOF(val) c_setOF(val) +#else /* CCPU */ + +#ifdef PROD +#define setOF(val) (*(Cpu.SetOF))(val) +#else /* PROD */ +IMPORT void setOF IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setNT IPT1(IBOOL, val); +#define setNT(val) c_setNT(val) +#else /* CCPU */ + +#ifdef PROD +#define setNT(val) (*(Cpu.SetNT))(val) +#else /* PROD */ +IMPORT void setNT IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setRF IPT1(IBOOL, val); +#define setRF(val) c_setRF(val) +#else /* CCPU */ + +#ifdef PROD +#define setRF(val) (*(Cpu.SetRF))(val) +#else /* PROD */ +IMPORT void setRF IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setVM IPT1(IBOOL, val); +#define setVM(val) c_setVM(val) +#else /* CCPU */ + +#ifdef PROD +#define setVM(val) (*(Cpu.SetVM))(val) +#else /* PROD */ +IMPORT void setVM IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setAC IPT1(IBOOL, val); +#define setAC(val) c_setAC(val) +#else /* CCPU */ + +#ifdef PROD +#define setAC(val) (*(Cpu.SetAC))(val) +#else /* PROD */ +IMPORT void setAC IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setPE IPT1(IBOOL, val); +#define setPE(val) c_setPE(val) +#else /* CCPU */ + +#ifdef PROD +#define setPE(val) (*(Cpu.SetPE))(val) +#else /* PROD */ +IMPORT void setPE IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setMP IPT1(IBOOL, val); +#define setMP(val) c_setMP(val) +#else /* CCPU */ + +#ifdef PROD +#define setMP(val) (*(Cpu.SetMP))(val) +#else /* PROD */ +IMPORT void setMP IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setEM IPT1(IBOOL, val); +#define setEM(val) c_setEM(val) +#else /* CCPU */ + +#ifdef PROD +#define setEM(val) (*(Cpu.SetEM))(val) +#else /* PROD */ +IMPORT void setEM IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setTS IPT1(IBOOL, val); +#define setTS(val) c_setTS(val) +#else /* CCPU */ + +#ifdef PROD +#define setTS(val) (*(Cpu.SetTS))(val) +#else /* PROD */ +IMPORT void setTS IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setPG IPT1(IBOOL, val); +#define setPG(val) c_setPG(val) +#else /* CCPU */ + +#ifdef PROD +#define setPG(val) (*(Cpu.SetPG))(val) +#else /* PROD */ +IMPORT void setPG IPT1(IBOOL, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setLDT_SELECTOR IPT1(IU16, val); +#define setLDT_SELECTOR(val) c_setLDT_SELECTOR(val) +#else /* CCPU */ + +#ifdef PROD +#define setLDT_SELECTOR(val) (*(Cpu.SetLDT_SELECTOR))(val) +#else /* PROD */ +IMPORT void setLDT_SELECTOR IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setTR_SELECTOR IPT1(IU16, val); +#define setTR_SELECTOR(val) c_setTR_SELECTOR(val) +#else /* CCPU */ + +#ifdef PROD +#define setTR_SELECTOR(val) (*(Cpu.SetTR_SELECTOR))(val) +#else /* PROD */ +IMPORT void setTR_SELECTOR IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU8 c_getAL IPT0(); +#define getAL() c_getAL() +#else /* CCPU */ + +#ifdef PROD +#define getAL() (*(Cpu.GetAL))() +#else /* PROD */ +IMPORT IU8 getAL IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU8 c_getAH IPT0(); +#define getAH() c_getAH() +#else /* CCPU */ + +#ifdef PROD +#define getAH() (*(Cpu.GetAH))() +#else /* PROD */ +IMPORT IU8 getAH IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getAX IPT0(); +#define getAX() c_getAX() +#else /* CCPU */ + +#ifdef PROD +#define getAX() (*(Cpu.GetAX))() +#else /* PROD */ +IMPORT IU16 getAX IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getEAX IPT0(); +#define getEAX() c_getEAX() +#else /* CCPU */ + +#ifdef PROD +#define getEAX() (*(Cpu.GetEAX))() +#else /* PROD */ +IMPORT IU32 getEAX IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU8 c_getBL IPT0(); +#define getBL() c_getBL() +#else /* CCPU */ + +#ifdef PROD +#define getBL() (*(Cpu.GetBL))() +#else /* PROD */ +IMPORT IU8 getBL IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU8 c_getBH IPT0(); +#define getBH() c_getBH() +#else /* CCPU */ + +#ifdef PROD +#define getBH() (*(Cpu.GetBH))() +#else /* PROD */ +IMPORT IU8 getBH IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getBX IPT0(); +#define getBX() c_getBX() +#else /* CCPU */ + +#ifdef PROD +#define getBX() (*(Cpu.GetBX))() +#else /* PROD */ +IMPORT IU16 getBX IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getEBX IPT0(); +#define getEBX() c_getEBX() +#else /* CCPU */ + +#ifdef PROD +#define getEBX() (*(Cpu.GetEBX))() +#else /* PROD */ +IMPORT IU32 getEBX IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU8 c_getCL IPT0(); +#define getCL() c_getCL() +#else /* CCPU */ + +#ifdef PROD +#define getCL() (*(Cpu.GetCL))() +#else /* PROD */ +IMPORT IU8 getCL IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU8 c_getCH IPT0(); +#define getCH() c_getCH() +#else /* CCPU */ + +#ifdef PROD +#define getCH() (*(Cpu.GetCH))() +#else /* PROD */ +IMPORT IU8 getCH IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getCX IPT0(); +#define getCX() c_getCX() +#else /* CCPU */ + +#ifdef PROD +#define getCX() (*(Cpu.GetCX))() +#else /* PROD */ +IMPORT IU16 getCX IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getECX IPT0(); +#define getECX() c_getECX() +#else /* CCPU */ + +#ifdef PROD +#define getECX() (*(Cpu.GetECX))() +#else /* PROD */ +IMPORT IU32 getECX IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU8 c_getDL IPT0(); +#define getDL() c_getDL() +#else /* CCPU */ + +#ifdef PROD +#define getDL() (*(Cpu.GetDL))() +#else /* PROD */ +IMPORT IU8 getDL IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU8 c_getDH IPT0(); +#define getDH() c_getDH() +#else /* CCPU */ + +#ifdef PROD +#define getDH() (*(Cpu.GetDH))() +#else /* PROD */ +IMPORT IU8 getDH IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getDX IPT0(); +#define getDX() c_getDX() +#else /* CCPU */ + +#ifdef PROD +#define getDX() (*(Cpu.GetDX))() +#else /* PROD */ +IMPORT IU16 getDX IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getEDX IPT0(); +#define getEDX() c_getEDX() +#else /* CCPU */ + +#ifdef PROD +#define getEDX() (*(Cpu.GetEDX))() +#else /* PROD */ +IMPORT IU32 getEDX IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getSI IPT0(); +#define getSI() c_getSI() +#else /* CCPU */ + +#ifdef PROD +#define getSI() (*(Cpu.GetSI))() +#else /* PROD */ +IMPORT IU16 getSI IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getESI IPT0(); +#define getESI() c_getESI() +#else /* CCPU */ + +#ifdef PROD +#define getESI() (*(Cpu.GetESI))() +#else /* PROD */ +IMPORT IU32 getESI IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getDI IPT0(); +#define getDI() c_getDI() +#else /* CCPU */ + +#ifdef PROD +#define getDI() (*(Cpu.GetDI))() +#else /* PROD */ +IMPORT IU16 getDI IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getEDI IPT0(); +#define getEDI() c_getEDI() +#else /* CCPU */ + +#ifdef PROD +#define getEDI() (*(Cpu.GetEDI))() +#else /* PROD */ +IMPORT IU32 getEDI IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getSP IPT0(); +#define getSP() c_getSP() +#else /* CCPU */ + +#ifdef PROD +#define getSP() (*(Cpu.GetSP))() +#else /* PROD */ +IMPORT IU16 getSP IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getESP IPT0(); +#define getESP() c_getESP() +#else /* CCPU */ + +#ifdef PROD +#define getESP() (*(Cpu.GetESP))() +#else /* PROD */ +IMPORT IU32 getESP IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getBP IPT0(); +#define getBP() c_getBP() +#else /* CCPU */ + +#ifdef PROD +#define getBP() (*(Cpu.GetBP))() +#else /* PROD */ +IMPORT IU16 getBP IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getEBP IPT0(); +#define getEBP() c_getEBP() +#else /* CCPU */ + +#ifdef PROD +#define getEBP() (*(Cpu.GetEBP))() +#else /* PROD */ +IMPORT IU32 getEBP IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getIP IPT0(); +#define getIP() c_getIP() +#else /* CCPU */ + +#ifdef PROD +#define getIP() (*(Cpu.GetIP))() +#else /* PROD */ +IMPORT IU16 getIP IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getEIP IPT0(); +#define getEIP() c_getEIP() +#else /* CCPU */ + +#ifdef PROD +#define getEIP() (*(Cpu.GetEIP))() +#else /* PROD */ +IMPORT IU32 getEIP IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getCS IPT0(); +#define getCS() c_getCS() +#else /* CCPU */ + +#ifdef PROD +#define getCS() (*(Cpu.GetCS))() +#else /* PROD */ +IMPORT IU16 getCS IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getSS IPT0(); +#define getSS() c_getSS() +#else /* CCPU */ + +#ifdef PROD +#define getSS() (*(Cpu.GetSS))() +#else /* PROD */ +IMPORT IU16 getSS IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getDS IPT0(); +#define getDS() c_getDS() +#else /* CCPU */ + +#ifdef PROD +#define getDS() (*(Cpu.GetDS))() +#else /* PROD */ +IMPORT IU16 getDS IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getES IPT0(); +#define getES() c_getES() +#else /* CCPU */ + +#ifdef PROD +#define getES() (*(Cpu.GetES))() +#else /* PROD */ +IMPORT IU16 getES IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getFS IPT0(); +#define getFS() c_getFS() +#else /* CCPU */ + +#ifdef PROD +#define getFS() (*(Cpu.GetFS))() +#else /* PROD */ +IMPORT IU16 getFS IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getGS IPT0(); +#define getGS() c_getGS() +#else /* CCPU */ + +#ifdef PROD +#define getGS() (*(Cpu.GetGS))() +#else /* PROD */ +IMPORT IU16 getGS IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getEFLAGS IPT0(); +#define getEFLAGS() c_getEFLAGS() +#else /* CCPU */ + +#ifdef PROD +#define getEFLAGS() (*(Cpu.GetEFLAGS))() +#else /* PROD */ +IMPORT IU32 getEFLAGS IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getSTATUS IPT0(); +#define getSTATUS() c_getSTATUS() +#else /* CCPU */ + +#ifdef PROD +#define getSTATUS() (*(Cpu.GetSTATUS))() +#else /* PROD */ +IMPORT IU16 getSTATUS IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU8 c_getIOPL IPT0(); +#define getIOPL() c_getIOPL() +#else /* CCPU */ + +#ifdef PROD +#define getIOPL() (*(Cpu.GetIOPL))() +#else /* PROD */ +IMPORT IU8 getIOPL IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getMSW IPT0(); +#define getMSW() c_getMSW() +#else /* CCPU */ + +#ifdef PROD +#define getMSW() (*(Cpu.GetMSW))() +#else /* PROD */ +IMPORT IU16 getMSW IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getCR0 IPT0(); +#define getCR0() c_getCR0() +#else /* CCPU */ + +#ifdef PROD +#define getCR0() (*(Cpu.GetCR0))() +#else /* PROD */ +IMPORT IU32 getCR0 IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getCR2 IPT0(); +#define getCR2() c_getCR2() +#else /* CCPU */ + +#ifdef PROD +#define getCR2() (*(Cpu.GetCR2))() +#else /* PROD */ +IMPORT IU32 getCR2 IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getCR3 IPT0(); +#define getCR3() c_getCR3() +#else /* CCPU */ + +#ifdef PROD +#define getCR3() (*(Cpu.GetCR3))() +#else /* PROD */ +IMPORT IU32 getCR3 IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getCF IPT0(); +#define getCF() c_getCF() +#else /* CCPU */ + +#ifdef PROD +#define getCF() (*(Cpu.GetCF))() +#else /* PROD */ +IMPORT IBOOL getCF IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getPF IPT0(); +#define getPF() c_getPF() +#else /* CCPU */ + +#ifdef PROD +#define getPF() (*(Cpu.GetPF))() +#else /* PROD */ +IMPORT IBOOL getPF IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getAF IPT0(); +#define getAF() c_getAF() +#else /* CCPU */ + +#ifdef PROD +#define getAF() (*(Cpu.GetAF))() +#else /* PROD */ +IMPORT IBOOL getAF IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getZF IPT0(); +#define getZF() c_getZF() +#else /* CCPU */ + +#ifdef PROD +#define getZF() (*(Cpu.GetZF))() +#else /* PROD */ +IMPORT IBOOL getZF IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getSF IPT0(); +#define getSF() c_getSF() +#else /* CCPU */ + +#ifdef PROD +#define getSF() (*(Cpu.GetSF))() +#else /* PROD */ +IMPORT IBOOL getSF IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getTF IPT0(); +#define getTF() c_getTF() +#else /* CCPU */ + +#ifdef PROD +#define getTF() (*(Cpu.GetTF))() +#else /* PROD */ +IMPORT IBOOL getTF IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getIF IPT0(); +#define getIF() c_getIF() +#else /* CCPU */ + +#ifdef PROD +#define getIF() (*(Cpu.GetIF))() +#else /* PROD */ +IMPORT IBOOL getIF IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getDF IPT0(); +#define getDF() c_getDF() +#else /* CCPU */ + +#ifdef PROD +#define getDF() (*(Cpu.GetDF))() +#else /* PROD */ +IMPORT IBOOL getDF IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getOF IPT0(); +#define getOF() c_getOF() +#else /* CCPU */ + +#ifdef PROD +#define getOF() (*(Cpu.GetOF))() +#else /* PROD */ +IMPORT IBOOL getOF IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getNT IPT0(); +#define getNT() c_getNT() +#else /* CCPU */ + +#ifdef PROD +#define getNT() (*(Cpu.GetNT))() +#else /* PROD */ +IMPORT IBOOL getNT IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getRF IPT0(); +#define getRF() c_getRF() +#else /* CCPU */ + +#ifdef PROD +#define getRF() (*(Cpu.GetRF))() +#else /* PROD */ +IMPORT IBOOL getRF IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getVM IPT0(); +#define getVM() c_getVM() +#else /* CCPU */ + +#ifdef PROD +#define getVM() (*(Cpu.GetVM))() +#else /* PROD */ +IMPORT IBOOL getVM IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getAC IPT0(); +#define getAC() c_getAC() +#else /* CCPU */ + +#ifdef PROD +#define getAC() (*(Cpu.GetAC))() +#else /* PROD */ +IMPORT IBOOL getAC IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getPE IPT0(); +#define getPE() c_getPE() +#else /* CCPU */ + +#ifdef PROD +#define getPE() (*(Cpu.GetPE))() +#else /* PROD */ +IMPORT IBOOL getPE IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getMP IPT0(); +#define getMP() c_getMP() +#else /* CCPU */ + +#ifdef PROD +#define getMP() (*(Cpu.GetMP))() +#else /* PROD */ +IMPORT IBOOL getMP IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getEM IPT0(); +#define getEM() c_getEM() +#else /* CCPU */ + +#ifdef PROD +#define getEM() (*(Cpu.GetEM))() +#else /* PROD */ +IMPORT IBOOL getEM IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getTS IPT0(); +#define getTS() c_getTS() +#else /* CCPU */ + +#ifdef PROD +#define getTS() (*(Cpu.GetTS))() +#else /* PROD */ +IMPORT IBOOL getTS IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getET IPT0(); +#define getET() c_getET() +#else /* CCPU */ + +#ifdef PROD +#define getET() (*(Cpu.GetET))() +#else /* PROD */ +IMPORT IBOOL getET IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getNE IPT0(); +#define getNE() c_getNE() +#else /* CCPU */ + +#ifdef PROD +#define getNE() (*(Cpu.GetNE))() +#else /* PROD */ +IMPORT IBOOL getNE IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getWP IPT0(); +#define getWP() c_getWP() +#else /* CCPU */ + +#ifdef PROD +#define getWP() (*(Cpu.GetWP))() +#else /* PROD */ +IMPORT IBOOL getWP IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_getPG IPT0(); +#define getPG() c_getPG() +#else /* CCPU */ + +#ifdef PROD +#define getPG() (*(Cpu.GetPG))() +#else /* PROD */ +IMPORT IBOOL getPG IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getGDT_BASE IPT0(); +#define getGDT_BASE() c_getGDT_BASE() +#else /* CCPU */ + +#ifdef PROD +#define getGDT_BASE() (*(Cpu.GetGDT_BASE))() +#else /* PROD */ +IMPORT IU32 getGDT_BASE IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getGDT_LIMIT IPT0(); +#define getGDT_LIMIT() c_getGDT_LIMIT() +#else /* CCPU */ + +#ifdef PROD +#define getGDT_LIMIT() (*(Cpu.GetGDT_LIMIT))() +#else /* PROD */ +IMPORT IU16 getGDT_LIMIT IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getIDT_BASE IPT0(); +#define getIDT_BASE() c_getIDT_BASE() +#else /* CCPU */ + +#ifdef PROD +#define getIDT_BASE() (*(Cpu.GetIDT_BASE))() +#else /* PROD */ +IMPORT IU32 getIDT_BASE IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getIDT_LIMIT IPT0(); +#define getIDT_LIMIT() c_getIDT_LIMIT() +#else /* CCPU */ + +#ifdef PROD +#define getIDT_LIMIT() (*(Cpu.GetIDT_LIMIT))() +#else /* PROD */ +IMPORT IU16 getIDT_LIMIT IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getLDT_SELECTOR IPT0(); +#define getLDT_SELECTOR() c_getLDT_SELECTOR() +#else /* CCPU */ + +#ifdef PROD +#define getLDT_SELECTOR() (*(Cpu.GetLDT_SELECTOR))() +#else /* PROD */ +IMPORT IU16 getLDT_SELECTOR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getLDT_BASE IPT0(); +#define getLDT_BASE() c_getLDT_BASE() +#else /* CCPU */ + +#ifdef PROD +#define getLDT_BASE() (*(Cpu.GetLDT_BASE))() +#else /* PROD */ +IMPORT IU32 getLDT_BASE IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getLDT_LIMIT IPT0(); +#define getLDT_LIMIT() c_getLDT_LIMIT() +#else /* CCPU */ + +#ifdef PROD +#define getLDT_LIMIT() (*(Cpu.GetLDT_LIMIT))() +#else /* PROD */ +IMPORT IU32 getLDT_LIMIT IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getTR_SELECTOR IPT0(); +#define getTR_SELECTOR() c_getTR_SELECTOR() +#else /* CCPU */ + +#ifdef PROD +#define getTR_SELECTOR() (*(Cpu.GetTR_SELECTOR))() +#else /* PROD */ +IMPORT IU16 getTR_SELECTOR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getTR_BASE IPT0(); +#define getTR_BASE() c_getTR_BASE() +#else /* CCPU */ + +#ifdef PROD +#define getTR_BASE() (*(Cpu.GetTR_BASE))() +#else /* PROD */ +IMPORT IU32 getTR_BASE IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getTR_LIMIT IPT0(); +#define getTR_LIMIT() c_getTR_LIMIT() +#else /* CCPU */ + +#ifdef PROD +#define getTR_LIMIT() (*(Cpu.GetTR_LIMIT))() +#else /* PROD */ +IMPORT IU32 getTR_LIMIT IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getTR_AR IPT0(); +#define getTR_AR() c_getTR_AR() +#else /* CCPU */ + +#ifdef PROD +#define getTR_AR() (*(Cpu.GetTR_AR))() +#else /* PROD */ +IMPORT IU16 getTR_AR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IUH host_get_q_calib_val IPT0(); +#define host_get_q_calib_val host_get_q_calib_val +#else /* CCPU */ + +#ifdef PROD +#define host_get_q_calib_val (*(Cpu.GetJumpCalibrateVal)) +#else /* PROD */ +IMPORT IUH host_get_q_calib_val IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IUH host_get_jump_restart IPT0(); +#define host_get_jump_restart host_get_jump_restart +#else /* CCPU */ + +#ifdef PROD +#define host_get_jump_restart (*(Cpu.GetJumpInitialVal)) +#else /* PROD */ +IMPORT IUH host_get_jump_restart IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void host_set_jump_restart IPT1(IUH, initialVal); +#define host_set_jump_restart(initialVal) host_set_jump_restart(initialVal) +#else /* CCPU */ + +#ifdef PROD +#define host_set_jump_restart(initialVal) (*(Cpu.SetJumpInitialVal))(initialVal) +#else /* PROD */ +IMPORT void host_set_jump_restart IPT1(IUH, initialVal); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void setEOIEnableAddr IPT1(IU8 *, initialVal); +#define setEOIEnableAddr(initialVal) setEOIEnableAddr(initialVal) +#else /* CCPU */ + +#ifdef PROD +#define setEOIEnableAddr(initialVal) (*(Cpu.SetEOIEnable))(initialVal) +#else /* PROD */ +IMPORT void setEOIEnableAddr IPT1(IU8 *, initialVal); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void setAddProfileDataPtr IPT1(IHP, initialVal); +#define setAddProfileDataPtr(initialVal) setAddProfileDataPtr(initialVal) +#else /* CCPU */ + +#ifdef PROD +#define setAddProfileDataPtr(initialVal) (*(Cpu.SetAddProfileData))(initialVal) +#else /* PROD */ +IMPORT void setAddProfileDataPtr IPT1(IHP, initialVal); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void setMaxProfileDataAddr IPT1(IHP, initialVal); +#define setMaxProfileDataAddr(initialVal) setMaxProfileDataAddr(initialVal) +#else /* CCPU */ + +#ifdef PROD +#define setMaxProfileDataAddr(initialVal) (*(Cpu.SetMaxProfileData))(initialVal) +#else /* PROD */ +IMPORT void setMaxProfileDataAddr IPT1(IHP, initialVal); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IHP getAddProfileDataAddr IPT0(); +#define getAddProfileDataAddr() getAddProfileDataAddr() +#else /* CCPU */ + +#ifdef PROD +#define getAddProfileDataAddr() (*(Cpu.GetAddProfileDataAddr))() +#else /* PROD */ +IMPORT IHP getAddProfileDataAddr IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void PurgeLostIretHookLine IPT1(IU16, lineNum); +#define PurgeLostIretHookLine(lineNum) PurgeLostIretHookLine(lineNum) +#else /* CCPU */ + +#ifdef PROD +#define PurgeLostIretHookLine(lineNum) (*(Cpu.PurgeLostIretHookLine))(lineNum) +#else /* PROD */ +IMPORT void PurgeLostIretHookLine IPT1(IU16, lineNum); +#endif /*PROD*/ + +#endif /* CCPU */ + +typedef struct CpuStateREC * TypeCpuStateRECptr; +typedef struct ConstraintBitMapREC * TypeConstraintBitMapRECptr; +typedef struct EntryPointCacheREC * TypeEntryPointCacheRECptr; + +struct CpuPrivateVector { + IHP (*GetSadInfoTable) IPT0(); + IBOOL (*SetGDT_BASE_LIMIT) IPT2(IU32, base, IU16, limit); + IBOOL (*SetIDT_BASE_LIMIT) IPT2(IU32, base, IU16, limit); + IBOOL (*SetLDT_BASE_LIMIT) IPT2(IU32, base, IU32, limit); + IBOOL (*SetTR_BASE_LIMIT) IPT2(IU32, base, IU32, limit); + IBOOL (*SetTR_BASE_LIMIT_AR) IPT3(IU32, base, IU32, limit, IU16, ar); + IBOOL (*SetCS_BASE_LIMIT_AR) IPT3(IU32, base, IU32, limit, IU16, ar); + IBOOL (*SetSS_BASE_LIMIT_AR) IPT3(IU32, base, IU32, limit, IU16, ar); + IBOOL (*SetDS_BASE_LIMIT_AR) IPT3(IU32, base, IU32, limit, IU16, ar); + IBOOL (*SetES_BASE_LIMIT_AR) IPT3(IU32, base, IU32, limit, IU16, ar); + IBOOL (*SetFS_BASE_LIMIT_AR) IPT3(IU32, base, IU32, limit, IU16, ar); + IBOOL (*SetGS_BASE_LIMIT_AR) IPT3(IU32, base, IU32, limit, IU16, ar); + void (*SetCS_SELECTOR) IPT1(IU16, val); + void (*SetSS_SELECTOR) IPT1(IU16, val); + void (*SetDS_SELECTOR) IPT1(IU16, val); + void (*SetES_SELECTOR) IPT1(IU16, val); + void (*SetFS_SELECTOR) IPT1(IU16, val); + void (*SetGS_SELECTOR) IPT1(IU16, val); + IU16 (*GetCS_SELECTOR) IPT0(); + IU16 (*GetSS_SELECTOR) IPT0(); + IU16 (*GetDS_SELECTOR) IPT0(); + IU16 (*GetES_SELECTOR) IPT0(); + IU16 (*GetFS_SELECTOR) IPT0(); + IU16 (*GetGS_SELECTOR) IPT0(); + IU32 (*GetCS_BASE) IPT0(); + IU32 (*GetSS_BASE) IPT0(); + IU32 (*GetDS_BASE) IPT0(); + IU32 (*GetES_BASE) IPT0(); + IU32 (*GetFS_BASE) IPT0(); + IU32 (*GetGS_BASE) IPT0(); + IU32 (*GetCS_LIMIT) IPT0(); + IU32 (*GetSS_LIMIT) IPT0(); + IU32 (*GetDS_LIMIT) IPT0(); + IU32 (*GetES_LIMIT) IPT0(); + IU32 (*GetFS_LIMIT) IPT0(); + IU32 (*GetGS_LIMIT) IPT0(); + IU16 (*GetCS_AR) IPT0(); + IU16 (*GetSS_AR) IPT0(); + IU16 (*GetDS_AR) IPT0(); + IU16 (*GetES_AR) IPT0(); + IU16 (*GetFS_AR) IPT0(); + IU16 (*GetGS_AR) IPT0(); + IUH (*GetCPL) IPT0(); + void (*SetCPL) IPT1(IUH, prot); + void (*GetCpuState) IPT1(TypeCpuStateRECptr, state); + void (*SetCpuState) IPT1(TypeCpuStateRECptr, state); + void (*InitNanoCpu) IPT1(IU32, variety); + void (*PrepareBlocksToCompile) IPT1(IU32, variety); + void (*SetRegConstraint) IPT2(IU32, regId, IU8, constraintType); + void (*GrowRecPool) IPT0(); + void (*BpiCompileBPI) IPT1(char *, instructions); + void (*TrashIntelRegisters) IPT0(); + void (*FmDeleteAllStructures) IPT1(IU32, newCR0); + TypeConstraintBitMapRECptr (*ConstraintsFromUnivEpcPtr) IPT1(TypeEntryPointCacheRECptr, univ); + TypeConstraintBitMapRECptr (*ConstraintsFromUnivHandle) IPT1(IU16, handle); +}; + +#ifdef CCPU +IMPORT IHP c_getSadInfoTable IPT0(); +#define getSadInfoTable() c_getSadInfoTable() +#else /* CCPU */ + +#ifdef PROD +#define getSadInfoTable() (*((*(Cpu.Private)).GetSadInfoTable))() +#else /* PROD */ +IMPORT IHP getSadInfoTable IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_setGDT_BASE_LIMIT IPT2(IU32, base, IU16, limit); +#define setGDT_BASE_LIMIT(base, limit) c_setGDT_BASE_LIMIT(base, limit) +#else /* CCPU */ + +#ifdef PROD +#define setGDT_BASE_LIMIT(base, limit) (*((*(Cpu.Private)).SetGDT_BASE_LIMIT))(base, limit) +#else /* PROD */ +IMPORT IBOOL setGDT_BASE_LIMIT IPT2(IU32, base, IU16, limit); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_setIDT_BASE_LIMIT IPT2(IU32, base, IU16, limit); +#define setIDT_BASE_LIMIT(base, limit) c_setIDT_BASE_LIMIT(base, limit) +#else /* CCPU */ + +#ifdef PROD +#define setIDT_BASE_LIMIT(base, limit) (*((*(Cpu.Private)).SetIDT_BASE_LIMIT))(base, limit) +#else /* PROD */ +IMPORT IBOOL setIDT_BASE_LIMIT IPT2(IU32, base, IU16, limit); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_setLDT_BASE_LIMIT IPT2(IU32, base, IU32, limit); +#define setLDT_BASE_LIMIT(base, limit) c_setLDT_BASE_LIMIT(base, limit) +#else /* CCPU */ + +#ifdef PROD +#define setLDT_BASE_LIMIT(base, limit) (*((*(Cpu.Private)).SetLDT_BASE_LIMIT))(base, limit) +#else /* PROD */ +IMPORT IBOOL setLDT_BASE_LIMIT IPT2(IU32, base, IU32, limit); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_setTR_BASE_LIMIT IPT2(IU32, base, IU32, limit); +#define setTR_BASE_LIMIT(base, limit) c_setTR_BASE_LIMIT(base, limit) +#else /* CCPU */ + +#ifdef PROD +#define setTR_BASE_LIMIT(base, limit) (*((*(Cpu.Private)).SetTR_BASE_LIMIT))(base, limit) +#else /* PROD */ +IMPORT IBOOL setTR_BASE_LIMIT IPT2(IU32, base, IU32, limit); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_setTR_BASE_LIMIT_AR IPT3(IU32, base, IU32, limit, IU16, ar); +#define setTR_BASE_LIMIT_AR(base, limit, ar) c_setTR_BASE_LIMIT_AR(base, limit, ar) +#else /* CCPU */ + +#ifdef PROD +#define setTR_BASE_LIMIT_AR(base, limit, ar) (*((*(Cpu.Private)).SetTR_BASE_LIMIT_AR))(base, limit, ar) +#else /* PROD */ +IMPORT IBOOL setTR_BASE_LIMIT_AR IPT3(IU32, base, IU32, limit, IU16, ar); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_setCS_BASE_LIMIT_AR IPT3(IU32, base, IU32, limit, IU16, ar); +#define setCS_BASE_LIMIT_AR(base, limit, ar) c_setCS_BASE_LIMIT_AR(base, limit, ar) +#else /* CCPU */ + +#ifdef PROD +#define setCS_BASE_LIMIT_AR(base, limit, ar) (*((*(Cpu.Private)).SetCS_BASE_LIMIT_AR))(base, limit, ar) +#else /* PROD */ +IMPORT IBOOL setCS_BASE_LIMIT_AR IPT3(IU32, base, IU32, limit, IU16, ar); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_setSS_BASE_LIMIT_AR IPT3(IU32, base, IU32, limit, IU16, ar); +#define setSS_BASE_LIMIT_AR(base, limit, ar) c_setSS_BASE_LIMIT_AR(base, limit, ar) +#else /* CCPU */ + +#ifdef PROD +#define setSS_BASE_LIMIT_AR(base, limit, ar) (*((*(Cpu.Private)).SetSS_BASE_LIMIT_AR))(base, limit, ar) +#else /* PROD */ +IMPORT IBOOL setSS_BASE_LIMIT_AR IPT3(IU32, base, IU32, limit, IU16, ar); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_setDS_BASE_LIMIT_AR IPT3(IU32, base, IU32, limit, IU16, ar); +#define setDS_BASE_LIMIT_AR(base, limit, ar) c_setDS_BASE_LIMIT_AR(base, limit, ar) +#else /* CCPU */ + +#ifdef PROD +#define setDS_BASE_LIMIT_AR(base, limit, ar) (*((*(Cpu.Private)).SetDS_BASE_LIMIT_AR))(base, limit, ar) +#else /* PROD */ +IMPORT IBOOL setDS_BASE_LIMIT_AR IPT3(IU32, base, IU32, limit, IU16, ar); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_setES_BASE_LIMIT_AR IPT3(IU32, base, IU32, limit, IU16, ar); +#define setES_BASE_LIMIT_AR(base, limit, ar) c_setES_BASE_LIMIT_AR(base, limit, ar) +#else /* CCPU */ + +#ifdef PROD +#define setES_BASE_LIMIT_AR(base, limit, ar) (*((*(Cpu.Private)).SetES_BASE_LIMIT_AR))(base, limit, ar) +#else /* PROD */ +IMPORT IBOOL setES_BASE_LIMIT_AR IPT3(IU32, base, IU32, limit, IU16, ar); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_setFS_BASE_LIMIT_AR IPT3(IU32, base, IU32, limit, IU16, ar); +#define setFS_BASE_LIMIT_AR(base, limit, ar) c_setFS_BASE_LIMIT_AR(base, limit, ar) +#else /* CCPU */ + +#ifdef PROD +#define setFS_BASE_LIMIT_AR(base, limit, ar) (*((*(Cpu.Private)).SetFS_BASE_LIMIT_AR))(base, limit, ar) +#else /* PROD */ +IMPORT IBOOL setFS_BASE_LIMIT_AR IPT3(IU32, base, IU32, limit, IU16, ar); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_setGS_BASE_LIMIT_AR IPT3(IU32, base, IU32, limit, IU16, ar); +#define setGS_BASE_LIMIT_AR(base, limit, ar) c_setGS_BASE_LIMIT_AR(base, limit, ar) +#else /* CCPU */ + +#ifdef PROD +#define setGS_BASE_LIMIT_AR(base, limit, ar) (*((*(Cpu.Private)).SetGS_BASE_LIMIT_AR))(base, limit, ar) +#else /* PROD */ +IMPORT IBOOL setGS_BASE_LIMIT_AR IPT3(IU32, base, IU32, limit, IU16, ar); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setCS_SELECTOR IPT1(IU16, val); +#define setCS_SELECTOR(val) c_setCS_SELECTOR(val) +#else /* CCPU */ + +#ifdef PROD +#define setCS_SELECTOR(val) (*((*(Cpu.Private)).SetCS_SELECTOR))(val) +#else /* PROD */ +IMPORT void setCS_SELECTOR IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setSS_SELECTOR IPT1(IU16, val); +#define setSS_SELECTOR(val) c_setSS_SELECTOR(val) +#else /* CCPU */ + +#ifdef PROD +#define setSS_SELECTOR(val) (*((*(Cpu.Private)).SetSS_SELECTOR))(val) +#else /* PROD */ +IMPORT void setSS_SELECTOR IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setDS_SELECTOR IPT1(IU16, val); +#define setDS_SELECTOR(val) c_setDS_SELECTOR(val) +#else /* CCPU */ + +#ifdef PROD +#define setDS_SELECTOR(val) (*((*(Cpu.Private)).SetDS_SELECTOR))(val) +#else /* PROD */ +IMPORT void setDS_SELECTOR IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setES_SELECTOR IPT1(IU16, val); +#define setES_SELECTOR(val) c_setES_SELECTOR(val) +#else /* CCPU */ + +#ifdef PROD +#define setES_SELECTOR(val) (*((*(Cpu.Private)).SetES_SELECTOR))(val) +#else /* PROD */ +IMPORT void setES_SELECTOR IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setFS_SELECTOR IPT1(IU16, val); +#define setFS_SELECTOR(val) c_setFS_SELECTOR(val) +#else /* CCPU */ + +#ifdef PROD +#define setFS_SELECTOR(val) (*((*(Cpu.Private)).SetFS_SELECTOR))(val) +#else /* PROD */ +IMPORT void setFS_SELECTOR IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setGS_SELECTOR IPT1(IU16, val); +#define setGS_SELECTOR(val) c_setGS_SELECTOR(val) +#else /* CCPU */ + +#ifdef PROD +#define setGS_SELECTOR(val) (*((*(Cpu.Private)).SetGS_SELECTOR))(val) +#else /* PROD */ +IMPORT void setGS_SELECTOR IPT1(IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getCS_SELECTOR IPT0(); +#define getCS_SELECTOR() c_getCS_SELECTOR() +#else /* CCPU */ + +#ifdef PROD +#define getCS_SELECTOR() (*((*(Cpu.Private)).GetCS_SELECTOR))() +#else /* PROD */ +IMPORT IU16 getCS_SELECTOR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getSS_SELECTOR IPT0(); +#define getSS_SELECTOR() c_getSS_SELECTOR() +#else /* CCPU */ + +#ifdef PROD +#define getSS_SELECTOR() (*((*(Cpu.Private)).GetSS_SELECTOR))() +#else /* PROD */ +IMPORT IU16 getSS_SELECTOR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getDS_SELECTOR IPT0(); +#define getDS_SELECTOR() c_getDS_SELECTOR() +#else /* CCPU */ + +#ifdef PROD +#define getDS_SELECTOR() (*((*(Cpu.Private)).GetDS_SELECTOR))() +#else /* PROD */ +IMPORT IU16 getDS_SELECTOR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getES_SELECTOR IPT0(); +#define getES_SELECTOR() c_getES_SELECTOR() +#else /* CCPU */ + +#ifdef PROD +#define getES_SELECTOR() (*((*(Cpu.Private)).GetES_SELECTOR))() +#else /* PROD */ +IMPORT IU16 getES_SELECTOR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getFS_SELECTOR IPT0(); +#define getFS_SELECTOR() c_getFS_SELECTOR() +#else /* CCPU */ + +#ifdef PROD +#define getFS_SELECTOR() (*((*(Cpu.Private)).GetFS_SELECTOR))() +#else /* PROD */ +IMPORT IU16 getFS_SELECTOR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getGS_SELECTOR IPT0(); +#define getGS_SELECTOR() c_getGS_SELECTOR() +#else /* CCPU */ + +#ifdef PROD +#define getGS_SELECTOR() (*((*(Cpu.Private)).GetGS_SELECTOR))() +#else /* PROD */ +IMPORT IU16 getGS_SELECTOR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getCS_BASE IPT0(); +#define getCS_BASE() c_getCS_BASE() +#else /* CCPU */ + +#ifdef PROD +#define getCS_BASE() (*((*(Cpu.Private)).GetCS_BASE))() +#else /* PROD */ +IMPORT IU32 getCS_BASE IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getSS_BASE IPT0(); +#define getSS_BASE() c_getSS_BASE() +#else /* CCPU */ + +#ifdef PROD +#define getSS_BASE() (*((*(Cpu.Private)).GetSS_BASE))() +#else /* PROD */ +IMPORT IU32 getSS_BASE IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getDS_BASE IPT0(); +#define getDS_BASE() c_getDS_BASE() +#else /* CCPU */ + +#ifdef PROD +#define getDS_BASE() (*((*(Cpu.Private)).GetDS_BASE))() +#else /* PROD */ +IMPORT IU32 getDS_BASE IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getES_BASE IPT0(); +#define getES_BASE() c_getES_BASE() +#else /* CCPU */ + +#ifdef PROD +#define getES_BASE() (*((*(Cpu.Private)).GetES_BASE))() +#else /* PROD */ +IMPORT IU32 getES_BASE IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getFS_BASE IPT0(); +#define getFS_BASE() c_getFS_BASE() +#else /* CCPU */ + +#ifdef PROD +#define getFS_BASE() (*((*(Cpu.Private)).GetFS_BASE))() +#else /* PROD */ +IMPORT IU32 getFS_BASE IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getGS_BASE IPT0(); +#define getGS_BASE() c_getGS_BASE() +#else /* CCPU */ + +#ifdef PROD +#define getGS_BASE() (*((*(Cpu.Private)).GetGS_BASE))() +#else /* PROD */ +IMPORT IU32 getGS_BASE IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getCS_LIMIT IPT0(); +#define getCS_LIMIT() c_getCS_LIMIT() +#else /* CCPU */ + +#ifdef PROD +#define getCS_LIMIT() (*((*(Cpu.Private)).GetCS_LIMIT))() +#else /* PROD */ +IMPORT IU32 getCS_LIMIT IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getSS_LIMIT IPT0(); +#define getSS_LIMIT() c_getSS_LIMIT() +#else /* CCPU */ + +#ifdef PROD +#define getSS_LIMIT() (*((*(Cpu.Private)).GetSS_LIMIT))() +#else /* PROD */ +IMPORT IU32 getSS_LIMIT IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getDS_LIMIT IPT0(); +#define getDS_LIMIT() c_getDS_LIMIT() +#else /* CCPU */ + +#ifdef PROD +#define getDS_LIMIT() (*((*(Cpu.Private)).GetDS_LIMIT))() +#else /* PROD */ +IMPORT IU32 getDS_LIMIT IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getES_LIMIT IPT0(); +#define getES_LIMIT() c_getES_LIMIT() +#else /* CCPU */ + +#ifdef PROD +#define getES_LIMIT() (*((*(Cpu.Private)).GetES_LIMIT))() +#else /* PROD */ +IMPORT IU32 getES_LIMIT IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getFS_LIMIT IPT0(); +#define getFS_LIMIT() c_getFS_LIMIT() +#else /* CCPU */ + +#ifdef PROD +#define getFS_LIMIT() (*((*(Cpu.Private)).GetFS_LIMIT))() +#else /* PROD */ +IMPORT IU32 getFS_LIMIT IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_getGS_LIMIT IPT0(); +#define getGS_LIMIT() c_getGS_LIMIT() +#else /* CCPU */ + +#ifdef PROD +#define getGS_LIMIT() (*((*(Cpu.Private)).GetGS_LIMIT))() +#else /* PROD */ +IMPORT IU32 getGS_LIMIT IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getCS_AR IPT0(); +#define getCS_AR() c_getCS_AR() +#else /* CCPU */ + +#ifdef PROD +#define getCS_AR() (*((*(Cpu.Private)).GetCS_AR))() +#else /* PROD */ +IMPORT IU16 getCS_AR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getSS_AR IPT0(); +#define getSS_AR() c_getSS_AR() +#else /* CCPU */ + +#ifdef PROD +#define getSS_AR() (*((*(Cpu.Private)).GetSS_AR))() +#else /* PROD */ +IMPORT IU16 getSS_AR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getDS_AR IPT0(); +#define getDS_AR() c_getDS_AR() +#else /* CCPU */ + +#ifdef PROD +#define getDS_AR() (*((*(Cpu.Private)).GetDS_AR))() +#else /* PROD */ +IMPORT IU16 getDS_AR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getES_AR IPT0(); +#define getES_AR() c_getES_AR() +#else /* CCPU */ + +#ifdef PROD +#define getES_AR() (*((*(Cpu.Private)).GetES_AR))() +#else /* PROD */ +IMPORT IU16 getES_AR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getFS_AR IPT0(); +#define getFS_AR() c_getFS_AR() +#else /* CCPU */ + +#ifdef PROD +#define getFS_AR() (*((*(Cpu.Private)).GetFS_AR))() +#else /* PROD */ +IMPORT IU16 getFS_AR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_getGS_AR IPT0(); +#define getGS_AR() c_getGS_AR() +#else /* CCPU */ + +#ifdef PROD +#define getGS_AR() (*((*(Cpu.Private)).GetGS_AR))() +#else /* PROD */ +IMPORT IU16 getGS_AR IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IUH c_getCPL IPT0(); +#define getCPL() c_getCPL() +#else /* CCPU */ + +#ifdef PROD +#define getCPL() (*((*(Cpu.Private)).GetCPL))() +#else /* PROD */ +IMPORT IUH getCPL IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setCPL IPT1(IUH, prot); +#define setCPL(prot) c_setCPL(prot) +#else /* CCPU */ + +#ifdef PROD +#define setCPL(prot) (*((*(Cpu.Private)).SetCPL))(prot) +#else /* PROD */ +IMPORT void setCPL IPT1(IUH, prot); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_getCpuState IPT1(TypeCpuStateRECptr, state); +#define getCpuState(state) c_getCpuState(state) +#else /* CCPU */ + +#ifdef PROD +#define getCpuState(state) (*((*(Cpu.Private)).GetCpuState))(state) +#else /* PROD */ +IMPORT void getCpuState IPT1(TypeCpuStateRECptr, state); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setCpuState IPT1(TypeCpuStateRECptr, state); +#define setCpuState(state) c_setCpuState(state) +#else /* CCPU */ + +#ifdef PROD +#define setCpuState(state) (*((*(Cpu.Private)).SetCpuState))(state) +#else /* PROD */ +IMPORT void setCpuState IPT1(TypeCpuStateRECptr, state); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_InitNanoCpu IPT1(IU32, variety); +#define initNanoCpu(variety) c_InitNanoCpu(variety) +#else /* CCPU */ + +#ifdef PROD +#define initNanoCpu(variety) (*((*(Cpu.Private)).InitNanoCpu))(variety) +#else /* PROD */ +IMPORT void initNanoCpu IPT1(IU32, variety); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_PrepareBlocksToCompile IPT1(IU32, variety); +#define prepareBlocksToCompile(variety) c_PrepareBlocksToCompile(variety) +#else /* CCPU */ + +#ifdef PROD +#define prepareBlocksToCompile(variety) (*((*(Cpu.Private)).PrepareBlocksToCompile))(variety) +#else /* PROD */ +IMPORT void prepareBlocksToCompile IPT1(IU32, variety); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_setRegConstraint IPT2(IU32, regId, IU8, constraintType); +#define setRegConstraint(regId, constraintType) c_setRegConstraint(regId, constraintType) +#else /* CCPU */ + +#ifdef PROD +#define setRegConstraint(regId, constraintType) (*((*(Cpu.Private)).SetRegConstraint))(regId, constraintType) +#else /* PROD */ +IMPORT void setRegConstraint IPT2(IU32, regId, IU8, constraintType); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_growRecPool IPT0(); +#define growRecPool c_growRecPool +#else /* CCPU */ + +#ifdef PROD +#define growRecPool (*((*(Cpu.Private)).GrowRecPool)) +#else /* PROD */ +IMPORT void growRecPool IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU + +#else /* CCPU */ + +#ifdef PROD +#define BpiCompileBPI(instructions) (*((*(Cpu.Private)).BpiCompileBPI))(instructions) +#else /* PROD */ +IMPORT void BpiCompileBPI IPT1(char *, instructions); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_trashIntelRegisters IPT0(); +#define trashIntelregisters c_trashIntelRegisters +#else /* CCPU */ + +#ifdef PROD +#define trashIntelregisters (*((*(Cpu.Private)).TrashIntelRegisters)) +#else /* PROD */ +IMPORT void trashIntelregisters IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU + +#else /* CCPU */ + +#ifdef PROD +#define FmDeleteAllStructures(newCR0) (*((*(Cpu.Private)).FmDeleteAllStructures))(newCR0) +#else /* PROD */ +IMPORT void FmDeleteAllStructures IPT1(IU32, newCR0); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU + +#else /* CCPU */ + +#ifdef PROD +#define constraintsFromUnivEpcPtr(univ) (*((*(Cpu.Private)).ConstraintsFromUnivEpcPtr))(univ) +#else /* PROD */ +IMPORT TypeConstraintBitMapRECptr constraintsFromUnivEpcPtr IPT1(TypeEntryPointCacheRECptr, univ); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU + +#else /* CCPU */ + +#ifdef PROD +#define constraintsFromUnivHandle(handle) (*((*(Cpu.Private)).ConstraintsFromUnivHandle))(handle) +#else /* PROD */ +IMPORT TypeConstraintBitMapRECptr constraintsFromUnivHandle IPT1(IU16, handle); +#endif /*PROD*/ + +#endif /* CCPU */ + +/*======================================== END ========================================*/ + diff --git a/private/mvdm/softpc.new/base/cvidc/cpu_c.h b/private/mvdm/softpc.new/base/cvidc/cpu_c.h new file mode 100644 index 000000000..f0007405a --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/cpu_c.h @@ -0,0 +1,118 @@ +#ifndef _Cpu_c_h +#define _Cpu_c_h +#define NANO_STATE_HIGH_BIT (14) +#define LAZY_FT (1) +enum cv +{ + SAFE_SEGMENT, + PUSH_SAFE, + POP_SAFE, + BP_RELATED_SAFE, + PROTECTED, + VIRTUAL_8086, + FLAT_SEGMENT, + DF_BACKWARDS, + NO_FLAGS, + ALIGN_2, + ALIGN_4, + ADDRESS_SIZE_32, + ACCESS_IS_READ, + EXPAND_UP, + COMPILE_TIME_FT, + COMPILE_TIME_FT_PAD1, + COMPILE_TIME_FT_PAD2, + COMPILE_TIME_FT_PAD3, + COMPILE_TIME_FT_PAD4, + COMPILE_TIME_FT_PAD5, + BEFORE_SINGLE, + AFTER_SINGLE, + COPIER_CHECK_OK, + SF_UNCHECKED, + SF_IOACCESS, + INVERT_JCOND, + LAST_CV +}; +enum Constraints +{ + ConstraintPROTECTED = 0, + ConstraintVIRTUAL_8086 = 1, + ConstraintBIG_CODE = 2, + ConstraintDF = 3, + ConstraintRAX_LS16 = 4, + ConstraintRAL_LS8 = 5, + ConstraintRBX_LS16 = 6, + ConstraintRBL_LS8 = 7, + ConstraintRCX_LS16 = 8, + ConstraintRCL_LS8 = 9, + ConstraintRDX_LS16 = 10, + ConstraintRDL_LS8 = 11, + ConstraintRBP_LS16 = 12, + ConstraintRSI_LS16 = 13, + ConstraintRDI_LS16 = 14, + ConstraintSfUnchecked = 15, + ConstraintSfIOAccess = 16, + ConstraintDS_SAFE = 17, + ConstraintES_SAFE = 18, + ConstraintFS_SAFE = 19, + ConstraintGS_SAFE = 20, + ConstraintPUSH_SAFE = 21, + ConstraintPOP_SAFE = 22, + ConstraintBP_RELATED_SAFE = 23, + ConstraintBEFORE_SINGLE = 24, + ConstraintAFTER_SINGLE = 25, + ConstraintCS_FLAT = 26, + ConstraintDS_FLAT = 27, + ConstraintES_FLAT = 28, + ConstraintFS_FLAT = 29, + ConstraintGS_FLAT = 30, + ConstraintSS_FLAT = 31, + ConstraintODD_SEGMENT = 32, + ConstraintNPX_DOES_INT7 = 33, + ConstraintDEBUGGING = 34, + ConstraintContext0 = 35, + ConstraintContext1 = 36, + ConstraintContext2 = 37, + ConstraintContext3 = 38, + ConstraintContext4 = 39, + ConstraintContext5 = 40 +}; +enum Targets +{ + TargetUNKNOWN = 0, + TargetALPHA64 = 1, + TargetALPHA32 = 2, + TargetHPP = 3, + TargetPPC = 4, + TargetSPARC = 5 +}; +#define Prod (0) +#define SwappedM (0) +#define Bigendian (1) +#define Asserts (1) +#define Pig (1) +#define Tracing (1) +#define Sad (1) +#define SyncTimer (0) +#define TargetArch (3) +#define Ic (0) +#define MustAlign (1) +#define BWOP (0) + +/* #defines generated by tremit.c for maniplulating pointers + * to Intel memory (that the caller knows will remain within a 4k page + */ +#ifndef SWAPPED_M /* This will be visible to mk -V checking*/ +#define ConvertHostToCpuPtrLS0(base, size, offset) ((IHP)(((IU8 *)(base))+(size)-(offset)-1)) +#define ConvertCpuPtrLS0toCpuPtrLS8(ls0ptr) ((IU8 *)(ls0ptr)) +#define AddCpuPtrLS8(ptr, amount) ((ptr) - (amount)) +#define IncCpuPtrLS8(ptr) (ptr)-- +#define DecCpuPtrLS8(ptr) (ptr)++ +#define DiffCpuPtrsLS8(lo, hi) ((lo) - (hi)) +#define BelowCpuPtrsLS8(p1, p2) ((p1) > (p2)) +#define BelowOrEqualCpuPtrsLS8(p1, p2) ((p1) >= (p2)) +#define FloorIntelPageLS8(ptr) ((IU8 *) (((IHPE)(ptr)) | 0xFFF)) +#define CeilingIntelPageLS8(ptr) ((IU8 *) (((IHPE)(ptr)) & ~((IHPE)0xFFF))) +#endif /* SWAPPED_M */ + +#define GDP_OFFSET (0) +#endif /* ! _Cpu_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/cpuint_c.h b/private/mvdm/softpc.new/base/cvidc/cpuint_c.h new file mode 100644 index 000000000..4f50fcd3e --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/cpuint_c.h @@ -0,0 +1,41 @@ +#ifndef _CpuInt_c_h +#define _CpuInt_c_h +#define ChipType (228) +#define WaferRevision (1) +#define nQuickTickerThreads (4) +struct InterruptREC +{ + IBOOL Activity; + IBOOL Reset; + IBOOL Hardware; + IBOOL Interval; + IBOOL AsynchIO; + IBOOL QuickTickerScan; + IBOOL SRCI; + IBOOL Disabled; +}; +struct QuickTickerThreadREC +{ + IBOOL Activity; + IUH triggerPoint; + IUH elapsed; +}; +struct QuickTickerREC +{ + IUH triggerPoint; + IUH elapsed; + IUH perTickDelta; + IUH averageRate; + IUH averageError; + struct QuickTickerThreadREC *threads; +}; +enum CPU_INT_TYPE +{ + CPU_HW_RESET = 0, + CPU_TIMER_TICK = 1, + CPU_HW_INT = 2, + CPU_SAD_INT = 3, + CPU_SIGIO_EVENT = 4, + CPU_NPX_INT = 5 +}; +#endif /* ! _CpuInt_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/cpumod_c.h b/private/mvdm/softpc.new/base/cvidc/cpumod_c.h new file mode 100644 index 000000000..4630ce2a0 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/cpumod_c.h @@ -0,0 +1,3 @@ +#ifndef _CpuMod_c_h +#define _CpuMod_c_h +#endif /* ! _CpuMod_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/cpureg_c.h b/private/mvdm/softpc.new/base/cvidc/cpureg_c.h new file mode 100644 index 000000000..fdbc32a59 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/cpureg_c.h @@ -0,0 +1,15 @@ +#ifndef _CpuReg_c_h +#define _CpuReg_c_h +#define J_EXX_SIMULATED (1) +enum IntelRegId +{ + EAX_id = 0, + EBX_id = 1, + ECX_id = 2, + EDX_id = 3, + ESP_id = 4, + EBP_id = 5, + ESI_id = 6, + EDI_id = 7 +}; +#endif /* ! _CpuReg_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/dec_c.h b/private/mvdm/softpc.new/base/cvidc/dec_c.h new file mode 100644 index 000000000..3321433e0 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/dec_c.h @@ -0,0 +1,3 @@ +#ifndef _Dec_c_h +#define _Dec_c_h +#endif /* ! _Dec_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/ea_c.h b/private/mvdm/softpc.new/base/cvidc/ea_c.h new file mode 100644 index 000000000..49b68ce57 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/ea_c.h @@ -0,0 +1,7 @@ +#ifndef _Ea_c_h +#define _Ea_c_h +#define SCALE_1 (1) +#define SCALE_2 (2) +#define SCALE_4 (4) +#define SCALE_8 (8) +#endif /* ! _Ea_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/enter_c.h b/private/mvdm/softpc.new/base/cvidc/enter_c.h new file mode 100644 index 000000000..6bd712073 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/enter_c.h @@ -0,0 +1,3 @@ +#ifndef _Enter_c_h +#define _Enter_c_h +#endif /* ! _Enter_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/ev_glue.c b/private/mvdm/softpc.new/base/cvidc/ev_glue.c new file mode 100644 index 000000000..05086a140 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/ev_glue.c @@ -0,0 +1,803 @@ +/*[ +************************************************************************* + + Name: ev_glue.c + Author: Simon Frost + Created: Janury 1994 + Derived from: Original + Sccs ID: @(#)ev_glue.c 1.15 08/23/94 + Purpose: Provides glue routines for C-E-vid functions + and the Jcode calling conventions. + + (c)Copyright Insignia Solutions Ltd., 1994. All rights reserved. + +************************************************************************* +]*/ + +#include "insignia.h" +#include "host_def.h" + +#ifdef CCPU +#include "gmi.h" +#endif + +#include "cpu_vid.h" +#include "video.h" +#include "egacpu.h" /* for Vglob fn defns */ +#include "ga_mark.h" /* for mark fn pointers struct defn */ +#include "evidfunc.h" /* generated by build process */ +#include "gdpvar.h" /* generated by build process */ + +#undef FORWARDS /* all these redefined in EDL code */ +#undef BACKWARDS +#undef UNCHAINED +#include "Evid_c.h" /* generated from Evid.edl */ +#include "j_c_lang.h" /* jcode to ccode register definition header */ + +EVID_WRT_POINTERS c_ev_write_ptr; +EVID_READ_POINTERS c_ev_read_ptr; + +/* defines in j_c_lang.h + *extern IUH jccc_parm1, jccc_parm2, jccc_parm3, jccc_parm4, + * jccc_parm5, jccc_gdp; + */ +extern IHP Gdp; + +extern IU32 gvi_pc_low_regen; + +#ifdef CCPU +IUH ega_gc_outb_mask; + +IHP Gdp; +#endif + +#ifdef C_VID +IHPE modeLookup; /* CEvid extern */ +IHPE EvidPortFuncs; /* CEvid extern */ +IHPE AdapCOutb; /* CEvid extern */ + +IHPE EvidWriteFuncs, EvidReadFuncs, EvidMarkFuncs; /* CEvid refs */ + + +/* let the c jcode know the addresses so it can lea them */ +/* NOTE These things are not accessed the jcode version of the code + * has been substituted with a c version + * LEAVE in so as not to get unresolved references + */ +IHPE j_modeLookup = (IHPE) &modeLookup ; +IHPE j_EvidPortFuncs = (IHPE) &EvidPortFuncs ; +IHPE j_AdapCOutb = (IHPE) &AdapCOutb; +IHPE j_EvidWriteFuncs = (IHPE) &EvidWriteFuncs; +IHPE j_EvidReadFuncs = (IHPE) &EvidReadFuncs; +IHPE j_EvidMarkFuncs = (IHPE) &EvidMarkFuncs; +/* Gdp is referenced */ +IHP j_Gdp; /* = Gdp ; SPECIAL CASE Gdp is the correct address see below for init */ +/*( +=========================== CrulesRuntimeError ======================= + +PURPOSE: resolve c-rules requirment to have a runtime error routine + +INPUT: message string. + +OUTPUT: To be Decided . +==================================================================== +)*/ +GLOBAL void +CrulesRuntimeError IFN1( char * , message ) +{ + printf("cevid runtime error: %s\r\n", message); +} + +/*( +=========================== write_byte_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call byte write function pointer + +INPUT: Write offset & value to write + +OUTPUT: None. + +==================================================================== +)*/ +GLOBAL void +write_byte_ev_glue IFN2(IU32, eaOff, IU8, eaVal) +{ + jccc_parm1 = (IUH)eaOff - gvi_pc_low_regen; + jccc_parm2 = (IUH)eaVal; + jccc_gdp = (IUH)Gdp; + + (*c_ev_write_ptr.b_write)(eaOff, eaVal); +} + +/*( +=========================== write_word_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call word write function pointer + +INPUT: Write offset & value to write + +OUTPUT: None. + +==================================================================== +)*/ +GLOBAL void +write_word_ev_glue IFN2(IU32, eaOff, IU16, eaVal) +{ + jccc_parm1 = (IUH)eaOff - gvi_pc_low_regen; + jccc_parm2 = (IUH)eaVal; + jccc_gdp = (IUH)Gdp; + + (*c_ev_write_ptr.w_write)(eaOff, eaVal); +} + +/*( +=========================== write_dword_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call dword write function pointer + +INPUT: Write offset & value to write + +OUTPUT: None. + +==================================================================== +)*/ +GLOBAL void +write_dword_ev_glue IFN2(IU32, eaOff, IU32, eaVal) +{ + jccc_parm1 = (IUH)eaOff - gvi_pc_low_regen; + jccc_parm2 = (IUH)eaVal; + jccc_gdp = (IUH)Gdp; + + (*c_ev_write_ptr.d_write)(eaOff, eaVal); +} + +/*( +=========================== fill_byte_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call byte fill function pointer + +INPUT: Write offset, value to write & fill count + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +fill_byte_ev_glue IFN3(IU32, eaOff, IU8, eaVal, IU32, count) +{ + jccc_parm1 = (IUH)eaOff - gvi_pc_low_regen; + jccc_parm2 = (IUH)eaVal; + jccc_parm3 = (IUH)count; + jccc_gdp = (IUH)Gdp; + + (*c_ev_write_ptr.b_fill)(eaOff, eaVal, count); +} + +/*( +=========================== fill_word_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call word fill function pointer + +INPUT: Write offset, value to write & fill count + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +fill_word_ev_glue IFN3(IU32, eaOff, IU16, eaVal, IU32, count) +{ + jccc_parm1 = (IUH)eaOff - gvi_pc_low_regen; + jccc_parm2 = (IUH)eaVal; + jccc_parm3 = (IUH)count; + jccc_gdp = (IUH)Gdp; + + (*c_ev_write_ptr.w_fill)(eaOff, eaVal, count); +} + +/*( +=========================== fill_dword_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call dword fill function pointer + +INPUT: Write offset, value to write & fill count + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +fill_dword_ev_glue IFN3(IU32, eaOff, IU32, eaVal, IU32, count) +{ + jccc_parm1 = (IUH)eaOff - gvi_pc_low_regen; + jccc_parm2 = (IUH)eaVal; + jccc_parm3 = (IUH)count; + jccc_gdp = (IUH)Gdp; + + (*c_ev_write_ptr.d_fill)(eaOff, eaVal, count); +} + +/*( +=========================== move_byte_fwd_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call byte fwd move function pointer + +INPUT: Write dest offset, src offset, move count & src type indicator + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +move_byte_fwd_ev_glue IFN4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM) +{ + jccc_parm1 = (IUH)eaOff - gvi_pc_low_regen; + jccc_parm2 = (IUH)fromOff; + if (!srcInRAM) + jccc_parm2 -= gvi_pc_low_regen; + jccc_parm3 = (IUH)count; + jccc_parm4 = (IUH)srcInRAM; + jccc_gdp = (IUH)Gdp; + + (*c_ev_write_ptr.b_fwd_move)(eaOff, fromOff, count, srcInRAM); +} + +/*( +=========================== move_byte_bwd_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call byte bwd move function pointer + +INPUT: Write dest offset, src offset, move count & src type indicator + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +move_byte_bwd_ev_glue IFN4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM) +{ + jccc_parm1 = (IUH)eaOff - gvi_pc_low_regen; + jccc_parm2 = (IUH)fromOff; + if (!srcInRAM) + jccc_parm2 -= gvi_pc_low_regen; + jccc_parm3 = (IUH)count; + jccc_parm4 = (IUH)srcInRAM; + jccc_gdp = (IUH)Gdp; + + (*c_ev_write_ptr.b_bwd_move)(eaOff, fromOff, count, srcInRAM); +} + +/*( +=========================== move_word_fwd_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call word fwd move function pointer + +INPUT: Write dest offset, src offset, move count & src type indicator + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +move_word_fwd_ev_glue IFN4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM) +{ + jccc_parm1 = (IUH)eaOff - gvi_pc_low_regen; + jccc_parm2 = (IUH)fromOff; + if (!srcInRAM) + jccc_parm2 -= gvi_pc_low_regen; + jccc_parm3 = (IUH)count; + jccc_parm4 = (IUH)srcInRAM; + jccc_gdp = (IUH)Gdp; + + (*c_ev_write_ptr.w_fwd_move)(eaOff, fromOff, count, srcInRAM); +} + +/*( +=========================== move_word_bwd_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call word bwd move function pointer + +INPUT: Write dest offset, src offset, move count & src type indicator + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +move_word_bwd_ev_glue IFN4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM) +{ + jccc_parm1 = (IUH)eaOff - gvi_pc_low_regen; + jccc_parm2 = (IUH)fromOff; + if (!srcInRAM) + jccc_parm2 -= gvi_pc_low_regen; + jccc_parm3 = (IUH)count; + jccc_parm4 = (IUH)srcInRAM; + jccc_gdp = (IUH)Gdp; + + (*c_ev_write_ptr.w_bwd_move)(eaOff, fromOff, count, srcInRAM); +} + +/*( +=========================== move_dword_fwd_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call dword fwd move function pointer + +INPUT: Write dest offset, src offset, move count & src type indicator + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +move_dword_fwd_ev_glue IFN4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM) +{ + jccc_parm1 = (IUH)eaOff - gvi_pc_low_regen; + jccc_parm2 = (IUH)fromOff; + if (!srcInRAM) + jccc_parm2 -= gvi_pc_low_regen; + jccc_parm3 = (IUH)count; + jccc_parm4 = (IUH)srcInRAM; + jccc_gdp = (IUH)Gdp; + + (*c_ev_write_ptr.d_fwd_move)(eaOff, fromOff, count, srcInRAM); +} + +/*( +=========================== move_dword_bwd_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call dword bwd move function pointer + +INPUT: Write dest offset, src offset, move count & src type indicator + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +move_dword_bwd_ev_glue IFN4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM) +{ + jccc_parm1 = (IUH)eaOff - gvi_pc_low_regen; + jccc_parm2 = (IUH)fromOff; + if (!srcInRAM) + jccc_parm2 -= gvi_pc_low_regen; + jccc_parm3 = (IUH)count; + jccc_parm4 = (IUH)srcInRAM; + jccc_gdp = (IUH)Gdp; + + (*c_ev_write_ptr.d_bwd_move)(eaOff, fromOff, count, srcInRAM); +} + +/*( +=========================== read_byte_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call read byte function pointer + +INPUT: read offset in planes + +OUTPUT: value read + +==================================================================== +*/ +GLOBAL IU32 +read_byte_ev_glue IFN1(IU32, eaOff) +{ + jccc_parm2 = (IUH)eaOff - gvi_pc_low_regen; + jccc_gdp = (IUH)Gdp; + + (*c_ev_read_ptr.b_read)(eaOff); + + return((IU32)jccc_parm1); +} + +/*( +=========================== read_word_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call read word function pointer + +INPUT: read offset in planes + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL IU32 +read_word_ev_glue IFN1(IU32, eaOff) +{ + jccc_parm2 = (IUH)eaOff - gvi_pc_low_regen; + jccc_gdp = (IUH)Gdp; + + (*c_ev_read_ptr.w_read)(eaOff); + + return((IU32)jccc_parm1); +} + +/*( +=========================== read_dword_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call read dword function pointer + +INPUT: read offset in planes + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL IU32 +read_dword_ev_glue IFN1(IU32, eaOff) +{ + jccc_parm2 = (IUH)eaOff - gvi_pc_low_regen; + jccc_gdp = (IUH)Gdp; + + (*c_ev_read_ptr.d_read)(eaOff); + + return((IU32)jccc_parm1); +} + +/*( +=========================== read_str_fwd_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call read string fwd function pointer + +INPUT: destination pointer, read offset in planes, number of bytes to read. + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +read_str_fwd_ev_glue IFN3(IU8 *, dest, IU32, eaOff, IU32, count) +{ + jccc_parm1 = (IUH)dest; + jccc_parm2 = (IUH)eaOff - gvi_pc_low_regen; + jccc_parm3 = (IUH)count; + jccc_parm4 = (IUH)1; /* destination in RAM */ + jccc_gdp = (IUH)Gdp; + + (*c_ev_read_ptr.str_fwd_read)(dest, eaOff, count); +} + +/*( +=========================== read_str_bwd_ev_glue ======================= + +PURPOSE: Set up C evid parameters and call read string bwd function pointer + +INPUT: destination pointer, read offset in planes, number of bytes to read. + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +read_str_bwd_ev_glue IFN3(IU8 *, dest, IU32, eaOff, IU32, count) +{ + jccc_parm1 = (IUH)dest; + jccc_parm2 = (IUH)eaOff - gvi_pc_low_regen; + jccc_parm3 = (IUH)count; + jccc_parm4 = (IUH)1; /* destination in RAM */ + jccc_gdp = (IUH)Gdp; + + (*c_ev_read_ptr.str_bwd_read)(dest, eaOff, count); +} + +GLOBAL IBOOL cevid_verbose = FALSE; +/*( +=========================== setReadPointers ======================= + +PURPOSE: Set active struct entries for read functions. (c_ev_read_ptr). + +INPUT: index used to select read set. + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +setReadPointers IFN1(IUH, readset) +{ + IUH chain_index; /* current chaining for read modes 0 & 1 */ + + switch(readset) + { + case 0: /* read mode 0 */ + chain_index = getVideochain(); + if (cevid_verbose) printf("Set Read Pointers Mode 0, chain %d\n", chain_index); + c_ev_read_ptr.b_read = read_mode0_evid[chain_index].b_read; + c_ev_read_ptr.w_read = read_mode0_evid[chain_index].w_read; + c_ev_read_ptr.d_read = read_mode0_evid[chain_index].d_read; + c_ev_read_ptr.str_fwd_read = read_mode0_evid[chain_index].str_fwd_read; + c_ev_read_ptr.str_bwd_read = read_mode0_evid[chain_index].str_bwd_read; + setVideoread_byte_addr(read_mode0_evid[chain_index].b_read); + break; + + case 1: /* read mode 1 */ + chain_index = getVideochain(); + if (cevid_verbose) printf("Set Read Pointers Mode 1, chain %d\n", chain_index); + c_ev_read_ptr.b_read = read_mode1_evid[chain_index].b_read; + c_ev_read_ptr.w_read = read_mode1_evid[chain_index].w_read; + c_ev_read_ptr.d_read = read_mode1_evid[chain_index].d_read; + c_ev_read_ptr.str_fwd_read = read_mode1_evid[chain_index].str_fwd_read; + c_ev_read_ptr.str_bwd_read = read_mode1_evid[chain_index].str_bwd_read; + setVideoread_byte_addr(read_mode1_evid[chain_index].b_read); + break; + + case 2: /* RAM disabled */ + if (cevid_verbose) printf("Set Read Pointers RAM disabled\n"); + c_ev_read_ptr.b_read = ram_dsbld_read_evid.b_read; + c_ev_read_ptr.w_read = ram_dsbld_read_evid.w_read; + c_ev_read_ptr.d_read = ram_dsbld_read_evid.d_read; + c_ev_read_ptr.str_fwd_read = ram_dsbld_read_evid.str_fwd_read; + c_ev_read_ptr.str_bwd_read = ram_dsbld_read_evid.str_bwd_read; + setVideoread_byte_addr(ram_dsbld_read_evid.b_read); + break; + + case 3: /* Simple reads (non planed) */ + if (cevid_verbose) printf("Set Read Pointers Simple\n"); + c_ev_read_ptr.b_read = simple_read_evid.b_read; + c_ev_read_ptr.w_read = simple_read_evid.w_read; + c_ev_read_ptr.d_read = simple_read_evid.d_read; + c_ev_read_ptr.str_fwd_read = simple_read_evid.str_fwd_read; + c_ev_read_ptr.str_bwd_read = simple_read_evid.str_bwd_read; + setVideoread_byte_addr(simple_read_evid.b_read); + break; + } +} + +/*( +=========================== setWritePointers ======================= + +PURPOSE: Set active struct entries for write functions. (c_ev_write_ptr). + +INPUT: None. (All information gleaned from Vglobs). + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +setWritePointers IFN0() +{ + EVID_WRT_POINTERS *choice; /* point to selected write set */ + IU8 chain; + IU8 modelookup[] = + /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 */ + { 0, 1, 2, 3, 2, 3, 2, 3, 0, 1, 2, 3, 2, 3, 2, 3, + /* 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 */ + 8, 9, 10, 11, 10, 11, 6, 7, 8, 9, 10, 11, 10, 11, 10, 11 }; + + choice = (EVID_WRT_POINTERS *)0; /* debug check */ + + /* check for dithering 'override' of rest of checks */ + if (getVideodither() == 1) + { + if (cevid_verbose) printf("SetWritePointers Dither, Mode %d\n", getVideowrmode()); /*STF*/ + choice = &dith_evid[getVideowrmode()]; /* mode 0-3 */ + } + else + { + chain = getVideochain(); + switch (chain) + { + case UNCHAINED: + case CHAIN_4: + if (getVideorotate() > 0) + { + if (cevid_verbose) printf("SetWritePointers Generic Override for Chain %d, Mode %d\n", chain, getVideowrmode()); /*STF*/ + if (cevid_verbose) printf("Rotates set to %d\n", getVideorotate());/*STF*/ + choice = &gricvid_evid; + } + else + { + if (chain == UNCHAINED) + { + if (cevid_verbose) printf("SetWritePointers Unchained, State %#x", getVideowrstate()); /*STF*/ + choice = &unchained_evid[0]; + } + else + { + if (cevid_verbose) printf("SetWritePointers Chain4"); /*STF*/ + choice = &chain4_evid[0]; + } + switch(getVideowrmode()) + { + case MODE_0: + if (cevid_verbose) printf(" Mode 0, index %d\n", modelookup[getVideowrstate()]); /* STF */ + choice += modelookup[getVideowrstate()]; + break; + + case MODE_1: + if (cevid_verbose) printf(" Mode 1\n");/* STF */ + choice += NUM_M0_WRITES; + break; + + case MODE_2: + if (cevid_verbose) printf(" Mode 2, index %d\n", modelookup[getVideowrstate() & 0xf]);/* STF */ + choice += NUM_M0_WRITES + NUM_M1_WRITES; + choice += modelookup[getVideowrstate() & 0xf]; + break; + + case MODE_3: + if (cevid_verbose) printf(" Mode 3, index %d\n", modelookup[getVideowrstate() & 0xf]);/* STF */ + choice += NUM_M0_WRITES + NUM_M1_WRITES + NUM_M23_WRITES; + choice += modelookup[getVideowrstate() & 0xf]; + break; + + default: + if (cevid_verbose) printf(" unknown write mode %d\n",getVideowrmode()); + } + } + break; + + case CHAIN_2: + if (cevid_verbose) printf("SetWritePointers Chain2, Mode %d\n", getVideowrmode()); /*STF*/ + choice = &chain2_evid[getVideowrmode()]; + break; + + case SIMPLE_WRITES: + if (cevid_verbose) printf("SetWritePointers Simple\n"); /*STF*/ + choice = &simple_evid; + break; + } + } + if (choice == (EVID_WRT_POINTERS *)0) + { + printf("setWritePointers: ERROR - BAD POINTER SELECTION\n"); + choice = &chain2_evid[4]; + } + c_ev_write_ptr.b_write = choice->b_write; + c_ev_write_ptr.w_write = choice->w_write; + c_ev_write_ptr.d_write = choice->d_write; + c_ev_write_ptr.b_fill = choice->b_fill; + c_ev_write_ptr.w_fill = choice->w_fill; + c_ev_write_ptr.d_fill = choice->d_fill; + c_ev_write_ptr.b_fwd_move = choice->b_fwd_move; + c_ev_write_ptr.b_bwd_move = choice->b_bwd_move; + c_ev_write_ptr.w_fwd_move = choice->w_fwd_move; + c_ev_write_ptr.w_bwd_move = choice->w_bwd_move; + c_ev_write_ptr.d_fwd_move = choice->d_fwd_move; + c_ev_write_ptr.d_bwd_move = choice->d_bwd_move; +} + +/*( +=========================== setMarkPointers ======================= + +PURPOSE: Set VGlobs entries for mark functions + +INPUT: index used to select mark set. + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +setMarkPointers IFN1(IUH, markset) +{ + switch (markset) + { + + case 0: /* simple */ + if (cevid_verbose) printf("Set Mark Pointers Simple\n"); + setVideomark_byte(simple_mark_evid.b_mark); + setVideomark_word(simple_mark_evid.w_mark); + setVideomark_string(simple_mark_evid.str_mark); + break; + + case 1: /* CGA style */ + if (cevid_verbose) printf("Set Mark Pointers CGA\n"); + setVideomark_byte(cga_mark_evid.b_mark); + setVideomark_word(cga_mark_evid.w_mark); + setVideomark_string(cga_mark_evid.str_mark); + break; + + case 2: /* Unchained */ + if (cevid_verbose) printf("Set Mark Pointers Unchained\n"); + setVideomark_byte(unchained_mark_evid.b_mark); + setVideomark_word(unchained_mark_evid.w_mark); + setVideomark_string(unchained_mark_evid.str_mark); + break; + + case 3: /* Chain4 */ + if (cevid_verbose) printf("Set Mark Pointers Chain4\n"); + setVideomark_byte(chain4_mark_evid.b_mark); + setVideomark_word(chain4_mark_evid.w_mark); + setVideomark_string(chain4_mark_evid.str_mark); + break; + + } +} + +GLOBAL void +write_bios_byte IFN2(IU8, eaVal, IU32, eaOff) +{ + jccc_parm1 = (IUH)eaOff; + jccc_parm2 = (IUH)eaVal; + jccc_gdp = (IUH)Gdp; + + chain2_evid[4].b_write(eaOff, eaVal); +} + +GLOBAL void +write_bios_word IFN2(IU16, eaVal, IU32, eaOff) +{ + jccc_parm1 = (IUH)eaOff; + jccc_parm2 = (IUH)eaVal; + jccc_gdp = (IUH)Gdp; + + chain2_evid[4].w_write(eaOff, eaVal); +} + +/*( +=========================== SetBiosWrites ======================= + +PURPOSE: Set VGlobs entries for mark functions + +INPUT: index used to select mark set. + +OUTPUT: None. + +==================================================================== +*/ +GLOBAL void +SetBiosWrites IFN1(IUH, markset) +{ + bios_ch2_byte_wrt_fn = write_bios_byte; + bios_ch2_word_wrt_fn = write_bios_word; +} + +#ifdef CCPU + +#define SUBRRINGBUFFERSIZE 25 +GLOBAL IUH SubrRingBuffer[SUBRRINGBUFFERSIZE]; +/*( +=========================== setup_vga_globals ======================= + +PURPOSE: Point VGLOBS into correct portion on Gdp + +INPUT: None. + +OUTPUT: None. + +==================================================================== +*/ + +GLOBAL void +setup_vga_globals IFN0() +{ + EGA_CPU.globals = &(GLOBAL_VGAGlobals); + GLOBAL_SubrRingLowIncl = &SubrRingBuffer[0]; + GLOBAL_SubrRingHighIncl = GLOBAL_SubrRingLowIncl + (SUBRRINGBUFFERSIZE-1 +); + GLOBAL_SubrRingPtr = GLOBAL_SubrRingLowIncl; + +#ifndef PROD + if (getenv("CEVID_VERBOSE") != 0) + cevid_verbose = TRUE; +#endif /* PROD */ +} + +/*( +=========================== setup_global_data_ptr ======================= + +PURPOSE: Setup Gdp for CCPU/CEvid. + +INPUT: None. + +OUTPUT: None. + +==================================================================== +*/ + +GLOBAL IHP +setup_global_data_ptr IFN0() +{ + Gdp = (IHP)host_malloc(64 * 1024); + /* Gdp holds the correct value so in jcode an lea wants the value not + * the adrress of the data + */ + j_Gdp = Gdp ; + if (Gdp == (IHP)0) + printf("Error - can't malloc memory for Gdp\n"); + + return(Gdp); +} +#endif /* CCPU */ +#endif /* C_VID */ diff --git a/private/mvdm/softpc.new/base/cvidc/ev_stubs.c b/private/mvdm/softpc.new/base/cvidc/ev_stubs.c new file mode 100644 index 000000000..37a080788 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/ev_stubs.c @@ -0,0 +1,18 @@ +#include +#include +/*[ + * Name: ev_stubs.c + * SCCS ID: @(#)ev_stubs.c 1.1 07/22/94 + * + * Purpose: Provide the stub routines needed to give the a4+evid + * and ccpu+cevid libraries the same interface. + * + * (C) Copyright Insignia Solutions Ltd, 1994. +]*/ + +GLOBAL void setup_vga_globals IFN0() +{ +} +GLOBAL IHPE setup_global_data_ptr IFN0() +{ +} diff --git a/private/mvdm/softpc.new/base/cvidc/evid_c.h b/private/mvdm/softpc.new/base/cvidc/evid_c.h new file mode 100644 index 000000000..2d1ca3c88 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/evid_c.h @@ -0,0 +1,146 @@ +#ifndef _Evid_c_h +#define _Evid_c_h +#define MODE_0 (0) +#define MODE_1 (1) +#define MODE_2 (2) +#define MODE_3 (3) +#define COPY_MODE (4) +#define VGA_SRC (0) +#define RAM_SRC (1) +#define FORWARDS (0) +#define BACKWARDS (1) +#define FWD_BYTE (0) +#define BWD_BYTE (1) +#define FWD_WORD (2) +#define BWD_WORD (3) +#define UNCHAINED (0) +#define CHAIN_2 (1) +#define CHAIN_4 (2) +#define SIMPLE_WRITES (3) +#define FUNC_COPY (0) +#define FUNC_AND (1) +#define FUNC_OR (2) +#define FUNC_XOR (3) +#define FUNC_SHIFT (1) +#define PLANE_ENABLE (1) +#define FUNC_CODE (6) +#define BIT_PROT (8) +#define SET_RESET (16) +#define PROT_OR_FUNC (14) +#define READ_MODE_0 (0) +#define READ_MODE_1 (1) +#define DISABLED_RAM (2) +#define SIMPLE_READ (3) +#define SIMPLE_MARK (0) +#define CGA_MARK (1) +#define UNCHAINED_MARK (2) +#define CHAIN_4_MARK (3) +#define BYTE_SIZE (0) +#define WORD_SIZE (1) +#define DWORD_SIZE (2) +#define STRING_SIZE (3) +#define WRITE_RTN (0) +#define FILL_RTN (1) +#define MOVE_RTN (2) +#define READ_RTN (3) +#define EGA_INDEX (0) +#define VGA_INDEX (1) +#define GC_MASK (2) +#define GC_MASK_FF (3) +#define NUM_UNCHAINED_WRITES (21) +#define NUM_CHAIN4_WRITES (21) +#define NUM_CHAIN2_WRITES (5) +#define NUM_DITHER_WRITES (4) +#define NUM_M0_WRITES (12) +#define NUM_M1_WRITES (1) +#define NUM_M23_WRITES (4) +#define NUM_READ_M0_READS (3) +#define NUM_READ_M1_READS (3) +struct VGAGLOBALSETTINGS +{ + IU32 latches; + IU8 *VGA_rplane; + IU8 *VGA_wplane; + IU8 *scratch; + IU32 sr_masked_val; + IU32 sr_nmask; + IU32 data_and_mask; + IU32 data_xor_mask; + IU32 latch_xor_mask; + IU32 bit_prot_mask; + IU32 plane_enable; + IU32 plane_enable_mask; + IUH *sr_lookup; + IUH *fwd_str_read_addr; + IUH *bwd_str_read_addr; + IU32 dirty_total; + IS32 dirty_low; + IS32 dirty_high; + IU8 *video_copy; + IUH *mark_byte; + IUH *mark_word; + IUH *mark_string; + IU32 read_shift_count; + IU32 read_mapped_plane; + IU32 colour_comp; + IU32 dont_care; + IU32 v7_bank_vid_copy_off; + IU32 video_base_lin_addr; + IU8 *route_reg1; + IU8 *route_reg2; + IU8 *screen_ptr; + IU32 rotate; + IU32 calc_data_xor; + IU32 calc_latch_xor; + IUH *read_byte_addr; + IU32 v7_fg_latches; + IUH **GCRegs; + IU8 lastGCindex; + IU8 dither; + IU8 wrmode; + IU8 chain; + IU8 wrstate; +}; +struct EVIDWRITES +{ + IUH *byte_write; + IUH *word_write; + IUH *dword_write; + IUH *byte_fill; + IUH *word_fill; + IUH *dword_fill; + IUH *byte_fwd_move; + IUH *byte_bwd_move; + IUH *word_fwd_move; + IUH *word_bwd_move; + IUH *dword_fwd_move; + IUH *dword_bwd_move; +}; +struct EVIDREADS +{ + IUH *byte_read; + IUH *word_read; + IUH *dword_read; + IUH *str_fwd_read; + IUH *str_bwd_read; +}; +struct EVIDMARKS +{ + IUH *byte_mark; + IUH *word_mark; + IUH *dword_mark; + IUH *str_mark; +}; +enum VidSections +{ + READ_FUNC = 0, + MARK_FUNC = 1, + SIMPLE_FUNC = 2, + DITHER_FUNC = 3, + PORT_FUNC = 4, + GENERIC_WRITES = 5, + UNCHAINED_WRITES = 6, + CHAIN4_WRITES = 7, + CHAIN2_WRITES = 8 +}; +#endif /* ! _Evid_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/evidfunc.c b/private/mvdm/softpc.new/base/cvidc/evidfunc.c new file mode 100644 index 000000000..76131c321 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/evidfunc.c @@ -0,0 +1,863 @@ +#include "insignia.h" +#include "host_def.h" +#include "ga_mark.h" +#include "cpu_vid.h" +#include "evidfunc.h" + + +EVID_WRT_POINTERS simple_evid = + { + S_2139_SimpleByteWrite, + S_2142_SimpleWordWrite, + S_2145_SimpleDwordWrite, + S_2140_SimpleByteFill, + S_2143_SimpleWordFill, + S_2146_SimpleDwordFill, + S_2141_SimpleByteMove_Fwd, + S_2148_SimpleByteMove_Bwd, + S_2144_SimpleWordMove_Fwd, + S_2149_SimpleWordMove_Bwd, + S_2147_SimpleDwordMove_Fwd, + S_2150_SimpleDwordMove_Bwd + }; + +EVID_WRT_POINTERS gricvid_evid = + { + S_2238_GenericByteWrite, + S_2241_GenericWordWrite, + S_2244_GenericDwordWrite, + S_2239_GenericByteFill, + S_2242_GenericWordFill, + S_2245_GenericDwordFill, + S_2240_GenericByteMove_Fwd, + S_2247_GenericByteMove_Bwd, + S_2243_GenericWordMove_Fwd, + S_2248_GenericWordMove_Bwd, + S_2246_GenericDwordMove_Fwd, + S_2249_GenericDwordMove_Bwd + }; + +EVID_WRT_POINTERS dith_evid[] = { + { + S_2151_UnchainedByteWrite_00000000_0000000e_00000001, + S_2157_UnchainedWordWrite_00000000_0000000e_00000001, + S_2163_UnchainedDwordWrite_00000000_0000000e_00000001, + S_2152_UnchainedByteFill_00000000_0000000e_00000001, + S_2158_UnchainedWordFill_00000000_0000000e_00000001, + S_2164_UnchainedDwordFill_00000000_0000000e_00000001, + S_2154_UnchainedByteMove_00000000_0000000e_00000001_00000000, + S_2205_UnchainedByteMove_00000000_0000000e_00000001_00000001, + S_2160_UnchainedWordMove_00000000_0000000e_00000001_00000000, + S_2208_UnchainedWordMove_00000000_0000000e_00000001_00000001, + S_2165_UnchainedDwordMove_00000000_0000000e_00000001_00000000, + S_2211_UnchainedDwordMove_00000000_0000000e_00000001_00000001 + }, + { + S_2166_UnchainedByteWrite_00000001_0000000e_00000001, + S_2171_UnchainedWordWrite_00000001_0000000e_00000001, + S_2176_UnchainedDwordWrite_00000001_0000000e_00000001, + S_2167_UnchainedByteFill_00000001_0000000e_00000001, + S_2172_UnchainedWordFill_00000001_0000000e_00000001, + S_2177_UnchainedDwordFill_00000001_0000000e_00000001, + S_2168_UnchainedByteMove_00000001_0000000e_00000001_00000000, + S_2212_UnchainedByteMove_00000001_0000000e_00000001_00000001, + S_2173_UnchainedWordMove_00000001_0000000e_00000001_00000000, + S_2215_UnchainedWordMove_00000001_0000000e_00000001_00000001, + S_2178_UnchainedDwordMove_00000001_0000000e_00000001_00000000, + S_2218_UnchainedDwordMove_00000001_0000000e_00000001_00000001 + }, + { + S_2179_UnchainedByteWrite_00000002_0000000e_00000001, + S_2184_UnchainedWordWrite_00000002_0000000e_00000001, + S_2189_UnchainedDwordWrite_00000002_0000000e_00000001, + S_2180_UnchainedByteFill_00000002_0000000e_00000001, + S_2185_UnchainedWordFill_00000002_0000000e_00000001, + S_2190_UnchainedDwordFill_00000002_0000000e_00000001, + S_2181_UnchainedByteMove_00000002_0000000e_00000001_00000000, + S_2219_UnchainedByteMove_00000002_0000000e_00000001_00000001, + S_2186_UnchainedWordMove_00000002_0000000e_00000001_00000000, + S_2222_UnchainedWordMove_00000002_0000000e_00000001_00000001, + S_2191_UnchainedDwordMove_00000002_0000000e_00000001_00000000, + S_2225_UnchainedDwordMove_00000002_0000000e_00000001_00000001 + }, + { + S_2192_UnchainedByteWrite_00000003_0000000e_00000001, + S_2197_UnchainedWordWrite_00000003_0000000e_00000001, + S_2202_UnchainedDwordWrite_00000003_0000000e_00000001, + S_2193_UnchainedByteFill_00000003_0000000e_00000001, + S_2198_UnchainedWordFill_00000003_0000000e_00000001, + S_2203_UnchainedDwordFill_00000003_0000000e_00000001, + S_2194_UnchainedByteMove_00000003_0000000e_00000001_00000000, + S_2226_UnchainedByteMove_00000003_0000000e_00000001_00000001, + S_2199_UnchainedWordMove_00000003_0000000e_00000001_00000000, + S_2229_UnchainedWordMove_00000003_0000000e_00000001_00000001, + S_2204_UnchainedDwordMove_00000003_0000000e_00000001_00000000, + S_2232_UnchainedDwordMove_00000003_0000000e_00000001_00000001 + } +}; + +EVID_WRT_POINTERS chain2_evid[] = { + { + S_2624_Chain2ByteWrite_00000000, + S_2630_Chain2WordWrite_00000000, + S_2636_Chain2DwordWrite_00000000, + S_2626_Chain2ByteFill_00000000, + S_2632_Chain2WordFill_00000000, + S_2638_Chain2DwordFill_00000000, + S_2628_Chain2ByteMove_00000000_Fwd, + S_2705_Chain2ByteMove_00000000_Bwd, + S_2634_Chain2WordMove_00000000_Fwd, + S_2707_Chain2WordMove_00000000_Bwd, + S_2640_Chain2DwordMove_00000000_Fwd, + S_2709_Chain2DwordMove_00000000_Bwd + }, + { + S_2642_Chain2ByteWrite_00000001, + S_2648_Chain2WordWrite_00000001, + S_2654_Chain2DwordWrite_00000001, + S_2644_Chain2ByteFill_00000001, + S_2650_Chain2WordFill_00000001, + S_2656_Chain2DwordFill_00000001, + S_2646_Chain2ByteMove_00000001_Fwd, + S_2711_Chain2ByteMove_00000001_Bwd, + S_2652_Chain2WordMove_00000001_Fwd, + S_2713_Chain2WordMove_00000001_Bwd, + S_2658_Chain2DwordMove_00000001_Fwd, + S_2715_Chain2DwordMove_00000001_Bwd + }, + { + S_2660_Chain2ByteWrite_00000002, + S_2666_Chain2WordWrite_00000002, + S_2672_Chain2DwordWrite_00000002, + S_2662_Chain2ByteFill_00000002, + S_2668_Chain2WordFill_00000002, + S_2674_Chain2DwordFill_00000002, + S_2664_Chain2ByteMove_00000002_Fwd, + S_2717_Chain2ByteMove_00000002_Bwd, + S_2670_Chain2WordMove_00000002_Fwd, + S_2719_Chain2WordMove_00000002_Bwd, + S_2676_Chain2DwordMove_00000002_Fwd, + S_2721_Chain2DwordMove_00000002_Bwd + }, + { + S_2678_Chain2ByteWrite_00000003, + S_2684_Chain2WordWrite_00000003, + S_2690_Chain2DwordWrite_00000003, + S_2680_Chain2ByteFill_00000003, + S_2686_Chain2WordFill_00000003, + S_2692_Chain2DwordFill_00000003, + S_2682_Chain2ByteMove_00000003_Fwd, + S_2723_Chain2ByteMove_00000003_Bwd, + S_2688_Chain2WordMove_00000003_Fwd, + S_2725_Chain2WordMove_00000003_Bwd, + S_2694_Chain2DwordMove_00000003_Fwd, + S_2727_Chain2DwordMove_00000003_Bwd + }, + { + S_2696_Chain2ByteWrite_Copy, + S_2699_Chain2WordWrite_Copy, + S_2702_Chain2DwordWrite_Copy, + S_2697_Chain2ByteFill_Copy, + S_2700_Chain2WordFill_Copy, + S_2703_Chain2DwordFill_Copy, + S_2698_Chain2ByteMove_Copy_Fwd, + S_2729_Chain2ByteMove_Copy_Bwd, + S_2701_Chain2WordMove_Copy_Fwd, + S_2730_Chain2WordMove_Copy_Bwd, + S_2704_Chain2DwordMove_Copy_Fwd, + S_2731_Chain2DwordMove_Copy_Bwd + } +}; + +EVID_WRT_POINTERS unchained_evid[] = { + { + S_2250_UnchainedByteWrite_00000000_00000008_00000000, + S_2305_UnchainedWordWrite_00000000_00000008_00000000, + S_2360_UnchainedDwordWrite_00000000_00000008_00000000, + S_2262_UnchainedByteFill_00000000_00000008_00000000, + S_2317_UnchainedWordFill_00000000_00000008_00000000, + S_2372_UnchainedDwordFill_00000000_00000008_00000000, + S_2275_UnchainedByteMove_00000000_00000008_00000000_00000000, + S_2501_UnchainedByteMove_00000000_00000008_00000000_00000001, + S_2330_UnchainedWordMove_00000000_00000008_00000000_00000000, + S_2531_UnchainedWordMove_00000000_00000008_00000000_00000001, + S_2384_UnchainedDwordMove_00000000_00000008_00000000_00000000, + S_2561_UnchainedDwordMove_00000000_00000008_00000000_00000001 + }, + { + S_2251_UnchainedByteWrite_00000000_00000009_00000000, + S_2306_UnchainedWordWrite_00000000_00000009_00000000, + S_2361_UnchainedDwordWrite_00000000_00000009_00000000, + S_2263_UnchainedByteFill_00000000_00000009_00000000, + S_2318_UnchainedWordFill_00000000_00000009_00000000, + S_2373_UnchainedDwordFill_00000000_00000009_00000000, + S_2278_UnchainedByteMove_00000000_00000009_00000000_00000000, + S_2504_UnchainedByteMove_00000000_00000009_00000000_00000001, + S_2333_UnchainedWordMove_00000000_00000009_00000000_00000000, + S_2534_UnchainedWordMove_00000000_00000009_00000000_00000001, + S_2385_UnchainedDwordMove_00000000_00000009_00000000_00000000, + S_2562_UnchainedDwordMove_00000000_00000009_00000000_00000001 + }, + { + S_2252_UnchainedByteWrite_00000000_0000000e_00000000, + S_2307_UnchainedWordWrite_00000000_0000000e_00000000, + S_2362_UnchainedDwordWrite_00000000_0000000e_00000000, + S_2265_UnchainedByteFill_00000000_0000000e_00000000, + S_2320_UnchainedWordFill_00000000_0000000e_00000000, + S_2374_UnchainedDwordFill_00000000_0000000e_00000000, + S_2280_UnchainedByteMove_00000000_0000000e_00000000_00000000, + S_2506_UnchainedByteMove_00000000_0000000e_00000000_00000001, + S_2335_UnchainedWordMove_00000000_0000000e_00000000_00000000, + S_2536_UnchainedWordMove_00000000_0000000e_00000000_00000001, + S_2386_UnchainedDwordMove_00000000_0000000e_00000000_00000000, + S_2563_UnchainedDwordMove_00000000_0000000e_00000000_00000001 + }, + { + S_2253_UnchainedByteWrite_00000000_0000000f_00000000, + S_2308_UnchainedWordWrite_00000000_0000000f_00000000, + S_2363_UnchainedDwordWrite_00000000_0000000f_00000000, + S_2266_UnchainedByteFill_00000000_0000000f_00000000, + S_2321_UnchainedWordFill_00000000_0000000f_00000000, + S_2375_UnchainedDwordFill_00000000_0000000f_00000000, + S_2283_UnchainedByteMove_00000000_0000000f_00000000_00000000, + S_2509_UnchainedByteMove_00000000_0000000f_00000000_00000001, + S_2338_UnchainedWordMove_00000000_0000000f_00000000_00000000, + S_2539_UnchainedWordMove_00000000_0000000f_00000000_00000001, + S_2387_UnchainedDwordMove_00000000_0000000f_00000000_00000000, + S_2564_UnchainedDwordMove_00000000_0000000f_00000000_00000001 + }, + { + S_2254_UnchainedByteWrite_00000000_00000010_00000000, + S_2309_UnchainedWordWrite_00000000_00000010_00000000, + S_2364_UnchainedDwordWrite_00000000_00000010_00000000, + S_2267_UnchainedByteFill_00000000_00000010_00000000, + S_2322_UnchainedWordFill_00000000_00000010_00000000, + S_2376_UnchainedDwordFill_00000000_00000010_00000000, + S_2285_UnchainedByteMove_00000000_00000010_00000000_00000000, + S_2511_UnchainedByteMove_00000000_00000010_00000000_00000001, + S_2340_UnchainedWordMove_00000000_00000010_00000000_00000000, + S_2541_UnchainedWordMove_00000000_00000010_00000000_00000001, + S_2388_UnchainedDwordMove_00000000_00000010_00000000_00000000, + S_2565_UnchainedDwordMove_00000000_00000010_00000000_00000001 + }, + { + S_2255_UnchainedByteWrite_00000000_00000011_00000000, + S_2310_UnchainedWordWrite_00000000_00000011_00000000, + S_2365_UnchainedDwordWrite_00000000_00000011_00000000, + S_2268_UnchainedByteFill_00000000_00000011_00000000, + S_2323_UnchainedWordFill_00000000_00000011_00000000, + S_2377_UnchainedDwordFill_00000000_00000011_00000000, + S_2288_UnchainedByteMove_00000000_00000011_00000000_00000000, + S_2514_UnchainedByteMove_00000000_00000011_00000000_00000001, + S_2343_UnchainedWordMove_00000000_00000011_00000000_00000000, + S_2544_UnchainedWordMove_00000000_00000011_00000000_00000001, + S_2389_UnchainedDwordMove_00000000_00000011_00000000_00000000, + S_2566_UnchainedDwordMove_00000000_00000011_00000000_00000001 + }, + { + S_2256_UnchainedByteWrite_00000000_00000016_00000000, + S_2311_UnchainedWordWrite_00000000_00000016_00000000, + S_2366_UnchainedDwordWrite_00000000_00000016_00000000, + S_2269_UnchainedByteFill_00000000_00000016_00000000, + S_2324_UnchainedWordFill_00000000_00000016_00000000, + S_2378_UnchainedDwordFill_00000000_00000016_00000000, + S_2290_UnchainedByteMove_00000000_00000016_00000000_00000000, + S_2516_UnchainedByteMove_00000000_00000016_00000000_00000001, + S_2345_UnchainedWordMove_00000000_00000016_00000000_00000000, + S_2546_UnchainedWordMove_00000000_00000016_00000000_00000001, + S_2390_UnchainedDwordMove_00000000_00000016_00000000_00000000, + S_2567_UnchainedDwordMove_00000000_00000016_00000000_00000001 + }, + { + S_2257_UnchainedByteWrite_00000000_00000017_00000000, + S_2312_UnchainedWordWrite_00000000_00000017_00000000, + S_2367_UnchainedDwordWrite_00000000_00000017_00000000, + S_2270_UnchainedByteFill_00000000_00000017_00000000, + S_2325_UnchainedWordFill_00000000_00000017_00000000, + S_2379_UnchainedDwordFill_00000000_00000017_00000000, + S_2293_UnchainedByteMove_00000000_00000017_00000000_00000000, + S_2519_UnchainedByteMove_00000000_00000017_00000000_00000001, + S_2348_UnchainedWordMove_00000000_00000017_00000000_00000000, + S_2549_UnchainedWordMove_00000000_00000017_00000000_00000001, + S_2391_UnchainedDwordMove_00000000_00000017_00000000_00000000, + S_2568_UnchainedDwordMove_00000000_00000017_00000000_00000001 + }, + { + S_2258_UnchainedByteWrite_00000000_00000018_00000000, + S_2313_UnchainedWordWrite_00000000_00000018_00000000, + S_2368_UnchainedDwordWrite_00000000_00000018_00000000, + S_2271_UnchainedByteFill_00000000_00000018_00000000, + S_2326_UnchainedWordFill_00000000_00000018_00000000, + S_2380_UnchainedDwordFill_00000000_00000018_00000000, + S_2295_UnchainedByteMove_00000000_00000018_00000000_00000000, + S_2521_UnchainedByteMove_00000000_00000018_00000000_00000001, + S_2350_UnchainedWordMove_00000000_00000018_00000000_00000000, + S_2551_UnchainedWordMove_00000000_00000018_00000000_00000001, + S_2392_UnchainedDwordMove_00000000_00000018_00000000_00000000, + S_2569_UnchainedDwordMove_00000000_00000018_00000000_00000001 + }, + { + S_2259_UnchainedByteWrite_00000000_00000019_00000000, + S_2314_UnchainedWordWrite_00000000_00000019_00000000, + S_2369_UnchainedDwordWrite_00000000_00000019_00000000, + S_2272_UnchainedByteFill_00000000_00000019_00000000, + S_2327_UnchainedWordFill_00000000_00000019_00000000, + S_2381_UnchainedDwordFill_00000000_00000019_00000000, + S_2298_UnchainedByteMove_00000000_00000019_00000000_00000000, + S_2524_UnchainedByteMove_00000000_00000019_00000000_00000001, + S_2353_UnchainedWordMove_00000000_00000019_00000000_00000000, + S_2554_UnchainedWordMove_00000000_00000019_00000000_00000001, + S_2393_UnchainedDwordMove_00000000_00000019_00000000_00000000, + S_2570_UnchainedDwordMove_00000000_00000019_00000000_00000001 + }, + { + S_2260_UnchainedByteWrite_00000000_0000001e_00000000, + S_2315_UnchainedWordWrite_00000000_0000001e_00000000, + S_2370_UnchainedDwordWrite_00000000_0000001e_00000000, + S_2273_UnchainedByteFill_00000000_0000001e_00000000, + S_2328_UnchainedWordFill_00000000_0000001e_00000000, + S_2382_UnchainedDwordFill_00000000_0000001e_00000000, + S_2300_UnchainedByteMove_00000000_0000001e_00000000_00000000, + S_2526_UnchainedByteMove_00000000_0000001e_00000000_00000001, + S_2355_UnchainedWordMove_00000000_0000001e_00000000_00000000, + S_2556_UnchainedWordMove_00000000_0000001e_00000000_00000001, + S_2394_UnchainedDwordMove_00000000_0000001e_00000000_00000000, + S_2571_UnchainedDwordMove_00000000_0000001e_00000000_00000001 + }, + { + S_2261_UnchainedByteWrite_00000000_0000001f_00000000, + S_2316_UnchainedWordWrite_00000000_0000001f_00000000, + S_2371_UnchainedDwordWrite_00000000_0000001f_00000000, + S_2274_UnchainedByteFill_00000000_0000001f_00000000, + S_2329_UnchainedWordFill_00000000_0000001f_00000000, + S_2383_UnchainedDwordFill_00000000_0000001f_00000000, + S_2303_UnchainedByteMove_00000000_0000001f_00000000_00000000, + S_2529_UnchainedByteMove_00000000_0000001f_00000000_00000001, + S_2358_UnchainedWordMove_00000000_0000001f_00000000_00000000, + S_2559_UnchainedWordMove_00000000_0000001f_00000000_00000001, + S_2395_UnchainedDwordMove_00000000_0000001f_00000000_00000000, + S_2572_UnchainedDwordMove_00000000_0000001f_00000000_00000001 + }, + { + S_2396_UnchainedByteWrite_00000001_00000000_00000000, + S_2399_UnchainedWordWrite_00000001_00000000_00000000, + S_2402_UnchainedDwordWrite_00000001_00000000_00000000, + S_2397_UnchainedByteFill_00000001_00000000_00000000, + S_2400_UnchainedWordFill_00000001_00000000_00000000, + S_2403_UnchainedDwordFill_00000001_00000000_00000000, + S_2398_UnchainedByteMove_00000001_00000000_00000000_00000000, + S_2573_UnchainedByteMove_00000001_00000000_00000000_00000001, + S_2401_UnchainedWordMove_00000001_00000000_00000000_00000000, + S_2574_UnchainedWordMove_00000001_00000000_00000000_00000001, + S_2404_UnchainedDwordMove_00000001_00000000_00000000_00000000, + S_2575_UnchainedDwordMove_00000001_00000000_00000000_00000001 + }, + { + S_2405_UnchainedByteWrite_00000002_00000008_00000000, + S_2423_UnchainedWordWrite_00000002_00000008_00000000, + S_2441_UnchainedDwordWrite_00000002_00000008_00000000, + S_2409_UnchainedByteFill_00000002_00000008_00000000, + S_2427_UnchainedWordFill_00000002_00000008_00000000, + S_2445_UnchainedDwordFill_00000002_00000008_00000000, + S_2413_UnchainedByteMove_00000002_00000008_00000000_00000000, + S_2576_UnchainedByteMove_00000002_00000008_00000000_00000001, + S_2431_UnchainedWordMove_00000002_00000008_00000000_00000000, + S_2586_UnchainedWordMove_00000002_00000008_00000000_00000001, + S_2449_UnchainedDwordMove_00000002_00000008_00000000_00000000, + S_2596_UnchainedDwordMove_00000002_00000008_00000000_00000001 + }, + { + S_2406_UnchainedByteWrite_00000002_00000009_00000000, + S_2424_UnchainedWordWrite_00000002_00000009_00000000, + S_2442_UnchainedDwordWrite_00000002_00000009_00000000, + S_2410_UnchainedByteFill_00000002_00000009_00000000, + S_2428_UnchainedWordFill_00000002_00000009_00000000, + S_2446_UnchainedDwordFill_00000002_00000009_00000000, + S_2416_UnchainedByteMove_00000002_00000009_00000000_00000000, + S_2579_UnchainedByteMove_00000002_00000009_00000000_00000001, + S_2434_UnchainedWordMove_00000002_00000009_00000000_00000000, + S_2589_UnchainedWordMove_00000002_00000009_00000000_00000001, + S_2450_UnchainedDwordMove_00000002_00000009_00000000_00000000, + S_2597_UnchainedDwordMove_00000002_00000009_00000000_00000001 + }, + { + S_2407_UnchainedByteWrite_00000002_0000000e_00000000, + S_2425_UnchainedWordWrite_00000002_0000000e_00000000, + S_2443_UnchainedDwordWrite_00000002_0000000e_00000000, + S_2411_UnchainedByteFill_00000002_0000000e_00000000, + S_2429_UnchainedWordFill_00000002_0000000e_00000000, + S_2447_UnchainedDwordFill_00000002_0000000e_00000000, + S_2418_UnchainedByteMove_00000002_0000000e_00000000_00000000, + S_2581_UnchainedByteMove_00000002_0000000e_00000000_00000001, + S_2436_UnchainedWordMove_00000002_0000000e_00000000_00000000, + S_2591_UnchainedWordMove_00000002_0000000e_00000000_00000001, + S_2451_UnchainedDwordMove_00000002_0000000e_00000000_00000000, + S_2598_UnchainedDwordMove_00000002_0000000e_00000000_00000001 + }, + { + S_2408_UnchainedByteWrite_00000002_0000000f_00000000, + S_2426_UnchainedWordWrite_00000002_0000000f_00000000, + S_2444_UnchainedDwordWrite_00000002_0000000f_00000000, + S_2412_UnchainedByteFill_00000002_0000000f_00000000, + S_2430_UnchainedWordFill_00000002_0000000f_00000000, + S_2448_UnchainedDwordFill_00000002_0000000f_00000000, + S_2421_UnchainedByteMove_00000002_0000000f_00000000_00000000, + S_2584_UnchainedByteMove_00000002_0000000f_00000000_00000001, + S_2439_UnchainedWordMove_00000002_0000000f_00000000_00000000, + S_2594_UnchainedWordMove_00000002_0000000f_00000000_00000001, + S_2452_UnchainedDwordMove_00000002_0000000f_00000000_00000000, + S_2599_UnchainedDwordMove_00000002_0000000f_00000000_00000001 + }, + { + S_2453_UnchainedByteWrite_00000003_00000008_00000000, + S_2471_UnchainedWordWrite_00000003_00000008_00000000, + S_2489_UnchainedDwordWrite_00000003_00000008_00000000, + S_2457_UnchainedByteFill_00000003_00000008_00000000, + S_2475_UnchainedWordFill_00000003_00000008_00000000, + S_2493_UnchainedDwordFill_00000003_00000008_00000000, + S_2461_UnchainedByteMove_00000003_00000008_00000000_00000000, + S_2600_UnchainedByteMove_00000003_00000008_00000000_00000001, + S_2479_UnchainedWordMove_00000003_00000008_00000000_00000000, + S_2610_UnchainedWordMove_00000003_00000008_00000000_00000001, + S_2497_UnchainedDwordMove_00000003_00000008_00000000_00000000, + S_2620_UnchainedDwordMove_00000003_00000008_00000000_00000001 + }, + { + S_2454_UnchainedByteWrite_00000003_00000009_00000000, + S_2472_UnchainedWordWrite_00000003_00000009_00000000, + S_2490_UnchainedDwordWrite_00000003_00000009_00000000, + S_2458_UnchainedByteFill_00000003_00000009_00000000, + S_2476_UnchainedWordFill_00000003_00000009_00000000, + S_2494_UnchainedDwordFill_00000003_00000009_00000000, + S_2464_UnchainedByteMove_00000003_00000009_00000000_00000000, + S_2603_UnchainedByteMove_00000003_00000009_00000000_00000001, + S_2482_UnchainedWordMove_00000003_00000009_00000000_00000000, + S_2613_UnchainedWordMove_00000003_00000009_00000000_00000001, + S_2498_UnchainedDwordMove_00000003_00000009_00000000_00000000, + S_2621_UnchainedDwordMove_00000003_00000009_00000000_00000001 + }, + { + S_2455_UnchainedByteWrite_00000003_0000000e_00000000, + S_2473_UnchainedWordWrite_00000003_0000000e_00000000, + S_2491_UnchainedDwordWrite_00000003_0000000e_00000000, + S_2459_UnchainedByteFill_00000003_0000000e_00000000, + S_2477_UnchainedWordFill_00000003_0000000e_00000000, + S_2495_UnchainedDwordFill_00000003_0000000e_00000000, + S_2466_UnchainedByteMove_00000003_0000000e_00000000_00000000, + S_2605_UnchainedByteMove_00000003_0000000e_00000000_00000001, + S_2484_UnchainedWordMove_00000003_0000000e_00000000_00000000, + S_2615_UnchainedWordMove_00000003_0000000e_00000000_00000001, + S_2499_UnchainedDwordMove_00000003_0000000e_00000000_00000000, + S_2622_UnchainedDwordMove_00000003_0000000e_00000000_00000001 + }, + { + S_2456_UnchainedByteWrite_00000003_0000000f_00000000, + S_2474_UnchainedWordWrite_00000003_0000000f_00000000, + S_2492_UnchainedDwordWrite_00000003_0000000f_00000000, + S_2460_UnchainedByteFill_00000003_0000000f_00000000, + S_2478_UnchainedWordFill_00000003_0000000f_00000000, + S_2496_UnchainedDwordFill_00000003_0000000f_00000000, + S_2469_UnchainedByteMove_00000003_0000000f_00000000_00000000, + S_2608_UnchainedByteMove_00000003_0000000f_00000000_00000001, + S_2487_UnchainedWordMove_00000003_0000000f_00000000_00000000, + S_2618_UnchainedWordMove_00000003_0000000f_00000000_00000001, + S_2500_UnchainedDwordMove_00000003_0000000f_00000000_00000000, + S_2623_UnchainedDwordMove_00000003_0000000f_00000000_00000001 + } +}; + +EVID_WRT_POINTERS chain4_evid[] = { + { + S_2732_Chain4ByteWrite_00000000_00000008, + S_2782_Chain4WordWrite_00000000_00000008, + S_2831_Chain4DwordWrite_00000000_00000008, + S_2744_Chain4ByteFill_00000000_00000008, + S_2794_Chain4WordFill_00000000_00000008, + S_2843_Chain4DwordFill_00000000_00000008, + S_2758_Chain4ByteMove_00000000_00000008_00000000, + S_2965_Chain4ByteMove_00000000_00000008_00000001, + S_2807_Chain4WordMove_00000000_00000008_00000000, + S_2989_Chain4WordMove_00000000_00000008_00000001, + S_2855_Chain4DwordMove_00000000_00000008_00000000, + S_3013_Chain4DwordMove_00000000_00000008_00000001 + }, + { + S_2733_Chain4ByteWrite_00000000_00000009, + S_2783_Chain4WordWrite_00000000_00000009, + S_2832_Chain4DwordWrite_00000000_00000009, + S_2746_Chain4ByteFill_00000000_00000009, + S_2795_Chain4WordFill_00000000_00000009, + S_2844_Chain4DwordFill_00000000_00000009, + S_2760_Chain4ByteMove_00000000_00000009_00000000, + S_2967_Chain4ByteMove_00000000_00000009_00000001, + S_2809_Chain4WordMove_00000000_00000009_00000000, + S_2991_Chain4WordMove_00000000_00000009_00000001, + S_2856_Chain4DwordMove_00000000_00000009_00000000, + S_3014_Chain4DwordMove_00000000_00000009_00000001 + }, + { + S_2734_Chain4ByteWrite_00000000_0000000e, + S_2784_Chain4WordWrite_00000000_0000000e, + S_2833_Chain4DwordWrite_00000000_0000000e, + S_2748_Chain4ByteFill_00000000_0000000e, + S_2797_Chain4WordFill_00000000_0000000e, + S_2845_Chain4DwordFill_00000000_0000000e, + S_2762_Chain4ByteMove_00000000_0000000e_00000000, + S_2969_Chain4ByteMove_00000000_0000000e_00000001, + S_2811_Chain4WordMove_00000000_0000000e_00000000, + S_2993_Chain4WordMove_00000000_0000000e_00000001, + S_2857_Chain4DwordMove_00000000_0000000e_00000000, + S_3015_Chain4DwordMove_00000000_0000000e_00000001 + }, + { + S_2735_Chain4ByteWrite_00000000_0000000f, + S_2785_Chain4WordWrite_00000000_0000000f, + S_2834_Chain4DwordWrite_00000000_0000000f, + S_2749_Chain4ByteFill_00000000_0000000f, + S_2798_Chain4WordFill_00000000_0000000f, + S_2846_Chain4DwordFill_00000000_0000000f, + S_2764_Chain4ByteMove_00000000_0000000f_00000000, + S_2971_Chain4ByteMove_00000000_0000000f_00000001, + S_2813_Chain4WordMove_00000000_0000000f_00000000, + S_2995_Chain4WordMove_00000000_0000000f_00000001, + S_2858_Chain4DwordMove_00000000_0000000f_00000000, + S_3016_Chain4DwordMove_00000000_0000000f_00000001 + }, + { + S_2736_Chain4ByteWrite_00000000_00000010, + S_2786_Chain4WordWrite_00000000_00000010, + S_2835_Chain4DwordWrite_00000000_00000010, + S_2750_Chain4ByteFill_00000000_00000010, + S_2799_Chain4WordFill_00000000_00000010, + S_2847_Chain4DwordFill_00000000_00000010, + S_2766_Chain4ByteMove_00000000_00000010_00000000, + S_2973_Chain4ByteMove_00000000_00000010_00000001, + S_2815_Chain4WordMove_00000000_00000010_00000000, + S_2997_Chain4WordMove_00000000_00000010_00000001, + S_2859_Chain4DwordMove_00000000_00000010_00000000, + S_3017_Chain4DwordMove_00000000_00000010_00000001 + }, + { + S_2737_Chain4ByteWrite_00000000_00000011, + S_2787_Chain4WordWrite_00000000_00000011, + S_2836_Chain4DwordWrite_00000000_00000011, + S_2751_Chain4ByteFill_00000000_00000011, + S_2800_Chain4WordFill_00000000_00000011, + S_2848_Chain4DwordFill_00000000_00000011, + S_2768_Chain4ByteMove_00000000_00000011_00000000, + S_2975_Chain4ByteMove_00000000_00000011_00000001, + S_2817_Chain4WordMove_00000000_00000011_00000000, + S_2999_Chain4WordMove_00000000_00000011_00000001, + S_2860_Chain4DwordMove_00000000_00000011_00000000, + S_3018_Chain4DwordMove_00000000_00000011_00000001 + }, + { + S_2738_Chain4ByteWrite_00000000_00000016, + S_2788_Chain4WordWrite_00000000_00000016, + S_2837_Chain4DwordWrite_00000000_00000016, + S_2752_Chain4ByteFill_00000000_00000016, + S_2801_Chain4WordFill_00000000_00000016, + S_2849_Chain4DwordFill_00000000_00000016, + S_2770_Chain4ByteMove_00000000_00000016_00000000, + S_2977_Chain4ByteMove_00000000_00000016_00000001, + S_2819_Chain4WordMove_00000000_00000016_00000000, + S_3001_Chain4WordMove_00000000_00000016_00000001, + S_2861_Chain4DwordMove_00000000_00000016_00000000, + S_3019_Chain4DwordMove_00000000_00000016_00000001 + }, + { + S_2739_Chain4ByteWrite_00000000_00000017, + S_2789_Chain4WordWrite_00000000_00000017, + S_2838_Chain4DwordWrite_00000000_00000017, + S_2753_Chain4ByteFill_00000000_00000017, + S_2802_Chain4WordFill_00000000_00000017, + S_2850_Chain4DwordFill_00000000_00000017, + S_2772_Chain4ByteMove_00000000_00000017_00000000, + S_2979_Chain4ByteMove_00000000_00000017_00000001, + S_2821_Chain4WordMove_00000000_00000017_00000000, + S_3003_Chain4WordMove_00000000_00000017_00000001, + S_2862_Chain4DwordMove_00000000_00000017_00000000, + S_3020_Chain4DwordMove_00000000_00000017_00000001 + }, + { + S_2740_Chain4ByteWrite_00000000_00000018, + S_2790_Chain4WordWrite_00000000_00000018, + S_2839_Chain4DwordWrite_00000000_00000018, + S_2754_Chain4ByteFill_00000000_00000018, + S_2803_Chain4WordFill_00000000_00000018, + S_2851_Chain4DwordFill_00000000_00000018, + S_2774_Chain4ByteMove_00000000_00000018_00000000, + S_2981_Chain4ByteMove_00000000_00000018_00000001, + S_2823_Chain4WordMove_00000000_00000018_00000000, + S_3005_Chain4WordMove_00000000_00000018_00000001, + S_2863_Chain4DwordMove_00000000_00000018_00000000, + S_3021_Chain4DwordMove_00000000_00000018_00000001 + }, + { + S_2741_Chain4ByteWrite_00000000_00000019, + S_2791_Chain4WordWrite_00000000_00000019, + S_2840_Chain4DwordWrite_00000000_00000019, + S_2755_Chain4ByteFill_00000000_00000019, + S_2804_Chain4WordFill_00000000_00000019, + S_2852_Chain4DwordFill_00000000_00000019, + S_2776_Chain4ByteMove_00000000_00000019_00000000, + S_2983_Chain4ByteMove_00000000_00000019_00000001, + S_2825_Chain4WordMove_00000000_00000019_00000000, + S_3007_Chain4WordMove_00000000_00000019_00000001, + S_2864_Chain4DwordMove_00000000_00000019_00000000, + S_3022_Chain4DwordMove_00000000_00000019_00000001 + }, + { + S_2742_Chain4ByteWrite_00000000_0000001e, + S_2792_Chain4WordWrite_00000000_0000001e, + S_2841_Chain4DwordWrite_00000000_0000001e, + S_2756_Chain4ByteFill_00000000_0000001e, + S_2805_Chain4WordFill_00000000_0000001e, + S_2853_Chain4DwordFill_00000000_0000001e, + S_2778_Chain4ByteMove_00000000_0000001e_00000000, + S_2985_Chain4ByteMove_00000000_0000001e_00000001, + S_2827_Chain4WordMove_00000000_0000001e_00000000, + S_3009_Chain4WordMove_00000000_0000001e_00000001, + S_2865_Chain4DwordMove_00000000_0000001e_00000000, + S_3023_Chain4DwordMove_00000000_0000001e_00000001 + }, + { + S_2743_Chain4ByteWrite_00000000_0000001f, + S_2793_Chain4WordWrite_00000000_0000001f, + S_2842_Chain4DwordWrite_00000000_0000001f, + S_2757_Chain4ByteFill_00000000_0000001f, + S_2806_Chain4WordFill_00000000_0000001f, + S_2854_Chain4DwordFill_00000000_0000001f, + S_2780_Chain4ByteMove_00000000_0000001f_00000000, + S_2987_Chain4ByteMove_00000000_0000001f_00000001, + S_2829_Chain4WordMove_00000000_0000001f_00000000, + S_3011_Chain4WordMove_00000000_0000001f_00000001, + S_2866_Chain4DwordMove_00000000_0000001f_00000000, + S_3024_Chain4DwordMove_00000000_0000001f_00000001 + }, + { + S_2867_Chain4ByteWrite_00000001_00000000, + S_2871_Chain4WordWrite_00000001_00000000, + S_2874_Chain4DwordWrite_00000001_00000000, + S_2868_Chain4ByteFill_00000001_00000000, + S_2872_Chain4WordFill_00000001_00000000, + S_2875_Chain4DwordFill_00000001_00000000, + S_2869_Chain4ByteMove_00000001_00000000_00000000, + S_3025_Chain4ByteMove_00000001_00000000_00000001, + S_2873_Chain4WordMove_00000001_00000000_00000000, + S_3027_Chain4WordMove_00000001_00000000_00000001, + S_2876_Chain4DwordMove_00000001_00000000_00000000, + S_3028_Chain4DwordMove_00000001_00000000_00000001 + }, + { + S_2877_Chain4ByteWrite_00000002_00000008, + S_2893_Chain4WordWrite_00000002_00000008, + S_2909_Chain4DwordWrite_00000002_00000008, + S_2881_Chain4ByteFill_00000002_00000008, + S_2897_Chain4WordFill_00000002_00000008, + S_2913_Chain4DwordFill_00000002_00000008, + S_2885_Chain4ByteMove_00000002_00000008_00000000, + S_3029_Chain4ByteMove_00000002_00000008_00000001, + S_2901_Chain4WordMove_00000002_00000008_00000000, + S_3037_Chain4WordMove_00000002_00000008_00000001, + S_2917_Chain4DwordMove_00000002_00000008_00000000, + S_3045_Chain4DwordMove_00000002_00000008_00000001 + }, + { + S_2878_Chain4ByteWrite_00000002_00000009, + S_2894_Chain4WordWrite_00000002_00000009, + S_2910_Chain4DwordWrite_00000002_00000009, + S_2882_Chain4ByteFill_00000002_00000009, + S_2898_Chain4WordFill_00000002_00000009, + S_2914_Chain4DwordFill_00000002_00000009, + S_2887_Chain4ByteMove_00000002_00000009_00000000, + S_3031_Chain4ByteMove_00000002_00000009_00000001, + S_2903_Chain4WordMove_00000002_00000009_00000000, + S_3039_Chain4WordMove_00000002_00000009_00000001, + S_2918_Chain4DwordMove_00000002_00000009_00000000, + S_3046_Chain4DwordMove_00000002_00000009_00000001 + }, + { + S_2879_Chain4ByteWrite_00000002_0000000e, + S_2895_Chain4WordWrite_00000002_0000000e, + S_2911_Chain4DwordWrite_00000002_0000000e, + S_2883_Chain4ByteFill_00000002_0000000e, + S_2899_Chain4WordFill_00000002_0000000e, + S_2915_Chain4DwordFill_00000002_0000000e, + S_2889_Chain4ByteMove_00000002_0000000e_00000000, + S_3033_Chain4ByteMove_00000002_0000000e_00000001, + S_2905_Chain4WordMove_00000002_0000000e_00000000, + S_3041_Chain4WordMove_00000002_0000000e_00000001, + S_2919_Chain4DwordMove_00000002_0000000e_00000000, + S_3047_Chain4DwordMove_00000002_0000000e_00000001 + }, + { + S_2880_Chain4ByteWrite_00000002_0000000f, + S_2896_Chain4WordWrite_00000002_0000000f, + S_2912_Chain4DwordWrite_00000002_0000000f, + S_2884_Chain4ByteFill_00000002_0000000f, + S_2900_Chain4WordFill_00000002_0000000f, + S_2916_Chain4DwordFill_00000002_0000000f, + S_2891_Chain4ByteMove_00000002_0000000f_00000000, + S_3035_Chain4ByteMove_00000002_0000000f_00000001, + S_2907_Chain4WordMove_00000002_0000000f_00000000, + S_3043_Chain4WordMove_00000002_0000000f_00000001, + S_2920_Chain4DwordMove_00000002_0000000f_00000000, + S_3048_Chain4DwordMove_00000002_0000000f_00000001 + }, + { + S_2921_Chain4ByteWrite_00000003_00000008, + S_2937_Chain4WordWrite_00000003_00000008, + S_2953_Chain4DwordWrite_00000003_00000008, + S_2925_Chain4ByteFill_00000003_00000008, + S_2941_Chain4WordFill_00000003_00000008, + S_2957_Chain4DwordFill_00000003_00000008, + S_2929_Chain4ByteMove_00000003_00000008_00000000, + S_3049_Chain4ByteMove_00000003_00000008_00000001, + S_2945_Chain4WordMove_00000003_00000008_00000000, + S_3057_Chain4WordMove_00000003_00000008_00000001, + S_2961_Chain4DwordMove_00000003_00000008_00000000, + S_3065_Chain4DwordMove_00000003_00000008_00000001 + }, + { + S_2922_Chain4ByteWrite_00000003_00000009, + S_2938_Chain4WordWrite_00000003_00000009, + S_2954_Chain4DwordWrite_00000003_00000009, + S_2926_Chain4ByteFill_00000003_00000009, + S_2942_Chain4WordFill_00000003_00000009, + S_2958_Chain4DwordFill_00000003_00000009, + S_2931_Chain4ByteMove_00000003_00000009_00000000, + S_3051_Chain4ByteMove_00000003_00000009_00000001, + S_2947_Chain4WordMove_00000003_00000009_00000000, + S_3059_Chain4WordMove_00000003_00000009_00000001, + S_2962_Chain4DwordMove_00000003_00000009_00000000, + S_3066_Chain4DwordMove_00000003_00000009_00000001 + }, + { + S_2923_Chain4ByteWrite_00000003_0000000e, + S_2939_Chain4WordWrite_00000003_0000000e, + S_2955_Chain4DwordWrite_00000003_0000000e, + S_2927_Chain4ByteFill_00000003_0000000e, + S_2943_Chain4WordFill_00000003_0000000e, + S_2959_Chain4DwordFill_00000003_0000000e, + S_2933_Chain4ByteMove_00000003_0000000e_00000000, + S_3053_Chain4ByteMove_00000003_0000000e_00000001, + S_2949_Chain4WordMove_00000003_0000000e_00000000, + S_3061_Chain4WordMove_00000003_0000000e_00000001, + S_2963_Chain4DwordMove_00000003_0000000e_00000000, + S_3067_Chain4DwordMove_00000003_0000000e_00000001 + }, + { + S_2924_Chain4ByteWrite_00000003_0000000f, + S_2940_Chain4WordWrite_00000003_0000000f, + S_2956_Chain4DwordWrite_00000003_0000000f, + S_2928_Chain4ByteFill_00000003_0000000f, + S_2944_Chain4WordFill_00000003_0000000f, + S_2960_Chain4DwordFill_00000003_0000000f, + S_2935_Chain4ByteMove_00000003_0000000f_00000000, + S_3055_Chain4ByteMove_00000003_0000000f_00000001, + S_2951_Chain4WordMove_00000003_0000000f_00000000, + S_3063_Chain4WordMove_00000003_0000000f_00000001, + S_2964_Chain4DwordMove_00000003_0000000f_00000000, + S_3068_Chain4DwordMove_00000003_0000000f_00000001 + } +}; + + +EVID_READ_POINTERS simple_read_evid = + { + S_2115_SimpleByteRead, + S_2116_SimpleWordRead, + S_2117_SimpleDwordRead, + S_2118_SimpleStringRead, + S_2118_SimpleStringRead + }; + +EVID_READ_POINTERS ram_dsbld_read_evid = + { + S_2111_DisabledRAMByteRead, + S_2112_DisabledRAMWordRead, + S_2113_DisabledRAMDwordRead, + S_2114_DisabledRAMStringReadFwd, + S_2125_DisabledRAMStringReadBwd + }; + +EVID_READ_POINTERS read_mode0_evid[] = { + { + S_2095_RdMode0UnchainedByteRead, + S_2096_RdMode0UnchainedWordRead, + S_2097_RdMode0UnchainedDwordRead, + S_2098_RdMode0UnchainedStringReadFwd, + S_2121_RdMode0UnchainedStringReadBwd + }, + { + S_2087_RdMode0Chain2ByteRead, + S_2088_RdMode0Chain2WordRead, + S_2089_RdMode0Chain2DwordRead, + S_2090_RdMode0Chain2StringReadFwd, + S_2119_RdMode0Chain2StringReadBwd + }, + { + S_2091_RdMode0Chain4ByteRead, + S_2092_RdMode0Chain4WordRead, + S_2093_RdMode0Chain4DwordRead, + S_2094_RdMode0Chain4StringReadFwd, + S_2120_RdMode0Chain4StringReadBwd + } +}; + +EVID_READ_POINTERS read_mode1_evid[] = { + { + S_2107_RdMode1UnchainedByteRead, + S_2108_RdMode1UnchainedWordRead, + S_2109_RdMode1UnchainedDwordRead, + S_2110_RdMode1UnchainedStringReadFwd, + S_2124_RdMode1UnchainedStringReadBwd + }, + { + S_2099_RdMode1Chain2ByteRead, + S_2100_RdMode1Chain2WordRead, + S_2101_RdMode1Chain2DwordRead, + S_2102_RdMode1Chain2StringReadFwd, + S_2122_RdMode1Chain2StringReadBwd + }, + { + S_2103_RdMode1Chain4ByteRead, + S_2104_RdMode1Chain4WordRead, + S_2105_RdMode1Chain4DwordRead, + S_2106_RdMode1Chain4StringReadFwd, + S_2123_RdMode1Chain4StringReadBwd + } +}; + +EVID_MARK_POINTERS simple_mark_evid = + { + S_2126_SimpleMark, + S_2126_SimpleMark, + S_2126_SimpleMark, + S_2126_SimpleMark + }; + +EVID_MARK_POINTERS cga_mark_evid = + { + S_2127_CGAMarkByte, + S_2128_CGAMarkWord, + S_2129_CGAMarkDword, + S_2130_CGAMarkString + }; + +EVID_MARK_POINTERS unchained_mark_evid = + { + S_2131_UnchainedMarkByte, + S_2132_UnchainedMarkWord, + S_2133_UnchainedMarkDword, + S_2134_UnchainedMarkString + }; + +EVID_MARK_POINTERS chain4_mark_evid = + { + S_2135_Chain4MarkByte, + S_2136_Chain4MarkWord, + S_2137_Chain4MarkDword, + S_2138_Chain4MarkString + }; diff --git a/private/mvdm/softpc.new/base/cvidc/evidfunc.h b/private/mvdm/softpc.new/base/cvidc/evidfunc.h new file mode 100644 index 000000000..6877d1cca --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/evidfunc.h @@ -0,0 +1,715 @@ +extern void S_2139_SimpleByteWrite IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2142_SimpleWordWrite IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2145_SimpleDwordWrite IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2140_SimpleByteFill IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2143_SimpleWordFill IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2146_SimpleDwordFill IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2141_SimpleByteMove_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2144_SimpleWordMove_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2147_SimpleDwordMove_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2148_SimpleByteMove_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2149_SimpleWordMove_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2150_SimpleDwordMove_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2238_GenericByteWrite IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2241_GenericWordWrite IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2244_GenericDwordWrite IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2239_GenericByteFill IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2242_GenericWordFill IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2245_GenericDwordFill IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2240_GenericByteMove_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2243_GenericWordMove_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2246_GenericDwordMove_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2247_GenericByteMove_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2248_GenericWordMove_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2249_GenericDwordMove_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2151_UnchainedByteWrite_00000000_0000000e_00000001 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2157_UnchainedWordWrite_00000000_0000000e_00000001 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2163_UnchainedDwordWrite_00000000_0000000e_00000001 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2152_UnchainedByteFill_00000000_0000000e_00000001 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2158_UnchainedWordFill_00000000_0000000e_00000001 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2164_UnchainedDwordFill_00000000_0000000e_00000001 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2154_UnchainedByteMove_00000000_0000000e_00000001_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2160_UnchainedWordMove_00000000_0000000e_00000001_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2165_UnchainedDwordMove_00000000_0000000e_00000001_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2205_UnchainedByteMove_00000000_0000000e_00000001_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2208_UnchainedWordMove_00000000_0000000e_00000001_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2211_UnchainedDwordMove_00000000_0000000e_00000001_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2166_UnchainedByteWrite_00000001_0000000e_00000001 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2171_UnchainedWordWrite_00000001_0000000e_00000001 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2176_UnchainedDwordWrite_00000001_0000000e_00000001 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2167_UnchainedByteFill_00000001_0000000e_00000001 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2172_UnchainedWordFill_00000001_0000000e_00000001 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2177_UnchainedDwordFill_00000001_0000000e_00000001 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2168_UnchainedByteMove_00000001_0000000e_00000001_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2173_UnchainedWordMove_00000001_0000000e_00000001_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2178_UnchainedDwordMove_00000001_0000000e_00000001_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2212_UnchainedByteMove_00000001_0000000e_00000001_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2215_UnchainedWordMove_00000001_0000000e_00000001_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2218_UnchainedDwordMove_00000001_0000000e_00000001_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2179_UnchainedByteWrite_00000002_0000000e_00000001 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2184_UnchainedWordWrite_00000002_0000000e_00000001 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2189_UnchainedDwordWrite_00000002_0000000e_00000001 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2180_UnchainedByteFill_00000002_0000000e_00000001 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2185_UnchainedWordFill_00000002_0000000e_00000001 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2190_UnchainedDwordFill_00000002_0000000e_00000001 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2181_UnchainedByteMove_00000002_0000000e_00000001_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2186_UnchainedWordMove_00000002_0000000e_00000001_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2191_UnchainedDwordMove_00000002_0000000e_00000001_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2219_UnchainedByteMove_00000002_0000000e_00000001_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2222_UnchainedWordMove_00000002_0000000e_00000001_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2225_UnchainedDwordMove_00000002_0000000e_00000001_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2192_UnchainedByteWrite_00000003_0000000e_00000001 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2197_UnchainedWordWrite_00000003_0000000e_00000001 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2202_UnchainedDwordWrite_00000003_0000000e_00000001 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2193_UnchainedByteFill_00000003_0000000e_00000001 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2198_UnchainedWordFill_00000003_0000000e_00000001 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2203_UnchainedDwordFill_00000003_0000000e_00000001 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2194_UnchainedByteMove_00000003_0000000e_00000001_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2199_UnchainedWordMove_00000003_0000000e_00000001_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2204_UnchainedDwordMove_00000003_0000000e_00000001_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2226_UnchainedByteMove_00000003_0000000e_00000001_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2229_UnchainedWordMove_00000003_0000000e_00000001_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2232_UnchainedDwordMove_00000003_0000000e_00000001_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2624_Chain2ByteWrite_00000000 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2630_Chain2WordWrite_00000000 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2636_Chain2DwordWrite_00000000 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2626_Chain2ByteFill_00000000 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2632_Chain2WordFill_00000000 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2638_Chain2DwordFill_00000000 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2628_Chain2ByteMove_00000000_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2634_Chain2WordMove_00000000_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2640_Chain2DwordMove_00000000_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2705_Chain2ByteMove_00000000_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2707_Chain2WordMove_00000000_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2709_Chain2DwordMove_00000000_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2642_Chain2ByteWrite_00000001 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2648_Chain2WordWrite_00000001 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2654_Chain2DwordWrite_00000001 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2644_Chain2ByteFill_00000001 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2650_Chain2WordFill_00000001 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2656_Chain2DwordFill_00000001 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2646_Chain2ByteMove_00000001_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2652_Chain2WordMove_00000001_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2658_Chain2DwordMove_00000001_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2711_Chain2ByteMove_00000001_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2713_Chain2WordMove_00000001_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2715_Chain2DwordMove_00000001_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2660_Chain2ByteWrite_00000002 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2666_Chain2WordWrite_00000002 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2672_Chain2DwordWrite_00000002 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2662_Chain2ByteFill_00000002 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2668_Chain2WordFill_00000002 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2674_Chain2DwordFill_00000002 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2664_Chain2ByteMove_00000002_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2670_Chain2WordMove_00000002_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2676_Chain2DwordMove_00000002_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2717_Chain2ByteMove_00000002_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2719_Chain2WordMove_00000002_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2721_Chain2DwordMove_00000002_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2678_Chain2ByteWrite_00000003 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2684_Chain2WordWrite_00000003 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2690_Chain2DwordWrite_00000003 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2680_Chain2ByteFill_00000003 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2686_Chain2WordFill_00000003 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2692_Chain2DwordFill_00000003 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2682_Chain2ByteMove_00000003_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2688_Chain2WordMove_00000003_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2694_Chain2DwordMove_00000003_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2723_Chain2ByteMove_00000003_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2725_Chain2WordMove_00000003_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2727_Chain2DwordMove_00000003_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2696_Chain2ByteWrite_Copy IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2699_Chain2WordWrite_Copy IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2702_Chain2DwordWrite_Copy IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2697_Chain2ByteFill_Copy IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2700_Chain2WordFill_Copy IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2703_Chain2DwordFill_Copy IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2698_Chain2ByteMove_Copy_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2701_Chain2WordMove_Copy_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2704_Chain2DwordMove_Copy_Fwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2729_Chain2ByteMove_Copy_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2730_Chain2WordMove_Copy_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2731_Chain2DwordMove_Copy_Bwd IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2250_UnchainedByteWrite_00000000_00000008_00000000 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2305_UnchainedWordWrite_00000000_00000008_00000000 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2360_UnchainedDwordWrite_00000000_00000008_00000000 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2262_UnchainedByteFill_00000000_00000008_00000000 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2317_UnchainedWordFill_00000000_00000008_00000000 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2372_UnchainedDwordFill_00000000_00000008_00000000 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2275_UnchainedByteMove_00000000_00000008_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2330_UnchainedWordMove_00000000_00000008_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2384_UnchainedDwordMove_00000000_00000008_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2501_UnchainedByteMove_00000000_00000008_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2531_UnchainedWordMove_00000000_00000008_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2561_UnchainedDwordMove_00000000_00000008_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2251_UnchainedByteWrite_00000000_00000009_00000000 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2306_UnchainedWordWrite_00000000_00000009_00000000 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2361_UnchainedDwordWrite_00000000_00000009_00000000 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2263_UnchainedByteFill_00000000_00000009_00000000 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2318_UnchainedWordFill_00000000_00000009_00000000 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2373_UnchainedDwordFill_00000000_00000009_00000000 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2278_UnchainedByteMove_00000000_00000009_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2333_UnchainedWordMove_00000000_00000009_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2385_UnchainedDwordMove_00000000_00000009_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2504_UnchainedByteMove_00000000_00000009_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2534_UnchainedWordMove_00000000_00000009_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2562_UnchainedDwordMove_00000000_00000009_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2252_UnchainedByteWrite_00000000_0000000e_00000000 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2307_UnchainedWordWrite_00000000_0000000e_00000000 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2362_UnchainedDwordWrite_00000000_0000000e_00000000 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2265_UnchainedByteFill_00000000_0000000e_00000000 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2320_UnchainedWordFill_00000000_0000000e_00000000 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2374_UnchainedDwordFill_00000000_0000000e_00000000 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2280_UnchainedByteMove_00000000_0000000e_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2335_UnchainedWordMove_00000000_0000000e_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2386_UnchainedDwordMove_00000000_0000000e_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2506_UnchainedByteMove_00000000_0000000e_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2536_UnchainedWordMove_00000000_0000000e_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2563_UnchainedDwordMove_00000000_0000000e_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2253_UnchainedByteWrite_00000000_0000000f_00000000 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2308_UnchainedWordWrite_00000000_0000000f_00000000 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2363_UnchainedDwordWrite_00000000_0000000f_00000000 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2266_UnchainedByteFill_00000000_0000000f_00000000 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2321_UnchainedWordFill_00000000_0000000f_00000000 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2375_UnchainedDwordFill_00000000_0000000f_00000000 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2283_UnchainedByteMove_00000000_0000000f_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2338_UnchainedWordMove_00000000_0000000f_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2387_UnchainedDwordMove_00000000_0000000f_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2509_UnchainedByteMove_00000000_0000000f_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2539_UnchainedWordMove_00000000_0000000f_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2564_UnchainedDwordMove_00000000_0000000f_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2254_UnchainedByteWrite_00000000_00000010_00000000 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2309_UnchainedWordWrite_00000000_00000010_00000000 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2364_UnchainedDwordWrite_00000000_00000010_00000000 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2267_UnchainedByteFill_00000000_00000010_00000000 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2322_UnchainedWordFill_00000000_00000010_00000000 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2376_UnchainedDwordFill_00000000_00000010_00000000 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2285_UnchainedByteMove_00000000_00000010_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2340_UnchainedWordMove_00000000_00000010_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2388_UnchainedDwordMove_00000000_00000010_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2511_UnchainedByteMove_00000000_00000010_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2541_UnchainedWordMove_00000000_00000010_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2565_UnchainedDwordMove_00000000_00000010_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2255_UnchainedByteWrite_00000000_00000011_00000000 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2310_UnchainedWordWrite_00000000_00000011_00000000 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2365_UnchainedDwordWrite_00000000_00000011_00000000 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2268_UnchainedByteFill_00000000_00000011_00000000 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2323_UnchainedWordFill_00000000_00000011_00000000 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2377_UnchainedDwordFill_00000000_00000011_00000000 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2288_UnchainedByteMove_00000000_00000011_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2343_UnchainedWordMove_00000000_00000011_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2389_UnchainedDwordMove_00000000_00000011_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2514_UnchainedByteMove_00000000_00000011_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2544_UnchainedWordMove_00000000_00000011_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2566_UnchainedDwordMove_00000000_00000011_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2256_UnchainedByteWrite_00000000_00000016_00000000 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2311_UnchainedWordWrite_00000000_00000016_00000000 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2366_UnchainedDwordWrite_00000000_00000016_00000000 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2269_UnchainedByteFill_00000000_00000016_00000000 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2324_UnchainedWordFill_00000000_00000016_00000000 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2378_UnchainedDwordFill_00000000_00000016_00000000 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2290_UnchainedByteMove_00000000_00000016_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2345_UnchainedWordMove_00000000_00000016_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2390_UnchainedDwordMove_00000000_00000016_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2516_UnchainedByteMove_00000000_00000016_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2546_UnchainedWordMove_00000000_00000016_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2567_UnchainedDwordMove_00000000_00000016_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2257_UnchainedByteWrite_00000000_00000017_00000000 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2312_UnchainedWordWrite_00000000_00000017_00000000 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2367_UnchainedDwordWrite_00000000_00000017_00000000 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2270_UnchainedByteFill_00000000_00000017_00000000 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2325_UnchainedWordFill_00000000_00000017_00000000 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2379_UnchainedDwordFill_00000000_00000017_00000000 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2293_UnchainedByteMove_00000000_00000017_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2348_UnchainedWordMove_00000000_00000017_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2391_UnchainedDwordMove_00000000_00000017_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2519_UnchainedByteMove_00000000_00000017_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2549_UnchainedWordMove_00000000_00000017_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2568_UnchainedDwordMove_00000000_00000017_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2258_UnchainedByteWrite_00000000_00000018_00000000 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2313_UnchainedWordWrite_00000000_00000018_00000000 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2368_UnchainedDwordWrite_00000000_00000018_00000000 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2271_UnchainedByteFill_00000000_00000018_00000000 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2326_UnchainedWordFill_00000000_00000018_00000000 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2380_UnchainedDwordFill_00000000_00000018_00000000 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2295_UnchainedByteMove_00000000_00000018_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2350_UnchainedWordMove_00000000_00000018_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2392_UnchainedDwordMove_00000000_00000018_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2521_UnchainedByteMove_00000000_00000018_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2551_UnchainedWordMove_00000000_00000018_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2569_UnchainedDwordMove_00000000_00000018_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2259_UnchainedByteWrite_00000000_00000019_00000000 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2314_UnchainedWordWrite_00000000_00000019_00000000 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2369_UnchainedDwordWrite_00000000_00000019_00000000 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2272_UnchainedByteFill_00000000_00000019_00000000 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2327_UnchainedWordFill_00000000_00000019_00000000 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2381_UnchainedDwordFill_00000000_00000019_00000000 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2298_UnchainedByteMove_00000000_00000019_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2353_UnchainedWordMove_00000000_00000019_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2393_UnchainedDwordMove_00000000_00000019_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2524_UnchainedByteMove_00000000_00000019_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2554_UnchainedWordMove_00000000_00000019_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2570_UnchainedDwordMove_00000000_00000019_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2260_UnchainedByteWrite_00000000_0000001e_00000000 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2315_UnchainedWordWrite_00000000_0000001e_00000000 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2370_UnchainedDwordWrite_00000000_0000001e_00000000 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2273_UnchainedByteFill_00000000_0000001e_00000000 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2328_UnchainedWordFill_00000000_0000001e_00000000 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2382_UnchainedDwordFill_00000000_0000001e_00000000 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2300_UnchainedByteMove_00000000_0000001e_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2355_UnchainedWordMove_00000000_0000001e_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2394_UnchainedDwordMove_00000000_0000001e_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2526_UnchainedByteMove_00000000_0000001e_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2556_UnchainedWordMove_00000000_0000001e_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2571_UnchainedDwordMove_00000000_0000001e_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2261_UnchainedByteWrite_00000000_0000001f_00000000 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2316_UnchainedWordWrite_00000000_0000001f_00000000 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2371_UnchainedDwordWrite_00000000_0000001f_00000000 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2274_UnchainedByteFill_00000000_0000001f_00000000 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2329_UnchainedWordFill_00000000_0000001f_00000000 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2383_UnchainedDwordFill_00000000_0000001f_00000000 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2303_UnchainedByteMove_00000000_0000001f_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2358_UnchainedWordMove_00000000_0000001f_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2395_UnchainedDwordMove_00000000_0000001f_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2529_UnchainedByteMove_00000000_0000001f_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2559_UnchainedWordMove_00000000_0000001f_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2572_UnchainedDwordMove_00000000_0000001f_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2396_UnchainedByteWrite_00000001_00000000_00000000 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2399_UnchainedWordWrite_00000001_00000000_00000000 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2402_UnchainedDwordWrite_00000001_00000000_00000000 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2397_UnchainedByteFill_00000001_00000000_00000000 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2400_UnchainedWordFill_00000001_00000000_00000000 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2403_UnchainedDwordFill_00000001_00000000_00000000 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2398_UnchainedByteMove_00000001_00000000_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2401_UnchainedWordMove_00000001_00000000_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2404_UnchainedDwordMove_00000001_00000000_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2573_UnchainedByteMove_00000001_00000000_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2574_UnchainedWordMove_00000001_00000000_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2575_UnchainedDwordMove_00000001_00000000_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2405_UnchainedByteWrite_00000002_00000008_00000000 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2423_UnchainedWordWrite_00000002_00000008_00000000 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2441_UnchainedDwordWrite_00000002_00000008_00000000 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2409_UnchainedByteFill_00000002_00000008_00000000 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2427_UnchainedWordFill_00000002_00000008_00000000 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2445_UnchainedDwordFill_00000002_00000008_00000000 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2413_UnchainedByteMove_00000002_00000008_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2431_UnchainedWordMove_00000002_00000008_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2449_UnchainedDwordMove_00000002_00000008_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2576_UnchainedByteMove_00000002_00000008_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2586_UnchainedWordMove_00000002_00000008_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2596_UnchainedDwordMove_00000002_00000008_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2406_UnchainedByteWrite_00000002_00000009_00000000 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2424_UnchainedWordWrite_00000002_00000009_00000000 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2442_UnchainedDwordWrite_00000002_00000009_00000000 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2410_UnchainedByteFill_00000002_00000009_00000000 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2428_UnchainedWordFill_00000002_00000009_00000000 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2446_UnchainedDwordFill_00000002_00000009_00000000 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2416_UnchainedByteMove_00000002_00000009_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2434_UnchainedWordMove_00000002_00000009_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2450_UnchainedDwordMove_00000002_00000009_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2579_UnchainedByteMove_00000002_00000009_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2589_UnchainedWordMove_00000002_00000009_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2597_UnchainedDwordMove_00000002_00000009_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2407_UnchainedByteWrite_00000002_0000000e_00000000 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2425_UnchainedWordWrite_00000002_0000000e_00000000 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2443_UnchainedDwordWrite_00000002_0000000e_00000000 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2411_UnchainedByteFill_00000002_0000000e_00000000 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2429_UnchainedWordFill_00000002_0000000e_00000000 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2447_UnchainedDwordFill_00000002_0000000e_00000000 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2418_UnchainedByteMove_00000002_0000000e_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2436_UnchainedWordMove_00000002_0000000e_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2451_UnchainedDwordMove_00000002_0000000e_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2581_UnchainedByteMove_00000002_0000000e_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2591_UnchainedWordMove_00000002_0000000e_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2598_UnchainedDwordMove_00000002_0000000e_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2408_UnchainedByteWrite_00000002_0000000f_00000000 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2426_UnchainedWordWrite_00000002_0000000f_00000000 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2444_UnchainedDwordWrite_00000002_0000000f_00000000 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2412_UnchainedByteFill_00000002_0000000f_00000000 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2430_UnchainedWordFill_00000002_0000000f_00000000 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2448_UnchainedDwordFill_00000002_0000000f_00000000 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2421_UnchainedByteMove_00000002_0000000f_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2439_UnchainedWordMove_00000002_0000000f_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2452_UnchainedDwordMove_00000002_0000000f_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2584_UnchainedByteMove_00000002_0000000f_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2594_UnchainedWordMove_00000002_0000000f_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2599_UnchainedDwordMove_00000002_0000000f_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2453_UnchainedByteWrite_00000003_00000008_00000000 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2471_UnchainedWordWrite_00000003_00000008_00000000 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2489_UnchainedDwordWrite_00000003_00000008_00000000 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2457_UnchainedByteFill_00000003_00000008_00000000 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2475_UnchainedWordFill_00000003_00000008_00000000 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2493_UnchainedDwordFill_00000003_00000008_00000000 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2461_UnchainedByteMove_00000003_00000008_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2479_UnchainedWordMove_00000003_00000008_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2497_UnchainedDwordMove_00000003_00000008_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2600_UnchainedByteMove_00000003_00000008_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2610_UnchainedWordMove_00000003_00000008_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2620_UnchainedDwordMove_00000003_00000008_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2454_UnchainedByteWrite_00000003_00000009_00000000 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2472_UnchainedWordWrite_00000003_00000009_00000000 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2490_UnchainedDwordWrite_00000003_00000009_00000000 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2458_UnchainedByteFill_00000003_00000009_00000000 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2476_UnchainedWordFill_00000003_00000009_00000000 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2494_UnchainedDwordFill_00000003_00000009_00000000 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2464_UnchainedByteMove_00000003_00000009_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2482_UnchainedWordMove_00000003_00000009_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2498_UnchainedDwordMove_00000003_00000009_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2603_UnchainedByteMove_00000003_00000009_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2613_UnchainedWordMove_00000003_00000009_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2621_UnchainedDwordMove_00000003_00000009_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2455_UnchainedByteWrite_00000003_0000000e_00000000 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2473_UnchainedWordWrite_00000003_0000000e_00000000 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2491_UnchainedDwordWrite_00000003_0000000e_00000000 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2459_UnchainedByteFill_00000003_0000000e_00000000 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2477_UnchainedWordFill_00000003_0000000e_00000000 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2495_UnchainedDwordFill_00000003_0000000e_00000000 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2466_UnchainedByteMove_00000003_0000000e_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2484_UnchainedWordMove_00000003_0000000e_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2499_UnchainedDwordMove_00000003_0000000e_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2605_UnchainedByteMove_00000003_0000000e_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2615_UnchainedWordMove_00000003_0000000e_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2622_UnchainedDwordMove_00000003_0000000e_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2456_UnchainedByteWrite_00000003_0000000f_00000000 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2474_UnchainedWordWrite_00000003_0000000f_00000000 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2492_UnchainedDwordWrite_00000003_0000000f_00000000 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2460_UnchainedByteFill_00000003_0000000f_00000000 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2478_UnchainedWordFill_00000003_0000000f_00000000 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2496_UnchainedDwordFill_00000003_0000000f_00000000 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2469_UnchainedByteMove_00000003_0000000f_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2487_UnchainedWordMove_00000003_0000000f_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2500_UnchainedDwordMove_00000003_0000000f_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2608_UnchainedByteMove_00000003_0000000f_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2618_UnchainedWordMove_00000003_0000000f_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2623_UnchainedDwordMove_00000003_0000000f_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2732_Chain4ByteWrite_00000000_00000008 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2782_Chain4WordWrite_00000000_00000008 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2831_Chain4DwordWrite_00000000_00000008 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2744_Chain4ByteFill_00000000_00000008 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2794_Chain4WordFill_00000000_00000008 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2843_Chain4DwordFill_00000000_00000008 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2758_Chain4ByteMove_00000000_00000008_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2807_Chain4WordMove_00000000_00000008_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2855_Chain4DwordMove_00000000_00000008_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2965_Chain4ByteMove_00000000_00000008_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2989_Chain4WordMove_00000000_00000008_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3013_Chain4DwordMove_00000000_00000008_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2733_Chain4ByteWrite_00000000_00000009 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2783_Chain4WordWrite_00000000_00000009 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2832_Chain4DwordWrite_00000000_00000009 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2746_Chain4ByteFill_00000000_00000009 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2795_Chain4WordFill_00000000_00000009 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2844_Chain4DwordFill_00000000_00000009 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2760_Chain4ByteMove_00000000_00000009_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2809_Chain4WordMove_00000000_00000009_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2856_Chain4DwordMove_00000000_00000009_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2967_Chain4ByteMove_00000000_00000009_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2991_Chain4WordMove_00000000_00000009_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3014_Chain4DwordMove_00000000_00000009_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2734_Chain4ByteWrite_00000000_0000000e IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2784_Chain4WordWrite_00000000_0000000e IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2833_Chain4DwordWrite_00000000_0000000e IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2748_Chain4ByteFill_00000000_0000000e IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2797_Chain4WordFill_00000000_0000000e IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2845_Chain4DwordFill_00000000_0000000e IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2762_Chain4ByteMove_00000000_0000000e_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2811_Chain4WordMove_00000000_0000000e_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2857_Chain4DwordMove_00000000_0000000e_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2969_Chain4ByteMove_00000000_0000000e_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2993_Chain4WordMove_00000000_0000000e_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3015_Chain4DwordMove_00000000_0000000e_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2735_Chain4ByteWrite_00000000_0000000f IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2785_Chain4WordWrite_00000000_0000000f IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2834_Chain4DwordWrite_00000000_0000000f IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2749_Chain4ByteFill_00000000_0000000f IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2798_Chain4WordFill_00000000_0000000f IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2846_Chain4DwordFill_00000000_0000000f IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2764_Chain4ByteMove_00000000_0000000f_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2813_Chain4WordMove_00000000_0000000f_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2858_Chain4DwordMove_00000000_0000000f_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2971_Chain4ByteMove_00000000_0000000f_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2995_Chain4WordMove_00000000_0000000f_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3016_Chain4DwordMove_00000000_0000000f_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2736_Chain4ByteWrite_00000000_00000010 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2786_Chain4WordWrite_00000000_00000010 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2835_Chain4DwordWrite_00000000_00000010 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2750_Chain4ByteFill_00000000_00000010 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2799_Chain4WordFill_00000000_00000010 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2847_Chain4DwordFill_00000000_00000010 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2766_Chain4ByteMove_00000000_00000010_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2815_Chain4WordMove_00000000_00000010_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2859_Chain4DwordMove_00000000_00000010_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2973_Chain4ByteMove_00000000_00000010_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2997_Chain4WordMove_00000000_00000010_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3017_Chain4DwordMove_00000000_00000010_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2737_Chain4ByteWrite_00000000_00000011 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2787_Chain4WordWrite_00000000_00000011 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2836_Chain4DwordWrite_00000000_00000011 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2751_Chain4ByteFill_00000000_00000011 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2800_Chain4WordFill_00000000_00000011 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2848_Chain4DwordFill_00000000_00000011 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2768_Chain4ByteMove_00000000_00000011_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2817_Chain4WordMove_00000000_00000011_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2860_Chain4DwordMove_00000000_00000011_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2975_Chain4ByteMove_00000000_00000011_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2999_Chain4WordMove_00000000_00000011_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3018_Chain4DwordMove_00000000_00000011_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2738_Chain4ByteWrite_00000000_00000016 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2788_Chain4WordWrite_00000000_00000016 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2837_Chain4DwordWrite_00000000_00000016 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2752_Chain4ByteFill_00000000_00000016 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2801_Chain4WordFill_00000000_00000016 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2849_Chain4DwordFill_00000000_00000016 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2770_Chain4ByteMove_00000000_00000016_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2819_Chain4WordMove_00000000_00000016_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2861_Chain4DwordMove_00000000_00000016_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2977_Chain4ByteMove_00000000_00000016_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3001_Chain4WordMove_00000000_00000016_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3019_Chain4DwordMove_00000000_00000016_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2739_Chain4ByteWrite_00000000_00000017 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2789_Chain4WordWrite_00000000_00000017 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2838_Chain4DwordWrite_00000000_00000017 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2753_Chain4ByteFill_00000000_00000017 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2802_Chain4WordFill_00000000_00000017 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2850_Chain4DwordFill_00000000_00000017 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2772_Chain4ByteMove_00000000_00000017_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2821_Chain4WordMove_00000000_00000017_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2862_Chain4DwordMove_00000000_00000017_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2979_Chain4ByteMove_00000000_00000017_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3003_Chain4WordMove_00000000_00000017_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3020_Chain4DwordMove_00000000_00000017_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2740_Chain4ByteWrite_00000000_00000018 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2790_Chain4WordWrite_00000000_00000018 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2839_Chain4DwordWrite_00000000_00000018 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2754_Chain4ByteFill_00000000_00000018 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2803_Chain4WordFill_00000000_00000018 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2851_Chain4DwordFill_00000000_00000018 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2774_Chain4ByteMove_00000000_00000018_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2823_Chain4WordMove_00000000_00000018_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2863_Chain4DwordMove_00000000_00000018_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2981_Chain4ByteMove_00000000_00000018_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3005_Chain4WordMove_00000000_00000018_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3021_Chain4DwordMove_00000000_00000018_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2741_Chain4ByteWrite_00000000_00000019 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2791_Chain4WordWrite_00000000_00000019 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2840_Chain4DwordWrite_00000000_00000019 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2755_Chain4ByteFill_00000000_00000019 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2804_Chain4WordFill_00000000_00000019 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2852_Chain4DwordFill_00000000_00000019 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2776_Chain4ByteMove_00000000_00000019_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2825_Chain4WordMove_00000000_00000019_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2864_Chain4DwordMove_00000000_00000019_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2983_Chain4ByteMove_00000000_00000019_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3007_Chain4WordMove_00000000_00000019_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3022_Chain4DwordMove_00000000_00000019_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2742_Chain4ByteWrite_00000000_0000001e IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2792_Chain4WordWrite_00000000_0000001e IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2841_Chain4DwordWrite_00000000_0000001e IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2756_Chain4ByteFill_00000000_0000001e IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2805_Chain4WordFill_00000000_0000001e IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2853_Chain4DwordFill_00000000_0000001e IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2778_Chain4ByteMove_00000000_0000001e_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2827_Chain4WordMove_00000000_0000001e_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2865_Chain4DwordMove_00000000_0000001e_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2985_Chain4ByteMove_00000000_0000001e_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3009_Chain4WordMove_00000000_0000001e_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3023_Chain4DwordMove_00000000_0000001e_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2743_Chain4ByteWrite_00000000_0000001f IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2793_Chain4WordWrite_00000000_0000001f IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2842_Chain4DwordWrite_00000000_0000001f IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2757_Chain4ByteFill_00000000_0000001f IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2806_Chain4WordFill_00000000_0000001f IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2854_Chain4DwordFill_00000000_0000001f IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2780_Chain4ByteMove_00000000_0000001f_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2829_Chain4WordMove_00000000_0000001f_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2866_Chain4DwordMove_00000000_0000001f_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2987_Chain4ByteMove_00000000_0000001f_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3011_Chain4WordMove_00000000_0000001f_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3024_Chain4DwordMove_00000000_0000001f_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2867_Chain4ByteWrite_00000001_00000000 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2871_Chain4WordWrite_00000001_00000000 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2874_Chain4DwordWrite_00000001_00000000 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2868_Chain4ByteFill_00000001_00000000 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2872_Chain4WordFill_00000001_00000000 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2875_Chain4DwordFill_00000001_00000000 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2869_Chain4ByteMove_00000001_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2873_Chain4WordMove_00000001_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2876_Chain4DwordMove_00000001_00000000_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3025_Chain4ByteMove_00000001_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3027_Chain4WordMove_00000001_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3028_Chain4DwordMove_00000001_00000000_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2877_Chain4ByteWrite_00000002_00000008 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2893_Chain4WordWrite_00000002_00000008 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2909_Chain4DwordWrite_00000002_00000008 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2881_Chain4ByteFill_00000002_00000008 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2897_Chain4WordFill_00000002_00000008 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2913_Chain4DwordFill_00000002_00000008 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2885_Chain4ByteMove_00000002_00000008_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2901_Chain4WordMove_00000002_00000008_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2917_Chain4DwordMove_00000002_00000008_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3029_Chain4ByteMove_00000002_00000008_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3037_Chain4WordMove_00000002_00000008_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3045_Chain4DwordMove_00000002_00000008_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2878_Chain4ByteWrite_00000002_00000009 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2894_Chain4WordWrite_00000002_00000009 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2910_Chain4DwordWrite_00000002_00000009 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2882_Chain4ByteFill_00000002_00000009 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2898_Chain4WordFill_00000002_00000009 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2914_Chain4DwordFill_00000002_00000009 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2887_Chain4ByteMove_00000002_00000009_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2903_Chain4WordMove_00000002_00000009_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2918_Chain4DwordMove_00000002_00000009_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3031_Chain4ByteMove_00000002_00000009_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3039_Chain4WordMove_00000002_00000009_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3046_Chain4DwordMove_00000002_00000009_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2879_Chain4ByteWrite_00000002_0000000e IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2895_Chain4WordWrite_00000002_0000000e IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2911_Chain4DwordWrite_00000002_0000000e IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2883_Chain4ByteFill_00000002_0000000e IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2899_Chain4WordFill_00000002_0000000e IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2915_Chain4DwordFill_00000002_0000000e IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2889_Chain4ByteMove_00000002_0000000e_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2905_Chain4WordMove_00000002_0000000e_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2919_Chain4DwordMove_00000002_0000000e_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3033_Chain4ByteMove_00000002_0000000e_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3041_Chain4WordMove_00000002_0000000e_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3047_Chain4DwordMove_00000002_0000000e_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2880_Chain4ByteWrite_00000002_0000000f IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2896_Chain4WordWrite_00000002_0000000f IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2912_Chain4DwordWrite_00000002_0000000f IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2884_Chain4ByteFill_00000002_0000000f IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2900_Chain4WordFill_00000002_0000000f IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2916_Chain4DwordFill_00000002_0000000f IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2891_Chain4ByteMove_00000002_0000000f_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2907_Chain4WordMove_00000002_0000000f_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2920_Chain4DwordMove_00000002_0000000f_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3035_Chain4ByteMove_00000002_0000000f_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3043_Chain4WordMove_00000002_0000000f_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3048_Chain4DwordMove_00000002_0000000f_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2921_Chain4ByteWrite_00000003_00000008 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2937_Chain4WordWrite_00000003_00000008 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2953_Chain4DwordWrite_00000003_00000008 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2925_Chain4ByteFill_00000003_00000008 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2941_Chain4WordFill_00000003_00000008 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2957_Chain4DwordFill_00000003_00000008 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2929_Chain4ByteMove_00000003_00000008_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2945_Chain4WordMove_00000003_00000008_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2961_Chain4DwordMove_00000003_00000008_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3049_Chain4ByteMove_00000003_00000008_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3057_Chain4WordMove_00000003_00000008_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3065_Chain4DwordMove_00000003_00000008_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2922_Chain4ByteWrite_00000003_00000009 IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2938_Chain4WordWrite_00000003_00000009 IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2954_Chain4DwordWrite_00000003_00000009 IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2926_Chain4ByteFill_00000003_00000009 IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2942_Chain4WordFill_00000003_00000009 IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2958_Chain4DwordFill_00000003_00000009 IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2931_Chain4ByteMove_00000003_00000009_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2947_Chain4WordMove_00000003_00000009_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2962_Chain4DwordMove_00000003_00000009_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3051_Chain4ByteMove_00000003_00000009_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3059_Chain4WordMove_00000003_00000009_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3066_Chain4DwordMove_00000003_00000009_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2923_Chain4ByteWrite_00000003_0000000e IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2939_Chain4WordWrite_00000003_0000000e IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2955_Chain4DwordWrite_00000003_0000000e IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2927_Chain4ByteFill_00000003_0000000e IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2943_Chain4WordFill_00000003_0000000e IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2959_Chain4DwordFill_00000003_0000000e IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2933_Chain4ByteMove_00000003_0000000e_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2949_Chain4WordMove_00000003_0000000e_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2963_Chain4DwordMove_00000003_0000000e_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3053_Chain4ByteMove_00000003_0000000e_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3061_Chain4WordMove_00000003_0000000e_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3067_Chain4DwordMove_00000003_0000000e_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2924_Chain4ByteWrite_00000003_0000000f IPT2(IU32, eaOff, IU8, eaVal); +extern void S_2940_Chain4WordWrite_00000003_0000000f IPT2(IU32, eaOff, IU16, eaVal); +extern void S_2956_Chain4DwordWrite_00000003_0000000f IPT2(IU32, eaOff, IU32, eaVal); +extern void S_2928_Chain4ByteFill_00000003_0000000f IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void S_2944_Chain4WordFill_00000003_0000000f IPT3(IU32, eaOff, IU16, eaVal, IU32, count); +extern void S_2960_Chain4DwordFill_00000003_0000000f IPT3(IU32, eaOff, IU32, eaVal, IU32, count); +extern void S_2935_Chain4ByteMove_00000003_0000000f_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2951_Chain4WordMove_00000003_0000000f_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_2964_Chain4DwordMove_00000003_0000000f_00000000 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3055_Chain4ByteMove_00000003_0000000f_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3063_Chain4WordMove_00000003_0000000f_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void S_3068_Chain4DwordMove_00000003_0000000f_00000001 IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); + + +/*========= Mark Functions ============ */ + +extern S_2126_SimpleMark IPT0(); +extern S_2127_CGAMarkByte IPT1(IU32, eaOff); +extern S_2128_CGAMarkWord IPT1(IU32, eaOff); +extern S_2129_CGAMarkDword IPT1(IU32, eaOff); +extern S_2130_CGAMarkString IPT2(IU32, eaOff, IU32, count); +extern S_2131_UnchainedMarkByte IPT1(IU32, eaOff); +extern S_2132_UnchainedMarkWord IPT1(IU32, eaOff); +extern S_2133_UnchainedMarkDword IPT1(IU32, eaOff); +extern S_2134_UnchainedMarkString IPT2(IU32, eaOff, IU32, count); +extern S_2135_Chain4MarkByte IPT1(IU32, eaOff); +extern S_2136_Chain4MarkWord IPT1(IU32, eaOff); +extern S_2137_Chain4MarkDword IPT1(IU32, eaOff); +extern S_2138_Chain4MarkString IPT2(IU32, eaOff, IU32, count); +extern S_2135_Chain4MarkByte IPT1(IU32, eaOff); +extern S_2136_Chain4MarkWord IPT1(IU32, eaOff); +extern S_2137_Chain4MarkDword IPT1(IU32, eaOff); +extern S_2138_Chain4MarkString IPT2(IU32, eaOff, IU32, count); + + +/*========= Read Functions ============ */ + +extern IU32 S_2115_SimpleByteRead IPT1(IU32, eaOff); +extern IU32 S_2116_SimpleWordRead IPT1(IU32, eaOff); +extern IU32 S_2117_SimpleDwordRead IPT1(IU32, eaOff); +extern void S_2118_SimpleStringRead IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern void S_2118_SimpleStringRead IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern IU32 S_2111_DisabledRAMByteRead IPT1(IU32, eaOff); +extern IU32 S_2112_DisabledRAMWordRead IPT1(IU32, eaOff); +extern IU32 S_2113_DisabledRAMDwordRead IPT1(IU32, eaOff); +extern void S_2114_DisabledRAMStringReadFwd IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern void S_2125_DisabledRAMStringReadBwd IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern IU32 S_2095_RdMode0UnchainedByteRead IPT1(IU32, eaOff); +extern IU32 S_2096_RdMode0UnchainedWordRead IPT1(IU32, eaOff); +extern IU32 S_2097_RdMode0UnchainedDwordRead IPT1(IU32, eaOff); +extern void S_2098_RdMode0UnchainedStringReadFwd IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern void S_2121_RdMode0UnchainedStringReadBwd IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern IU32 S_2107_RdMode1UnchainedByteRead IPT1(IU32, eaOff); +extern IU32 S_2108_RdMode1UnchainedWordRead IPT1(IU32, eaOff); +extern IU32 S_2109_RdMode1UnchainedDwordRead IPT1(IU32, eaOff); +extern void S_2110_RdMode1UnchainedStringReadFwd IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern void S_2124_RdMode1UnchainedStringReadBwd IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern IU32 S_2087_RdMode0Chain2ByteRead IPT1(IU32, eaOff); +extern IU32 S_2088_RdMode0Chain2WordRead IPT1(IU32, eaOff); +extern IU32 S_2089_RdMode0Chain2DwordRead IPT1(IU32, eaOff); +extern void S_2090_RdMode0Chain2StringReadFwd IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern void S_2119_RdMode0Chain2StringReadBwd IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern IU32 S_2099_RdMode1Chain2ByteRead IPT1(IU32, eaOff); +extern IU32 S_2100_RdMode1Chain2WordRead IPT1(IU32, eaOff); +extern IU32 S_2101_RdMode1Chain2DwordRead IPT1(IU32, eaOff); +extern void S_2102_RdMode1Chain2StringReadFwd IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern void S_2122_RdMode1Chain2StringReadBwd IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern IU32 S_2091_RdMode0Chain4ByteRead IPT1(IU32, eaOff); +extern IU32 S_2092_RdMode0Chain4WordRead IPT1(IU32, eaOff); +extern IU32 S_2093_RdMode0Chain4DwordRead IPT1(IU32, eaOff); +extern void S_2094_RdMode0Chain4StringReadFwd IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern void S_2120_RdMode0Chain4StringReadBwd IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern IU32 S_2103_RdMode1Chain4ByteRead IPT1(IU32, eaOff); +extern IU32 S_2104_RdMode1Chain4WordRead IPT1(IU32, eaOff); +extern IU32 S_2105_RdMode1Chain4DwordRead IPT1(IU32, eaOff); +extern void S_2106_RdMode1Chain4StringReadFwd IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern void S_2123_RdMode1Chain4StringReadBwd IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +extern EVID_WRT_POINTERS simple_evid; +extern EVID_WRT_POINTERS gricvid_evid; +extern EVID_WRT_POINTERS dith_evid[]; +extern EVID_WRT_POINTERS chain2_evid[]; +extern EVID_WRT_POINTERS unchained_evid[]; +extern EVID_WRT_POINTERS chain4_evid[]; +extern EVID_READ_POINTERS simple_read_evid; +extern EVID_READ_POINTERS ram_dsbld_read_evid; +extern EVID_READ_POINTERS read_mode0_evid[]; +extern EVID_READ_POINTERS read_mode1_evid[]; +extern EVID_MARK_POINTERS simple_mark_evid; +extern EVID_MARK_POINTERS cga_mark_evid; +extern EVID_MARK_POINTERS unchained_mark_evid; +extern EVID_MARK_POINTERS chain4_mark_evid; diff --git a/private/mvdm/softpc.new/base/cvidc/evidgen.h b/private/mvdm/softpc.new/base/cvidc/evidgen.h new file mode 100644 index 000000000..8507aabad --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/evidgen.h @@ -0,0 +1,176 @@ +/*[ + * Generated File: evidgen.h + * +]*/ + + +struct VideoVector { + IU32 (*GetVideolatches) IPT0(); + IU8 * (*GetVideorplane) IPT0(); + IU8 * (*GetVideowplane) IPT0(); + IU8 * (*GetVideoscratch) IPT0(); + IU32 (*GetVideosr_masked_val) IPT0(); + IU32 (*GetVideosr_nmask) IPT0(); + IU32 (*GetVideodata_and_mask) IPT0(); + IU32 (*GetVideodata_xor_mask) IPT0(); + IU32 (*GetVideolatch_xor_mask) IPT0(); + IU32 (*GetVideobit_prot_mask) IPT0(); + IU32 (*GetVideoplane_enable) IPT0(); + IU32 (*GetVideoplane_enable_mask) IPT0(); + IHP (*GetVideosr_lookup) IPT0(); + IHP (*GetVideofwd_str_read_addr) IPT0(); + IHP (*GetVideobwd_str_read_addr) IPT0(); + IU32 (*GetVideodirty_total) IPT0(); + IU32 (*GetVideodirty_low) IPT0(); + IU32 (*GetVideodirty_high) IPT0(); + IU8 * (*GetVideovideo_copy) IPT0(); + IHP (*GetVideomark_byte) IPT0(); + IHP (*GetVideomark_word) IPT0(); + IHP (*GetVideomark_string) IPT0(); + IU32 (*GetVideoread_shift_count) IPT0(); + IU32 (*GetVideoread_mapped_plane) IPT0(); + IU32 (*GetVideocolour_comp) IPT0(); + IU32 (*GetVideodont_care) IPT0(); + IU32 (*GetVideov7_bank_vid_copy_off) IPT0(); + IU8 * (*GetVideoscreen_ptr) IPT0(); + IU32 (*GetVideorotate) IPT0(); + IU32 (*GetVideocalc_data_xor) IPT0(); + IU32 (*GetVideocalc_latch_xor) IPT0(); + IHP (*GetVideoread_byte_addr) IPT0(); + IU32 (*GetVideov7_fg_latches) IPT0(); + IHP (*GetVideoGC_regs) IPT0(); + IU8 (*GetVideolast_GC_index) IPT0(); + IU8 (*GetVideodither) IPT0(); + IU8 (*GetVideowrmode) IPT0(); + IU8 (*GetVideochain) IPT0(); + IU8 (*GetVideowrstate) IPT0(); + void (*SetVideolatches) IPT1(IU32, value); + void (*SetVideorplane) IPT1(IU8 *, value); + void (*SetVideowplane) IPT1(IU8 *, value); + void (*SetVideoscratch) IPT1(IU8 *, value); + void (*SetVideosr_masked_val) IPT1(IU32, value); + void (*SetVideosr_nmask) IPT1(IU32, value); + void (*SetVideodata_and_mask) IPT1(IU32, value); + void (*SetVideodata_xor_mask) IPT1(IU32, value); + void (*SetVideolatch_xor_mask) IPT1(IU32, value); + void (*SetVideobit_prot_mask) IPT1(IU32, value); + void (*SetVideoplane_enable) IPT1(IU32, value); + void (*SetVideoplane_enable_mask) IPT1(IU32, value); + void (*SetVideosr_lookup) IPT1(IHP, value); + void (*SetVideofwd_str_read_addr) IPT1(IHP, value); + void (*SetVideobwd_str_read_addr) IPT1(IHP, value); + void (*SetVideodirty_total) IPT1(IU32, value); + void (*SetVideodirty_low) IPT1(IU32, value); + void (*SetVideodirty_high) IPT1(IU32, value); + void (*SetVideovideo_copy) IPT1(IU8 *, value); + void (*SetVideomark_byte) IPT1(IHP, value); + void (*SetVideomark_word) IPT1(IHP, value); + void (*SetVideomark_string) IPT1(IHP, value); + void (*SetVideoread_shift_count) IPT1(IU32, value); + void (*SetVideoread_mapped_plane) IPT1(IU32, value); + void (*SetVideocolour_comp) IPT1(IU32, value); + void (*SetVideodont_care) IPT1(IU32, value); + void (*SetVideov7_bank_vid_copy_off) IPT1(IU32, value); + void (*SetVideoscreen_ptr) IPT1(IU8 *, value); + void (*SetVideorotate) IPT1(IU32, value); + void (*SetVideocalc_data_xor) IPT1(IU32, value); + void (*SetVideocalc_latch_xor) IPT1(IU32, value); + void (*SetVideoread_byte_addr) IPT1(IHP, value); + void (*SetVideov7_fg_latches) IPT1(IU32, value); + void (*SetVideoGC_regs) IPT1(IHP, value); + void (*SetVideolast_GC_index) IPT1(IU8, value); + void (*SetVideodither) IPT1(IU8, value); + void (*SetVideowrmode) IPT1(IU8, value); + void (*SetVideochain) IPT1(IU8, value); + void (*SetVideowrstate) IPT1(IU8, value); + void (*setWritePointers) IPT0(); + void (*setReadPointers) IPT1(IUH, readset); + void (*setMarkPointers) IPT1(IUH, markset); +}; + +extern struct VideoVector Video; + +#define getVideolatches() (*(Video.GetVideolatches))() +#define getVideorplane() (*(Video.GetVideorplane))() +#define getVideowplane() (*(Video.GetVideowplane))() +#define getVideoscratch() (*(Video.GetVideoscratch))() +#define getVideosr_masked_val() (*(Video.GetVideosr_masked_val))() +#define getVideosr_nmask() (*(Video.GetVideosr_nmask))() +#define getVideodata_and_mask() (*(Video.GetVideodata_and_mask))() +#define getVideodata_xor_mask() (*(Video.GetVideodata_xor_mask))() +#define getVideolatch_xor_mask() (*(Video.GetVideolatch_xor_mask))() +#define getVideobit_prot_mask() (*(Video.GetVideobit_prot_mask))() +#define getVideoplane_enable() (*(Video.GetVideoplane_enable))() +#define getVideoplane_enable_mask() (*(Video.GetVideoplane_enable_mask))() +#define getVideosr_lookup() (*(Video.GetVideosr_lookup))() +#define getVideofwd_str_read_addr() (*(Video.GetVideofwd_str_read_addr))() +#define getVideobwd_str_read_addr() (*(Video.GetVideobwd_str_read_addr))() +#define getVideodirty_total() (*(Video.GetVideodirty_total))() +#define getVideodirty_low() (*(Video.GetVideodirty_low))() +#define getVideodirty_high() (*(Video.GetVideodirty_high))() +#define getVideovideo_copy() (*(Video.GetVideovideo_copy))() +#define getVideomark_byte() (*(Video.GetVideomark_byte))() +#define getVideomark_word() (*(Video.GetVideomark_word))() +#define getVideomark_string() (*(Video.GetVideomark_string))() +#define getVideoread_shift_count() (*(Video.GetVideoread_shift_count))() +#define getVideoread_mapped_plane() (*(Video.GetVideoread_mapped_plane))() +#define getVideocolour_comp() (*(Video.GetVideocolour_comp))() +#define getVideodont_care() (*(Video.GetVideodont_care))() +#define getVideov7_bank_vid_copy_off() (*(Video.GetVideov7_bank_vid_copy_off))() +#define getVideoscreen_ptr() (*(Video.GetVideoscreen_ptr))() +#define getVideorotate() (*(Video.GetVideorotate))() +#define getVideocalc_data_xor() (*(Video.GetVideocalc_data_xor))() +#define getVideocalc_latch_xor() (*(Video.GetVideocalc_latch_xor))() +#define getVideoread_byte_addr() (*(Video.GetVideoread_byte_addr))() +#define getVideov7_fg_latches() (*(Video.GetVideov7_fg_latches))() +#define getVideoGC_regs() (*(Video.GetVideoGC_regs))() +#define getVideolast_GC_index() (*(Video.GetVideolast_GC_index))() +#define getVideodither() (*(Video.GetVideodither))() +#define getVideowrmode() (*(Video.GetVideowrmode))() +#define getVideochain() (*(Video.GetVideochain))() +#define getVideowrstate() (*(Video.GetVideowrstate))() +#define setVideolatches(value) (*(Video.SetVideolatches))(value) +#define setVideorplane(value) (*(Video.SetVideorplane))(value) +#define setVideowplane(value) (*(Video.SetVideowplane))(value) +#define setVideoscratch(value) (*(Video.SetVideoscratch))(value) +#define setVideosr_masked_val(value) (*(Video.SetVideosr_masked_val))(value) +#define setVideosr_nmask(value) (*(Video.SetVideosr_nmask))(value) +#define setVideodata_and_mask(value) (*(Video.SetVideodata_and_mask))(value) +#define setVideodata_xor_mask(value) (*(Video.SetVideodata_xor_mask))(value) +#define setVideolatch_xor_mask(value) (*(Video.SetVideolatch_xor_mask))(value) +#define setVideobit_prot_mask(value) (*(Video.SetVideobit_prot_mask))(value) +#define setVideoplane_enable(value) (*(Video.SetVideoplane_enable))(value) +#define setVideoplane_enable_mask(value) (*(Video.SetVideoplane_enable_mask))(value) +#define setVideosr_lookup(value) (*(Video.SetVideosr_lookup))(value) +#define setVideofwd_str_read_addr(value) (*(Video.SetVideofwd_str_read_addr))(value) +#define setVideobwd_str_read_addr(value) (*(Video.SetVideobwd_str_read_addr))(value) +#define setVideodirty_total(value) (*(Video.SetVideodirty_total))(value) +#define setVideodirty_low(value) (*(Video.SetVideodirty_low))(value) +#define setVideodirty_high(value) (*(Video.SetVideodirty_high))(value) +#define setVideovideo_copy(value) (*(Video.SetVideovideo_copy))(value) +#define setVideomark_byte(value) (*(Video.SetVideomark_byte))(value) +#define setVideomark_word(value) (*(Video.SetVideomark_word))(value) +#define setVideomark_string(value) (*(Video.SetVideomark_string))(value) +#define setVideoread_shift_count(value) (*(Video.SetVideoread_shift_count))(value) +#define setVideoread_mapped_plane(value) (*(Video.SetVideoread_mapped_plane))(value) +#define setVideocolour_comp(value) (*(Video.SetVideocolour_comp))(value) +#define setVideodont_care(value) (*(Video.SetVideodont_care))(value) +#define setVideov7_bank_vid_copy_off(value) (*(Video.SetVideov7_bank_vid_copy_off))(value) +#define setVideoscreen_ptr(value) (*(Video.SetVideoscreen_ptr))(value) +#define setVideorotate(value) (*(Video.SetVideorotate))(value) +#define setVideocalc_data_xor(value) (*(Video.SetVideocalc_data_xor))(value) +#define setVideocalc_latch_xor(value) (*(Video.SetVideocalc_latch_xor))(value) +#define setVideoread_byte_addr(value) (*(Video.SetVideoread_byte_addr))(value) +#define setVideov7_fg_latches(value) (*(Video.SetVideov7_fg_latches))(value) +#define setVideoGC_regs(value) (*(Video.SetVideoGC_regs))(value) +#define setVideolast_GC_index(value) (*(Video.SetVideolast_GC_index))(value) +#define setVideodither(value) (*(Video.SetVideodither))(value) +#define setVideowrmode(value) (*(Video.SetVideowrmode))(value) +#define setVideochain(value) (*(Video.SetVideochain))(value) +#define setVideowrstate(value) (*(Video.SetVideowrstate))(value) +#define SetWritePointers() (*(Video.setWritePointers))() +#define SetReadPointers(readset) (*(Video.setReadPointers))(readset) +#define SetMarkPointers(markset) (*(Video.setMarkPointers))(markset) + +/*======================================== END ========================================*/ + diff --git a/private/mvdm/softpc.new/base/cvidc/flags_c.h b/private/mvdm/softpc.new/base/cvidc/flags_c.h new file mode 100644 index 000000000..a94937a09 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/flags_c.h @@ -0,0 +1,19 @@ +#ifndef _Flags_c_h +#define _Flags_c_h +#define MSBB (128) +#define MSBW (32768) +#define MSBD (-2147483648) +#define MSBM1B (127) +#define MSBM1W (32767) +#define MSBM1D (2147483647) +#define ALLB0B (254) +#define ALLB0W (65534) +#define ALLB0D (-2) +#define MSB_OFFB (7) +#define MSB_OFFW (15) +#define MSB_OFFD (31) +#define FtZeroFlagSettings (68) +#define BYTE_SHIFT (24) +#define WORD_SHIFT (16) +#define DOUBLE_SHIFT (0) +#endif /* ! _Flags_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/flagtb_c.h b/private/mvdm/softpc.new/base/cvidc/flagtb_c.h new file mode 100644 index 000000000..1dfa4c37b --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/flagtb_c.h @@ -0,0 +1,14 @@ +#ifndef _FlagTb_c_h +#define _FlagTb_c_h +#define NO_PARAM (0) +#define LogCF (0) +#define ZeroPF (1) +#define LogAF (0) +#define ZeroZF (1) +#define ShrSF (0) +#define LogOF (0) +#define ZeroAllF (68) +#define ZeroBE (1) +#define ZeroL (0) +#define ZeroLE (1) +#endif /* ! _FlagTb_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/fm_c.h b/private/mvdm/softpc.new/base/cvidc/fm_c.h new file mode 100644 index 000000000..cd339ea41 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/fm_c.h @@ -0,0 +1,62 @@ +#ifndef _Fm_c_h +#define _Fm_c_h +#define epcNBits (10) +#define epcMask (1023) +#define DataBufferSize (4000) +#define ConstraintBitMapNULL ((struct ConstraintBitMapREC*)0) +#define CleanedNULL ((struct CleanedREC*)0) +#define EntryPointCacheNULL ((struct EntryPointCacheREC*)0) +#define MAX_IHOOK_DEPTH (32) +struct ConstraintBitMapREC +{ + IU32 first32; + IU16 last16; + IU16 CodeSegSelector; +}; +struct CleanedREC +{ + IU32 EIP; + IU32 nextEIP; + struct ConstraintBitMapREC constraints; + IU8 flagsType; +}; +struct EntryPointCacheREC +{ + IU32 eip; + IU32*hostCode; +}; +struct FragmentInfoREC +{ + IU32 *hostAddress; + struct EntryPointCacheREC *copierUniv; + struct EntryPointCacheREC *lastSetCopierUniv; + struct ConstraintBitMapREC constraints; + IU32 eip; + IBOOL setFt; + IU8 control; + IU8 intelLength; + IUH flagsType; + IU8 *copierCleanups; +}; +struct BLOCK_TO_COMPILE +{ + struct ConstraintBitMapREC constraints; + IU32 linearAddress; + IU32 eip; + struct EntryPointCacheREC *univ; + IU8 *intelPtr; + IU16 nanoBlockNr; + IU16 infoRecNr; + IBOOL univValid; + IU8 intelLength; + IU8 isEntryPoint; + IU8 execCount; +}; +struct IretHookStackREC +{ + IU16 cs; + IU32 eip; + void *hsp; + IU16 line; +}; +#endif /* ! _Fm_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/fmevid_c.h b/private/mvdm/softpc.new/base/cvidc/fmevid_c.h new file mode 100644 index 000000000..2034b5579 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/fmevid_c.h @@ -0,0 +1,3 @@ +#ifndef _FmEvid_c_h +#define _FmEvid_c_h +#endif /* ! _FmEvid_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/fpu_c.h b/private/mvdm/softpc.new/base/cvidc/fpu_c.h new file mode 100644 index 000000000..1cad0577a --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/fpu_c.h @@ -0,0 +1,168 @@ +#ifndef _Fpu_c_h +#define _Fpu_c_h +#define HOST_BIAS (1023) +#define MIN_EXP (-1023) +#define MAX_EXP (1024) +#define STACKENTRYSIZE (16) +#define STACKSIZE (128) +#define STACKWRAP (-129) +#define TAG_NEGATIVE_BIT (0) +#define TAG_ZERO_BIT (1) +#define TAG_INFINITY_BIT (2) +#define TAG_DENORMAL_BIT (3) +#define TAG_NAN_BIT (4) +#define TAG_SNAN_BIT (5) +#define TAG_UNSUPPORTED_BIT (6) +#define TAG_EMPTY_BIT (7) +#define TAG_FSCALE_BIT (8) +#define TAG_BCD_BIT (9) +#define TAG_R80_BIT (10) +#define TAG_UNEVAL_BIT_E (9) +#define TAG_UNEVAL_BIT_S (10) +#define TAG_REAL_POSITIVE_MASK (0) +#define TAG_NEGATIVE_MASK (1) +#define TAG_ZERO_MASK (2) +#define TAG_INFINITY_MASK (4) +#define TAG_DENORMAL_MASK (8) +#define TAG_NAN_MASK (16) +#define TAG_SNAN_MASK (32) +#define TAG_UNSUPPORTED_MASK (64) +#define TAG_EMPTY_MASK (128) +#define TAG_FSCALE_MASK (256) +#define TAG_BCD_MASK (512) +#define TAG_R80_MASK (1024) +#define TAG_UNEVAL_MASK (1536) +#define ST_IE_BIT (0) +#define ST_DE_BIT (1) +#define ST_ZE_BIT (2) +#define ST_OE_BIT (3) +#define ST_UE_BIT (4) +#define ST_PE_BIT (5) +#define ST_SF_BIT (6) +#define ST_ES_BIT (7) +#define ST_IE_MASK (1) +#define ST_DE_MASK (2) +#define ST_ZE_MASK (4) +#define ST_OE_MASK (8) +#define ST_UE_MASK (16) +#define ST_PE_MASK (32) +#define ST_SF_MASK (64) +#define ST_ES_MASK (128) +#define ST_C0_BIT (8) +#define ST_C1_BIT (9) +#define ST_C2_BIT (10) +#define ST_C3_BIT (14) +#define ST_C0_MASK (65279) +#define ST_C1_MASK (65023) +#define ST_C2_MASK (64511) +#define ST_C3_MASK (49151) +#define ST_B_BIT (15) +#define ST_ST_BIT_S (13) +#define ST_ST_BIT_E (11) +#define ST_B_MASK (61439) +#define ST_ST_MASK (51199) +#define TW_TAG_0_S (1) +#define TW_TAG_0_E (0) +#define TW_TAG_LENGTH (2) +#define TW_TAG_0_MASK (3) +#define TW_TAG_VALID (0) +#define TW_TAG_ZERO (1) +#define TW_TAG_INVALID (2) +#define TW_TAG_EMPTY (3) +#define CW_IM_BIT (0) +#define CW_DM_BIT (1) +#define CW_ZM_BIT (2) +#define CW_OM_BIT (3) +#define CW_UM_BIT (4) +#define CW_PM_BIT (5) +#define CW_PC_BIT_E (8) +#define CW_PC_BIT_S (9) +#define CW_RC_BIT_E (10) +#define CW_RC_BIT_S (11) +#define CW_IC_BIT (12) +#define CW_IM_MASK (1) +#define CW_DM_MASK (2) +#define CW_ZM_MASK (4) +#define CW_OM_MASK (8) +#define CW_UM_MASK (16) +#define CW_PM_MASK (32) +#define CW_PC_MASK (768) +#define CW_RC_MASK (3072) +#define CW_IC_MASK (4096) +#define ROUND_NEAREST (0) +#define ROUND_NEG_INFINITY (1) +#define ROUND_POS_INFINITY (2) +#define ROUND_TO_ZERO (3) +#define INTEL_I16_SIGN_BIT (15) +#define INTEL_I16_SIGN_MASK (32768) +#define INTEL_I32_SIGN_BIT (31) +#define INTEL_I32_SIGN_MASK (-2147483648) +#define INTEL_I64_SIGN_BIT (31) +#define INTEL_BCD_SIGN_BIT (15) +#define INTEL_SR_SIGN_BIT (31) +#define INTEL_SR_SIGN_MASK (-2147483648) +#define INTEL_SR_EXP_S (30) +#define INTEL_SR_EXP_E (23) +#define INTEL_SR_EXP_MASK (2139095040) +#define INTEL_SR_EXP_MAX (255) +#define INTEL_SR_MANT_S (22) +#define INTEL_SR_MANT_E (0) +#define INTEL_SR_MANT_MASK (8388607) +#define INTEL_LR_SIGN_BIT (31) +#define INTEL_LR_SIGN_MASK (-2147483648) +#define INTEL_LR_EXP_S (30) +#define INTEL_LR_EXP_E (20) +#define INTEL_LR_EXP_MASK (2146435072) +#define INTEL_LR_EXP_MAX (2047) +#define INTEL_LR_MANT_S (19) +#define INTEL_LR_MANT_E (0) +#define INTEL_LR_MANT_MASK (1048575) +#define INTEL_TR_SIGN_BIT (15) +#define INTEL_TR_SIGN_MASK (32768) +#define INTEL_TR_EXP_S (14) +#define INTEL_TR_EXP_E (0) +#define INTEL_TR_EXP_MASK (32767) +#define INTEL_COMP_NC (17664) +#define INTEL_COMP_GT (0) +#define INTEL_COMP_LT_BIT (8) +#define INTEL_COMP_EQ_BIT (14) +#define INTEL_COMP_LT (256) +#define INTEL_COMP_EQ (16384) +#define FPTEMP_INDEX (16) +#define C3C2C0MASK (47359) +#define FCLEX_MASK (32512) +#define COMP_LT (0) +#define COMP_GT (1) +#define COMP_EQ (2) +#define FPBASE_OFFSET (8) +#define CONST_ONE_OFFSET (0) +#define CONST_LOG2_E_OFFSET (1) +#define CONST_LOG2_10_OFFSET (2) +#define CONST_LOG10_2_OFFSET (3) +#define CONST_LOGE_2_OFFSET (4) +#define CONST_PI_OFFSET (5) +#define CONST_ZERO_OFFSET (6) +#define CONST_TWO_OFFSET (7) +#define CONST_MINUS_ONE_OFFSET (8) +struct FPSTACKENTRY +{ + double fpvalue; + IUH padding; + IUH tagvalue; +}; +struct FP_I64 +{ + IU32 word1; + IU32 word2; +}; +struct FP_R64 +{ + IU32 word1; + IU32 word2; +}; +struct FP_R80 +{ + struct FP_I64 mantissa; + IU16 exponent; +}; +#endif /* ! _Fpu_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/frag_c.h b/private/mvdm/softpc.new/base/cvidc/frag_c.h new file mode 100644 index 000000000..8b0ab745c --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/frag_c.h @@ -0,0 +1,415 @@ +#ifndef _Frag_c_h +#define _Frag_c_h +#define CR0_VALID_BITS (-536543169) +#define EFLAGS_AC (18) +#define EFLAGS_VM (17) +#define EFLAGS_RF (16) +#define EFLAGS_NT (14) +#define EFLAGS_OF (11) +#define EFLAGS_DF (10) +#define EFLAGS_IEF (9) +#define EFLAGS_TF (8) +#define EFLAGS_SF (7) +#define EFLAGS_ZF (6) +#define EFLAGS_AF (4) +#define EFLAGS_PF (2) +#define EFLAGS_CF (0) +#define ARITH_FLAGS_MASK (2261) +#define BaseEFLAGS (2) +#define PermanentEFLAGSbits (-491478) +#define MAIN_CPU (0) +#define NANO_CPU (1) +#define AtNextInstruction (1) +#define AtThisInstruction (0) +#define FtLog (1) +#define FtAdd (4) +#define FtSub (7) +#define FtInc (10) +#define FtDec (13) +#define FtAdc (16) +#define FtSbb (19) +#define FtSar (22) +#define FtShr (25) +#define FtShl (28) +#define FtShd (31) +enum SegmentRegister +{ + SEG_ES = 0, + SEG_CS = 1, + SEG_SS = 2, + SEG_DS = 3, + SEG_FS = 4, + SEG_GS = 5 +}; +enum SpecialRegister +{ + CREG_0 = 0, + CREG_1 = 1, + CREG_2 = 2, + CREG_3 = 3, + CREG_4 = 4, + CREG_5 = 5, + CREG_6 = 6, + CREG_7 = 7, + DREG_0 = 8, + DREG_1 = 9, + DREG_2 = 10, + DREG_3 = 11, + DREG_4 = 12, + DREG_5 = 13, + DREG_6 = 14, + DREG_7 = 15, + TREG_0 = 16, + TREG_1 = 17, + TREG_2 = 18, + TREG_3 = 19, + TREG_4 = 20, + TREG_5 = 21, + TREG_6 = 22, + TREG_7 = 23 +}; +enum FtType +{ + FtZero = 0, + FtLogB = 1, + FtLogW = 2, + FtLogD = 3, + FtAddB = 4, + FtAddW = 5, + FtAddD = 6, + FtSubB = 7, + FtSubW = 8, + FtSubD = 9, + FtIncB = 10, + FtIncW = 11, + FtIncD = 12, + FtDecB = 13, + FtDecW = 14, + FtDecD = 15, + FtAdcB = 16, + FtAdcW = 17, + FtAdcD = 18, + FtSbbB = 19, + FtSbbW = 20, + FtSbbD = 21, + FtSarB = 22, + FtSarW = 23, + FtSarD = 24, + FtShrB = 25, + FtShrW = 26, + FtShrD = 27, + FtShlB = 28, + FtShlW = 29, + FtShlD = 30, + FtPopf = 31, + FtShdW = 32, + FtShdD = 33, + FtZf = 34, + FtCf = 35, + FtCfOf = 36, + FtCfZf = 37, + FtCfOfZf = 38, + FtUnknown = 39 +}; +enum FtSize +{ + FtB = 0, + FtW = 1, + FtD = 2 +}; +enum CondType +{ + COND_O = 0, + COND_NO = 1, + COND_B = 2, + COND_NB = 3, + COND_Z = 4, + COND_NZ = 5, + COND_BE = 6, + COND_NBE = 7, + COND_S = 8, + COND_NS = 9, + COND_P = 10, + COND_NP = 11, + COND_L = 12, + COND_NL = 13, + COND_LE = 14, + COND_NLE = 15 +}; +enum EaShapes +{ + EA_DUMMY_ZERO = 0, + EBX_AL = 1, + DISP = 2, + REG = 3, + REG_DISP = 4, + REG_REG = 5, + REG_REG_DISP = 6, + BASE_SI = 7, + BASE_SI_DISP = 8, + OFFS_REG = 9 +}; +enum CodeShapes +{ + CODE_DUMMY_ZERO = 0, + AAA = 1, + AAD = 2, + AAM = 3, + AAS = 4, + ADC = 5, + ADD = 6, + AND = 7, + ARPL = 8, + BOUND = 9, + BSF = 10, + BSR = 11, + BSWAP = 12, + BT = 13, + BTC = 14, + BTR = 15, + BTS = 16, + CALLN_IMM = 17, + CALLN_VIA = 18, + CALLF_IMM = 19, + CALLF_VIA = 20, + CBW = 21, + CDQ = 22, + CLC = 23, + CLD = 24, + CLI = 25, + CLTS = 26, + CMC = 27, + CMP = 28, + CMPXCHG = 29, + CWD = 30, + CWDE = 31, + DAA = 32, + DAS = 33, + DEC = 34, + DIV = 35, + ENTER = 36, + ENTER0 = 37, + ENTER1 = 38, + F2XM1 = 39, + FABS = 40, + FADD = 41, + FADDP = 42, + FBLD = 43, + FBSTP = 44, + FCHS = 45, + FCOM = 46, + FCOMP = 47, + FCOMPP = 48, + FCOS = 49, + FDECSTP = 50, + FDIV = 51, + FDIVP = 52, + FDIVRP = 53, + FDIVR = 54, + FFREE = 55, + FFREEP = 56, + FINCSTP = 57, + FLD = 58, + FLD1 = 59, + FLDCW = 60, + FLDENV = 61, + FLDL2E = 62, + FLDL2T = 63, + FLDLG2 = 64, + FLDLN2 = 65, + FLDPI = 66, + FLDZ = 67, + FMUL = 68, + FMULP = 69, + FNCLEX = 70, + FNINIT = 71, + FNOP = 72, + FNSAVE = 73, + FNSTCW = 74, + FNSTENV = 75, + FNSTSW = 76, + FPATAN = 77, + FPREM = 78, + FPREM1 = 79, + FPTAN = 80, + FRNDINT = 81, + FRSTOR = 82, + FSCALE = 83, + FSIN = 84, + FSINCOS = 85, + FSQRT = 86, + FST = 87, + FSTP = 88, + FSUB = 89, + FSUBP = 90, + FSUBRP = 91, + FSUBR = 92, + FTST = 93, + FUCOM = 94, + FUCOMP = 95, + FUCOMPP = 96, + FXAM = 97, + FXCH = 98, + FXTRACT = 99, + FYL2X = 100, + FYL2XP1 = 101, + HLT = 102, + IDIV = 103, + IMULA = 104, + IMULI = 105, + IMUL2 = 106, + INP = 107, + INC = 108, + INT1 = 109, + INT3 = 110, + INT7 = 111, + INTO = 112, + INTR = 113, + INVD = 114, + INVLPG = 115, + IRET = 116, + JO = 117, + JNO = 118, + JB = 119, + JNB = 120, + JZ = 121, + JNZ = 122, + JBE = 123, + JNBE = 124, + JS = 125, + JNS = 126, + JP = 127, + JNP = 128, + JL = 129, + JNL = 130, + JLE = 131, + JNLE = 132, + JCXZ = 133, + JMPN_IMM = 134, + JMPN_VIA = 135, + JMPF_IMM = 136, + JMPF_VIA = 137, + LAHF = 138, + LALCY = 139, + LAR = 140, + LDS = 141, + LEA = 142, + LEAVE = 143, + LES = 144, + LFS = 145, + LGDT = 146, + LGS = 147, + LIDT = 148, + LLDT = 149, + LMSW = 150, + LOOP = 151, + LOOPE = 152, + LOOPNE = 153, + LSL = 154, + LSS = 155, + LTR = 156, + MOV = 157, + MOVSX = 158, + MOVZX = 159, + MUL = 160, + NEG = 161, + NOT = 162, + NOP = 163, + OR = 164, + OUTP = 165, + POP = 166, + POP_MEM = 167, + POP_SR = 168, + POPA = 169, + POPF = 170, + PUSH = 171, + PUSH_SR = 172, + PUSHA = 173, + PUSHF = 174, + RCL = 175, + RCR = 176, + RETF = 177, + RETF_IMM = 178, + RETN = 179, + RETN_IMM = 180, + ROL = 181, + ROR = 182, + SAHF = 183, + SAR = 184, + SBB = 185, + SETO = 186, + SETNO = 187, + SETB = 188, + SETNB = 189, + SETZ = 190, + SETNZ = 191, + SETBE = 192, + SETNBE = 193, + SETS = 194, + SETNS = 195, + SETP = 196, + SETNP = 197, + SETL = 198, + SETNL = 199, + SETLE = 200, + SETNLE = 201, + SGDT = 202, + SHL = 203, + SHLD_CL = 204, + SHLD_IMM = 205, + SHR = 206, + SHRD_CL = 207, + SHRD_IMM = 208, + SIDT = 209, + SLDT = 210, + SMSW = 211, + STC = 212, + STD = 213, + STI = 214, + STR = 215, + SUB = 216, + TEST = 217, + VERR = 218, + VERW = 219, + WAIT = 220, + WBINVD = 221, + XADD = 222, + XCHG = 223, + XLAT = 224, + XOR = 225, + BOP = 226, + ZBADOP = 227, + STOS = 228, + INS = 229, + LODS = 230, + MOVS = 231, + CMPS = 232, + SCAS = 233, + OUTS = 234, + R_STOS = 235, + R_INS = 236, + R_LODS = 237, + R_MOVS = 238, + RE_CMPS = 239, + RNE_CMPS = 240, + RE_SCAS = 241, + RNE_SCAS = 242, + R_OUTS = 243, + RSRVD = 244, + FRSRVD = 245, + RD_SEGR = 246, + WT_SEGR = 247, + RD_CDT = 248, + WT_CDT = 249, + ZADJUST_HSP = 250, + ZBPI = 251, + ZDISPATCH_EIP = 252, + ZJC_PROC = 253, + ZPAGE_BOUNDARY = 254, + ZPATCH_ME = 255, + ZPOST_POP = 256, + ZRET_TO_COROUTINE = 257, + ZRESULT_ZERO = 258, + ZUNSIM = 259 +}; +#endif /* ! _Frag_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/gdebug.h b/private/mvdm/softpc.new/base/cvidc/gdebug.h new file mode 100644 index 000000000..dc28272cd --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/gdebug.h @@ -0,0 +1,695 @@ +#ifndef _gdebug_h +#define _gdebug_h +struct gdp_struct { + /* 0 */ IUH HookNumber; + /* 4 */ IUH EfiNumber; + /* 8 */ IUH* SubrRingPtr; + /* 12 */ IUH* SubrRingLowIncl; + /* 16 */ IUH* SubrRingHighIncl; + /* 20 */ IUH WhichAssertion; + /* 24 */ IU32* WhereAmI; + /* 28 */ IUH CoRoRet; + /* 32 */ IUH ErrorNumber; + /* 36 */ IUH EDL_WORKSPACE_0; + /* 40 */ IUH EDL_WORKSPACE_1; + /* 44 */ IUH EDL_WORKSPACE_2; + /* 48 */ IUH EDL_WORKSPACE_3; + /* 52 */ IUH EDL_WORKSPACE_4; + /* 56 */ IUH EDL_WORKSPACE_5; + /* 60 */ IUH EDL_WORKSPACE_6; + /* 64 */ IUH EDL_WORKSPACE_7; + /* 68 */ IUH EDL_WORKSPACE_8; + /* 72 */ IUH EDL_WORKSPACE_9; + /* 76 */ IUH EDL_WORKSPACE_10; + /* 80 */ IUH EDL_WORKSPACE_11; + /* 84 */ IUH EDL_WORKSPACE_12; + /* 88 */ IUH EDL_WORKSPACE_13; + /* 92 */ IUH EDL_WORKSPACE_14; + /* 96 */ IUH EDL_WORKSPACE_15; + /* 100 */ IUH EDL_WORKSPACE_16; + /* 104 */ IUH EDL_WORKSPACE_17; + /* 108 */ IUH EDL_WORKSPACE_18; + /* 112 */ IUH EDL_WORKSPACE_19; + /* 116 */ IUH EDL_WORKSPACE_20; + /* 120 */ IUH EDL_WORKSPACE_21; + /* 124 */ IUH EDL_WORKSPACE_22; + /* 128 */ IUH EDL_WORKSPACE_23; + /* 132 */ IUH EDL_WORKSPACE_24; + /* 136 */ IUH EDL_WORKSPACE_25; + /* 140 */ IUH EDL_WORKSPACE_26; + /* 144 */ IUH EDL_WORKSPACE_27; + /* 148 */ IUH EDL_WORKSPACE_28; + /* 152 */ IUH EDL_WORKSPACE_29; + /* 156 */ IUH EDL_WORKSPACE_30; + /* 160 */ IUH EDL_WORKSPACE_31; + /* 164 */ IUH R_EAX; + /* 168 */ IUH R_EBX; + /* 172 */ IUH R_ECX; + /* 176 */ IUH R_EDX; + /* 180 */ IUH R_EBP; + /* 184 */ IUH R_ESI; + /* 188 */ IUH R_EDI; + /* 192 */ IUH EsSel; + /* 196 */ IU32 EsBase; + /* 200 */ struct GLDC_REC* EsDesc; + /* 204 */ IU32 EsStruct_rlimit; + /* 208 */ IU32 EsStruct_wlimit; + /* 212 */ struct GLDC_REC* EsDescSanctuary; + /* 216 */ IUH CsSel; + /* 220 */ IU32 CsBase; + /* 224 */ struct GLDC_REC* CsDesc; + /* 228 */ IU32 CsStruct_rlimit; + /* 232 */ IU32 CsStruct_wlimit; + /* 236 */ struct GLDC_REC* CsDescSanctuary; + /* 240 */ IUH SsSel; + /* 244 */ IU32 SsBase; + /* 248 */ struct GLDC_REC* SsDesc; + /* 252 */ IU32 SsStruct_rlimit; + /* 256 */ IU32 SsStruct_wlimit; + /* 260 */ struct GLDC_REC* SsDescSanctuary; + /* 264 */ IUH DsSel; + /* 268 */ IU32 DsBase; + /* 272 */ struct GLDC_REC* DsDesc; + /* 276 */ IU32 DsStruct_rlimit; + /* 280 */ IU32 DsStruct_wlimit; + /* 284 */ struct GLDC_REC* DsDescSanctuary; + /* 288 */ IUH FsSel; + /* 292 */ IU32 FsBase; + /* 296 */ struct GLDC_REC* FsDesc; + /* 300 */ IU32 FsStruct_rlimit; + /* 304 */ IU32 FsStruct_wlimit; + /* 308 */ struct GLDC_REC* FsDescSanctuary; + /* 312 */ IUH GsSel; + /* 316 */ IU32 GsBase; + /* 320 */ struct GLDC_REC* GsDesc; + /* 324 */ IU32 GsStruct_rlimit; + /* 328 */ IU32 GsStruct_wlimit; + /* 332 */ struct GLDC_REC* GsDescSanctuary; + /* 336 */ IUH CPL; + /* 340 */ IU32 GdtrBase; + /* 344 */ IUH GdtrLimit; + /* 348 */ IUH LdtSel; + /* 352 */ IU32 LdtrBase; + /* 356 */ IU32 LdtrLimit; + /* 360 */ IUH TrSel; + /* 364 */ IU32 TrBase; + /* 368 */ IU32 TrLimit; + /* 372 */ IUH TrDescSt; + /* 376 */ IU32 TrIoBase; + /* 380 */ IS32 TrIoLimit; + /* 384 */ IU32 IdtrBase; + /* 388 */ IUH IdtrLimit; + /* 392 */ IUH AbortPigRun; + /* 396 */ IUH RegsAndFlagsUndefined; + /* 400 */ IUH SigalrmOccurred; + /* 404 */ IUH PigEnabled; + /* 408 */ IUH EFLAGS; + /* 412 */ IUH Ft; + /* 416 */ IUH F1; + /* 420 */ IUH F2; + /* 424 */ IUH F3; + /* 428 */ IUH R_CR0; + /* 432 */ IUH R_CR1; + /* 436 */ IUH R_CR2; + /* 440 */ IUH R_CR3; + /* 444 */ IUH R_CR4; + /* 448 */ IUH R_CR5; + /* 452 */ IUH R_CR6; + /* 456 */ IUH R_CR7; + /* 460 */ IUH R_TR0; + /* 464 */ IUH R_TR1; + /* 468 */ IUH R_TR2; + /* 472 */ IUH R_TR3; + /* 476 */ IUH R_TR4; + /* 480 */ IUH R_TR5; + /* 484 */ IUH R_TR6; + /* 488 */ IUH R_TR7; + /* 492 */ IUH R_DR0; + /* 496 */ IUH R_DR1; + /* 500 */ IUH R_DR2; + /* 504 */ IUH R_DR3; + /* 508 */ IUH R_DR4; + /* 512 */ IUH R_DR5; + /* 516 */ IUH R_DR6; + /* 520 */ IUH R_DR7; + /* 524 */ IUH PARAM1; + /* 528 */ IUH PARAM2; + /* 532 */ IUH PARAM3; + /* 536 */ IU8* BytePtr; + /* 540 */ IU16* WordPtr; + /* 544 */ IU32* DwordPtr; + /* 548 */ IUH EaOffs; + /* 552 */ IUH DATA1; + /* 556 */ IUH DATA2; + /* 560 */ IUH InNanoCpu; + /* 564 */ IUH UseNanoCpu; + /* 568 */ IUH UseLightCompiler; + /* 572 */ IUH UseCCodeCopier; + /* 576 */ IUH seenWithFlags; + /* 580 */ IUH needNextIntelEip; + /* 584 */ struct EntryPointCacheREC* LastSetCopierUniverse; + /* 588 */ struct EntryPointCacheREC* CopierUniverse; + /* 592 */ struct ConstraintBitMapREC* CopierBitMap; + /* 596 */ struct ConstraintBitMapREC* lastCopierBitMap; + /* 600 */ struct FragmentInfoREC* currPFragInfoRec; + /* 604 */ IU8* copierCleanups; + /* 608 */ IU8* lastHostCleanup; + /* 612 */ IU32* lastHostAddress; + /* 616 */ IU32 lastIntelAddress; + /* 620 */ struct JUMP_REC** destHashTable; + /* 624 */ struct JUMP_REC** jumpHashTable; + /* 628 */ struct JUMP_REC* freeJumpRecPtr; + /* 632 */ struct JUMP_REC* nextFreeJumpRec; + /* 636 */ IU32 freeJumpRecCount; + /* 640 */ IU32 poolJumpRecCount; + /* 644 */ struct VCT_NODE_REC** vctPtrs; + /* 648 */ struct VCT_NODE_REC** anonPtrs; + /* 652 */ struct TUPLE_REC* tuples; + /* 656 */ struct TUPLE_REC* cursor; + /* 660 */ struct TUPLE_REC* tuplePtr; + /* 664 */ IU8* patchRecPtr; + /* 668 */ IU32* srcPtr; + /* 672 */ IU32* dstPtr; + /* 676 */ IU32* PatchMeBodyAddr; + /* 680 */ IU32** patchTable; + /* 684 */ IU8** patchNames; + /* 688 */ IUH CopierFt; + /* 692 */ IUH FtIsLazy; + /* 696 */ IUH lastLazyFt; + /* 700 */ IU32 univVarMask; + /* 704 */ IUH zCoRoRetEFI; + /* 708 */ IUH zPatchMeEFI; + /* 712 */ IUH zPostPopEFI; + /* 716 */ IUH zAdjustHspEFI; + /* 720 */ ISH cumulativeStackMovement; + /* 724 */ IUH lastInstructionInFragment; + /* 728 */ IUH lateInInstruction; + /* 732 */ IUH ReSelectVariant; + /* 736 */ ISH ReSelectTupleSkipCnt; + /* 740 */ IUH postPopPending; + /* 744 */ IU32 postPopSize; + /* 748 */ IU32 compTimeFtBitNum; + /* 752 */ IU32 accIsReadBitMask; + /* 756 */ IU32 noFlagsBitMask; + /* 760 */ IU32* OutlyingDispatchEIPAddr; + /* 764 */ IU32 PARAM1RegId; + /* 768 */ IUH stashedImmed1; + /* 772 */ IUH stashedImmed2; + /* 776 */ IUH stashedImmed3; + /* 780 */ IUH stashedImmed4; + /* 784 */ IUH stashedImmed5; + /* 788 */ IUH EDL_WORKSPACE_32; + /* 792 */ IUH EDL_WORKSPACE_33; + /* 796 */ IUH EDL_WORKSPACE_34; + /* 800 */ struct CleanedREC CleanedRec; + /* 820 */ struct EntryPointCacheREC* Universe; + /* 824 */ struct EntryPointCacheREC* EntryPointCache; + /* 828 */ IU32 CsLinear; + /* 832 */ ISH JumpCounter; + /* 836 */ ISH JumpRestart; + /* 840 */ ISH JumpCalibrate; + /* 844 */ ISH InitialJumpCounter; + /* 848 */ IUH minimumInitialVal; + /* 852 */ struct IretHookStackREC* IretHookStack; + /* 856 */ ISH IretHookStackIndex; + /* 860 */ IUH InstructionCount; + /* 864 */ struct CsSelectorHashREC* CsSelectorHashTable; + /* 868 */ IUH NextFreeUniverseHandle; + /* 872 */ struct UniHashREC* UniHashTable; + /* 876 */ struct UniHashREC* NextFreeUniHashEntry; + /* 880 */ struct ConstraintBitMapREC NewUniverseBitMapRec; + /* 888 */ IU32* Constraint2CvMap; + /* 892 */ IUH InsertBPIs; + /* 896 */ IUH UseUniverseHash; + /* 900 */ IUH VirtualiseDataSel; + /* 904 */ IUH VirtualiseCodeSel; + /* 908 */ IUH VirtualiseSelsSet; + /* 912 */ IUH EDL_WORKSPACE_35; + /* 916 */ IUH EDL_WORKSPACE_36; + /* 920 */ IUH EDL_WORKSPACE_37; + /* 924 */ IUH EDL_WORKSPACE_38; + /* 928 */ struct TraceRingREC TraceRingRec; + /* 948 */ IUH EAXsaved; + /* 952 */ IUH EBXsaved; + /* 956 */ IUH ECXsaved; + /* 960 */ IUH EDXsaved; + /* 964 */ IUH ESIsaved; + /* 968 */ IUH EDIsaved; + /* 972 */ IUH EBPsaved; + /* 976 */ IUH SafeToReturnToFragment; + /* 980 */ IUH InsideTheCpu; + /* 984 */ IUH* SimulateContext; + /* 988 */ IUH SimulateNestingLevel; + /* 992 */ IUH Pigging; + /* 996 */ IU32 tempEIP; + /* 1000 */ IUH UseEntryPointCache; + /* 1004 */ IUH CpuIsInitialised; + /* 1008 */ IUH AR_FixupWanted; + /* 1012 */ IUH D6isBop; + /* 1016 */ IU8** BopTable; + /* 1020 */ IUH LxS_hackyfix; + /* 1024 */ IUH SavedFt; + /* 1028 */ IUH SavedCF; + /* 1032 */ IUH SavedZF; + /* 1036 */ IUH SavedOF; + /* 1040 */ IUH UsedD6; + /* 1044 */ IUH buildOp1; + /* 1048 */ IUH buildOp2; + /* 1052 */ IU32 buildOp3; + /* 1056 */ IU32 buildOp4; + /* 1060 */ IUH buildOp5; + /* 1064 */ IUH buildOp6; + /* 1068 */ IUH EDL_WORKSPACE_39; + /* 1072 */ IUH EDL_WORKSPACE_40; + /* 1076 */ IUH EDL_WORKSPACE_41; + /* 1080 */ IUH EDL_WORKSPACE_42; + /* 1084 */ IUH EDL_WORKSPACE_43; + /* 1088 */ IUH EDL_WORKSPACE_44; + /* 1092 */ IUH EDL_WORKSPACE_45; + /* 1096 */ IUH EDL_WORKSPACE_46; + /* 1100 */ IUH EDL_WORKSPACE_47; + /* 1104 */ IUH EDL_WORKSPACE_48; + /* 1108 */ IUH EDL_WORKSPACE_49; + /* 1112 */ IUH EDL_WORKSPACE_50; + /* 1116 */ IUH EDL_WORKSPACE_51; + /* 1120 */ IUH EDL_WORKSPACE_52; + /* 1124 */ IUH EDL_WORKSPACE_53; + /* 1128 */ IUH EDL_WORKSPACE_54; + /* 1132 */ IUH EDL_WORKSPACE_55; + /* 1136 */ IUH EDL_WORKSPACE_56; + /* 1140 */ IUH EDL_WORKSPACE_57; + /* 1144 */ IUH EDL_WORKSPACE_58; + /* 1148 */ IUH EDL_WORKSPACE_59; + /* 1152 */ IUH EDL_WORKSPACE_60; + /* 1156 */ IUH EDL_WORKSPACE_61; + /* 1160 */ IUH EDL_WORKSPACE_62; + /* 1164 */ IUH EDL_WORKSPACE_63; + /* 1168 */ IUH EDL_WORKSPACE_64; + /* 1172 */ IUH EDL_WORKSPACE_65; + /* 1176 */ IUH EDL_WORKSPACE_66; + /* 1180 */ IUH EDL_WORKSPACE_67; + /* 1184 */ IUH EDL_WORKSPACE_68; + /* 1188 */ IUH EDL_WORKSPACE_69; + /* 1192 */ IUH EDL_WORKSPACE_70; + /* 1196 */ IUH EDL_WORKSPACE_71; + /* 1200 */ IUH EDL_WORKSPACE_72; + /* 1204 */ IUH EDL_WORKSPACE_73; + /* 1208 */ IUH EDL_WORKSPACE_74; + /* 1212 */ IUH EDL_WORKSPACE_75; + /* 1216 */ IUH EDL_WORKSPACE_76; + /* 1220 */ IUH EDL_WORKSPACE_77; + /* 1224 */ IUH EDL_WORKSPACE_78; + /* 1228 */ IUH EDL_WORKSPACE_79; + /* 1232 */ IUH EDL_WORKSPACE_80; + /* 1236 */ IUH EDL_WORKSPACE_81; + /* 1240 */ IUH EDL_WORKSPACE_82; + /* 1244 */ IUH EDL_WORKSPACE_83; + /* 1248 */ IUH EDL_WORKSPACE_84; + /* 1252 */ IUH EDL_WORKSPACE_85; + /* 1256 */ IUH EDL_WORKSPACE_86; + /* 1260 */ IUH EDL_WORKSPACE_87; + /* 1264 */ IUH EDL_WORKSPACE_88; + /* 1268 */ IUH EDL_WORKSPACE_89; + /* 1272 */ IUH EDL_WORKSPACE_90; + /* 1276 */ IUH EDL_WORKSPACE_91; + /* 1280 */ struct VGAGLOBALSETTINGS VGAGlobals; + /* 1436 */ IUH** VidMarkFuncTable; + /* 1440 */ IUH** VidReadFuncTable; + /* 1444 */ IUH** VidWriteFuncTable; + /* 1448 */ IUH EDL_WORKSPACE_92; + /* 1452 */ IUH EDL_WORKSPACE_93; + /* 1456 */ IUH EDL_WORKSPACE_94; + /* 1460 */ IUH EDL_WORKSPACE_95; + /* 1464 */ IUH EDL_WORKSPACE_96; + /* 1468 */ IUH EDL_WORKSPACE_97; + /* 1472 */ struct EVIDWRITES ActiveVideoWrites; + /* 1520 */ IUH EDL_WORKSPACE_98; + /* 1524 */ IUH EDL_WORKSPACE_99; + /* 1528 */ IUH EDL_WORKSPACE_100; + /* 1532 */ IUH EDL_WORKSPACE_101; + /* 1536 */ struct EVIDREADS ActiveVideoReads; + /* 1556 */ IUH EDL_WORKSPACE_102; + /* 1560 */ IUH EDL_WORKSPACE_103; + /* 1564 */ IUH EDL_WORKSPACE_104; + /* 1568 */ struct EVIDMARKS ActiveVideoMarks; + /* 1584 */ IU32 MaxIntelPageNumber; + /* 1588 */ IU32* PageDirectoryPtr; + /* 1592 */ IU32 DebuggerPFLA; + /* 1596 */ IUH DebuggerFaultAction; + /* 1600 */ ISH InsideDebugger; + /* 1604 */ IUH EDL_WORKSPACE_105; + /* 1608 */ IUH EDL_WORKSPACE_106; + /* 1612 */ IUH EDL_WORKSPACE_107; + /* 1616 */ IUH EDL_WORKSPACE_108; + /* 1620 */ IUH EDL_WORKSPACE_109; + /* 1624 */ IUH EDL_WORKSPACE_110; + /* 1628 */ IUH EDL_WORKSPACE_111; + /* 1632 */ IUH EDL_WORKSPACE_112; + /* 1636 */ IUH EDL_WORKSPACE_113; + /* 1640 */ IUH EDL_WORKSPACE_114; + /* 1644 */ IUH EDL_WORKSPACE_115; + /* 1648 */ IUH EDL_WORKSPACE_116; + /* 1652 */ IUH EDL_WORKSPACE_117; + /* 1656 */ IUH EDL_WORKSPACE_118; + /* 1660 */ IUH EDL_WORKSPACE_119; + /* 1664 */ struct VirtualisationBIOSOffsetsREC VirtualisationBIOSOffsets; + /* 1712 */ struct DelayedPDTEoverwiteREC* DelayedPDTEoverwiteList; + /* 1716 */ IU8* SasMemoryType; + /* 1720 */ struct PhysicalPageREC* PhysicalPageRecords; + /* 1724 */ IU8** PhysicalPageMemory; + /* 1728 */ IUH TwentyBitWrapStatus; + /* 1732 */ IUH MultipleRecompilationCount; + /* 1736 */ IUH MaxMultipleRecompilation; + /* 1740 */ IUH HideCompiledFragment; + /* 1744 */ IUH RestartAfterCodeOverwrite; + /* 1748 */ IUH DoingCompilation; + /* 1752 */ IUH SanityCheckStructures; + /* 1756 */ IU8* FragCounts; + /* 1760 */ struct CompilationControlREC ControlBlock; + /* 1776 */ IUH EDL_WORKSPACE_120; + /* 1780 */ IUH EDL_WORKSPACE_121; + /* 1784 */ IUH EDL_WORKSPACE_122; + /* 1788 */ IUH EDL_WORKSPACE_123; + /* 1792 */ struct BLOCK_TO_COMPILE CompilationBlock; + /* 1824 */ IUH EDL_WORKSPACE_124; + /* 1828 */ IUH EDL_WORKSPACE_125; + /* 1832 */ IUH EDL_WORKSPACE_126; + /* 1836 */ IUH EDL_WORKSPACE_127; + /* 1840 */ IUH EDL_WORKSPACE_128; + /* 1844 */ IUH EDL_WORKSPACE_129; + /* 1848 */ IUH EDL_WORKSPACE_130; + /* 1852 */ IUH EDL_WORKSPACE_131; + /* 1856 */ IUH EDL_WORKSPACE_132; + /* 1860 */ IUH EDL_WORKSPACE_133; + /* 1864 */ IUH EDL_WORKSPACE_134; + /* 1868 */ IUH EDL_WORKSPACE_135; + /* 1872 */ IUH EDL_WORKSPACE_136; + /* 1876 */ IUH EDL_WORKSPACE_137; + /* 1880 */ IUH EDL_WORKSPACE_138; + /* 1884 */ IUH EDL_WORKSPACE_139; + /* 1888 */ IUH EDL_WORKSPACE_140; + /* 1892 */ IUH EDL_WORKSPACE_141; + /* 1896 */ IUH EDL_WORKSPACE_142; + /* 1900 */ IUH EDL_WORKSPACE_143; + /* 1904 */ IUH EDL_WORKSPACE_144; + /* 1908 */ IUH EDL_WORKSPACE_145; + /* 1912 */ IUH EDL_WORKSPACE_146; + /* 1916 */ IUH EDL_WORKSPACE_147; + /* 1920 */ struct ProtAllocationREC ProtAllocationRec; + /* 2016 */ struct BufferIndexREC* LightCompiledLRUrec; + /* 2020 */ IUH NextPhysicalPage; + /* 2024 */ struct TranslationMapREC* FreeMaps; + /* 2028 */ struct TranslationCacheREC* TranslationCache; + /* 2032 */ IU8* CrossPageInstructions; + /* 2036 */ IU32 IHook; + /* 2040 */ struct InterruptREC InterruptRec; + /* 2048 */ IUH SasReInitNow; + /* 2052 */ IU32 SasReInitSize; + /* 2056 */ IUH EDL_WORKSPACE_148; + /* 2060 */ IUH EDL_WORKSPACE_149; + /* 2064 */ IUH EDL_WORKSPACE_150; + /* 2068 */ IUH EDL_WORKSPACE_151; + /* 2072 */ IUH EDL_WORKSPACE_152; + /* 2076 */ IUH EDL_WORKSPACE_153; + /* 2080 */ struct QuickTickerREC QuickTickerRec; + /* 2104 */ IUH PigSynchCount; + /* 2108 */ IUH CodeBufferNoRepair; + /* 2112 */ IU32* OutLinePatchBlock; + /* 2116 */ IU32 OutLinePatchBlockSize; + /* 2120 */ struct BufferIndexREC* AllBuffers; + /* 2124 */ struct BufferIndexREC* LightBufferLRU; + /* 2128 */ struct BufferIndexREC* CompilationBuffer; + /* 2132 */ struct BufferIndexREC* PendingDeletions; + /* 2136 */ struct FragmentInfoREC* FragmentInfoArray; + /* 2140 */ IU32* HostCodeBufferLimit; + /* 2144 */ IU8* CopiedCleanups; + /* 2148 */ struct DebugInfoREC* FreeDebugInfoList; + /* 2152 */ IU32* CodeBufferOverrun; + /* 2156 */ IU32* OverrunHighWaterMark; + /* 2160 */ IUH NumberOfBuffers; + /* 2164 */ struct BufferIndexREC* BpiCompilationBuffer; + /* 2168 */ struct FragmentIndexREC* NextFragmentIndex; + /* 2172 */ struct FragmentDataREC* NextFragmentData; + /* 2176 */ IUH FpuDisabled; + /* 2180 */ IUH NpxControl; + /* 2184 */ IUH NpxStatus; + /* 2188 */ IUH NpxFEA; + /* 2192 */ IUH NpxFDS; + /* 2196 */ IUH NpxFIP; + /* 2200 */ IUH NpxFOP; + /* 2204 */ IUH NpxFCS; + /* 2208 */ IUH NpxLastSel; + /* 2212 */ IUH NpxLastOff; + /* 2216 */ IUH DoAPop; + /* 2220 */ IUH NpxException; + /* 2224 */ IUH npxRounding; + /* 2228 */ IUH tag_or; + /* 2232 */ IUH tag_xor; + /* 2236 */ IUH hostFpuExceptions; + /* 2240 */ struct FPSTACKENTRY MaxBCDValue; + /* 2256 */ struct FPSTACKENTRY FPUpload; + /* 2272 */ struct FPSTACKENTRY* ConstTable; + /* 2276 */ struct FPSTACKENTRY* FPTemp; + /* 2280 */ struct FPSTACKENTRY* FPUStackBase; + /* 2284 */ struct FPSTACKENTRY* TOSPtr; + /* 2288 */ struct FP_I64 Npx64BitZero; + /* 2296 */ struct FP_I64 Npx64BitMaxNeg; + /* 2304 */ struct FP_I64 Npx64BitHalfMaxNeg; + /* 2312 */ struct FP_I64 Npx64BitVal1; + /* 2320 */ IUH* FscaleTable; + /* 2324 */ IU32* CompZeroTable; + /* 2328 */ struct FP_I64* BCDLowNibble; + /* 2332 */ struct FP_I64* BCDHighNibble; + /* 2336 */ struct FPSTACKENTRY* FpatanTable; + /* 2340 */ struct PigSynchREC* PigSynchTable; + /* 2344 */ struct PigSynchREC* PigMissTable; + /* 2348 */ struct PigSynchREC* PigSynchPool; + /* 2352 */ IUH EDL_WORKSPACE_154; + /* 2356 */ IUH EDL_WORKSPACE_155; + /* 2360 */ IUH EDL_WORKSPACE_156; + /* 2364 */ IUH EDL_WORKSPACE_157; + /* 2368 */ struct CleanedREC PigCleanedRec; + /* 2388 */ IUH PigSynchWanted; + /* 2392 */ ISH SadAX; + /* 2396 */ ISH SadBX; + /* 2400 */ ISH SadCX; + /* 2404 */ ISH SadDX; + /* 2408 */ ISH SadBP; + /* 2412 */ ISH SadSP; + /* 2416 */ ISH SadSI; + /* 2420 */ ISH SadDI; + /* 2424 */ ISH SadEIP; + /* 2428 */ ISH SadEFLAGS; + /* 2432 */ ISH Parameter1; + /* 2436 */ ISH Parameter2; + /* 2440 */ ISH* BpiKnownTable; + /* 2444 */ ISH* BpiWorkTable; + /* 2448 */ ISH* BpiLabelTable; + /* 2452 */ struct FragmentDataREC* BpiFragment; + /* 2456 */ IU32* BpiCompiledCode; + /* 2460 */ IU32* BpiCompiledStep; + /* 2464 */ IU32* BpiCompiledUser; + /* 2468 */ IUH OpBpirealFt; + /* 2472 */ IUH OpBpirealF1; + /* 2476 */ IUH OpBpirealF2; + /* 2480 */ IUH OpBpirealF3; + /* 2484 */ struct EntryPointCacheREC* OpBpirealUniv; + /* 2488 */ IU32* OpBpirealWhereAmI; + /* 2492 */ IUH EDL_WORKSPACE_158; + /* 2496 */ IUH EDL_WORKSPACE_159; + /* 2500 */ IUH EDL_WORKSPACE_160; + /* 2504 */ IUH EDL_WORKSPACE_161; + /* 2508 */ IUH EDL_WORKSPACE_162; + /* 2512 */ IUH EDL_WORKSPACE_163; + /* 2516 */ IUH EDL_WORKSPACE_164; + /* 2520 */ IUH EDL_WORKSPACE_165; + /* 2524 */ IUH EDL_WORKSPACE_166; + /* 2528 */ IUH EDL_WORKSPACE_167; + /* 2532 */ IUH EDL_WORKSPACE_168; + /* 2536 */ IUH EDL_WORKSPACE_169; + /* 2540 */ IUH EDL_WORKSPACE_170; + /* 2544 */ IUH EDL_WORKSPACE_171; + /* 2548 */ IUH EDL_WORKSPACE_172; + /* 2552 */ IUH EDL_WORKSPACE_173; + /* 2556 */ IUH EDL_WORKSPACE_174; + /* 2560 */ struct OpndBuffREC NpxOpndBuff; + /* 2688 */ struct GLDC_REC* GLDC_FreeRecs; + /* 2692 */ struct GLDC_REC* GLDC_UsedBuffs; + /* 2696 */ struct GLDC_REC* GLDC_FreeBuffs; + /* 2700 */ IUH* NewRingOffsetPtr; + /* 2704 */ IUH GLDC_Index_High_Water; + /* 2708 */ IUH GLDC_Context_High_Water; + /* 2712 */ struct GLDC_REC** GLDC_IndexPtr; + /* 2716 */ IUH* GLDC_CrBase; + /* 2720 */ IUH EDL_WORKSPACE_175; + /* 2724 */ IUH EDL_WORKSPACE_176; + /* 2728 */ IUH EDL_WORKSPACE_177; + /* 2732 */ IUH EDL_WORKSPACE_178; + /* 2736 */ IUH EDL_WORKSPACE_179; + /* 2740 */ IUH EDL_WORKSPACE_180; + /* 2744 */ IUH EDL_WORKSPACE_181; + /* 2748 */ IUH EDL_WORKSPACE_182; + /* 2752 */ struct GLDC_REC GLDC_DUMMY_STORE; + /* 2792 */ IUH EDL_WORKSPACE_183; + /* 2796 */ IUH EDL_WORKSPACE_184; + /* 2800 */ IUH EDL_WORKSPACE_185; + /* 2804 */ IUH EDL_WORKSPACE_186; + /* 2808 */ IUH EDL_WORKSPACE_187; + /* 2812 */ IUH EDL_WORKSPACE_188; + /* 2816 */ struct GLDC_REC GLDC_NULL_STORE; + /* 2856 */ IUH hackyfix; + /* 2860 */ struct IDC_REC* IDC_ArrayPtr; + /* 2864 */ struct IDC_ENTRY* IDC_EntryTableBase; + /* 2868 */ IUH IDC_IdtSeqVal; + /* 2872 */ IUH IDC_IdtHighWater; + /* 2876 */ IUH IDC_IdtCntrlVal; + /* 2880 */ IUH IDC_IdtCntrlValNoCheck; + /* 2884 */ IUH PX_trace; + /* 2888 */ IUH PX_doing_contributory; + /* 2892 */ IUH PX_doing_page_fault; + /* 2896 */ IUH PX_doing_double_fault; + /* 2900 */ IUH PX_doing_fault; + /* 2904 */ IUH PX_source; + /* 2908 */ IUH RF_OnXcptnWanted; + /* 2912 */ IU32 PX_Cleaned_Eip; + /* 2916 */ IUH** CInbTable; + /* 2920 */ IUH** CInwTable; + /* 2924 */ IUH** CIndTable; + /* 2928 */ IUH** COutbTable; + /* 2932 */ IUH** COutwTable; + /* 2936 */ IUH** COutdTable; + /* 2940 */ IU8* InAdapFromPort; + /* 2944 */ IU8* OutAdapFromPort; + /* 2948 */ IUH** InbFuncWrapper; + /* 2952 */ IUH** InwFuncWrapper; + /* 2956 */ IUH** IndFuncWrapper; + /* 2960 */ IUH** OutbFuncWrapper; + /* 2964 */ IUH** OutwFuncWrapper; + /* 2968 */ IUH** OutdFuncWrapper; + /* 2972 */ IUH TempByteDest; + /* 2976 */ IUH TempWordDest; + /* 2980 */ IU32 TempDoubleDest; + /* 2984 */ IUH MaxValidAdaptor; + /* 2988 */ IUH IOSPortMask; + /* 2992 */ IUH EDL_WORKSPACE_189; + /* 2996 */ IUH EDL_WORKSPACE_190; + /* 3000 */ IUH EDL_WORKSPACE_191; + /* 3004 */ IUH EDL_WORKSPACE_192; + /* 3008 */ struct DYNAMIC_DESC_PTR_LOOKUP SegDescPtrLookupREC; + /* 3032 */ IUH EDL_WORKSPACE_193; + /* 3036 */ IUH EDL_WORKSPACE_194; + /* 3040 */ struct DYNAMIC_SEG_BASE_LOOKUP SegBaseLookupREC; + /* 3064 */ IU8* HSP; + /* 3068 */ IU32 ESPsanctuary; + /* 3072 */ IU8* truePopLimit; + /* 3076 */ IU8* innerPopLimit; + /* 3080 */ IU8* truePushLimit; + /* 3084 */ IU8* innerPushLimit; + /* 3088 */ IU8* notionalSsBase; + /* 3092 */ IUH stackIsWrappable; + /* 3096 */ IUH stackIsBig; + /* 3100 */ IU32 stackMask; + /* 3104 */ IUH stackNeedsNormalising; + /* 3108 */ IU32 laInTopPage; + /* 3112 */ IU32 laInBottomPage; + /* 3116 */ IUH hspOK; + /* 3120 */ IU8* pushScratch; + /* 3124 */ IUH pushScratchInUse; + /* 3128 */ IU8* popScratch; + /* 3132 */ IUH popScratchInUse; + /* 3136 */ ISH stackJumpCounterCeiling; + /* 3140 */ ISH stackJumpCounterDebt; + /* 3144 */ ISH prevJumpCounter; + /* 3148 */ IUH SafeStackEnabled; + /* 3152 */ IUH SafeStackIronFrig; + /* 3156 */ IU32 newNanoSafeLow; + /* 3160 */ IU32 newNanoSafeSpan; + /* 3164 */ IU8* newHSP; + /* 3168 */ IU8* newTruePopLimit; + /* 3172 */ IU8* newTruePushLimit; + /* 3176 */ IU8* newNotionalSsBase; + /* 3180 */ IUH newStackIsWrappable; + /* 3184 */ IUH newStackIsBig; + /* 3188 */ IU32 newStackMask; + /* 3192 */ IU32 newLaInBottomPage; + /* 3196 */ IUH newHspOK; + /* 3200 */ IU8* newPushScratch; + /* 3204 */ IUH newPushScratchInUse; + /* 3208 */ IU8* EOIEnable; + /* 3212 */ IUH* AddProfilePtr; + /* 3216 */ IUH* MaxProfileData; + /* 3220 */ struct ContextREC* FreeContextHead; + /* 3224 */ struct ContextREC* ValidContextHead; + /* 3228 */ IUH CurrentContext; + /* 3232 */ IUH SeenGDTUse; + /* 3236 */ IUH SeenLDTUse; + /* 3240 */ struct ContextREC* Context; + /* 3244 */ IUH tmpESP; + /* 3248 */ IU8* intelPtr; + /* 3252 */ IU32** functions; + /* 3256 */ ISH instrCountdown; + /* 3260 */ IU32* nextPlace; + /* 3264 */ IUH cutBackStackCounter; + /* 3268 */ IUH nanoCompParameter; + /* 3272 */ IU8* intelCopyPtrComp; + /* 3276 */ IUH nrOfBlocksToCompile; + /* 3280 */ IU32 first32constraints; + /* 3284 */ IUH last16constraints; + /* 3288 */ struct BLOCK_RECORD* successorBlockPtr; + /* 3292 */ IUH successorBlockNr; + /* 3296 */ IUH nrOfInstrsParsed; + /* 3300 */ IU8* intelPtrLimit; + /* 3304 */ IU8* blockStartIntelPtr; + /* 3308 */ IUH blockStartCodeOffset; + /* 3312 */ IUH finalCodeOffset; + /* 3316 */ IUH blockExitCondition; + /* 3320 */ IUH blockNr; + /* 3324 */ struct BLOCK_RECORD* blockPtr; + /* 3328 */ IU32* nextPlaceAgain; + /* 3332 */ IUH nanoOp3; + /* 3336 */ IUH sibByte; + /* 3340 */ IU32 dynamicOffset; + /* 3344 */ IUH eaSegCode; + /* 3348 */ IU8* instrStartIntelPtr; + /* 3352 */ IUH* topLevel; + /* 3356 */ IU32** defaultPrimaryActions; + /* 3360 */ IU32** actualPrimaryActions; + /* 3364 */ IUH codeSegment; + /* 3368 */ IUH codeOffset; + /* 3372 */ IUH codeSegmentBase; + /* 3376 */ IUH codeSegmentLimit; + /* 3380 */ IUH destCodeSegment; + /* 3384 */ IUH destCodeOffset; + /* 3388 */ IU32 linearAddress; + /* 3392 */ IU32 nanoEax; + /* 3396 */ IU32 nanoEcx; + /* 3400 */ IU32 nanoEdx; + /* 3404 */ IU32 nanoEbx; + /* 3408 */ IU32 nanoEsp; + /* 3412 */ IU32 nanoEbp; + /* 3416 */ IU32 nanoEsi; + /* 3420 */ IU32 nanoEdi; + /* 3424 */ IU32 espToRestore; + /* 3428 */ IU32 entryExitCount; + /* 3432 */ IU32 instructionCount; + /* 3436 */ IU32 nanoDebugControl; + /* 3440 */ IU32 compilationThreshold; + /* 3444 */ IUH hashTableMask; + /* 3448 */ IUH blockFreeList; + /* 3452 */ IUH maxBlocksToCompile; + /* 3456 */ IU32* bases; + /* 3460 */ struct GLDC_REC** descriptors; + /* 3464 */ struct BLOCK_TO_COMPILE* blocksToCompile; + /* 3468 */ IU8* byteMemory; + /* 3472 */ IU16* wordMemory; + /* 3476 */ IU32* longMemory; + /* 3480 */ IU16* blockHashChains; + /* 3484 */ struct BLOCK_RECORD* blockRecords; + /* 3488 */ IU8* intelCopyMemoryExec; + /* 3492 */ IU8* intelCopyMemoryComp; + /* 3496 */ IU8* intelCopyMemoryCompEnd; + /* 3500 */ IUH SfDecrementerVal; + /* 3504 */ IUH SfQEventPending; + /* 3508 */ IU8* LogicalBaseAddrForIO; +}; +#endif /* _gdebug_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/gdinit_c.h b/private/mvdm/softpc.new/base/cvidc/gdinit_c.h new file mode 100644 index 000000000..46671d030 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/gdinit_c.h @@ -0,0 +1,3 @@ +#ifndef _GdInit_c_h +#define _GdInit_c_h +#endif /* ! _GdInit_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/gdmain_c.h b/private/mvdm/softpc.new/base/cvidc/gdmain_c.h new file mode 100644 index 000000000..4fa576ef1 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/gdmain_c.h @@ -0,0 +1,3 @@ +#ifndef _GdMain_c_h +#define _GdMain_c_h +#endif /* ! _GdMain_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/gdpvar.h b/private/mvdm/softpc.new/base/cvidc/gdpvar.h new file mode 100644 index 000000000..385df2ef4 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/gdpvar.h @@ -0,0 +1,698 @@ +#ifndef _gdpvar_h +#define _gdpvar_h +#define GLOBAL_HookNumber (*(IUH *)((IUH)Gdp + 0)) +#define GLOBAL_EfiNumber (*(IUH *)((IUH)Gdp + 4)) +#define GLOBAL_SubrRingPtr (*(IUH* *)((IUH)Gdp + 8)) +#define GLOBAL_SubrRingLowIncl (*(IUH* *)((IUH)Gdp + 12)) +#define GLOBAL_SubrRingHighIncl (*(IUH* *)((IUH)Gdp + 16)) +#define GLOBAL_WhichAssertion (*(IUH *)((IUH)Gdp + 20)) +#define GLOBAL_WhereAmI (*(IU32* *)((IUH)Gdp + 24)) +#define GLOBAL_CoRoRet (*(IUH *)((IUH)Gdp + 28)) +#define GLOBAL_ErrorNumber (*(IUH *)((IUH)Gdp + 32)) +#define GLOBAL_EDL_WORKSPACE_0 (*(IUH *)((IUH)Gdp + 36)) +#define GLOBAL_EDL_WORKSPACE_1 (*(IUH *)((IUH)Gdp + 40)) +#define GLOBAL_EDL_WORKSPACE_2 (*(IUH *)((IUH)Gdp + 44)) +#define GLOBAL_EDL_WORKSPACE_3 (*(IUH *)((IUH)Gdp + 48)) +#define GLOBAL_EDL_WORKSPACE_4 (*(IUH *)((IUH)Gdp + 52)) +#define GLOBAL_EDL_WORKSPACE_5 (*(IUH *)((IUH)Gdp + 56)) +#define GLOBAL_EDL_WORKSPACE_6 (*(IUH *)((IUH)Gdp + 60)) +#define GLOBAL_EDL_WORKSPACE_7 (*(IUH *)((IUH)Gdp + 64)) +#define GLOBAL_EDL_WORKSPACE_8 (*(IUH *)((IUH)Gdp + 68)) +#define GLOBAL_EDL_WORKSPACE_9 (*(IUH *)((IUH)Gdp + 72)) +#define GLOBAL_EDL_WORKSPACE_10 (*(IUH *)((IUH)Gdp + 76)) +#define GLOBAL_EDL_WORKSPACE_11 (*(IUH *)((IUH)Gdp + 80)) +#define GLOBAL_EDL_WORKSPACE_12 (*(IUH *)((IUH)Gdp + 84)) +#define GLOBAL_EDL_WORKSPACE_13 (*(IUH *)((IUH)Gdp + 88)) +#define GLOBAL_EDL_WORKSPACE_14 (*(IUH *)((IUH)Gdp + 92)) +#define GLOBAL_EDL_WORKSPACE_15 (*(IUH *)((IUH)Gdp + 96)) +#define GLOBAL_EDL_WORKSPACE_16 (*(IUH *)((IUH)Gdp + 100)) +#define GLOBAL_EDL_WORKSPACE_17 (*(IUH *)((IUH)Gdp + 104)) +#define GLOBAL_EDL_WORKSPACE_18 (*(IUH *)((IUH)Gdp + 108)) +#define GLOBAL_EDL_WORKSPACE_19 (*(IUH *)((IUH)Gdp + 112)) +#define GLOBAL_EDL_WORKSPACE_20 (*(IUH *)((IUH)Gdp + 116)) +#define GLOBAL_EDL_WORKSPACE_21 (*(IUH *)((IUH)Gdp + 120)) +#define GLOBAL_EDL_WORKSPACE_22 (*(IUH *)((IUH)Gdp + 124)) +#define GLOBAL_EDL_WORKSPACE_23 (*(IUH *)((IUH)Gdp + 128)) +#define GLOBAL_EDL_WORKSPACE_24 (*(IUH *)((IUH)Gdp + 132)) +#define GLOBAL_EDL_WORKSPACE_25 (*(IUH *)((IUH)Gdp + 136)) +#define GLOBAL_EDL_WORKSPACE_26 (*(IUH *)((IUH)Gdp + 140)) +#define GLOBAL_EDL_WORKSPACE_27 (*(IUH *)((IUH)Gdp + 144)) +#define GLOBAL_EDL_WORKSPACE_28 (*(IUH *)((IUH)Gdp + 148)) +#define GLOBAL_EDL_WORKSPACE_29 (*(IUH *)((IUH)Gdp + 152)) +#define GLOBAL_EDL_WORKSPACE_30 (*(IUH *)((IUH)Gdp + 156)) +#define GLOBAL_EDL_WORKSPACE_31 (*(IUH *)((IUH)Gdp + 160)) +#define GLOBAL_R_EAX (*(IUH *)((IUH)Gdp + 164)) +#define GLOBAL_R_EBX (*(IUH *)((IUH)Gdp + 168)) +#define GLOBAL_R_ECX (*(IUH *)((IUH)Gdp + 172)) +#define GLOBAL_R_EDX (*(IUH *)((IUH)Gdp + 176)) +#define GLOBAL_R_EBP (*(IUH *)((IUH)Gdp + 180)) +#define GLOBAL_R_ESI (*(IUH *)((IUH)Gdp + 184)) +#define GLOBAL_R_EDI (*(IUH *)((IUH)Gdp + 188)) +#define GLOBAL_EsSel (*(IU16 *)((IUH)Gdp + 192 + 2)) +#define GLOBAL_EsBase (*(IU32 *)((IUH)Gdp + 196)) +#define GLOBAL_EsDesc (*(struct GLDC_REC* *)((IUH)Gdp + 200)) +#define GLOBAL_EsStruct_rlimit (*(IU32 *)((IUH)Gdp + 204)) +#define GLOBAL_EsStruct_wlimit (*(IU32 *)((IUH)Gdp + 208)) +#define GLOBAL_EsDescSanctuary (*(struct GLDC_REC* *)((IUH)Gdp + 212)) +#define GLOBAL_CsSel (*(IU16 *)((IUH)Gdp + 216 + 2)) +#define GLOBAL_CsBase (*(IU32 *)((IUH)Gdp + 220)) +#define GLOBAL_CsDesc (*(struct GLDC_REC* *)((IUH)Gdp + 224)) +#define GLOBAL_CsStruct_rlimit (*(IU32 *)((IUH)Gdp + 228)) +#define GLOBAL_CsStruct_wlimit (*(IU32 *)((IUH)Gdp + 232)) +#define GLOBAL_CsDescSanctuary (*(struct GLDC_REC* *)((IUH)Gdp + 236)) +#define GLOBAL_SsSel (*(IU16 *)((IUH)Gdp + 240 + 2)) +#define GLOBAL_SsBase (*(IU32 *)((IUH)Gdp + 244)) +#define GLOBAL_SsDesc (*(struct GLDC_REC* *)((IUH)Gdp + 248)) +#define GLOBAL_SsStruct_rlimit (*(IU32 *)((IUH)Gdp + 252)) +#define GLOBAL_SsStruct_wlimit (*(IU32 *)((IUH)Gdp + 256)) +#define GLOBAL_SsDescSanctuary (*(struct GLDC_REC* *)((IUH)Gdp + 260)) +#define GLOBAL_DsSel (*(IU16 *)((IUH)Gdp + 264 + 2)) +#define GLOBAL_DsBase (*(IU32 *)((IUH)Gdp + 268)) +#define GLOBAL_DsDesc (*(struct GLDC_REC* *)((IUH)Gdp + 272)) +#define GLOBAL_DsStruct_rlimit (*(IU32 *)((IUH)Gdp + 276)) +#define GLOBAL_DsStruct_wlimit (*(IU32 *)((IUH)Gdp + 280)) +#define GLOBAL_DsDescSanctuary (*(struct GLDC_REC* *)((IUH)Gdp + 284)) +#define GLOBAL_FsSel (*(IU16 *)((IUH)Gdp + 288 + 2)) +#define GLOBAL_FsBase (*(IU32 *)((IUH)Gdp + 292)) +#define GLOBAL_FsDesc (*(struct GLDC_REC* *)((IUH)Gdp + 296)) +#define GLOBAL_FsStruct_rlimit (*(IU32 *)((IUH)Gdp + 300)) +#define GLOBAL_FsStruct_wlimit (*(IU32 *)((IUH)Gdp + 304)) +#define GLOBAL_FsDescSanctuary (*(struct GLDC_REC* *)((IUH)Gdp + 308)) +#define GLOBAL_GsSel (*(IU16 *)((IUH)Gdp + 312 + 2)) +#define GLOBAL_GsBase (*(IU32 *)((IUH)Gdp + 316)) +#define GLOBAL_GsDesc (*(struct GLDC_REC* *)((IUH)Gdp + 320)) +#define GLOBAL_GsStruct_rlimit (*(IU32 *)((IUH)Gdp + 324)) +#define GLOBAL_GsStruct_wlimit (*(IU32 *)((IUH)Gdp + 328)) +#define GLOBAL_GsDescSanctuary (*(struct GLDC_REC* *)((IUH)Gdp + 332)) +#define GLOBAL_CPL (*(IUH *)((IUH)Gdp + 336)) +#define GLOBAL_GdtrBase (*(IU32 *)((IUH)Gdp + 340)) +#define GLOBAL_GdtrLimit (*(IU16 *)((IUH)Gdp + 344 + 2)) +#define GLOBAL_LdtSel (*(IU16 *)((IUH)Gdp + 348 + 2)) +#define GLOBAL_LdtrBase (*(IU32 *)((IUH)Gdp + 352)) +#define GLOBAL_LdtrLimit (*(IU32 *)((IUH)Gdp + 356)) +#define GLOBAL_TrSel (*(IU16 *)((IUH)Gdp + 360 + 2)) +#define GLOBAL_TrBase (*(IU32 *)((IUH)Gdp + 364)) +#define GLOBAL_TrLimit (*(IU32 *)((IUH)Gdp + 368)) +#define GLOBAL_TrDescSt (*(IUH *)((IUH)Gdp + 372)) +#define GLOBAL_TrIoBase (*(IU32 *)((IUH)Gdp + 376)) +#define GLOBAL_TrIoLimit (*(IS32 *)((IUH)Gdp + 380)) +#define GLOBAL_IdtrBase (*(IU32 *)((IUH)Gdp + 384)) +#define GLOBAL_IdtrLimit (*(IU16 *)((IUH)Gdp + 388 + 2)) +#define GLOBAL_AbortPigRun (*(IUH *)((IUH)Gdp + 392)) +#define GLOBAL_RegsAndFlagsUndefined (*(IUH *)((IUH)Gdp + 396)) +#define GLOBAL_SigalrmOccurred (*(IUH *)((IUH)Gdp + 400)) +#define GLOBAL_PigEnabled (*(IUH *)((IUH)Gdp + 404)) +#define GLOBAL_EFLAGS (*(IUH *)((IUH)Gdp + 408)) +#define GLOBAL_Ft (*(IUH *)((IUH)Gdp + 412)) +#define GLOBAL_F1 (*(IUH *)((IUH)Gdp + 416)) +#define GLOBAL_F2 (*(IUH *)((IUH)Gdp + 420)) +#define GLOBAL_F3 (*(IUH *)((IUH)Gdp + 424)) +#define GLOBAL_R_CR0 (*(IUH *)((IUH)Gdp + 428)) +#define GLOBAL_R_CR1 (*(IUH *)((IUH)Gdp + 432)) +#define GLOBAL_R_CR2 (*(IUH *)((IUH)Gdp + 436)) +#define GLOBAL_R_CR3 (*(IUH *)((IUH)Gdp + 440)) +#define GLOBAL_R_CR4 (*(IUH *)((IUH)Gdp + 444)) +#define GLOBAL_R_CR5 (*(IUH *)((IUH)Gdp + 448)) +#define GLOBAL_R_CR6 (*(IUH *)((IUH)Gdp + 452)) +#define GLOBAL_R_CR7 (*(IUH *)((IUH)Gdp + 456)) +#define GLOBAL_R_TR0 (*(IUH *)((IUH)Gdp + 460)) +#define GLOBAL_R_TR1 (*(IUH *)((IUH)Gdp + 464)) +#define GLOBAL_R_TR2 (*(IUH *)((IUH)Gdp + 468)) +#define GLOBAL_R_TR3 (*(IUH *)((IUH)Gdp + 472)) +#define GLOBAL_R_TR4 (*(IUH *)((IUH)Gdp + 476)) +#define GLOBAL_R_TR5 (*(IUH *)((IUH)Gdp + 480)) +#define GLOBAL_R_TR6 (*(IUH *)((IUH)Gdp + 484)) +#define GLOBAL_R_TR7 (*(IUH *)((IUH)Gdp + 488)) +#define GLOBAL_R_DR0 (*(IUH *)((IUH)Gdp + 492)) +#define GLOBAL_R_DR1 (*(IUH *)((IUH)Gdp + 496)) +#define GLOBAL_R_DR2 (*(IUH *)((IUH)Gdp + 500)) +#define GLOBAL_R_DR3 (*(IUH *)((IUH)Gdp + 504)) +#define GLOBAL_R_DR4 (*(IUH *)((IUH)Gdp + 508)) +#define GLOBAL_R_DR5 (*(IUH *)((IUH)Gdp + 512)) +#define GLOBAL_R_DR6 (*(IUH *)((IUH)Gdp + 516)) +#define GLOBAL_R_DR7 (*(IUH *)((IUH)Gdp + 520)) +#define GLOBAL_PARAM1 (*(IUH *)((IUH)Gdp + 524)) +#define GLOBAL_PARAM2 (*(IUH *)((IUH)Gdp + 528)) +#define GLOBAL_PARAM3 (*(IUH *)((IUH)Gdp + 532)) +#define GLOBAL_BytePtr (*(IU8* *)((IUH)Gdp + 536)) +#define GLOBAL_WordPtr (*(IU16* *)((IUH)Gdp + 540)) +#define GLOBAL_DwordPtr (*(IU32* *)((IUH)Gdp + 544)) +#define GLOBAL_EaOffs (*(IUH *)((IUH)Gdp + 548)) +#define GLOBAL_DATA1 (*(IUH *)((IUH)Gdp + 552)) +#define GLOBAL_DATA2 (*(IUH *)((IUH)Gdp + 556)) +#define GLOBAL_InNanoCpu (*(IBOOL *)((IUH)Gdp + 560 + 3)) +#define GLOBAL_UseNanoCpu (*(IBOOL *)((IUH)Gdp + 564 + 3)) +#define GLOBAL_UseLightCompiler (*(IBOOL *)((IUH)Gdp + 568 + 3)) +#define GLOBAL_UseCCodeCopier (*(IBOOL *)((IUH)Gdp + 572 + 3)) +#define GLOBAL_seenWithFlags (*(IBOOL *)((IUH)Gdp + 576 + 3)) +#define GLOBAL_needNextIntelEip (*(IBOOL *)((IUH)Gdp + 580 + 3)) +#define GLOBAL_LastSetCopierUniverse (*(struct EntryPointCacheREC* *)((IUH)Gdp + 584)) +#define GLOBAL_CopierUniverse (*(struct EntryPointCacheREC* *)((IUH)Gdp + 588)) +#define GLOBAL_CopierBitMap (*(struct ConstraintBitMapREC* *)((IUH)Gdp + 592)) +#define GLOBAL_lastCopierBitMap (*(struct ConstraintBitMapREC* *)((IUH)Gdp + 596)) +#define GLOBAL_currPFragInfoRec (*(struct FragmentInfoREC* *)((IUH)Gdp + 600)) +#define GLOBAL_copierCleanups (*(IU8* *)((IUH)Gdp + 604)) +#define GLOBAL_lastHostCleanup (*(IU8* *)((IUH)Gdp + 608)) +#define GLOBAL_lastHostAddress (*(IU32* *)((IUH)Gdp + 612)) +#define GLOBAL_lastIntelAddress (*(IU32 *)((IUH)Gdp + 616)) +#define GLOBAL_destHashTable (*(struct JUMP_REC** *)((IUH)Gdp + 620)) +#define GLOBAL_jumpHashTable (*(struct JUMP_REC** *)((IUH)Gdp + 624)) +#define GLOBAL_freeJumpRecPtr (*(struct JUMP_REC* *)((IUH)Gdp + 628)) +#define GLOBAL_nextFreeJumpRec (*(struct JUMP_REC* *)((IUH)Gdp + 632)) +#define GLOBAL_freeJumpRecCount (*(IU32 *)((IUH)Gdp + 636)) +#define GLOBAL_poolJumpRecCount (*(IU32 *)((IUH)Gdp + 640)) +#define GLOBAL_vctPtrs (*(struct VCT_NODE_REC** *)((IUH)Gdp + 644)) +#define GLOBAL_anonPtrs (*(struct VCT_NODE_REC** *)((IUH)Gdp + 648)) +#define GLOBAL_tuples (*(struct TUPLE_REC* *)((IUH)Gdp + 652)) +#define GLOBAL_cursor (*(struct TUPLE_REC* *)((IUH)Gdp + 656)) +#define GLOBAL_tuplePtr (*(struct TUPLE_REC* *)((IUH)Gdp + 660)) +#define GLOBAL_patchRecPtr (*(IU8* *)((IUH)Gdp + 664)) +#define GLOBAL_srcPtr (*(IU32* *)((IUH)Gdp + 668)) +#define GLOBAL_dstPtr (*(IU32* *)((IUH)Gdp + 672)) +#define GLOBAL_PatchMeBodyAddr (*(IU32* *)((IUH)Gdp + 676)) +#define GLOBAL_patchTable (*(IU32** *)((IUH)Gdp + 680)) +#define GLOBAL_patchNames (*(IU8** *)((IUH)Gdp + 684)) +#define GLOBAL_CopierFt (*(IUH *)((IUH)Gdp + 688)) +#define GLOBAL_FtIsLazy (*(IBOOL *)((IUH)Gdp + 692 + 3)) +#define GLOBAL_lastLazyFt (*(IUH *)((IUH)Gdp + 696)) +#define GLOBAL_univVarMask (*(IU32 *)((IUH)Gdp + 700)) +#define GLOBAL_zCoRoRetEFI (*(IU16 *)((IUH)Gdp + 704 + 2)) +#define GLOBAL_zPatchMeEFI (*(IU16 *)((IUH)Gdp + 708 + 2)) +#define GLOBAL_zPostPopEFI (*(IU16 *)((IUH)Gdp + 712 + 2)) +#define GLOBAL_zAdjustHspEFI (*(IU16 *)((IUH)Gdp + 716 + 2)) +#define GLOBAL_cumulativeStackMovement (*(ISH *)((IUH)Gdp + 720)) +#define GLOBAL_lastInstructionInFragment (*(IBOOL *)((IUH)Gdp + 724 + 3)) +#define GLOBAL_lateInInstruction (*(IBOOL *)((IUH)Gdp + 728 + 3)) +#define GLOBAL_ReSelectVariant (*(IBOOL *)((IUH)Gdp + 732 + 3)) +#define GLOBAL_ReSelectTupleSkipCnt (*(ISH *)((IUH)Gdp + 736)) +#define GLOBAL_postPopPending (*(IBOOL *)((IUH)Gdp + 740 + 3)) +#define GLOBAL_postPopSize (*(IU32 *)((IUH)Gdp + 744)) +#define GLOBAL_compTimeFtBitNum (*(IU32 *)((IUH)Gdp + 748)) +#define GLOBAL_accIsReadBitMask (*(IU32 *)((IUH)Gdp + 752)) +#define GLOBAL_noFlagsBitMask (*(IU32 *)((IUH)Gdp + 756)) +#define GLOBAL_OutlyingDispatchEIPAddr (*(IU32* *)((IUH)Gdp + 760)) +#define GLOBAL_PARAM1RegId (*(IU32 *)((IUH)Gdp + 764)) +#define GLOBAL_stashedImmed1 (*(IUH *)((IUH)Gdp + 768)) +#define GLOBAL_stashedImmed2 (*(IUH *)((IUH)Gdp + 772)) +#define GLOBAL_stashedImmed3 (*(IUH *)((IUH)Gdp + 776)) +#define GLOBAL_stashedImmed4 (*(IUH *)((IUH)Gdp + 780)) +#define GLOBAL_stashedImmed5 (*(IUH *)((IUH)Gdp + 784)) +#define GLOBAL_EDL_WORKSPACE_32 (*(IUH *)((IUH)Gdp + 788)) +#define GLOBAL_EDL_WORKSPACE_33 (*(IUH *)((IUH)Gdp + 792)) +#define GLOBAL_EDL_WORKSPACE_34 (*(IUH *)((IUH)Gdp + 796)) +#define GLOBAL_CleanedRec (*(struct CleanedREC *)((IUH)Gdp + 800)) +#define GLOBAL_Universe (*(struct EntryPointCacheREC* *)((IUH)Gdp + 820)) +#define GLOBAL_EntryPointCache (*(struct EntryPointCacheREC* *)((IUH)Gdp + 824)) +#define GLOBAL_CsLinear (*(IU32 *)((IUH)Gdp + 828)) +#define GLOBAL_JumpCounter (*(ISH *)((IUH)Gdp + 832)) +#define GLOBAL_JumpRestart (*(ISH *)((IUH)Gdp + 836)) +#define GLOBAL_JumpCalibrate (*(ISH *)((IUH)Gdp + 840)) +#define GLOBAL_InitialJumpCounter (*(ISH *)((IUH)Gdp + 844)) +#define GLOBAL_minimumInitialVal (*(IUH *)((IUH)Gdp + 848)) +#define GLOBAL_IretHookStack (*(struct IretHookStackREC* *)((IUH)Gdp + 852)) +#define GLOBAL_IretHookStackIndex (*(ISH *)((IUH)Gdp + 856)) +#define GLOBAL_InstructionCount (*(IUH *)((IUH)Gdp + 860)) +#define GLOBAL_CsSelectorHashTable (*(struct CsSelectorHashREC* *)((IUH)Gdp + 864)) +#define GLOBAL_NextFreeUniverseHandle (*(IUH *)((IUH)Gdp + 868)) +#define GLOBAL_UniHashTable (*(struct UniHashREC* *)((IUH)Gdp + 872)) +#define GLOBAL_NextFreeUniHashEntry (*(struct UniHashREC* *)((IUH)Gdp + 876)) +#define GLOBAL_NewUniverseBitMapRec (*(struct ConstraintBitMapREC *)((IUH)Gdp + 880)) +#define GLOBAL_Constraint2CvMap (*(IU32* *)((IUH)Gdp + 888)) +#define GLOBAL_InsertBPIs (*(IBOOL *)((IUH)Gdp + 892 + 3)) +#define GLOBAL_UseUniverseHash (*(IBOOL *)((IUH)Gdp + 896 + 3)) +#define GLOBAL_VirtualiseDataSel (*(IU16 *)((IUH)Gdp + 900 + 2)) +#define GLOBAL_VirtualiseCodeSel (*(IU16 *)((IUH)Gdp + 904 + 2)) +#define GLOBAL_VirtualiseSelsSet (*(IBOOL *)((IUH)Gdp + 908 + 3)) +#define GLOBAL_EDL_WORKSPACE_35 (*(IUH *)((IUH)Gdp + 912)) +#define GLOBAL_EDL_WORKSPACE_36 (*(IUH *)((IUH)Gdp + 916)) +#define GLOBAL_EDL_WORKSPACE_37 (*(IUH *)((IUH)Gdp + 920)) +#define GLOBAL_EDL_WORKSPACE_38 (*(IUH *)((IUH)Gdp + 924)) +#define GLOBAL_TraceRingRec (*(struct TraceRingREC *)((IUH)Gdp + 928)) +#define GLOBAL_EAXsaved (*(IUH *)((IUH)Gdp + 948)) +#define GLOBAL_EBXsaved (*(IUH *)((IUH)Gdp + 952)) +#define GLOBAL_ECXsaved (*(IUH *)((IUH)Gdp + 956)) +#define GLOBAL_EDXsaved (*(IUH *)((IUH)Gdp + 960)) +#define GLOBAL_ESIsaved (*(IUH *)((IUH)Gdp + 964)) +#define GLOBAL_EDIsaved (*(IUH *)((IUH)Gdp + 968)) +#define GLOBAL_EBPsaved (*(IUH *)((IUH)Gdp + 972)) +#define GLOBAL_SafeToReturnToFragment (*(IBOOL *)((IUH)Gdp + 976 + 3)) +#define GLOBAL_InsideTheCpu (*(IBOOL *)((IUH)Gdp + 980 + 3)) +#define GLOBAL_SimulateContext (*(IUH* *)((IUH)Gdp + 984)) +#define GLOBAL_SimulateNestingLevel (*(IUH *)((IUH)Gdp + 988)) +#define GLOBAL_Pigging (*(IBOOL *)((IUH)Gdp + 992 + 3)) +#define GLOBAL_tempEIP (*(IU32 *)((IUH)Gdp + 996)) +#define GLOBAL_UseEntryPointCache (*(IBOOL *)((IUH)Gdp + 1000 + 3)) +#define GLOBAL_CpuIsInitialised (*(IBOOL *)((IUH)Gdp + 1004 + 3)) +#define GLOBAL_AR_FixupWanted (*(IBOOL *)((IUH)Gdp + 1008 + 3)) +#define GLOBAL_D6isBop (*(IBOOL *)((IUH)Gdp + 1012 + 3)) +#define GLOBAL_BopTable (*(IU8** *)((IUH)Gdp + 1016)) +#define GLOBAL_LxS_hackyfix (*(IUH *)((IUH)Gdp + 1020)) +#define GLOBAL_SavedFt (*(IUH *)((IUH)Gdp + 1024)) +#define GLOBAL_SavedCF (*(IUH *)((IUH)Gdp + 1028)) +#define GLOBAL_SavedZF (*(IUH *)((IUH)Gdp + 1032)) +#define GLOBAL_SavedOF (*(IUH *)((IUH)Gdp + 1036)) +#define GLOBAL_UsedD6 (*(IUH *)((IUH)Gdp + 1040)) +#define GLOBAL_buildOp1 (*(IUH *)((IUH)Gdp + 1044)) +#define GLOBAL_buildOp2 (*(IUH *)((IUH)Gdp + 1048)) +#define GLOBAL_buildOp3 (*(IU32 *)((IUH)Gdp + 1052)) +#define GLOBAL_buildOp4 (*(IU32 *)((IUH)Gdp + 1056)) +#define GLOBAL_buildOp5 (*(IUH *)((IUH)Gdp + 1060)) +#define GLOBAL_buildOp6 (*(IBOOL *)((IUH)Gdp + 1064 + 3)) +#define GLOBAL_EDL_WORKSPACE_39 (*(IUH *)((IUH)Gdp + 1068)) +#define GLOBAL_EDL_WORKSPACE_40 (*(IUH *)((IUH)Gdp + 1072)) +#define GLOBAL_EDL_WORKSPACE_41 (*(IUH *)((IUH)Gdp + 1076)) +#define GLOBAL_EDL_WORKSPACE_42 (*(IUH *)((IUH)Gdp + 1080)) +#define GLOBAL_EDL_WORKSPACE_43 (*(IUH *)((IUH)Gdp + 1084)) +#define GLOBAL_EDL_WORKSPACE_44 (*(IUH *)((IUH)Gdp + 1088)) +#define GLOBAL_EDL_WORKSPACE_45 (*(IUH *)((IUH)Gdp + 1092)) +#define GLOBAL_EDL_WORKSPACE_46 (*(IUH *)((IUH)Gdp + 1096)) +#define GLOBAL_EDL_WORKSPACE_47 (*(IUH *)((IUH)Gdp + 1100)) +#define GLOBAL_EDL_WORKSPACE_48 (*(IUH *)((IUH)Gdp + 1104)) +#define GLOBAL_EDL_WORKSPACE_49 (*(IUH *)((IUH)Gdp + 1108)) +#define GLOBAL_EDL_WORKSPACE_50 (*(IUH *)((IUH)Gdp + 1112)) +#define GLOBAL_EDL_WORKSPACE_51 (*(IUH *)((IUH)Gdp + 1116)) +#define GLOBAL_EDL_WORKSPACE_52 (*(IUH *)((IUH)Gdp + 1120)) +#define GLOBAL_EDL_WORKSPACE_53 (*(IUH *)((IUH)Gdp + 1124)) +#define GLOBAL_EDL_WORKSPACE_54 (*(IUH *)((IUH)Gdp + 1128)) +#define GLOBAL_EDL_WORKSPACE_55 (*(IUH *)((IUH)Gdp + 1132)) +#define GLOBAL_EDL_WORKSPACE_56 (*(IUH *)((IUH)Gdp + 1136)) +#define GLOBAL_EDL_WORKSPACE_57 (*(IUH *)((IUH)Gdp + 1140)) +#define GLOBAL_EDL_WORKSPACE_58 (*(IUH *)((IUH)Gdp + 1144)) +#define GLOBAL_EDL_WORKSPACE_59 (*(IUH *)((IUH)Gdp + 1148)) +#define GLOBAL_EDL_WORKSPACE_60 (*(IUH *)((IUH)Gdp + 1152)) +#define GLOBAL_EDL_WORKSPACE_61 (*(IUH *)((IUH)Gdp + 1156)) +#define GLOBAL_EDL_WORKSPACE_62 (*(IUH *)((IUH)Gdp + 1160)) +#define GLOBAL_EDL_WORKSPACE_63 (*(IUH *)((IUH)Gdp + 1164)) +#define GLOBAL_EDL_WORKSPACE_64 (*(IUH *)((IUH)Gdp + 1168)) +#define GLOBAL_EDL_WORKSPACE_65 (*(IUH *)((IUH)Gdp + 1172)) +#define GLOBAL_EDL_WORKSPACE_66 (*(IUH *)((IUH)Gdp + 1176)) +#define GLOBAL_EDL_WORKSPACE_67 (*(IUH *)((IUH)Gdp + 1180)) +#define GLOBAL_EDL_WORKSPACE_68 (*(IUH *)((IUH)Gdp + 1184)) +#define GLOBAL_EDL_WORKSPACE_69 (*(IUH *)((IUH)Gdp + 1188)) +#define GLOBAL_EDL_WORKSPACE_70 (*(IUH *)((IUH)Gdp + 1192)) +#define GLOBAL_EDL_WORKSPACE_71 (*(IUH *)((IUH)Gdp + 1196)) +#define GLOBAL_EDL_WORKSPACE_72 (*(IUH *)((IUH)Gdp + 1200)) +#define GLOBAL_EDL_WORKSPACE_73 (*(IUH *)((IUH)Gdp + 1204)) +#define GLOBAL_EDL_WORKSPACE_74 (*(IUH *)((IUH)Gdp + 1208)) +#define GLOBAL_EDL_WORKSPACE_75 (*(IUH *)((IUH)Gdp + 1212)) +#define GLOBAL_EDL_WORKSPACE_76 (*(IUH *)((IUH)Gdp + 1216)) +#define GLOBAL_EDL_WORKSPACE_77 (*(IUH *)((IUH)Gdp + 1220)) +#define GLOBAL_EDL_WORKSPACE_78 (*(IUH *)((IUH)Gdp + 1224)) +#define GLOBAL_EDL_WORKSPACE_79 (*(IUH *)((IUH)Gdp + 1228)) +#define GLOBAL_EDL_WORKSPACE_80 (*(IUH *)((IUH)Gdp + 1232)) +#define GLOBAL_EDL_WORKSPACE_81 (*(IUH *)((IUH)Gdp + 1236)) +#define GLOBAL_EDL_WORKSPACE_82 (*(IUH *)((IUH)Gdp + 1240)) +#define GLOBAL_EDL_WORKSPACE_83 (*(IUH *)((IUH)Gdp + 1244)) +#define GLOBAL_EDL_WORKSPACE_84 (*(IUH *)((IUH)Gdp + 1248)) +#define GLOBAL_EDL_WORKSPACE_85 (*(IUH *)((IUH)Gdp + 1252)) +#define GLOBAL_EDL_WORKSPACE_86 (*(IUH *)((IUH)Gdp + 1256)) +#define GLOBAL_EDL_WORKSPACE_87 (*(IUH *)((IUH)Gdp + 1260)) +#define GLOBAL_EDL_WORKSPACE_88 (*(IUH *)((IUH)Gdp + 1264)) +#define GLOBAL_EDL_WORKSPACE_89 (*(IUH *)((IUH)Gdp + 1268)) +#define GLOBAL_EDL_WORKSPACE_90 (*(IUH *)((IUH)Gdp + 1272)) +#define GLOBAL_EDL_WORKSPACE_91 (*(IUH *)((IUH)Gdp + 1276)) +#define GLOBAL_VGAGlobals (*(struct VGAGLOBALSETTINGS *)((IUH)Gdp + 1280)) +#define GLOBAL_VidMarkFuncTable (*(IUH** *)((IUH)Gdp + 1436)) +#define GLOBAL_VidReadFuncTable (*(IUH** *)((IUH)Gdp + 1440)) +#define GLOBAL_VidWriteFuncTable (*(IUH** *)((IUH)Gdp + 1444)) +#define GLOBAL_EDL_WORKSPACE_92 (*(IUH *)((IUH)Gdp + 1448)) +#define GLOBAL_EDL_WORKSPACE_93 (*(IUH *)((IUH)Gdp + 1452)) +#define GLOBAL_EDL_WORKSPACE_94 (*(IUH *)((IUH)Gdp + 1456)) +#define GLOBAL_EDL_WORKSPACE_95 (*(IUH *)((IUH)Gdp + 1460)) +#define GLOBAL_EDL_WORKSPACE_96 (*(IUH *)((IUH)Gdp + 1464)) +#define GLOBAL_EDL_WORKSPACE_97 (*(IUH *)((IUH)Gdp + 1468)) +#define GLOBAL_ActiveVideoWrites (*(struct EVIDWRITES *)((IUH)Gdp + 1472)) +#define GLOBAL_EDL_WORKSPACE_98 (*(IUH *)((IUH)Gdp + 1520)) +#define GLOBAL_EDL_WORKSPACE_99 (*(IUH *)((IUH)Gdp + 1524)) +#define GLOBAL_EDL_WORKSPACE_100 (*(IUH *)((IUH)Gdp + 1528)) +#define GLOBAL_EDL_WORKSPACE_101 (*(IUH *)((IUH)Gdp + 1532)) +#define GLOBAL_ActiveVideoReads (*(struct EVIDREADS *)((IUH)Gdp + 1536)) +#define GLOBAL_EDL_WORKSPACE_102 (*(IUH *)((IUH)Gdp + 1556)) +#define GLOBAL_EDL_WORKSPACE_103 (*(IUH *)((IUH)Gdp + 1560)) +#define GLOBAL_EDL_WORKSPACE_104 (*(IUH *)((IUH)Gdp + 1564)) +#define GLOBAL_ActiveVideoMarks (*(struct EVIDMARKS *)((IUH)Gdp + 1568)) +#define GLOBAL_MaxIntelPageNumber (*(IU32 *)((IUH)Gdp + 1584)) +#define GLOBAL_PageDirectoryPtr (*(IU32* *)((IUH)Gdp + 1588)) +#define GLOBAL_DebuggerPFLA (*(IU32 *)((IUH)Gdp + 1592)) +#define GLOBAL_DebuggerFaultAction (*(IUH *)((IUH)Gdp + 1596)) +#define GLOBAL_InsideDebugger (*(ISH *)((IUH)Gdp + 1600)) +#define GLOBAL_EDL_WORKSPACE_105 (*(IUH *)((IUH)Gdp + 1604)) +#define GLOBAL_EDL_WORKSPACE_106 (*(IUH *)((IUH)Gdp + 1608)) +#define GLOBAL_EDL_WORKSPACE_107 (*(IUH *)((IUH)Gdp + 1612)) +#define GLOBAL_EDL_WORKSPACE_108 (*(IUH *)((IUH)Gdp + 1616)) +#define GLOBAL_EDL_WORKSPACE_109 (*(IUH *)((IUH)Gdp + 1620)) +#define GLOBAL_EDL_WORKSPACE_110 (*(IUH *)((IUH)Gdp + 1624)) +#define GLOBAL_EDL_WORKSPACE_111 (*(IUH *)((IUH)Gdp + 1628)) +#define GLOBAL_EDL_WORKSPACE_112 (*(IUH *)((IUH)Gdp + 1632)) +#define GLOBAL_EDL_WORKSPACE_113 (*(IUH *)((IUH)Gdp + 1636)) +#define GLOBAL_EDL_WORKSPACE_114 (*(IUH *)((IUH)Gdp + 1640)) +#define GLOBAL_EDL_WORKSPACE_115 (*(IUH *)((IUH)Gdp + 1644)) +#define GLOBAL_EDL_WORKSPACE_116 (*(IUH *)((IUH)Gdp + 1648)) +#define GLOBAL_EDL_WORKSPACE_117 (*(IUH *)((IUH)Gdp + 1652)) +#define GLOBAL_EDL_WORKSPACE_118 (*(IUH *)((IUH)Gdp + 1656)) +#define GLOBAL_EDL_WORKSPACE_119 (*(IUH *)((IUH)Gdp + 1660)) +#define GLOBAL_VirtualisationBIOSOffsets (*(struct VirtualisationBIOSOffsetsREC *)((IUH)Gdp + 1664)) +#define GLOBAL_DelayedPDTEoverwiteList (*(struct DelayedPDTEoverwiteREC* *)((IUH)Gdp + 1712)) +#define GLOBAL_SasMemoryType (*(IU8* *)((IUH)Gdp + 1716)) +#define GLOBAL_PhysicalPageRecords (*(struct PhysicalPageREC* *)((IUH)Gdp + 1720)) +#define GLOBAL_PhysicalPageMemory (*(IU8** *)((IUH)Gdp + 1724)) +#define GLOBAL_TwentyBitWrapStatus (*(IBOOL *)((IUH)Gdp + 1728 + 3)) +#define GLOBAL_MultipleRecompilationCount (*(IUH *)((IUH)Gdp + 1732)) +#define GLOBAL_MaxMultipleRecompilation (*(IUH *)((IUH)Gdp + 1736)) +#define GLOBAL_HideCompiledFragment (*(IBOOL *)((IUH)Gdp + 1740 + 3)) +#define GLOBAL_RestartAfterCodeOverwrite (*(IBOOL *)((IUH)Gdp + 1744 + 3)) +#define GLOBAL_DoingCompilation (*(IBOOL *)((IUH)Gdp + 1748 + 3)) +#define GLOBAL_SanityCheckStructures (*(IBOOL *)((IUH)Gdp + 1752 + 3)) +#define GLOBAL_FragCounts (*(IU8* *)((IUH)Gdp + 1756)) +#define GLOBAL_ControlBlock (*(struct CompilationControlREC *)((IUH)Gdp + 1760)) +#define GLOBAL_EDL_WORKSPACE_120 (*(IUH *)((IUH)Gdp + 1776)) +#define GLOBAL_EDL_WORKSPACE_121 (*(IUH *)((IUH)Gdp + 1780)) +#define GLOBAL_EDL_WORKSPACE_122 (*(IUH *)((IUH)Gdp + 1784)) +#define GLOBAL_EDL_WORKSPACE_123 (*(IUH *)((IUH)Gdp + 1788)) +#define GLOBAL_CompilationBlock (*(struct BLOCK_TO_COMPILE *)((IUH)Gdp + 1792)) +#define GLOBAL_EDL_WORKSPACE_124 (*(IUH *)((IUH)Gdp + 1824)) +#define GLOBAL_EDL_WORKSPACE_125 (*(IUH *)((IUH)Gdp + 1828)) +#define GLOBAL_EDL_WORKSPACE_126 (*(IUH *)((IUH)Gdp + 1832)) +#define GLOBAL_EDL_WORKSPACE_127 (*(IUH *)((IUH)Gdp + 1836)) +#define GLOBAL_EDL_WORKSPACE_128 (*(IUH *)((IUH)Gdp + 1840)) +#define GLOBAL_EDL_WORKSPACE_129 (*(IUH *)((IUH)Gdp + 1844)) +#define GLOBAL_EDL_WORKSPACE_130 (*(IUH *)((IUH)Gdp + 1848)) +#define GLOBAL_EDL_WORKSPACE_131 (*(IUH *)((IUH)Gdp + 1852)) +#define GLOBAL_EDL_WORKSPACE_132 (*(IUH *)((IUH)Gdp + 1856)) +#define GLOBAL_EDL_WORKSPACE_133 (*(IUH *)((IUH)Gdp + 1860)) +#define GLOBAL_EDL_WORKSPACE_134 (*(IUH *)((IUH)Gdp + 1864)) +#define GLOBAL_EDL_WORKSPACE_135 (*(IUH *)((IUH)Gdp + 1868)) +#define GLOBAL_EDL_WORKSPACE_136 (*(IUH *)((IUH)Gdp + 1872)) +#define GLOBAL_EDL_WORKSPACE_137 (*(IUH *)((IUH)Gdp + 1876)) +#define GLOBAL_EDL_WORKSPACE_138 (*(IUH *)((IUH)Gdp + 1880)) +#define GLOBAL_EDL_WORKSPACE_139 (*(IUH *)((IUH)Gdp + 1884)) +#define GLOBAL_EDL_WORKSPACE_140 (*(IUH *)((IUH)Gdp + 1888)) +#define GLOBAL_EDL_WORKSPACE_141 (*(IUH *)((IUH)Gdp + 1892)) +#define GLOBAL_EDL_WORKSPACE_142 (*(IUH *)((IUH)Gdp + 1896)) +#define GLOBAL_EDL_WORKSPACE_143 (*(IUH *)((IUH)Gdp + 1900)) +#define GLOBAL_EDL_WORKSPACE_144 (*(IUH *)((IUH)Gdp + 1904)) +#define GLOBAL_EDL_WORKSPACE_145 (*(IUH *)((IUH)Gdp + 1908)) +#define GLOBAL_EDL_WORKSPACE_146 (*(IUH *)((IUH)Gdp + 1912)) +#define GLOBAL_EDL_WORKSPACE_147 (*(IUH *)((IUH)Gdp + 1916)) +#define GLOBAL_ProtAllocationRec (*(struct ProtAllocationREC *)((IUH)Gdp + 1920)) +#define GLOBAL_LightCompiledLRUrec (*(struct BufferIndexREC* *)((IUH)Gdp + 2016)) +#define GLOBAL_NextPhysicalPage (*(IUH *)((IUH)Gdp + 2020)) +#define GLOBAL_FreeMaps (*(struct TranslationMapREC* *)((IUH)Gdp + 2024)) +#define GLOBAL_TranslationCache (*(struct TranslationCacheREC* *)((IUH)Gdp + 2028)) +#define GLOBAL_CrossPageInstructions (*(IU8* *)((IUH)Gdp + 2032)) +#define GLOBAL_IHook (*(IU32 *)((IUH)Gdp + 2036)) +#define GLOBAL_InterruptRec (*(struct InterruptREC *)((IUH)Gdp + 2040)) +#define GLOBAL_SasReInitNow (*(IBOOL *)((IUH)Gdp + 2048 + 3)) +#define GLOBAL_SasReInitSize (*(IU32 *)((IUH)Gdp + 2052)) +#define GLOBAL_EDL_WORKSPACE_148 (*(IUH *)((IUH)Gdp + 2056)) +#define GLOBAL_EDL_WORKSPACE_149 (*(IUH *)((IUH)Gdp + 2060)) +#define GLOBAL_EDL_WORKSPACE_150 (*(IUH *)((IUH)Gdp + 2064)) +#define GLOBAL_EDL_WORKSPACE_151 (*(IUH *)((IUH)Gdp + 2068)) +#define GLOBAL_EDL_WORKSPACE_152 (*(IUH *)((IUH)Gdp + 2072)) +#define GLOBAL_EDL_WORKSPACE_153 (*(IUH *)((IUH)Gdp + 2076)) +#define GLOBAL_QuickTickerRec (*(struct QuickTickerREC *)((IUH)Gdp + 2080)) +#define GLOBAL_PigSynchCount (*(IUH *)((IUH)Gdp + 2104)) +#define GLOBAL_CodeBufferNoRepair (*(IBOOL *)((IUH)Gdp + 2108 + 3)) +#define GLOBAL_OutLinePatchBlock (*(IU32* *)((IUH)Gdp + 2112)) +#define GLOBAL_OutLinePatchBlockSize (*(IU32 *)((IUH)Gdp + 2116)) +#define GLOBAL_AllBuffers (*(struct BufferIndexREC* *)((IUH)Gdp + 2120)) +#define GLOBAL_LightBufferLRU (*(struct BufferIndexREC* *)((IUH)Gdp + 2124)) +#define GLOBAL_CompilationBuffer (*(struct BufferIndexREC* *)((IUH)Gdp + 2128)) +#define GLOBAL_PendingDeletions (*(struct BufferIndexREC* *)((IUH)Gdp + 2132)) +#define GLOBAL_FragmentInfoArray (*(struct FragmentInfoREC* *)((IUH)Gdp + 2136)) +#define GLOBAL_HostCodeBufferLimit (*(IU32* *)((IUH)Gdp + 2140)) +#define GLOBAL_CopiedCleanups (*(IU8* *)((IUH)Gdp + 2144)) +#define GLOBAL_FreeDebugInfoList (*(struct DebugInfoREC* *)((IUH)Gdp + 2148)) +#define GLOBAL_CodeBufferOverrun (*(IU32* *)((IUH)Gdp + 2152)) +#define GLOBAL_OverrunHighWaterMark (*(IU32* *)((IUH)Gdp + 2156)) +#define GLOBAL_NumberOfBuffers (*(IU16 *)((IUH)Gdp + 2160 + 2)) +#define GLOBAL_BpiCompilationBuffer (*(struct BufferIndexREC* *)((IUH)Gdp + 2164)) +#define GLOBAL_NextFragmentIndex (*(struct FragmentIndexREC* *)((IUH)Gdp + 2168)) +#define GLOBAL_NextFragmentData (*(struct FragmentDataREC* *)((IUH)Gdp + 2172)) +#define GLOBAL_FpuDisabled (*(IBOOL *)((IUH)Gdp + 2176 + 3)) +#define GLOBAL_NpxControl (*(IUH *)((IUH)Gdp + 2180)) +#define GLOBAL_NpxStatus (*(IUH *)((IUH)Gdp + 2184)) +#define GLOBAL_NpxFEA (*(IUH *)((IUH)Gdp + 2188)) +#define GLOBAL_NpxFDS (*(IUH *)((IUH)Gdp + 2192)) +#define GLOBAL_NpxFIP (*(IUH *)((IUH)Gdp + 2196)) +#define GLOBAL_NpxFOP (*(IUH *)((IUH)Gdp + 2200)) +#define GLOBAL_NpxFCS (*(IUH *)((IUH)Gdp + 2204)) +#define GLOBAL_NpxLastSel (*(IUH *)((IUH)Gdp + 2208)) +#define GLOBAL_NpxLastOff (*(IUH *)((IUH)Gdp + 2212)) +#define GLOBAL_DoAPop (*(IBOOL *)((IUH)Gdp + 2216 + 3)) +#define GLOBAL_NpxException (*(IBOOL *)((IUH)Gdp + 2220 + 3)) +#define GLOBAL_npxRounding (*(IUH *)((IUH)Gdp + 2224)) +#define GLOBAL_tag_or (*(IUH *)((IUH)Gdp + 2228)) +#define GLOBAL_tag_xor (*(IUH *)((IUH)Gdp + 2232)) +#define GLOBAL_hostFpuExceptions (*(IUH *)((IUH)Gdp + 2236)) +#define GLOBAL_MaxBCDValue (*(struct FPSTACKENTRY *)((IUH)Gdp + 2240)) +#define GLOBAL_FPUpload (*(struct FPSTACKENTRY *)((IUH)Gdp + 2256)) +#define GLOBAL_ConstTable (*(struct FPSTACKENTRY* *)((IUH)Gdp + 2272)) +#define GLOBAL_FPTemp (*(struct FPSTACKENTRY* *)((IUH)Gdp + 2276)) +#define GLOBAL_FPUStackBase (*(struct FPSTACKENTRY* *)((IUH)Gdp + 2280)) +#define GLOBAL_TOSPtr (*(struct FPSTACKENTRY* *)((IUH)Gdp + 2284)) +#define GLOBAL_Npx64BitZero (*(struct FP_I64 *)((IUH)Gdp + 2288)) +#define GLOBAL_Npx64BitMaxNeg (*(struct FP_I64 *)((IUH)Gdp + 2296)) +#define GLOBAL_Npx64BitHalfMaxNeg (*(struct FP_I64 *)((IUH)Gdp + 2304)) +#define GLOBAL_Npx64BitVal1 (*(struct FP_I64 *)((IUH)Gdp + 2312)) +#define GLOBAL_FscaleTable (*(IUH* *)((IUH)Gdp + 2320)) +#define GLOBAL_CompZeroTable (*(IU32* *)((IUH)Gdp + 2324)) +#define GLOBAL_BCDLowNibble (*(struct FP_I64* *)((IUH)Gdp + 2328)) +#define GLOBAL_BCDHighNibble (*(struct FP_I64* *)((IUH)Gdp + 2332)) +#define GLOBAL_FpatanTable (*(struct FPSTACKENTRY* *)((IUH)Gdp + 2336)) +#define GLOBAL_PigSynchTable (*(struct PigSynchREC* *)((IUH)Gdp + 2340)) +#define GLOBAL_PigMissTable (*(struct PigSynchREC* *)((IUH)Gdp + 2344)) +#define GLOBAL_PigSynchPool (*(struct PigSynchREC* *)((IUH)Gdp + 2348)) +#define GLOBAL_EDL_WORKSPACE_154 (*(IUH *)((IUH)Gdp + 2352)) +#define GLOBAL_EDL_WORKSPACE_155 (*(IUH *)((IUH)Gdp + 2356)) +#define GLOBAL_EDL_WORKSPACE_156 (*(IUH *)((IUH)Gdp + 2360)) +#define GLOBAL_EDL_WORKSPACE_157 (*(IUH *)((IUH)Gdp + 2364)) +#define GLOBAL_PigCleanedRec (*(struct CleanedREC *)((IUH)Gdp + 2368)) +#define GLOBAL_PigSynchWanted (*(IBOOL *)((IUH)Gdp + 2388 + 3)) +#define GLOBAL_SadAX (*(ISH *)((IUH)Gdp + 2392)) +#define GLOBAL_SadBX (*(ISH *)((IUH)Gdp + 2396)) +#define GLOBAL_SadCX (*(ISH *)((IUH)Gdp + 2400)) +#define GLOBAL_SadDX (*(ISH *)((IUH)Gdp + 2404)) +#define GLOBAL_SadBP (*(ISH *)((IUH)Gdp + 2408)) +#define GLOBAL_SadSP (*(ISH *)((IUH)Gdp + 2412)) +#define GLOBAL_SadSI (*(ISH *)((IUH)Gdp + 2416)) +#define GLOBAL_SadDI (*(ISH *)((IUH)Gdp + 2420)) +#define GLOBAL_SadEIP (*(ISH *)((IUH)Gdp + 2424)) +#define GLOBAL_SadEFLAGS (*(ISH *)((IUH)Gdp + 2428)) +#define GLOBAL_Parameter1 (*(ISH *)((IUH)Gdp + 2432)) +#define GLOBAL_Parameter2 (*(ISH *)((IUH)Gdp + 2436)) +#define GLOBAL_BpiKnownTable (*(ISH* *)((IUH)Gdp + 2440)) +#define GLOBAL_BpiWorkTable (*(ISH* *)((IUH)Gdp + 2444)) +#define GLOBAL_BpiLabelTable (*(ISH* *)((IUH)Gdp + 2448)) +#define GLOBAL_BpiFragment (*(struct FragmentDataREC* *)((IUH)Gdp + 2452)) +#define GLOBAL_BpiCompiledCode (*(IU32* *)((IUH)Gdp + 2456)) +#define GLOBAL_BpiCompiledStep (*(IU32* *)((IUH)Gdp + 2460)) +#define GLOBAL_BpiCompiledUser (*(IU32* *)((IUH)Gdp + 2464)) +#define GLOBAL_OpBpirealFt (*(IUH *)((IUH)Gdp + 2468)) +#define GLOBAL_OpBpirealF1 (*(IUH *)((IUH)Gdp + 2472)) +#define GLOBAL_OpBpirealF2 (*(IUH *)((IUH)Gdp + 2476)) +#define GLOBAL_OpBpirealF3 (*(IUH *)((IUH)Gdp + 2480)) +#define GLOBAL_OpBpirealUniv (*(struct EntryPointCacheREC* *)((IUH)Gdp + 2484)) +#define GLOBAL_OpBpirealWhereAmI (*(IU32* *)((IUH)Gdp + 2488)) +#define GLOBAL_EDL_WORKSPACE_158 (*(IUH *)((IUH)Gdp + 2492)) +#define GLOBAL_EDL_WORKSPACE_159 (*(IUH *)((IUH)Gdp + 2496)) +#define GLOBAL_EDL_WORKSPACE_160 (*(IUH *)((IUH)Gdp + 2500)) +#define GLOBAL_EDL_WORKSPACE_161 (*(IUH *)((IUH)Gdp + 2504)) +#define GLOBAL_EDL_WORKSPACE_162 (*(IUH *)((IUH)Gdp + 2508)) +#define GLOBAL_EDL_WORKSPACE_163 (*(IUH *)((IUH)Gdp + 2512)) +#define GLOBAL_EDL_WORKSPACE_164 (*(IUH *)((IUH)Gdp + 2516)) +#define GLOBAL_EDL_WORKSPACE_165 (*(IUH *)((IUH)Gdp + 2520)) +#define GLOBAL_EDL_WORKSPACE_166 (*(IUH *)((IUH)Gdp + 2524)) +#define GLOBAL_EDL_WORKSPACE_167 (*(IUH *)((IUH)Gdp + 2528)) +#define GLOBAL_EDL_WORKSPACE_168 (*(IUH *)((IUH)Gdp + 2532)) +#define GLOBAL_EDL_WORKSPACE_169 (*(IUH *)((IUH)Gdp + 2536)) +#define GLOBAL_EDL_WORKSPACE_170 (*(IUH *)((IUH)Gdp + 2540)) +#define GLOBAL_EDL_WORKSPACE_171 (*(IUH *)((IUH)Gdp + 2544)) +#define GLOBAL_EDL_WORKSPACE_172 (*(IUH *)((IUH)Gdp + 2548)) +#define GLOBAL_EDL_WORKSPACE_173 (*(IUH *)((IUH)Gdp + 2552)) +#define GLOBAL_EDL_WORKSPACE_174 (*(IUH *)((IUH)Gdp + 2556)) +#define GLOBAL_NpxOpndBuff (*(struct OpndBuffREC *)((IUH)Gdp + 2560)) +#define GLOBAL_GLDC_FreeRecs (*(struct GLDC_REC* *)((IUH)Gdp + 2688)) +#define GLOBAL_GLDC_UsedBuffs (*(struct GLDC_REC* *)((IUH)Gdp + 2692)) +#define GLOBAL_GLDC_FreeBuffs (*(struct GLDC_REC* *)((IUH)Gdp + 2696)) +#define GLOBAL_NewRingOffsetPtr (*(IUH* *)((IUH)Gdp + 2700)) +#define GLOBAL_GLDC_Index_High_Water (*(IUH *)((IUH)Gdp + 2704)) +#define GLOBAL_GLDC_Context_High_Water (*(IUH *)((IUH)Gdp + 2708)) +#define GLOBAL_GLDC_IndexPtr (*(struct GLDC_REC** *)((IUH)Gdp + 2712)) +#define GLOBAL_GLDC_CrBase (*(IUH* *)((IUH)Gdp + 2716)) +#define GLOBAL_EDL_WORKSPACE_175 (*(IUH *)((IUH)Gdp + 2720)) +#define GLOBAL_EDL_WORKSPACE_176 (*(IUH *)((IUH)Gdp + 2724)) +#define GLOBAL_EDL_WORKSPACE_177 (*(IUH *)((IUH)Gdp + 2728)) +#define GLOBAL_EDL_WORKSPACE_178 (*(IUH *)((IUH)Gdp + 2732)) +#define GLOBAL_EDL_WORKSPACE_179 (*(IUH *)((IUH)Gdp + 2736)) +#define GLOBAL_EDL_WORKSPACE_180 (*(IUH *)((IUH)Gdp + 2740)) +#define GLOBAL_EDL_WORKSPACE_181 (*(IUH *)((IUH)Gdp + 2744)) +#define GLOBAL_EDL_WORKSPACE_182 (*(IUH *)((IUH)Gdp + 2748)) +#define GLOBAL_GLDC_DUMMY_STORE (*(struct GLDC_REC *)((IUH)Gdp + 2752)) +#define GLOBAL_EDL_WORKSPACE_183 (*(IUH *)((IUH)Gdp + 2792)) +#define GLOBAL_EDL_WORKSPACE_184 (*(IUH *)((IUH)Gdp + 2796)) +#define GLOBAL_EDL_WORKSPACE_185 (*(IUH *)((IUH)Gdp + 2800)) +#define GLOBAL_EDL_WORKSPACE_186 (*(IUH *)((IUH)Gdp + 2804)) +#define GLOBAL_EDL_WORKSPACE_187 (*(IUH *)((IUH)Gdp + 2808)) +#define GLOBAL_EDL_WORKSPACE_188 (*(IUH *)((IUH)Gdp + 2812)) +#define GLOBAL_GLDC_NULL_STORE (*(struct GLDC_REC *)((IUH)Gdp + 2816)) +#define GLOBAL_hackyfix (*(IUH *)((IUH)Gdp + 2856)) +#define GLOBAL_IDC_ArrayPtr (*(struct IDC_REC* *)((IUH)Gdp + 2860)) +#define GLOBAL_IDC_EntryTableBase (*(struct IDC_ENTRY* *)((IUH)Gdp + 2864)) +#define GLOBAL_IDC_IdtSeqVal (*(IUH *)((IUH)Gdp + 2868)) +#define GLOBAL_IDC_IdtHighWater (*(IUH *)((IUH)Gdp + 2872)) +#define GLOBAL_IDC_IdtCntrlVal (*(IUH *)((IUH)Gdp + 2876)) +#define GLOBAL_IDC_IdtCntrlValNoCheck (*(IUH *)((IUH)Gdp + 2880)) +#define GLOBAL_PX_trace (*(IBOOL *)((IUH)Gdp + 2884 + 3)) +#define GLOBAL_PX_doing_contributory (*(IBOOL *)((IUH)Gdp + 2888 + 3)) +#define GLOBAL_PX_doing_page_fault (*(IBOOL *)((IUH)Gdp + 2892 + 3)) +#define GLOBAL_PX_doing_double_fault (*(IBOOL *)((IUH)Gdp + 2896 + 3)) +#define GLOBAL_PX_doing_fault (*(IBOOL *)((IUH)Gdp + 2900 + 3)) +#define GLOBAL_PX_source (*(IUH *)((IUH)Gdp + 2904)) +#define GLOBAL_RF_OnXcptnWanted (*(IBOOL *)((IUH)Gdp + 2908 + 3)) +#define GLOBAL_PX_Cleaned_Eip (*(IU32 *)((IUH)Gdp + 2912)) +#define GLOBAL_CInbTable (*(IUH** *)((IUH)Gdp + 2916)) +#define GLOBAL_CInwTable (*(IUH** *)((IUH)Gdp + 2920)) +#define GLOBAL_CIndTable (*(IUH** *)((IUH)Gdp + 2924)) +#define GLOBAL_COutbTable (*(IUH** *)((IUH)Gdp + 2928)) +#define GLOBAL_COutwTable (*(IUH** *)((IUH)Gdp + 2932)) +#define GLOBAL_COutdTable (*(IUH** *)((IUH)Gdp + 2936)) +#define GLOBAL_InAdapFromPort (*(IU8* *)((IUH)Gdp + 2940)) +#define GLOBAL_OutAdapFromPort (*(IU8* *)((IUH)Gdp + 2944)) +#define GLOBAL_InbFuncWrapper (*(IUH** *)((IUH)Gdp + 2948)) +#define GLOBAL_InwFuncWrapper (*(IUH** *)((IUH)Gdp + 2952)) +#define GLOBAL_IndFuncWrapper (*(IUH** *)((IUH)Gdp + 2956)) +#define GLOBAL_OutbFuncWrapper (*(IUH** *)((IUH)Gdp + 2960)) +#define GLOBAL_OutwFuncWrapper (*(IUH** *)((IUH)Gdp + 2964)) +#define GLOBAL_OutdFuncWrapper (*(IUH** *)((IUH)Gdp + 2968)) +#define GLOBAL_TempByteDest (*(IU8 *)((IUH)Gdp + 2972 + 3)) +#define GLOBAL_TempWordDest (*(IU16 *)((IUH)Gdp + 2976 + 2)) +#define GLOBAL_TempDoubleDest (*(IU32 *)((IUH)Gdp + 2980)) +#define GLOBAL_MaxValidAdaptor (*(IUH *)((IUH)Gdp + 2984)) +#define GLOBAL_IOSPortMask (*(IU16 *)((IUH)Gdp + 2988 + 2)) +#define GLOBAL_EDL_WORKSPACE_189 (*(IUH *)((IUH)Gdp + 2992)) +#define GLOBAL_EDL_WORKSPACE_190 (*(IUH *)((IUH)Gdp + 2996)) +#define GLOBAL_EDL_WORKSPACE_191 (*(IUH *)((IUH)Gdp + 3000)) +#define GLOBAL_EDL_WORKSPACE_192 (*(IUH *)((IUH)Gdp + 3004)) +#define GLOBAL_SegDescPtrLookupREC (*(struct DYNAMIC_DESC_PTR_LOOKUP *)((IUH)Gdp + 3008)) +#define GLOBAL_EDL_WORKSPACE_193 (*(IUH *)((IUH)Gdp + 3032)) +#define GLOBAL_EDL_WORKSPACE_194 (*(IUH *)((IUH)Gdp + 3036)) +#define GLOBAL_SegBaseLookupREC (*(struct DYNAMIC_SEG_BASE_LOOKUP *)((IUH)Gdp + 3040)) +#define GLOBAL_HSP (*(IU8* *)((IUH)Gdp + 3064)) +#define GLOBAL_ESPsanctuary (*(IU32 *)((IUH)Gdp + 3068)) +#define GLOBAL_truePopLimit (*(IU8* *)((IUH)Gdp + 3072)) +#define GLOBAL_innerPopLimit (*(IU8* *)((IUH)Gdp + 3076)) +#define GLOBAL_truePushLimit (*(IU8* *)((IUH)Gdp + 3080)) +#define GLOBAL_innerPushLimit (*(IU8* *)((IUH)Gdp + 3084)) +#define GLOBAL_notionalSsBase (*(IU8* *)((IUH)Gdp + 3088)) +#define GLOBAL_stackIsWrappable (*(IBOOL *)((IUH)Gdp + 3092 + 3)) +#define GLOBAL_stackIsBig (*(IBOOL *)((IUH)Gdp + 3096 + 3)) +#define GLOBAL_stackMask (*(IU32 *)((IUH)Gdp + 3100)) +#define GLOBAL_stackNeedsNormalising (*(IBOOL *)((IUH)Gdp + 3104 + 3)) +#define GLOBAL_laInTopPage (*(IU32 *)((IUH)Gdp + 3108)) +#define GLOBAL_laInBottomPage (*(IU32 *)((IUH)Gdp + 3112)) +#define GLOBAL_hspOK (*(IBOOL *)((IUH)Gdp + 3116 + 3)) +#define GLOBAL_pushScratch (*(IU8* *)((IUH)Gdp + 3120)) +#define GLOBAL_pushScratchInUse (*(IBOOL *)((IUH)Gdp + 3124 + 3)) +#define GLOBAL_popScratch (*(IU8* *)((IUH)Gdp + 3128)) +#define GLOBAL_popScratchInUse (*(IBOOL *)((IUH)Gdp + 3132 + 3)) +#define GLOBAL_stackJumpCounterCeiling (*(ISH *)((IUH)Gdp + 3136)) +#define GLOBAL_stackJumpCounterDebt (*(ISH *)((IUH)Gdp + 3140)) +#define GLOBAL_prevJumpCounter (*(ISH *)((IUH)Gdp + 3144)) +#define GLOBAL_SafeStackEnabled (*(IBOOL *)((IUH)Gdp + 3148 + 3)) +#define GLOBAL_SafeStackIronFrig (*(IBOOL *)((IUH)Gdp + 3152 + 3)) +#define GLOBAL_newNanoSafeLow (*(IU32 *)((IUH)Gdp + 3156)) +#define GLOBAL_newNanoSafeSpan (*(IU32 *)((IUH)Gdp + 3160)) +#define GLOBAL_newHSP (*(IU8* *)((IUH)Gdp + 3164)) +#define GLOBAL_newTruePopLimit (*(IU8* *)((IUH)Gdp + 3168)) +#define GLOBAL_newTruePushLimit (*(IU8* *)((IUH)Gdp + 3172)) +#define GLOBAL_newNotionalSsBase (*(IU8* *)((IUH)Gdp + 3176)) +#define GLOBAL_newStackIsWrappable (*(IBOOL *)((IUH)Gdp + 3180 + 3)) +#define GLOBAL_newStackIsBig (*(IBOOL *)((IUH)Gdp + 3184 + 3)) +#define GLOBAL_newStackMask (*(IU32 *)((IUH)Gdp + 3188)) +#define GLOBAL_newLaInBottomPage (*(IU32 *)((IUH)Gdp + 3192)) +#define GLOBAL_newHspOK (*(IBOOL *)((IUH)Gdp + 3196 + 3)) +#define GLOBAL_newPushScratch (*(IU8* *)((IUH)Gdp + 3200)) +#define GLOBAL_newPushScratchInUse (*(IBOOL *)((IUH)Gdp + 3204 + 3)) +#define GLOBAL_EOIEnable (*(IU8* *)((IUH)Gdp + 3208)) +#define GLOBAL_AddProfilePtr (*(IUH* *)((IUH)Gdp + 3212)) +#define GLOBAL_MaxProfileData (*(IUH* *)((IUH)Gdp + 3216)) +#define GLOBAL_FreeContextHead (*(struct ContextREC* *)((IUH)Gdp + 3220)) +#define GLOBAL_ValidContextHead (*(struct ContextREC* *)((IUH)Gdp + 3224)) +#define GLOBAL_CurrentContext (*(IU8 *)((IUH)Gdp + 3228 + 3)) +#define GLOBAL_SeenGDTUse (*(IBOOL *)((IUH)Gdp + 3232 + 3)) +#define GLOBAL_SeenLDTUse (*(IBOOL *)((IUH)Gdp + 3236 + 3)) +#define GLOBAL_Context (*(struct ContextREC* *)((IUH)Gdp + 3240)) +#define GLOBAL_tmpESP (*(IUH *)((IUH)Gdp + 3244)) +#define GLOBAL_intelPtr (*(IU8* *)((IUH)Gdp + 3248)) +#define GLOBAL_functions (*(IU32** *)((IUH)Gdp + 3252)) +#define GLOBAL_instrCountdown (*(ISH *)((IUH)Gdp + 3256)) +#define GLOBAL_nextPlace (*(IU32* *)((IUH)Gdp + 3260)) +#define GLOBAL_cutBackStackCounter (*(IUH *)((IUH)Gdp + 3264)) +#define GLOBAL_nanoCompParameter (*(IUH *)((IUH)Gdp + 3268)) +#define GLOBAL_intelCopyPtrComp (*(IU8* *)((IUH)Gdp + 3272)) +#define GLOBAL_nrOfBlocksToCompile (*(IUH *)((IUH)Gdp + 3276)) +#define GLOBAL_first32constraints (*(IU32 *)((IUH)Gdp + 3280)) +#define GLOBAL_last16constraints (*(IU16 *)((IUH)Gdp + 3284 + 2)) +#define GLOBAL_successorBlockPtr (*(struct BLOCK_RECORD* *)((IUH)Gdp + 3288)) +#define GLOBAL_successorBlockNr (*(IUH *)((IUH)Gdp + 3292)) +#define GLOBAL_nrOfInstrsParsed (*(IUH *)((IUH)Gdp + 3296)) +#define GLOBAL_intelPtrLimit (*(IU8* *)((IUH)Gdp + 3300)) +#define GLOBAL_blockStartIntelPtr (*(IU8* *)((IUH)Gdp + 3304)) +#define GLOBAL_blockStartCodeOffset (*(IUH *)((IUH)Gdp + 3308)) +#define GLOBAL_finalCodeOffset (*(IUH *)((IUH)Gdp + 3312)) +#define GLOBAL_blockExitCondition (*(IUH *)((IUH)Gdp + 3316)) +#define GLOBAL_blockNr (*(IUH *)((IUH)Gdp + 3320)) +#define GLOBAL_blockPtr (*(struct BLOCK_RECORD* *)((IUH)Gdp + 3324)) +#define GLOBAL_nextPlaceAgain (*(IU32* *)((IUH)Gdp + 3328)) +#define GLOBAL_nanoOp3 (*(IUH *)((IUH)Gdp + 3332)) +#define GLOBAL_sibByte (*(IUH *)((IUH)Gdp + 3336)) +#define GLOBAL_dynamicOffset (*(IU32 *)((IUH)Gdp + 3340)) +#define GLOBAL_eaSegCode (*(IUH *)((IUH)Gdp + 3344)) +#define GLOBAL_instrStartIntelPtr (*(IU8* *)((IUH)Gdp + 3348)) +#define GLOBAL_topLevel (*(IUH* *)((IUH)Gdp + 3352)) +#define GLOBAL_defaultPrimaryActions (*(IU32** *)((IUH)Gdp + 3356)) +#define GLOBAL_actualPrimaryActions (*(IU32** *)((IUH)Gdp + 3360)) +#define GLOBAL_codeSegment (*(IUH *)((IUH)Gdp + 3364)) +#define GLOBAL_codeOffset (*(IUH *)((IUH)Gdp + 3368)) +#define GLOBAL_codeSegmentBase (*(IUH *)((IUH)Gdp + 3372)) +#define GLOBAL_codeSegmentLimit (*(IUH *)((IUH)Gdp + 3376)) +#define GLOBAL_destCodeSegment (*(IUH *)((IUH)Gdp + 3380)) +#define GLOBAL_destCodeOffset (*(IUH *)((IUH)Gdp + 3384)) +#define GLOBAL_linearAddress (*(IU32 *)((IUH)Gdp + 3388)) +#define GLOBAL_nanoEax (*(IU32 *)((IUH)Gdp + 3392)) +#define GLOBAL_nanoEcx (*(IU32 *)((IUH)Gdp + 3396)) +#define GLOBAL_nanoEdx (*(IU32 *)((IUH)Gdp + 3400)) +#define GLOBAL_nanoEbx (*(IU32 *)((IUH)Gdp + 3404)) +#define GLOBAL_nanoEsp (*(IU32 *)((IUH)Gdp + 3408)) +#define GLOBAL_nanoEbp (*(IU32 *)((IUH)Gdp + 3412)) +#define GLOBAL_nanoEsi (*(IU32 *)((IUH)Gdp + 3416)) +#define GLOBAL_nanoEdi (*(IU32 *)((IUH)Gdp + 3420)) +#define GLOBAL_espToRestore (*(IU32 *)((IUH)Gdp + 3424)) +#define GLOBAL_entryExitCount (*(IU32 *)((IUH)Gdp + 3428)) +#define GLOBAL_instructionCount (*(IU32 *)((IUH)Gdp + 3432)) +#define GLOBAL_nanoDebugControl (*(IU32 *)((IUH)Gdp + 3436)) +#define GLOBAL_compilationThreshold (*(IU32 *)((IUH)Gdp + 3440)) +#define GLOBAL_hashTableMask (*(IUH *)((IUH)Gdp + 3444)) +#define GLOBAL_blockFreeList (*(IUH *)((IUH)Gdp + 3448)) +#define GLOBAL_maxBlocksToCompile (*(IUH *)((IUH)Gdp + 3452)) +#define GLOBAL_bases (*(IU32* *)((IUH)Gdp + 3456)) +#define GLOBAL_descriptors (*(struct GLDC_REC** *)((IUH)Gdp + 3460)) +#define GLOBAL_blocksToCompile (*(struct BLOCK_TO_COMPILE* *)((IUH)Gdp + 3464)) +#define GLOBAL_byteMemory (*(IU8* *)((IUH)Gdp + 3468)) +#define GLOBAL_wordMemory (*(IU16* *)((IUH)Gdp + 3472)) +#define GLOBAL_longMemory (*(IU32* *)((IUH)Gdp + 3476)) +#define GLOBAL_blockHashChains (*(IU16* *)((IUH)Gdp + 3480)) +#define GLOBAL_blockRecords (*(struct BLOCK_RECORD* *)((IUH)Gdp + 3484)) +#define GLOBAL_intelCopyMemoryExec (*(IU8* *)((IUH)Gdp + 3488)) +#define GLOBAL_intelCopyMemoryComp (*(IU8* *)((IUH)Gdp + 3492)) +#define GLOBAL_intelCopyMemoryCompEnd (*(IU8* *)((IUH)Gdp + 3496)) +#define GLOBAL_SfDecrementerVal (*(IUH *)((IUH)Gdp + 3500)) +#define GLOBAL_SfQEventPending (*(IBOOL *)((IUH)Gdp + 3504 + 3)) +#define GLOBAL_LogicalBaseAddrForIO (*(IU8* *)((IUH)Gdp + 3508)) +#define GLOBAL_TraceVector ((IU8 *)((IUH)Gdp + 3512)) +#define GLOBAL_TraceVectorSize (40001) +#define GDP_SIZE 43513 +#define GDP_CHECKSUM 23234201 +extern IHP Gdp; +#endif /* _gdpvar_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/gicvid_c.h b/private/mvdm/softpc.new/base/cvidc/gicvid_c.h new file mode 100644 index 000000000..f3b3fcde7 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/gicvid_c.h @@ -0,0 +1,3 @@ +#ifndef _Gicvid_c_h +#define _Gicvid_c_h +#endif /* ! _Gicvid_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/gldc_c.h b/private/mvdm/softpc.new/base/cvidc/gldc_c.h new file mode 100644 index 000000000..b664b48a8 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/gldc_c.h @@ -0,0 +1,179 @@ +#ifndef _Gldc_c_h +#define _Gldc_c_h +#define N_RPL_BITS (2) +#define RPL_MASK (3) +#define NOT_RPL_MASK (65532) +#define N_GL_SELECTORS (16384) +#define N_IDT_SELECTORS (256) +#define N_CPLS (4) +#define N_RPLS (4) +#define TI_P (2) +#define SEL_S (15) +#define SEL_E (2) +#define INTEL_SEL_S (31) +#define INTEL_SEL_E (16) +#define INTEL_P (15) +#define INTEL_X (22) +#define INTEL_G (23) +#define INTEL_AR_ZERO (21) +#define INTEL_AVL (20) +#define INTEL_HI_LIMIT_S (19) +#define INTEL_HI_LIMIT_E (16) +#define INTEL_HI_LIMIT_SHIFT (16) +#define INTEL_LO_LIMIT_S (15) +#define INTEL_LO_LIMIT_E (0) +#define INTEL_DPL_S (14) +#define INTEL_DPL_E (13) +#define INTEL_SUPERTYPE_S (12) +#define INTEL_SUPERTYPE_E (8) +#define INTEL_HI_BASE_S (31) +#define INTEL_HI_BASE_E (24) +#define INTEL_MID_BASE_S (7) +#define INTEL_MID_BASE_E (0) +#define INTEL_LO_BASE_S (31) +#define INTEL_LO_BASE_E (16) +#define INTEL_HI_BASE_SHIFT (24) +#define INTEL_MID_BASE_SHIFT (16) +#define INTEL_SELECTOR_S (31) +#define INTEL_SELECTOR_E (16) +#define INTEL_HI_OFFSET_S (31) +#define INTEL_HI_OFFSET_E (16) +#define INTEL_TOP_AR_S (23) +#define INTEL_TOP_AR_E (16) +#define INTEL_BOTTOM_AR_S (15) +#define INTEL_BOTTOM_AR_E (8) +#define AR_G (15) +#define AR2_X_BIT (6) +#define AR2_G_BIT (7) +#define AR_SUPERTYPE_S (4) +#define AR_SUPERTYPE_E (0) +#define EAR_SUPERTYPE_MASK (31) +#define EAR_SUPERTYPE_S (4) +#define EAR_SUPERTYPE_E (0) +#define EAR_A_MASK (1) +#define EAR_A (0) +#define EAR_DPL_MASK (96) +#define EAR_DPL_S (6) +#define EAR_DPL_E (5) +#define EAR_P_MASK (128) +#define EAR_P (7) +#define EAR_AR_MASK (255) +#define EAR_AR_S (7) +#define EAR_AR_E (0) +#define EAR_NR_BITS_MASK (3840) +#define EAR_NR_BITS_S (11) +#define EAR_NR_BITS_E (8) +#define EAR_CD_MASK (4096) +#define EAR_CD (12) +#define EAR_NG_BITS_MASK (57344) +#define EAR_NG_BITS_S (15) +#define EAR_NG_BITS_E (13) +#define EAR_NX_BITS_MASK (983040) +#define EAR_NX_BITS_S (19) +#define EAR_NX_BITS_E (16) +#define EAR_NC_MASK (1048576) +#define EAR_NC (20) +#define EAR_NW_MASK (2097152) +#define EAR_NW (21) +#define EAR_NA_MASK (4194304) +#define EAR_NA (22) +#define EAR_NP_MASK (8388608) +#define EAR_NP (23) +#define EAR_NCD_MASK (16777216) +#define EAR_NCD (24) +#define EAR_CONTEXT_MASK (2113929216) +#define EAR_CONTEXT_S (30) +#define EAR_CONTEXT_E (25) +#define EAR_CDODGY_MASK (-2147483648) +#define EAR_CDODGY (31) +#define GPH_LDTH_MASK (1032192) +#define GPH_LDTH_BITS_S (19) +#define GPH_LDTH_BITS_E (14) +#define GPH_SEL_MASK (16383) +#define GPH_SEL_BITS_S (13) +#define GPH_SEL_BITS_E (0) +#define ST_AVAILABLE_TSS (1) +#define ST_LDT_SEGMENT (2) +#define ST_BUSY_TSS (3) +#define ST_CALL_GATE (4) +#define ST_TASK_GATE (5) +#define ST_INTERRUPT_GATE (6) +#define ST_TRAP_GATE (7) +#define ST_INVALID (8) +#define ST_XTND_AVAILABLE_TSS (9) +#define ST_GLDC_DUMMY (10) +#define ST_XTND_BUSY_TSS (11) +#define ST_XTND_CALL_GATE (12) +#define ST_GLDC_NULL (13) +#define ST_XTND_INTERRUPT_GATE (14) +#define ST_XTND_TRAP_GATE (15) +#define ST_EXPANDUP_READONLY_DATA (17) +#define ST_EXPANDUP_WRITEABLE_DATA (19) +#define ST_EXPANDDOWN_READONLY_DATA (21) +#define ST_EXPANDDOWN_WRITEABLE_DATA (23) +#define ST_NONCONFORM_NOREAD_CODE (25) +#define ST_NONCONFORM_READABLE_CODE (27) +#define ST_CONFORM_NOREAD_CODE (29) +#define ST_CONFORM_READABLE_CODE (31) +#define NUM_LDTS (7) +#define LDT_NOT_IN_USE (65535) +#define GLDC_INDEX_TABLE_SIZE (16384) +#define GLDC_RECNULL ((struct GLDC_REC*)0) +#define IDC_RECNULL ((struct IDC_REC*)0) +#define CR_GUARANTEED_BAD (-2147483617) +#define NUM_RECS_IN_BUFFER (204) +#define GLDC_LdDs (0) +#define GLDC_LdSs (4) +#define GLDC_LdCsForCJ (8) +#define GLDC_LdCsForRet (12) +#define GLDC_LdCsForRetRing (16) +#define GLDC_GtCJ (20) +#define GLDC_GtDestCall (21) +#define GLDC_CrCPLSize (22) +#define GLDC_CrLDTSize (88) +#define IDC_NIS_MASK (-16) +#define IDC_NIS_S (31) +#define IDC_NIS_E (4) +#define IDC_NP (3) +#define IDC_NP_MASK (8) +#define IDC_CPL_MASK (3) +#define IDC_CPL_S (2) +#define IDC_CPL_E (0) +#define IDC_IDT_NUM_S (12) +#define IDC_IDT_NUM_E (8) +#define IDC_INT_NUM_S (7) +#define IDC_INT_NUM_E (0) +#define IDC_LOWEST_SEQ_VAL (0) +#define IDC_INITIAL_CONTROL_VAL (-8) +#define NO_PARAMS (0) +struct GLDC_REC +{ + IUH ear; + IU8 *intelArPtr; + IU32 base; + IU32 rlimit; + IU32 rlimit2; + IU32 wlimit; + IU32 wlimit2; + IU8 arTopByte; + IU32 glimit; + struct GLDC_REC *next; +}; +struct IDC_REC +{ + IUH eiar; + IU16 type; + IU16 sel; + IU32 offset; +}; +struct SEG_STRUCT +{ + IU32 rlimit2; + IU32 wlimit2; +}; +struct IDC_ENTRY +{ + IU32 base; + IU16 limit; +}; +#endif /* ! _Gldc_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/hpphst_c.h b/private/mvdm/softpc.new/base/cvidc/hpphst_c.h new file mode 100644 index 000000000..4f75ec15f --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/hpphst_c.h @@ -0,0 +1,12 @@ +#ifndef _Hpphst_c_h +#define _Hpphst_c_h +#define HppBranchCodeSizeAdjustment (2) +#define HPP_HOST_REG_ZERO (0) +#define HPP_HOST_DEST_REG_ID (13) +#define HPP_HOST_CALL_REG_ID (19) +#define HppFpuOverflowExceptionBit (29) +#define HppFpuUnderflowExceptionBit (28) +#define HppFpuPrecisionExceptionBit (27) +#define HppPureAddressAdjustment (-3) +#define HppCallToRetAddrAdjustment (0) +#endif /* ! _Hpphst_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/idmain_c.h b/private/mvdm/softpc.new/base/cvidc/idmain_c.h new file mode 100644 index 000000000..d1b5c95c5 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/idmain_c.h @@ -0,0 +1,3 @@ +#ifndef _IdMain_c_h +#define _IdMain_c_h +#endif /* ! _IdMain_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/inc_c.h b/private/mvdm/softpc.new/base/cvidc/inc_c.h new file mode 100644 index 000000000..d196318c0 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/inc_c.h @@ -0,0 +1,3 @@ +#ifndef _Inc_c_h +#define _Inc_c_h +#endif /* ! _Inc_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/inst_c.h b/private/mvdm/softpc.new/base/cvidc/inst_c.h new file mode 100644 index 000000000..a508683f2 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/inst_c.h @@ -0,0 +1,14 @@ +#ifndef _Inst_c_h +#define _Inst_c_h +enum NpxOpnds +{ + M16I = 0, + M32I = 1, + M64I = 2, + M32R = 3, + M64R = 4, + M80R = 5, + FPSTACK = 6, + STACKTOP = 7 +}; +#endif /* ! _Inst_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/io_c.h b/private/mvdm/softpc.new/base/cvidc/io_c.h new file mode 100644 index 000000000..482a5a529 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/io_c.h @@ -0,0 +1,13 @@ +#ifndef _IO_c_h +#define _IO_c_h +struct PortTablesRec +{ + IU8 *PortToAdaptor; + IUH **AdaptorToEdlByteFunc; + IUH **AdaptorToEdlWordFunc; + IUH **AdaptorToEdlDoubleFunc; + IUH **AdaptorToCByteFunc; + IUH **AdaptorToCWordFunc; + IUH **AdaptorToCDoubleFunc; +}; +#endif /* ! _IO_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/j_c_lang.c b/private/mvdm/softpc.new/base/cvidc/j_c_lang.c new file mode 100644 index 000000000..cf09ff817 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/j_c_lang.c @@ -0,0 +1,210 @@ +#include "insignia.h" +#include "host_def.h" + +/*[ + * Name: j_c_lang.c + * + * Derived From: (original) + * + * Author: Simon Frost + * + * Created On: December 1993 + * + * Sccs ID: @(#)j_c_lang.c 1.3 07/28/94 + * + * Purpose: Suppory routines for C rule translated J code. + * This file must be linked in with any such code. + * + * Design document: + * None. + * + * Test document: + * None. + * + * (c) Copyright Insignia Solutions Ltd., 1993. All rights reserved +]*/ + +/* variables to represent register usage */ +IUH r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10,r11,r12,r13,r14,r15, + r16,r17,r18,r19,r20,r21,r22,r23,r24,r25,r26,r27,r28,r29,r30,r31; +IUH rnull ; /* holder for NULL args */ + +#define NUM_HBITS (sizeof(IUH)*8) +#define MAX_BITPOS (NUM_HBITS - 1) + + +/*( +=============================== mask ============================= +PURPOSE: Build bit mask for use in Jcode operations. +INPUT: bitpos : IUH starting bit position. (0 LSB, MSB at other end) + len : IUH no of bits in mask. +OUTPUT: Return IUH bitmask. +========================================================================= +)*/ +GLOBAL IUH +mask IFN2(IUH, bitpos, IUH, len) +{ + IUH movebit, res; + + if (len == 0) + return(0); + + if (bitpos > MAX_BITPOS || bitpos < 0) + { + printf("mask: bitpos %d out of range\n", bitpos); + return(0); + } + + if (len > NUM_HBITS - bitpos) + { + printf("mask: len %d too great for starting bitpos %d\n", len, bitpos); + return(0); + } + + /* set first bit for mask */ + movebit = (IUH)1 << bitpos; + res = movebit; + /* now fill in bits to left */ + while(--len) + { + movebit <<= 1; + res |= movebit; + } + return(res); +} + +/*( +=============================== rorl ============================= +PURPOSE: Rotate a long (IUH) right. +INPUT: src : IUH initial value. + rots : IUH no of bit places to rotate. +OUTPUT: Return IUH rotated result. +========================================================================= +)*/ +GLOBAL IUH +rorl IFN2(IUH, src, IUH, rots) +{ + IUH temp, res; + + rots %= 32; + temp = src & mask(rots - 1, rots); + res = (src >> rots) | (temp << (32 - rots)); + return(res); +} + +/*( +=============================== rorw ============================= +PURPOSE: Rotate the bottom word of an IUH right. +INPUT: src : IUH initial value. + rots : IUH no of bit places to rotate. +OUTPUT: Return IUH rotated result. +========================================================================= +)*/ +GLOBAL IUH +rorw IFN2(IUH, src, IUH, rots) +{ + IUH temp, res; + + /* make copy of word and into two halves of temp & do one shift */ + rots %= 16; + + temp = src & 0xffff; + temp |= temp << 16; + temp >>= rots; + res = src & (IUH)-65536; /* 0xffff0000 or 64 bit equiv */ + res |= temp & 0xffff; + return(res); +} + +/*( +=============================== rorb ============================= +PURPOSE: Rotate the bottom byte of an IUH right. +INPUT: src : IUH initial value. + rots : IUH no of bit places to rotate. +OUTPUT: Return IUH rotated result. +========================================================================= +)*/ +GLOBAL IUH +rorb IFN2(IUH, src, IUH, rots) +{ + IUH res; + IU16 temp; + + /* make copy of byte and into two halves of temp & do one shift */ + rots %= 8; + + temp = src & 0xff; + temp |= temp << 8; + temp >>= rots; + res = src & (IUH)-256; /* 0xffffff00 or 64 bit equiv */ + res |= temp & 0xff; + return(res); +} + +/*( +=============================== roll ============================= +PURPOSE: Rotate a long (IUH) left. +INPUT: src : IUH initial value. + rots : IUH no of bit places to rotate. +OUTPUT: Return IUH rotated result. +========================================================================= +)*/ +GLOBAL IUH +roll IFN2(IUH, src, IUH, rots) +{ + IUH temp, res; + + rots %= 32; + temp = src & mask(31, rots); + res = (src << rots) | (temp >> (32 - rots)); + return(res); +} + +/*( +=============================== rolw ============================= +PURPOSE: Rotate the bottom word of an IUH left. +INPUT: src : IUH initial value. + rots : IUH no of bit places to rotate. +OUTPUT: Return IUH rotated result. +========================================================================= +)*/ +GLOBAL IUH +rolw IFN2(IUH, src, IUH, rots) +{ + IUH temp, res; + + /* make copy of word and into two halves of temp & do one shift */ + rots %= 16; + + temp = src & 0xffff; + temp |= temp << 16; + temp <<= rots; + res = src & (IUH)-65536; /* 0xffff0000 or 64 bit equiv */ + res |= temp >> 16; + return(res); +} + +/*( +=============================== rolb ============================= +PURPOSE: Rotate the bottom byte of an IUH left. +INPUT: src : IUH initial value. + rots : IUH no of bit places to rotate. +OUTPUT: Return IUH rotated result. +========================================================================= +)*/ +GLOBAL IUH +rolb IFN2(IUH, src, IUH, rots) +{ + IUH res; + IU16 temp; + + /* make copy of byte and into two halves of temp & do one shift */ + rots %= 8; + + temp = src & 0xff; + temp |= temp << 8; + temp <<= rots; + res = src & (IUH)-256; /* 0xffffff00 or 64 bit equiv */ + res |= temp >> 8; + return(res); +} diff --git a/private/mvdm/softpc.new/base/cvidc/j_c_lang.h b/private/mvdm/softpc.new/base/cvidc/j_c_lang.h new file mode 100644 index 000000000..ebb7c8ed0 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/j_c_lang.h @@ -0,0 +1,49 @@ +/* + * Name: j_c_lang.h + * + * Author: Simon Frost + * + * Created on: February 1994 + * + * SccsID: @(#)j_c_lang.h 1.2 06/17/94 + * + * Purpose: This file contains the necessary declarations for C + * files generated from J-code. + * + * (c)Copyright Insignia Solutions Ltd., 1994. All rights reserved. + */ +/* defines needed for basic types */ +#define jccc_parm1 r2 +#define jccc_parm2 r3 +#define jccc_parm3 r4 +#define jccc_parm4 r5 +#define jccc_gdp r1 +/* define variables (register replacements) used */ +extern IUH rnull ; /* holder for a null arg in calls and null return args */ +extern IUH r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10,r11,r12,r13,r14,r15, + r16,r17,r18,r19,r20,r21,r22,r23,r24,r25,r26,r27,r28,r29,r30,r31; + +/* prototypes for support functions - see j_c_lang.c ? how many are used */ +extern IUH mask IPT2(IUH, bitpos, IUH, len); +extern IUH rorl IPT2(IUH, src, IUH, rots); +extern IUH rorw IPT2(IUH, src, IUH, rots); +extern IUH rorb IPT2(IUH, src, IUH, rots); +extern IUH roll IPT2(IUH, src, IUH, rots); +extern IUH rolw IPT2(IUH, src, IUH, rots); +extern IUH rolb IPT2(IUH, src, IUH, rots); + +#ifdef LITTLEND +#define UOFF_15_8(a) (((IU8 *)(a))+1) +#define SOFF_15_8(a) (((IS8 *)(a))+1) +#define REGBYTE 0 +#define REGWORD 0 +#define REGLONG 0 +#endif +#ifdef BIGEND +#define UOFF_15_8(a) ((IU8 *)(a) + sizeof(IUH)-2) +#define SOFF_15_8(a) ((IS8 *)(a) + sizeof(IUH)-2) +#define REGBYTE (sizeof(IUH) -1) +#define REGWORD (sizeof(IUH)/2 -1) +#define REGLONG (sizeof(IUH)/4 -1) +#endif +#define __J_C_LANG /* mark as already included */ diff --git a/private/mvdm/softpc.new/base/cvidc/lc_c.h b/private/mvdm/softpc.new/base/cvidc/lc_c.h new file mode 100644 index 000000000..5c1a34763 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/lc_c.h @@ -0,0 +1,156 @@ +#ifndef _Lc_c_h +#define _Lc_c_h +#define NUM_HASH_BITS (6) +#define HASH_MASK (63) +#define BYTES_PER_HCU (4) +#define MORE_PRS_MASK (128) +#define JUMP_REC_NULL ((struct JUMP_REC*)0) +#define CODE_ELEM_NULL ((IU32*)0) +#define MAX_JUMP_REC_PER_FRAG (33) +#define VCT_NODE_REC_NULL ((struct VCT_NODE_REC*)0) +enum AccessType +{ + ACCESS_NA = 0, + ACCESS_READ = 1, + ACCESS_WRITE = 2, + ACCESS_READ_WRITE = 3 +}; +enum CopierActionPhase +{ + CpActionPhaseInstruction = 0, + CpActionPhaseCopying = 1, + CpActionPhaseExecute = 2 +}; +enum CopierAction +{ + CopierActionCopyZero = 0, + CopierActionCopyOne = 1, + CopierActionCopyTwo = 2, + CopierActionCopyThree = 3, + CopierActionCopyFour = 4, + CopierActionCopyFive = 5, + CopierActionCopySix = 6, + CopierActionCopyVariable = 7, + CopierActionPatchBlock = 8, + CopierActionPatchBlockEnd = 9, + CopierActionPatchMeBody = 10, + CopierActionSubrId = 11, + CopierActionSubrIdEnd = 12, + CopierActionNpxExceptionData = 13, + CopierActionNeedNextIntelEip = 14, + CopierActionTupleImm = 15, + CopierActionTupleDisp = 16, + CopierActionTupleImm2 = 17, + CopierActionTupleRetEIP = 18, + CopierActionTearOffFlags = 19, + CopierActionSetsFt = 20, + CopierActionTrackFt = 21, + CopierActionSrcFt = 22, + CopierNoteSrcEAX = 23, + CopierNoteSrcAX = 24, + CopierNoteDstEAX = 25, + CopierNoteDstAX = 26, + CopierNoteDstAL = 27, + CopierNoteSrcEBX = 28, + CopierNoteSrcBX = 29, + CopierNoteDstEBX = 30, + CopierNoteDstBX = 31, + CopierNoteDstBL = 32, + CopierNoteSrcECX = 33, + CopierNoteSrcCX = 34, + CopierNoteDstECX = 35, + CopierNoteDstCX = 36, + CopierNoteDstCL = 37, + CopierNoteSrcEDX = 38, + CopierNoteSrcDX = 39, + CopierNoteDstEDX = 40, + CopierNoteDstDX = 41, + CopierNoteDstDL = 42, + CopierNoteSrcEBP = 43, + CopierNoteDstEBP = 44, + CopierNoteDstBP = 45, + CopierNoteSrcEDI = 46, + CopierNoteDstEDI = 47, + CopierNoteDstDI = 48, + CopierNoteSrcESI = 49, + CopierNoteDstESI = 50, + CopierNoteDstSI = 51, + CopierNoteAddConstraintEAX = 52, + CopierNoteRemoveConstraintEAX = 53, + CopierNoteAddConstraintAX = 54, + CopierNoteRemoveConstraintAX = 55, + CopierNoteAddConstraintEBX = 56, + CopierNoteRemoveConstraintEBX = 57, + CopierNoteAddConstraintBX = 58, + CopierNoteRemoveConstraintBX = 59, + CopierNoteAddConstraintECX = 60, + CopierNoteRemoveConstraintECX = 61, + CopierNoteAddConstraintCX = 62, + CopierNoteRemoveConstraintCX = 63, + CopierNoteAddConstraintEDX = 64, + CopierNoteRemoveConstraintEDX = 65, + CopierNoteAddConstraintDX = 66, + CopierNoteRemoveConstraintDX = 67, + CopierNoteAddSingleInstruction = 68, + CopierNoteProcessSingleInstruction = 69, + CopierNoteSrcESP = 70, + UnusedCopierNoteSrcSP = 71, + CopierNotePostDstSP = 72, + CopierNotePostDstESP = 73, + CopierNotePostCommitPop = 74, + CopierNoteHspTrackAbs = 75, + CopierNoteHspTrackOpnd = 76, + CopierNoteHspTrackReset = 77, + CopierNoteHspAdjust = 78, + CopierNotePigSynch = 79, + CopierNoteMissPigSynch = 80, + CopierNoteSrcUniverse = 81, + CopierNoteSetDF = 82, + CopierNoteClearDF = 83, + CopierNoteBPILabel = 84, + CopierActionLast = 85 +}; +enum CopyEnum +{ + CopyOne = 0, + CopyTwo = 1, + CopyThree = 2, + CopyFour = 3, + CopyFive = 4, + CopySix = 5 +}; +struct VCT_NODE_REC +{ + IU8 actionRecord[3]; + IU8 nextNode; + IU32 vsMask; + IU32 vsMatch; + IU32 codeRecord[1]; +}; +struct TUPLE_REC +{ + IS32 disp; + IU32 immed; + IU32 immed2; + IU32 start_eip; + IU32 ret_eip; + IU32 flags; + IU32 cvs; + IU8 control; + IU8 intel_length; + IU16 ea_EFI; + IU16 aux_ea_EFI; + IU16 access_EFI; + IU16 access_type; + IU16 business_EFI; + IBOOL opnd32; +}; +struct JUMP_REC +{ + IU32 intelEa; + IU32 *hostAddr; + struct EntryPointCacheREC *univ; + struct JUMP_REC *next; + struct JUMP_REC *prev; +}; +#endif /* ! _Lc_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/light_c.h b/private/mvdm/softpc.new/base/cvidc/light_c.h new file mode 100644 index 000000000..57d7db66b --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/light_c.h @@ -0,0 +1,3 @@ +#ifndef _Light_c_h +#define _Light_c_h +#endif /* ! _Light_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/logic_c.h b/private/mvdm/softpc.new/base/cvidc/logic_c.h new file mode 100644 index 000000000..65346b855 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/logic_c.h @@ -0,0 +1,3 @@ +#ifndef _Logic_c_h +#define _Logic_c_h +#endif /* ! _Logic_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/lxs_c.h b/private/mvdm/softpc.new/base/cvidc/lxs_c.h new file mode 100644 index 000000000..c321da0eb --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/lxs_c.h @@ -0,0 +1,3 @@ +#ifndef _LxS_c_h +#define _LxS_c_h +#endif /* ! _LxS_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/makefile b/private/mvdm/softpc.new/base/cvidc/makefile new file mode 100644 index 000000000..6ee4f43fa --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/makefile @@ -0,0 +1,6 @@ +# +# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source +# file to this component. This file merely indirects to the real make file +# that is shared by all the components of NT OS/2 +# +!INCLUDE $(NTMAKEENV)\makefile.def diff --git a/private/mvdm/softpc.new/base/cvidc/mark_c.h b/private/mvdm/softpc.new/base/cvidc/mark_c.h new file mode 100644 index 000000000..19498140b --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/mark_c.h @@ -0,0 +1,3 @@ +#ifndef _Mark_c_h +#define _Mark_c_h +#endif /* ! _Mark_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/misc_c.h b/private/mvdm/softpc.new/base/cvidc/misc_c.h new file mode 100644 index 000000000..f1e92131e --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/misc_c.h @@ -0,0 +1,3 @@ +#ifndef _Misc_c_h +#define _Misc_c_h +#endif /* ! _Misc_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/move_c.h b/private/mvdm/softpc.new/base/cvidc/move_c.h new file mode 100644 index 000000000..c318e3db9 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/move_c.h @@ -0,0 +1,3 @@ +#ifndef _Move_c_h +#define _Move_c_h +#endif /* ! _Move_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/muldiv_c.h b/private/mvdm/softpc.new/base/cvidc/muldiv_c.h new file mode 100644 index 000000000..3cfd0ba5d --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/muldiv_c.h @@ -0,0 +1,8 @@ +#ifndef _MulDiv_c_h +#define _MulDiv_c_h +#define UNDEF_FLAG (0) +#define CF_OF_CLEAR (0) +#define CF_OF_SET (2049) +#define SF_ZF_PF_AF_UNDEF (0) +#define ALL_UNDEF (0) +#endif /* ! _MulDiv_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/nano_c.h b/private/mvdm/softpc.new/base/cvidc/nano_c.h new file mode 100644 index 000000000..bfc602307 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/nano_c.h @@ -0,0 +1,187 @@ +#ifndef _Nano_c_h +#define _Nano_c_h +#define BYTE_SIZED (0) +#define WORD_SIZED (1) +#define LONG_SIZED (2) +#define ES_CODE (0) +#define CS_CODE (1) +#define SS_CODE (2) +#define DS_CODE (3) +#define FS_CODE (4) +#define GS_CODE (5) +#define EAX_CODE (0) +#define ECX_CODE (1) +#define EDX_CODE (2) +#define EBX_CODE (3) +#define ESP_CODE (4) +#define EBP_CODE (5) +#define ESI_CODE (6) +#define EDI_CODE (7) +#define MEM_CODE (8) +#define JUMP (0) +#define FALLTHROUGH (1) +#define TRUNCATION (2) +#define LEAVING (3) +#define NOT_APPLICABLE (4) +#define COMPILE_BLOCK (1) +#define LOG_SF_BREAK (2) +#define LOG_NORMAL_FLOW (3) +#define LOG_ABNORMAL_FLOW (4) +#define PARSE_AHEAD (5) +#define MONITOR_DS_CHANGE (6) +#define MONITOR_DS_USE (7) +#define BLOCK_LENGTH_CHANGE (8) +#define PROT_BIT (0) +#define V86_BIT (1) +#define BIG_CODE_BIT (2) +#define DF_BIT (3) +#define EAX_FORM_16 (4) +#define EAX_FORM_8 (5) +#define EBX_FORM_16 (6) +#define EBX_FORM_8 (7) +#define ECX_FORM_16 (8) +#define ECX_FORM_8 (9) +#define EDX_FORM_16 (10) +#define EDX_FORM_8 (11) +#define EBP_FORM_16 (12) +#define ESI_FORM_16 (13) +#define EDI_FORM_16 (14) +#define BIG_STACK_BIT (15) +#define DS_DEFAULT_SEG_BOT (16) +#define DS_DEFAULT_SEG_TOP (18) +#define SS_DEFAULT_SEG_BOT (19) +#define SS_DEFAULT_SEG_TOP (21) +#define ADDRESS_SIZE_TOGGLE_BIT (22) +#define OPERAND_SIZE_TOGGLE_BIT (23) +#define RESTORE_ESP_ON_EXCEPTION_BIT (24) +#define REP_E_BIT (25) +#define REP_NE_BIT (26) +#define EAX_BITMAP_BIT (0) +#define ECX_BITMAP_BIT (1) +#define EDX_BITMAP_BIT (2) +#define EBX_BITMAP_BIT (3) +#define ESP_BITMAP_BIT (4) +#define EBP_BITMAP_BIT (5) +#define ESI_BITMAP_BIT (6) +#define EDI_BITMAP_BIT (7) +#define ES_BITMAP_BIT (8) +#define CS_BITMAP_BIT (9) +#define SS_BITMAP_BIT (10) +#define DS_BITMAP_BIT (11) +#define FS_BITMAP_BIT (12) +#define GS_BITMAP_BIT (13) +#define HAS_AN_EA_REC_BIT (14) +#define INSTR_CONTINUATION_BIT (15) +#define NOTHING_BASE (1) +#define AX_BASE (2) +#define CX_BASE (3) +#define DX_BASE (4) +#define BX_BASE (5) +#define SP_BASE (6) +#define BP_BASE (7) +#define SI_BASE (8) +#define DI_BASE (9) +#define EAX_BASE (10) +#define ECX_BASE (11) +#define EDX_BASE (12) +#define EBX_BASE (13) +#define ESP_BASE (14) +#define EBP_BASE (15) +#define ESI_BASE (16) +#define EDI_BASE (17) +#define NOTHING_INDEX (0) +#define AX_INDEX (64) +#define CX_INDEX (96) +#define DX_INDEX (128) +#define BX_INDEX (160) +#define SP_INDEX (192) +#define BP_INDEX (224) +#define SI_INDEX (256) +#define DI_INDEX (288) +#define EAX_INDEX (320) +#define ECX_INDEX (352) +#define EDX_INDEX (384) +#define EBX_INDEX (416) +#define ESP_INDEX (448) +#define EBP_INDEX (480) +#define ESI_INDEX (512) +#define EDI_INDEX (544) +#define ES_SEGFORM (0) +#define CS_SEGFORM (1024) +#define SS_SEGFORM (2048) +#define DS_SEGFORM (3072) +#define FS_SEGFORM (4096) +#define GS_SEGFORM (5120) +#define NOTHING_MUL (0) +#define MUL_2 (8192) +#define MUL_4 (16384) +#define MUL_8 (24576) +#define READ_ACCESS_BIT (0) +#define WRITE_ACCESS_BIT (1) +#define ACCESS_LENGTH_BOT (2) +#define ACCESS_LENGTH_TOP (7) +#define GET_AXBX_FORM (0) +#define GET_CXDX_FORM (16) +#define GET_BPSIDI_FORM (32) +#define PUT_AXBX_FORM (40) +#define PUT_CXDX_FORM (56) +#define PUT_BPSIDI_FORM (72) +#define READ_OP1 (80) +#define WRITE_OP1 (107) +#define READ_SEG_OP1 (134) +#define WRITE_SEG_OP1 (142) +#define WRITE_SEG_OP2 (150) +#define WRITE_OP2 (158) +#define READ_OP1_RETURN (185) +#define WRITE_OP1_BYTE_RETURN (212) +#define PUSH_OP1 (221) +#define POP_OP1 (223) +#define EA_OPERATIONS (225) +#define SIB_BASE_FUNCTIONS (281) +#define SIB_INDEX_FUNCTIONS (305) +#define ADD_OPERATIONS (337) +#define TEST_OPERATIONS (553) +#define JCC_OPERATIONS (580) +#define INC_OPERATIONS (596) +#define DEC_OPERATIONS (623) +#define NEG_OPERATIONS (650) +#define NOT_OPERATIONS (677) +#define MUL_OPERATIONS (704) +#define IMUL_OPERATIONS (707) +#define DIV_OPERATIONS (710) +#define IDIV_OPERATIONS (713) +#define IMUL3_OPERATIONS (716) +#define IMUL2_OPERATIONS (734) +#define SHIFT_OPERATIONS (752) +#define ARPL_OPERATIONS (968) +#define SETCC_OPERATIONS (977) +#define SHLD_OPERATIONS (993) +#define SHRD_OPERATIONS (1011) +#define BT_OPERATIONS (1029) +#define BTS_OPERATIONS (1047) +#define BTR_OPERATIONS (1065) +#define BTC_OPERATIONS (1083) +struct DEST_RECORD +{ + IU16 block; + IU8 version; + IU8 count; +}; +struct BLOCK_RECORD +{ + IU16 hashNext; + IU8 intelLength; + IU8 compiled; + IU32 linearAddress; + IU32 first32constraints; + IU16 last16constraints; + IU16 codeSegment; + IU16 hashPrev; + IU16 moreRecent; + IU16 lessRecent; + IU8 version; + IU8 execCount; + struct DEST_RECORD dest1; + struct DEST_RECORD dest2; +}; +#endif /* ! _Nano_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/nanoa_c.h b/private/mvdm/softpc.new/base/cvidc/nanoa_c.h new file mode 100644 index 000000000..710d24f14 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/nanoa_c.h @@ -0,0 +1,3 @@ +#ifndef _NanoA_c_h +#define _NanoA_c_h +#endif /* ! _NanoA_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/nanob_c.h b/private/mvdm/softpc.new/base/cvidc/nanob_c.h new file mode 100644 index 000000000..360033c12 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/nanob_c.h @@ -0,0 +1,3 @@ +#ifndef _NanoB_c_h +#define _NanoB_c_h +#endif /* ! _NanoB_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/nanoc_c.h b/private/mvdm/softpc.new/base/cvidc/nanoc_c.h new file mode 100644 index 000000000..dd0a1aaab --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/nanoc_c.h @@ -0,0 +1,3 @@ +#ifndef _NanoC_c_h +#define _NanoC_c_h +#endif /* ! _NanoC_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/nanod_c.h b/private/mvdm/softpc.new/base/cvidc/nanod_c.h new file mode 100644 index 000000000..8869dfae6 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/nanod_c.h @@ -0,0 +1,3 @@ +#ifndef _NanoD_c_h +#define _NanoD_c_h +#endif /* ! _NanoD_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/nanoe_c.h b/private/mvdm/softpc.new/base/cvidc/nanoe_c.h new file mode 100644 index 000000000..6cfd8078d --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/nanoe_c.h @@ -0,0 +1,3 @@ +#ifndef _NanoE_c_h +#define _NanoE_c_h +#endif /* ! _NanoE_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/page_c.h b/private/mvdm/softpc.new/base/cvidc/page_c.h new file mode 100644 index 000000000..8a295af73 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/page_c.h @@ -0,0 +1,40 @@ +#ifndef _Page_c_h +#define _Page_c_h +#define PDTE_Present (0) +#define PDTE_Writeable (1) +#define PDTE_User (2) +#define PDTE_Pwt (3) +#define PDTE_Pcd (4) +#define PDTE_Accessed (5) +#define PDTE_Dirty (6) +#define PDTE_Ignore_E (7) +#define PDTE_Ignore_S (11) +#define PDTE_IgnoreMask (3992) +#define CanSetAccessedDirty (1) +#define PreserveAccessedDirty (0) +#define VirtualiseRmCodeSel (61440) +#define DelayedPDTEoverwiteNULL ((struct DelayedPDTEoverwiteREC*)0) +enum VirtualisationKind +{ + VirtualiseRead = 0, + VirtualiseWrite = 1, + VirtualiseInput = 2, + VirtualiseOutput = 3, + VirtualiseSti = 4, + VirtualiseCli = 5, + VirtualiseNone = 6 +}; +struct VirtEntryPointsBySizeREC +{ + IU16 bySize[4]; +}; +struct VirtualisationBIOSOffsetsREC +{ + struct VirtEntryPointsBySizeREC byKind[6]; +}; +struct DelayedPDTEoverwiteREC +{ + IU32 address; + IU16 next; +}; +#endif /* ! _Page_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/parser.h b/private/mvdm/softpc.new/base/cvidc/parser.h new file mode 100644 index 000000000..951c5184a --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/parser.h @@ -0,0 +1,1005 @@ +#ifndef LC_HARN +#define EBX_AL_BX_AL 1 +#define EBX_AL_EBX_AL 2 +#define DISP_DISPW 3 +#define DISP_DISPD 4 +#define REG_SI 5 +#define REG_DI 6 +#define REG_BX 7 +#define REG_EAX 8 +#define REG_ECX 9 +#define REG_EDX 10 +#define REG_EBX 11 +#define REG_ESI 12 +#define REG_EDI 13 +#define REG_BLDR_ESP 14 +#define REG_DISP_SI_DISPW 15 +#define REG_DISP_DI_DISPW 16 +#define REG_DISP_BP_DISPW 17 +#define REG_DISP_BX_DISPW 18 +#define REG_DISP_EAX_DISPD 19 +#define REG_DISP_ECX_DISPD 20 +#define REG_DISP_EDX_DISPD 21 +#define REG_DISP_EBX_DISPD 22 +#define REG_DISP_BLDR_ESP_DISPD 23 +#define REG_DISP_EBP_DISPD 24 +#define REG_DISP_ESI_DISPD 25 +#define REG_DISP_EDI_DISPD 26 +#define REG_REG_BX_SI 27 +#define REG_REG_BP_SI 28 +#define REG_REG_BX_DI 29 +#define REG_REG_BP_DI 30 +#define REG_REG_DISP_BX_SI_DISPW 31 +#define REG_REG_DISP_BP_SI_DISPW 32 +#define REG_REG_DISP_BX_DI_DISPW 33 +#define REG_REG_DISP_BP_DI_DISPW 34 +#define BASE_SI_EAX_EAX_CONST_1 35 +#define BASE_SI_ECX_EAX_CONST_1 36 +#define BASE_SI_EDX_EAX_CONST_1 37 +#define BASE_SI_EBX_EAX_CONST_1 38 +#define BASE_SI_BLDR_ESP_EAX_CONST_1 39 +#define BASE_SI_DISPD_EAX_CONST_1 40 +#define BASE_SI_ESI_EAX_CONST_1 41 +#define BASE_SI_EDI_EAX_CONST_1 42 +#define BASE_SI_EAX_ECX_CONST_1 43 +#define BASE_SI_ECX_ECX_CONST_1 44 +#define BASE_SI_EDX_ECX_CONST_1 45 +#define BASE_SI_EBX_ECX_CONST_1 46 +#define BASE_SI_BLDR_ESP_ECX_CONST_1 47 +#define BASE_SI_DISPD_ECX_CONST_1 48 +#define BASE_SI_ESI_ECX_CONST_1 49 +#define BASE_SI_EDI_ECX_CONST_1 50 +#define BASE_SI_EAX_EDX_CONST_1 51 +#define BASE_SI_ECX_EDX_CONST_1 52 +#define BASE_SI_EDX_EDX_CONST_1 53 +#define BASE_SI_EBX_EDX_CONST_1 54 +#define BASE_SI_BLDR_ESP_EDX_CONST_1 55 +#define BASE_SI_DISPD_EDX_CONST_1 56 +#define BASE_SI_ESI_EDX_CONST_1 57 +#define BASE_SI_EDI_EDX_CONST_1 58 +#define BASE_SI_EAX_EBX_CONST_1 59 +#define BASE_SI_ECX_EBX_CONST_1 60 +#define BASE_SI_EDX_EBX_CONST_1 61 +#define BASE_SI_EBX_EBX_CONST_1 62 +#define BASE_SI_BLDR_ESP_EBX_CONST_1 63 +#define BASE_SI_DISPD_EBX_CONST_1 64 +#define BASE_SI_ESI_EBX_CONST_1 65 +#define BASE_SI_EDI_EBX_CONST_1 66 +#define BASE_SI_EAX_UNDEF_CONST_1 67 +#define BASE_SI_ECX_UNDEF_CONST_1 68 +#define BASE_SI_EDX_UNDEF_CONST_1 69 +#define BASE_SI_EBX_UNDEF_CONST_1 70 +#define BASE_SI_BLDR_ESP_UNDEF_CONST_1 71 +#define BASE_SI_DISPD_UNDEF_CONST_1 72 +#define BASE_SI_ESI_UNDEF_CONST_1 73 +#define BASE_SI_EDI_UNDEF_CONST_1 74 +#define BASE_SI_EAX_EBP_CONST_1 75 +#define BASE_SI_ECX_EBP_CONST_1 76 +#define BASE_SI_EDX_EBP_CONST_1 77 +#define BASE_SI_EBX_EBP_CONST_1 78 +#define BASE_SI_BLDR_ESP_EBP_CONST_1 79 +#define BASE_SI_DISPD_EBP_CONST_1 80 +#define BASE_SI_ESI_EBP_CONST_1 81 +#define BASE_SI_EDI_EBP_CONST_1 82 +#define BASE_SI_EAX_ESI_CONST_1 83 +#define BASE_SI_ECX_ESI_CONST_1 84 +#define BASE_SI_EDX_ESI_CONST_1 85 +#define BASE_SI_EBX_ESI_CONST_1 86 +#define BASE_SI_BLDR_ESP_ESI_CONST_1 87 +#define BASE_SI_DISPD_ESI_CONST_1 88 +#define BASE_SI_ESI_ESI_CONST_1 89 +#define BASE_SI_EDI_ESI_CONST_1 90 +#define BASE_SI_EAX_EDI_CONST_1 91 +#define BASE_SI_ECX_EDI_CONST_1 92 +#define BASE_SI_EDX_EDI_CONST_1 93 +#define BASE_SI_EBX_EDI_CONST_1 94 +#define BASE_SI_BLDR_ESP_EDI_CONST_1 95 +#define BASE_SI_DISPD_EDI_CONST_1 96 +#define BASE_SI_ESI_EDI_CONST_1 97 +#define BASE_SI_EDI_EDI_CONST_1 98 +#define BASE_SI_EAX_EAX_CONST_2 99 +#define BASE_SI_ECX_EAX_CONST_2 100 +#define BASE_SI_EDX_EAX_CONST_2 101 +#define BASE_SI_EBX_EAX_CONST_2 102 +#define BASE_SI_BLDR_ESP_EAX_CONST_2 103 +#define BASE_SI_DISPD_EAX_CONST_2 104 +#define BASE_SI_ESI_EAX_CONST_2 105 +#define BASE_SI_EDI_EAX_CONST_2 106 +#define BASE_SI_EAX_ECX_CONST_2 107 +#define BASE_SI_ECX_ECX_CONST_2 108 +#define BASE_SI_EDX_ECX_CONST_2 109 +#define BASE_SI_EBX_ECX_CONST_2 110 +#define BASE_SI_BLDR_ESP_ECX_CONST_2 111 +#define BASE_SI_DISPD_ECX_CONST_2 112 +#define BASE_SI_ESI_ECX_CONST_2 113 +#define BASE_SI_EDI_ECX_CONST_2 114 +#define BASE_SI_EAX_EDX_CONST_2 115 +#define BASE_SI_ECX_EDX_CONST_2 116 +#define BASE_SI_EDX_EDX_CONST_2 117 +#define BASE_SI_EBX_EDX_CONST_2 118 +#define BASE_SI_BLDR_ESP_EDX_CONST_2 119 +#define BASE_SI_DISPD_EDX_CONST_2 120 +#define BASE_SI_ESI_EDX_CONST_2 121 +#define BASE_SI_EDI_EDX_CONST_2 122 +#define BASE_SI_EAX_EBX_CONST_2 123 +#define BASE_SI_ECX_EBX_CONST_2 124 +#define BASE_SI_EDX_EBX_CONST_2 125 +#define BASE_SI_EBX_EBX_CONST_2 126 +#define BASE_SI_BLDR_ESP_EBX_CONST_2 127 +#define BASE_SI_DISPD_EBX_CONST_2 128 +#define BASE_SI_ESI_EBX_CONST_2 129 +#define BASE_SI_EDI_EBX_CONST_2 130 +#define BASE_SI_EAX_UNDEF_CONST_2 131 +#define BASE_SI_ECX_UNDEF_CONST_2 132 +#define BASE_SI_EDX_UNDEF_CONST_2 133 +#define BASE_SI_EBX_UNDEF_CONST_2 134 +#define BASE_SI_BLDR_ESP_UNDEF_CONST_2 135 +#define BASE_SI_DISPD_UNDEF_CONST_2 136 +#define BASE_SI_ESI_UNDEF_CONST_2 137 +#define BASE_SI_EDI_UNDEF_CONST_2 138 +#define BASE_SI_EAX_EBP_CONST_2 139 +#define BASE_SI_ECX_EBP_CONST_2 140 +#define BASE_SI_EDX_EBP_CONST_2 141 +#define BASE_SI_EBX_EBP_CONST_2 142 +#define BASE_SI_BLDR_ESP_EBP_CONST_2 143 +#define BASE_SI_DISPD_EBP_CONST_2 144 +#define BASE_SI_ESI_EBP_CONST_2 145 +#define BASE_SI_EDI_EBP_CONST_2 146 +#define BASE_SI_EAX_ESI_CONST_2 147 +#define BASE_SI_ECX_ESI_CONST_2 148 +#define BASE_SI_EDX_ESI_CONST_2 149 +#define BASE_SI_EBX_ESI_CONST_2 150 +#define BASE_SI_BLDR_ESP_ESI_CONST_2 151 +#define BASE_SI_DISPD_ESI_CONST_2 152 +#define BASE_SI_ESI_ESI_CONST_2 153 +#define BASE_SI_EDI_ESI_CONST_2 154 +#define BASE_SI_EAX_EDI_CONST_2 155 +#define BASE_SI_ECX_EDI_CONST_2 156 +#define BASE_SI_EDX_EDI_CONST_2 157 +#define BASE_SI_EBX_EDI_CONST_2 158 +#define BASE_SI_BLDR_ESP_EDI_CONST_2 159 +#define BASE_SI_DISPD_EDI_CONST_2 160 +#define BASE_SI_ESI_EDI_CONST_2 161 +#define BASE_SI_EDI_EDI_CONST_2 162 +#define BASE_SI_EAX_EAX_CONST_4 163 +#define BASE_SI_ECX_EAX_CONST_4 164 +#define BASE_SI_EDX_EAX_CONST_4 165 +#define BASE_SI_EBX_EAX_CONST_4 166 +#define BASE_SI_BLDR_ESP_EAX_CONST_4 167 +#define BASE_SI_DISPD_EAX_CONST_4 168 +#define BASE_SI_ESI_EAX_CONST_4 169 +#define BASE_SI_EDI_EAX_CONST_4 170 +#define BASE_SI_EAX_ECX_CONST_4 171 +#define BASE_SI_ECX_ECX_CONST_4 172 +#define BASE_SI_EDX_ECX_CONST_4 173 +#define BASE_SI_EBX_ECX_CONST_4 174 +#define BASE_SI_BLDR_ESP_ECX_CONST_4 175 +#define BASE_SI_DISPD_ECX_CONST_4 176 +#define BASE_SI_ESI_ECX_CONST_4 177 +#define BASE_SI_EDI_ECX_CONST_4 178 +#define BASE_SI_EAX_EDX_CONST_4 179 +#define BASE_SI_ECX_EDX_CONST_4 180 +#define BASE_SI_EDX_EDX_CONST_4 181 +#define BASE_SI_EBX_EDX_CONST_4 182 +#define BASE_SI_BLDR_ESP_EDX_CONST_4 183 +#define BASE_SI_DISPD_EDX_CONST_4 184 +#define BASE_SI_ESI_EDX_CONST_4 185 +#define BASE_SI_EDI_EDX_CONST_4 186 +#define BASE_SI_EAX_EBX_CONST_4 187 +#define BASE_SI_ECX_EBX_CONST_4 188 +#define BASE_SI_EDX_EBX_CONST_4 189 +#define BASE_SI_EBX_EBX_CONST_4 190 +#define BASE_SI_BLDR_ESP_EBX_CONST_4 191 +#define BASE_SI_DISPD_EBX_CONST_4 192 +#define BASE_SI_ESI_EBX_CONST_4 193 +#define BASE_SI_EDI_EBX_CONST_4 194 +#define BASE_SI_EAX_UNDEF_CONST_4 195 +#define BASE_SI_ECX_UNDEF_CONST_4 196 +#define BASE_SI_EDX_UNDEF_CONST_4 197 +#define BASE_SI_EBX_UNDEF_CONST_4 198 +#define BASE_SI_BLDR_ESP_UNDEF_CONST_4 199 +#define BASE_SI_DISPD_UNDEF_CONST_4 200 +#define BASE_SI_ESI_UNDEF_CONST_4 201 +#define BASE_SI_EDI_UNDEF_CONST_4 202 +#define BASE_SI_EAX_EBP_CONST_4 203 +#define BASE_SI_ECX_EBP_CONST_4 204 +#define BASE_SI_EDX_EBP_CONST_4 205 +#define BASE_SI_EBX_EBP_CONST_4 206 +#define BASE_SI_BLDR_ESP_EBP_CONST_4 207 +#define BASE_SI_DISPD_EBP_CONST_4 208 +#define BASE_SI_ESI_EBP_CONST_4 209 +#define BASE_SI_EDI_EBP_CONST_4 210 +#define BASE_SI_EAX_ESI_CONST_4 211 +#define BASE_SI_ECX_ESI_CONST_4 212 +#define BASE_SI_EDX_ESI_CONST_4 213 +#define BASE_SI_EBX_ESI_CONST_4 214 +#define BASE_SI_BLDR_ESP_ESI_CONST_4 215 +#define BASE_SI_DISPD_ESI_CONST_4 216 +#define BASE_SI_ESI_ESI_CONST_4 217 +#define BASE_SI_EDI_ESI_CONST_4 218 +#define BASE_SI_EAX_EDI_CONST_4 219 +#define BASE_SI_ECX_EDI_CONST_4 220 +#define BASE_SI_EDX_EDI_CONST_4 221 +#define BASE_SI_EBX_EDI_CONST_4 222 +#define BASE_SI_BLDR_ESP_EDI_CONST_4 223 +#define BASE_SI_DISPD_EDI_CONST_4 224 +#define BASE_SI_ESI_EDI_CONST_4 225 +#define BASE_SI_EDI_EDI_CONST_4 226 +#define BASE_SI_EAX_EAX_CONST_8 227 +#define BASE_SI_ECX_EAX_CONST_8 228 +#define BASE_SI_EDX_EAX_CONST_8 229 +#define BASE_SI_EBX_EAX_CONST_8 230 +#define BASE_SI_BLDR_ESP_EAX_CONST_8 231 +#define BASE_SI_DISPD_EAX_CONST_8 232 +#define BASE_SI_ESI_EAX_CONST_8 233 +#define BASE_SI_EDI_EAX_CONST_8 234 +#define BASE_SI_EAX_ECX_CONST_8 235 +#define BASE_SI_ECX_ECX_CONST_8 236 +#define BASE_SI_EDX_ECX_CONST_8 237 +#define BASE_SI_EBX_ECX_CONST_8 238 +#define BASE_SI_BLDR_ESP_ECX_CONST_8 239 +#define BASE_SI_DISPD_ECX_CONST_8 240 +#define BASE_SI_ESI_ECX_CONST_8 241 +#define BASE_SI_EDI_ECX_CONST_8 242 +#define BASE_SI_EAX_EDX_CONST_8 243 +#define BASE_SI_ECX_EDX_CONST_8 244 +#define BASE_SI_EDX_EDX_CONST_8 245 +#define BASE_SI_EBX_EDX_CONST_8 246 +#define BASE_SI_BLDR_ESP_EDX_CONST_8 247 +#define BASE_SI_DISPD_EDX_CONST_8 248 +#define BASE_SI_ESI_EDX_CONST_8 249 +#define BASE_SI_EDI_EDX_CONST_8 250 +#define BASE_SI_EAX_EBX_CONST_8 251 +#define BASE_SI_ECX_EBX_CONST_8 252 +#define BASE_SI_EDX_EBX_CONST_8 253 +#define BASE_SI_EBX_EBX_CONST_8 254 +#define BASE_SI_BLDR_ESP_EBX_CONST_8 255 +#define BASE_SI_DISPD_EBX_CONST_8 256 +#define BASE_SI_ESI_EBX_CONST_8 257 +#define BASE_SI_EDI_EBX_CONST_8 258 +#define BASE_SI_EAX_UNDEF_CONST_8 259 +#define BASE_SI_ECX_UNDEF_CONST_8 260 +#define BASE_SI_EDX_UNDEF_CONST_8 261 +#define BASE_SI_EBX_UNDEF_CONST_8 262 +#define BASE_SI_BLDR_ESP_UNDEF_CONST_8 263 +#define BASE_SI_DISPD_UNDEF_CONST_8 264 +#define BASE_SI_ESI_UNDEF_CONST_8 265 +#define BASE_SI_EDI_UNDEF_CONST_8 266 +#define BASE_SI_EAX_EBP_CONST_8 267 +#define BASE_SI_ECX_EBP_CONST_8 268 +#define BASE_SI_EDX_EBP_CONST_8 269 +#define BASE_SI_EBX_EBP_CONST_8 270 +#define BASE_SI_BLDR_ESP_EBP_CONST_8 271 +#define BASE_SI_DISPD_EBP_CONST_8 272 +#define BASE_SI_ESI_EBP_CONST_8 273 +#define BASE_SI_EDI_EBP_CONST_8 274 +#define BASE_SI_EAX_ESI_CONST_8 275 +#define BASE_SI_ECX_ESI_CONST_8 276 +#define BASE_SI_EDX_ESI_CONST_8 277 +#define BASE_SI_EBX_ESI_CONST_8 278 +#define BASE_SI_BLDR_ESP_ESI_CONST_8 279 +#define BASE_SI_DISPD_ESI_CONST_8 280 +#define BASE_SI_ESI_ESI_CONST_8 281 +#define BASE_SI_EDI_ESI_CONST_8 282 +#define BASE_SI_EAX_EDI_CONST_8 283 +#define BASE_SI_ECX_EDI_CONST_8 284 +#define BASE_SI_EDX_EDI_CONST_8 285 +#define BASE_SI_EBX_EDI_CONST_8 286 +#define BASE_SI_BLDR_ESP_EDI_CONST_8 287 +#define BASE_SI_DISPD_EDI_CONST_8 288 +#define BASE_SI_ESI_EDI_CONST_8 289 +#define BASE_SI_EDI_EDI_CONST_8 290 +#define BASE_SI_DISP_EAX_EAX_DISPD_CONST_1 291 +#define BASE_SI_DISP_ECX_EAX_DISPD_CONST_1 292 +#define BASE_SI_DISP_EDX_EAX_DISPD_CONST_1 293 +#define BASE_SI_DISP_EBX_EAX_DISPD_CONST_1 294 +#define BASE_SI_DISP_BLDR_ESP_EAX_DISPD_CONST_1 295 +#define BASE_SI_DISP_EBP_EAX_DISPD_CONST_1 296 +#define BASE_SI_DISP_ESI_EAX_DISPD_CONST_1 297 +#define BASE_SI_DISP_EDI_EAX_DISPD_CONST_1 298 +#define BASE_SI_DISP_EAX_ECX_DISPD_CONST_1 299 +#define BASE_SI_DISP_ECX_ECX_DISPD_CONST_1 300 +#define BASE_SI_DISP_EDX_ECX_DISPD_CONST_1 301 +#define BASE_SI_DISP_EBX_ECX_DISPD_CONST_1 302 +#define BASE_SI_DISP_BLDR_ESP_ECX_DISPD_CONST_1 303 +#define BASE_SI_DISP_EBP_ECX_DISPD_CONST_1 304 +#define BASE_SI_DISP_ESI_ECX_DISPD_CONST_1 305 +#define BASE_SI_DISP_EDI_ECX_DISPD_CONST_1 306 +#define BASE_SI_DISP_EAX_EDX_DISPD_CONST_1 307 +#define BASE_SI_DISP_ECX_EDX_DISPD_CONST_1 308 +#define BASE_SI_DISP_EDX_EDX_DISPD_CONST_1 309 +#define BASE_SI_DISP_EBX_EDX_DISPD_CONST_1 310 +#define BASE_SI_DISP_BLDR_ESP_EDX_DISPD_CONST_1 311 +#define BASE_SI_DISP_EBP_EDX_DISPD_CONST_1 312 +#define BASE_SI_DISP_ESI_EDX_DISPD_CONST_1 313 +#define BASE_SI_DISP_EDI_EDX_DISPD_CONST_1 314 +#define BASE_SI_DISP_EAX_EBX_DISPD_CONST_1 315 +#define BASE_SI_DISP_ECX_EBX_DISPD_CONST_1 316 +#define BASE_SI_DISP_EDX_EBX_DISPD_CONST_1 317 +#define BASE_SI_DISP_EBX_EBX_DISPD_CONST_1 318 +#define BASE_SI_DISP_BLDR_ESP_EBX_DISPD_CONST_1 319 +#define BASE_SI_DISP_EBP_EBX_DISPD_CONST_1 320 +#define BASE_SI_DISP_ESI_EBX_DISPD_CONST_1 321 +#define BASE_SI_DISP_EDI_EBX_DISPD_CONST_1 322 +#define BASE_SI_DISP_EAX_UNDEF_DISPD_CONST_1 323 +#define BASE_SI_DISP_ECX_UNDEF_DISPD_CONST_1 324 +#define BASE_SI_DISP_EDX_UNDEF_DISPD_CONST_1 325 +#define BASE_SI_DISP_EBX_UNDEF_DISPD_CONST_1 326 +#define BASE_SI_DISP_BLDR_ESP_UNDEF_DISPD_CONST_1 327 +#define BASE_SI_DISP_EBP_UNDEF_DISPD_CONST_1 328 +#define BASE_SI_DISP_ESI_UNDEF_DISPD_CONST_1 329 +#define BASE_SI_DISP_EDI_UNDEF_DISPD_CONST_1 330 +#define BASE_SI_DISP_EAX_EBP_DISPD_CONST_1 331 +#define BASE_SI_DISP_ECX_EBP_DISPD_CONST_1 332 +#define BASE_SI_DISP_EDX_EBP_DISPD_CONST_1 333 +#define BASE_SI_DISP_EBX_EBP_DISPD_CONST_1 334 +#define BASE_SI_DISP_BLDR_ESP_EBP_DISPD_CONST_1 335 +#define BASE_SI_DISP_EBP_EBP_DISPD_CONST_1 336 +#define BASE_SI_DISP_ESI_EBP_DISPD_CONST_1 337 +#define BASE_SI_DISP_EDI_EBP_DISPD_CONST_1 338 +#define BASE_SI_DISP_EAX_ESI_DISPD_CONST_1 339 +#define BASE_SI_DISP_ECX_ESI_DISPD_CONST_1 340 +#define BASE_SI_DISP_EDX_ESI_DISPD_CONST_1 341 +#define BASE_SI_DISP_EBX_ESI_DISPD_CONST_1 342 +#define BASE_SI_DISP_BLDR_ESP_ESI_DISPD_CONST_1 343 +#define BASE_SI_DISP_EBP_ESI_DISPD_CONST_1 344 +#define BASE_SI_DISP_ESI_ESI_DISPD_CONST_1 345 +#define BASE_SI_DISP_EDI_ESI_DISPD_CONST_1 346 +#define BASE_SI_DISP_EAX_EDI_DISPD_CONST_1 347 +#define BASE_SI_DISP_ECX_EDI_DISPD_CONST_1 348 +#define BASE_SI_DISP_EDX_EDI_DISPD_CONST_1 349 +#define BASE_SI_DISP_EBX_EDI_DISPD_CONST_1 350 +#define BASE_SI_DISP_BLDR_ESP_EDI_DISPD_CONST_1 351 +#define BASE_SI_DISP_EBP_EDI_DISPD_CONST_1 352 +#define BASE_SI_DISP_ESI_EDI_DISPD_CONST_1 353 +#define BASE_SI_DISP_EDI_EDI_DISPD_CONST_1 354 +#define BASE_SI_DISP_EAX_EAX_DISPD_CONST_2 355 +#define BASE_SI_DISP_ECX_EAX_DISPD_CONST_2 356 +#define BASE_SI_DISP_EDX_EAX_DISPD_CONST_2 357 +#define BASE_SI_DISP_EBX_EAX_DISPD_CONST_2 358 +#define BASE_SI_DISP_BLDR_ESP_EAX_DISPD_CONST_2 359 +#define BASE_SI_DISP_EBP_EAX_DISPD_CONST_2 360 +#define BASE_SI_DISP_ESI_EAX_DISPD_CONST_2 361 +#define BASE_SI_DISP_EDI_EAX_DISPD_CONST_2 362 +#define BASE_SI_DISP_EAX_ECX_DISPD_CONST_2 363 +#define BASE_SI_DISP_ECX_ECX_DISPD_CONST_2 364 +#define BASE_SI_DISP_EDX_ECX_DISPD_CONST_2 365 +#define BASE_SI_DISP_EBX_ECX_DISPD_CONST_2 366 +#define BASE_SI_DISP_BLDR_ESP_ECX_DISPD_CONST_2 367 +#define BASE_SI_DISP_EBP_ECX_DISPD_CONST_2 368 +#define BASE_SI_DISP_ESI_ECX_DISPD_CONST_2 369 +#define BASE_SI_DISP_EDI_ECX_DISPD_CONST_2 370 +#define BASE_SI_DISP_EAX_EDX_DISPD_CONST_2 371 +#define BASE_SI_DISP_ECX_EDX_DISPD_CONST_2 372 +#define BASE_SI_DISP_EDX_EDX_DISPD_CONST_2 373 +#define BASE_SI_DISP_EBX_EDX_DISPD_CONST_2 374 +#define BASE_SI_DISP_BLDR_ESP_EDX_DISPD_CONST_2 375 +#define BASE_SI_DISP_EBP_EDX_DISPD_CONST_2 376 +#define BASE_SI_DISP_ESI_EDX_DISPD_CONST_2 377 +#define BASE_SI_DISP_EDI_EDX_DISPD_CONST_2 378 +#define BASE_SI_DISP_EAX_EBX_DISPD_CONST_2 379 +#define BASE_SI_DISP_ECX_EBX_DISPD_CONST_2 380 +#define BASE_SI_DISP_EDX_EBX_DISPD_CONST_2 381 +#define BASE_SI_DISP_EBX_EBX_DISPD_CONST_2 382 +#define BASE_SI_DISP_BLDR_ESP_EBX_DISPD_CONST_2 383 +#define BASE_SI_DISP_EBP_EBX_DISPD_CONST_2 384 +#define BASE_SI_DISP_ESI_EBX_DISPD_CONST_2 385 +#define BASE_SI_DISP_EDI_EBX_DISPD_CONST_2 386 +#define BASE_SI_DISP_EAX_UNDEF_DISPD_CONST_2 387 +#define BASE_SI_DISP_ECX_UNDEF_DISPD_CONST_2 388 +#define BASE_SI_DISP_EDX_UNDEF_DISPD_CONST_2 389 +#define BASE_SI_DISP_EBX_UNDEF_DISPD_CONST_2 390 +#define BASE_SI_DISP_BLDR_ESP_UNDEF_DISPD_CONST_2 391 +#define BASE_SI_DISP_EBP_UNDEF_DISPD_CONST_2 392 +#define BASE_SI_DISP_ESI_UNDEF_DISPD_CONST_2 393 +#define BASE_SI_DISP_EDI_UNDEF_DISPD_CONST_2 394 +#define BASE_SI_DISP_EAX_EBP_DISPD_CONST_2 395 +#define BASE_SI_DISP_ECX_EBP_DISPD_CONST_2 396 +#define BASE_SI_DISP_EDX_EBP_DISPD_CONST_2 397 +#define BASE_SI_DISP_EBX_EBP_DISPD_CONST_2 398 +#define BASE_SI_DISP_BLDR_ESP_EBP_DISPD_CONST_2 399 +#define BASE_SI_DISP_EBP_EBP_DISPD_CONST_2 400 +#define BASE_SI_DISP_ESI_EBP_DISPD_CONST_2 401 +#define BASE_SI_DISP_EDI_EBP_DISPD_CONST_2 402 +#define BASE_SI_DISP_EAX_ESI_DISPD_CONST_2 403 +#define BASE_SI_DISP_ECX_ESI_DISPD_CONST_2 404 +#define BASE_SI_DISP_EDX_ESI_DISPD_CONST_2 405 +#define BASE_SI_DISP_EBX_ESI_DISPD_CONST_2 406 +#define BASE_SI_DISP_BLDR_ESP_ESI_DISPD_CONST_2 407 +#define BASE_SI_DISP_EBP_ESI_DISPD_CONST_2 408 +#define BASE_SI_DISP_ESI_ESI_DISPD_CONST_2 409 +#define BASE_SI_DISP_EDI_ESI_DISPD_CONST_2 410 +#define BASE_SI_DISP_EAX_EDI_DISPD_CONST_2 411 +#define BASE_SI_DISP_ECX_EDI_DISPD_CONST_2 412 +#define BASE_SI_DISP_EDX_EDI_DISPD_CONST_2 413 +#define BASE_SI_DISP_EBX_EDI_DISPD_CONST_2 414 +#define BASE_SI_DISP_BLDR_ESP_EDI_DISPD_CONST_2 415 +#define BASE_SI_DISP_EBP_EDI_DISPD_CONST_2 416 +#define BASE_SI_DISP_ESI_EDI_DISPD_CONST_2 417 +#define BASE_SI_DISP_EDI_EDI_DISPD_CONST_2 418 +#define BASE_SI_DISP_EAX_EAX_DISPD_CONST_4 419 +#define BASE_SI_DISP_ECX_EAX_DISPD_CONST_4 420 +#define BASE_SI_DISP_EDX_EAX_DISPD_CONST_4 421 +#define BASE_SI_DISP_EBX_EAX_DISPD_CONST_4 422 +#define BASE_SI_DISP_BLDR_ESP_EAX_DISPD_CONST_4 423 +#define BASE_SI_DISP_EBP_EAX_DISPD_CONST_4 424 +#define BASE_SI_DISP_ESI_EAX_DISPD_CONST_4 425 +#define BASE_SI_DISP_EDI_EAX_DISPD_CONST_4 426 +#define BASE_SI_DISP_EAX_ECX_DISPD_CONST_4 427 +#define BASE_SI_DISP_ECX_ECX_DISPD_CONST_4 428 +#define BASE_SI_DISP_EDX_ECX_DISPD_CONST_4 429 +#define BASE_SI_DISP_EBX_ECX_DISPD_CONST_4 430 +#define BASE_SI_DISP_BLDR_ESP_ECX_DISPD_CONST_4 431 +#define BASE_SI_DISP_EBP_ECX_DISPD_CONST_4 432 +#define BASE_SI_DISP_ESI_ECX_DISPD_CONST_4 433 +#define BASE_SI_DISP_EDI_ECX_DISPD_CONST_4 434 +#define BASE_SI_DISP_EAX_EDX_DISPD_CONST_4 435 +#define BASE_SI_DISP_ECX_EDX_DISPD_CONST_4 436 +#define BASE_SI_DISP_EDX_EDX_DISPD_CONST_4 437 +#define BASE_SI_DISP_EBX_EDX_DISPD_CONST_4 438 +#define BASE_SI_DISP_BLDR_ESP_EDX_DISPD_CONST_4 439 +#define BASE_SI_DISP_EBP_EDX_DISPD_CONST_4 440 +#define BASE_SI_DISP_ESI_EDX_DISPD_CONST_4 441 +#define BASE_SI_DISP_EDI_EDX_DISPD_CONST_4 442 +#define BASE_SI_DISP_EAX_EBX_DISPD_CONST_4 443 +#define BASE_SI_DISP_ECX_EBX_DISPD_CONST_4 444 +#define BASE_SI_DISP_EDX_EBX_DISPD_CONST_4 445 +#define BASE_SI_DISP_EBX_EBX_DISPD_CONST_4 446 +#define BASE_SI_DISP_BLDR_ESP_EBX_DISPD_CONST_4 447 +#define BASE_SI_DISP_EBP_EBX_DISPD_CONST_4 448 +#define BASE_SI_DISP_ESI_EBX_DISPD_CONST_4 449 +#define BASE_SI_DISP_EDI_EBX_DISPD_CONST_4 450 +#define BASE_SI_DISP_EAX_UNDEF_DISPD_CONST_4 451 +#define BASE_SI_DISP_ECX_UNDEF_DISPD_CONST_4 452 +#define BASE_SI_DISP_EDX_UNDEF_DISPD_CONST_4 453 +#define BASE_SI_DISP_EBX_UNDEF_DISPD_CONST_4 454 +#define BASE_SI_DISP_BLDR_ESP_UNDEF_DISPD_CONST_4 455 +#define BASE_SI_DISP_EBP_UNDEF_DISPD_CONST_4 456 +#define BASE_SI_DISP_ESI_UNDEF_DISPD_CONST_4 457 +#define BASE_SI_DISP_EDI_UNDEF_DISPD_CONST_4 458 +#define BASE_SI_DISP_EAX_EBP_DISPD_CONST_4 459 +#define BASE_SI_DISP_ECX_EBP_DISPD_CONST_4 460 +#define BASE_SI_DISP_EDX_EBP_DISPD_CONST_4 461 +#define BASE_SI_DISP_EBX_EBP_DISPD_CONST_4 462 +#define BASE_SI_DISP_BLDR_ESP_EBP_DISPD_CONST_4 463 +#define BASE_SI_DISP_EBP_EBP_DISPD_CONST_4 464 +#define BASE_SI_DISP_ESI_EBP_DISPD_CONST_4 465 +#define BASE_SI_DISP_EDI_EBP_DISPD_CONST_4 466 +#define BASE_SI_DISP_EAX_ESI_DISPD_CONST_4 467 +#define BASE_SI_DISP_ECX_ESI_DISPD_CONST_4 468 +#define BASE_SI_DISP_EDX_ESI_DISPD_CONST_4 469 +#define BASE_SI_DISP_EBX_ESI_DISPD_CONST_4 470 +#define BASE_SI_DISP_BLDR_ESP_ESI_DISPD_CONST_4 471 +#define BASE_SI_DISP_EBP_ESI_DISPD_CONST_4 472 +#define BASE_SI_DISP_ESI_ESI_DISPD_CONST_4 473 +#define BASE_SI_DISP_EDI_ESI_DISPD_CONST_4 474 +#define BASE_SI_DISP_EAX_EDI_DISPD_CONST_4 475 +#define BASE_SI_DISP_ECX_EDI_DISPD_CONST_4 476 +#define BASE_SI_DISP_EDX_EDI_DISPD_CONST_4 477 +#define BASE_SI_DISP_EBX_EDI_DISPD_CONST_4 478 +#define BASE_SI_DISP_BLDR_ESP_EDI_DISPD_CONST_4 479 +#define BASE_SI_DISP_EBP_EDI_DISPD_CONST_4 480 +#define BASE_SI_DISP_ESI_EDI_DISPD_CONST_4 481 +#define BASE_SI_DISP_EDI_EDI_DISPD_CONST_4 482 +#define BASE_SI_DISP_EAX_EAX_DISPD_CONST_8 483 +#define BASE_SI_DISP_ECX_EAX_DISPD_CONST_8 484 +#define BASE_SI_DISP_EDX_EAX_DISPD_CONST_8 485 +#define BASE_SI_DISP_EBX_EAX_DISPD_CONST_8 486 +#define BASE_SI_DISP_BLDR_ESP_EAX_DISPD_CONST_8 487 +#define BASE_SI_DISP_EBP_EAX_DISPD_CONST_8 488 +#define BASE_SI_DISP_ESI_EAX_DISPD_CONST_8 489 +#define BASE_SI_DISP_EDI_EAX_DISPD_CONST_8 490 +#define BASE_SI_DISP_EAX_ECX_DISPD_CONST_8 491 +#define BASE_SI_DISP_ECX_ECX_DISPD_CONST_8 492 +#define BASE_SI_DISP_EDX_ECX_DISPD_CONST_8 493 +#define BASE_SI_DISP_EBX_ECX_DISPD_CONST_8 494 +#define BASE_SI_DISP_BLDR_ESP_ECX_DISPD_CONST_8 495 +#define BASE_SI_DISP_EBP_ECX_DISPD_CONST_8 496 +#define BASE_SI_DISP_ESI_ECX_DISPD_CONST_8 497 +#define BASE_SI_DISP_EDI_ECX_DISPD_CONST_8 498 +#define BASE_SI_DISP_EAX_EDX_DISPD_CONST_8 499 +#define BASE_SI_DISP_ECX_EDX_DISPD_CONST_8 500 +#define BASE_SI_DISP_EDX_EDX_DISPD_CONST_8 501 +#define BASE_SI_DISP_EBX_EDX_DISPD_CONST_8 502 +#define BASE_SI_DISP_BLDR_ESP_EDX_DISPD_CONST_8 503 +#define BASE_SI_DISP_EBP_EDX_DISPD_CONST_8 504 +#define BASE_SI_DISP_ESI_EDX_DISPD_CONST_8 505 +#define BASE_SI_DISP_EDI_EDX_DISPD_CONST_8 506 +#define BASE_SI_DISP_EAX_EBX_DISPD_CONST_8 507 +#define BASE_SI_DISP_ECX_EBX_DISPD_CONST_8 508 +#define BASE_SI_DISP_EDX_EBX_DISPD_CONST_8 509 +#define BASE_SI_DISP_EBX_EBX_DISPD_CONST_8 510 +#define BASE_SI_DISP_BLDR_ESP_EBX_DISPD_CONST_8 511 +#define BASE_SI_DISP_EBP_EBX_DISPD_CONST_8 512 +#define BASE_SI_DISP_ESI_EBX_DISPD_CONST_8 513 +#define BASE_SI_DISP_EDI_EBX_DISPD_CONST_8 514 +#define BASE_SI_DISP_EAX_UNDEF_DISPD_CONST_8 515 +#define BASE_SI_DISP_ECX_UNDEF_DISPD_CONST_8 516 +#define BASE_SI_DISP_EDX_UNDEF_DISPD_CONST_8 517 +#define BASE_SI_DISP_EBX_UNDEF_DISPD_CONST_8 518 +#define BASE_SI_DISP_BLDR_ESP_UNDEF_DISPD_CONST_8 519 +#define BASE_SI_DISP_EBP_UNDEF_DISPD_CONST_8 520 +#define BASE_SI_DISP_ESI_UNDEF_DISPD_CONST_8 521 +#define BASE_SI_DISP_EDI_UNDEF_DISPD_CONST_8 522 +#define BASE_SI_DISP_EAX_EBP_DISPD_CONST_8 523 +#define BASE_SI_DISP_ECX_EBP_DISPD_CONST_8 524 +#define BASE_SI_DISP_EDX_EBP_DISPD_CONST_8 525 +#define BASE_SI_DISP_EBX_EBP_DISPD_CONST_8 526 +#define BASE_SI_DISP_BLDR_ESP_EBP_DISPD_CONST_8 527 +#define BASE_SI_DISP_EBP_EBP_DISPD_CONST_8 528 +#define BASE_SI_DISP_ESI_EBP_DISPD_CONST_8 529 +#define BASE_SI_DISP_EDI_EBP_DISPD_CONST_8 530 +#define BASE_SI_DISP_EAX_ESI_DISPD_CONST_8 531 +#define BASE_SI_DISP_ECX_ESI_DISPD_CONST_8 532 +#define BASE_SI_DISP_EDX_ESI_DISPD_CONST_8 533 +#define BASE_SI_DISP_EBX_ESI_DISPD_CONST_8 534 +#define BASE_SI_DISP_BLDR_ESP_ESI_DISPD_CONST_8 535 +#define BASE_SI_DISP_EBP_ESI_DISPD_CONST_8 536 +#define BASE_SI_DISP_ESI_ESI_DISPD_CONST_8 537 +#define BASE_SI_DISP_EDI_ESI_DISPD_CONST_8 538 +#define BASE_SI_DISP_EAX_EDI_DISPD_CONST_8 539 +#define BASE_SI_DISP_ECX_EDI_DISPD_CONST_8 540 +#define BASE_SI_DISP_EDX_EDI_DISPD_CONST_8 541 +#define BASE_SI_DISP_EBX_EDI_DISPD_CONST_8 542 +#define BASE_SI_DISP_BLDR_ESP_EDI_DISPD_CONST_8 543 +#define BASE_SI_DISP_EBP_EDI_DISPD_CONST_8 544 +#define BASE_SI_DISP_ESI_EDI_DISPD_CONST_8 545 +#define BASE_SI_DISP_EDI_EDI_DISPD_CONST_8 546 +#define OFFS_REG_AX 547 +#define OFFS_REG_CX 548 +#define OFFS_REG_DX 549 +#define OFFS_REG_BX 550 +#define OFFS_REG_BLDR_SP 551 +#define OFFS_REG_BP 552 +#define OFFS_REG_SI 553 +#define OFFS_REG_DI 554 +#define OFFS_REG_EAX 555 +#define OFFS_REG_ECX 556 +#define OFFS_REG_EDX 557 +#define OFFS_REG_EBX 558 +#define OFFS_REG_BLDR_ESP 559 +#define OFFS_REG_EBP 560 +#define OFFS_REG_ESI 561 +#define OFFS_REG_EDI 562 +#define ACCESS_ES_RW_B 563 +#define ACCESS_CS_RW_B 564 +#define ACCESS_SS_RW_B 565 +#define ACCESS_DS_RW_B 566 +#define ACCESS_FS_RW_B 567 +#define ACCESS_GS_RW_B 568 +#define ACCESS_ES_RW_W 569 +#define ACCESS_CS_RW_W 570 +#define ACCESS_SS_RW_W 571 +#define ACCESS_DS_RW_W 572 +#define ACCESS_FS_RW_W 573 +#define ACCESS_GS_RW_W 574 +#define ACCESS_ES_RW_D 575 +#define ACCESS_CS_RW_D 576 +#define ACCESS_SS_RW_D 577 +#define ACCESS_DS_RW_D 578 +#define ACCESS_FS_RW_D 579 +#define ACCESS_GS_RW_D 580 +#define ACCESS_ES_RD_B 581 +#define ACCESS_CS_RD_B 582 +#define ACCESS_SS_RD_B 583 +#define ACCESS_DS_RD_B 584 +#define ACCESS_FS_RD_B 585 +#define ACCESS_GS_RD_B 586 +#define ACCESS_ES_RD_W 587 +#define ACCESS_CS_RD_W 588 +#define ACCESS_SS_RD_W 589 +#define ACCESS_DS_RD_W 590 +#define ACCESS_FS_RD_W 591 +#define ACCESS_GS_RD_W 592 +#define ACCESS_ES_RD_D 593 +#define ACCESS_CS_RD_D 594 +#define ACCESS_SS_RD_D 595 +#define ACCESS_DS_RD_D 596 +#define ACCESS_FS_RD_D 597 +#define ACCESS_GS_RD_D 598 +#define ACCESS_ES_WT_B 599 +#define ACCESS_CS_WT_B 600 +#define ACCESS_SS_WT_B 601 +#define ACCESS_DS_WT_B 602 +#define ACCESS_FS_WT_B 603 +#define ACCESS_GS_WT_B 604 +#define ACCESS_ES_WT_W 605 +#define ACCESS_CS_WT_W 606 +#define ACCESS_SS_WT_W 607 +#define ACCESS_DS_WT_W 608 +#define ACCESS_FS_WT_W 609 +#define ACCESS_GS_WT_W 610 +#define ACCESS_ES_WT_D 611 +#define ACCESS_CS_WT_D 612 +#define ACCESS_SS_WT_D 613 +#define ACCESS_DS_WT_D 614 +#define ACCESS_FS_WT_D 615 +#define ACCESS_GS_WT_D 616 +#define ACCESS_ES_RD_W2 617 +#define ACCESS_CS_RD_W2 618 +#define ACCESS_SS_RD_W2 619 +#define ACCESS_DS_RD_W2 620 +#define ACCESS_FS_RD_W2 621 +#define ACCESS_GS_RD_W2 622 +#define ACCESS_ES_RD_WD 623 +#define ACCESS_CS_RD_WD 624 +#define ACCESS_SS_RD_WD 625 +#define ACCESS_DS_RD_WD 626 +#define ACCESS_FS_RD_WD 627 +#define ACCESS_GS_RD_WD 628 +#define ACCESS_ES_RD_DW 629 +#define ACCESS_CS_RD_DW 630 +#define ACCESS_SS_RD_DW 631 +#define ACCESS_DS_RD_DW 632 +#define ACCESS_FS_RD_DW 633 +#define ACCESS_GS_RD_DW 634 +#define ACCESS_ES_WT_WD 635 +#define ACCESS_CS_WT_WD 636 +#define ACCESS_SS_WT_WD 637 +#define ACCESS_DS_WT_WD 638 +#define ACCESS_FS_WT_WD 639 +#define ACCESS_GS_WT_WD 640 +#define ACCESS_ES_RD_8B 641 +#define ACCESS_CS_RD_8B 642 +#define ACCESS_SS_RD_8B 643 +#define ACCESS_DS_RD_8B 644 +#define ACCESS_FS_RD_8B 645 +#define ACCESS_GS_RD_8B 646 +#define ACCESS_ES_WT_8B 647 +#define ACCESS_CS_WT_8B 648 +#define ACCESS_SS_WT_8B 649 +#define ACCESS_DS_WT_8B 650 +#define ACCESS_FS_WT_8B 651 +#define ACCESS_GS_WT_8B 652 +#define ACCESS_ES_RD_10B 653 +#define ACCESS_CS_RD_10B 654 +#define ACCESS_SS_RD_10B 655 +#define ACCESS_DS_RD_10B 656 +#define ACCESS_FS_RD_10B 657 +#define ACCESS_GS_RD_10B 658 +#define ACCESS_ES_WT_10B 659 +#define ACCESS_CS_WT_10B 660 +#define ACCESS_SS_WT_10B 661 +#define ACCESS_DS_WT_10B 662 +#define ACCESS_FS_WT_10B 663 +#define ACCESS_GS_WT_10B 664 +#define ACCESS_ES_RD_14B 665 +#define ACCESS_CS_RD_14B 666 +#define ACCESS_SS_RD_14B 667 +#define ACCESS_DS_RD_14B 668 +#define ACCESS_FS_RD_14B 669 +#define ACCESS_GS_RD_14B 670 +#define ACCESS_ES_WT_14B 671 +#define ACCESS_CS_WT_14B 672 +#define ACCESS_SS_WT_14B 673 +#define ACCESS_DS_WT_14B 674 +#define ACCESS_FS_WT_14B 675 +#define ACCESS_GS_WT_14B 676 +#define ACCESS_ES_RD_94B 677 +#define ACCESS_CS_RD_94B 678 +#define ACCESS_SS_RD_94B 679 +#define ACCESS_DS_RD_94B 680 +#define ACCESS_FS_RD_94B 681 +#define ACCESS_GS_RD_94B 682 +#define ACCESS_ES_WT_94B 683 +#define ACCESS_CS_WT_94B 684 +#define ACCESS_SS_WT_94B 685 +#define ACCESS_DS_WT_94B 686 +#define ACCESS_FS_WT_94B 687 +#define ACCESS_GS_WT_94B 688 +#define I_CLC 689 +#define I_CLD 690 +#define I_CLI 691 +#define I_CLTS 692 +#define I_CMC 693 +#define I_INVD 694 +#define I_NOP 695 +#define I_STC 696 +#define I_STD 697 +#define I_STI 698 +#define I_WAIT 699 +#define I_WBINVD 700 +#define I_ZBADOP 701 +#define I_RSRVD 702 +#define I_INT1 703 +#define I_INT3 704 +#define I_INT7 705 +#define I_JMPN_IMM 706 +#define I_ZDISPATCH_EIP 707 +#define I_ZPATCH_ME 708 +#define I_ZPAGE_BOUNDARY 709 +#define I_ZPOST_POP 710 +#define I_ZRET_TO_COROUTINE 711 +#define I_ZUNSIM 712 +#define I_F2XM1 713 +#define I_FABS 714 +#define I_FCHS 715 +#define I_FNCLEX 716 +#define I_FCOMPP 717 +#define I_FCOS 718 +#define I_FDECSTP 719 +#define I_FINCSTP 720 +#define I_FNINIT 721 +#define I_FLD1 722 +#define I_FLDL2T 723 +#define I_FLDL2E 724 +#define I_FLDPI 725 +#define I_FLDLG2 726 +#define I_FLDLN2 727 +#define I_FLDZ 728 +#define I_FNOP 729 +#define I_FPATAN 730 +#define I_FPREM 731 +#define I_FPREM1 732 +#define I_FPTAN 733 +#define I_FRNDINT 734 +#define I_FSCALE 735 +#define I_FSIN 736 +#define I_FSINCOS 737 +#define I_FSQRT 738 +#define I_FTST 739 +#define I_FUCOMPP 740 +#define I_FXAM 741 +#define I_FXTRACT 742 +#define I_FYL2X 743 +#define I_FYL2XP1 744 +#define I_FRSRVD 745 +#define I_AAA_Ax_n 746 +#define I_AAS_Ax_n 747 +#define I_SAHF_Ax_n 748 +#define I_LAHF_Ax_n 749 +#define I_AAD_Ax_ib 750 +#define I_AAM_Ax_ib 751 +#define I_ADD_rmV_iV 752 +#define I_ADD_rmV_rmV 779 +#define I_ADC_rmV_iV 1019 +#define I_ADC_rmV_rmV 1046 +#define I_SUB_rmV_iV 1286 +#define I_SUB_rmV_rmV 1313 +#define I_SBB_rmV_iV 1553 +#define I_SBB_rmV_rmV 1580 +#define I_AND_rmV_iV 1820 +#define I_AND_rmV_rmV 1847 +#define I_XOR_rmV_iV 2087 +#define I_XOR_rmV_rmV 2114 +#define I_OR_rmV_iV 2354 +#define I_OR_rmV_rmV 2381 +#define I_CMP_rmV_iV 2621 +#define I_CMP_rmV_rmV 2648 +#define I_ARPL_rmw_rw 2888 +#define I_BOP_ib_n 2960 +#define I_BSF_rv_rmv 2961 +#define I_BSR_rv_rmv 3105 +#define I_BSWAP_rd_n 3249 +#define I_BT_rmv_rv 3257 +#define I_BT_rmv_ib 3401 +#define I_BTC_rmv_rv 3419 +#define I_BTC_rmv_ib 3563 +#define I_BTR_rmv_rv 3581 +#define I_BTR_rmv_ib 3725 +#define I_BTS_rmv_rv 3743 +#define I_BTS_rmv_ib 3887 +#define I_CALLF_IMM_id_ipv 3905 +#define I_CALLF_VIA_mwv_ipv 3907 +#define I_CALLN_VIA_id_ipv 3909 +#define I_CALLN_VIA_rmv_ipv 3911 +#define I_CBW_Ax_Al 3929 +#define I_CWDE_eAx_Ax 3930 +#define I_CWD_Dx_Ax 3931 +#define I_CDQ_eDx_eAx 3932 +#define I_DAA_Al_n 3933 +#define I_DAS_Al_n 3934 +#define I_LALCY_Al_n 3935 +#define I_DEC_rmV_n 3936 +#define I_INC_rmV_n 3963 +#define I_DIV_rmV_n 3990 +#define I_IDIV_rmV_n 4017 +#define I_NEG_rmV_n 4044 +#define I_NOT_rmV_n 4071 +#define I_ENTER_i1v_i2b 4098 +#define I_IMULA_Al_rmb 4100 +#define I_IMULA_rv_rmv 4109 +#define I_IMULI_rv_rmv 4253 +#define I_IMUL2_rv_rmv 4397 +#define I_INP_AxV_ib 4541 +#define I_INP_AxV_Dx 4544 +#define I_INS_V_Dx 4547 +#define I_R_INS_V_Dx 4550 +#define I_INTR_v_ib 4553 +#define I_JO_id_n 4555 +#define I_JNO_id_n 4556 +#define I_JB_id_n 4557 +#define I_JNB_id_n 4558 +#define I_JZ_id_n 4559 +#define I_JNZ_id_n 4560 +#define I_JBE_id_n 4561 +#define I_JNBE_id_n 4562 +#define I_JS_id_n 4563 +#define I_JNS_id_n 4564 +#define I_JP_id_n 4565 +#define I_JNP_id_n 4566 +#define I_JL_id_n 4567 +#define I_JNL_id_n 4568 +#define I_JLE_id_n 4569 +#define I_JNLE_id_n 4570 +#define I_ZADJUST_HSP_id_n 4571 +#define I_ZJC_PROC_id_n 4572 +#define I_ZBPI_id_n 4573 +#define I_JMPN_VIA_rmv_n 4574 +#define I_JMPF_VIA_i1d_i2w 4592 +#define I_JMPF_VIA_mv_m2w 4593 +#define I_LAR_rv_rmw 4595 +#define I_LSL_rv_rmw 4739 +#define I_LDS_rv_mv 4883 +#define I_LES_rv_mv 4899 +#define I_LFS_rv_mv 4915 +#define I_LGS_rv_mv 4931 +#define I_LSS_rv_mv 4947 +#define I_LEA_rv_eao 4963 +#define I_BOUND_rv_eao 4979 +#define I_LGDT_mw_td 4995 +#define I_LIDT_mw_td 4997 +#define I_SGDT_mw_td 4999 +#define I_SIDT_mw_td 5001 +#define I_LLDT_rmw_n 5003 +#define I_LMSW_rmw_n 5012 +#define I_LTR_rmw_n 5021 +#define I_SLDT_rmw_n 5030 +#define I_SMSW_rmw_n 5039 +#define I_STR_rmw_n 5048 +#define I_VERR_rmw_n 5057 +#define I_VERW_rmw_n 5066 +#define I_LOOP_Cxv_id 5075 +#define I_LOOPE_Cxv_id 5077 +#define I_LOOPNE_Cxv_id 5079 +#define I_JCXZ_Cxv_id 5081 +#define I_MOV_rmV_rmV 5083 +#define I_MOV_rmV_iV 5323 +#define I_MOVS_V_n 5350 +#define I_R_MOVS_V_n 5353 +#define I_CMPS_V_n 5356 +#define I_RNE_CMPS_V_n 5359 +#define I_RE_CMPS_V_n 5362 +#define I_LODS_AxV_n 5365 +#define I_R_LODS_AxV_n 5368 +#define I_MOVSX_rv_rmb 5371 +#define I_MOVSX_rd_rmw 5515 +#define I_MOVZX_rv_rmb 5587 +#define I_MOVZX_rd_rmw 5731 +#define I_MUL_AxV_rmV 5803 +#define I_OUTP_ib_AxV 5830 +#define I_OUTP_Dx_AxV 5833 +#define I_OUTS_V_n 5836 +#define I_R_OUTS_V_n 5839 +#define I_POP_rv_n 5842 +#define I_POP_MEM_mv_n 5858 +#define I_POPA_v_n 5860 +#define I_POPF_v_n 5862 +#define I_PUSHA_v_n 5864 +#define I_PUSHF_v_n 5866 +#define I_LEAVE_v_n 5868 +#define I_HLT_v_n 5870 +#define I_INTO_v_n 5872 +#define I_IRET_v_n 5874 +#define I_POP_SR_segr_v 5876 +#define I_PUSH_SR_segr_v 5888 +#define I_PUSH_rmv_n 5900 +#define I_PUSH_iv_n 5918 +#define I_RCL_rmV_one 5920 +#define I_RCL_rmV_Cl 5947 +#define I_RCL_rmV_ib 5974 +#define I_RCR_rmV_one 6001 +#define I_RCR_rmV_Cl 6028 +#define I_RCR_rmV_ib 6055 +#define I_ROL_rmV_one 6082 +#define I_ROL_rmV_Cl 6109 +#define I_ROL_rmV_ib 6136 +#define I_ROR_rmV_one 6163 +#define I_ROR_rmV_Cl 6190 +#define I_ROR_rmV_ib 6217 +#define I_SAR_rmV_one 6244 +#define I_SAR_rmV_Cl 6271 +#define I_SAR_rmV_ib 6298 +#define I_SHL_rmV_one 6325 +#define I_SHL_rmV_Cl 6352 +#define I_SHL_rmV_ib 6379 +#define I_SHR_rmV_one 6406 +#define I_SHR_rmV_Cl 6433 +#define I_SHR_rmV_ib 6460 +#define I_RETN_v_n 6487 +#define I_RETF_v_n 6489 +#define I_RETN_IMM_v_iw 6491 +#define I_RETF_IMM_v_iw 6493 +#define I_ENTER0_v_iw 6495 +#define I_SCAS_AxV_n 6497 +#define I_RE_SCAS_AxV_n 6500 +#define I_RNE_SCAS_AxV_n 6503 +#define I_STOS_AxV_n 6506 +#define I_R_STOS_AxV_n 6509 +#define I_SETO_rmb_n 6512 +#define I_SETNO_rmb_n 6521 +#define I_SETB_rmb_n 6530 +#define I_SETNB_rmb_n 6539 +#define I_SETZ_rmb_n 6548 +#define I_SETNZ_rmb_n 6557 +#define I_SETBE_rmb_n 6566 +#define I_SETNBE_rmb_n 6575 +#define I_SETS_rmb_n 6584 +#define I_SETNS_rmb_n 6593 +#define I_SETP_rmb_n 6602 +#define I_SETNP_rmb_n 6611 +#define I_SETL_rmb_n 6620 +#define I_SETNL_rmb_n 6629 +#define I_SETLE_rmb_n 6638 +#define I_SETNLE_rmb_n 6647 +#define I_SHLD_IMM_rmv_rv 6656 +#define I_SHLD_CL_rmv_rv 6800 +#define I_SHRD_IMM_rmv_rv 6944 +#define I_SHRD_CL_rmv_rv 7088 +#define I_TEST_rmV_iV 7232 +#define I_TEST_rmV_rV 7259 +#define I_CMPXCHG_rmXV_rXV 7475 +#define I_XADD_rmXV_rXV 7691 +#define I_XCHG_rmXV_rXV 7907 +#define I_XLAT_Al_mb 8123 +#define I_INVLPG_Al_mb 8124 +#define I_RD_SEGR_rmv_segr 8125 +#define I_WT_SEGR_segr_rmw 8233 +#define I_RD_CDT_rd_CDTn 8287 +#define I_WT_CDT_CDTn_rd 8479 +#define I_ZRESULT_ZERO_rV_n 8671 +#define I_FADD_st_mri 8695 +#define I_FADD_fr_st 8699 +#define I_FADD_st_fr 8700 +#define I_FDIV_st_mri 8701 +#define I_FDIV_fr_st 8705 +#define I_FDIV_st_fr 8706 +#define I_FDIVR_st_mri 8707 +#define I_FDIVR_fr_st 8711 +#define I_FDIVR_st_fr 8712 +#define I_FMUL_st_mri 8713 +#define I_FMUL_fr_st 8717 +#define I_FMUL_st_fr 8718 +#define I_FSUB_st_mri 8719 +#define I_FSUB_fr_st 8723 +#define I_FSUB_st_fr 8724 +#define I_FSUBR_st_mri 8725 +#define I_FSUBR_fr_st 8729 +#define I_FSUBR_st_fr 8730 +#define I_FADDP_fr_st 8731 +#define I_FDIVP_fr_st 8732 +#define I_FDIVRP_fr_st 8733 +#define I_FMULP_fr_st 8734 +#define I_FSUBP_fr_st 8735 +#define I_FSUBRP_fr_st 8736 +#define I_FUCOM_fr_st 8737 +#define I_FUCOMP_fr_st 8738 +#define I_FBLD_m10_n 8739 +#define I_FBSTP_m10_n 8740 +#define I_FCOM_st_mri 8741 +#define I_FCOM_st_fr 8745 +#define I_FCOMP_st_mri 8746 +#define I_FCOMP_st_fr 8750 +#define I_FFREE_fr_n 8751 +#define I_FFREEP_fr_n 8752 +#define I_FLD_mRI_n 8753 +#define I_FLD_fr_n 8759 +#define I_FSTP_mRI_n 8760 +#define I_FSTP_fr_n 8766 +#define I_FLDCW_m2_n 8767 +#define I_FNSTCW_m2_n 8768 +#define I_FNSTSW_m2_n 8769 +#define I_FNSTSW_Ax_n 8770 +#define I_FLDENV_m14_n 8771 +#define I_FNSTENV_m14_n 8772 +#define I_FRSTOR_m94_n 8773 +#define I_FNSAVE_m94_n 8774 +#define I_FST_mri_n 8775 +#define I_FST_fr_n 8779 +#define I_FXCH_fr_n 8780 +#define PTI_EFI_BASE 8781 +#define BPI_EFI_BASE 8847 +#define BLDR_CHECKSUM 0x1a46fc +#define NUM_RELOC_SUBRS 887 +#endif /* LC_HARN */ +#define VCT_SIZE 8948 diff --git a/private/mvdm/softpc.new/base/cvidc/pigger_c.h b/private/mvdm/softpc.new/base/cvidc/pigger_c.h new file mode 100644 index 000000000..aa1de5d88 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/pigger_c.h @@ -0,0 +1,128 @@ +#ifndef _Pigger_c_h +#define _Pigger_c_h +#define ValidEAX (3) +#define ValidEBX (7) +#define ValidECX (15) +#define ValidEDX (11) +#define ValidEBP (13) +#define ValidESP (15) +#define ValidESI (17) +#define ValidEDI (19) +#define PigSynchNULL ((struct PigSynchREC*)0) +#define PigHashTableShift (12) +#define PigHashTableSize (4096) +#define PigHashTableMask (4095) +enum PigValidItems +{ + ValidAL = 0, + ValidAH = 1, + ValidEAX_MS16 = 2, + ValidBL = 3, + ValidBH = 4, + ValidEBX_MS16 = 5, + ValidCL = 6, + ValidCH = 7, + ValidECX_MS16 = 8, + ValidDL = 9, + ValidDH = 10, + ValidEDX_MS16 = 11, + ValidBP = 12, + ValidEBP_MS16 = 13, + ValidSP = 14, + ValidESP_MS16 = 15, + ValidSI = 16, + ValidESI_MS16 = 17, + ValidDI = 18, + ValidEDI_MS16 = 19, + ValidDS = 20, + ValidES = 21, + ValidFS = 22, + ValidGS = 23, + ValidCF = 24, + ValidPF = 25, + ValidAF = 26, + ValidZF = 27, + ValidSF = 28, + ValidOF = 29 +}; +struct PigSynchREC +{ + IU32 linearAddress; + void *hostAddress; + void *hostDestination; + IU32 trueCode0; + IU32 trueCode1; + IU32 validRegAndFlags; + struct PigSyncREC *nextList; + struct PigSyncREC *prevList; + struct PigSyncREC *deleteList; +}; +struct CpuRegsREC +{ + IU32 CR0; + IU32 PFLA; + IU32 PDBR; + IU8 CPL; + IU32 EIP; + IU32 EAX; + IU32 EBX; + IU32 ECX; + IU32 EDX; + IU32 ESP; + IU32 EBP; + IU32 ESI; + IU32 EDI; + IU32 EFLAGS; + IU32 GDT_base; + IU16 GDT_limit; + IU32 IDT_base; + IU16 IDT_limit; + IU32 LDT_base; + IU32 LDT_limit; + IU16 LDT_selector; + IU32 TR_base; + IU32 TR_limit; + IU16 TR_ar; + IU16 TR_selector; + IU32 DS_base; + IU32 DS_limit; + IU16 DS_ar; + IU16 DS_selector; + IU32 ES_base; + IU32 ES_limit; + IU16 ES_ar; + IU16 ES_selector; + IU32 SS_base; + IU32 SS_limit; + IU16 SS_ar; + IU16 SS_selector; + IU32 CS_base; + IU32 CS_limit; + IU16 CS_ar; + IU16 CS_selector; + IU32 FS_base; + IU32 FS_limit; + IU16 FS_ar; + IU16 FS_selector; + IU32 GS_base; + IU32 GS_limit; + IU16 GS_ar; + IU16 GS_selector; +}; +struct NpxRegsREC +{ + IU32 NPX_control; + IU32 NPX_status; + IU32 NPX_tagword; + struct FPSTACKENTRY NPX_ST[8]; +}; +struct CpuStateREC +{ + struct CpuRegsREC cpu_regs; + IU32 video_latches; + IBOOL twenty_bit_wrap; + IBOOL NPX_valid; + struct NpxRegsREC NPX_regs; + IUH synch_index; +}; +#endif /* ! _Pigger_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/pm_c.h b/private/mvdm/softpc.new/base/cvidc/pm_c.h new file mode 100644 index 000000000..ead472ab9 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/pm_c.h @@ -0,0 +1,3 @@ +#ifndef _PM_c_h +#define _PM_c_h +#endif /* ! _PM_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/ports_c.h b/private/mvdm/softpc.new/base/cvidc/ports_c.h new file mode 100644 index 000000000..7b849fefb --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/ports_c.h @@ -0,0 +1,4 @@ +#ifndef _Ports_c_h +#define _Ports_c_h +#define EGA_GC_ADAP_DATA (18) +#endif /* ! _Ports_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/ppchst_c.h b/private/mvdm/softpc.new/base/cvidc/ppchst_c.h new file mode 100644 index 000000000..696950982 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/ppchst_c.h @@ -0,0 +1,9 @@ +#ifndef _Ppchst_c_h +#define _Ppchst_c_h +#define PpcPureAddressAdjustment (0) +#define PpcCallToRetAddrAdjustment (0) +#define PpcFpuOverflowExceptionBit (8) +#define PpcFpuUnderflowExceptionBit (7) +#define PpcFpuPrecisionExceptionBit (5) +#define PPC_HOST_DEST_REG_ID (23) +#endif /* ! _Ppchst_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/prof_c.h b/private/mvdm/softpc.new/base/cvidc/prof_c.h new file mode 100644 index 000000000..538a106d4 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/prof_c.h @@ -0,0 +1,12 @@ +#ifndef _Prof_c_h +#define _Prof_c_h +#define EOI_DEFAULTS (0) +#define EOI_DISABLED (1) +#define EOI_KEEP_GRAPH (2) +#define EOI_KEEP_ARGS (4) +#define EOI_ENABLE_ALL (8) +#define EOI_DISABLE_ALL (16) +#define EOI_AUTOSOI (32) +#define EOI_HOSTHOOK (64) +#define EOI_NOTIME (128) +#endif /* ! _Prof_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/prot_c.h b/private/mvdm/softpc.new/base/cvidc/prot_c.h new file mode 100644 index 000000000..65ab99988 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/prot_c.h @@ -0,0 +1,148 @@ +#ifndef _Prot_c_h +#define _Prot_c_h +#define ParanoidTranslationCheck (0) +#define DYNAMIC_ALIGNMENT_CHECK (1) +#define DISJOINT_ALIGNMENT_CHECK (1) +#define ProtTypeMask (4092) +#define ProtTypeAlignmentOnly (0) +#define ProtTypeNotPresentBit (2) +#define ProtTypeNotPresentMask (4) +#define ProtTypeNotWritableBit (3) +#define ProtTypeNotWritableMask (8) +#define ProtTypeNotDirtyBit (4) +#define ProtTypeNotDirtyMask (16) +#define ProtTypeNotAccessedBit (5) +#define ProtTypeNotAccessedMask (32) +#define ProtTypePageTableBit (6) +#define ProtTypePageTableMask (64) +#define ProtTypePageDirBit (7) +#define ProtTypePageDirMask (128) +#define ProtTypeNotMemoryBit (8) +#define ProtTypeNotMemoryMask (256) +#define ProtTypeProtectedBit (9) +#define ProtTypeProtectedMask (512) +#define ProtTypeSupervisorBit (10) +#define ProtTypeSupervisorMask (1024) +#define ProtType_A_D_W_P_Mask (60) +#define ProtTypeMemoryTypeMask (448) +#define ProtTypeVideo (256) +#define ProtTypeIO (320) +#define ProtTypeRom (384) +#define ProtTypeBeyondMemory (448) +#define ProtTypeReadTagMask (-729) +#define ProtTypeWriteTagMask (-1) +#define ValidateOK (8) +#define CoarseProtNULL ((struct CoarseProtREC*)0) +#define FineProtNULL ((struct FineProtREC*)0) +#define SlotProtNULL ((struct SlotProtREC*)0) +#define Slot_Base_S (31) +#define Slot_Base_E (26) +#define Slot_Vnum_S (25) +#define Slot_Vnum_E (23) +#define Slot_Univ_S (22) +#define Slot_Univ_E (11) +#define Slot_UnivMaxHandle (4095) +#define Slot_Code_S (10) +#define Slot_Code_E (0) +#define Slot_CodeMaxOffset (2047) +#define Slot_Top_S (31) +#define Slot_Top_E (26) +#define Slot_Buff_S (25) +#define Slot_Buff_E (16) +#define MaxNumberOfBuffers (1023) +#define Slot_Next_S (15) +#define Slot_Next_E (0) +#define Slot_Type_S (25) +#define Slot_Type_E (22) +#define Slot_Context_S (21) +#define Slot_Context_E (16) +#define Slot_Info_S (15) +#define Slot_Info_E (0) +#define ProtInfoNULL ((struct ProtInfoREC*)0) +#define ProtAllocationNULL ((struct ProtAllocationREC*)0) +#define ProtFreeListNULL ((struct ProtFreeListREC*)0) +#define MIN_NUM_FREE_MAPS (10) +#define TranslationCacheMask (1023) +#define TranslationCacheNULL ((struct TranslationCacheREC*)0) +#define TranslationMapNULL ((struct TranslationMapREC*)0) +#define TranslationCacheSize (1024) +struct CompilationControlREC +{ + IU8 blockCounts[16]; +}; +struct PhysicalPageREC +{ + IU16 fineItems[8]; + IU8 fineUsed[8]; + struct TranslationMapREC *physLoop; + IU8 vnums; + IU8 padding; + IU16 shelvedLoop; + IU16 readWriteTag; + IU16 coarseIndex; +}; +struct CoarseProtREC +{ + IU16 fineItems[8]; + IU8 fineUsed[8]; + IU16 physLoop; + IU16 dirPage; + IU16 supervisorList; + IU16 readWriteTag; +}; +struct FineProtREC +{ + IU16 protItems[16]; +}; +struct SlotProtREC +{ + IU32 baseUnivCode; + IU32 topBuffNext; +}; +enum SpecialProtectionType +{ + SpecialProtectionGLDC = 0, + SpecialProtectionIDT = 1, + SpecialProtectionDirPTE = 2, + SpecialProtectionPagePTE = 3 +}; +struct ProtInfoREC +{ + void *table; + struct ProtFreeListREC *freeList; + IUH freeCount; + IUH freeEnough; + IUH totalAllocated; + struct ProtInfoREC *largestPtr; +}; +struct ProtAllocationREC +{ + struct ProtInfoREC coarse; + struct ProtInfoREC csHash; + struct ProtInfoREC fine; + struct ProtInfoREC slot; +}; +struct ProtFreeListREC +{ + struct ProtFreeListREC *next; +}; +struct TranslationCacheREC +{ + IU32 readTag; + void *translation; + IU32 writeTag; + struct TranslationMapREC *miss; +}; +struct TranslationMapREC +{ + IU32 readWriteTag; + void *translation; + struct TranslationMapREC *missLoop; + struct TranslationMapREC *physLoop; + IU16 tagBits; + IU8 vnum; + IU16 physPage; + IU16 coarseIndex; + struct TranslationCacheREC *cached; +}; +#endif /* ! _Prot_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/pti_c.h b/private/mvdm/softpc.new/base/cvidc/pti_c.h new file mode 100644 index 000000000..27bfead47 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/pti_c.h @@ -0,0 +1,3 @@ +#ifndef _Pti_c_h +#define _Pti_c_h +#endif /* ! _Pti_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/pxcptn_c.h b/private/mvdm/softpc.new/base/cvidc/pxcptn_c.h new file mode 100644 index 000000000..ec332723e --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/pxcptn_c.h @@ -0,0 +1,27 @@ +#ifndef _PXcptn_c_h +#define _PXcptn_c_h +#define PX_INT_00 (0) +#define PX_INT_01 (1) +#define PX_INT_04 (4) +#define PX_INT_05 (5) +#define PX_INT_06 (6) +#define PX_INT_07 (7) +#define PX_INT_DF (8) +#define PX_INT_TS (10) +#define PX_INT_NP (11) +#define PX_INT_SF (12) +#define PX_INT_GP (13) +#define PX_INT_PF (14) +#define PX_INT_16 (16) +#define PX_INTERNAL (0) +#define PX_EXTERNAL (1) +#define PX_EC_VEC_SHIFT (3) +#define PX_EC_IDT_IND (2) +#define PX_EC_NULL (0) +#define PX_ACCESS_CHK (1) +#define PX_NO_ACCESS_CHK (0) +#define PX_ERROR_CODE (1) +#define PX_NO_ERROR_CODE (0) +#define PX_HOOK_IRET (1) +#define PX_DONT_HOOK_IRET (0) +#endif /* ! _PXcptn_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/rdwr_c.h b/private/mvdm/softpc.new/base/cvidc/rdwr_c.h new file mode 100644 index 000000000..edf43e668 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/rdwr_c.h @@ -0,0 +1,6 @@ +#ifndef _RdWr_c_h +#define _RdWr_c_h +#define LS0_NULL ((IU8*)0) +#define SAFE_FORWARDS (1) +#define SAFE_BACKWARDS (0) +#endif /* ! _RdWr_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/read_c.h b/private/mvdm/softpc.new/base/cvidc/read_c.h new file mode 100644 index 000000000..585b37979 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/read_c.h @@ -0,0 +1,3 @@ +#ifndef _Read_c_h +#define _Read_c_h +#endif /* ! _Read_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/rotate_c.h b/private/mvdm/softpc.new/base/cvidc/rotate_c.h new file mode 100644 index 000000000..d58ae950e --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/rotate_c.h @@ -0,0 +1,3 @@ +#ifndef _Rotate_c_h +#define _Rotate_c_h +#endif /* ! _Rotate_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/sas4gen.h b/private/mvdm/softpc.new/base/cvidc/sas4gen.h new file mode 100644 index 000000000..1273a8546 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sas4gen.h @@ -0,0 +1,837 @@ +/*[ + * Generated File: sas4gen.h + * +]*/ + +typedef IU32 TYPE_sas_memory_size IPT0(); +typedef void TYPE_sas_connect_memory IPT3(IU32, lo_addr, IU32, Int_addr, SAS_MEM_TYPE, type); +typedef void TYPE_sas_enable_20_bit_wrapping IPT0(); +typedef void TYPE_sas_disable_20_bit_wrapping IPT0(); +typedef IBOOL TYPE_sas_twenty_bit_wrapping_enabled IPT0(); +typedef SAS_MEM_TYPE TYPE_sas_memory_type IPT1(IU32, addr); +typedef IU8 TYPE_sas_hw_at IPT1(IU32, addr); +typedef IU16 TYPE_sas_w_at IPT1(IU32, addr); +typedef IU32 TYPE_sas_dw_at IPT1(IU32, addr); +typedef IU8 TYPE_sas_hw_at_no_check IPT1(IU32, addr); +typedef IU16 TYPE_sas_w_at_no_check IPT1(IU32, addr); +typedef IU32 TYPE_sas_dw_at_no_check IPT1(IU32, addr); +typedef void TYPE_sas_store IPT2(IU32, addr, IU8, val); +typedef void TYPE_sas_storew IPT2(IU32, addr, IU16, val); +typedef void TYPE_sas_storedw IPT2(IU32, addr, IU32, val); +typedef void TYPE_sas_store_no_check IPT2(IU32, addr, IU8, val); +typedef void TYPE_sas_storew_no_check IPT2(IU32, addr, IU16, val); +typedef void TYPE_sas_storedw_no_check IPT2(IU32, addr, IU32, val); +typedef void TYPE_sas_loads IPT3(IU32, addr, IU8 *, stringptr, IU32, len); +typedef void TYPE_sas_stores IPT3(IU32, addr, IU8 *, stringptr, IU32, len); +typedef void TYPE_sas_loads_no_check IPT3(IU32, addr, IU8 *, stringptr, IU32, len); +typedef void TYPE_sas_stores_no_check IPT3(IU32, addr, IU8 *, stringptr, IU32, len); +typedef void TYPE_sas_move_bytes_forward IPT3(IU32, src, IU32, dest, IU32, len); +typedef void TYPE_sas_move_words_forward IPT3(IU32, src, IU32, dest, IU32, len); +typedef void TYPE_sas_move_doubles_forward IPT3(IU32, src, IU32, dest, IU32, len); +typedef void TYPE_sas_move_bytes_backward IPT3(IU32, src, IU32, dest, IU32, len); +typedef void TYPE_sas_move_words_backward IPT3(IU32, src, IU32, dest, IU32, len); +typedef void TYPE_sas_move_doubles_backward IPT3(IU32, src, IU32, dest, IU32, len); +typedef void TYPE_sas_fills IPT3(IU32, dest, IU8, val, IU32, len); +typedef void TYPE_sas_fillsw IPT3(IU32, dest, IU16, val, IU32, len); +typedef void TYPE_sas_fillsdw IPT3(IU32, dest, IU32, val, IU32, len); +typedef IU8 * TYPE_sas_scratch_address IPT1(IU32, length); +typedef IU8 * TYPE_sas_transbuf_address IPT2(IU32, dest_addr, IU32, length); +typedef void TYPE_sas_loads_to_transbuf IPT3(IU32, src_addr, IU8 *, dest_addr, IU32, length); +typedef void TYPE_sas_stores_from_transbuf IPT3(IU32, dest_addr, IU8 *, src_addr, IU32, length); +typedef IU8 TYPE_sas_PR8 IPT1(IU32, addr); +typedef IU16 TYPE_sas_PR16 IPT1(IU32, addr); +typedef IU32 TYPE_sas_PR32 IPT1(IU32, addr); +typedef void TYPE_sas_PW8 IPT2(IU32, addr, IU8, val); +typedef void TYPE_sas_PW16 IPT2(IU32, addr, IU16, val); +typedef void TYPE_sas_PW32 IPT2(IU32, addr, IU32, val); +typedef void TYPE_sas_PW8_no_check IPT2(IU32, addr, IU8, val); +typedef void TYPE_sas_PW16_no_check IPT2(IU32, addr, IU16, val); +typedef void TYPE_sas_PW32_no_check IPT2(IU32, addr, IU32, val); +typedef IU8 * TYPE_getPtrToPhysAddrByte IPT1(IU32, phys_addr); +typedef IU8 * TYPE_get_byte_addr IPT1(IU32, phys_addr); +typedef IU8 * TYPE_getPtrToLinAddrByte IPT1(IU32, lin_addr); +typedef IBOOL TYPE_sas_init_pm_selectors IPT2(IU16, sel1, IU16, sel2); +typedef void TYPE_sas_overwrite_memory IPT2(IU32, addr, IU32, length); +typedef void TYPE_sas_PWS IPT3(IU32, dest, IU8 *, src, IU32, len); +typedef void TYPE_sas_PWS_no_check IPT3(IU32, dest, IU8 *, src, IU32, len); +typedef void TYPE_sas_PRS IPT3(IU32, src, IU8 *, dest, IU32, len); +typedef void TYPE_sas_PRS_no_check IPT3(IU32, src, IU8 *, dest, IU32, len); +typedef IBOOL TYPE_sas_PigCmpPage IPT3(IU32, src, IU8 *, dest, IU32, len); +typedef IBOOL TYPE_IOVirtualised IPT4(IU16, port, IU32 *, value, IU32, offset, IU8, width); + +struct SasVector { + IU32 (*Sas_memory_size) IPT0(); + void (*Sas_connect_memory) IPT3(IU32, lo_addr, IU32, Int_addr, SAS_MEM_TYPE, type); + void (*Sas_enable_20_bit_wrapping) IPT0(); + void (*Sas_disable_20_bit_wrapping) IPT0(); + IBOOL (*Sas_twenty_bit_wrapping_enabled) IPT0(); + SAS_MEM_TYPE (*Sas_memory_type) IPT1(IU32, addr); + IU8 (*Sas_hw_at) IPT1(IU32, addr); + IU16 (*Sas_w_at) IPT1(IU32, addr); + IU32 (*Sas_dw_at) IPT1(IU32, addr); + IU8 (*Sas_hw_at_no_check) IPT1(IU32, addr); + IU16 (*Sas_w_at_no_check) IPT1(IU32, addr); + IU32 (*Sas_dw_at_no_check) IPT1(IU32, addr); + void (*Sas_store) IPT2(IU32, addr, IU8, val); + void (*Sas_storew) IPT2(IU32, addr, IU16, val); + void (*Sas_storedw) IPT2(IU32, addr, IU32, val); + void (*Sas_store_no_check) IPT2(IU32, addr, IU8, val); + void (*Sas_storew_no_check) IPT2(IU32, addr, IU16, val); + void (*Sas_storedw_no_check) IPT2(IU32, addr, IU32, val); + void (*Sas_loads) IPT3(IU32, addr, IU8 *, stringptr, IU32, len); + void (*Sas_stores) IPT3(IU32, addr, IU8 *, stringptr, IU32, len); + void (*Sas_loads_no_check) IPT3(IU32, addr, IU8 *, stringptr, IU32, len); + void (*Sas_stores_no_check) IPT3(IU32, addr, IU8 *, stringptr, IU32, len); + void (*Sas_move_bytes_forward) IPT3(IU32, src, IU32, dest, IU32, len); + void (*Sas_move_words_forward) IPT3(IU32, src, IU32, dest, IU32, len); + void (*Sas_move_doubles_forward) IPT3(IU32, src, IU32, dest, IU32, len); + void (*Sas_move_bytes_backward) IPT3(IU32, src, IU32, dest, IU32, len); + void (*Sas_move_words_backward) IPT3(IU32, src, IU32, dest, IU32, len); + void (*Sas_move_doubles_backward) IPT3(IU32, src, IU32, dest, IU32, len); + void (*Sas_fills) IPT3(IU32, dest, IU8, val, IU32, len); + void (*Sas_fillsw) IPT3(IU32, dest, IU16, val, IU32, len); + void (*Sas_fillsdw) IPT3(IU32, dest, IU32, val, IU32, len); + IU8 * (*Sas_scratch_address) IPT1(IU32, length); + IU8 * (*Sas_transbuf_address) IPT2(IU32, dest_addr, IU32, length); + void (*Sas_loads_to_transbuf) IPT3(IU32, src_addr, IU8 *, dest_addr, IU32, length); + void (*Sas_stores_from_transbuf) IPT3(IU32, dest_addr, IU8 *, src_addr, IU32, length); + IU8 (*Sas_PR8) IPT1(IU32, addr); + IU16 (*Sas_PR16) IPT1(IU32, addr); + IU32 (*Sas_PR32) IPT1(IU32, addr); + void (*Sas_PW8) IPT2(IU32, addr, IU8, val); + void (*Sas_PW16) IPT2(IU32, addr, IU16, val); + void (*Sas_PW32) IPT2(IU32, addr, IU32, val); + void (*Sas_PW8_no_check) IPT2(IU32, addr, IU8, val); + void (*Sas_PW16_no_check) IPT2(IU32, addr, IU16, val); + void (*Sas_PW32_no_check) IPT2(IU32, addr, IU32, val); + IU8 * (*SasPtrToPhysAddrByte) IPT1(IU32, phys_addr); + IU8 * (*Sas_get_byte_addr) IPT1(IU32, phys_addr); + IU8 * (*SasPtrToLinAddrByte) IPT1(IU32, lin_addr); + IBOOL (*SasRegisterVirtualSelectors) IPT2(IU16, sel1, IU16, sel2); + void (*Sas_overwrite_memory) IPT2(IU32, addr, IU32, length); + void (*Sas_PWS) IPT3(IU32, dest, IU8 *, src, IU32, len); + void (*Sas_PWS_no_check) IPT3(IU32, dest, IU8 *, src, IU32, len); + void (*Sas_PRS) IPT3(IU32, src, IU8 *, dest, IU32, len); + void (*Sas_PRS_no_check) IPT3(IU32, src, IU8 *, dest, IU32, len); + IBOOL (*Sas_PigCmpPage) IPT3(IU32, src, IU8 *, dest, IU32, len); + IBOOL (*IOVirtualised) IPT4(IU16, port, IU32 *, value, IU32, offset, IU8, width); +}; + +extern struct SasVector Sas; + +#ifdef CCPU +IMPORT IU32 c_sas_memory_size IPT0(); +#define sas_memory_size() c_sas_memory_size() +#else /* CCPU */ + +#ifdef PROD +#define sas_memory_size() (*(Sas.Sas_memory_size))() +#else /* PROD */ +IMPORT IU32 sas_memory_size IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_sas_connect_memory IPT3(IU32, lo_addr, IU32, Int_addr, SAS_MEM_TYPE, type); +#define sas_connect_memory(lo_addr, Int_addr, type) c_sas_connect_memory(lo_addr, Int_addr, type) +#else /* CCPU */ + +#ifdef PROD +#define sas_connect_memory(lo_addr, Int_addr, type) (*(Sas.Sas_connect_memory))(lo_addr, Int_addr, type) +#else /* PROD */ +IMPORT void sas_connect_memory IPT3(IU32, lo_addr, IU32, Int_addr, SAS_MEM_TYPE, type); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_sas_enable_20_bit_wrapping IPT0(); +#define sas_enable_20_bit_wrapping() c_sas_enable_20_bit_wrapping() +#else /* CCPU */ + +#ifdef PROD +#define sas_enable_20_bit_wrapping() (*(Sas.Sas_enable_20_bit_wrapping))() +#else /* PROD */ +IMPORT void sas_enable_20_bit_wrapping IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_sas_disable_20_bit_wrapping IPT0(); +#define sas_disable_20_bit_wrapping() c_sas_disable_20_bit_wrapping() +#else /* CCPU */ + +#ifdef PROD +#define sas_disable_20_bit_wrapping() (*(Sas.Sas_disable_20_bit_wrapping))() +#else /* PROD */ +IMPORT void sas_disable_20_bit_wrapping IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_sas_twenty_bit_wrapping_enabled IPT0(); +#define sas_twenty_bit_wrapping_enabled() c_sas_twenty_bit_wrapping_enabled() +#else /* CCPU */ + +#ifdef PROD +#define sas_twenty_bit_wrapping_enabled() (*(Sas.Sas_twenty_bit_wrapping_enabled))() +#else /* PROD */ +IMPORT IBOOL sas_twenty_bit_wrapping_enabled IPT0(); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT SAS_MEM_TYPE c_sas_memory_type IPT1(IU32, addr); +#define sas_memory_type(addr) c_sas_memory_type(addr) +#else /* CCPU */ + +#ifdef PROD +#define sas_memory_type(addr) (*(Sas.Sas_memory_type))(addr) +#else /* PROD */ +IMPORT SAS_MEM_TYPE sas_memory_type IPT1(IU32, addr); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU8 c_sas_hw_at IPT1(IU32, addr); +#define sas_hw_at(addr) c_sas_hw_at(addr) +#else /* CCPU */ + +#ifdef PROD +#define sas_hw_at(addr) (*(Sas.Sas_hw_at))(addr) +#else /* PROD */ +IMPORT IU8 sas_hw_at IPT1(IU32, addr); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_sas_w_at IPT1(IU32, addr); +#define sas_w_at(addr) c_sas_w_at(addr) +#else /* CCPU */ + +#ifdef PROD +#define sas_w_at(addr) (*(Sas.Sas_w_at))(addr) +#else /* PROD */ +IMPORT IU16 sas_w_at IPT1(IU32, addr); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_sas_dw_at IPT1(IU32, addr); +#define sas_dw_at(addr) c_sas_dw_at(addr) +#else /* CCPU */ + +#ifdef PROD +#define sas_dw_at(addr) (*(Sas.Sas_dw_at))(addr) +#else /* PROD */ +IMPORT IU32 sas_dw_at IPT1(IU32, addr); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU8 c_sas_hw_at IPT1(IU32, addr); +#define sas_hw_at_no_check(addr) c_sas_hw_at(addr) +#else /* CCPU */ + +#ifdef PROD +#define sas_hw_at_no_check(addr) (*(Sas.Sas_hw_at_no_check))(addr) +#else /* PROD */ +IMPORT IU8 sas_hw_at_no_check IPT1(IU32, addr); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 c_sas_w_at IPT1(IU32, addr); +#define sas_w_at_no_check(addr) c_sas_w_at(addr) +#else /* CCPU */ + +#ifdef PROD +#define sas_w_at_no_check(addr) (*(Sas.Sas_w_at_no_check))(addr) +#else /* PROD */ +IMPORT IU16 sas_w_at_no_check IPT1(IU32, addr); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 c_sas_dw_at IPT1(IU32, addr); +#define sas_dw_at_no_check(addr) c_sas_dw_at(addr) +#else /* CCPU */ + +#ifdef PROD +#define sas_dw_at_no_check(addr) (*(Sas.Sas_dw_at_no_check))(addr) +#else /* PROD */ +IMPORT IU32 sas_dw_at_no_check IPT1(IU32, addr); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_sas_store IPT2(IU32, addr, IU8, val); +#define sas_store(addr, val) c_sas_store(addr, val) +#else /* CCPU */ + +#ifdef PROD +#define sas_store(addr, val) (*(Sas.Sas_store))(addr, val) +#else /* PROD */ +IMPORT void sas_store IPT2(IU32, addr, IU8, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_sas_storew IPT2(IU32, addr, IU16, val); +#define sas_storew(addr, val) c_sas_storew(addr, val) +#else /* CCPU */ + +#ifdef PROD +#define sas_storew(addr, val) (*(Sas.Sas_storew))(addr, val) +#else /* PROD */ +IMPORT void sas_storew IPT2(IU32, addr, IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_sas_storedw IPT2(IU32, addr, IU32, val); +#define sas_storedw(addr, val) c_sas_storedw(addr, val) +#else /* CCPU */ + +#ifdef PROD +#define sas_storedw(addr, val) (*(Sas.Sas_storedw))(addr, val) +#else /* PROD */ +IMPORT void sas_storedw IPT2(IU32, addr, IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_sas_store IPT2(IU32, addr, IU8, val); +#define sas_store_no_check(addr, val) c_sas_store(addr, val) +#else /* CCPU */ + +#ifdef PROD +#define sas_store_no_check(addr, val) (*(Sas.Sas_store_no_check))(addr, val) +#else /* PROD */ +IMPORT void sas_store_no_check IPT2(IU32, addr, IU8, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_sas_storew IPT2(IU32, addr, IU16, val); +#define sas_storew_no_check(addr, val) c_sas_storew(addr, val) +#else /* CCPU */ + +#ifdef PROD +#define sas_storew_no_check(addr, val) (*(Sas.Sas_storew_no_check))(addr, val) +#else /* PROD */ +IMPORT void sas_storew_no_check IPT2(IU32, addr, IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_sas_storedw IPT2(IU32, addr, IU32, val); +#define sas_storedw_no_check(addr, val) c_sas_storedw(addr, val) +#else /* CCPU */ + +#ifdef PROD +#define sas_storedw_no_check(addr, val) (*(Sas.Sas_storedw_no_check))(addr, val) +#else /* PROD */ +IMPORT void sas_storedw_no_check IPT2(IU32, addr, IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_sas_loads IPT3(IU32, addr, IU8 *, stringptr, IU32, len); +#define sas_loads(addr, stringptr, len) c_sas_loads(addr, stringptr, len) +#else /* CCPU */ + +#ifdef PROD +#define sas_loads(addr, stringptr, len) (*(Sas.Sas_loads))(addr, stringptr, len) +#else /* PROD */ +IMPORT void sas_loads IPT3(IU32, addr, IU8 *, stringptr, IU32, len); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_sas_stores IPT3(IU32, addr, IU8 *, stringptr, IU32, len); +#define sas_stores(addr, stringptr, len) c_sas_stores(addr, stringptr, len) +#else /* CCPU */ + +#ifdef PROD +#define sas_stores(addr, stringptr, len) (*(Sas.Sas_stores))(addr, stringptr, len) +#else /* PROD */ +IMPORT void sas_stores IPT3(IU32, addr, IU8 *, stringptr, IU32, len); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_sas_loads_no_check IPT3(IU32, addr, IU8 *, stringptr, IU32, len); +#define sas_loads_no_check(addr, stringptr, len) c_sas_loads_no_check(addr, stringptr, len) +#else /* CCPU */ + +#ifdef PROD +#define sas_loads_no_check(addr, stringptr, len) (*(Sas.Sas_loads_no_check))(addr, stringptr, len) +#else /* PROD */ +IMPORT void sas_loads_no_check IPT3(IU32, addr, IU8 *, stringptr, IU32, len); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_sas_stores_no_check IPT3(IU32, addr, IU8 *, stringptr, IU32, len); +#define sas_stores_no_check(addr, stringptr, len) c_sas_stores_no_check(addr, stringptr, len) +#else /* CCPU */ + +#ifdef PROD +#define sas_stores_no_check(addr, stringptr, len) (*(Sas.Sas_stores_no_check))(addr, stringptr, len) +#else /* PROD */ +IMPORT void sas_stores_no_check IPT3(IU32, addr, IU8 *, stringptr, IU32, len); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_sas_move_bytes_forward IPT3(IU32, src, IU32, dest, IU32, len); +#define sas_move_bytes_forward(src, dest, len) c_sas_move_bytes_forward(src, dest, len) +#else /* CCPU */ + +#ifdef PROD +#define sas_move_bytes_forward(src, dest, len) (*(Sas.Sas_move_bytes_forward))(src, dest, len) +#else /* PROD */ +IMPORT void sas_move_bytes_forward IPT3(IU32, src, IU32, dest, IU32, len); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_sas_move_words_forward IPT3(IU32, src, IU32, dest, IU32, len); +#define sas_move_words_forward(src, dest, len) c_sas_move_words_forward(src, dest, len) +#else /* CCPU */ + +#ifdef PROD +#define sas_move_words_forward(src, dest, len) (*(Sas.Sas_move_words_forward))(src, dest, len) +#else /* PROD */ +IMPORT void sas_move_words_forward IPT3(IU32, src, IU32, dest, IU32, len); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_sas_move_doubles_forward IPT3(IU32, src, IU32, dest, IU32, len); +#define sas_move_doubles_forward(src, dest, len) c_sas_move_doubles_forward(src, dest, len) +#else /* CCPU */ + +#ifdef PROD +#define sas_move_doubles_forward(src, dest, len) (*(Sas.Sas_move_doubles_forward))(src, dest, len) +#else /* PROD */ +IMPORT void sas_move_doubles_forward IPT3(IU32, src, IU32, dest, IU32, len); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_sas_move_bytes_backward IPT3(IU32, src, IU32, dest, IU32, len); +#define sas_move_bytes_backward(src, dest, len) c_sas_move_bytes_backward(src, dest, len) +#else /* CCPU */ + +#ifdef PROD +#define sas_move_bytes_backward(src, dest, len) (*(Sas.Sas_move_bytes_backward))(src, dest, len) +#else /* PROD */ +IMPORT void sas_move_bytes_backward IPT3(IU32, src, IU32, dest, IU32, len); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_sas_move_words_backward IPT3(IU32, src, IU32, dest, IU32, len); +#define sas_move_words_backward(src, dest, len) c_sas_move_words_backward(src, dest, len) +#else /* CCPU */ + +#ifdef PROD +#define sas_move_words_backward(src, dest, len) (*(Sas.Sas_move_words_backward))(src, dest, len) +#else /* PROD */ +IMPORT void sas_move_words_backward IPT3(IU32, src, IU32, dest, IU32, len); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_sas_move_doubles_backward IPT3(IU32, src, IU32, dest, IU32, len); +#define sas_move_doubles_backward(src, dest, len) c_sas_move_doubles_backward(src, dest, len) +#else /* CCPU */ + +#ifdef PROD +#define sas_move_doubles_backward(src, dest, len) (*(Sas.Sas_move_doubles_backward))(src, dest, len) +#else /* PROD */ +IMPORT void sas_move_doubles_backward IPT3(IU32, src, IU32, dest, IU32, len); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_sas_fills IPT3(IU32, dest, IU8, val, IU32, len); +#define sas_fills(dest, val, len) c_sas_fills(dest, val, len) +#else /* CCPU */ + +#ifdef PROD +#define sas_fills(dest, val, len) (*(Sas.Sas_fills))(dest, val, len) +#else /* PROD */ +IMPORT void sas_fills IPT3(IU32, dest, IU8, val, IU32, len); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_sas_fillsw IPT3(IU32, dest, IU16, val, IU32, len); +#define sas_fillsw(dest, val, len) c_sas_fillsw(dest, val, len) +#else /* CCPU */ + +#ifdef PROD +#define sas_fillsw(dest, val, len) (*(Sas.Sas_fillsw))(dest, val, len) +#else /* PROD */ +IMPORT void sas_fillsw IPT3(IU32, dest, IU16, val, IU32, len); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_sas_fillsdw IPT3(IU32, dest, IU32, val, IU32, len); +#define sas_fillsdw(dest, val, len) c_sas_fillsdw(dest, val, len) +#else /* CCPU */ + +#ifdef PROD +#define sas_fillsdw(dest, val, len) (*(Sas.Sas_fillsdw))(dest, val, len) +#else /* PROD */ +IMPORT void sas_fillsdw IPT3(IU32, dest, IU32, val, IU32, len); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU8 * c_sas_scratch_address IPT1(IU32, length); +#define sas_scratch_address(length) c_sas_scratch_address(length) +#else /* CCPU */ + +#ifdef PROD +#define sas_scratch_address(length) (*(Sas.Sas_scratch_address))(length) +#else /* PROD */ +IMPORT IU8 * sas_scratch_address IPT1(IU32, length); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU8 * c_sas_transbuf_address IPT2(IU32, dest_addr, IU32, length); +#define sas_transbuf_address(dest_addr, length) c_sas_transbuf_address(dest_addr, length) +#else /* CCPU */ + +#ifdef PROD +#define sas_transbuf_address(dest_addr, length) (*(Sas.Sas_transbuf_address))(dest_addr, length) +#else /* PROD */ +IMPORT IU8 * sas_transbuf_address IPT2(IU32, dest_addr, IU32, length); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_sas_loads IPT3(IU32, src_addr, IU8 *, dest_addr, IU32, length); +#define sas_loads_to_transbuf(src_addr, dest_addr, length) c_sas_loads(src_addr, dest_addr, length) +#else /* CCPU */ + +#ifdef PROD +#define sas_loads_to_transbuf(src_addr, dest_addr, length) (*(Sas.Sas_loads_to_transbuf))(src_addr, dest_addr, length) +#else /* PROD */ +IMPORT void sas_loads_to_transbuf IPT3(IU32, src_addr, IU8 *, dest_addr, IU32, length); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_sas_stores IPT3(IU32, dest_addr, IU8 *, src_addr, IU32, length); +#define sas_stores_from_transbuf(dest_addr, src_addr, length) c_sas_stores(dest_addr, src_addr, length) +#else /* CCPU */ + +#ifdef PROD +#define sas_stores_from_transbuf(dest_addr, src_addr, length) (*(Sas.Sas_stores_from_transbuf))(dest_addr, src_addr, length) +#else /* PROD */ +IMPORT void sas_stores_from_transbuf IPT3(IU32, dest_addr, IU8 *, src_addr, IU32, length); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU8 phy_r8 IPT1(IU32, addr); +#define sas_PR8(addr) phy_r8(addr) +#else /* CCPU */ + +#ifdef PROD +#define sas_PR8(addr) (*(Sas.Sas_PR8))(addr) +#else /* PROD */ +IMPORT IU8 sas_PR8 IPT1(IU32, addr); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU16 phy_r16 IPT1(IU32, addr); +#define sas_PR16(addr) phy_r16(addr) +#else /* CCPU */ + +#ifdef PROD +#define sas_PR16(addr) (*(Sas.Sas_PR16))(addr) +#else /* PROD */ +IMPORT IU16 sas_PR16 IPT1(IU32, addr); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU32 phy_r32 IPT1(IU32, addr); +#define sas_PR32(addr) phy_r32(addr) +#else /* CCPU */ + +#ifdef PROD +#define sas_PR32(addr) (*(Sas.Sas_PR32))(addr) +#else /* PROD */ +IMPORT IU32 sas_PR32 IPT1(IU32, addr); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void phy_w8 IPT2(IU32, addr, IU8, val); +#define sas_PW8(addr, val) phy_w8(addr, val) +#else /* CCPU */ + +#ifdef PROD +#define sas_PW8(addr, val) (*(Sas.Sas_PW8))(addr, val) +#else /* PROD */ +IMPORT void sas_PW8 IPT2(IU32, addr, IU8, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void phy_w16 IPT2(IU32, addr, IU16, val); +#define sas_PW16(addr, val) phy_w16(addr, val) +#else /* CCPU */ + +#ifdef PROD +#define sas_PW16(addr, val) (*(Sas.Sas_PW16))(addr, val) +#else /* PROD */ +IMPORT void sas_PW16 IPT2(IU32, addr, IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void phy_w32 IPT2(IU32, addr, IU32, val); +#define sas_PW32(addr, val) phy_w32(addr, val) +#else /* CCPU */ + +#ifdef PROD +#define sas_PW32(addr, val) (*(Sas.Sas_PW32))(addr, val) +#else /* PROD */ +IMPORT void sas_PW32 IPT2(IU32, addr, IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void phy_w8_no_check IPT2(IU32, addr, IU8, val); +#define sas_PW8_no_check(addr, val) phy_w8_no_check(addr, val) +#else /* CCPU */ + +#ifdef PROD +#define sas_PW8_no_check(addr, val) (*(Sas.Sas_PW8_no_check))(addr, val) +#else /* PROD */ +IMPORT void sas_PW8_no_check IPT2(IU32, addr, IU8, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void phy_w16_no_check IPT2(IU32, addr, IU16, val); +#define sas_PW16_no_check(addr, val) phy_w16_no_check(addr, val) +#else /* CCPU */ + +#ifdef PROD +#define sas_PW16_no_check(addr, val) (*(Sas.Sas_PW16_no_check))(addr, val) +#else /* PROD */ +IMPORT void sas_PW16_no_check IPT2(IU32, addr, IU16, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void phy_w32_no_check IPT2(IU32, addr, IU32, val); +#define sas_PW32_no_check(addr, val) phy_w32_no_check(addr, val) +#else /* CCPU */ + +#ifdef PROD +#define sas_PW32_no_check(addr, val) (*(Sas.Sas_PW32_no_check))(addr, val) +#else /* PROD */ +IMPORT void sas_PW32_no_check IPT2(IU32, addr, IU32, val); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU8 * c_GetPhyAdd IPT1(IU32, phys_addr); +#define getPtrToPhysAddrByte(phys_addr) c_GetPhyAdd(phys_addr) +#else /* CCPU */ + +#ifdef PROD +#define getPtrToPhysAddrByte(phys_addr) (*(Sas.SasPtrToPhysAddrByte))(phys_addr) +#else /* PROD */ +IMPORT IU8 * getPtrToPhysAddrByte IPT1(IU32, phys_addr); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU8 * c_get_byte_addr IPT1(IU32, phys_addr); +#define get_byte_addr(phys_addr) c_get_byte_addr(phys_addr) +#else /* CCPU */ + +#ifdef PROD +#define get_byte_addr(phys_addr) (*(Sas.Sas_get_byte_addr))(phys_addr) +#else /* PROD */ +IMPORT IU8 * get_byte_addr IPT1(IU32, phys_addr); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IU8 * c_GetLinAdd IPT1(IU32, lin_addr); +#define getPtrToLinAddrByte(lin_addr) c_GetLinAdd(lin_addr) +#else /* CCPU */ + +#ifdef PROD +#define getPtrToLinAddrByte(lin_addr) (*(Sas.SasPtrToLinAddrByte))(lin_addr) +#else /* PROD */ +IMPORT IU8 * getPtrToLinAddrByte IPT1(IU32, lin_addr); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_SasRegisterVirtualSelectors IPT2(IU16, sel1, IU16, sel2); +#define sas_init_pm_selectors(sel1, sel2) c_SasRegisterVirtualSelectors(sel1, sel2) +#else /* CCPU */ + +#ifdef PROD +#define sas_init_pm_selectors(sel1, sel2) (*(Sas.SasRegisterVirtualSelectors))(sel1, sel2) +#else /* PROD */ +IMPORT IBOOL sas_init_pm_selectors IPT2(IU16, sel1, IU16, sel2); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU + +#else /* CCPU */ + +#ifdef PROD +#define sas_overwrite_memory(addr, length) (*(Sas.Sas_overwrite_memory))(addr, length) +#else /* PROD */ +IMPORT void sas_overwrite_memory IPT2(IU32, addr, IU32, length); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_sas_PWS IPT3(IU32, dest, IU8 *, src, IU32, len); +#define sas_PWS(dest, src, len) c_sas_PWS(dest, src, len) +#else /* CCPU */ + +#ifdef PROD +#define sas_PWS(dest, src, len) (*(Sas.Sas_PWS))(dest, src, len) +#else /* PROD */ +IMPORT void sas_PWS IPT3(IU32, dest, IU8 *, src, IU32, len); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_sas_PWS_no_check IPT3(IU32, dest, IU8 *, src, IU32, len); +#define sas_PWS_no_check(dest, src, len) c_sas_PWS_no_check(dest, src, len) +#else /* CCPU */ + +#ifdef PROD +#define sas_PWS_no_check(dest, src, len) (*(Sas.Sas_PWS_no_check))(dest, src, len) +#else /* PROD */ +IMPORT void sas_PWS_no_check IPT3(IU32, dest, IU8 *, src, IU32, len); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_sas_PRS IPT3(IU32, src, IU8 *, dest, IU32, len); +#define sas_PRS(src, dest, len) c_sas_PRS(src, dest, len) +#else /* CCPU */ + +#ifdef PROD +#define sas_PRS(src, dest, len) (*(Sas.Sas_PRS))(src, dest, len) +#else /* PROD */ +IMPORT void sas_PRS IPT3(IU32, src, IU8 *, dest, IU32, len); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT void c_sas_PRS_no_check IPT3(IU32, src, IU8 *, dest, IU32, len); +#define sas_PRS_no_check(src, dest, len) c_sas_PRS_no_check(src, dest, len) +#else /* CCPU */ + +#ifdef PROD +#define sas_PRS_no_check(src, dest, len) (*(Sas.Sas_PRS_no_check))(src, dest, len) +#else /* PROD */ +IMPORT void sas_PRS_no_check IPT3(IU32, src, IU8 *, dest, IU32, len); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_sas_PigCmpPage IPT3(IU32, src, IU8 *, dest, IU32, len); +#define sas_PigCmpPage(src, dest, len) c_sas_PigCmpPage(src, dest, len) +#else /* CCPU */ + +#ifdef PROD +#define sas_PigCmpPage(src, dest, len) (*(Sas.Sas_PigCmpPage))(src, dest, len) +#else /* PROD */ +IMPORT IBOOL sas_PigCmpPage IPT3(IU32, src, IU8 *, dest, IU32, len); +#endif /*PROD*/ + +#endif /* CCPU */ + +#ifdef CCPU +IMPORT IBOOL c_IOVirtualised IPT4(IU16, port, IU32 *, value, IU32, offset, IU8, width); +#define IOVirtualised(port, value, offset, width) c_IOVirtualised(port, value, offset, width) +#else /* CCPU */ + +#ifdef PROD +#define IOVirtualised(port, value, offset, width) (*(Sas.IOVirtualised))(port, value, offset, width) +#else /* PROD */ +IMPORT IBOOL IOVirtualised IPT4(IU16, port, IU32 *, value, IU32, offset, IU8, width); +#endif /*PROD*/ + +#endif /* CCPU */ + +/*======================================== END ========================================*/ + diff --git a/private/mvdm/softpc.new/base/cvidc/sas_c.h b/private/mvdm/softpc.new/base/cvidc/sas_c.h new file mode 100644 index 000000000..095e731d9 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sas_c.h @@ -0,0 +1,14 @@ +#ifndef _Sas_c_h +#define _Sas_c_h +enum SAS_MEM_TYPE +{ + SAS_RAM = 0, + SAS_VIDEO = 1, + SAS_ROM = 2, + SAS_WRAP = 3, + SAS_IO = 4, + SAS_MM_LIM = 5, + SAS_INACCESSIBLE = 6, + SAS_DANGEROUS = 7 +}; +#endif /* ! _Sas_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/sascdef.c b/private/mvdm/softpc.new/base/cvidc/sascdef.c new file mode 100644 index 000000000..c05a368be --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sascdef.c @@ -0,0 +1,132 @@ +/*[ + * Generated File: sasCdef.c + * +]*/ + +#include "insignia.h" +#include "host_inc.h" +#include "host_def.h" +#include "Fpu_c.h" +#include "Pigger_c.h" +#include "Univer_c.h" +#define CPU_PRIVATE +#include "cpu4.h" +#include "sas.h" +#include "evidgen.h" + +extern TYPE_sas_memory_size c_sas_memory_size; +extern TYPE_sas_connect_memory c_sas_connect_memory; +extern TYPE_sas_enable_20_bit_wrapping c_sas_enable_20_bit_wrapping; +extern TYPE_sas_disable_20_bit_wrapping c_sas_disable_20_bit_wrapping; +extern TYPE_sas_twenty_bit_wrapping_enabled c_sas_twenty_bit_wrapping_enabled; +extern TYPE_sas_memory_type c_sas_memory_type; +extern TYPE_sas_hw_at c_sas_hw_at; +extern TYPE_sas_w_at c_sas_w_at; +extern TYPE_sas_dw_at c_sas_dw_at; +extern TYPE_sas_hw_at_no_check c_sas_hw_at; +extern TYPE_sas_w_at_no_check c_sas_w_at; +extern TYPE_sas_dw_at_no_check c_sas_dw_at; +extern TYPE_sas_store c_sas_store; +extern TYPE_sas_storew c_sas_storew; +extern TYPE_sas_storedw c_sas_storedw; +extern TYPE_sas_store_no_check c_sas_store; +extern TYPE_sas_storew_no_check c_sas_storew; +extern TYPE_sas_storedw_no_check c_sas_storedw; +extern TYPE_sas_loads c_sas_loads; +extern TYPE_sas_stores c_sas_stores; +extern TYPE_sas_loads_no_check c_sas_loads_no_check; +extern TYPE_sas_stores_no_check c_sas_stores_no_check; +extern TYPE_sas_move_bytes_forward c_sas_move_bytes_forward; +extern TYPE_sas_move_words_forward c_sas_move_words_forward; +extern TYPE_sas_move_doubles_forward c_sas_move_doubles_forward; +extern TYPE_sas_move_bytes_backward c_sas_move_bytes_backward; +extern TYPE_sas_move_words_backward c_sas_move_words_backward; +extern TYPE_sas_move_doubles_backward c_sas_move_doubles_backward; +extern TYPE_sas_fills c_sas_fills; +extern TYPE_sas_fillsw c_sas_fillsw; +extern TYPE_sas_fillsdw c_sas_fillsdw; +extern TYPE_sas_scratch_address c_sas_scratch_address; +extern TYPE_sas_transbuf_address c_sas_transbuf_address; +extern TYPE_sas_loads_to_transbuf c_sas_loads; +extern TYPE_sas_stores_from_transbuf c_sas_stores; +extern TYPE_sas_PR8 phy_r8; +extern TYPE_sas_PR16 phy_r16; +extern TYPE_sas_PR32 phy_r32; +extern TYPE_sas_PW8 phy_w8; +extern TYPE_sas_PW16 phy_w16; +extern TYPE_sas_PW32 phy_w32; +extern TYPE_sas_PW8_no_check phy_w8_no_check; +extern TYPE_sas_PW16_no_check phy_w16_no_check; +extern TYPE_sas_PW32_no_check phy_w32_no_check; +extern TYPE_getPtrToPhysAddrByte c_GetPhyAdd; +extern TYPE_get_byte_addr c_get_byte_addr; +extern TYPE_getPtrToLinAddrByte c_GetLinAdd; +extern TYPE_sas_init_pm_selectors c_SasRegisterVirtualSelectors; +extern TYPE_sas_PWS c_sas_PWS; +extern TYPE_sas_PWS_no_check c_sas_PWS_no_check; +extern TYPE_sas_PRS c_sas_PRS; +extern TYPE_sas_PRS_no_check c_sas_PRS_no_check; +extern TYPE_sas_PigCmpPage c_sas_PigCmpPage; +extern TYPE_IOVirtualised c_IOVirtualised; + + +struct SasVector cSasPtrs = { + c_sas_memory_size, + c_sas_connect_memory, + c_sas_enable_20_bit_wrapping, + c_sas_disable_20_bit_wrapping, + c_sas_twenty_bit_wrapping_enabled, + c_sas_memory_type, + c_sas_hw_at, + c_sas_w_at, + c_sas_dw_at, + c_sas_hw_at, + c_sas_w_at, + c_sas_dw_at, + c_sas_store, + c_sas_storew, + c_sas_storedw, + c_sas_store, + c_sas_storew, + c_sas_storedw, + c_sas_loads, + c_sas_stores, + c_sas_loads_no_check, + c_sas_stores_no_check, + c_sas_move_bytes_forward, + c_sas_move_words_forward, + c_sas_move_doubles_forward, + c_sas_move_bytes_backward, + c_sas_move_words_backward, + c_sas_move_doubles_backward, + c_sas_fills, + c_sas_fillsw, + c_sas_fillsdw, + c_sas_scratch_address, + c_sas_transbuf_address, + c_sas_loads, + c_sas_stores, + phy_r8, + phy_r16, + phy_r32, + phy_w8, + phy_w16, + phy_w32, + phy_w8_no_check, + phy_w16_no_check, + phy_w32_no_check, + c_GetPhyAdd, + c_get_byte_addr, + c_GetLinAdd, + c_SasRegisterVirtualSelectors, + (void (*)()) 0, + c_sas_PWS, + c_sas_PWS_no_check, + c_sas_PRS, + c_sas_PRS_no_check, + c_sas_PigCmpPage, + c_IOVirtualised +}; + +/*======================================== END ========================================*/ + diff --git a/private/mvdm/softpc.new/base/cvidc/segreg_c.h b/private/mvdm/softpc.new/base/cvidc/segreg_c.h new file mode 100644 index 000000000..e68c39afe --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/segreg_c.h @@ -0,0 +1,27 @@ +#ifndef _SegReg_c_h +#define _SegReg_c_h +#define SELECTOR_OK (0) +#define TAKE_EXCEPTIONS (0) +#define DONT_TAKE_EXCEPTIONS (1) +enum SR_CLASS_ENUM +{ + SR_CLASS_A = 0, + SR_CLASS_B = 1, + SR_CLASS_C = 2, + SR_CLASS_D = 3 +}; +struct DYNAMIC_DESC_PTR_LOOKUP +{ + struct GLDC_REC **segDescPtr[6]; +}; +struct DYNAMIC_SEG_BASE_LOOKUP +{ + IU32 *segBasePtr[6]; +}; +enum SEG_LOAD_ACTION_ENUM +{ + SEG_LOAD_ACTION_NONE = 0, + SEG_LOAD_ACTION_NEXT = 1, + SEG_LOAD_ACTION_PREV = 2 +}; +#endif /* ! _SegReg_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid000.c b/private/mvdm/softpc.new/base/cvidc/sevid000.c new file mode 100644 index 000000000..097f86dbe --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid000.c @@ -0,0 +1,3148 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_2087_RdMode0Chain2ByteRead_id, +L13_2067if_f_id, +S_2088_RdMode0Chain2WordRead_id, +L13_2068if_f_id, +L26_0if_f_id, +L26_1if_d_id, +S_2089_RdMode0Chain2DwordRead_id, +L13_2069if_f_id, +S_2090_RdMode0Chain2StringReadFwd_id, +L13_2070if_f_id, +L26_2if_f_id, +L26_3if_d_id, +L26_6w_t_id, +L26_7w_d_id, +L26_4if_f_id, +L26_8w_t_id, +L26_9w_d_id, +L26_5if_d_id, +S_2091_RdMode0Chain4ByteRead_id, +L13_2071if_f_id, +S_2092_RdMode0Chain4WordRead_id, +L13_2072if_f_id, +S_2093_RdMode0Chain4DwordRead_id, +L13_2073if_f_id, +S_2094_RdMode0Chain4StringReadFwd_id, +L13_2074if_f_id, +L26_12w_t_id, +L26_13w_d_id, +L26_10if_f_id, +L26_14w_t_id, +L26_15w_d_id, +L26_11if_d_id, +S_2095_RdMode0UnchainedByteRead_id, +L13_2075if_f_id, +S_2096_RdMode0UnchainedWordRead_id, +L13_2076if_f_id, +S_2097_RdMode0UnchainedDwordRead_id, +L13_2077if_f_id, +S_2098_RdMode0UnchainedStringReadFwd_id, +L13_2078if_f_id, +L26_18w_t_id, +L26_19w_d_id, +L26_16if_f_id, +L26_20w_t_id, +L26_21w_d_id, +L26_17if_d_id, +S_2099_RdMode1Chain2ByteRead_id, +L13_2079if_f_id, +L26_22if_f_id, +S_2100_RdMode1Chain2WordRead_id, +L13_2080if_f_id, +L26_23if_f_id, +L26_24if_d_id, +S_2101_RdMode1Chain2DwordRead_id, +L13_2081if_f_id, +S_2102_RdMode1Chain2StringReadFwd_id, +L13_2082if_f_id, +L26_25if_f_id, +L26_26if_d_id, +L26_29w_t_id, +L26_30w_d_id, +L26_27if_f_id, +L26_31w_t_id, +L26_32w_d_id, +L26_28if_d_id, +S_2103_RdMode1Chain4ByteRead_id, +L13_2083if_f_id, +S_2104_RdMode1Chain4WordRead_id, +L13_2084if_f_id, +S_2105_RdMode1Chain4DwordRead_id, +L13_2085if_f_id, +S_2106_RdMode1Chain4StringReadFwd_id, +L13_2086if_f_id, +L26_35w_t_id, +L26_36w_d_id, +L26_33if_f_id, +L26_37w_t_id, +L26_38w_d_id, +L26_34if_d_id, +S_2107_RdMode1UnchainedByteRead_id, +L13_2087if_f_id, +S_2108_RdMode1UnchainedWordRead_id, +L13_2088if_f_id, +S_2109_RdMode1UnchainedDwordRead_id, +L13_2089if_f_id, +S_2110_RdMode1UnchainedStringReadFwd_id, +L13_2090if_f_id, +L26_41w_t_id, +L26_42w_d_id, +L26_39if_f_id, +L26_43w_t_id, +L26_44w_d_id, +L26_40if_d_id, +S_2111_DisabledRAMByteRead_id, +L13_2091if_f_id, +S_2112_DisabledRAMWordRead_id, +L13_2092if_f_id, +S_2113_DisabledRAMDwordRead_id, +L13_2093if_f_id, +S_2114_DisabledRAMStringReadFwd_id, +L13_2094if_f_id, +L26_47w_t_id, +L26_48w_d_id, +L26_45if_f_id, +L26_49w_t_id, +L26_50w_d_id, +L26_46if_d_id, +S_2115_SimpleByteRead_id, +L13_2095if_f_id, +S_2116_SimpleWordRead_id, +L13_2096if_f_id, +S_2117_SimpleDwordRead_id, +L13_2097if_f_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_2087_RdMode0Chain2ByteRead IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2087_RdMode0Chain2ByteRead_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2087_RdMode0Chain2ByteRead = (IHPE)S_2087_RdMode0Chain2ByteRead ; +LOCAL IUH L13_2067if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2067if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2067if_f = (IHPE)L13_2067if_f ; +GLOBAL IUH S_2088_RdMode0Chain2WordRead IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2088_RdMode0Chain2WordRead_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2088_RdMode0Chain2WordRead = (IHPE)S_2088_RdMode0Chain2WordRead ; +LOCAL IUH L13_2068if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2068if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2068if_f = (IHPE)L13_2068if_f ; +LOCAL IUH L26_0if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_0if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_0if_f = (IHPE)L26_0if_f ; +LOCAL IUH L26_1if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_1if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_1if_d = (IHPE)L26_1if_d ; +GLOBAL IUH S_2089_RdMode0Chain2DwordRead IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2089_RdMode0Chain2DwordRead_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2089_RdMode0Chain2DwordRead = (IHPE)S_2089_RdMode0Chain2DwordRead ; +LOCAL IUH L13_2069if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2069if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2069if_f = (IHPE)L13_2069if_f ; +GLOBAL IUH S_2090_RdMode0Chain2StringReadFwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2090_RdMode0Chain2StringReadFwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2090_RdMode0Chain2StringReadFwd = (IHPE)S_2090_RdMode0Chain2StringReadFwd ; +LOCAL IUH L13_2070if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2070if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2070if_f = (IHPE)L13_2070if_f ; +LOCAL IUH L26_2if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_2if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_2if_f = (IHPE)L26_2if_f ; +LOCAL IUH L26_3if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_3if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_3if_d = (IHPE)L26_3if_d ; +LOCAL IUH L26_6w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_6w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_6w_t = (IHPE)L26_6w_t ; +LOCAL IUH L26_7w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_7w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_7w_d = (IHPE)L26_7w_d ; +LOCAL IUH L26_4if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_4if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_4if_f = (IHPE)L26_4if_f ; +LOCAL IUH L26_8w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_8w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_8w_t = (IHPE)L26_8w_t ; +LOCAL IUH L26_9w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_9w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_9w_d = (IHPE)L26_9w_d ; +LOCAL IUH L26_5if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_5if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_5if_d = (IHPE)L26_5if_d ; +GLOBAL IUH S_2091_RdMode0Chain4ByteRead IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2091_RdMode0Chain4ByteRead_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2091_RdMode0Chain4ByteRead = (IHPE)S_2091_RdMode0Chain4ByteRead ; +LOCAL IUH L13_2071if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2071if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2071if_f = (IHPE)L13_2071if_f ; +GLOBAL IUH S_2092_RdMode0Chain4WordRead IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2092_RdMode0Chain4WordRead_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2092_RdMode0Chain4WordRead = (IHPE)S_2092_RdMode0Chain4WordRead ; +LOCAL IUH L13_2072if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2072if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2072if_f = (IHPE)L13_2072if_f ; +GLOBAL IUH S_2093_RdMode0Chain4DwordRead IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2093_RdMode0Chain4DwordRead_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2093_RdMode0Chain4DwordRead = (IHPE)S_2093_RdMode0Chain4DwordRead ; +LOCAL IUH L13_2073if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2073if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2073if_f = (IHPE)L13_2073if_f ; +GLOBAL IUH S_2094_RdMode0Chain4StringReadFwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2094_RdMode0Chain4StringReadFwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2094_RdMode0Chain4StringReadFwd = (IHPE)S_2094_RdMode0Chain4StringReadFwd ; +LOCAL IUH L13_2074if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2074if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2074if_f = (IHPE)L13_2074if_f ; +LOCAL IUH L26_12w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_12w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_12w_t = (IHPE)L26_12w_t ; +LOCAL IUH L26_13w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_13w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_13w_d = (IHPE)L26_13w_d ; +LOCAL IUH L26_10if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_10if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_10if_f = (IHPE)L26_10if_f ; +LOCAL IUH L26_14w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_14w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_14w_t = (IHPE)L26_14w_t ; +LOCAL IUH L26_15w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_15w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_15w_d = (IHPE)L26_15w_d ; +LOCAL IUH L26_11if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_11if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_11if_d = (IHPE)L26_11if_d ; +GLOBAL IUH S_2095_RdMode0UnchainedByteRead IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2095_RdMode0UnchainedByteRead_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2095_RdMode0UnchainedByteRead = (IHPE)S_2095_RdMode0UnchainedByteRead ; +LOCAL IUH L13_2075if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2075if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2075if_f = (IHPE)L13_2075if_f ; +GLOBAL IUH S_2096_RdMode0UnchainedWordRead IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2096_RdMode0UnchainedWordRead_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2096_RdMode0UnchainedWordRead = (IHPE)S_2096_RdMode0UnchainedWordRead ; +LOCAL IUH L13_2076if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2076if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2076if_f = (IHPE)L13_2076if_f ; +GLOBAL IUH S_2097_RdMode0UnchainedDwordRead IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2097_RdMode0UnchainedDwordRead_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2097_RdMode0UnchainedDwordRead = (IHPE)S_2097_RdMode0UnchainedDwordRead ; +LOCAL IUH L13_2077if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2077if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2077if_f = (IHPE)L13_2077if_f ; +GLOBAL IUH S_2098_RdMode0UnchainedStringReadFwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2098_RdMode0UnchainedStringReadFwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2098_RdMode0UnchainedStringReadFwd = (IHPE)S_2098_RdMode0UnchainedStringReadFwd ; +LOCAL IUH L13_2078if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2078if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2078if_f = (IHPE)L13_2078if_f ; +LOCAL IUH L26_18w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_18w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_18w_t = (IHPE)L26_18w_t ; +LOCAL IUH L26_19w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_19w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_19w_d = (IHPE)L26_19w_d ; +LOCAL IUH L26_16if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_16if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_16if_f = (IHPE)L26_16if_f ; +LOCAL IUH L26_20w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_20w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_20w_t = (IHPE)L26_20w_t ; +LOCAL IUH L26_21w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_21w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_21w_d = (IHPE)L26_21w_d ; +LOCAL IUH L26_17if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_17if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_17if_d = (IHPE)L26_17if_d ; +GLOBAL IUH S_2099_RdMode1Chain2ByteRead IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2099_RdMode1Chain2ByteRead_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2099_RdMode1Chain2ByteRead = (IHPE)S_2099_RdMode1Chain2ByteRead ; +LOCAL IUH L13_2079if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2079if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2079if_f = (IHPE)L13_2079if_f ; +LOCAL IUH L26_22if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_22if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_22if_f = (IHPE)L26_22if_f ; +GLOBAL IUH S_2100_RdMode1Chain2WordRead IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2100_RdMode1Chain2WordRead_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2100_RdMode1Chain2WordRead = (IHPE)S_2100_RdMode1Chain2WordRead ; +LOCAL IUH L13_2080if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2080if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2080if_f = (IHPE)L13_2080if_f ; +LOCAL IUH L26_23if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_23if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_23if_f = (IHPE)L26_23if_f ; +LOCAL IUH L26_24if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_24if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_24if_d = (IHPE)L26_24if_d ; +GLOBAL IUH S_2101_RdMode1Chain2DwordRead IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2101_RdMode1Chain2DwordRead_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2101_RdMode1Chain2DwordRead = (IHPE)S_2101_RdMode1Chain2DwordRead ; +LOCAL IUH L13_2081if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2081if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2081if_f = (IHPE)L13_2081if_f ; +GLOBAL IUH S_2102_RdMode1Chain2StringReadFwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2102_RdMode1Chain2StringReadFwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2102_RdMode1Chain2StringReadFwd = (IHPE)S_2102_RdMode1Chain2StringReadFwd ; +LOCAL IUH L13_2082if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2082if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2082if_f = (IHPE)L13_2082if_f ; +LOCAL IUH L26_25if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_25if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_25if_f = (IHPE)L26_25if_f ; +LOCAL IUH L26_26if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_26if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_26if_d = (IHPE)L26_26if_d ; +LOCAL IUH L26_29w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_29w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_29w_t = (IHPE)L26_29w_t ; +LOCAL IUH L26_30w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_30w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_30w_d = (IHPE)L26_30w_d ; +LOCAL IUH L26_27if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_27if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_27if_f = (IHPE)L26_27if_f ; +LOCAL IUH L26_31w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_31w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_31w_t = (IHPE)L26_31w_t ; +LOCAL IUH L26_32w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_32w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_32w_d = (IHPE)L26_32w_d ; +LOCAL IUH L26_28if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_28if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_28if_d = (IHPE)L26_28if_d ; +GLOBAL IUH S_2103_RdMode1Chain4ByteRead IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2103_RdMode1Chain4ByteRead_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2103_RdMode1Chain4ByteRead = (IHPE)S_2103_RdMode1Chain4ByteRead ; +LOCAL IUH L13_2083if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2083if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2083if_f = (IHPE)L13_2083if_f ; +GLOBAL IUH S_2104_RdMode1Chain4WordRead IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2104_RdMode1Chain4WordRead_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2104_RdMode1Chain4WordRead = (IHPE)S_2104_RdMode1Chain4WordRead ; +LOCAL IUH L13_2084if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2084if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2084if_f = (IHPE)L13_2084if_f ; +GLOBAL IUH S_2105_RdMode1Chain4DwordRead IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2105_RdMode1Chain4DwordRead_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2105_RdMode1Chain4DwordRead = (IHPE)S_2105_RdMode1Chain4DwordRead ; +LOCAL IUH L13_2085if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2085if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2085if_f = (IHPE)L13_2085if_f ; +GLOBAL IUH S_2106_RdMode1Chain4StringReadFwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2106_RdMode1Chain4StringReadFwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2106_RdMode1Chain4StringReadFwd = (IHPE)S_2106_RdMode1Chain4StringReadFwd ; +LOCAL IUH L13_2086if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2086if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2086if_f = (IHPE)L13_2086if_f ; +LOCAL IUH L26_35w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_35w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_35w_t = (IHPE)L26_35w_t ; +LOCAL IUH L26_36w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_36w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_36w_d = (IHPE)L26_36w_d ; +LOCAL IUH L26_33if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_33if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_33if_f = (IHPE)L26_33if_f ; +LOCAL IUH L26_37w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_37w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_37w_t = (IHPE)L26_37w_t ; +LOCAL IUH L26_38w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_38w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_38w_d = (IHPE)L26_38w_d ; +LOCAL IUH L26_34if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_34if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_34if_d = (IHPE)L26_34if_d ; +GLOBAL IUH S_2107_RdMode1UnchainedByteRead IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2107_RdMode1UnchainedByteRead_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2107_RdMode1UnchainedByteRead = (IHPE)S_2107_RdMode1UnchainedByteRead ; +LOCAL IUH L13_2087if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2087if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2087if_f = (IHPE)L13_2087if_f ; +GLOBAL IUH S_2108_RdMode1UnchainedWordRead IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2108_RdMode1UnchainedWordRead_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2108_RdMode1UnchainedWordRead = (IHPE)S_2108_RdMode1UnchainedWordRead ; +LOCAL IUH L13_2088if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2088if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2088if_f = (IHPE)L13_2088if_f ; +GLOBAL IUH S_2109_RdMode1UnchainedDwordRead IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2109_RdMode1UnchainedDwordRead_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2109_RdMode1UnchainedDwordRead = (IHPE)S_2109_RdMode1UnchainedDwordRead ; +LOCAL IUH L13_2089if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2089if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2089if_f = (IHPE)L13_2089if_f ; +GLOBAL IUH S_2110_RdMode1UnchainedStringReadFwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2110_RdMode1UnchainedStringReadFwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2110_RdMode1UnchainedStringReadFwd = (IHPE)S_2110_RdMode1UnchainedStringReadFwd ; +LOCAL IUH L13_2090if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2090if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2090if_f = (IHPE)L13_2090if_f ; +LOCAL IUH L26_41w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_41w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_41w_t = (IHPE)L26_41w_t ; +LOCAL IUH L26_42w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_42w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_42w_d = (IHPE)L26_42w_d ; +LOCAL IUH L26_39if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_39if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_39if_f = (IHPE)L26_39if_f ; +LOCAL IUH L26_43w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_43w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_43w_t = (IHPE)L26_43w_t ; +LOCAL IUH L26_44w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_44w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_44w_d = (IHPE)L26_44w_d ; +LOCAL IUH L26_40if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_40if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_40if_d = (IHPE)L26_40if_d ; +GLOBAL IUH S_2111_DisabledRAMByteRead IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2111_DisabledRAMByteRead_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2111_DisabledRAMByteRead = (IHPE)S_2111_DisabledRAMByteRead ; +LOCAL IUH L13_2091if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2091if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2091if_f = (IHPE)L13_2091if_f ; +GLOBAL IUH S_2112_DisabledRAMWordRead IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2112_DisabledRAMWordRead_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2112_DisabledRAMWordRead = (IHPE)S_2112_DisabledRAMWordRead ; +LOCAL IUH L13_2092if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2092if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2092if_f = (IHPE)L13_2092if_f ; +GLOBAL IUH S_2113_DisabledRAMDwordRead IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2113_DisabledRAMDwordRead_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2113_DisabledRAMDwordRead = (IHPE)S_2113_DisabledRAMDwordRead ; +LOCAL IUH L13_2093if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2093if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2093if_f = (IHPE)L13_2093if_f ; +GLOBAL IUH S_2114_DisabledRAMStringReadFwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2114_DisabledRAMStringReadFwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2114_DisabledRAMStringReadFwd = (IHPE)S_2114_DisabledRAMStringReadFwd ; +LOCAL IUH L13_2094if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2094if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2094if_f = (IHPE)L13_2094if_f ; +LOCAL IUH L26_47w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_47w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_47w_t = (IHPE)L26_47w_t ; +LOCAL IUH L26_48w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_48w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_48w_d = (IHPE)L26_48w_d ; +LOCAL IUH L26_45if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_45if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_45if_f = (IHPE)L26_45if_f ; +LOCAL IUH L26_49w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_49w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_49w_t = (IHPE)L26_49w_t ; +LOCAL IUH L26_50w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_50w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_50w_d = (IHPE)L26_50w_d ; +LOCAL IUH L26_46if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_46if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_46if_d = (IHPE)L26_46if_d ; +GLOBAL IUH S_2115_SimpleByteRead IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2115_SimpleByteRead_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2115_SimpleByteRead = (IHPE)S_2115_SimpleByteRead ; +LOCAL IUH L13_2095if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2095if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2095if_f = (IHPE)L13_2095if_f ; +GLOBAL IUH S_2116_SimpleWordRead IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2116_SimpleWordRead_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2116_SimpleWordRead = (IHPE)S_2116_SimpleWordRead ; +LOCAL IUH L13_2096if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2096if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2096if_f = (IHPE)L13_2096if_f ; +GLOBAL IUH S_2117_SimpleDwordRead IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2117_SimpleDwordRead_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2117_SimpleDwordRead = (IHPE)S_2117_SimpleDwordRead ; +LOCAL IUH L13_2097if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2097if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2097if_f = (IHPE)L13_2097if_f ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + case S_2087_RdMode0Chain2ByteRead_id : + S_2087_RdMode0Chain2ByteRead : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2087) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2067if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2067if_f_id : + L13_2067if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU8 *)(LocalIUH+0) + REGBYTE) = *((IU8 *)&(r2) + REGBYTE) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r22)) = (IS32)(31) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1284) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)(*((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1284) ; + *((IU8 *)(LocalIUH+0) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r21))) ) ; + *((IU8 *)&(r2) + REGBYTE) = *((IU8 *)(LocalIUH+0) + REGBYTE) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2088_RdMode0Chain2WordRead_id : + S_2088_RdMode0Chain2WordRead : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2088) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2068if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2068if_f_id : + L13_2068if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r23)) = (IS32)(31) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r22) + REGLONG) = (IU32)((*((IU32 *)&(r22) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r22)) = *((IUH *)&(r22)) + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(*((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r22)) = (IS32)(31) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+0) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+0) + REGLONG) & (1 << *((IU32 *)&(r21) + REGLONG))) == 0) goto L26_0if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IU8 *)(LocalIUH+2) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1284) ; + *(UOFF_15_8( (LocalIUH+2) )) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) ; + { extern IUH L26_1if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L26_1if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L26_0if_f_id : + L26_0if_f: ; + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IU8 *)(LocalIUH+2) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1284) ; + *(UOFF_15_8( (LocalIUH+2) )) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r21))) ) ; + case L26_1if_d_id : + L26_1if_d: ; + *((IU16 *)&(r2) + REGWORD ) = *((IU16 *)(LocalIUH+2) + REGWORD) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2089_RdMode0Chain2DwordRead_id : + S_2089_RdMode0Chain2DwordRead : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2089) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2069if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2069if_f_id : + L13_2069if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16206) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2088_RdMode0Chain2WordRead() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2088_RdMode0Chain2WordRead(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004277), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IU16 *)(LocalIUH+2) + REGWORD) = *((IU16 *)&(r2) + REGWORD ) ; + *((IUH *)(r1+0)) = (IS32)(16207) ; + *((IUH *)(r1+0)) = (IS32)(16206) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2088_RdMode0Chain2WordRead() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2088_RdMode0Chain2WordRead(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004277), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+2) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r20) + REGWORD) = *((IU16 *)&(r2) + REGWORD ) ; + *((IUH *)(r1+0)) = (IS32)(16207) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2090_RdMode0Chain2StringReadFwd_id : + S_2090_RdMode0Chain2StringReadFwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 28 > 0 ) LocalIUH = (IUH *)malloc ( 28 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2090) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2070if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2070if_f_id : + L13_2070if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+1) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L26_2if_f; + *((IUH *)(LocalIUH+4)) = (IS32)(3) ; + { extern IUH L26_3if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L26_3if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L26_2if_f_id : + L26_2if_f: ; + *((IUH *)(LocalIUH+4)) = (IS32)(1) ; + case L26_3if_d_id : + L26_3if_d: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r22)) = (IS32)(31) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1372) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L26_4if_f; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L26_7w_d; + case L26_6w_t_id : + L26_6w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) - *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r23)) = (IS32)(1284) ; + *((IUH *)&(r24)) = *((IUH *)(LocalIUH+5)) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23)))) ) + *((IHPE *)&(r24))) ) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)(LocalIUH+4)) = *((IUH *)(LocalIUH+4)) ^ *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L26_6w_t; + case L26_7w_d_id : + L26_7w_d: ; + { extern IUH L26_5if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L26_5if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L26_4if_f_id : + L26_4if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L26_9w_d; + case L26_8w_t_id : + L26_8w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IUH *)&(r23)) = (IS32)(1284) ; + *((IUH *)&(r24)) = *((IUH *)(LocalIUH+5)) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23)))) ) + *((IHPE *)&(r24))) ) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)(LocalIUH+4)) = *((IUH *)(LocalIUH+4)) ^ *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L26_8w_t; + case L26_9w_d_id : + L26_9w_d: ; + case L26_5if_d_id : + L26_5if_d: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(-4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r2)) = *((IUH *)(LocalIUH+0)) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2091_RdMode0Chain4ByteRead_id : + S_2091_RdMode0Chain4ByteRead : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 8 > 0 ) LocalIUH = (IUH *)malloc ( 8 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2091) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2071if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2071if_f_id : + L13_2071if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = (IS32)(-4) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IU8 *)&(r2) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2092_RdMode0Chain4WordRead_id : + S_2092_RdMode0Chain4WordRead : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 8 > 0 ) LocalIUH = (IUH *)malloc ( 8 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2092) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2072if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2072if_f_id : + L13_2072if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1284) ; + *(UOFF_15_8( (LocalIUH+1) )) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(-4) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IU16 *)&(r2) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2093_RdMode0Chain4DwordRead_id : + S_2093_RdMode0Chain4DwordRead : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 8 > 0 ) LocalIUH = (IUH *)malloc ( 8 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2093) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2073if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2073if_f_id : + L13_2073if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1284) ; + *(UOFF_15_8( (LocalIUH+1) )) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+1) + REGLONG) = (*((IU32 *)(LocalIUH+1) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ); + *((IUH *)&(r22)) = (IS32)(24) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+1) + REGLONG) = (*((IU32 *)(LocalIUH+1) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(-4) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2094_RdMode0Chain4StringReadFwd_id : + S_2094_RdMode0Chain4StringReadFwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2094) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2074if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2074if_f_id : + L13_2074if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1372) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L26_10if_f; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L26_13w_d; + case L26_12w_t_id : + L26_12w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) - *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r23)) = (IS32)(1284) ; + *((IUH *)&(r24)) = *((IUH *)(LocalIUH+4)) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23)))) ) + *((IHPE *)&(r24))) ) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L26_12w_t; + case L26_13w_d_id : + L26_13w_d: ; + { extern IUH L26_11if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L26_11if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L26_10if_f_id : + L26_10if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L26_15w_d; + case L26_14w_t_id : + L26_14w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IUH *)&(r23)) = (IS32)(1284) ; + *((IUH *)&(r24)) = *((IUH *)(LocalIUH+4)) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23)))) ) + *((IHPE *)&(r24))) ) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L26_14w_t; + case L26_15w_d_id : + L26_15w_d: ; + case L26_11if_d_id : + L26_11if_d: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(-4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r2)) = *((IUH *)(LocalIUH+0)) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2095_RdMode0UnchainedByteRead_id : + S_2095_RdMode0UnchainedByteRead : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 8 > 0 ) LocalIUH = (IUH *)malloc ( 8 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2095) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2075if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2075if_f_id : + L13_2075if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(*((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r22)) = (IS32)(1368) ; + if(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) >> *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU8 *)&(r2) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2096_RdMode0UnchainedWordRead_id : + S_2096_RdMode0UnchainedWordRead : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 8 > 0 ) LocalIUH = (IUH *)malloc ( 8 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2096) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2076if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2076if_f_id : + L13_2076if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1368) ; + if(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) >> *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(*((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r22)) = (IS32)(1368) ; + if(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) >> *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *(UOFF_15_8( (LocalIUH+1) )) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU16 *)&(r2) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2097_RdMode0UnchainedDwordRead_id : + S_2097_RdMode0UnchainedDwordRead : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2097) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2077if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2077if_f_id : + L13_2077if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16224) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2096_RdMode0UnchainedWordRead() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2096_RdMode0UnchainedWordRead(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004277), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IU16 *)(LocalIUH+2) + REGWORD) = *((IU16 *)&(r2) + REGWORD ) ; + *((IUH *)(r1+0)) = (IS32)(16225) ; + *((IUH *)(r1+0)) = (IS32)(16224) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2096_RdMode0UnchainedWordRead() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2096_RdMode0UnchainedWordRead(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004277), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IU16 *)(LocalIUH+3) + REGWORD) = *((IU16 *)&(r2) + REGWORD ) ; + *((IUH *)(r1+0)) = (IS32)(16225) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+2) + REGLONG) = (*((IU32 *)(LocalIUH+2) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r21) + REGLONG)), (IUH)(*((IU32 *)&(r22) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r21) + REGLONG)) & mask((IUH)(*((IU32 *)&(r21) + REGLONG)), (IUH)(*((IU32 *)&(r22) + REGLONG)))) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2098_RdMode0UnchainedStringReadFwd_id : + S_2098_RdMode0UnchainedStringReadFwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2098) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2078if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2078if_f_id : + L13_2078if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1372) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L26_16if_f; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L26_19w_d; + case L26_18w_t_id : + L26_18w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) - *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r23)) = (IS32)(1284) ; + *((IUH *)&(r24)) = *((IUH *)(LocalIUH+4)) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23)))) ) + *((IHPE *)&(r24))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L26_18w_t; + case L26_19w_d_id : + L26_19w_d: ; + { extern IUH L26_17if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L26_17if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L26_16if_f_id : + L26_16if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L26_21w_d; + case L26_20w_t_id : + L26_20w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IUH *)&(r23)) = (IS32)(1284) ; + *((IUH *)&(r24)) = *((IUH *)(LocalIUH+4)) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23)))) ) + *((IHPE *)&(r24))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L26_20w_t; + case L26_21w_d_id : + L26_21w_d: ; + case L26_17if_d_id : + L26_17if_d: ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1372) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r2)) = *((IUH *)(LocalIUH+0)) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2099_RdMode1Chain2ByteRead_id : + S_2099_RdMode1Chain2ByteRead : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2099) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2079if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2079if_f_id : + L13_2079if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r22)) = (IS32)(31) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+0) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+1) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1284) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)(*((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+0) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L26_22if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + case L26_22if_f_id : + L26_22if_f: ; + *((IUH *)(r1+0)) = (IS32)(16230) ; + *((IUH *)&(r20)) = (IS32)(1379) ; + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+1)) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r22)) = (IS32)(1383) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) | *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU8 *)(LocalIUH+2) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16231) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1284) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) ; + *((IUH *)(r1+0)) = (IS32)(16230) ; + *((IUH *)&(r21)) = (IS32)(1379) ; + *((IU8 *)&(r20) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU8 *)(LocalIUH+3) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1383) ; + *((IU8 *)&(r20) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) | *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16231) ; + *((IU8 *)(LocalIUH+2) + REGBYTE) = *((IU8 *)(LocalIUH+2) + REGBYTE) & *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU8 *)&(r2) + REGBYTE) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2100_RdMode1Chain2WordRead_id : + S_2100_RdMode1Chain2WordRead : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2100) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2080if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2080if_f_id : + L13_2080if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r23)) = (IS32)(31) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r22) + REGLONG) = (IU32)((*((IU32 *)&(r22) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r22)) = *((IUH *)&(r22)) + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(*((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r22)) = (IS32)(31) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+0) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+0) + REGLONG) & (1 << *((IU32 *)&(r21) + REGLONG))) == 0) goto L26_23if_f; + *((IUH *)(r1+0)) = (IS32)(16230) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1379) ; + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r22)) = (IS32)(1383) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) | *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU8 *)(LocalIUH+2) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16231) ; + *((IUH *)(r1+0)) = (IS32)(16230) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1379) ; + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r22)) = (IS32)(1383) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) | *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16231) ; + *((IU8 *)(LocalIUH+2) + REGBYTE) = *((IU8 *)(LocalIUH+2) + REGBYTE) & *((IU8 *)(LocalIUH+3) + REGBYTE); + *((IUH *)(r1+0)) = (IS32)(16230) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1379) ; + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r22)) = (IS32)(1383) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) | *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *(UOFF_15_8( (LocalIUH+2) )) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16231) ; + *((IUH *)(r1+0)) = (IS32)(16230) ; + *((IUH *)&(r20)) = (IS32)(6) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1379) ; + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r22)) = (IS32)(1383) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) | *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16231) ; + *(UOFF_15_8( (LocalIUH+2) )) = *(UOFF_15_8( (LocalIUH+2) )) & *((IU8 *)(LocalIUH+3) + REGBYTE); + { extern IUH L26_24if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L26_24if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L26_23if_f_id : + L26_23if_f: ; + *((IUH *)(r1+0)) = (IS32)(16230) ; + *((IUH *)&(r20)) = (IS32)(1379) ; + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+1)) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r22)) = (IS32)(1383) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) | *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU8 *)(LocalIUH+2) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16231) ; + *((IUH *)(r1+0)) = (IS32)(16230) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1379) ; + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r22)) = (IS32)(1383) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) | *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16231) ; + *((IU8 *)(LocalIUH+2) + REGBYTE) = *((IU8 *)(LocalIUH+2) + REGBYTE) & *((IU8 *)(LocalIUH+3) + REGBYTE); + *((IUH *)(r1+0)) = (IS32)(16230) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1379) ; + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r22)) = (IS32)(1383) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) | *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *(UOFF_15_8( (LocalIUH+2) )) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16231) ; + *((IUH *)(r1+0)) = (IS32)(16230) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1379) ; + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IU8 *)&(r20) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(1383) ; + *((IU8 *)&(r20) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) | *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16231) ; + *(UOFF_15_8( (LocalIUH+2) )) = *(UOFF_15_8( (LocalIUH+2) )) & *((IU8 *)(LocalIUH+3) + REGBYTE); + case L26_24if_d_id : + L26_24if_d: ; + *((IU16 *)&(r2) + REGWORD ) = *((IU16 *)(LocalIUH+2) + REGWORD) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2101_RdMode1Chain2DwordRead_id : + S_2101_RdMode1Chain2DwordRead : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2101) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2081if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2081if_f_id : + L13_2081if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16236) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2100_RdMode1Chain2WordRead() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2100_RdMode1Chain2WordRead(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004277), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IU16 *)(LocalIUH+2) + REGWORD) = *((IU16 *)&(r2) + REGWORD ) ; + *((IUH *)(r1+0)) = (IS32)(16237) ; + *((IUH *)(r1+0)) = (IS32)(16236) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2100_RdMode1Chain2WordRead() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2100_RdMode1Chain2WordRead(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004277), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+2) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r20) + REGWORD) = *((IU16 *)&(r2) + REGWORD ) ; + *((IUH *)(r1+0)) = (IS32)(16237) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2102_RdMode1Chain2StringReadFwd_id : + S_2102_RdMode1Chain2StringReadFwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 32 > 0 ) LocalIUH = (IUH *)malloc ( 32 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2102) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2082if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2082if_f_id : + L13_2082if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+1) + REGLONG) & (1 << *((IU32 *)&(r21) + REGLONG))) == 0) goto L26_25if_f; + *((IUH *)(LocalIUH+4)) = (IS32)(3) ; + { extern IUH L26_26if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L26_26if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L26_25if_f_id : + L26_25if_f: ; + *((IUH *)(LocalIUH+4)) = (IS32)(1) ; + case L26_26if_d_id : + L26_26if_d: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r22)) = (IS32)(31) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1372) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L26_27if_f; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L26_30w_d; + case L26_29w_t_id : + L26_29w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16230) ; + *((IUH *)&(r20)) = (IS32)(1379) ; + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+5)) ; + *((IU8 *)&(r22) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r20)) = (IS32)(1383) ; + *((IU8 *)&(r22) + REGBYTE) = *((IU8 *)&(r22) + REGBYTE) | *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)&(r22) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16231) ; + *((IUH *)(r1+0)) = (IS32)(16230) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1379) ; + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r22)) = (IS32)(1383) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) | *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU8 *)(LocalIUH+7) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16231) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)&(r22) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) & *((IU8 *)(LocalIUH+7) + REGBYTE); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)&(r22) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+0)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)(LocalIUH+4)) = *((IUH *)(LocalIUH+4)) ^ *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L26_29w_t; + case L26_30w_d_id : + L26_30w_d: ; + { extern IUH L26_28if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L26_28if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L26_27if_f_id : + L26_27if_f: ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L26_32w_d; + case L26_31w_t_id : + L26_31w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16230) ; + *((IUH *)&(r20)) = (IS32)(1379) ; + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+5)) ; + *((IU8 *)&(r22) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r20)) = (IS32)(1383) ; + *((IU8 *)&(r22) + REGBYTE) = *((IU8 *)&(r22) + REGBYTE) | *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)&(r22) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16231) ; + *((IUH *)(r1+0)) = (IS32)(16230) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1379) ; + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r22)) = (IS32)(1383) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) | *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU8 *)(LocalIUH+7) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16231) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)&(r22) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) & *((IU8 *)(LocalIUH+7) + REGBYTE); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)&(r22) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)(LocalIUH+4)) = *((IUH *)(LocalIUH+4)) ^ *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L26_31w_t; + case L26_32w_d_id : + L26_32w_d: ; + case L26_28if_d_id : + L26_28if_d: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(-4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r2)) = *((IUH *)(LocalIUH+0)) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2103_RdMode1Chain4ByteRead_id : + S_2103_RdMode1Chain4ByteRead : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 8 > 0 ) LocalIUH = (IUH *)malloc ( 8 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2103) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2083if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2083if_f_id : + L13_2083if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(-4) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r22)) = *((IUH *)&(r22)) + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(*((IHPE *)&(r22))) ) ; + *((IUH *)(r1+0)) = (IS32)(16230) ; + *((IUH *)&(r21)) = (IS32)(1379) ; + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)&(r20) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(1383) ; + *((IU8 *)&(r20) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) | *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16231) ; + *((IU8 *)&(r2) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2104_RdMode1Chain4WordRead_id : + S_2104_RdMode1Chain4WordRead : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 8 > 0 ) LocalIUH = (IUH *)malloc ( 8 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2104) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2084if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2084if_f_id : + L13_2084if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1284) ; + *(UOFF_15_8( (LocalIUH+1) )) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = (IS32)(-4) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r22)) = *((IUH *)&(r22)) + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(*((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = (IS32)(1378) ; + *((IU16 *)&(r20) + REGWORD ) = *((IU16 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IUH *)&(r21)) = (IS32)(1382) ; + *((IU16 *)&(r20) + REGWORD) = *((IU16 *)&(r20) + REGWORD) | *((IU16 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r20) + REGWORD ) ; + *((IU16 *)&(r2) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2105_RdMode1Chain4DwordRead_id : + S_2105_RdMode1Chain4DwordRead : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 8 > 0 ) LocalIUH = (IUH *)malloc ( 8 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2105) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2085if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2085if_f_id : + L13_2085if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1284) ; + *(UOFF_15_8( (LocalIUH+1) )) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(9) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+1) + REGLONG) = (*((IU32 *)(LocalIUH+1) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ); + *((IUH *)&(r22)) = (IS32)(23) ; + *((IUH *)&(r23)) = (IS32)(9) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+1) + REGLONG) = (*((IU32 *)(LocalIUH+1) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(-4) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r22)) = *((IUH *)&(r22)) + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(*((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = (IS32)(1376) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1380) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2106_RdMode1Chain4StringReadFwd_id : + S_2106_RdMode1Chain4StringReadFwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2106) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2086if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2086if_f_id : + L13_2086if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L26_33if_f; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L26_36w_d; + case L26_35w_t_id : + L26_35w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1379) ; + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+4)) ; + *((IU8 *)&(r23) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = (IS32)(1383) ; + *((IU8 *)&(r23) + REGBYTE) = *((IU8 *)&(r23) + REGBYTE) | *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) - *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)&(r23) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L26_35w_t; + case L26_36w_d_id : + L26_36w_d: ; + { extern IUH L26_34if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L26_34if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L26_33if_f_id : + L26_33if_f: ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L26_38w_d; + case L26_37w_t_id : + L26_37w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1379) ; + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+4)) ; + *((IU8 *)&(r23) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = (IS32)(1383) ; + *((IU8 *)&(r23) + REGBYTE) = *((IU8 *)&(r23) + REGBYTE) | *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)&(r23) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L26_37w_t; + case L26_38w_d_id : + L26_38w_d: ; + case L26_34if_d_id : + L26_34if_d: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(-4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r2)) = *((IUH *)(LocalIUH+0)) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2107_RdMode1UnchainedByteRead_id : + S_2107_RdMode1UnchainedByteRead : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2107) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2087if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2087if_f_id : + L13_2087if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1376) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1380) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16250) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r22) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r22) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+2) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16251) ; + *((IU8 *)&(r2) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2108_RdMode1UnchainedWordRead_id : + S_2108_RdMode1UnchainedWordRead : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2108) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2088if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2088if_f_id : + L13_2088if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1376) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1380) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16250) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(0) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(24) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+2) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16251) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1376) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1380) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16250) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r22) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r22) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)&(r20) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16251) ; + *((IU16 *)&(r2) + REGWORD ) = *((IU16 *)(LocalIUH+3) + REGWORD) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2109_RdMode1UnchainedDwordRead_id : + S_2109_RdMode1UnchainedDwordRead : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 36 > 0 ) LocalIUH = (IUH *)malloc ( 36 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2109) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2089if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2089if_f_id : + L13_2089if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1376) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1380) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16250) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(0) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(24) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+2) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16251) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1376) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1380) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16250) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(0) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(24) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16251) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1376) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1380) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16250) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+3) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r22) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r24)) = (IS32)(8) ; + if (*((IU32 *)&(r24) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r24) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r23) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r24) + REGLONG))))) >> (32 - *((IU32 *)&(r24) + REGLONG)); + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r24)) = (IS32)(8) ; + if (*((IU32 *)&(r24) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r24) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+5) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r24) + REGLONG))))) >> (32 - *((IU32 *)&(r24) + REGLONG)); + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r23)) = (IS32)(24) ; + *((IUH *)&(r24)) = (IS32)(8) ; + if (*((IU32 *)&(r24) + REGLONG) + *((IU32 *)&(r23) + REGLONG) > 32 || *((IU32 *)&(r24) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+6) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r24) + REGLONG))))) >> (32 - *((IU32 *)&(r24) + REGLONG)); + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+6) + REGLONG); + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)&(r22) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16251) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(12) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1376) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1380) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16250) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+3) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(8) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(0) ; + *((IUH *)&(r24)) = (IS32)(8) ; + if (*((IU32 *)&(r24) + REGLONG) + *((IU32 *)&(r23) + REGLONG) > 32 || *((IU32 *)&(r24) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r22) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r24) + REGLONG))))) >> (32 - *((IU32 *)&(r24) + REGLONG)); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r23)) = (IS32)(16) ; + *((IUH *)&(r24)) = (IS32)(8) ; + if (*((IU32 *)&(r24) + REGLONG) + *((IU32 *)&(r23) + REGLONG) > 32 || *((IU32 *)&(r24) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+7) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r24) + REGLONG))))) >> (32 - *((IU32 *)&(r24) + REGLONG)); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+7) + REGLONG); + *((IUH *)&(r22)) = (IS32)(24) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU8 *)&(r20) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16251) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2110_RdMode1UnchainedStringReadFwd_id : + S_2110_RdMode1UnchainedStringReadFwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 36 > 0 ) LocalIUH = (IUH *)malloc ( 36 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2110) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2090if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2090if_f_id : + L13_2090if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1372) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L26_39if_f; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L26_42w_d; + case L26_41w_t_id : + L26_41w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1379) ; + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+4)) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r22)) = (IS32)(1383) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) | *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = *((IU8 *)&(r21) + REGBYTE); + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16250) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = (IS32)(8) ; + if (*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r21) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r22) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+6) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG))))) >> (32 - *((IU32 *)&(r21) + REGLONG)); + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+6) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+6) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(24) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+7) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+6) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+7) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)&(r22) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16251) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+0)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L26_41w_t; + case L26_42w_d_id : + L26_42w_d: ; + { extern IUH L26_40if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L26_40if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L26_39if_f_id : + L26_39if_f: ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L26_44w_d; + case L26_43w_t_id : + L26_43w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1379) ; + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+4)) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r22)) = (IS32)(1383) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) | *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = *((IU8 *)&(r21) + REGBYTE); + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16250) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = (IS32)(8) ; + if (*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r21) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r22) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+6) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG))))) >> (32 - *((IU32 *)&(r21) + REGLONG)); + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+6) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+6) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+6) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)&(r22) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16251) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L26_43w_t; + case L26_44w_d_id : + L26_44w_d: ; + case L26_40if_d_id : + L26_40if_d: ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1372) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r2)) = *((IUH *)(LocalIUH+0)) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2111_DisabledRAMByteRead_id : + S_2111_DisabledRAMByteRead : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 8 > 0 ) LocalIUH = (IUH *)malloc ( 8 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2111) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2091if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2091if_f_id : + L13_2091if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = (IS32)(-1) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = (IS32)(-1) ; + *((IU8 *)&(r2) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2112_DisabledRAMWordRead_id : + S_2112_DisabledRAMWordRead : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 8 > 0 ) LocalIUH = (IUH *)malloc ( 8 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2112) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2092if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2092if_f_id : + L13_2092if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = (IS32)(-1) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = (IS32)(-1) ; + *((IU16 *)&(r2) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2113_DisabledRAMDwordRead_id : + S_2113_DisabledRAMDwordRead : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 8 > 0 ) LocalIUH = (IUH *)malloc ( 8 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2113) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2093if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2093if_f_id : + L13_2093if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = (IS32)(-1) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = (IS32)(-1) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2114_DisabledRAMStringReadFwd_id : + S_2114_DisabledRAMStringReadFwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2114) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2094if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2094if_f_id : + L13_2094if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L26_45if_f; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L26_48w_d; + case L26_47w_t_id : + L26_47w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) - *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(-1) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L26_47w_t; + case L26_48w_d_id : + L26_48w_d: ; + { extern IUH L26_46if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L26_46if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L26_45if_f_id : + L26_45if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L26_50w_d; + case L26_49w_t_id : + L26_49w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(-1) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L26_49w_t; + case L26_50w_d_id : + L26_50w_d: ; + case L26_46if_d_id : + L26_46if_d: ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = (IS32)(-1) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2115_SimpleByteRead_id : + S_2115_SimpleByteRead : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 8 > 0 ) LocalIUH = (IUH *)malloc ( 8 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2115) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2095if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2095if_f_id : + L13_2095if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1400) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IU8 *)&(r2) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2116_SimpleWordRead_id : + S_2116_SimpleWordRead : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 8 > 0 ) LocalIUH = (IUH *)malloc ( 8 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2116) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2096if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2096if_f_id : + L13_2096if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1400) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1400) ; + *(UOFF_15_8( (LocalIUH+1) )) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r21))) ) ; + *((IU16 *)&(r2) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2117_SimpleDwordRead_id : + S_2117_SimpleDwordRead : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 8 > 0 ) LocalIUH = (IUH *)malloc ( 8 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2117) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2097if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2097if_f_id : + L13_2097if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1400) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1400) ; + *(UOFF_15_8( (LocalIUH+1) )) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1400) ; + *((IUH *)&(r21)) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+1) + REGLONG) = (*((IU32 *)(LocalIUH+1) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1400) ; + *((IUH *)&(r20)) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+1) + REGLONG) = (*((IU32 *)(LocalIUH+1) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r21) + REGLONG)), (IUH)(*((IU32 *)&(r22) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r21) + REGLONG)) & mask((IUH)(*((IU32 *)&(r21) + REGLONG)), (IUH)(*((IU32 *)&(r22) + REGLONG)))) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid001.c b/private/mvdm/softpc.new/base/cvidc/sevid001.c new file mode 100644 index 000000000..fc84d9668 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid001.c @@ -0,0 +1,3498 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_2118_SimpleStringRead_id, +L13_2098if_f_id, +L26_53w_t_id, +L26_54w_d_id, +L26_51if_f_id, +L26_55w_t_id, +L26_56w_d_id, +L26_52if_d_id, +S_2119_RdMode0Chain2StringReadBwd_id, +L13_2099if_f_id, +L26_57if_f_id, +L26_58if_d_id, +L26_61w_t_id, +L26_62w_d_id, +L26_59if_f_id, +L26_63w_t_id, +L26_64w_d_id, +L26_60if_d_id, +S_2120_RdMode0Chain4StringReadBwd_id, +L13_2100if_f_id, +L26_67w_t_id, +L26_68w_d_id, +L26_65if_f_id, +L26_69w_t_id, +L26_70w_d_id, +L26_66if_d_id, +S_2121_RdMode0UnchainedStringReadBwd_id, +L13_2101if_f_id, +L26_73w_t_id, +L26_74w_d_id, +L26_71if_f_id, +L26_75w_t_id, +L26_76w_d_id, +L26_72if_d_id, +S_2122_RdMode1Chain2StringReadBwd_id, +L13_2102if_f_id, +L26_77if_f_id, +L26_78if_d_id, +L26_81w_t_id, +L26_82w_d_id, +L26_79if_f_id, +L26_83w_t_id, +L26_84w_d_id, +L26_80if_d_id, +S_2123_RdMode1Chain4StringReadBwd_id, +L13_2103if_f_id, +L26_87w_t_id, +L26_88w_d_id, +L26_85if_f_id, +L26_89w_t_id, +L26_90w_d_id, +L26_86if_d_id, +S_2124_RdMode1UnchainedStringReadBwd_id, +L13_2104if_f_id, +L26_93w_t_id, +L26_94w_d_id, +L26_91if_f_id, +L26_95w_t_id, +L26_96w_d_id, +L26_92if_d_id, +S_2125_DisabledRAMStringReadBwd_id, +L13_2105if_f_id, +L26_99w_t_id, +L26_100w_d_id, +L26_97if_f_id, +L26_101w_t_id, +L26_102w_d_id, +L26_98if_d_id, +S_2126_SimpleMark_id, +L13_2106if_f_id, +S_2127_CGAMarkByte_id, +L13_2107if_f_id, +L25_0if_f_id, +L25_1if_f_id, +S_2128_CGAMarkWord_id, +L13_2108if_f_id, +L25_2if_f_id, +L25_3if_f_id, +S_2129_CGAMarkDword_id, +L13_2109if_f_id, +L25_4if_f_id, +L25_5if_f_id, +S_2130_CGAMarkString_id, +L13_2110if_f_id, +L25_6if_f_id, +L25_7if_f_id, +S_2131_UnchainedMarkByte_id, +L13_2111if_f_id, +L25_8if_f_id, +L25_9if_f_id, +S_2132_UnchainedMarkWord_id, +L13_2112if_f_id, +L25_10if_f_id, +L25_11if_f_id, +S_2133_UnchainedMarkDword_id, +L13_2113if_f_id, +L25_12if_f_id, +L25_13if_f_id, +S_2134_UnchainedMarkString_id, +L13_2114if_f_id, +L25_14if_f_id, +L25_15if_f_id, +L25_16w_t_id, +L25_17w_d_id, +S_2135_Chain4MarkByte_id, +L13_2115if_f_id, +S_2136_Chain4MarkWord_id, +L13_2116if_f_id, +S_2137_Chain4MarkDword_id, +L13_2117if_f_id, +S_2138_Chain4MarkString_id, +L13_2118if_f_id, +S_2139_SimpleByteWrite_id, +L13_2119if_f_id, +S_2140_SimpleByteFill_id, +L13_2120if_f_id, +L27_0w_t_id, +L27_1w_d_id, +S_2141_SimpleByteMove_Fwd_id, +L13_2121if_f_id, +L27_4w_t_id, +L27_5w_d_id, +L27_2if_f_id, +L27_6w_t_id, +L27_7w_d_id, +L27_3if_d_id, +S_2142_SimpleWordWrite_id, +L13_2122if_f_id, +S_2143_SimpleWordFill_id, +L13_2123if_f_id, +L27_8w_t_id, +L27_9w_d_id, +S_2144_SimpleWordMove_Fwd_id, +L13_2124if_f_id, +L27_12w_t_id, +L27_13w_d_id, +L27_10if_f_id, +L27_14w_t_id, +L27_15w_d_id, +L27_11if_d_id, +S_2145_SimpleDwordWrite_id, +L13_2125if_f_id, +S_2146_SimpleDwordFill_id, +L13_2126if_f_id, +L27_16w_t_id, +L27_17w_d_id, +S_2147_SimpleDwordMove_Fwd_id, +L13_2127if_f_id, +L27_20w_t_id, +L27_21w_d_id, +L27_18if_f_id, +L27_22w_t_id, +L27_23w_d_id, +L27_19if_d_id, +S_2148_SimpleByteMove_Bwd_id, +L13_2128if_f_id, +L27_26w_t_id, +L27_27w_d_id, +L27_24if_f_id, +L27_28w_t_id, +L27_29w_d_id, +L27_25if_d_id, +S_2149_SimpleWordMove_Bwd_id, +L13_2129if_f_id, +L27_32w_t_id, +L27_33w_d_id, +L27_30if_f_id, +L27_34w_t_id, +L27_35w_d_id, +L27_31if_d_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_2118_SimpleStringRead IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2118_SimpleStringRead_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2118_SimpleStringRead = (IHPE)S_2118_SimpleStringRead ; +LOCAL IUH L13_2098if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2098if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2098if_f = (IHPE)L13_2098if_f ; +LOCAL IUH L26_53w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_53w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_53w_t = (IHPE)L26_53w_t ; +LOCAL IUH L26_54w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_54w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_54w_d = (IHPE)L26_54w_d ; +LOCAL IUH L26_51if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_51if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_51if_f = (IHPE)L26_51if_f ; +LOCAL IUH L26_55w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_55w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_55w_t = (IHPE)L26_55w_t ; +LOCAL IUH L26_56w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_56w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_56w_d = (IHPE)L26_56w_d ; +LOCAL IUH L26_52if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_52if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_52if_d = (IHPE)L26_52if_d ; +GLOBAL IUH S_2119_RdMode0Chain2StringReadBwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2119_RdMode0Chain2StringReadBwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2119_RdMode0Chain2StringReadBwd = (IHPE)S_2119_RdMode0Chain2StringReadBwd ; +LOCAL IUH L13_2099if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2099if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2099if_f = (IHPE)L13_2099if_f ; +LOCAL IUH L26_57if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_57if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_57if_f = (IHPE)L26_57if_f ; +LOCAL IUH L26_58if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_58if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_58if_d = (IHPE)L26_58if_d ; +LOCAL IUH L26_61w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_61w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_61w_t = (IHPE)L26_61w_t ; +LOCAL IUH L26_62w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_62w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_62w_d = (IHPE)L26_62w_d ; +LOCAL IUH L26_59if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_59if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_59if_f = (IHPE)L26_59if_f ; +LOCAL IUH L26_63w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_63w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_63w_t = (IHPE)L26_63w_t ; +LOCAL IUH L26_64w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_64w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_64w_d = (IHPE)L26_64w_d ; +LOCAL IUH L26_60if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_60if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_60if_d = (IHPE)L26_60if_d ; +GLOBAL IUH S_2120_RdMode0Chain4StringReadBwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2120_RdMode0Chain4StringReadBwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2120_RdMode0Chain4StringReadBwd = (IHPE)S_2120_RdMode0Chain4StringReadBwd ; +LOCAL IUH L13_2100if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2100if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2100if_f = (IHPE)L13_2100if_f ; +LOCAL IUH L26_67w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_67w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_67w_t = (IHPE)L26_67w_t ; +LOCAL IUH L26_68w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_68w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_68w_d = (IHPE)L26_68w_d ; +LOCAL IUH L26_65if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_65if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_65if_f = (IHPE)L26_65if_f ; +LOCAL IUH L26_69w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_69w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_69w_t = (IHPE)L26_69w_t ; +LOCAL IUH L26_70w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_70w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_70w_d = (IHPE)L26_70w_d ; +LOCAL IUH L26_66if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_66if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_66if_d = (IHPE)L26_66if_d ; +GLOBAL IUH S_2121_RdMode0UnchainedStringReadBwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2121_RdMode0UnchainedStringReadBwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2121_RdMode0UnchainedStringReadBwd = (IHPE)S_2121_RdMode0UnchainedStringReadBwd ; +LOCAL IUH L13_2101if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2101if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2101if_f = (IHPE)L13_2101if_f ; +LOCAL IUH L26_73w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_73w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_73w_t = (IHPE)L26_73w_t ; +LOCAL IUH L26_74w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_74w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_74w_d = (IHPE)L26_74w_d ; +LOCAL IUH L26_71if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_71if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_71if_f = (IHPE)L26_71if_f ; +LOCAL IUH L26_75w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_75w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_75w_t = (IHPE)L26_75w_t ; +LOCAL IUH L26_76w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_76w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_76w_d = (IHPE)L26_76w_d ; +LOCAL IUH L26_72if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_72if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_72if_d = (IHPE)L26_72if_d ; +GLOBAL IUH S_2122_RdMode1Chain2StringReadBwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2122_RdMode1Chain2StringReadBwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2122_RdMode1Chain2StringReadBwd = (IHPE)S_2122_RdMode1Chain2StringReadBwd ; +LOCAL IUH L13_2102if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2102if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2102if_f = (IHPE)L13_2102if_f ; +LOCAL IUH L26_77if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_77if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_77if_f = (IHPE)L26_77if_f ; +LOCAL IUH L26_78if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_78if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_78if_d = (IHPE)L26_78if_d ; +LOCAL IUH L26_81w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_81w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_81w_t = (IHPE)L26_81w_t ; +LOCAL IUH L26_82w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_82w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_82w_d = (IHPE)L26_82w_d ; +LOCAL IUH L26_79if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_79if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_79if_f = (IHPE)L26_79if_f ; +LOCAL IUH L26_83w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_83w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_83w_t = (IHPE)L26_83w_t ; +LOCAL IUH L26_84w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_84w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_84w_d = (IHPE)L26_84w_d ; +LOCAL IUH L26_80if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_80if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_80if_d = (IHPE)L26_80if_d ; +GLOBAL IUH S_2123_RdMode1Chain4StringReadBwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2123_RdMode1Chain4StringReadBwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2123_RdMode1Chain4StringReadBwd = (IHPE)S_2123_RdMode1Chain4StringReadBwd ; +LOCAL IUH L13_2103if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2103if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2103if_f = (IHPE)L13_2103if_f ; +LOCAL IUH L26_87w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_87w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_87w_t = (IHPE)L26_87w_t ; +LOCAL IUH L26_88w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_88w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_88w_d = (IHPE)L26_88w_d ; +LOCAL IUH L26_85if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_85if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_85if_f = (IHPE)L26_85if_f ; +LOCAL IUH L26_89w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_89w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_89w_t = (IHPE)L26_89w_t ; +LOCAL IUH L26_90w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_90w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_90w_d = (IHPE)L26_90w_d ; +LOCAL IUH L26_86if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_86if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_86if_d = (IHPE)L26_86if_d ; +GLOBAL IUH S_2124_RdMode1UnchainedStringReadBwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2124_RdMode1UnchainedStringReadBwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2124_RdMode1UnchainedStringReadBwd = (IHPE)S_2124_RdMode1UnchainedStringReadBwd ; +LOCAL IUH L13_2104if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2104if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2104if_f = (IHPE)L13_2104if_f ; +LOCAL IUH L26_93w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_93w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_93w_t = (IHPE)L26_93w_t ; +LOCAL IUH L26_94w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_94w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_94w_d = (IHPE)L26_94w_d ; +LOCAL IUH L26_91if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_91if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_91if_f = (IHPE)L26_91if_f ; +LOCAL IUH L26_95w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_95w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_95w_t = (IHPE)L26_95w_t ; +LOCAL IUH L26_96w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_96w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_96w_d = (IHPE)L26_96w_d ; +LOCAL IUH L26_92if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_92if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_92if_d = (IHPE)L26_92if_d ; +GLOBAL IUH S_2125_DisabledRAMStringReadBwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2125_DisabledRAMStringReadBwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2125_DisabledRAMStringReadBwd = (IHPE)S_2125_DisabledRAMStringReadBwd ; +LOCAL IUH L13_2105if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2105if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2105if_f = (IHPE)L13_2105if_f ; +LOCAL IUH L26_99w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_99w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_99w_t = (IHPE)L26_99w_t ; +LOCAL IUH L26_100w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_100w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_100w_d = (IHPE)L26_100w_d ; +LOCAL IUH L26_97if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_97if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_97if_f = (IHPE)L26_97if_f ; +LOCAL IUH L26_101w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_101w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_101w_t = (IHPE)L26_101w_t ; +LOCAL IUH L26_102w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_102w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_102w_d = (IHPE)L26_102w_d ; +LOCAL IUH L26_98if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L26_98if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L26_98if_d = (IHPE)L26_98if_d ; +GLOBAL IUH S_2126_SimpleMark IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2126_SimpleMark_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2126_SimpleMark = (IHPE)S_2126_SimpleMark ; +LOCAL IUH L13_2106if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2106if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2106if_f = (IHPE)L13_2106if_f ; +GLOBAL IUH S_2127_CGAMarkByte IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2127_CGAMarkByte_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2127_CGAMarkByte = (IHPE)S_2127_CGAMarkByte ; +LOCAL IUH L13_2107if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2107if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2107if_f = (IHPE)L13_2107if_f ; +LOCAL IUH L25_0if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_0if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_0if_f = (IHPE)L25_0if_f ; +LOCAL IUH L25_1if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_1if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_1if_f = (IHPE)L25_1if_f ; +GLOBAL IUH S_2128_CGAMarkWord IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2128_CGAMarkWord_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2128_CGAMarkWord = (IHPE)S_2128_CGAMarkWord ; +LOCAL IUH L13_2108if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2108if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2108if_f = (IHPE)L13_2108if_f ; +LOCAL IUH L25_2if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_2if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_2if_f = (IHPE)L25_2if_f ; +LOCAL IUH L25_3if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_3if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_3if_f = (IHPE)L25_3if_f ; +GLOBAL IUH S_2129_CGAMarkDword IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2129_CGAMarkDword_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2129_CGAMarkDword = (IHPE)S_2129_CGAMarkDword ; +LOCAL IUH L13_2109if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2109if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2109if_f = (IHPE)L13_2109if_f ; +LOCAL IUH L25_4if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_4if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_4if_f = (IHPE)L25_4if_f ; +LOCAL IUH L25_5if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_5if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_5if_f = (IHPE)L25_5if_f ; +GLOBAL IUH S_2130_CGAMarkString IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2130_CGAMarkString_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2130_CGAMarkString = (IHPE)S_2130_CGAMarkString ; +LOCAL IUH L13_2110if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2110if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2110if_f = (IHPE)L13_2110if_f ; +LOCAL IUH L25_6if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_6if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_6if_f = (IHPE)L25_6if_f ; +LOCAL IUH L25_7if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_7if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_7if_f = (IHPE)L25_7if_f ; +GLOBAL IUH S_2131_UnchainedMarkByte IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2131_UnchainedMarkByte_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2131_UnchainedMarkByte = (IHPE)S_2131_UnchainedMarkByte ; +LOCAL IUH L13_2111if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2111if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2111if_f = (IHPE)L13_2111if_f ; +LOCAL IUH L25_8if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_8if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_8if_f = (IHPE)L25_8if_f ; +LOCAL IUH L25_9if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_9if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_9if_f = (IHPE)L25_9if_f ; +GLOBAL IUH S_2132_UnchainedMarkWord IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2132_UnchainedMarkWord_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2132_UnchainedMarkWord = (IHPE)S_2132_UnchainedMarkWord ; +LOCAL IUH L13_2112if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2112if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2112if_f = (IHPE)L13_2112if_f ; +LOCAL IUH L25_10if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_10if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_10if_f = (IHPE)L25_10if_f ; +LOCAL IUH L25_11if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_11if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_11if_f = (IHPE)L25_11if_f ; +GLOBAL IUH S_2133_UnchainedMarkDword IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2133_UnchainedMarkDword_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2133_UnchainedMarkDword = (IHPE)S_2133_UnchainedMarkDword ; +LOCAL IUH L13_2113if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2113if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2113if_f = (IHPE)L13_2113if_f ; +LOCAL IUH L25_12if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_12if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_12if_f = (IHPE)L25_12if_f ; +LOCAL IUH L25_13if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_13if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_13if_f = (IHPE)L25_13if_f ; +GLOBAL IUH S_2134_UnchainedMarkString IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2134_UnchainedMarkString_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2134_UnchainedMarkString = (IHPE)S_2134_UnchainedMarkString ; +LOCAL IUH L13_2114if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2114if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2114if_f = (IHPE)L13_2114if_f ; +LOCAL IUH L25_14if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_14if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_14if_f = (IHPE)L25_14if_f ; +LOCAL IUH L25_15if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_15if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_15if_f = (IHPE)L25_15if_f ; +LOCAL IUH L25_16w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_16w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_16w_t = (IHPE)L25_16w_t ; +LOCAL IUH L25_17w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_17w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_17w_d = (IHPE)L25_17w_d ; +GLOBAL IUH S_2135_Chain4MarkByte IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2135_Chain4MarkByte_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2135_Chain4MarkByte = (IHPE)S_2135_Chain4MarkByte ; +LOCAL IUH L13_2115if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2115if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2115if_f = (IHPE)L13_2115if_f ; +GLOBAL IUH S_2136_Chain4MarkWord IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2136_Chain4MarkWord_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2136_Chain4MarkWord = (IHPE)S_2136_Chain4MarkWord ; +LOCAL IUH L13_2116if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2116if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2116if_f = (IHPE)L13_2116if_f ; +GLOBAL IUH S_2137_Chain4MarkDword IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2137_Chain4MarkDword_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2137_Chain4MarkDword = (IHPE)S_2137_Chain4MarkDword ; +LOCAL IUH L13_2117if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2117if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2117if_f = (IHPE)L13_2117if_f ; +GLOBAL IUH S_2138_Chain4MarkString IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2138_Chain4MarkString_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2138_Chain4MarkString = (IHPE)S_2138_Chain4MarkString ; +LOCAL IUH L13_2118if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2118if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2118if_f = (IHPE)L13_2118if_f ; +GLOBAL IUH S_2139_SimpleByteWrite IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2139_SimpleByteWrite_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2139_SimpleByteWrite = (IHPE)S_2139_SimpleByteWrite ; +LOCAL IUH L13_2119if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2119if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2119if_f = (IHPE)L13_2119if_f ; +GLOBAL IUH S_2140_SimpleByteFill IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2140_SimpleByteFill_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2140_SimpleByteFill = (IHPE)S_2140_SimpleByteFill ; +LOCAL IUH L13_2120if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2120if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2120if_f = (IHPE)L13_2120if_f ; +LOCAL IUH L27_0w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_0w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_0w_t = (IHPE)L27_0w_t ; +LOCAL IUH L27_1w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_1w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_1w_d = (IHPE)L27_1w_d ; +GLOBAL IUH S_2141_SimpleByteMove_Fwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2141_SimpleByteMove_Fwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2141_SimpleByteMove_Fwd = (IHPE)S_2141_SimpleByteMove_Fwd ; +LOCAL IUH L13_2121if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2121if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2121if_f = (IHPE)L13_2121if_f ; +LOCAL IUH L27_4w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_4w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_4w_t = (IHPE)L27_4w_t ; +LOCAL IUH L27_5w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_5w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_5w_d = (IHPE)L27_5w_d ; +LOCAL IUH L27_2if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_2if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_2if_f = (IHPE)L27_2if_f ; +LOCAL IUH L27_6w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_6w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_6w_t = (IHPE)L27_6w_t ; +LOCAL IUH L27_7w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_7w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_7w_d = (IHPE)L27_7w_d ; +LOCAL IUH L27_3if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_3if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_3if_d = (IHPE)L27_3if_d ; +GLOBAL IUH S_2142_SimpleWordWrite IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2142_SimpleWordWrite_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2142_SimpleWordWrite = (IHPE)S_2142_SimpleWordWrite ; +LOCAL IUH L13_2122if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2122if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2122if_f = (IHPE)L13_2122if_f ; +GLOBAL IUH S_2143_SimpleWordFill IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2143_SimpleWordFill_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2143_SimpleWordFill = (IHPE)S_2143_SimpleWordFill ; +LOCAL IUH L13_2123if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2123if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2123if_f = (IHPE)L13_2123if_f ; +LOCAL IUH L27_8w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_8w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_8w_t = (IHPE)L27_8w_t ; +LOCAL IUH L27_9w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_9w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_9w_d = (IHPE)L27_9w_d ; +GLOBAL IUH S_2144_SimpleWordMove_Fwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2144_SimpleWordMove_Fwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2144_SimpleWordMove_Fwd = (IHPE)S_2144_SimpleWordMove_Fwd ; +LOCAL IUH L13_2124if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2124if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2124if_f = (IHPE)L13_2124if_f ; +LOCAL IUH L27_12w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_12w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_12w_t = (IHPE)L27_12w_t ; +LOCAL IUH L27_13w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_13w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_13w_d = (IHPE)L27_13w_d ; +LOCAL IUH L27_10if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_10if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_10if_f = (IHPE)L27_10if_f ; +LOCAL IUH L27_14w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_14w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_14w_t = (IHPE)L27_14w_t ; +LOCAL IUH L27_15w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_15w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_15w_d = (IHPE)L27_15w_d ; +LOCAL IUH L27_11if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_11if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_11if_d = (IHPE)L27_11if_d ; +GLOBAL IUH S_2145_SimpleDwordWrite IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2145_SimpleDwordWrite_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2145_SimpleDwordWrite = (IHPE)S_2145_SimpleDwordWrite ; +LOCAL IUH L13_2125if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2125if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2125if_f = (IHPE)L13_2125if_f ; +GLOBAL IUH S_2146_SimpleDwordFill IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2146_SimpleDwordFill_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2146_SimpleDwordFill = (IHPE)S_2146_SimpleDwordFill ; +LOCAL IUH L13_2126if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2126if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2126if_f = (IHPE)L13_2126if_f ; +LOCAL IUH L27_16w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_16w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_16w_t = (IHPE)L27_16w_t ; +LOCAL IUH L27_17w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_17w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_17w_d = (IHPE)L27_17w_d ; +GLOBAL IUH S_2147_SimpleDwordMove_Fwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2147_SimpleDwordMove_Fwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2147_SimpleDwordMove_Fwd = (IHPE)S_2147_SimpleDwordMove_Fwd ; +LOCAL IUH L13_2127if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2127if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2127if_f = (IHPE)L13_2127if_f ; +LOCAL IUH L27_20w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_20w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_20w_t = (IHPE)L27_20w_t ; +LOCAL IUH L27_21w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_21w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_21w_d = (IHPE)L27_21w_d ; +LOCAL IUH L27_18if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_18if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_18if_f = (IHPE)L27_18if_f ; +LOCAL IUH L27_22w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_22w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_22w_t = (IHPE)L27_22w_t ; +LOCAL IUH L27_23w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_23w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_23w_d = (IHPE)L27_23w_d ; +LOCAL IUH L27_19if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_19if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_19if_d = (IHPE)L27_19if_d ; +GLOBAL IUH S_2148_SimpleByteMove_Bwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2148_SimpleByteMove_Bwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2148_SimpleByteMove_Bwd = (IHPE)S_2148_SimpleByteMove_Bwd ; +LOCAL IUH L13_2128if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2128if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2128if_f = (IHPE)L13_2128if_f ; +LOCAL IUH L27_26w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_26w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_26w_t = (IHPE)L27_26w_t ; +LOCAL IUH L27_27w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_27w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_27w_d = (IHPE)L27_27w_d ; +LOCAL IUH L27_24if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_24if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_24if_f = (IHPE)L27_24if_f ; +LOCAL IUH L27_28w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_28w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_28w_t = (IHPE)L27_28w_t ; +LOCAL IUH L27_29w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_29w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_29w_d = (IHPE)L27_29w_d ; +LOCAL IUH L27_25if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_25if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_25if_d = (IHPE)L27_25if_d ; +GLOBAL IUH S_2149_SimpleWordMove_Bwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2149_SimpleWordMove_Bwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2149_SimpleWordMove_Bwd = (IHPE)S_2149_SimpleWordMove_Bwd ; +LOCAL IUH L13_2129if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2129if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2129if_f = (IHPE)L13_2129if_f ; +LOCAL IUH L27_32w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_32w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_32w_t = (IHPE)L27_32w_t ; +LOCAL IUH L27_33w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_33w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_33w_d = (IHPE)L27_33w_d ; +LOCAL IUH L27_30if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_30if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_30if_f = (IHPE)L27_30if_f ; +LOCAL IUH L27_34w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_34w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_34w_t = (IHPE)L27_34w_t ; +LOCAL IUH L27_35w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_35w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_35w_d = (IHPE)L27_35w_d ; +LOCAL IUH L27_31if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_31if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_31if_d = (IHPE)L27_31if_d ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2118_SimpleStringRead_id : + S_2118_SimpleStringRead : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2118) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2098if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2098if_f_id : + L13_2098if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L26_51if_f; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L26_54w_d; + case L26_53w_t_id : + L26_53w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) - *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r23)) = (IS32)(1400) ; + *((IUH *)&(r24)) = *((IUH *)(LocalIUH+4)) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23)))) ) + *((IHPE *)&(r24))) ) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L26_53w_t; + case L26_54w_d_id : + L26_54w_d: ; + { extern IUH L26_52if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L26_52if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L26_51if_f_id : + L26_51if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L26_56w_d; + case L26_55w_t_id : + L26_55w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IUH *)&(r23)) = (IS32)(1400) ; + *((IUH *)&(r24)) = *((IUH *)(LocalIUH+4)) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23)))) ) + *((IHPE *)&(r24))) ) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L26_55w_t; + case L26_56w_d_id : + L26_56w_d: ; + case L26_52if_d_id : + L26_52if_d: ; + *((IUH *)&(r2)) = *((IUH *)(LocalIUH+0)) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2119_RdMode0Chain2StringReadBwd_id : + S_2119_RdMode0Chain2StringReadBwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 28 > 0 ) LocalIUH = (IUH *)malloc ( 28 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2119) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2099if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2099if_f_id : + L13_2099if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+1) + REGLONG) & (1 << *((IU32 *)&(r21) + REGLONG))) == 0) goto L26_57if_f; + *((IUH *)(LocalIUH+4)) = (IS32)(1) ; + { extern IUH L26_58if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L26_58if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L26_57if_f_id : + L26_57if_f: ; + *((IUH *)(LocalIUH+4)) = (IS32)(3) ; + case L26_58if_d_id : + L26_58if_d: ; + *((IUH *)&(r20)) = (IS32)(1372) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L26_59if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L26_62w_d; + case L26_61w_t_id : + L26_61w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+5)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22)))) ) + *((IHPE *)&(r23))) ) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)(LocalIUH+4)) = *((IUH *)(LocalIUH+4)) ^ *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L26_61w_t; + case L26_62w_d_id : + L26_62w_d: ; + { extern IUH L26_60if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L26_60if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L26_59if_f_id : + L26_59if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L26_64w_d; + case L26_63w_t_id : + L26_63w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) - *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+5)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22)))) ) + *((IHPE *)&(r23))) ) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)(LocalIUH+4)) = *((IUH *)(LocalIUH+4)) ^ *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L26_63w_t; + case L26_64w_d_id : + L26_64w_d: ; + case L26_60if_d_id : + L26_60if_d: ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(-4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r2)) = *((IUH *)(LocalIUH+0)) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2120_RdMode0Chain4StringReadBwd_id : + S_2120_RdMode0Chain4StringReadBwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2120) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2100if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2100if_f_id : + L13_2100if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1372) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L26_65if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L26_68w_d; + case L26_67w_t_id : + L26_67w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+4)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L26_67w_t; + case L26_68w_d_id : + L26_68w_d: ; + { extern IUH L26_66if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L26_66if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L26_65if_f_id : + L26_65if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L26_70w_d; + case L26_69w_t_id : + L26_69w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) - *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+4)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L26_69w_t; + case L26_70w_d_id : + L26_70w_d: ; + case L26_66if_d_id : + L26_66if_d: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(-4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r2)) = *((IUH *)(LocalIUH+0)) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2121_RdMode0UnchainedStringReadBwd_id : + S_2121_RdMode0UnchainedStringReadBwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2121) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2101if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2101if_f_id : + L13_2101if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1372) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L26_71if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L26_74w_d; + case L26_73w_t_id : + L26_73w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+4)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L26_73w_t; + case L26_74w_d_id : + L26_74w_d: ; + { extern IUH L26_72if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L26_72if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L26_71if_f_id : + L26_71if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L26_76w_d; + case L26_75w_t_id : + L26_75w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) - *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+4)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L26_75w_t; + case L26_76w_d_id : + L26_76w_d: ; + case L26_72if_d_id : + L26_72if_d: ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1372) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r2)) = *((IUH *)(LocalIUH+0)) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2122_RdMode1Chain2StringReadBwd_id : + S_2122_RdMode1Chain2StringReadBwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 32 > 0 ) LocalIUH = (IUH *)malloc ( 32 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2122) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2102if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2102if_f_id : + L13_2102if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+1) + REGLONG) & (1 << *((IU32 *)&(r21) + REGLONG))) == 0) goto L26_77if_f; + *((IUH *)(LocalIUH+4)) = (IS32)(1) ; + { extern IUH L26_78if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L26_78if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L26_77if_f_id : + L26_77if_f: ; + *((IUH *)(LocalIUH+4)) = (IS32)(3) ; + case L26_78if_d_id : + L26_78if_d: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r22)) = (IS32)(31) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1372) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L26_79if_f; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L26_82w_d; + case L26_81w_t_id : + L26_81w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16230) ; + *((IUH *)&(r20)) = (IS32)(1379) ; + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+5)) ; + *((IU8 *)&(r22) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r20)) = (IS32)(1383) ; + *((IU8 *)&(r22) + REGBYTE) = *((IU8 *)&(r22) + REGBYTE) | *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)&(r22) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16231) ; + *((IUH *)(r1+0)) = (IS32)(16230) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1379) ; + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r22)) = (IS32)(1383) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) | *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU8 *)(LocalIUH+7) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16231) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)&(r22) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) & *((IU8 *)(LocalIUH+7) + REGBYTE); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)&(r22) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)(LocalIUH+4)) = *((IUH *)(LocalIUH+4)) ^ *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L26_81w_t; + case L26_82w_d_id : + L26_82w_d: ; + { extern IUH L26_80if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L26_80if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L26_79if_f_id : + L26_79if_f: ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L26_84w_d; + case L26_83w_t_id : + L26_83w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16230) ; + *((IUH *)&(r20)) = (IS32)(1379) ; + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+5)) ; + *((IU8 *)&(r22) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r20)) = (IS32)(1383) ; + *((IU8 *)&(r22) + REGBYTE) = *((IU8 *)&(r22) + REGBYTE) | *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)&(r22) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16231) ; + *((IUH *)(r1+0)) = (IS32)(16230) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1379) ; + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r22)) = (IS32)(1383) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) | *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU8 *)(LocalIUH+7) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16231) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)&(r22) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) & *((IU8 *)(LocalIUH+7) + REGBYTE); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)&(r22) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)(LocalIUH+4)) = *((IUH *)(LocalIUH+4)) ^ *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L26_83w_t; + case L26_84w_d_id : + L26_84w_d: ; + case L26_80if_d_id : + L26_80if_d: ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(-4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r2)) = *((IUH *)(LocalIUH+0)) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2123_RdMode1Chain4StringReadBwd_id : + S_2123_RdMode1Chain4StringReadBwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2123) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2103if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2103if_f_id : + L13_2103if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L26_85if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+0)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L26_88w_d; + case L26_87w_t_id : + L26_87w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1379) ; + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+5)) ; + *((IU8 *)&(r22) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(1383) ; + *((IU8 *)&(r22) + REGBYTE) = *((IU8 *)&(r22) + REGBYTE) | *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)&(r22) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L26_87w_t; + case L26_88w_d_id : + L26_88w_d: ; + { extern IUH L26_86if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L26_86if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L26_85if_f_id : + L26_85if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L26_90w_d; + case L26_89w_t_id : + L26_89w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1379) ; + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+5)) ; + *((IU8 *)&(r22) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r20)) = (IS32)(1383) ; + *((IU8 *)&(r22) + REGBYTE) = *((IU8 *)&(r22) + REGBYTE) | *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) - *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)&(r22) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L26_89w_t; + case L26_90w_d_id : + L26_90w_d: ; + case L26_86if_d_id : + L26_86if_d: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(-4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r2)) = *((IUH *)(LocalIUH+0)) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2124_RdMode1UnchainedStringReadBwd_id : + S_2124_RdMode1UnchainedStringReadBwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 36 > 0 ) LocalIUH = (IUH *)malloc ( 36 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2124) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2104if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2104if_f_id : + L13_2104if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1372) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L26_91if_f; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L26_94w_d; + case L26_93w_t_id : + L26_93w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1379) ; + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+4)) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r22)) = (IS32)(1383) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) | *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = *((IU8 *)&(r21) + REGBYTE); + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16250) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = (IS32)(8) ; + if (*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r21) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r22) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+6) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG))))) >> (32 - *((IU32 *)&(r21) + REGLONG)); + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+6) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+6) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(24) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+7) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+6) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+7) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)&(r22) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16251) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L26_93w_t; + case L26_94w_d_id : + L26_94w_d: ; + { extern IUH L26_92if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L26_92if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L26_91if_f_id : + L26_91if_f: ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L26_96w_d; + case L26_95w_t_id : + L26_95w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1379) ; + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+4)) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r22)) = (IS32)(1383) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) | *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = *((IU8 *)&(r21) + REGBYTE); + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16250) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = (IS32)(8) ; + if (*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r21) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r22) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+6) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG))))) >> (32 - *((IU32 *)&(r21) + REGLONG)); + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+6) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+6) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+6) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)&(r22) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16251) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L26_95w_t; + case L26_96w_d_id : + L26_96w_d: ; + case L26_92if_d_id : + L26_92if_d: ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1372) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r2)) = *((IUH *)(LocalIUH+0)) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2125_DisabledRAMStringReadBwd_id : + S_2125_DisabledRAMStringReadBwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2125) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2105if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2105if_f_id : + L13_2105if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L26_97if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+0)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L26_100w_d; + case L26_99w_t_id : + L26_99w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = (IS32)(-1) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L26_99w_t; + case L26_100w_d_id : + L26_100w_d: ; + { extern IUH L26_98if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L26_98if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L26_97if_f_id : + L26_97if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L26_102w_d; + case L26_101w_t_id : + L26_101w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) - *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = (IS32)(-1) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L26_101w_t; + case L26_102w_d_id : + L26_102w_d: ; + case L26_98if_d_id : + L26_98if_d: ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = (IS32)(-1) ; + *((IUH *)&(r2)) = *((IUH *)(LocalIUH+0)) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004281), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2126_SimpleMark_id : + S_2126_SimpleMark : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2126) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2106if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2106if_f_id : + L13_2106if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IUH *)&(r20)) = (IS32)(1340) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IU32 *)&(r21) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2127_CGAMarkByte_id : + S_2127_CGAMarkByte : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2127) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2107if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2107if_f_id : + L13_2107if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_0if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_0if_f_id : + L25_0if_f: ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1348) ; + if (*((IS32 *)&(r21) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_1if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)&(r21) + REGLONG) ; + case L25_1if_f_id : + L25_1if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2128_CGAMarkWord_id : + S_2128_CGAMarkWord : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2128) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2108if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2108if_f_id : + L13_2108if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_2if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_2if_f_id : + L25_2if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1348) ; + if (*((IS32 *)&(r21) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_3if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)&(r21) + REGLONG) ; + case L25_3if_f_id : + L25_3if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2129_CGAMarkDword_id : + S_2129_CGAMarkDword : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2129) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2109if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2109if_f_id : + L13_2109if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_4if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_4if_f_id : + L25_4if_f: ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1348) ; + if (*((IS32 *)&(r21) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_5if_f; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)&(r21) + REGLONG) ; + case L25_5if_f_id : + L25_5if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2130_CGAMarkString_id : + S_2130_CGAMarkString : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 8 > 0 ) LocalIUH = (IUH *)malloc ( 8 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2130) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2110if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2110if_f_id : + L13_2110if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_6if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_6if_f_id : + L25_6if_f: ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(57343) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1348) ; + if (*((IS32 *)&(r20) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_7if_f; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)&(r21) + REGLONG) ; + case L25_7if_f_id : + L25_7if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2131_UnchainedMarkByte_id : + S_2131_UnchainedMarkByte : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 8 > 0 ) LocalIUH = (IUH *)malloc ( 8 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2131) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2111if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2111if_f_id : + L13_2111if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1340) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1384) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16306) ; + *((IUH *)&(r20)) = (IS32)(1344) ; + if (*((IS32 *)(LocalIUH+1) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )) goto L25_8if_f; + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + case L25_8if_f_id : + L25_8if_f: ; + *((IUH *)&(r20)) = (IS32)(1348) ; + if (*((IS32 *)(LocalIUH+1) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )) goto L25_9if_f; + *((IUH *)&(r21)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + case L25_9if_f_id : + L25_9if_f: ; + *((IUH *)(r1+0)) = (IS32)(16307) ; + *((IUH *)&(r20)) = (IS32)(1352) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r21))) ) = (IS32)(1) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2132_UnchainedMarkWord_id : + S_2132_UnchainedMarkWord : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2132) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2112if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2112if_f_id : + L13_2112if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) >> *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1384) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1384) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16306) ; + *((IUH *)&(r21)) = (IS32)(1344) ; + if (*((IS32 *)(LocalIUH+2) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )) goto L25_10if_f; + *((IUH *)&(r20)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + case L25_10if_f_id : + L25_10if_f: ; + *((IUH *)&(r21)) = (IS32)(1348) ; + if (*((IS32 *)(LocalIUH+1) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )) goto L25_11if_f; + *((IUH *)&(r20)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + case L25_11if_f_id : + L25_11if_f: ; + *((IUH *)(r1+0)) = (IS32)(16307) ; + *((IUH *)&(r21)) = (IS32)(1352) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+2)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = (IS32)(1) ; + *((IUH *)&(r20)) = (IS32)(1352) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r21))) ) = (IS32)(1) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2133_UnchainedMarkDword_id : + S_2133_UnchainedMarkDword : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2133) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2113if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2113if_f_id : + L13_2113if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) >> *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1384) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1384) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16306) ; + *((IUH *)&(r21)) = (IS32)(1344) ; + if (*((IS32 *)(LocalIUH+2) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )) goto L25_12if_f; + *((IUH *)&(r20)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + case L25_12if_f_id : + L25_12if_f: ; + *((IUH *)&(r21)) = (IS32)(1348) ; + if (*((IS32 *)(LocalIUH+1) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )) goto L25_13if_f; + *((IUH *)&(r20)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + case L25_13if_f_id : + L25_13if_f: ; + *((IUH *)(r1+0)) = (IS32)(16307) ; + *((IUH *)&(r21)) = (IS32)(1352) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+2)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = (IS32)(1) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1352) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = (IS32)(1) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1352) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = (IS32)(1) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1352) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r21))) ) = (IS32)(1) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2134_UnchainedMarkString_id : + S_2134_UnchainedMarkString : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2134) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2114if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2114if_f_id : + L13_2114if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) >> *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1384) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1384) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16306) ; + *((IUH *)&(r21)) = (IS32)(1344) ; + if (*((IS32 *)(LocalIUH+3) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )) goto L25_14if_f; + *((IUH *)&(r20)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + case L25_14if_f_id : + L25_14if_f: ; + *((IUH *)&(r21)) = (IS32)(1348) ; + if (*((IS32 *)(LocalIUH+2) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )) goto L25_15if_f; + *((IUH *)&(r20)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + case L25_15if_f_id : + L25_15if_f: ; + *((IUH *)(r1+0)) = (IS32)(16307) ; + if (*((IS32 *)(LocalIUH+2) + REGLONG) < *((IS32 *)(LocalIUH+3) + REGLONG)) goto L25_17w_d; + case L25_16w_t_id : + L25_16w_t: ; + *((IUH *)&(r21)) = (IS32)(1352) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+2)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = (IS32)(1) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + if (*((IS32 *)(LocalIUH+2) + REGLONG) >= *((IS32 *)(LocalIUH+3) + REGLONG)) goto L25_16w_t; + case L25_17w_d_id : + L25_17w_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2135_Chain4MarkByte_id : + S_2135_Chain4MarkByte : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 8 > 0 ) LocalIUH = (IUH *)malloc ( 8 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2135) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2115if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2115if_f_id : + L13_2115if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16316) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2131_UnchainedMarkByte() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2131_UnchainedMarkByte(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16317) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2136_Chain4MarkWord_id : + S_2136_Chain4MarkWord : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 8 > 0 ) LocalIUH = (IUH *)malloc ( 8 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2136) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2116if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2116if_f_id : + L13_2116if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16320) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2132_UnchainedMarkWord() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2132_UnchainedMarkWord(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16321) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2137_Chain4MarkDword_id : + S_2137_Chain4MarkDword : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 8 > 0 ) LocalIUH = (IUH *)malloc ( 8 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2137) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2117if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2117if_f_id : + L13_2117if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16324) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2133_UnchainedMarkDword() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2133_UnchainedMarkDword(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16325) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2138_Chain4MarkString_id : + S_2138_Chain4MarkString : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2138) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2118if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2118if_f_id : + L13_2118if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16328) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2134_UnchainedMarkString() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2134_UnchainedMarkString(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16329) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2139_SimpleByteWrite_id : + S_2139_SimpleByteWrite : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 8 > 0 ) LocalIUH = (IUH *)malloc ( 8 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2139) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2119if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2119if_f_id : + L13_2119if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1400) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2140_SimpleByteFill_id : + S_2140_SimpleByteFill : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2140) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2120if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2120if_f_id : + L13_2120if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1400) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+4)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L27_1w_d; + case L27_0w_t_id : + L27_0w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+4)) = *((IUH *)(LocalIUH+4)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+4)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L27_0w_t; + case L27_1w_d_id : + L27_1w_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2141_SimpleByteMove_Fwd_id : + S_2141_SimpleByteMove_Fwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 28 > 0 ) LocalIUH = (IUH *)malloc ( 28 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2141) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2121if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2121if_f_id : + L13_2121if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1400) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L27_2if_f; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L27_5w_d; + case L27_4w_t_id : + L27_4w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+5)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r24)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)((*((IHPE *)&(r23))) + *((IHPE *)&(r24))) ) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L27_4w_t; + case L27_5w_d_id : + L27_5w_d: ; + { extern IUH L27_3if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L27_3if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L27_2if_f_id : + L27_2if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L27_7w_d; + case L27_6w_t_id : + L27_6w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+5)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IUH *)&(r23)) = (IS32)(1400) ; + *((IUH *)&(r24)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23)))) ) + *((IHPE *)&(r24))) ) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L27_6w_t; + case L27_7w_d_id : + L27_7w_d: ; + case L27_3if_d_id : + L27_3if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2142_SimpleWordWrite_id : + S_2142_SimpleWordWrite : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 8 > 0 ) LocalIUH = (IUH *)malloc ( 8 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2142) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2122if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2122if_f_id : + L13_2122if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IUH *)&(r20)) = (IS32)(1340) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1400) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1400) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r21))) ) = *(UOFF_15_8( (LocalIUH+1) )) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2143_SimpleWordFill_id : + S_2143_SimpleWordFill : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2143) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2123if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2123if_f_id : + L13_2123if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r20) + REGLONG) * *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1400) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+4)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L27_9w_d; + case L27_8w_t_id : + L27_8w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+4)) = *((IUH *)(LocalIUH+4)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+4)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+4)) = *((IUH *)(LocalIUH+4)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+4)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L27_8w_t; + case L27_9w_d_id : + L27_9w_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2144_SimpleWordMove_Fwd_id : + S_2144_SimpleWordMove_Fwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 28 > 0 ) LocalIUH = (IUH *)malloc ( 28 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2144) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2124if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2124if_f_id : + L13_2124if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r20) + REGLONG) * *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1400) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L27_10if_f; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L27_13w_d; + case L27_12w_t_id : + L27_12w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+5)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r24)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)((*((IHPE *)&(r23))) + *((IHPE *)&(r24))) ) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+5)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r24)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)((*((IHPE *)&(r23))) + *((IHPE *)&(r24))) ) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L27_12w_t; + case L27_13w_d_id : + L27_13w_d: ; + { extern IUH L27_11if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L27_11if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L27_10if_f_id : + L27_10if_f: ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L27_15w_d; + case L27_14w_t_id : + L27_14w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+5)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IUH *)&(r23)) = (IS32)(1400) ; + *((IUH *)&(r24)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23)))) ) + *((IHPE *)&(r24))) ) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r24)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+5)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IUH *)&(r23)) = (IS32)(1400) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23)))) ) + *((IHPE *)&(r24))) ) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L27_14w_t; + case L27_15w_d_id : + L27_15w_d: ; + case L27_11if_d_id : + L27_11if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2145_SimpleDwordWrite_id : + S_2145_SimpleDwordWrite : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 8 > 0 ) LocalIUH = (IUH *)malloc ( 8 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2145) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2125if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2125if_f_id : + L13_2125if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1340) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1400) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1400) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r21)) = (IS32)(8) ; + if (*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r21) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r23) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG))))) >> (32 - *((IU32 *)&(r21) + REGLONG)); + *((IUH *)&(r21)) = (IS32)(1400) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)&(r23) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(24) ; + *((IUH *)&(r23)) = (IS32)(8) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r22) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IUH *)&(r20)) = (IS32)(1400) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r21))) ) = *((IU8 *)&(r22) + REGBYTE) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2146_SimpleDwordFill_id : + S_2146_SimpleDwordFill : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2146) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2126if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2126if_f_id : + L13_2126if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r20) + REGLONG) * *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)(LocalIUH+3) + REGWORD) = *((IU16 *)&(r20) + REGWORD ) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1400) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L27_17w_d; + case L27_16w_t_id : + L27_16w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+5)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+5)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+5)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+5)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *(UOFF_15_8( (LocalIUH+3) )) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L27_16w_t; + case L27_17w_d_id : + L27_17w_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2147_SimpleDwordMove_Fwd_id : + S_2147_SimpleDwordMove_Fwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 28 > 0 ) LocalIUH = (IUH *)malloc ( 28 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2147) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2127if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2127if_f_id : + L13_2127if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r20) + REGLONG) * *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1400) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L27_18if_f; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L27_21w_d; + case L27_20w_t_id : + L27_20w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+5)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r24)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)((*((IHPE *)&(r23))) + *((IHPE *)&(r24))) ) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+5)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r24)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)((*((IHPE *)&(r23))) + *((IHPE *)&(r24))) ) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+5)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r24)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)((*((IHPE *)&(r23))) + *((IHPE *)&(r24))) ) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+5)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r24)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)((*((IHPE *)&(r23))) + *((IHPE *)&(r24))) ) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L27_20w_t; + case L27_21w_d_id : + L27_21w_d: ; + { extern IUH L27_19if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L27_19if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L27_18if_f_id : + L27_18if_f: ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L27_23w_d; + case L27_22w_t_id : + L27_22w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+5)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IUH *)&(r23)) = (IS32)(1400) ; + *((IUH *)&(r24)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23)))) ) + *((IHPE *)&(r24))) ) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r24)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+5)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IUH *)&(r23)) = (IS32)(1400) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23)))) ) + *((IHPE *)&(r24))) ) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r24)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+5)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IUH *)&(r23)) = (IS32)(1400) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23)))) ) + *((IHPE *)&(r24))) ) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IUH *)&(r24)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+5)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IUH *)&(r23)) = (IS32)(1400) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23)))) ) + *((IHPE *)&(r24))) ) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L27_22w_t; + case L27_23w_d_id : + L27_23w_d: ; + case L27_19if_d_id : + L27_19if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2148_SimpleByteMove_Bwd_id : + S_2148_SimpleByteMove_Bwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 28 > 0 ) LocalIUH = (IUH *)malloc ( 28 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2148) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2128if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2128if_f_id : + L13_2128if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1400) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L27_24if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+5)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L27_27w_d; + case L27_26w_t_id : + L27_26w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+5)) - *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(*((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L27_26w_t; + case L27_27w_d_id : + L27_27w_d: ; + { extern IUH L27_25if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L27_25if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L27_24if_f_id : + L27_24if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+5)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L27_29w_d; + case L27_28w_t_id : + L27_28w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+5)) - *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(1400) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L27_28w_t; + case L27_29w_d_id : + L27_29w_d: ; + case L27_25if_d_id : + L27_25if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2149_SimpleWordMove_Bwd_id : + S_2149_SimpleWordMove_Bwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 32 > 0 ) LocalIUH = (IUH *)malloc ( 32 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2149) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2129if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2129if_f_id : + L13_2129if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r20) + REGLONG) * *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1400) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L27_30if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L27_33w_d; + case L27_32w_t_id : + L27_32w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(*((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(*((IHPE *)&(r23))) ) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L27_32w_t; + case L27_33w_d_id : + L27_33w_d: ; + { extern IUH L27_31if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L27_31if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L27_30if_f_id : + L27_30if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L27_35w_d; + case L27_34w_t_id : + L27_34w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(1400) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r24)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r23)) = (IS32)(1400) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23)))) ) + *((IHPE *)&(r24))) ) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+5)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L27_34w_t; + case L27_35w_d_id : + L27_35w_d: ; + case L27_31if_d_id : + L27_31if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid002.c b/private/mvdm/softpc.new/base/cvidc/sevid002.c new file mode 100644 index 000000000..6d13ef0ad --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid002.c @@ -0,0 +1,4145 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_2150_SimpleDwordMove_Bwd_id, +L13_2130if_f_id, +L27_38w_t_id, +L27_39w_d_id, +L27_36if_f_id, +L27_40w_t_id, +L27_41w_d_id, +L27_37if_d_id, +S_2151_UnchainedByteWrite_00000000_0000000e_00000001_id, +L13_2131if_f_id, +S_2152_UnchainedByteFill_00000000_0000000e_00000001_id, +L13_2132if_f_id, +L28_0if_f_id, +L28_1if_f_id, +L28_2if_f_id, +L28_3if_f_id, +S_2153_Unchained1PlaneByteFill_id, +L13_2133if_f_id, +L28_4w_t_id, +L28_5w_d_id, +S_2154_UnchainedByteMove_00000000_0000000e_00000001_00000000_id, +L13_2134if_f_id, +L28_6if_f_id, +L28_7if_d_id, +S_2155_CopyBytePlnByPlnUnchained_00000000_0000000e_00000001_00000000_id, +L13_2135if_f_id, +L23_0if_f_id, +L23_1if_f_id, +L23_2if_f_id, +L23_3if_f_id, +S_2156_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000000_id, +L13_2136if_f_id, +L23_6w_t_id, +L23_7w_d_id, +L23_4if_f_id, +L23_8w_t_id, +L23_9w_d_id, +L23_5if_d_id, +S_2157_UnchainedWordWrite_00000000_0000000e_00000001_id, +L13_2137if_f_id, +S_2158_UnchainedWordFill_00000000_0000000e_00000001_id, +L13_2138if_f_id, +L28_8if_f_id, +L28_9if_f_id, +L28_10if_f_id, +L28_11if_f_id, +S_2159_Unchained1PlaneWordFill_id, +L13_2139if_f_id, +L28_12w_t_id, +L28_13w_d_id, +S_2160_UnchainedWordMove_00000000_0000000e_00000001_00000000_id, +L13_2140if_f_id, +L28_14if_f_id, +L28_15if_d_id, +S_2161_CopyWordPlnByPlnUnchained_00000000_0000000e_00000001_00000000_id, +L13_2141if_f_id, +L23_10if_f_id, +L23_11if_f_id, +L23_12if_f_id, +L23_13if_f_id, +S_2162_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000000_id, +L13_2142if_f_id, +L23_16w_t_id, +L23_17w_d_id, +L23_14if_f_id, +L23_18w_t_id, +L23_19w_d_id, +L23_15if_d_id, +S_2163_UnchainedDwordWrite_00000000_0000000e_00000001_id, +L13_2143if_f_id, +S_2164_UnchainedDwordFill_00000000_0000000e_00000001_id, +L13_2144if_f_id, +S_2165_UnchainedDwordMove_00000000_0000000e_00000001_00000000_id, +L13_2145if_f_id, +S_2166_UnchainedByteWrite_00000001_0000000e_00000001_id, +L13_2146if_f_id, +S_2167_UnchainedByteFill_00000001_0000000e_00000001_id, +L13_2147if_f_id, +L28_16if_f_id, +L28_17if_f_id, +L28_18if_f_id, +L28_19if_f_id, +S_2168_UnchainedByteMove_00000001_0000000e_00000001_00000000_id, +L13_2148if_f_id, +L28_20if_f_id, +L28_22if_f_id, +L28_23if_f_id, +L28_24if_f_id, +L28_25if_f_id, +L28_21if_d_id, +S_2169_CopyDirByte1Plane_00000000_id, +L13_2149if_f_id, +S_2170_CopyFwdByte1Plane_id, +L13_2150if_f_id, +L23_20w_t_id, +L23_21w_d_id, +S_2171_UnchainedWordWrite_00000001_0000000e_00000001_id, +L13_2151if_f_id, +S_2172_UnchainedWordFill_00000001_0000000e_00000001_id, +L13_2152if_f_id, +L28_26if_f_id, +L28_27if_f_id, +L28_28if_f_id, +L28_29if_f_id, +S_2173_UnchainedWordMove_00000001_0000000e_00000001_00000000_id, +L13_2153if_f_id, +L28_30if_f_id, +L28_32if_f_id, +L28_33if_f_id, +L28_34if_f_id, +L28_35if_f_id, +L28_31if_d_id, +S_2174_CopyDirWord1Plane_00000000_id, +L13_2154if_f_id, +S_2175_CopyFwdWord1Plane_id, +L13_2155if_f_id, +L23_22w_t_id, +L23_23w_d_id, +S_2176_UnchainedDwordWrite_00000001_0000000e_00000001_id, +L13_2156if_f_id, +S_2177_UnchainedDwordFill_00000001_0000000e_00000001_id, +L13_2157if_f_id, +S_2178_UnchainedDwordMove_00000001_0000000e_00000001_00000000_id, +L13_2158if_f_id, +S_2179_UnchainedByteWrite_00000002_0000000e_00000001_id, +L13_2159if_f_id, +S_2180_UnchainedByteFill_00000002_0000000e_00000001_id, +L13_2160if_f_id, +L28_36if_f_id, +L28_37if_f_id, +L28_38if_f_id, +L28_39if_f_id, +S_2181_UnchainedByteMove_00000002_0000000e_00000001_00000000_id, +L13_2161if_f_id, +L28_40if_f_id, +L28_41if_d_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_2150_SimpleDwordMove_Bwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2150_SimpleDwordMove_Bwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2150_SimpleDwordMove_Bwd = (IHPE)S_2150_SimpleDwordMove_Bwd ; +LOCAL IUH L13_2130if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2130if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2130if_f = (IHPE)L13_2130if_f ; +LOCAL IUH L27_38w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_38w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_38w_t = (IHPE)L27_38w_t ; +LOCAL IUH L27_39w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_39w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_39w_d = (IHPE)L27_39w_d ; +LOCAL IUH L27_36if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_36if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_36if_f = (IHPE)L27_36if_f ; +LOCAL IUH L27_40w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_40w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_40w_t = (IHPE)L27_40w_t ; +LOCAL IUH L27_41w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_41w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_41w_d = (IHPE)L27_41w_d ; +LOCAL IUH L27_37if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L27_37if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L27_37if_d = (IHPE)L27_37if_d ; +GLOBAL IUH S_2151_UnchainedByteWrite_00000000_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2151_UnchainedByteWrite_00000000_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2151_UnchainedByteWrite_00000000_0000000e_00000001 = (IHPE)S_2151_UnchainedByteWrite_00000000_0000000e_00000001 ; +LOCAL IUH L13_2131if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2131if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2131if_f = (IHPE)L13_2131if_f ; +GLOBAL IUH S_2152_UnchainedByteFill_00000000_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2152_UnchainedByteFill_00000000_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2152_UnchainedByteFill_00000000_0000000e_00000001 = (IHPE)S_2152_UnchainedByteFill_00000000_0000000e_00000001 ; +LOCAL IUH L13_2132if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2132if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2132if_f = (IHPE)L13_2132if_f ; +LOCAL IUH L28_0if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_0if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_0if_f = (IHPE)L28_0if_f ; +LOCAL IUH L28_1if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_1if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_1if_f = (IHPE)L28_1if_f ; +LOCAL IUH L28_2if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_2if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_2if_f = (IHPE)L28_2if_f ; +LOCAL IUH L28_3if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_3if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_3if_f = (IHPE)L28_3if_f ; +GLOBAL IUH S_2153_Unchained1PlaneByteFill IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2153_Unchained1PlaneByteFill_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2153_Unchained1PlaneByteFill = (IHPE)S_2153_Unchained1PlaneByteFill ; +LOCAL IUH L13_2133if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2133if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2133if_f = (IHPE)L13_2133if_f ; +LOCAL IUH L28_4w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_4w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_4w_t = (IHPE)L28_4w_t ; +LOCAL IUH L28_5w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_5w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_5w_d = (IHPE)L28_5w_d ; +GLOBAL IUH S_2154_UnchainedByteMove_00000000_0000000e_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2154_UnchainedByteMove_00000000_0000000e_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2154_UnchainedByteMove_00000000_0000000e_00000001_00000000 = (IHPE)S_2154_UnchainedByteMove_00000000_0000000e_00000001_00000000 ; +LOCAL IUH L13_2134if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2134if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2134if_f = (IHPE)L13_2134if_f ; +LOCAL IUH L28_6if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_6if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_6if_f = (IHPE)L28_6if_f ; +LOCAL IUH L28_7if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_7if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_7if_d = (IHPE)L28_7if_d ; +GLOBAL IUH S_2155_CopyBytePlnByPlnUnchained_00000000_0000000e_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2155_CopyBytePlnByPlnUnchained_00000000_0000000e_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2155_CopyBytePlnByPlnUnchained_00000000_0000000e_00000001_00000000 = (IHPE)S_2155_CopyBytePlnByPlnUnchained_00000000_0000000e_00000001_00000000 ; +LOCAL IUH L13_2135if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2135if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2135if_f = (IHPE)L13_2135if_f ; +LOCAL IUH L23_0if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_0if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_0if_f = (IHPE)L23_0if_f ; +LOCAL IUH L23_1if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1if_f = (IHPE)L23_1if_f ; +LOCAL IUH L23_2if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_2if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_2if_f = (IHPE)L23_2if_f ; +LOCAL IUH L23_3if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_3if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_3if_f = (IHPE)L23_3if_f ; +GLOBAL IUH S_2156_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2156_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2156_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000000 = (IHPE)S_2156_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000000 ; +LOCAL IUH L13_2136if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2136if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2136if_f = (IHPE)L13_2136if_f ; +LOCAL IUH L23_6w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_6w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_6w_t = (IHPE)L23_6w_t ; +LOCAL IUH L23_7w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_7w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_7w_d = (IHPE)L23_7w_d ; +LOCAL IUH L23_4if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_4if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_4if_f = (IHPE)L23_4if_f ; +LOCAL IUH L23_8w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_8w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_8w_t = (IHPE)L23_8w_t ; +LOCAL IUH L23_9w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_9w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_9w_d = (IHPE)L23_9w_d ; +LOCAL IUH L23_5if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_5if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_5if_d = (IHPE)L23_5if_d ; +GLOBAL IUH S_2157_UnchainedWordWrite_00000000_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2157_UnchainedWordWrite_00000000_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2157_UnchainedWordWrite_00000000_0000000e_00000001 = (IHPE)S_2157_UnchainedWordWrite_00000000_0000000e_00000001 ; +LOCAL IUH L13_2137if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2137if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2137if_f = (IHPE)L13_2137if_f ; +GLOBAL IUH S_2158_UnchainedWordFill_00000000_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2158_UnchainedWordFill_00000000_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2158_UnchainedWordFill_00000000_0000000e_00000001 = (IHPE)S_2158_UnchainedWordFill_00000000_0000000e_00000001 ; +LOCAL IUH L13_2138if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2138if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2138if_f = (IHPE)L13_2138if_f ; +LOCAL IUH L28_8if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_8if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_8if_f = (IHPE)L28_8if_f ; +LOCAL IUH L28_9if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_9if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_9if_f = (IHPE)L28_9if_f ; +LOCAL IUH L28_10if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_10if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_10if_f = (IHPE)L28_10if_f ; +LOCAL IUH L28_11if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_11if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_11if_f = (IHPE)L28_11if_f ; +GLOBAL IUH S_2159_Unchained1PlaneWordFill IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2159_Unchained1PlaneWordFill_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2159_Unchained1PlaneWordFill = (IHPE)S_2159_Unchained1PlaneWordFill ; +LOCAL IUH L13_2139if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2139if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2139if_f = (IHPE)L13_2139if_f ; +LOCAL IUH L28_12w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_12w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_12w_t = (IHPE)L28_12w_t ; +LOCAL IUH L28_13w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_13w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_13w_d = (IHPE)L28_13w_d ; +GLOBAL IUH S_2160_UnchainedWordMove_00000000_0000000e_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2160_UnchainedWordMove_00000000_0000000e_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2160_UnchainedWordMove_00000000_0000000e_00000001_00000000 = (IHPE)S_2160_UnchainedWordMove_00000000_0000000e_00000001_00000000 ; +LOCAL IUH L13_2140if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2140if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2140if_f = (IHPE)L13_2140if_f ; +LOCAL IUH L28_14if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_14if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_14if_f = (IHPE)L28_14if_f ; +LOCAL IUH L28_15if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_15if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_15if_d = (IHPE)L28_15if_d ; +GLOBAL IUH S_2161_CopyWordPlnByPlnUnchained_00000000_0000000e_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2161_CopyWordPlnByPlnUnchained_00000000_0000000e_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2161_CopyWordPlnByPlnUnchained_00000000_0000000e_00000001_00000000 = (IHPE)S_2161_CopyWordPlnByPlnUnchained_00000000_0000000e_00000001_00000000 ; +LOCAL IUH L13_2141if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2141if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2141if_f = (IHPE)L13_2141if_f ; +LOCAL IUH L23_10if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_10if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_10if_f = (IHPE)L23_10if_f ; +LOCAL IUH L23_11if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_11if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_11if_f = (IHPE)L23_11if_f ; +LOCAL IUH L23_12if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_12if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_12if_f = (IHPE)L23_12if_f ; +LOCAL IUH L23_13if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_13if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_13if_f = (IHPE)L23_13if_f ; +GLOBAL IUH S_2162_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2162_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2162_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000000 = (IHPE)S_2162_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000000 ; +LOCAL IUH L13_2142if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2142if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2142if_f = (IHPE)L13_2142if_f ; +LOCAL IUH L23_16w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_16w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_16w_t = (IHPE)L23_16w_t ; +LOCAL IUH L23_17w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_17w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_17w_d = (IHPE)L23_17w_d ; +LOCAL IUH L23_14if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_14if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_14if_f = (IHPE)L23_14if_f ; +LOCAL IUH L23_18w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_18w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_18w_t = (IHPE)L23_18w_t ; +LOCAL IUH L23_19w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_19w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_19w_d = (IHPE)L23_19w_d ; +LOCAL IUH L23_15if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_15if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_15if_d = (IHPE)L23_15if_d ; +GLOBAL IUH S_2163_UnchainedDwordWrite_00000000_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2163_UnchainedDwordWrite_00000000_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2163_UnchainedDwordWrite_00000000_0000000e_00000001 = (IHPE)S_2163_UnchainedDwordWrite_00000000_0000000e_00000001 ; +LOCAL IUH L13_2143if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2143if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2143if_f = (IHPE)L13_2143if_f ; +GLOBAL IUH S_2164_UnchainedDwordFill_00000000_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2164_UnchainedDwordFill_00000000_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2164_UnchainedDwordFill_00000000_0000000e_00000001 = (IHPE)S_2164_UnchainedDwordFill_00000000_0000000e_00000001 ; +LOCAL IUH L13_2144if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2144if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2144if_f = (IHPE)L13_2144if_f ; +GLOBAL IUH S_2165_UnchainedDwordMove_00000000_0000000e_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2165_UnchainedDwordMove_00000000_0000000e_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2165_UnchainedDwordMove_00000000_0000000e_00000001_00000000 = (IHPE)S_2165_UnchainedDwordMove_00000000_0000000e_00000001_00000000 ; +LOCAL IUH L13_2145if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2145if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2145if_f = (IHPE)L13_2145if_f ; +GLOBAL IUH S_2166_UnchainedByteWrite_00000001_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2166_UnchainedByteWrite_00000001_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2166_UnchainedByteWrite_00000001_0000000e_00000001 = (IHPE)S_2166_UnchainedByteWrite_00000001_0000000e_00000001 ; +LOCAL IUH L13_2146if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2146if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2146if_f = (IHPE)L13_2146if_f ; +GLOBAL IUH S_2167_UnchainedByteFill_00000001_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2167_UnchainedByteFill_00000001_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2167_UnchainedByteFill_00000001_0000000e_00000001 = (IHPE)S_2167_UnchainedByteFill_00000001_0000000e_00000001 ; +LOCAL IUH L13_2147if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2147if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2147if_f = (IHPE)L13_2147if_f ; +LOCAL IUH L28_16if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_16if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_16if_f = (IHPE)L28_16if_f ; +LOCAL IUH L28_17if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_17if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_17if_f = (IHPE)L28_17if_f ; +LOCAL IUH L28_18if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_18if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_18if_f = (IHPE)L28_18if_f ; +LOCAL IUH L28_19if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_19if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_19if_f = (IHPE)L28_19if_f ; +GLOBAL IUH S_2168_UnchainedByteMove_00000001_0000000e_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2168_UnchainedByteMove_00000001_0000000e_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2168_UnchainedByteMove_00000001_0000000e_00000001_00000000 = (IHPE)S_2168_UnchainedByteMove_00000001_0000000e_00000001_00000000 ; +LOCAL IUH L13_2148if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2148if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2148if_f = (IHPE)L13_2148if_f ; +LOCAL IUH L28_20if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_20if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_20if_f = (IHPE)L28_20if_f ; +LOCAL IUH L28_22if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_22if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_22if_f = (IHPE)L28_22if_f ; +LOCAL IUH L28_23if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_23if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_23if_f = (IHPE)L28_23if_f ; +LOCAL IUH L28_24if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_24if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_24if_f = (IHPE)L28_24if_f ; +LOCAL IUH L28_25if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_25if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_25if_f = (IHPE)L28_25if_f ; +LOCAL IUH L28_21if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_21if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_21if_d = (IHPE)L28_21if_d ; +GLOBAL IUH S_2169_CopyDirByte1Plane_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2169_CopyDirByte1Plane_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2169_CopyDirByte1Plane_00000000 = (IHPE)S_2169_CopyDirByte1Plane_00000000 ; +LOCAL IUH L13_2149if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2149if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2149if_f = (IHPE)L13_2149if_f ; +GLOBAL IUH S_2170_CopyFwdByte1Plane IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2170_CopyFwdByte1Plane_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2170_CopyFwdByte1Plane = (IHPE)S_2170_CopyFwdByte1Plane ; +LOCAL IUH L13_2150if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2150if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2150if_f = (IHPE)L13_2150if_f ; +LOCAL IUH L23_20w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_20w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_20w_t = (IHPE)L23_20w_t ; +LOCAL IUH L23_21w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_21w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_21w_d = (IHPE)L23_21w_d ; +GLOBAL IUH S_2171_UnchainedWordWrite_00000001_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2171_UnchainedWordWrite_00000001_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2171_UnchainedWordWrite_00000001_0000000e_00000001 = (IHPE)S_2171_UnchainedWordWrite_00000001_0000000e_00000001 ; +LOCAL IUH L13_2151if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2151if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2151if_f = (IHPE)L13_2151if_f ; +GLOBAL IUH S_2172_UnchainedWordFill_00000001_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2172_UnchainedWordFill_00000001_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2172_UnchainedWordFill_00000001_0000000e_00000001 = (IHPE)S_2172_UnchainedWordFill_00000001_0000000e_00000001 ; +LOCAL IUH L13_2152if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2152if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2152if_f = (IHPE)L13_2152if_f ; +LOCAL IUH L28_26if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_26if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_26if_f = (IHPE)L28_26if_f ; +LOCAL IUH L28_27if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_27if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_27if_f = (IHPE)L28_27if_f ; +LOCAL IUH L28_28if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_28if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_28if_f = (IHPE)L28_28if_f ; +LOCAL IUH L28_29if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_29if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_29if_f = (IHPE)L28_29if_f ; +GLOBAL IUH S_2173_UnchainedWordMove_00000001_0000000e_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2173_UnchainedWordMove_00000001_0000000e_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2173_UnchainedWordMove_00000001_0000000e_00000001_00000000 = (IHPE)S_2173_UnchainedWordMove_00000001_0000000e_00000001_00000000 ; +LOCAL IUH L13_2153if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2153if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2153if_f = (IHPE)L13_2153if_f ; +LOCAL IUH L28_30if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_30if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_30if_f = (IHPE)L28_30if_f ; +LOCAL IUH L28_32if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_32if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_32if_f = (IHPE)L28_32if_f ; +LOCAL IUH L28_33if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_33if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_33if_f = (IHPE)L28_33if_f ; +LOCAL IUH L28_34if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_34if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_34if_f = (IHPE)L28_34if_f ; +LOCAL IUH L28_35if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_35if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_35if_f = (IHPE)L28_35if_f ; +LOCAL IUH L28_31if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_31if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_31if_d = (IHPE)L28_31if_d ; +GLOBAL IUH S_2174_CopyDirWord1Plane_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2174_CopyDirWord1Plane_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2174_CopyDirWord1Plane_00000000 = (IHPE)S_2174_CopyDirWord1Plane_00000000 ; +LOCAL IUH L13_2154if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2154if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2154if_f = (IHPE)L13_2154if_f ; +GLOBAL IUH S_2175_CopyFwdWord1Plane IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2175_CopyFwdWord1Plane_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2175_CopyFwdWord1Plane = (IHPE)S_2175_CopyFwdWord1Plane ; +LOCAL IUH L13_2155if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2155if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2155if_f = (IHPE)L13_2155if_f ; +LOCAL IUH L23_22w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_22w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_22w_t = (IHPE)L23_22w_t ; +LOCAL IUH L23_23w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_23w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_23w_d = (IHPE)L23_23w_d ; +GLOBAL IUH S_2176_UnchainedDwordWrite_00000001_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2176_UnchainedDwordWrite_00000001_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2176_UnchainedDwordWrite_00000001_0000000e_00000001 = (IHPE)S_2176_UnchainedDwordWrite_00000001_0000000e_00000001 ; +LOCAL IUH L13_2156if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2156if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2156if_f = (IHPE)L13_2156if_f ; +GLOBAL IUH S_2177_UnchainedDwordFill_00000001_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2177_UnchainedDwordFill_00000001_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2177_UnchainedDwordFill_00000001_0000000e_00000001 = (IHPE)S_2177_UnchainedDwordFill_00000001_0000000e_00000001 ; +LOCAL IUH L13_2157if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2157if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2157if_f = (IHPE)L13_2157if_f ; +GLOBAL IUH S_2178_UnchainedDwordMove_00000001_0000000e_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2178_UnchainedDwordMove_00000001_0000000e_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2178_UnchainedDwordMove_00000001_0000000e_00000001_00000000 = (IHPE)S_2178_UnchainedDwordMove_00000001_0000000e_00000001_00000000 ; +LOCAL IUH L13_2158if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2158if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2158if_f = (IHPE)L13_2158if_f ; +GLOBAL IUH S_2179_UnchainedByteWrite_00000002_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2179_UnchainedByteWrite_00000002_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2179_UnchainedByteWrite_00000002_0000000e_00000001 = (IHPE)S_2179_UnchainedByteWrite_00000002_0000000e_00000001 ; +LOCAL IUH L13_2159if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2159if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2159if_f = (IHPE)L13_2159if_f ; +GLOBAL IUH S_2180_UnchainedByteFill_00000002_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2180_UnchainedByteFill_00000002_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2180_UnchainedByteFill_00000002_0000000e_00000001 = (IHPE)S_2180_UnchainedByteFill_00000002_0000000e_00000001 ; +LOCAL IUH L13_2160if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2160if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2160if_f = (IHPE)L13_2160if_f ; +LOCAL IUH L28_36if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_36if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_36if_f = (IHPE)L28_36if_f ; +LOCAL IUH L28_37if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_37if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_37if_f = (IHPE)L28_37if_f ; +LOCAL IUH L28_38if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_38if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_38if_f = (IHPE)L28_38if_f ; +LOCAL IUH L28_39if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_39if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_39if_f = (IHPE)L28_39if_f ; +GLOBAL IUH S_2181_UnchainedByteMove_00000002_0000000e_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2181_UnchainedByteMove_00000002_0000000e_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2181_UnchainedByteMove_00000002_0000000e_00000001_00000000 = (IHPE)S_2181_UnchainedByteMove_00000002_0000000e_00000001_00000000 ; +LOCAL IUH L13_2161if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2161if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2161if_f = (IHPE)L13_2161if_f ; +LOCAL IUH L28_40if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_40if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_40if_f = (IHPE)L28_40if_f ; +LOCAL IUH L28_41if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_41if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_41if_d = (IHPE)L28_41if_d ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2150_SimpleDwordMove_Bwd_id : + S_2150_SimpleDwordMove_Bwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 28 > 0 ) LocalIUH = (IUH *)malloc ( 28 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2150) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2130if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2130if_f_id : + L13_2130if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r20) + REGLONG) * *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1400) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+1) + REGLONG); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L27_36if_f; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L27_39w_d; + case L27_38w_t_id : + L27_38w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(*((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(*((IHPE *)&(r23))) ) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(*((IHPE *)&(r23))) ) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(*((IHPE *)&(r23))) ) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L27_38w_t; + case L27_39w_d_id : + L27_39w_d: ; + { extern IUH L27_37if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L27_37if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L27_36if_f_id : + L27_36if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L27_41w_d; + case L27_40w_t_id : + L27_40w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(1400) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22)))) ) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r24)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r23)) = (IS32)(1400) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23)))) ) + *((IHPE *)&(r24))) ) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r24)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IUH *)&(r23)) = (IS32)(1400) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23)))) ) + *((IHPE *)&(r24))) ) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IUH *)&(r24)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IUH *)&(r23)) = (IS32)(1400) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23)))) ) + *((IHPE *)&(r24))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+5)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L27_40w_t; + case L27_41w_d_id : + L27_41w_d: ; + case L27_37if_d_id : + L27_37if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2151_UnchainedByteWrite_00000000_0000000e_00000001_id : + S_2151_UnchainedByteWrite_00000000_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2151) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2131if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2131if_f_id : + L13_2131if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1420) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2152_UnchainedByteFill_00000000_0000000e_00000001_id : + S_2152_UnchainedByteFill_00000000_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2152) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2132if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2132if_f_id : + L13_2132if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1420) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_0if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_0if_f_id : + L28_0if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_1if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_1if_f_id : + L28_1if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_2if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_2if_f_id : + L28_2if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_3if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_3if_f_id : + L28_3if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2153_Unchained1PlaneByteFill_id : + S_2153_Unchained1PlaneByteFill : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2153) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2133if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2133if_f_id : + L13_2133if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+3)) = *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L28_5w_d; + case L28_4w_t_id : + L28_4w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+3)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+3)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+3)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L28_4w_t; + case L28_5w_d_id : + L28_5w_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2154_UnchainedByteMove_00000000_0000000e_00000001_00000000_id : + S_2154_UnchainedByteMove_00000000_0000000e_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2154) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2134if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2134if_f_id : + L13_2134if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_6if_f; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2155_CopyBytePlnByPlnUnchained_00000000_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2155_CopyBytePlnByPlnUnchained_00000000_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + { extern IUH L28_7if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_7if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_6if_f_id : + L28_6if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2155_CopyBytePlnByPlnUnchained_00000000_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2155_CopyBytePlnByPlnUnchained_00000000_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + case L28_7if_d_id : + L28_7if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2155_CopyBytePlnByPlnUnchained_00000000_0000000e_00000001_00000000_id : + S_2155_CopyBytePlnByPlnUnchained_00000000_0000000e_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2155) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2135if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2135if_f_id : + L13_2135if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_0if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2156_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2156_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_0if_f_id : + L23_0if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_1if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2156_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2156_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_1if_f_id : + L23_1if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_2if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2156_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2156_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_2if_f_id : + L23_2if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_3if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2156_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2156_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_3if_f_id : + L23_3if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2156_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000000_id : + S_2156_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2156) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2136if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2136if_f_id : + L13_2136if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_4if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_7w_d; + case L23_6w_t_id : + L23_6w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_6w_t; + case L23_7w_d_id : + L23_7w_d: ; + { extern IUH L23_5if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_5if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_4if_f_id : + L23_4if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_9w_d; + case L23_8w_t_id : + L23_8w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_8w_t; + case L23_9w_d_id : + L23_9w_d: ; + case L23_5if_d_id : + L23_5if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2157_UnchainedWordWrite_00000000_0000000e_00000001_id : + S_2157_UnchainedWordWrite_00000000_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2157) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2137if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2137if_f_id : + L13_2137if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1420) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2158_UnchainedWordFill_00000000_0000000e_00000001_id : + S_2158_UnchainedWordFill_00000000_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2158) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2138if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2138if_f_id : + L13_2138if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1420) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_8if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_8if_f_id : + L28_8if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_9if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU8 *)&(r4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+5) )) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_9if_f_id : + L28_9if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_10if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_10if_f_id : + L28_10if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_11if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_11if_f_id : + L28_11if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2159_Unchained1PlaneWordFill_id : + S_2159_Unchained1PlaneWordFill : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2159) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2139if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2139if_f_id : + L13_2139if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU8 *)(LocalIUH+2) + REGBYTE) = *((IU8 *)&(r4) + REGBYTE) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+4)) = *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L28_13w_d; + case L28_12w_t_id : + L28_12w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+4)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+4)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+4)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+4)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L28_12w_t; + case L28_13w_d_id : + L28_13w_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2160_UnchainedWordMove_00000000_0000000e_00000001_00000000_id : + S_2160_UnchainedWordMove_00000000_0000000e_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2160) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2140if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2140if_f_id : + L13_2140if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_14if_f; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2161_CopyWordPlnByPlnUnchained_00000000_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2161_CopyWordPlnByPlnUnchained_00000000_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + { extern IUH L28_15if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_15if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_14if_f_id : + L28_14if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2161_CopyWordPlnByPlnUnchained_00000000_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2161_CopyWordPlnByPlnUnchained_00000000_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + case L28_15if_d_id : + L28_15if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2161_CopyWordPlnByPlnUnchained_00000000_0000000e_00000001_00000000_id : + S_2161_CopyWordPlnByPlnUnchained_00000000_0000000e_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2161) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2141if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2141if_f_id : + L13_2141if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_10if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2162_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2162_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_10if_f_id : + L23_10if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_11if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2162_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2162_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_11if_f_id : + L23_11if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_12if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2162_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2162_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_12if_f_id : + L23_12if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_13if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2162_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2162_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_13if_f_id : + L23_13if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2162_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000000_id : + S_2162_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2162) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2142if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2142if_f_id : + L13_2142if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_14if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_17w_d; + case L23_16w_t_id : + L23_16w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_16w_t; + case L23_17w_d_id : + L23_17w_d: ; + { extern IUH L23_15if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_15if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_14if_f_id : + L23_14if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_19w_d; + case L23_18w_t_id : + L23_18w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_18w_t; + case L23_19w_d_id : + L23_19w_d: ; + case L23_15if_d_id : + L23_15if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2163_UnchainedDwordWrite_00000000_0000000e_00000001_id : + S_2163_UnchainedDwordWrite_00000000_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2163) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2143if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2143if_f_id : + L13_2143if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2157_UnchainedWordWrite_00000000_0000000e_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2157_UnchainedWordWrite_00000000_0000000e_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2157_UnchainedWordWrite_00000000_0000000e_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2157_UnchainedWordWrite_00000000_0000000e_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2164_UnchainedDwordFill_00000000_0000000e_00000001_id : + S_2164_UnchainedDwordFill_00000000_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2164) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2144if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2144if_f_id : + L13_2144if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2158_UnchainedWordFill_00000000_0000000e_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2158_UnchainedWordFill_00000000_0000000e_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2158_UnchainedWordFill_00000000_0000000e_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2158_UnchainedWordFill_00000000_0000000e_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2165_UnchainedDwordMove_00000000_0000000e_00000001_00000000_id : + S_2165_UnchainedDwordMove_00000000_0000000e_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2165) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2145if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2145if_f_id : + L13_2145if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2160_UnchainedWordMove_00000000_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2160_UnchainedWordMove_00000000_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2166_UnchainedByteWrite_00000001_0000000e_00000001_id : + S_2166_UnchainedByteWrite_00000001_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2166) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2146if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2146if_f_id : + L13_2146if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2167_UnchainedByteFill_00000001_0000000e_00000001_id : + S_2167_UnchainedByteFill_00000001_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2167) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2147if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2147if_f_id : + L13_2147if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_16if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_16if_f_id : + L28_16if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_17if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_17if_f_id : + L28_17if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_18if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_18if_f_id : + L28_18if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_19if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_19if_f_id : + L28_19if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2168_UnchainedByteMove_00000001_0000000e_00000001_00000000_id : + S_2168_UnchainedByteMove_00000001_0000000e_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2168) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2148if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2148if_f_id : + L13_2148if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_20if_f; + *((IUH *)(r1+0)) = (IS32)(16398) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = (IS32)(-1) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2167_UnchainedByteFill_00000001_0000000e_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2167_UnchainedByteFill_00000001_0000000e_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16399) ; + { extern IUH L28_21if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_21if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_20if_f_id : + L28_20if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_22if_f; + *((IUH *)(r1+0)) = (IS32)(16400) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r2)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2169_CopyDirByte1Plane_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2169_CopyDirByte1Plane_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16401) ; + case L28_22if_f_id : + L28_22if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_23if_f; + *((IUH *)(r1+0)) = (IS32)(16400) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r2)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r3)) = *((IUH *)&(r20)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2169_CopyDirByte1Plane_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2169_CopyDirByte1Plane_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16401) ; + case L28_23if_f_id : + L28_23if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_24if_f; + *((IUH *)(r1+0)) = (IS32)(16400) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r2)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2169_CopyDirByte1Plane_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2169_CopyDirByte1Plane_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16401) ; + case L28_24if_f_id : + L28_24if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_25if_f; + *((IUH *)(r1+0)) = (IS32)(16400) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r2)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r3)) = *((IUH *)&(r20)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2169_CopyDirByte1Plane_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2169_CopyDirByte1Plane_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16401) ; + case L28_25if_f_id : + L28_25if_f: ; + case L28_21if_d_id : + L28_21if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2169_CopyDirByte1Plane_00000000_id : + S_2169_CopyDirByte1Plane_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2169) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2149if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2149if_f_id : + L13_2149if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16402) ; + *((IUH *)&(r2)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2170_CopyFwdByte1Plane() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2170_CopyFwdByte1Plane(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16403) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2170_CopyFwdByte1Plane_id : + S_2170_CopyFwdByte1Plane : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2170) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2150if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2150if_f_id : + L13_2150if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)(LocalIUH+4)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_21w_d; + case L23_20w_t_id : + L23_20w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+4)) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+5)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(*((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+4)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+4)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_20w_t; + case L23_21w_d_id : + L23_21w_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2171_UnchainedWordWrite_00000001_0000000e_00000001_id : + S_2171_UnchainedWordWrite_00000001_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2171) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2151if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2151if_f_id : + L13_2151if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2172_UnchainedWordFill_00000001_0000000e_00000001_id : + S_2172_UnchainedWordFill_00000001_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2172) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2152if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2152if_f_id : + L13_2152if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_26if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_26if_f_id : + L28_26if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_27if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU8 *)&(r4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+5) )) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_27if_f_id : + L28_27if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_28if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_28if_f_id : + L28_28if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_29if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_29if_f_id : + L28_29if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2173_UnchainedWordMove_00000001_0000000e_00000001_00000000_id : + S_2173_UnchainedWordMove_00000001_0000000e_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2173) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2153if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2153if_f_id : + L13_2153if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_30if_f; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = (IS32)(-1) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2172_UnchainedWordFill_00000001_0000000e_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2172_UnchainedWordFill_00000001_0000000e_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; + { extern IUH L28_31if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_31if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_30if_f_id : + L28_30if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_32if_f; + *((IUH *)(r1+0)) = (IS32)(16404) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r2)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2174_CopyDirWord1Plane_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2174_CopyDirWord1Plane_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16405) ; + case L28_32if_f_id : + L28_32if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_33if_f; + *((IUH *)(r1+0)) = (IS32)(16404) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r2)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r3)) = *((IUH *)&(r20)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2174_CopyDirWord1Plane_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2174_CopyDirWord1Plane_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16405) ; + case L28_33if_f_id : + L28_33if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_34if_f; + *((IUH *)(r1+0)) = (IS32)(16404) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r2)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2174_CopyDirWord1Plane_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2174_CopyDirWord1Plane_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16405) ; + case L28_34if_f_id : + L28_34if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_35if_f; + *((IUH *)(r1+0)) = (IS32)(16404) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r2)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r3)) = *((IUH *)&(r20)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2174_CopyDirWord1Plane_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2174_CopyDirWord1Plane_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16405) ; + case L28_35if_f_id : + L28_35if_f: ; + case L28_31if_d_id : + L28_31if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2174_CopyDirWord1Plane_00000000_id : + S_2174_CopyDirWord1Plane_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2174) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2154if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2154if_f_id : + L13_2154if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16406) ; + *((IUH *)&(r2)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2175_CopyFwdWord1Plane() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2175_CopyFwdWord1Plane(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16407) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2175_CopyFwdWord1Plane_id : + S_2175_CopyFwdWord1Plane : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2175) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2155if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2155if_f_id : + L13_2155if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)(LocalIUH+4)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_23w_d; + case L23_22w_t_id : + L23_22w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+4)) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+5)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(*((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+4)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+5)) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(*((IHPE *)&(r23))) ) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+4)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+4)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_22w_t; + case L23_23w_d_id : + L23_23w_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2176_UnchainedDwordWrite_00000001_0000000e_00000001_id : + S_2176_UnchainedDwordWrite_00000001_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2176) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2156if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2156if_f_id : + L13_2156if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2171_UnchainedWordWrite_00000001_0000000e_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2171_UnchainedWordWrite_00000001_0000000e_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2171_UnchainedWordWrite_00000001_0000000e_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2171_UnchainedWordWrite_00000001_0000000e_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2177_UnchainedDwordFill_00000001_0000000e_00000001_id : + S_2177_UnchainedDwordFill_00000001_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2177) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2157if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2157if_f_id : + L13_2157if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2172_UnchainedWordFill_00000001_0000000e_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2172_UnchainedWordFill_00000001_0000000e_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2172_UnchainedWordFill_00000001_0000000e_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2172_UnchainedWordFill_00000001_0000000e_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2178_UnchainedDwordMove_00000001_0000000e_00000001_00000000_id : + S_2178_UnchainedDwordMove_00000001_0000000e_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2178) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2158if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2158if_f_id : + L13_2158if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2173_UnchainedWordMove_00000001_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2173_UnchainedWordMove_00000001_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2179_UnchainedByteWrite_00000002_0000000e_00000001_id : + S_2179_UnchainedByteWrite_00000002_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2179) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2159if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2159if_f_id : + L13_2159if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1420) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2180_UnchainedByteFill_00000002_0000000e_00000001_id : + S_2180_UnchainedByteFill_00000002_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2180) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2160if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2160if_f_id : + L13_2160if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1420) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_36if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_36if_f_id : + L28_36if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_37if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_37if_f_id : + L28_37if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_38if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_38if_f_id : + L28_38if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_39if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_39if_f_id : + L28_39if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2181_UnchainedByteMove_00000002_0000000e_00000001_00000000_id : + S_2181_UnchainedByteMove_00000002_0000000e_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2181) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2161if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2161if_f_id : + L13_2161if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_40if_f; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2182_CopyBytePlnByPlnUnchained_00000002_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2182_CopyBytePlnByPlnUnchained_00000002_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + { extern IUH L28_41if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_41if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_40if_f_id : + L28_40if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2182_CopyBytePlnByPlnUnchained_00000002_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2182_CopyBytePlnByPlnUnchained_00000002_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + case L28_41if_d_id : + L28_41if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid003.c b/private/mvdm/softpc.new/base/cvidc/sevid003.c new file mode 100644 index 000000000..6aa5beee3 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid003.c @@ -0,0 +1,4708 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_2182_CopyBytePlnByPlnUnchained_00000002_0000000e_00000001_00000000_id, +L13_2162if_f_id, +L23_24if_f_id, +L23_25if_f_id, +L23_26if_f_id, +L23_27if_f_id, +S_2183_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000000_id, +L13_2163if_f_id, +L23_30w_t_id, +L23_31w_d_id, +L23_28if_f_id, +L23_32w_t_id, +L23_33w_d_id, +L23_29if_d_id, +S_2184_UnchainedWordWrite_00000002_0000000e_00000001_id, +L13_2164if_f_id, +S_2185_UnchainedWordFill_00000002_0000000e_00000001_id, +L13_2165if_f_id, +L28_42if_f_id, +L28_43if_f_id, +L28_44if_f_id, +L28_45if_f_id, +S_2186_UnchainedWordMove_00000002_0000000e_00000001_00000000_id, +L13_2166if_f_id, +L28_46if_f_id, +L28_47if_d_id, +S_2187_CopyWordPlnByPlnUnchained_00000002_0000000e_00000001_00000000_id, +L13_2167if_f_id, +L23_34if_f_id, +L23_35if_f_id, +L23_36if_f_id, +L23_37if_f_id, +S_2188_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000000_id, +L13_2168if_f_id, +L23_40w_t_id, +L23_41w_d_id, +L23_38if_f_id, +L23_42w_t_id, +L23_43w_d_id, +L23_39if_d_id, +S_2189_UnchainedDwordWrite_00000002_0000000e_00000001_id, +L13_2169if_f_id, +S_2190_UnchainedDwordFill_00000002_0000000e_00000001_id, +L13_2170if_f_id, +S_2191_UnchainedDwordMove_00000002_0000000e_00000001_00000000_id, +L13_2171if_f_id, +S_2192_UnchainedByteWrite_00000003_0000000e_00000001_id, +L13_2172if_f_id, +S_2193_UnchainedByteFill_00000003_0000000e_00000001_id, +L13_2173if_f_id, +L28_48if_f_id, +L28_49if_f_id, +L28_50if_f_id, +L28_51if_f_id, +S_2194_UnchainedByteMove_00000003_0000000e_00000001_00000000_id, +L13_2174if_f_id, +L28_52if_f_id, +L28_53if_d_id, +S_2195_CopyBytePlnByPlnUnchained_00000003_0000000e_00000001_00000000_id, +L13_2175if_f_id, +L23_44if_f_id, +L23_45if_f_id, +L23_46if_f_id, +L23_47if_f_id, +S_2196_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000000_id, +L13_2176if_f_id, +L23_50w_t_id, +L23_51w_d_id, +L23_48if_f_id, +L23_52w_t_id, +L23_53w_d_id, +L23_49if_d_id, +S_2197_UnchainedWordWrite_00000003_0000000e_00000001_id, +L13_2177if_f_id, +S_2198_UnchainedWordFill_00000003_0000000e_00000001_id, +L13_2178if_f_id, +L28_54if_f_id, +L28_55if_f_id, +L28_56if_f_id, +L28_57if_f_id, +S_2199_UnchainedWordMove_00000003_0000000e_00000001_00000000_id, +L13_2179if_f_id, +L28_58if_f_id, +L28_59if_d_id, +S_2200_CopyWordPlnByPlnUnchained_00000003_0000000e_00000001_00000000_id, +L13_2180if_f_id, +L23_54if_f_id, +L23_55if_f_id, +L23_56if_f_id, +L23_57if_f_id, +S_2201_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000000_id, +L13_2181if_f_id, +L23_60w_t_id, +L23_61w_d_id, +L23_58if_f_id, +L23_62w_t_id, +L23_63w_d_id, +L23_59if_d_id, +S_2202_UnchainedDwordWrite_00000003_0000000e_00000001_id, +L13_2182if_f_id, +S_2203_UnchainedDwordFill_00000003_0000000e_00000001_id, +L13_2183if_f_id, +S_2204_UnchainedDwordMove_00000003_0000000e_00000001_00000000_id, +L13_2184if_f_id, +S_2205_UnchainedByteMove_00000000_0000000e_00000001_00000001_id, +L13_2185if_f_id, +L28_60if_f_id, +L28_61if_d_id, +S_2206_CopyBytePlnByPlnUnchained_00000000_0000000e_00000001_00000001_id, +L13_2186if_f_id, +L23_64if_f_id, +L23_65if_f_id, +L23_66if_f_id, +L23_67if_f_id, +S_2207_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000001_id, +L13_2187if_f_id, +L23_70w_t_id, +L23_71w_d_id, +L23_68if_f_id, +L23_72w_t_id, +L23_73w_d_id, +L23_69if_d_id, +S_2208_UnchainedWordMove_00000000_0000000e_00000001_00000001_id, +L13_2188if_f_id, +L28_62if_f_id, +L28_63if_d_id, +S_2209_CopyWordPlnByPlnUnchained_00000000_0000000e_00000001_00000001_id, +L13_2189if_f_id, +L23_74if_f_id, +L23_75if_f_id, +L23_76if_f_id, +L23_77if_f_id, +S_2210_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000001_id, +L13_2190if_f_id, +L23_80w_t_id, +L23_81w_d_id, +L23_78if_f_id, +L23_82w_t_id, +L23_83w_d_id, +L23_79if_d_id, +S_2211_UnchainedDwordMove_00000000_0000000e_00000001_00000001_id, +L13_2191if_f_id, +S_2212_UnchainedByteMove_00000001_0000000e_00000001_00000001_id, +L13_2192if_f_id, +L28_64if_f_id, +L28_66if_f_id, +L28_67if_f_id, +L28_68if_f_id, +L28_69if_f_id, +L28_65if_d_id, +S_2213_CopyDirByte1Plane_00000001_id, +L13_2193if_f_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_2182_CopyBytePlnByPlnUnchained_00000002_0000000e_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2182_CopyBytePlnByPlnUnchained_00000002_0000000e_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2182_CopyBytePlnByPlnUnchained_00000002_0000000e_00000001_00000000 = (IHPE)S_2182_CopyBytePlnByPlnUnchained_00000002_0000000e_00000001_00000000 ; +LOCAL IUH L13_2162if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2162if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2162if_f = (IHPE)L13_2162if_f ; +LOCAL IUH L23_24if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_24if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_24if_f = (IHPE)L23_24if_f ; +LOCAL IUH L23_25if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_25if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_25if_f = (IHPE)L23_25if_f ; +LOCAL IUH L23_26if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_26if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_26if_f = (IHPE)L23_26if_f ; +LOCAL IUH L23_27if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_27if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_27if_f = (IHPE)L23_27if_f ; +GLOBAL IUH S_2183_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2183_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2183_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000000 = (IHPE)S_2183_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000000 ; +LOCAL IUH L13_2163if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2163if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2163if_f = (IHPE)L13_2163if_f ; +LOCAL IUH L23_30w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_30w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_30w_t = (IHPE)L23_30w_t ; +LOCAL IUH L23_31w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_31w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_31w_d = (IHPE)L23_31w_d ; +LOCAL IUH L23_28if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_28if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_28if_f = (IHPE)L23_28if_f ; +LOCAL IUH L23_32w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_32w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_32w_t = (IHPE)L23_32w_t ; +LOCAL IUH L23_33w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_33w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_33w_d = (IHPE)L23_33w_d ; +LOCAL IUH L23_29if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_29if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_29if_d = (IHPE)L23_29if_d ; +GLOBAL IUH S_2184_UnchainedWordWrite_00000002_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2184_UnchainedWordWrite_00000002_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2184_UnchainedWordWrite_00000002_0000000e_00000001 = (IHPE)S_2184_UnchainedWordWrite_00000002_0000000e_00000001 ; +LOCAL IUH L13_2164if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2164if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2164if_f = (IHPE)L13_2164if_f ; +GLOBAL IUH S_2185_UnchainedWordFill_00000002_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2185_UnchainedWordFill_00000002_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2185_UnchainedWordFill_00000002_0000000e_00000001 = (IHPE)S_2185_UnchainedWordFill_00000002_0000000e_00000001 ; +LOCAL IUH L13_2165if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2165if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2165if_f = (IHPE)L13_2165if_f ; +LOCAL IUH L28_42if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_42if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_42if_f = (IHPE)L28_42if_f ; +LOCAL IUH L28_43if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_43if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_43if_f = (IHPE)L28_43if_f ; +LOCAL IUH L28_44if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_44if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_44if_f = (IHPE)L28_44if_f ; +LOCAL IUH L28_45if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_45if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_45if_f = (IHPE)L28_45if_f ; +GLOBAL IUH S_2186_UnchainedWordMove_00000002_0000000e_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2186_UnchainedWordMove_00000002_0000000e_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2186_UnchainedWordMove_00000002_0000000e_00000001_00000000 = (IHPE)S_2186_UnchainedWordMove_00000002_0000000e_00000001_00000000 ; +LOCAL IUH L13_2166if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2166if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2166if_f = (IHPE)L13_2166if_f ; +LOCAL IUH L28_46if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_46if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_46if_f = (IHPE)L28_46if_f ; +LOCAL IUH L28_47if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_47if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_47if_d = (IHPE)L28_47if_d ; +GLOBAL IUH S_2187_CopyWordPlnByPlnUnchained_00000002_0000000e_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2187_CopyWordPlnByPlnUnchained_00000002_0000000e_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2187_CopyWordPlnByPlnUnchained_00000002_0000000e_00000001_00000000 = (IHPE)S_2187_CopyWordPlnByPlnUnchained_00000002_0000000e_00000001_00000000 ; +LOCAL IUH L13_2167if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2167if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2167if_f = (IHPE)L13_2167if_f ; +LOCAL IUH L23_34if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_34if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_34if_f = (IHPE)L23_34if_f ; +LOCAL IUH L23_35if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_35if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_35if_f = (IHPE)L23_35if_f ; +LOCAL IUH L23_36if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_36if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_36if_f = (IHPE)L23_36if_f ; +LOCAL IUH L23_37if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_37if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_37if_f = (IHPE)L23_37if_f ; +GLOBAL IUH S_2188_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2188_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2188_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000000 = (IHPE)S_2188_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000000 ; +LOCAL IUH L13_2168if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2168if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2168if_f = (IHPE)L13_2168if_f ; +LOCAL IUH L23_40w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_40w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_40w_t = (IHPE)L23_40w_t ; +LOCAL IUH L23_41w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_41w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_41w_d = (IHPE)L23_41w_d ; +LOCAL IUH L23_38if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_38if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_38if_f = (IHPE)L23_38if_f ; +LOCAL IUH L23_42w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_42w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_42w_t = (IHPE)L23_42w_t ; +LOCAL IUH L23_43w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_43w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_43w_d = (IHPE)L23_43w_d ; +LOCAL IUH L23_39if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_39if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_39if_d = (IHPE)L23_39if_d ; +GLOBAL IUH S_2189_UnchainedDwordWrite_00000002_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2189_UnchainedDwordWrite_00000002_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2189_UnchainedDwordWrite_00000002_0000000e_00000001 = (IHPE)S_2189_UnchainedDwordWrite_00000002_0000000e_00000001 ; +LOCAL IUH L13_2169if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2169if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2169if_f = (IHPE)L13_2169if_f ; +GLOBAL IUH S_2190_UnchainedDwordFill_00000002_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2190_UnchainedDwordFill_00000002_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2190_UnchainedDwordFill_00000002_0000000e_00000001 = (IHPE)S_2190_UnchainedDwordFill_00000002_0000000e_00000001 ; +LOCAL IUH L13_2170if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2170if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2170if_f = (IHPE)L13_2170if_f ; +GLOBAL IUH S_2191_UnchainedDwordMove_00000002_0000000e_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2191_UnchainedDwordMove_00000002_0000000e_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2191_UnchainedDwordMove_00000002_0000000e_00000001_00000000 = (IHPE)S_2191_UnchainedDwordMove_00000002_0000000e_00000001_00000000 ; +LOCAL IUH L13_2171if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2171if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2171if_f = (IHPE)L13_2171if_f ; +GLOBAL IUH S_2192_UnchainedByteWrite_00000003_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2192_UnchainedByteWrite_00000003_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2192_UnchainedByteWrite_00000003_0000000e_00000001 = (IHPE)S_2192_UnchainedByteWrite_00000003_0000000e_00000001 ; +LOCAL IUH L13_2172if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2172if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2172if_f = (IHPE)L13_2172if_f ; +GLOBAL IUH S_2193_UnchainedByteFill_00000003_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2193_UnchainedByteFill_00000003_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2193_UnchainedByteFill_00000003_0000000e_00000001 = (IHPE)S_2193_UnchainedByteFill_00000003_0000000e_00000001 ; +LOCAL IUH L13_2173if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2173if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2173if_f = (IHPE)L13_2173if_f ; +LOCAL IUH L28_48if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_48if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_48if_f = (IHPE)L28_48if_f ; +LOCAL IUH L28_49if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_49if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_49if_f = (IHPE)L28_49if_f ; +LOCAL IUH L28_50if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_50if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_50if_f = (IHPE)L28_50if_f ; +LOCAL IUH L28_51if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_51if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_51if_f = (IHPE)L28_51if_f ; +GLOBAL IUH S_2194_UnchainedByteMove_00000003_0000000e_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2194_UnchainedByteMove_00000003_0000000e_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2194_UnchainedByteMove_00000003_0000000e_00000001_00000000 = (IHPE)S_2194_UnchainedByteMove_00000003_0000000e_00000001_00000000 ; +LOCAL IUH L13_2174if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2174if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2174if_f = (IHPE)L13_2174if_f ; +LOCAL IUH L28_52if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_52if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_52if_f = (IHPE)L28_52if_f ; +LOCAL IUH L28_53if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_53if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_53if_d = (IHPE)L28_53if_d ; +GLOBAL IUH S_2195_CopyBytePlnByPlnUnchained_00000003_0000000e_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2195_CopyBytePlnByPlnUnchained_00000003_0000000e_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2195_CopyBytePlnByPlnUnchained_00000003_0000000e_00000001_00000000 = (IHPE)S_2195_CopyBytePlnByPlnUnchained_00000003_0000000e_00000001_00000000 ; +LOCAL IUH L13_2175if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2175if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2175if_f = (IHPE)L13_2175if_f ; +LOCAL IUH L23_44if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_44if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_44if_f = (IHPE)L23_44if_f ; +LOCAL IUH L23_45if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_45if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_45if_f = (IHPE)L23_45if_f ; +LOCAL IUH L23_46if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_46if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_46if_f = (IHPE)L23_46if_f ; +LOCAL IUH L23_47if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_47if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_47if_f = (IHPE)L23_47if_f ; +GLOBAL IUH S_2196_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2196_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2196_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000000 = (IHPE)S_2196_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000000 ; +LOCAL IUH L13_2176if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2176if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2176if_f = (IHPE)L13_2176if_f ; +LOCAL IUH L23_50w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_50w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_50w_t = (IHPE)L23_50w_t ; +LOCAL IUH L23_51w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_51w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_51w_d = (IHPE)L23_51w_d ; +LOCAL IUH L23_48if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_48if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_48if_f = (IHPE)L23_48if_f ; +LOCAL IUH L23_52w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_52w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_52w_t = (IHPE)L23_52w_t ; +LOCAL IUH L23_53w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_53w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_53w_d = (IHPE)L23_53w_d ; +LOCAL IUH L23_49if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_49if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_49if_d = (IHPE)L23_49if_d ; +GLOBAL IUH S_2197_UnchainedWordWrite_00000003_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2197_UnchainedWordWrite_00000003_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2197_UnchainedWordWrite_00000003_0000000e_00000001 = (IHPE)S_2197_UnchainedWordWrite_00000003_0000000e_00000001 ; +LOCAL IUH L13_2177if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2177if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2177if_f = (IHPE)L13_2177if_f ; +GLOBAL IUH S_2198_UnchainedWordFill_00000003_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2198_UnchainedWordFill_00000003_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2198_UnchainedWordFill_00000003_0000000e_00000001 = (IHPE)S_2198_UnchainedWordFill_00000003_0000000e_00000001 ; +LOCAL IUH L13_2178if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2178if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2178if_f = (IHPE)L13_2178if_f ; +LOCAL IUH L28_54if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_54if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_54if_f = (IHPE)L28_54if_f ; +LOCAL IUH L28_55if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_55if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_55if_f = (IHPE)L28_55if_f ; +LOCAL IUH L28_56if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_56if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_56if_f = (IHPE)L28_56if_f ; +LOCAL IUH L28_57if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_57if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_57if_f = (IHPE)L28_57if_f ; +GLOBAL IUH S_2199_UnchainedWordMove_00000003_0000000e_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2199_UnchainedWordMove_00000003_0000000e_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2199_UnchainedWordMove_00000003_0000000e_00000001_00000000 = (IHPE)S_2199_UnchainedWordMove_00000003_0000000e_00000001_00000000 ; +LOCAL IUH L13_2179if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2179if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2179if_f = (IHPE)L13_2179if_f ; +LOCAL IUH L28_58if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_58if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_58if_f = (IHPE)L28_58if_f ; +LOCAL IUH L28_59if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_59if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_59if_d = (IHPE)L28_59if_d ; +GLOBAL IUH S_2200_CopyWordPlnByPlnUnchained_00000003_0000000e_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2200_CopyWordPlnByPlnUnchained_00000003_0000000e_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2200_CopyWordPlnByPlnUnchained_00000003_0000000e_00000001_00000000 = (IHPE)S_2200_CopyWordPlnByPlnUnchained_00000003_0000000e_00000001_00000000 ; +LOCAL IUH L13_2180if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2180if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2180if_f = (IHPE)L13_2180if_f ; +LOCAL IUH L23_54if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_54if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_54if_f = (IHPE)L23_54if_f ; +LOCAL IUH L23_55if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_55if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_55if_f = (IHPE)L23_55if_f ; +LOCAL IUH L23_56if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_56if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_56if_f = (IHPE)L23_56if_f ; +LOCAL IUH L23_57if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_57if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_57if_f = (IHPE)L23_57if_f ; +GLOBAL IUH S_2201_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2201_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2201_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000000 = (IHPE)S_2201_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000000 ; +LOCAL IUH L13_2181if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2181if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2181if_f = (IHPE)L13_2181if_f ; +LOCAL IUH L23_60w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_60w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_60w_t = (IHPE)L23_60w_t ; +LOCAL IUH L23_61w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_61w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_61w_d = (IHPE)L23_61w_d ; +LOCAL IUH L23_58if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_58if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_58if_f = (IHPE)L23_58if_f ; +LOCAL IUH L23_62w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_62w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_62w_t = (IHPE)L23_62w_t ; +LOCAL IUH L23_63w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_63w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_63w_d = (IHPE)L23_63w_d ; +LOCAL IUH L23_59if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_59if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_59if_d = (IHPE)L23_59if_d ; +GLOBAL IUH S_2202_UnchainedDwordWrite_00000003_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2202_UnchainedDwordWrite_00000003_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2202_UnchainedDwordWrite_00000003_0000000e_00000001 = (IHPE)S_2202_UnchainedDwordWrite_00000003_0000000e_00000001 ; +LOCAL IUH L13_2182if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2182if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2182if_f = (IHPE)L13_2182if_f ; +GLOBAL IUH S_2203_UnchainedDwordFill_00000003_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2203_UnchainedDwordFill_00000003_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2203_UnchainedDwordFill_00000003_0000000e_00000001 = (IHPE)S_2203_UnchainedDwordFill_00000003_0000000e_00000001 ; +LOCAL IUH L13_2183if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2183if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2183if_f = (IHPE)L13_2183if_f ; +GLOBAL IUH S_2204_UnchainedDwordMove_00000003_0000000e_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2204_UnchainedDwordMove_00000003_0000000e_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2204_UnchainedDwordMove_00000003_0000000e_00000001_00000000 = (IHPE)S_2204_UnchainedDwordMove_00000003_0000000e_00000001_00000000 ; +LOCAL IUH L13_2184if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2184if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2184if_f = (IHPE)L13_2184if_f ; +GLOBAL IUH S_2205_UnchainedByteMove_00000000_0000000e_00000001_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2205_UnchainedByteMove_00000000_0000000e_00000001_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2205_UnchainedByteMove_00000000_0000000e_00000001_00000001 = (IHPE)S_2205_UnchainedByteMove_00000000_0000000e_00000001_00000001 ; +LOCAL IUH L13_2185if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2185if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2185if_f = (IHPE)L13_2185if_f ; +LOCAL IUH L28_60if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_60if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_60if_f = (IHPE)L28_60if_f ; +LOCAL IUH L28_61if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_61if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_61if_d = (IHPE)L28_61if_d ; +GLOBAL IUH S_2206_CopyBytePlnByPlnUnchained_00000000_0000000e_00000001_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2206_CopyBytePlnByPlnUnchained_00000000_0000000e_00000001_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2206_CopyBytePlnByPlnUnchained_00000000_0000000e_00000001_00000001 = (IHPE)S_2206_CopyBytePlnByPlnUnchained_00000000_0000000e_00000001_00000001 ; +LOCAL IUH L13_2186if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2186if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2186if_f = (IHPE)L13_2186if_f ; +LOCAL IUH L23_64if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_64if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_64if_f = (IHPE)L23_64if_f ; +LOCAL IUH L23_65if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_65if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_65if_f = (IHPE)L23_65if_f ; +LOCAL IUH L23_66if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_66if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_66if_f = (IHPE)L23_66if_f ; +LOCAL IUH L23_67if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_67if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_67if_f = (IHPE)L23_67if_f ; +GLOBAL IUH S_2207_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2207_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2207_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000001 = (IHPE)S_2207_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000001 ; +LOCAL IUH L13_2187if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2187if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2187if_f = (IHPE)L13_2187if_f ; +LOCAL IUH L23_70w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_70w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_70w_t = (IHPE)L23_70w_t ; +LOCAL IUH L23_71w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_71w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_71w_d = (IHPE)L23_71w_d ; +LOCAL IUH L23_68if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_68if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_68if_f = (IHPE)L23_68if_f ; +LOCAL IUH L23_72w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_72w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_72w_t = (IHPE)L23_72w_t ; +LOCAL IUH L23_73w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_73w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_73w_d = (IHPE)L23_73w_d ; +LOCAL IUH L23_69if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_69if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_69if_d = (IHPE)L23_69if_d ; +GLOBAL IUH S_2208_UnchainedWordMove_00000000_0000000e_00000001_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2208_UnchainedWordMove_00000000_0000000e_00000001_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2208_UnchainedWordMove_00000000_0000000e_00000001_00000001 = (IHPE)S_2208_UnchainedWordMove_00000000_0000000e_00000001_00000001 ; +LOCAL IUH L13_2188if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2188if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2188if_f = (IHPE)L13_2188if_f ; +LOCAL IUH L28_62if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_62if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_62if_f = (IHPE)L28_62if_f ; +LOCAL IUH L28_63if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_63if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_63if_d = (IHPE)L28_63if_d ; +GLOBAL IUH S_2209_CopyWordPlnByPlnUnchained_00000000_0000000e_00000001_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2209_CopyWordPlnByPlnUnchained_00000000_0000000e_00000001_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2209_CopyWordPlnByPlnUnchained_00000000_0000000e_00000001_00000001 = (IHPE)S_2209_CopyWordPlnByPlnUnchained_00000000_0000000e_00000001_00000001 ; +LOCAL IUH L13_2189if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2189if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2189if_f = (IHPE)L13_2189if_f ; +LOCAL IUH L23_74if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_74if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_74if_f = (IHPE)L23_74if_f ; +LOCAL IUH L23_75if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_75if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_75if_f = (IHPE)L23_75if_f ; +LOCAL IUH L23_76if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_76if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_76if_f = (IHPE)L23_76if_f ; +LOCAL IUH L23_77if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_77if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_77if_f = (IHPE)L23_77if_f ; +GLOBAL IUH S_2210_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2210_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2210_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000001 = (IHPE)S_2210_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000001 ; +LOCAL IUH L13_2190if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2190if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2190if_f = (IHPE)L13_2190if_f ; +LOCAL IUH L23_80w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_80w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_80w_t = (IHPE)L23_80w_t ; +LOCAL IUH L23_81w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_81w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_81w_d = (IHPE)L23_81w_d ; +LOCAL IUH L23_78if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_78if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_78if_f = (IHPE)L23_78if_f ; +LOCAL IUH L23_82w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_82w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_82w_t = (IHPE)L23_82w_t ; +LOCAL IUH L23_83w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_83w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_83w_d = (IHPE)L23_83w_d ; +LOCAL IUH L23_79if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_79if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_79if_d = (IHPE)L23_79if_d ; +GLOBAL IUH S_2211_UnchainedDwordMove_00000000_0000000e_00000001_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2211_UnchainedDwordMove_00000000_0000000e_00000001_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2211_UnchainedDwordMove_00000000_0000000e_00000001_00000001 = (IHPE)S_2211_UnchainedDwordMove_00000000_0000000e_00000001_00000001 ; +LOCAL IUH L13_2191if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2191if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2191if_f = (IHPE)L13_2191if_f ; +GLOBAL IUH S_2212_UnchainedByteMove_00000001_0000000e_00000001_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2212_UnchainedByteMove_00000001_0000000e_00000001_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2212_UnchainedByteMove_00000001_0000000e_00000001_00000001 = (IHPE)S_2212_UnchainedByteMove_00000001_0000000e_00000001_00000001 ; +LOCAL IUH L13_2192if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2192if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2192if_f = (IHPE)L13_2192if_f ; +LOCAL IUH L28_64if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_64if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_64if_f = (IHPE)L28_64if_f ; +LOCAL IUH L28_66if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_66if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_66if_f = (IHPE)L28_66if_f ; +LOCAL IUH L28_67if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_67if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_67if_f = (IHPE)L28_67if_f ; +LOCAL IUH L28_68if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_68if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_68if_f = (IHPE)L28_68if_f ; +LOCAL IUH L28_69if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_69if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_69if_f = (IHPE)L28_69if_f ; +LOCAL IUH L28_65if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_65if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_65if_d = (IHPE)L28_65if_d ; +GLOBAL IUH S_2213_CopyDirByte1Plane_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2213_CopyDirByte1Plane_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2213_CopyDirByte1Plane_00000001 = (IHPE)S_2213_CopyDirByte1Plane_00000001 ; +LOCAL IUH L13_2193if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2193if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2193if_f = (IHPE)L13_2193if_f ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + case S_2182_CopyBytePlnByPlnUnchained_00000002_0000000e_00000001_00000000_id : + S_2182_CopyBytePlnByPlnUnchained_00000002_0000000e_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2182) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2162if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2162if_f_id : + L13_2162if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_24if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2183_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2183_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_24if_f_id : + L23_24if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_25if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2183_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2183_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_25if_f_id : + L23_25if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_26if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2183_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2183_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_26if_f_id : + L23_26if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_27if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2183_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2183_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_27if_f_id : + L23_27if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2183_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000000_id : + S_2183_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2183) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2163if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2163if_f_id : + L13_2163if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_28if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_31w_d; + case L23_30w_t_id : + L23_30w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_30w_t; + case L23_31w_d_id : + L23_31w_d: ; + { extern IUH L23_29if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_29if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_28if_f_id : + L23_28if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_33w_d; + case L23_32w_t_id : + L23_32w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_32w_t; + case L23_33w_d_id : + L23_33w_d: ; + case L23_29if_d_id : + L23_29if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2184_UnchainedWordWrite_00000002_0000000e_00000001_id : + S_2184_UnchainedWordWrite_00000002_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2184) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2164if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2164if_f_id : + L13_2164if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1420) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2185_UnchainedWordFill_00000002_0000000e_00000001_id : + S_2185_UnchainedWordFill_00000002_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2185) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2165if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2165if_f_id : + L13_2165if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1420) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_42if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_42if_f_id : + L28_42if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_43if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU8 *)&(r4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+5) )) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_43if_f_id : + L28_43if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_44if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_44if_f_id : + L28_44if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_45if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_45if_f_id : + L28_45if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2186_UnchainedWordMove_00000002_0000000e_00000001_00000000_id : + S_2186_UnchainedWordMove_00000002_0000000e_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2186) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2166if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2166if_f_id : + L13_2166if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_46if_f; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2187_CopyWordPlnByPlnUnchained_00000002_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2187_CopyWordPlnByPlnUnchained_00000002_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + { extern IUH L28_47if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_47if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_46if_f_id : + L28_46if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2187_CopyWordPlnByPlnUnchained_00000002_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2187_CopyWordPlnByPlnUnchained_00000002_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + case L28_47if_d_id : + L28_47if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2187_CopyWordPlnByPlnUnchained_00000002_0000000e_00000001_00000000_id : + S_2187_CopyWordPlnByPlnUnchained_00000002_0000000e_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2187) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2167if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2167if_f_id : + L13_2167if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_34if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2188_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2188_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_34if_f_id : + L23_34if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_35if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2188_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2188_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_35if_f_id : + L23_35if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_36if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2188_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2188_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_36if_f_id : + L23_36if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_37if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2188_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2188_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_37if_f_id : + L23_37if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2188_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000000_id : + S_2188_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2188) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2168if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2168if_f_id : + L13_2168if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_38if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_41w_d; + case L23_40w_t_id : + L23_40w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_40w_t; + case L23_41w_d_id : + L23_41w_d: ; + { extern IUH L23_39if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_39if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_38if_f_id : + L23_38if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_43w_d; + case L23_42w_t_id : + L23_42w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_42w_t; + case L23_43w_d_id : + L23_43w_d: ; + case L23_39if_d_id : + L23_39if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2189_UnchainedDwordWrite_00000002_0000000e_00000001_id : + S_2189_UnchainedDwordWrite_00000002_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2189) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2169if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2169if_f_id : + L13_2169if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2184_UnchainedWordWrite_00000002_0000000e_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2184_UnchainedWordWrite_00000002_0000000e_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2184_UnchainedWordWrite_00000002_0000000e_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2184_UnchainedWordWrite_00000002_0000000e_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2190_UnchainedDwordFill_00000002_0000000e_00000001_id : + S_2190_UnchainedDwordFill_00000002_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2190) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2170if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2170if_f_id : + L13_2170if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2185_UnchainedWordFill_00000002_0000000e_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2185_UnchainedWordFill_00000002_0000000e_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2185_UnchainedWordFill_00000002_0000000e_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2185_UnchainedWordFill_00000002_0000000e_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2191_UnchainedDwordMove_00000002_0000000e_00000001_00000000_id : + S_2191_UnchainedDwordMove_00000002_0000000e_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2191) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2171if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2171if_f_id : + L13_2171if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2186_UnchainedWordMove_00000002_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2186_UnchainedWordMove_00000002_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2192_UnchainedByteWrite_00000003_0000000e_00000001_id : + S_2192_UnchainedByteWrite_00000003_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2192) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2172if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2172if_f_id : + L13_2172if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r22)) = (IS32)(1420) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+3) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2193_UnchainedByteFill_00000003_0000000e_00000001_id : + S_2193_UnchainedByteFill_00000003_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2193) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2173if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2173if_f_id : + L13_2173if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r22)) = (IS32)(1420) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+4) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_48if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_48if_f_id : + L28_48if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_49if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_49if_f_id : + L28_49if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_50if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_50if_f_id : + L28_50if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_51if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_51if_f_id : + L28_51if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2194_UnchainedByteMove_00000003_0000000e_00000001_00000000_id : + S_2194_UnchainedByteMove_00000003_0000000e_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2194) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2174if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2174if_f_id : + L13_2174if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_52if_f; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2195_CopyBytePlnByPlnUnchained_00000003_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2195_CopyBytePlnByPlnUnchained_00000003_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + { extern IUH L28_53if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_53if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_52if_f_id : + L28_52if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2195_CopyBytePlnByPlnUnchained_00000003_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2195_CopyBytePlnByPlnUnchained_00000003_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + case L28_53if_d_id : + L28_53if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2195_CopyBytePlnByPlnUnchained_00000003_0000000e_00000001_00000000_id : + S_2195_CopyBytePlnByPlnUnchained_00000003_0000000e_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2195) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2175if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2175if_f_id : + L13_2175if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_44if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2196_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2196_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_44if_f_id : + L23_44if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_45if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2196_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2196_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_45if_f_id : + L23_45if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_46if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2196_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2196_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_46if_f_id : + L23_46if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_47if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2196_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2196_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_47if_f_id : + L23_47if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2196_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000000_id : + S_2196_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2196) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2176if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2176if_f_id : + L13_2176if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_48if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_51w_d; + case L23_50w_t_id : + L23_50w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r22)) = (IS32)(1420) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_50w_t; + case L23_51w_d_id : + L23_51w_d: ; + { extern IUH L23_49if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_49if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_48if_f_id : + L23_48if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_53w_d; + case L23_52w_t_id : + L23_52w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1420) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_52w_t; + case L23_53w_d_id : + L23_53w_d: ; + case L23_49if_d_id : + L23_49if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2197_UnchainedWordWrite_00000003_0000000e_00000001_id : + S_2197_UnchainedWordWrite_00000003_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2197) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2177if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2177if_f_id : + L13_2177if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+4) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r22)) = (IS32)(1420) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+3) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r22)) = (IS32)(1420) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+4) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2198_UnchainedWordFill_00000003_0000000e_00000001_id : + S_2198_UnchainedWordFill_00000003_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2198) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2178if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2178if_f_id : + L13_2178if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+5) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+5) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+5) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+5) + REGLONG) = (*((IU32 *)(LocalIUH+5) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r22)) = (IS32)(1420) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+4) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r22)) = (IS32)(1420) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+5) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_54if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_54if_f_id : + L28_54if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_55if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU8 *)&(r4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+5) )) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_55if_f_id : + L28_55if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_56if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_56if_f_id : + L28_56if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_57if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_57if_f_id : + L28_57if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2199_UnchainedWordMove_00000003_0000000e_00000001_00000000_id : + S_2199_UnchainedWordMove_00000003_0000000e_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2199) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2179if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2179if_f_id : + L13_2179if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_58if_f; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2200_CopyWordPlnByPlnUnchained_00000003_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2200_CopyWordPlnByPlnUnchained_00000003_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + { extern IUH L28_59if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_59if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_58if_f_id : + L28_58if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2200_CopyWordPlnByPlnUnchained_00000003_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2200_CopyWordPlnByPlnUnchained_00000003_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + case L28_59if_d_id : + L28_59if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2200_CopyWordPlnByPlnUnchained_00000003_0000000e_00000001_00000000_id : + S_2200_CopyWordPlnByPlnUnchained_00000003_0000000e_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2200) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2180if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2180if_f_id : + L13_2180if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_54if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2201_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2201_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_54if_f_id : + L23_54if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_55if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2201_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2201_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_55if_f_id : + L23_55if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_56if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2201_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2201_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_56if_f_id : + L23_56if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_57if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2201_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2201_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_57if_f_id : + L23_57if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2201_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000000_id : + S_2201_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2201) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2181if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2181if_f_id : + L13_2181if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_58if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_61w_d; + case L23_60w_t_id : + L23_60w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r22)) = (IS32)(1420) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r22)) = (IS32)(1420) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_60w_t; + case L23_61w_d_id : + L23_61w_d: ; + { extern IUH L23_59if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_59if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_58if_f_id : + L23_58if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_63w_d; + case L23_62w_t_id : + L23_62w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1420) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1420) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_62w_t; + case L23_63w_d_id : + L23_63w_d: ; + case L23_59if_d_id : + L23_59if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2202_UnchainedDwordWrite_00000003_0000000e_00000001_id : + S_2202_UnchainedDwordWrite_00000003_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2202) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2182if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2182if_f_id : + L13_2182if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2197_UnchainedWordWrite_00000003_0000000e_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2197_UnchainedWordWrite_00000003_0000000e_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2197_UnchainedWordWrite_00000003_0000000e_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2197_UnchainedWordWrite_00000003_0000000e_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2203_UnchainedDwordFill_00000003_0000000e_00000001_id : + S_2203_UnchainedDwordFill_00000003_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2203) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2183if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2183if_f_id : + L13_2183if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2198_UnchainedWordFill_00000003_0000000e_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2198_UnchainedWordFill_00000003_0000000e_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2198_UnchainedWordFill_00000003_0000000e_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2198_UnchainedWordFill_00000003_0000000e_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2204_UnchainedDwordMove_00000003_0000000e_00000001_00000000_id : + S_2204_UnchainedDwordMove_00000003_0000000e_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2204) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2184if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2184if_f_id : + L13_2184if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2199_UnchainedWordMove_00000003_0000000e_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2199_UnchainedWordMove_00000003_0000000e_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2205_UnchainedByteMove_00000000_0000000e_00000001_00000001_id : + S_2205_UnchainedByteMove_00000000_0000000e_00000001_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2205) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2185if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2185if_f_id : + L13_2185if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_60if_f; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2206_CopyBytePlnByPlnUnchained_00000000_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2206_CopyBytePlnByPlnUnchained_00000000_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + { extern IUH L28_61if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_61if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_60if_f_id : + L28_60if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2206_CopyBytePlnByPlnUnchained_00000000_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2206_CopyBytePlnByPlnUnchained_00000000_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + case L28_61if_d_id : + L28_61if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2206_CopyBytePlnByPlnUnchained_00000000_0000000e_00000001_00000001_id : + S_2206_CopyBytePlnByPlnUnchained_00000000_0000000e_00000001_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2206) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2186if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2186if_f_id : + L13_2186if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_64if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2207_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2207_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_64if_f_id : + L23_64if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_65if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2207_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2207_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_65if_f_id : + L23_65if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_66if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2207_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2207_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_66if_f_id : + L23_66if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_67if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2207_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2207_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_67if_f_id : + L23_67if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2207_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000001_id : + S_2207_CopyByte1PlaneUnchained_00000000_0000000e_00000001_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2207) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2187if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2187if_f_id : + L13_2187if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_68if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_71w_d; + case L23_70w_t_id : + L23_70w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_70w_t; + case L23_71w_d_id : + L23_71w_d: ; + { extern IUH L23_69if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_69if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_68if_f_id : + L23_68if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_73w_d; + case L23_72w_t_id : + L23_72w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_72w_t; + case L23_73w_d_id : + L23_73w_d: ; + case L23_69if_d_id : + L23_69if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2208_UnchainedWordMove_00000000_0000000e_00000001_00000001_id : + S_2208_UnchainedWordMove_00000000_0000000e_00000001_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2208) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2188if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2188if_f_id : + L13_2188if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_62if_f; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2209_CopyWordPlnByPlnUnchained_00000000_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2209_CopyWordPlnByPlnUnchained_00000000_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + { extern IUH L28_63if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_63if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_62if_f_id : + L28_62if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2209_CopyWordPlnByPlnUnchained_00000000_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2209_CopyWordPlnByPlnUnchained_00000000_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + case L28_63if_d_id : + L28_63if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2209_CopyWordPlnByPlnUnchained_00000000_0000000e_00000001_00000001_id : + S_2209_CopyWordPlnByPlnUnchained_00000000_0000000e_00000001_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2209) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2189if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2189if_f_id : + L13_2189if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_74if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2210_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2210_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_74if_f_id : + L23_74if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_75if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2210_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2210_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_75if_f_id : + L23_75if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_76if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2210_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2210_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_76if_f_id : + L23_76if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_77if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2210_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2210_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_77if_f_id : + L23_77if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2210_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000001_id : + S_2210_CopyWord1PlaneUnchained_00000000_0000000e_00000001_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2210) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2190if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2190if_f_id : + L13_2190if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_78if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_81w_d; + case L23_80w_t_id : + L23_80w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_80w_t; + case L23_81w_d_id : + L23_81w_d: ; + { extern IUH L23_79if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_79if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_78if_f_id : + L23_78if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_83w_d; + case L23_82w_t_id : + L23_82w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_82w_t; + case L23_83w_d_id : + L23_83w_d: ; + case L23_79if_d_id : + L23_79if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2211_UnchainedDwordMove_00000000_0000000e_00000001_00000001_id : + S_2211_UnchainedDwordMove_00000000_0000000e_00000001_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2211) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2191if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2191if_f_id : + L13_2191if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2208_UnchainedWordMove_00000000_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2208_UnchainedWordMove_00000000_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2212_UnchainedByteMove_00000001_0000000e_00000001_00000001_id : + S_2212_UnchainedByteMove_00000001_0000000e_00000001_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2212) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2192if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2192if_f_id : + L13_2192if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_64if_f; + *((IUH *)(r1+0)) = (IS32)(16398) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = (IS32)(-1) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2167_UnchainedByteFill_00000001_0000000e_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2167_UnchainedByteFill_00000001_0000000e_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16399) ; + { extern IUH L28_65if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_65if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_64if_f_id : + L28_64if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_66if_f; + *((IUH *)(r1+0)) = (IS32)(16400) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r2)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2213_CopyDirByte1Plane_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2213_CopyDirByte1Plane_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16401) ; + case L28_66if_f_id : + L28_66if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_67if_f; + *((IUH *)(r1+0)) = (IS32)(16400) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r2)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r3)) = *((IUH *)&(r20)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2213_CopyDirByte1Plane_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2213_CopyDirByte1Plane_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16401) ; + case L28_67if_f_id : + L28_67if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_68if_f; + *((IUH *)(r1+0)) = (IS32)(16400) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r2)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2213_CopyDirByte1Plane_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2213_CopyDirByte1Plane_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16401) ; + case L28_68if_f_id : + L28_68if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_69if_f; + *((IUH *)(r1+0)) = (IS32)(16400) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r2)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r3)) = *((IUH *)&(r20)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2213_CopyDirByte1Plane_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2213_CopyDirByte1Plane_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16401) ; + case L28_69if_f_id : + L28_69if_f: ; + case L28_65if_d_id : + L28_65if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2213_CopyDirByte1Plane_00000001_id : + S_2213_CopyDirByte1Plane_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2213) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2193if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2193if_f_id : + L13_2193if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16410) ; + *((IUH *)&(r2)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2214_CopyBwdByte1Plane() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2214_CopyBwdByte1Plane(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16411) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid004.c b/private/mvdm/softpc.new/base/cvidc/sevid004.c new file mode 100644 index 000000000..45eac7ede --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid004.c @@ -0,0 +1,5179 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_2214_CopyBwdByte1Plane_id, +L13_2194if_f_id, +L23_84w_t_id, +L23_85w_d_id, +S_2215_UnchainedWordMove_00000001_0000000e_00000001_00000001_id, +L13_2195if_f_id, +L28_70if_f_id, +L28_72if_f_id, +L28_73if_f_id, +L28_74if_f_id, +L28_75if_f_id, +L28_71if_d_id, +S_2216_CopyDirWord1Plane_00000001_id, +L13_2196if_f_id, +S_2217_CopyBwdWord1Plane_id, +L13_2197if_f_id, +L23_86w_t_id, +L23_87w_d_id, +S_2218_UnchainedDwordMove_00000001_0000000e_00000001_00000001_id, +L13_2198if_f_id, +S_2219_UnchainedByteMove_00000002_0000000e_00000001_00000001_id, +L13_2199if_f_id, +L28_76if_f_id, +L28_77if_d_id, +S_2220_CopyBytePlnByPlnUnchained_00000002_0000000e_00000001_00000001_id, +L13_2200if_f_id, +L23_88if_f_id, +L23_89if_f_id, +L23_90if_f_id, +L23_91if_f_id, +S_2221_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000001_id, +L13_2201if_f_id, +L23_94w_t_id, +L23_95w_d_id, +L23_92if_f_id, +L23_96w_t_id, +L23_97w_d_id, +L23_93if_d_id, +S_2222_UnchainedWordMove_00000002_0000000e_00000001_00000001_id, +L13_2202if_f_id, +L28_78if_f_id, +L28_79if_d_id, +S_2223_CopyWordPlnByPlnUnchained_00000002_0000000e_00000001_00000001_id, +L13_2203if_f_id, +L23_98if_f_id, +L23_99if_f_id, +L23_100if_f_id, +L23_101if_f_id, +S_2224_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000001_id, +L13_2204if_f_id, +L23_104w_t_id, +L23_105w_d_id, +L23_102if_f_id, +L23_106w_t_id, +L23_107w_d_id, +L23_103if_d_id, +S_2225_UnchainedDwordMove_00000002_0000000e_00000001_00000001_id, +L13_2205if_f_id, +S_2226_UnchainedByteMove_00000003_0000000e_00000001_00000001_id, +L13_2206if_f_id, +L28_80if_f_id, +L28_81if_d_id, +S_2227_CopyBytePlnByPlnUnchained_00000003_0000000e_00000001_00000001_id, +L13_2207if_f_id, +L23_108if_f_id, +L23_109if_f_id, +L23_110if_f_id, +L23_111if_f_id, +S_2228_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000001_id, +L13_2208if_f_id, +L23_114w_t_id, +L23_115w_d_id, +L23_112if_f_id, +L23_116w_t_id, +L23_117w_d_id, +L23_113if_d_id, +S_2229_UnchainedWordMove_00000003_0000000e_00000001_00000001_id, +L13_2209if_f_id, +L28_82if_f_id, +L28_83if_d_id, +S_2230_CopyWordPlnByPlnUnchained_00000003_0000000e_00000001_00000001_id, +L13_2210if_f_id, +L23_118if_f_id, +L23_119if_f_id, +L23_120if_f_id, +L23_121if_f_id, +S_2231_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000001_id, +L13_2211if_f_id, +L23_124w_t_id, +L23_125w_d_id, +L23_122if_f_id, +L23_126w_t_id, +L23_127w_d_id, +L23_123if_d_id, +S_2232_UnchainedDwordMove_00000003_0000000e_00000001_00000001_id, +L13_2212if_f_id, +S_2233_EGAGCIndexOutb_id, +L13_2213if_f_id, +S_2234_VGAGCIndexOutb_id, +L13_2214if_f_id, +L29_1if_f_id, +L29_2if_d_id, +L29_0if_f_id, +S_2235_VGAGCMaskRegOutb_id, +L13_2215if_f_id, +L29_3if_f_id, +S_2236_AdapCOutb_id, +L13_2216if_f_id, +S_2237_VGAGCMaskFFRegOutb_id, +L13_2217if_f_id, +L29_4if_f_id, +S_2238_GenericByteWrite_id, +L13_2218if_f_id, +L24_0if_f_id, +L24_2if_f_id, +L24_3if_d_id, +L24_8if_f_id, +L24_9if_d_id, +L24_6if_f_id, +L24_10if_f_id, +L24_11if_d_id, +L24_7if_d_id, +L24_4if_f_id, +L24_12if_f_id, +L24_5if_d_id, +L24_15if_f_id, +L24_13if_f_id, +L24_16if_f_id, +L24_18if_f_id, +L24_19if_d_id, +L24_21if_f_id, +L24_23if_f_id, +L24_24if_d_id, +L24_22if_d_id, +L24_20if_f_id, +L24_25if_f_id, +L24_17if_d_id, +L24_14if_d_id, +L24_1if_d_id, +L24_26if_f_id, +L24_28if_f_id, +L24_27if_d_id, +S_2239_GenericByteFill_id, +L13_2219if_f_id, +L24_31w_t_id, +L24_32w_d_id, +L24_29if_f_id, +L24_33w_t_id, +L24_34w_d_id, +L24_30if_d_id, +S_2240_GenericByteMove_Fwd_id, +L13_2220if_f_id, +L24_35if_f_id, +L24_36if_d_id, +L24_39w_t_id, +L24_40w_d_id, +L24_37if_f_id, +L24_41w_t_id, +L24_42w_d_id, +L24_38if_d_id, +S_2241_GenericWordWrite_id, +L13_2221if_f_id, +L24_43if_f_id, +L24_45if_f_id, +L24_46if_d_id, +L24_51if_f_id, +L24_52if_d_id, +L24_49if_f_id, +L24_53if_f_id, +L24_54if_d_id, +L24_50if_d_id, +L24_47if_f_id, +L24_55if_f_id, +L24_48if_d_id, +L24_58if_f_id, +L24_56if_f_id, +L24_59if_f_id, +L24_61if_f_id, +L24_62if_d_id, +L24_64if_f_id, +L24_66if_f_id, +L24_67if_d_id, +L24_65if_d_id, +L24_63if_f_id, +L24_68if_f_id, +L24_60if_d_id, +L24_57if_d_id, +L24_44if_d_id, +L24_69if_f_id, +L24_71if_f_id, +L24_72if_f_id, +L24_70if_d_id, +S_2242_GenericWordFill_id, +L13_2222if_f_id, +L24_75w_t_id, +L24_76w_d_id, +L24_73if_f_id, +L24_77w_t_id, +L24_78w_d_id, +L24_74if_d_id, +S_2243_GenericWordMove_Fwd_id, +L13_2223if_f_id, +L24_79if_f_id, +L24_80if_d_id, +L24_83w_t_id, +L24_84w_d_id, +L24_81if_f_id, +L24_85w_t_id, +L24_86w_d_id, +L24_82if_d_id, +S_2244_GenericDwordWrite_id, +L13_2224if_f_id, +L24_87if_f_id, +L24_88if_d_id, +S_2245_GenericDwordFill_id, +L13_2225if_f_id, +L24_91w_t_id, +L24_92w_d_id, +L24_89if_f_id, +L24_93w_t_id, +L24_94w_d_id, +L24_90if_d_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_2214_CopyBwdByte1Plane IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2214_CopyBwdByte1Plane_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2214_CopyBwdByte1Plane = (IHPE)S_2214_CopyBwdByte1Plane ; +LOCAL IUH L13_2194if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2194if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2194if_f = (IHPE)L13_2194if_f ; +LOCAL IUH L23_84w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_84w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_84w_t = (IHPE)L23_84w_t ; +LOCAL IUH L23_85w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_85w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_85w_d = (IHPE)L23_85w_d ; +GLOBAL IUH S_2215_UnchainedWordMove_00000001_0000000e_00000001_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2215_UnchainedWordMove_00000001_0000000e_00000001_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2215_UnchainedWordMove_00000001_0000000e_00000001_00000001 = (IHPE)S_2215_UnchainedWordMove_00000001_0000000e_00000001_00000001 ; +LOCAL IUH L13_2195if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2195if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2195if_f = (IHPE)L13_2195if_f ; +LOCAL IUH L28_70if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_70if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_70if_f = (IHPE)L28_70if_f ; +LOCAL IUH L28_72if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_72if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_72if_f = (IHPE)L28_72if_f ; +LOCAL IUH L28_73if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_73if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_73if_f = (IHPE)L28_73if_f ; +LOCAL IUH L28_74if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_74if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_74if_f = (IHPE)L28_74if_f ; +LOCAL IUH L28_75if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_75if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_75if_f = (IHPE)L28_75if_f ; +LOCAL IUH L28_71if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_71if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_71if_d = (IHPE)L28_71if_d ; +GLOBAL IUH S_2216_CopyDirWord1Plane_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2216_CopyDirWord1Plane_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2216_CopyDirWord1Plane_00000001 = (IHPE)S_2216_CopyDirWord1Plane_00000001 ; +LOCAL IUH L13_2196if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2196if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2196if_f = (IHPE)L13_2196if_f ; +GLOBAL IUH S_2217_CopyBwdWord1Plane IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2217_CopyBwdWord1Plane_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2217_CopyBwdWord1Plane = (IHPE)S_2217_CopyBwdWord1Plane ; +LOCAL IUH L13_2197if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2197if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2197if_f = (IHPE)L13_2197if_f ; +LOCAL IUH L23_86w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_86w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_86w_t = (IHPE)L23_86w_t ; +LOCAL IUH L23_87w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_87w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_87w_d = (IHPE)L23_87w_d ; +GLOBAL IUH S_2218_UnchainedDwordMove_00000001_0000000e_00000001_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2218_UnchainedDwordMove_00000001_0000000e_00000001_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2218_UnchainedDwordMove_00000001_0000000e_00000001_00000001 = (IHPE)S_2218_UnchainedDwordMove_00000001_0000000e_00000001_00000001 ; +LOCAL IUH L13_2198if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2198if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2198if_f = (IHPE)L13_2198if_f ; +GLOBAL IUH S_2219_UnchainedByteMove_00000002_0000000e_00000001_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2219_UnchainedByteMove_00000002_0000000e_00000001_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2219_UnchainedByteMove_00000002_0000000e_00000001_00000001 = (IHPE)S_2219_UnchainedByteMove_00000002_0000000e_00000001_00000001 ; +LOCAL IUH L13_2199if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2199if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2199if_f = (IHPE)L13_2199if_f ; +LOCAL IUH L28_76if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_76if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_76if_f = (IHPE)L28_76if_f ; +LOCAL IUH L28_77if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_77if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_77if_d = (IHPE)L28_77if_d ; +GLOBAL IUH S_2220_CopyBytePlnByPlnUnchained_00000002_0000000e_00000001_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2220_CopyBytePlnByPlnUnchained_00000002_0000000e_00000001_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2220_CopyBytePlnByPlnUnchained_00000002_0000000e_00000001_00000001 = (IHPE)S_2220_CopyBytePlnByPlnUnchained_00000002_0000000e_00000001_00000001 ; +LOCAL IUH L13_2200if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2200if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2200if_f = (IHPE)L13_2200if_f ; +LOCAL IUH L23_88if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_88if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_88if_f = (IHPE)L23_88if_f ; +LOCAL IUH L23_89if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_89if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_89if_f = (IHPE)L23_89if_f ; +LOCAL IUH L23_90if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_90if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_90if_f = (IHPE)L23_90if_f ; +LOCAL IUH L23_91if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_91if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_91if_f = (IHPE)L23_91if_f ; +GLOBAL IUH S_2221_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2221_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2221_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000001 = (IHPE)S_2221_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000001 ; +LOCAL IUH L13_2201if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2201if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2201if_f = (IHPE)L13_2201if_f ; +LOCAL IUH L23_94w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_94w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_94w_t = (IHPE)L23_94w_t ; +LOCAL IUH L23_95w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_95w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_95w_d = (IHPE)L23_95w_d ; +LOCAL IUH L23_92if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_92if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_92if_f = (IHPE)L23_92if_f ; +LOCAL IUH L23_96w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_96w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_96w_t = (IHPE)L23_96w_t ; +LOCAL IUH L23_97w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_97w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_97w_d = (IHPE)L23_97w_d ; +LOCAL IUH L23_93if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_93if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_93if_d = (IHPE)L23_93if_d ; +GLOBAL IUH S_2222_UnchainedWordMove_00000002_0000000e_00000001_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2222_UnchainedWordMove_00000002_0000000e_00000001_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2222_UnchainedWordMove_00000002_0000000e_00000001_00000001 = (IHPE)S_2222_UnchainedWordMove_00000002_0000000e_00000001_00000001 ; +LOCAL IUH L13_2202if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2202if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2202if_f = (IHPE)L13_2202if_f ; +LOCAL IUH L28_78if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_78if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_78if_f = (IHPE)L28_78if_f ; +LOCAL IUH L28_79if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_79if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_79if_d = (IHPE)L28_79if_d ; +GLOBAL IUH S_2223_CopyWordPlnByPlnUnchained_00000002_0000000e_00000001_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2223_CopyWordPlnByPlnUnchained_00000002_0000000e_00000001_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2223_CopyWordPlnByPlnUnchained_00000002_0000000e_00000001_00000001 = (IHPE)S_2223_CopyWordPlnByPlnUnchained_00000002_0000000e_00000001_00000001 ; +LOCAL IUH L13_2203if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2203if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2203if_f = (IHPE)L13_2203if_f ; +LOCAL IUH L23_98if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_98if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_98if_f = (IHPE)L23_98if_f ; +LOCAL IUH L23_99if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_99if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_99if_f = (IHPE)L23_99if_f ; +LOCAL IUH L23_100if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_100if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_100if_f = (IHPE)L23_100if_f ; +LOCAL IUH L23_101if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_101if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_101if_f = (IHPE)L23_101if_f ; +GLOBAL IUH S_2224_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2224_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2224_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000001 = (IHPE)S_2224_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000001 ; +LOCAL IUH L13_2204if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2204if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2204if_f = (IHPE)L13_2204if_f ; +LOCAL IUH L23_104w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_104w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_104w_t = (IHPE)L23_104w_t ; +LOCAL IUH L23_105w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_105w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_105w_d = (IHPE)L23_105w_d ; +LOCAL IUH L23_102if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_102if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_102if_f = (IHPE)L23_102if_f ; +LOCAL IUH L23_106w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_106w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_106w_t = (IHPE)L23_106w_t ; +LOCAL IUH L23_107w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_107w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_107w_d = (IHPE)L23_107w_d ; +LOCAL IUH L23_103if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_103if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_103if_d = (IHPE)L23_103if_d ; +GLOBAL IUH S_2225_UnchainedDwordMove_00000002_0000000e_00000001_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2225_UnchainedDwordMove_00000002_0000000e_00000001_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2225_UnchainedDwordMove_00000002_0000000e_00000001_00000001 = (IHPE)S_2225_UnchainedDwordMove_00000002_0000000e_00000001_00000001 ; +LOCAL IUH L13_2205if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2205if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2205if_f = (IHPE)L13_2205if_f ; +GLOBAL IUH S_2226_UnchainedByteMove_00000003_0000000e_00000001_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2226_UnchainedByteMove_00000003_0000000e_00000001_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2226_UnchainedByteMove_00000003_0000000e_00000001_00000001 = (IHPE)S_2226_UnchainedByteMove_00000003_0000000e_00000001_00000001 ; +LOCAL IUH L13_2206if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2206if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2206if_f = (IHPE)L13_2206if_f ; +LOCAL IUH L28_80if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_80if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_80if_f = (IHPE)L28_80if_f ; +LOCAL IUH L28_81if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_81if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_81if_d = (IHPE)L28_81if_d ; +GLOBAL IUH S_2227_CopyBytePlnByPlnUnchained_00000003_0000000e_00000001_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2227_CopyBytePlnByPlnUnchained_00000003_0000000e_00000001_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2227_CopyBytePlnByPlnUnchained_00000003_0000000e_00000001_00000001 = (IHPE)S_2227_CopyBytePlnByPlnUnchained_00000003_0000000e_00000001_00000001 ; +LOCAL IUH L13_2207if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2207if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2207if_f = (IHPE)L13_2207if_f ; +LOCAL IUH L23_108if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_108if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_108if_f = (IHPE)L23_108if_f ; +LOCAL IUH L23_109if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_109if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_109if_f = (IHPE)L23_109if_f ; +LOCAL IUH L23_110if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_110if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_110if_f = (IHPE)L23_110if_f ; +LOCAL IUH L23_111if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_111if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_111if_f = (IHPE)L23_111if_f ; +GLOBAL IUH S_2228_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2228_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2228_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000001 = (IHPE)S_2228_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000001 ; +LOCAL IUH L13_2208if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2208if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2208if_f = (IHPE)L13_2208if_f ; +LOCAL IUH L23_114w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_114w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_114w_t = (IHPE)L23_114w_t ; +LOCAL IUH L23_115w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_115w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_115w_d = (IHPE)L23_115w_d ; +LOCAL IUH L23_112if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_112if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_112if_f = (IHPE)L23_112if_f ; +LOCAL IUH L23_116w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_116w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_116w_t = (IHPE)L23_116w_t ; +LOCAL IUH L23_117w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_117w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_117w_d = (IHPE)L23_117w_d ; +LOCAL IUH L23_113if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_113if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_113if_d = (IHPE)L23_113if_d ; +GLOBAL IUH S_2229_UnchainedWordMove_00000003_0000000e_00000001_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2229_UnchainedWordMove_00000003_0000000e_00000001_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2229_UnchainedWordMove_00000003_0000000e_00000001_00000001 = (IHPE)S_2229_UnchainedWordMove_00000003_0000000e_00000001_00000001 ; +LOCAL IUH L13_2209if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2209if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2209if_f = (IHPE)L13_2209if_f ; +LOCAL IUH L28_82if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_82if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_82if_f = (IHPE)L28_82if_f ; +LOCAL IUH L28_83if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_83if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_83if_d = (IHPE)L28_83if_d ; +GLOBAL IUH S_2230_CopyWordPlnByPlnUnchained_00000003_0000000e_00000001_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2230_CopyWordPlnByPlnUnchained_00000003_0000000e_00000001_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2230_CopyWordPlnByPlnUnchained_00000003_0000000e_00000001_00000001 = (IHPE)S_2230_CopyWordPlnByPlnUnchained_00000003_0000000e_00000001_00000001 ; +LOCAL IUH L13_2210if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2210if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2210if_f = (IHPE)L13_2210if_f ; +LOCAL IUH L23_118if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_118if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_118if_f = (IHPE)L23_118if_f ; +LOCAL IUH L23_119if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_119if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_119if_f = (IHPE)L23_119if_f ; +LOCAL IUH L23_120if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_120if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_120if_f = (IHPE)L23_120if_f ; +LOCAL IUH L23_121if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_121if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_121if_f = (IHPE)L23_121if_f ; +GLOBAL IUH S_2231_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2231_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2231_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000001 = (IHPE)S_2231_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000001 ; +LOCAL IUH L13_2211if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2211if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2211if_f = (IHPE)L13_2211if_f ; +LOCAL IUH L23_124w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_124w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_124w_t = (IHPE)L23_124w_t ; +LOCAL IUH L23_125w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_125w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_125w_d = (IHPE)L23_125w_d ; +LOCAL IUH L23_122if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_122if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_122if_f = (IHPE)L23_122if_f ; +LOCAL IUH L23_126w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_126w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_126w_t = (IHPE)L23_126w_t ; +LOCAL IUH L23_127w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_127w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_127w_d = (IHPE)L23_127w_d ; +LOCAL IUH L23_123if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_123if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_123if_d = (IHPE)L23_123if_d ; +GLOBAL IUH S_2232_UnchainedDwordMove_00000003_0000000e_00000001_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2232_UnchainedDwordMove_00000003_0000000e_00000001_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2232_UnchainedDwordMove_00000003_0000000e_00000001_00000001 = (IHPE)S_2232_UnchainedDwordMove_00000003_0000000e_00000001_00000001 ; +LOCAL IUH L13_2212if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2212if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2212if_f = (IHPE)L13_2212if_f ; +GLOBAL IUH S_2233_EGAGCIndexOutb IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2233_EGAGCIndexOutb_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2233_EGAGCIndexOutb = (IHPE)S_2233_EGAGCIndexOutb ; +LOCAL IUH L13_2213if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2213if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2213if_f = (IHPE)L13_2213if_f ; +GLOBAL IUH S_2234_VGAGCIndexOutb IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2234_VGAGCIndexOutb_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2234_VGAGCIndexOutb = (IHPE)S_2234_VGAGCIndexOutb ; +LOCAL IUH L13_2214if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2214if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2214if_f = (IHPE)L13_2214if_f ; +LOCAL IUH L29_1if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L29_1if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L29_1if_f = (IHPE)L29_1if_f ; +LOCAL IUH L29_2if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L29_2if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L29_2if_d = (IHPE)L29_2if_d ; +LOCAL IUH L29_0if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L29_0if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L29_0if_f = (IHPE)L29_0if_f ; +GLOBAL IUH S_2235_VGAGCMaskRegOutb IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2235_VGAGCMaskRegOutb_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2235_VGAGCMaskRegOutb = (IHPE)S_2235_VGAGCMaskRegOutb ; +LOCAL IUH L13_2215if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2215if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2215if_f = (IHPE)L13_2215if_f ; +LOCAL IUH L29_3if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L29_3if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L29_3if_f = (IHPE)L29_3if_f ; +GLOBAL IUH S_2236_AdapCOutb IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2236_AdapCOutb_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2236_AdapCOutb = (IHPE)S_2236_AdapCOutb ; +LOCAL IUH L13_2216if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2216if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2216if_f = (IHPE)L13_2216if_f ; +GLOBAL IUH S_2237_VGAGCMaskFFRegOutb IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2237_VGAGCMaskFFRegOutb_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2237_VGAGCMaskFFRegOutb = (IHPE)S_2237_VGAGCMaskFFRegOutb ; +LOCAL IUH L13_2217if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2217if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2217if_f = (IHPE)L13_2217if_f ; +LOCAL IUH L29_4if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L29_4if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L29_4if_f = (IHPE)L29_4if_f ; +GLOBAL IUH S_2238_GenericByteWrite IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2238_GenericByteWrite_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2238_GenericByteWrite = (IHPE)S_2238_GenericByteWrite ; +LOCAL IUH L13_2218if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2218if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2218if_f = (IHPE)L13_2218if_f ; +LOCAL IUH L24_0if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_0if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_0if_f = (IHPE)L24_0if_f ; +LOCAL IUH L24_2if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_2if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_2if_f = (IHPE)L24_2if_f ; +LOCAL IUH L24_3if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_3if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_3if_d = (IHPE)L24_3if_d ; +LOCAL IUH L24_8if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_8if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_8if_f = (IHPE)L24_8if_f ; +LOCAL IUH L24_9if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_9if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_9if_d = (IHPE)L24_9if_d ; +LOCAL IUH L24_6if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_6if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_6if_f = (IHPE)L24_6if_f ; +LOCAL IUH L24_10if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_10if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_10if_f = (IHPE)L24_10if_f ; +LOCAL IUH L24_11if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_11if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_11if_d = (IHPE)L24_11if_d ; +LOCAL IUH L24_7if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_7if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_7if_d = (IHPE)L24_7if_d ; +LOCAL IUH L24_4if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_4if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_4if_f = (IHPE)L24_4if_f ; +LOCAL IUH L24_12if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_12if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_12if_f = (IHPE)L24_12if_f ; +LOCAL IUH L24_5if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_5if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_5if_d = (IHPE)L24_5if_d ; +LOCAL IUH L24_15if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_15if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_15if_f = (IHPE)L24_15if_f ; +LOCAL IUH L24_13if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_13if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_13if_f = (IHPE)L24_13if_f ; +LOCAL IUH L24_16if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_16if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_16if_f = (IHPE)L24_16if_f ; +LOCAL IUH L24_18if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_18if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_18if_f = (IHPE)L24_18if_f ; +LOCAL IUH L24_19if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_19if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_19if_d = (IHPE)L24_19if_d ; +LOCAL IUH L24_21if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_21if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_21if_f = (IHPE)L24_21if_f ; +LOCAL IUH L24_23if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_23if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_23if_f = (IHPE)L24_23if_f ; +LOCAL IUH L24_24if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_24if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_24if_d = (IHPE)L24_24if_d ; +LOCAL IUH L24_22if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_22if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_22if_d = (IHPE)L24_22if_d ; +LOCAL IUH L24_20if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_20if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_20if_f = (IHPE)L24_20if_f ; +LOCAL IUH L24_25if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_25if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_25if_f = (IHPE)L24_25if_f ; +LOCAL IUH L24_17if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_17if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_17if_d = (IHPE)L24_17if_d ; +LOCAL IUH L24_14if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_14if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_14if_d = (IHPE)L24_14if_d ; +LOCAL IUH L24_1if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_1if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_1if_d = (IHPE)L24_1if_d ; +LOCAL IUH L24_26if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_26if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_26if_f = (IHPE)L24_26if_f ; +LOCAL IUH L24_28if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_28if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_28if_f = (IHPE)L24_28if_f ; +LOCAL IUH L24_27if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_27if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_27if_d = (IHPE)L24_27if_d ; +GLOBAL IUH S_2239_GenericByteFill IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2239_GenericByteFill_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2239_GenericByteFill = (IHPE)S_2239_GenericByteFill ; +LOCAL IUH L13_2219if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2219if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2219if_f = (IHPE)L13_2219if_f ; +LOCAL IUH L24_31w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_31w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_31w_t = (IHPE)L24_31w_t ; +LOCAL IUH L24_32w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_32w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_32w_d = (IHPE)L24_32w_d ; +LOCAL IUH L24_29if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_29if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_29if_f = (IHPE)L24_29if_f ; +LOCAL IUH L24_33w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_33w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_33w_t = (IHPE)L24_33w_t ; +LOCAL IUH L24_34w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_34w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_34w_d = (IHPE)L24_34w_d ; +LOCAL IUH L24_30if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_30if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_30if_d = (IHPE)L24_30if_d ; +GLOBAL IUH S_2240_GenericByteMove_Fwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2240_GenericByteMove_Fwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2240_GenericByteMove_Fwd = (IHPE)S_2240_GenericByteMove_Fwd ; +LOCAL IUH L13_2220if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2220if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2220if_f = (IHPE)L13_2220if_f ; +LOCAL IUH L24_35if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_35if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_35if_f = (IHPE)L24_35if_f ; +LOCAL IUH L24_36if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_36if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_36if_d = (IHPE)L24_36if_d ; +LOCAL IUH L24_39w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_39w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_39w_t = (IHPE)L24_39w_t ; +LOCAL IUH L24_40w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_40w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_40w_d = (IHPE)L24_40w_d ; +LOCAL IUH L24_37if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_37if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_37if_f = (IHPE)L24_37if_f ; +LOCAL IUH L24_41w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_41w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_41w_t = (IHPE)L24_41w_t ; +LOCAL IUH L24_42w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_42w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_42w_d = (IHPE)L24_42w_d ; +LOCAL IUH L24_38if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_38if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_38if_d = (IHPE)L24_38if_d ; +GLOBAL IUH S_2241_GenericWordWrite IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2241_GenericWordWrite_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2241_GenericWordWrite = (IHPE)S_2241_GenericWordWrite ; +LOCAL IUH L13_2221if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2221if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2221if_f = (IHPE)L13_2221if_f ; +LOCAL IUH L24_43if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_43if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_43if_f = (IHPE)L24_43if_f ; +LOCAL IUH L24_45if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_45if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_45if_f = (IHPE)L24_45if_f ; +LOCAL IUH L24_46if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_46if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_46if_d = (IHPE)L24_46if_d ; +LOCAL IUH L24_51if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_51if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_51if_f = (IHPE)L24_51if_f ; +LOCAL IUH L24_52if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_52if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_52if_d = (IHPE)L24_52if_d ; +LOCAL IUH L24_49if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_49if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_49if_f = (IHPE)L24_49if_f ; +LOCAL IUH L24_53if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_53if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_53if_f = (IHPE)L24_53if_f ; +LOCAL IUH L24_54if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_54if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_54if_d = (IHPE)L24_54if_d ; +LOCAL IUH L24_50if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_50if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_50if_d = (IHPE)L24_50if_d ; +LOCAL IUH L24_47if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_47if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_47if_f = (IHPE)L24_47if_f ; +LOCAL IUH L24_55if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_55if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_55if_f = (IHPE)L24_55if_f ; +LOCAL IUH L24_48if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_48if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_48if_d = (IHPE)L24_48if_d ; +LOCAL IUH L24_58if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_58if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_58if_f = (IHPE)L24_58if_f ; +LOCAL IUH L24_56if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_56if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_56if_f = (IHPE)L24_56if_f ; +LOCAL IUH L24_59if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_59if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_59if_f = (IHPE)L24_59if_f ; +LOCAL IUH L24_61if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_61if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_61if_f = (IHPE)L24_61if_f ; +LOCAL IUH L24_62if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_62if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_62if_d = (IHPE)L24_62if_d ; +LOCAL IUH L24_64if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_64if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_64if_f = (IHPE)L24_64if_f ; +LOCAL IUH L24_66if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_66if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_66if_f = (IHPE)L24_66if_f ; +LOCAL IUH L24_67if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_67if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_67if_d = (IHPE)L24_67if_d ; +LOCAL IUH L24_65if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_65if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_65if_d = (IHPE)L24_65if_d ; +LOCAL IUH L24_63if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_63if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_63if_f = (IHPE)L24_63if_f ; +LOCAL IUH L24_68if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_68if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_68if_f = (IHPE)L24_68if_f ; +LOCAL IUH L24_60if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_60if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_60if_d = (IHPE)L24_60if_d ; +LOCAL IUH L24_57if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_57if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_57if_d = (IHPE)L24_57if_d ; +LOCAL IUH L24_44if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_44if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_44if_d = (IHPE)L24_44if_d ; +LOCAL IUH L24_69if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_69if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_69if_f = (IHPE)L24_69if_f ; +LOCAL IUH L24_71if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_71if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_71if_f = (IHPE)L24_71if_f ; +LOCAL IUH L24_72if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_72if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_72if_f = (IHPE)L24_72if_f ; +LOCAL IUH L24_70if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_70if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_70if_d = (IHPE)L24_70if_d ; +GLOBAL IUH S_2242_GenericWordFill IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2242_GenericWordFill_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2242_GenericWordFill = (IHPE)S_2242_GenericWordFill ; +LOCAL IUH L13_2222if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2222if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2222if_f = (IHPE)L13_2222if_f ; +LOCAL IUH L24_75w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_75w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_75w_t = (IHPE)L24_75w_t ; +LOCAL IUH L24_76w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_76w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_76w_d = (IHPE)L24_76w_d ; +LOCAL IUH L24_73if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_73if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_73if_f = (IHPE)L24_73if_f ; +LOCAL IUH L24_77w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_77w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_77w_t = (IHPE)L24_77w_t ; +LOCAL IUH L24_78w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_78w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_78w_d = (IHPE)L24_78w_d ; +LOCAL IUH L24_74if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_74if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_74if_d = (IHPE)L24_74if_d ; +GLOBAL IUH S_2243_GenericWordMove_Fwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2243_GenericWordMove_Fwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2243_GenericWordMove_Fwd = (IHPE)S_2243_GenericWordMove_Fwd ; +LOCAL IUH L13_2223if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2223if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2223if_f = (IHPE)L13_2223if_f ; +LOCAL IUH L24_79if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_79if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_79if_f = (IHPE)L24_79if_f ; +LOCAL IUH L24_80if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_80if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_80if_d = (IHPE)L24_80if_d ; +LOCAL IUH L24_83w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_83w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_83w_t = (IHPE)L24_83w_t ; +LOCAL IUH L24_84w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_84w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_84w_d = (IHPE)L24_84w_d ; +LOCAL IUH L24_81if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_81if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_81if_f = (IHPE)L24_81if_f ; +LOCAL IUH L24_85w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_85w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_85w_t = (IHPE)L24_85w_t ; +LOCAL IUH L24_86w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_86w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_86w_d = (IHPE)L24_86w_d ; +LOCAL IUH L24_82if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_82if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_82if_d = (IHPE)L24_82if_d ; +GLOBAL IUH S_2244_GenericDwordWrite IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2244_GenericDwordWrite_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2244_GenericDwordWrite = (IHPE)S_2244_GenericDwordWrite ; +LOCAL IUH L13_2224if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2224if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2224if_f = (IHPE)L13_2224if_f ; +LOCAL IUH L24_87if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_87if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_87if_f = (IHPE)L24_87if_f ; +LOCAL IUH L24_88if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_88if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_88if_d = (IHPE)L24_88if_d ; +GLOBAL IUH S_2245_GenericDwordFill IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2245_GenericDwordFill_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2245_GenericDwordFill = (IHPE)S_2245_GenericDwordFill ; +LOCAL IUH L13_2225if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2225if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2225if_f = (IHPE)L13_2225if_f ; +LOCAL IUH L24_91w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_91w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_91w_t = (IHPE)L24_91w_t ; +LOCAL IUH L24_92w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_92w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_92w_d = (IHPE)L24_92w_d ; +LOCAL IUH L24_89if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_89if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_89if_f = (IHPE)L24_89if_f ; +LOCAL IUH L24_93w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_93w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_93w_t = (IHPE)L24_93w_t ; +LOCAL IUH L24_94w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_94w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_94w_d = (IHPE)L24_94w_d ; +LOCAL IUH L24_90if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_90if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_90if_d = (IHPE)L24_90if_d ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + case S_2214_CopyBwdByte1Plane_id : + S_2214_CopyBwdByte1Plane : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2214) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2194if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2194if_f_id : + L13_2194if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)(LocalIUH+4)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_85w_d; + case L23_84w_t_id : + L23_84w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+4)) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+5)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(*((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+4)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+4)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_84w_t; + case L23_85w_d_id : + L23_85w_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2215_UnchainedWordMove_00000001_0000000e_00000001_00000001_id : + S_2215_UnchainedWordMove_00000001_0000000e_00000001_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2215) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2195if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2195if_f_id : + L13_2195if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_70if_f; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r21) + REGLONG) * *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = (IS32)(-1) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2172_UnchainedWordFill_00000001_0000000e_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2172_UnchainedWordFill_00000001_0000000e_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; + { extern IUH L28_71if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_71if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_70if_f_id : + L28_70if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_72if_f; + *((IUH *)(r1+0)) = (IS32)(16404) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r2)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2216_CopyDirWord1Plane_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2216_CopyDirWord1Plane_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16405) ; + case L28_72if_f_id : + L28_72if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_73if_f; + *((IUH *)(r1+0)) = (IS32)(16404) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r2)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r3)) = *((IUH *)&(r20)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2216_CopyDirWord1Plane_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2216_CopyDirWord1Plane_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16405) ; + case L28_73if_f_id : + L28_73if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_74if_f; + *((IUH *)(r1+0)) = (IS32)(16404) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r2)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2216_CopyDirWord1Plane_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2216_CopyDirWord1Plane_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16405) ; + case L28_74if_f_id : + L28_74if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_75if_f; + *((IUH *)(r1+0)) = (IS32)(16404) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r2)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r3)) = *((IUH *)&(r20)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2216_CopyDirWord1Plane_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2216_CopyDirWord1Plane_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16405) ; + case L28_75if_f_id : + L28_75if_f: ; + case L28_71if_d_id : + L28_71if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2216_CopyDirWord1Plane_00000001_id : + S_2216_CopyDirWord1Plane_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2216) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2196if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2196if_f_id : + L13_2196if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16412) ; + *((IUH *)&(r2)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2217_CopyBwdWord1Plane() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2217_CopyBwdWord1Plane(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16413) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2217_CopyBwdWord1Plane_id : + S_2217_CopyBwdWord1Plane : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2217) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2197if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2197if_f_id : + L13_2197if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)(LocalIUH+4)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_87w_d; + case L23_86w_t_id : + L23_86w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+4)) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+5)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(*((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+4)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+5)) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(*((IHPE *)&(r23))) ) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+4)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+4)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_86w_t; + case L23_87w_d_id : + L23_87w_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2218_UnchainedDwordMove_00000001_0000000e_00000001_00000001_id : + S_2218_UnchainedDwordMove_00000001_0000000e_00000001_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2218) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2198if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2198if_f_id : + L13_2198if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2215_UnchainedWordMove_00000001_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2215_UnchainedWordMove_00000001_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2219_UnchainedByteMove_00000002_0000000e_00000001_00000001_id : + S_2219_UnchainedByteMove_00000002_0000000e_00000001_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2219) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2199if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2199if_f_id : + L13_2199if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_76if_f; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2220_CopyBytePlnByPlnUnchained_00000002_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2220_CopyBytePlnByPlnUnchained_00000002_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + { extern IUH L28_77if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_77if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_76if_f_id : + L28_76if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2220_CopyBytePlnByPlnUnchained_00000002_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2220_CopyBytePlnByPlnUnchained_00000002_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + case L28_77if_d_id : + L28_77if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2220_CopyBytePlnByPlnUnchained_00000002_0000000e_00000001_00000001_id : + S_2220_CopyBytePlnByPlnUnchained_00000002_0000000e_00000001_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2220) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2200if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2200if_f_id : + L13_2200if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_88if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2221_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2221_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_88if_f_id : + L23_88if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_89if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2221_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2221_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_89if_f_id : + L23_89if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_90if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2221_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2221_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_90if_f_id : + L23_90if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_91if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2221_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2221_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_91if_f_id : + L23_91if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2221_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000001_id : + S_2221_CopyByte1PlaneUnchained_00000002_0000000e_00000001_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2221) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2201if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2201if_f_id : + L13_2201if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_92if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_95w_d; + case L23_94w_t_id : + L23_94w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_94w_t; + case L23_95w_d_id : + L23_95w_d: ; + { extern IUH L23_93if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_93if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_92if_f_id : + L23_92if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_97w_d; + case L23_96w_t_id : + L23_96w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_96w_t; + case L23_97w_d_id : + L23_97w_d: ; + case L23_93if_d_id : + L23_93if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2222_UnchainedWordMove_00000002_0000000e_00000001_00000001_id : + S_2222_UnchainedWordMove_00000002_0000000e_00000001_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2222) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2202if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2202if_f_id : + L13_2202if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_78if_f; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2223_CopyWordPlnByPlnUnchained_00000002_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2223_CopyWordPlnByPlnUnchained_00000002_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + { extern IUH L28_79if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_79if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_78if_f_id : + L28_78if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2223_CopyWordPlnByPlnUnchained_00000002_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2223_CopyWordPlnByPlnUnchained_00000002_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + case L28_79if_d_id : + L28_79if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2223_CopyWordPlnByPlnUnchained_00000002_0000000e_00000001_00000001_id : + S_2223_CopyWordPlnByPlnUnchained_00000002_0000000e_00000001_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2223) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2203if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2203if_f_id : + L13_2203if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_98if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2224_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2224_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_98if_f_id : + L23_98if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_99if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2224_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2224_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_99if_f_id : + L23_99if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_100if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2224_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2224_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_100if_f_id : + L23_100if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_101if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2224_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2224_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_101if_f_id : + L23_101if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2224_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000001_id : + S_2224_CopyWord1PlaneUnchained_00000002_0000000e_00000001_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2224) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2204if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2204if_f_id : + L13_2204if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_102if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_105w_d; + case L23_104w_t_id : + L23_104w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_104w_t; + case L23_105w_d_id : + L23_105w_d: ; + { extern IUH L23_103if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_103if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_102if_f_id : + L23_102if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_107w_d; + case L23_106w_t_id : + L23_106w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_106w_t; + case L23_107w_d_id : + L23_107w_d: ; + case L23_103if_d_id : + L23_103if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2225_UnchainedDwordMove_00000002_0000000e_00000001_00000001_id : + S_2225_UnchainedDwordMove_00000002_0000000e_00000001_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2225) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2205if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2205if_f_id : + L13_2205if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2222_UnchainedWordMove_00000002_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2222_UnchainedWordMove_00000002_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2226_UnchainedByteMove_00000003_0000000e_00000001_00000001_id : + S_2226_UnchainedByteMove_00000003_0000000e_00000001_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2226) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2206if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2206if_f_id : + L13_2206if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_80if_f; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2227_CopyBytePlnByPlnUnchained_00000003_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2227_CopyBytePlnByPlnUnchained_00000003_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + { extern IUH L28_81if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_81if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_80if_f_id : + L28_80if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2227_CopyBytePlnByPlnUnchained_00000003_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2227_CopyBytePlnByPlnUnchained_00000003_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + case L28_81if_d_id : + L28_81if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2227_CopyBytePlnByPlnUnchained_00000003_0000000e_00000001_00000001_id : + S_2227_CopyBytePlnByPlnUnchained_00000003_0000000e_00000001_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2227) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2207if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2207if_f_id : + L13_2207if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_108if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2228_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2228_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_108if_f_id : + L23_108if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_109if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2228_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2228_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_109if_f_id : + L23_109if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_110if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2228_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2228_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_110if_f_id : + L23_110if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_111if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2228_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2228_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_111if_f_id : + L23_111if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2228_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000001_id : + S_2228_CopyByte1PlaneUnchained_00000003_0000000e_00000001_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2228) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2208if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2208if_f_id : + L13_2208if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_112if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_115w_d; + case L23_114w_t_id : + L23_114w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r22)) = (IS32)(1420) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_114w_t; + case L23_115w_d_id : + L23_115w_d: ; + { extern IUH L23_113if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_113if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_112if_f_id : + L23_112if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_117w_d; + case L23_116w_t_id : + L23_116w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1420) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_116w_t; + case L23_117w_d_id : + L23_117w_d: ; + case L23_113if_d_id : + L23_113if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2229_UnchainedWordMove_00000003_0000000e_00000001_00000001_id : + S_2229_UnchainedWordMove_00000003_0000000e_00000001_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2229) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2209if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2209if_f_id : + L13_2209if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_82if_f; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2230_CopyWordPlnByPlnUnchained_00000003_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2230_CopyWordPlnByPlnUnchained_00000003_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + { extern IUH L28_83if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_83if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_82if_f_id : + L28_82if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2230_CopyWordPlnByPlnUnchained_00000003_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2230_CopyWordPlnByPlnUnchained_00000003_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + case L28_83if_d_id : + L28_83if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2230_CopyWordPlnByPlnUnchained_00000003_0000000e_00000001_00000001_id : + S_2230_CopyWordPlnByPlnUnchained_00000003_0000000e_00000001_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2230) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2210if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2210if_f_id : + L13_2210if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_118if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2231_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2231_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_118if_f_id : + L23_118if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_119if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2231_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2231_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_119if_f_id : + L23_119if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_120if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2231_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2231_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_120if_f_id : + L23_120if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_121if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2231_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2231_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_121if_f_id : + L23_121if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2231_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000001_id : + S_2231_CopyWord1PlaneUnchained_00000003_0000000e_00000001_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2231) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2211if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2211if_f_id : + L13_2211if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_122if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_125w_d; + case L23_124w_t_id : + L23_124w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r22)) = (IS32)(1420) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r22)) = (IS32)(1420) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_124w_t; + case L23_125w_d_id : + L23_125w_d: ; + { extern IUH L23_123if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_123if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_122if_f_id : + L23_122if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_127w_d; + case L23_126w_t_id : + L23_126w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1420) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1420) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_126w_t; + case L23_127w_d_id : + L23_127w_d: ; + case L23_123if_d_id : + L23_123if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2232_UnchainedDwordMove_00000003_0000000e_00000001_00000001_id : + S_2232_UnchainedDwordMove_00000003_0000000e_00000001_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2232) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2212if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2212if_f_id : + L13_2212if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2229_UnchainedWordMove_00000003_0000000e_00000001_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2229_UnchainedWordMove_00000003_0000000e_00000001_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2233_EGAGCIndexOutb_id : + S_2233_EGAGCIndexOutb : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2233) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2213if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2213if_f_id : + L13_2213if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU16 *)(LocalIUH+0) + REGWORD) = *((IU16 *)&(r2) + REGWORD ) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16418) ; + *((IU16 *)&(r2) + REGWORD ) = *((IU16 *)(LocalIUH+0) + REGWORD) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2234_VGAGCIndexOutb() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2234_VGAGCIndexOutb(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16419) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2234_VGAGCIndexOutb_id : + S_2234_VGAGCIndexOutb : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2234) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2214if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2214if_f_id : + L13_2214if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU16 *)(LocalIUH+0) + REGWORD) = *((IU16 *)&(r2) + REGWORD ) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU8 *)&(r22) + REGBYTE) + *((IU8 *)&(r21) + REGBYTE) > 8 || *((IU8 *)&(r22) + REGBYTE) == 0) + CrulesRuntimeError("Bad byte bitfield"); + else + *((IU8 *)&(r20) + REGBYTE) = (IU8)((*((IU8 *)(LocalIUH+1) + REGBYTE) << ( 8-(*((IU8 *)&(r21) + REGBYTE) + *((IU8 *)&(r22) + REGBYTE))))) >> ( 8 - *((IU8 *)&(r22) + REGBYTE)); + *((IU8 *)(LocalIUH+2) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1428) ; + if (*((IU8 *)(LocalIUH+2) + REGBYTE) == *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )) goto L29_0if_f; + *((IUH *)&(r20)) = (IS32)(1428) ; + *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16420) ; + *((IUH *)&(r23)) = *((IU8 *)(LocalIUH+2) + REGBYTE); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r23)) = *((IUH *)&(r23)) * *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1424) ; + *((IUH *)&(r23)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r23)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+2928)) ; + *((IUH *)&(r22)) = (IS32)(72) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IUH *)(*((IHPE *)&(r23))) ) ; + *((IUH *)(r1+0)) = (IS32)(16421) ; + *((IUH *)&(r20)) = (IS32)(8) ; + if (*((IS8 *)(LocalIUH+2) + REGBYTE) != *((IS8 *)&(r20) + REGBYTE)) goto L29_1if_f; + { extern IHPE j_EvidPortFuncs; *((IUH *)&(r21)) = j_EvidPortFuncs; } + *((IUH *)(LocalIUH+3)) = *((IUH *)&(r21)) ; + *((IUH *)(r1+0)) = (IS32)(711) ; + *((IUH *)&(r20)) = *((IUH *)(r1+2960)) ; + *((IUH *)&(r21)) = (IS32)(72) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+3)) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = *((IUH *)(*((IHPE *)&(r23))) ) ; + *((IUH *)(r1+0)) = (IS32)(712) ; + { extern IUH L29_2if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L29_2if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L29_1if_f_id : + L29_1if_f: ; + *((IUH *)(r1+0)) = (IS32)(711) ; + { extern IHPE j_AdapCOutb; *((IUH *)&(r22)) = j_AdapCOutb; } + *((IUH *)&(r20)) = *((IUH *)(r1+2960)) ; + *((IUH *)&(r21)) = (IS32)(72) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r22)) ; + *((IUH *)(r1+0)) = (IS32)(712) ; + case L29_2if_d_id : + L29_2if_d: ; + case L29_0if_f_id : + L29_0if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2235_VGAGCMaskRegOutb_id : + S_2235_VGAGCMaskRegOutb : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2235) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2215if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2215if_f_id : + L13_2215if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU16 *)(LocalIUH+0) + REGWORD) = *((IU16 *)&(r2) + REGWORD ) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU8 *)(LocalIUH+2) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+2) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+2) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+2) + REGLONG) = (*((IU32 *)(LocalIUH+2) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1408) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)&(r20) + REGLONG)); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1412) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1312) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(255) ; + if (*((IS8 *)(LocalIUH+1) + REGBYTE) != *((IS8 *)&(r20) + REGBYTE)) goto L29_3if_f; + *((IUH *)(r1+0)) = (IS32)(16426) ; + *((IUH *)&(r2)) = (IS32)(18) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+0) + REGWORD) ; + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2236_AdapCOutb() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2236_AdapCOutb(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16427) ; + case L29_3if_f_id : + L29_3if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2236_AdapCOutb_id : + S_2236_AdapCOutb : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2236) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2216if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2216if_f_id : + L13_2216if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU8 *)(LocalIUH+2) + REGBYTE) = *((IU8 *)&(r4) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(7381) ; + *((IU8 *)(r1+980) + REGBYTE) = (IS32)(0) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) * *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+2928)) + *((IUH *)&(r20)) ; + *((IU16 *)&(r21) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IUH *)&(r21)) = *((IU16 *)&(r21) + REGWORD); + *((IU8 *)&(r22) + REGBYTE) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IUH *)&(r22)) = *((IU8 *)&(r22) + REGBYTE); + *(&rnull) = ((IUH (*)())(IHP)(*((IHPE *)(*((IHPE *)&(r20))) )) )(*((IUH *)&(r21)),*((IUH *)&(r22))) ; +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IU8 *)(r1+980) + REGBYTE) = (IS32)(1) ; + *((IUH *)(r1+0)) = (IS32)(7382) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2237_VGAGCMaskFFRegOutb_id : + S_2237_VGAGCMaskFFRegOutb : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2237) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2217if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2217if_f_id : + L13_2217if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU16 *)(LocalIUH+0) + REGWORD) = *((IU16 *)&(r2) + REGWORD ) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(255) ; + if (*((IU8 *)(LocalIUH+1) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L29_4if_f; + *((IUH *)(r1+0)) = (IS32)(16426) ; + *((IUH *)&(r2)) = (IS32)(18) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+0) + REGWORD) ; + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2236_AdapCOutb() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2236_AdapCOutb(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16427) ; + case L29_4if_f_id : + L29_4if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2238_GenericByteWrite_id : + S_2238_GenericByteWrite : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 28 > 0 ) LocalIUH = (IUH *)malloc ( 28 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2238) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2218if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2218if_f_id : + L13_2218if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1430) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L24_0if_f; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + { extern IUH L24_1if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_1if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_0if_f_id : + L24_0if_f: ; + *((IUH *)&(r20)) = (IS32)(1430) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if (*((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) == *((IU8 *)&(r21) + REGBYTE)) goto L24_2if_f; + *((IUH *)&(r22)) = (IS32)(1407) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +if(*((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )>=8) + CrulesRuntimeError("Bad Bit No"); + else + if(*((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )!=0) + *((IU8 *)&(r21) + REGBYTE) = (*((IU8 *)(LocalIUH+1) + REGBYTE) << ((8) - *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) ) | (*((IU8 *)&(r21) + REGBYTE) >> *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )); + *((IU8 *)&(r20) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU8 *)&(r20) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + { extern IUH L24_3if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_3if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_2if_f_id : + L24_2if_f: ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + case L24_3if_d_id : + L24_3if_d: ; + *((IUH *)&(r20)) = (IS32)(1431) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L24_4if_f; + *((IUH *)&(r21)) = (IS32)(1429) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) == *((IU8 *)&(r22) + REGBYTE)) goto L24_6if_f; + *((IUH *)&(r20)) = (IS32)(1430) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L24_8if_f; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+2) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+2) )) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+2) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+2) + REGLONG) = (*((IU32 *)(LocalIUH+2) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + { extern IUH L24_9if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_9if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_8if_f_id : + L24_8if_f: ; + *((IUH *)&(r20)) = (IS32)(1420) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + case L24_9if_d_id : + L24_9if_d: ; + { extern IUH L24_7if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_7if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_6if_f_id : + L24_6if_f: ; + *((IUH *)&(r21)) = (IS32)(1430) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if (*((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) == *((IU8 *)&(r22) + REGBYTE)) goto L24_10if_f; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+2) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+2) )) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+2) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+2) + REGLONG) = (*((IU32 *)(LocalIUH+2) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + { extern IUH L24_11if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_11if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_10if_f_id : + L24_10if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+2) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + case L24_11if_d_id : + L24_11if_d: ; + case L24_7if_d_id : + L24_7if_d: ; + { extern IUH L24_5if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_5if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_4if_f_id : + L24_4if_f: ; + *((IUH *)&(r21)) = (IS32)(1430) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L24_12if_f; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+2) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + case L24_12if_f_id : + L24_12if_f: ; + case L24_5if_d_id : + L24_5if_d: ; + *((IUH *)&(r20)) = (IS32)(1430) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L24_13if_f; + *((IUH *)&(r21)) = (IS32)(1432) ; + *((IUH *)&(r22)) = (IS32)(16) ; + *((IU8 *)&(r20) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU8 *)&(r22) + REGBYTE); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU8 *)&(r20) + REGBYTE) == *((IU8 *)&(r22) + REGBYTE)) goto L24_15if_f; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + case L24_15if_f_id : + L24_15if_f: ; + *((IUH *)(r1+0)) = (IS32)(16434) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16435) ; + { extern IUH L24_14if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_14if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_13if_f_id : + L24_13if_f: ; + *((IUH *)&(r21)) = (IS32)(1430) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L24_16if_f; + *((IUH *)(r1+0)) = (IS32)(16434) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16435) ; + { extern IUH L24_17if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_17if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_16if_f_id : + L24_16if_f: ; + *((IUH *)&(r20)) = (IS32)(1429) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L24_18if_f; + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + { extern IUH L24_19if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_19if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_18if_f_id : + L24_18if_f: ; + *((IUH *)&(r20)) = (IS32)(1420) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + case L24_19if_d_id : + L24_19if_d: ; + *((IUH *)&(r21)) = (IS32)(1432) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r23)) = (IS32)(2) ; + if (*((IU8 *)&(r23) + REGBYTE) + *((IU8 *)&(r22) + REGBYTE) > 8 || *((IU8 *)&(r23) + REGBYTE) == 0) + CrulesRuntimeError("Bad byte bitfield"); + else + *((IU8 *)&(r20) + REGBYTE) = (IU8)((*((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) << ( 8-(*((IU8 *)&(r22) + REGBYTE) + *((IU8 *)&(r23) + REGBYTE))))) >> ( 8 - *((IU8 *)&(r23) + REGBYTE)); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU8 *)&(r20) + REGBYTE) == *((IU8 *)&(r22) + REGBYTE)) goto L24_20if_f; + *((IUH *)&(r21)) = (IS32)(1432) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r23)) = (IS32)(2) ; + if (*((IU8 *)&(r23) + REGBYTE) + *((IU8 *)&(r22) + REGBYTE) > 8 || *((IU8 *)&(r23) + REGBYTE) == 0) + CrulesRuntimeError("Bad byte bitfield"); + else + *((IU8 *)&(r20) + REGBYTE) = (IU8)((*((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) << ( 8-(*((IU8 *)&(r22) + REGBYTE) + *((IU8 *)&(r23) + REGBYTE))))) >> ( 8 - *((IU8 *)&(r23) + REGBYTE)); + *((IUH *)&(r22)) = (IS32)(3) ; + if (*((IS8 *)&(r20) + REGBYTE) != *((IS8 *)&(r22) + REGBYTE)) goto L24_21if_f; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + { extern IUH L24_22if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_22if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_21if_f_id : + L24_21if_f: ; + *((IUH *)&(r20)) = (IS32)(1432) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r23)) = (IS32)(2) ; + if (*((IU8 *)&(r23) + REGBYTE) + *((IU8 *)&(r22) + REGBYTE) > 8 || *((IU8 *)&(r23) + REGBYTE) == 0) + CrulesRuntimeError("Bad byte bitfield"); + else + *((IU8 *)&(r21) + REGBYTE) = (IU8)((*((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) << ( 8-(*((IU8 *)&(r22) + REGBYTE) + *((IU8 *)&(r23) + REGBYTE))))) >> ( 8 - *((IU8 *)&(r23) + REGBYTE)); + *((IUH *)&(r22)) = (IS32)(1) ; + if (*((IS8 *)&(r21) + REGBYTE) != *((IS8 *)&(r22) + REGBYTE)) goto L24_23if_f; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + { extern IUH L24_24if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_24if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_23if_f_id : + L24_23if_f: ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + case L24_24if_d_id : + L24_24if_d: ; + case L24_22if_d_id : + L24_22if_d: ; + case L24_20if_f_id : + L24_20if_f: ; + *((IUH *)&(r20)) = (IS32)(1432) ; + *((IUH *)&(r22)) = (IS32)(8) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU8 *)&(r22) + REGBYTE); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU8 *)&(r21) + REGBYTE) == *((IU8 *)&(r22) + REGBYTE)) goto L24_25if_f; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + case L24_25if_f_id : + L24_25if_f: ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)(LocalIUH+2) + REGLONG)); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + case L24_17if_d_id : + L24_17if_d: ; + case L24_14if_d_id : + L24_14if_d: ; + case L24_1if_d_id : + L24_1if_d: ; + *((IUH *)&(r20)) = (IS32)(1431) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L24_26if_f; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + { extern IUH L24_27if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_27if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_26if_f_id : + L24_26if_f: ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L24_28if_f; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + case L24_28if_f_id : + L24_28if_f: ; + case L24_27if_d_id : + L24_27if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2239_GenericByteFill_id : + S_2239_GenericByteFill : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2239) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2219if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2219if_f_id : + L13_2219if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1431) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L24_29if_f; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L24_32w_d; + case L24_31w_t_id : + L24_31w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16438) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2238_GenericByteWrite() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2238_GenericByteWrite(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16439) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L24_31w_t; + case L24_32w_d_id : + L24_32w_d: ; + { extern IUH L24_30if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_30if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_29if_f_id : + L24_29if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L24_34w_d; + case L24_33w_t_id : + L24_33w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16438) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2238_GenericByteWrite() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2238_GenericByteWrite(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16439) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L24_33w_t; + case L24_34w_d_id : + L24_34w_d: ; + case L24_30if_d_id : + L24_30if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2240_GenericByteMove_Fwd_id : + S_2240_GenericByteMove_Fwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2240) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2220if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2220if_f_id : + L13_2220if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1431) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L24_35if_f; + *((IUH *)(LocalIUH+6)) = (IS32)(4) ; + { extern IUH L24_36if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_36if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_35if_f_id : + L24_35if_f: ; + *((IUH *)(LocalIUH+6)) = (IS32)(1) ; + case L24_36if_d_id : + L24_36if_d: ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L24_37if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L24_40w_d; + case L24_39w_t_id : + L24_39w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16438) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2238_GenericByteWrite() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2238_GenericByteWrite(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16439) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)(LocalIUH+6) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L24_39w_t; + case L24_40w_d_id : + L24_40w_d: ; + { extern IUH L24_38if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_38if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_37if_f_id : + L24_37if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L24_42w_d; + case L24_41w_t_id : + L24_41w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+9)) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1416) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004277), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IU8 *)(LocalIUH+10) + REGBYTE) = *((IU8 *)&(r2) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16438) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+10) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2238_GenericByteWrite() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2238_GenericByteWrite(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16439) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+9)) + *((IUH *)(LocalIUH+6)) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)(LocalIUH+6) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L24_41w_t; + case L24_42w_d_id : + L24_42w_d: ; + case L24_38if_d_id : + L24_38if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2241_GenericWordWrite_id : + S_2241_GenericWordWrite : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 40 > 0 ) LocalIUH = (IUH *)malloc ( 40 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2241) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2221if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2221if_f_id : + L13_2221if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IUH *)&(r21)) = (IS32)(1430) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L24_43if_f; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + { extern IUH L24_44if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_44if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_43if_f_id : + L24_43if_f: ; + *((IUH *)&(r20)) = (IS32)(1430) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if (*((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) == *((IU8 *)&(r21) + REGBYTE)) goto L24_45if_f; + *((IUH *)&(r22)) = (IS32)(1407) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +if(*((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )>=8) + CrulesRuntimeError("Bad Bit No"); + else + if(*((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )!=0) + *((IU8 *)&(r21) + REGBYTE) = (*((IU8 *)(LocalIUH+1) + REGBYTE) << ((8) - *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) ) | (*((IU8 *)&(r21) + REGBYTE) >> *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )); + *((IU8 *)&(r20) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU8 *)&(r20) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1407) ; + *((IU8 *)&(r20) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; +if(*((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )>=8) + CrulesRuntimeError("Bad Bit No"); + else + if(*((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )!=0) + *((IU8 *)&(r20) + REGBYTE) = (*(UOFF_15_8( (LocalIUH+1) )) << ((8) - *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) ) | (*((IU8 *)&(r20) + REGBYTE) >> *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )); + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU8 *)&(r21) + REGBYTE); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + { extern IUH L24_46if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_46if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_45if_f_id : + L24_45if_f: ; + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + case L24_46if_d_id : + L24_46if_d: ; + *((IUH *)&(r20)) = (IS32)(1431) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L24_47if_f; + *((IUH *)&(r21)) = (IS32)(1429) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) == *((IU8 *)&(r22) + REGBYTE)) goto L24_49if_f; + *((IUH *)&(r20)) = (IS32)(1430) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L24_51if_f; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+2) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+2) )) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+2) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+2) + REGLONG) = (*((IU32 *)(LocalIUH+2) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IU8 *)(LocalIUH+5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + { extern IUH L24_52if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_52if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_51if_f_id : + L24_51if_f: ; + *((IUH *)&(r21)) = (IS32)(1420) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1420) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + case L24_52if_d_id : + L24_52if_d: ; + { extern IUH L24_50if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_50if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_49if_f_id : + L24_49if_f: ; + *((IUH *)&(r21)) = (IS32)(1430) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if (*((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) == *((IU8 *)&(r22) + REGBYTE)) goto L24_53if_f; + *((IU8 *)(LocalIUH+6) + REGBYTE) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+2) + REGBYTE) = *((IU8 *)(LocalIUH+6) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+2) )) = *((IU8 *)(LocalIUH+6) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+2) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+2) + REGLONG) = (*((IU32 *)(LocalIUH+2) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IU8 *)(LocalIUH+7) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+7) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+7) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + { extern IUH L24_54if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_54if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_53if_f_id : + L24_53if_f: ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+2) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+3) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + case L24_54if_d_id : + L24_54if_d: ; + case L24_50if_d_id : + L24_50if_d: ; + { extern IUH L24_48if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_48if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_47if_f_id : + L24_47if_f: ; + *((IUH *)&(r20)) = (IS32)(1430) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L24_55if_f; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+2) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+3) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + case L24_55if_f_id : + L24_55if_f: ; + case L24_48if_d_id : + L24_48if_d: ; + *((IUH *)&(r21)) = (IS32)(1430) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L24_56if_f; + *((IUH *)&(r20)) = (IS32)(1432) ; + *((IUH *)&(r22)) = (IS32)(16) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU8 *)&(r22) + REGBYTE); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU8 *)&(r21) + REGBYTE) == *((IU8 *)&(r22) + REGBYTE)) goto L24_58if_f; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + case L24_58if_f_id : + L24_58if_f: ; + *((IUH *)(r1+0)) = (IS32)(16434) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16435) ; + *((IUH *)(r1+0)) = (IS32)(16434) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16435) ; + { extern IUH L24_57if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_57if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_56if_f_id : + L24_56if_f: ; + *((IUH *)&(r20)) = (IS32)(1430) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L24_59if_f; + *((IUH *)(r1+0)) = (IS32)(16434) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16435) ; + *((IUH *)(r1+0)) = (IS32)(16434) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16435) ; + { extern IUH L24_60if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_60if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_59if_f_id : + L24_59if_f: ; + *((IUH *)&(r21)) = (IS32)(1429) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L24_61if_f; + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + { extern IUH L24_62if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_62if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_61if_f_id : + L24_61if_f: ; + *((IUH *)&(r21)) = (IS32)(1420) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + case L24_62if_d_id : + L24_62if_d: ; + *((IUH *)&(r20)) = (IS32)(1432) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r23)) = (IS32)(2) ; + if (*((IU8 *)&(r23) + REGBYTE) + *((IU8 *)&(r22) + REGBYTE) > 8 || *((IU8 *)&(r23) + REGBYTE) == 0) + CrulesRuntimeError("Bad byte bitfield"); + else + *((IU8 *)&(r21) + REGBYTE) = (IU8)((*((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) << ( 8-(*((IU8 *)&(r22) + REGBYTE) + *((IU8 *)&(r23) + REGBYTE))))) >> ( 8 - *((IU8 *)&(r23) + REGBYTE)); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU8 *)&(r21) + REGBYTE) == *((IU8 *)&(r22) + REGBYTE)) goto L24_63if_f; + *((IUH *)&(r20)) = (IS32)(1432) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r23)) = (IS32)(2) ; + if (*((IU8 *)&(r23) + REGBYTE) + *((IU8 *)&(r22) + REGBYTE) > 8 || *((IU8 *)&(r23) + REGBYTE) == 0) + CrulesRuntimeError("Bad byte bitfield"); + else + *((IU8 *)&(r21) + REGBYTE) = (IU8)((*((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) << ( 8-(*((IU8 *)&(r22) + REGBYTE) + *((IU8 *)&(r23) + REGBYTE))))) >> ( 8 - *((IU8 *)&(r23) + REGBYTE)); + *((IUH *)&(r22)) = (IS32)(3) ; + if (*((IS8 *)&(r21) + REGBYTE) != *((IS8 *)&(r22) + REGBYTE)) goto L24_64if_f; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + { extern IUH L24_65if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_65if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_64if_f_id : + L24_64if_f: ; + *((IUH *)&(r21)) = (IS32)(1432) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r23)) = (IS32)(2) ; + if (*((IU8 *)&(r23) + REGBYTE) + *((IU8 *)&(r22) + REGBYTE) > 8 || *((IU8 *)&(r23) + REGBYTE) == 0) + CrulesRuntimeError("Bad byte bitfield"); + else + *((IU8 *)&(r20) + REGBYTE) = (IU8)((*((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) << ( 8-(*((IU8 *)&(r22) + REGBYTE) + *((IU8 *)&(r23) + REGBYTE))))) >> ( 8 - *((IU8 *)&(r23) + REGBYTE)); + *((IUH *)&(r22)) = (IS32)(1) ; + if (*((IS8 *)&(r20) + REGBYTE) != *((IS8 *)&(r22) + REGBYTE)) goto L24_66if_f; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + { extern IUH L24_67if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_67if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_66if_f_id : + L24_66if_f: ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + case L24_67if_d_id : + L24_67if_d: ; + case L24_65if_d_id : + L24_65if_d: ; + case L24_63if_f_id : + L24_63if_f: ; + *((IUH *)&(r21)) = (IS32)(1432) ; + *((IUH *)&(r22)) = (IS32)(8) ; + *((IU8 *)&(r20) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU8 *)&(r22) + REGBYTE); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU8 *)&(r20) + REGBYTE) == *((IU8 *)&(r22) + REGBYTE)) goto L24_68if_f; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + case L24_68if_f_id : + L24_68if_f: ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)(LocalIUH+2) + REGLONG)); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+3) + REGLONG)); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + case L24_60if_d_id : + L24_60if_d: ; + case L24_57if_d_id : + L24_57if_d: ; + case L24_44if_d_id : + L24_44if_d: ; + *((IUH *)&(r21)) = (IS32)(1431) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L24_69if_f; + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + { extern IUH L24_70if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_70if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_69if_f_id : + L24_69if_f: ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L24_71if_f; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + case L24_71if_f_id : + L24_71if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L24_72if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + case L24_72if_f_id : + L24_72if_f: ; + case L24_70if_d_id : + L24_70if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2242_GenericWordFill_id : + S_2242_GenericWordFill : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2242) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2222if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2222if_f_id : + L13_2222if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1431) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L24_73if_f; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L24_76w_d; + case L24_75w_t_id : + L24_75w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16446) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2241_GenericWordWrite() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2241_GenericWordWrite(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16447) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L24_75w_t; + case L24_76w_d_id : + L24_76w_d: ; + { extern IUH L24_74if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_74if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_73if_f_id : + L24_73if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L24_78w_d; + case L24_77w_t_id : + L24_77w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16446) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2241_GenericWordWrite() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2241_GenericWordWrite(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16447) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L24_77w_t; + case L24_78w_d_id : + L24_78w_d: ; + case L24_74if_d_id : + L24_74if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2243_GenericWordMove_Fwd_id : + S_2243_GenericWordMove_Fwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2243) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2223if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2223if_f_id : + L13_2223if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1431) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L24_79if_f; + *((IUH *)(LocalIUH+4)) = (IS32)(8) ; + { extern IUH L24_80if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_80if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_79if_f_id : + L24_79if_f: ; + *((IUH *)(LocalIUH+4)) = (IS32)(2) ; + case L24_80if_d_id : + L24_80if_d: ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L24_81if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L24_84w_d; + case L24_83w_t_id : + L24_83w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16446) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+8) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2241_GenericWordWrite() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2241_GenericWordWrite(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16447) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) + *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L24_83w_t; + case L24_84w_d_id : + L24_84w_d: ; + { extern IUH L24_82if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_82if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_81if_f_id : + L24_81if_f: ; + *((IU32 *)(LocalIUH+10) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L24_86w_d; + case L24_85w_t_id : + L24_85w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+10) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1416) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004277), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)&(r2) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+10) + REGLONG) = *((IU32 *)(LocalIUH+10) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+10) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1416) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004277), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)&(r2) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16446) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+8) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2241_GenericWordWrite() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2241_GenericWordWrite(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16447) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+10) + REGLONG) = *((IU32 *)(LocalIUH+10) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) + *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L24_85w_t; + case L24_86w_d_id : + L24_86w_d: ; + case L24_82if_d_id : + L24_82if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2244_GenericDwordWrite_id : + S_2244_GenericDwordWrite : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2244) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2224if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2224if_f_id : + L13_2224if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1431) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L24_87if_f; + *((IUH *)(r1+0)) = (IS32)(16446) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2241_GenericWordWrite() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2241_GenericWordWrite(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16447) ; + *((IUH *)(r1+0)) = (IS32)(16446) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2241_GenericWordWrite() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2241_GenericWordWrite(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16447) ; + { extern IUH L24_88if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_88if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_87if_f_id : + L24_87if_f: ; + *((IUH *)(r1+0)) = (IS32)(16446) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2241_GenericWordWrite() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2241_GenericWordWrite(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16447) ; + *((IUH *)(r1+0)) = (IS32)(16446) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2241_GenericWordWrite() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2241_GenericWordWrite(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16447) ; + case L24_88if_d_id : + L24_88if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2245_GenericDwordFill_id : + S_2245_GenericDwordFill : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2245) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2225if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2225if_f_id : + L13_2225if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1431) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L24_89if_f; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L24_92w_d; + case L24_91w_t_id : + L24_91w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16454) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2244_GenericDwordWrite() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2244_GenericDwordWrite(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16455) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L24_91w_t; + case L24_92w_d_id : + L24_92w_d: ; + { extern IUH L24_90if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_90if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_89if_f_id : + L24_89if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L24_94w_d; + case L24_93w_t_id : + L24_93w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16454) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2244_GenericDwordWrite() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2244_GenericDwordWrite(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16455) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L24_93w_t; + case L24_94w_d_id : + L24_94w_d: ; + case L24_90if_d_id : + L24_90if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid005.c b/private/mvdm/softpc.new/base/cvidc/sevid005.c new file mode 100644 index 000000000..493a9046f --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid005.c @@ -0,0 +1,3874 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; + +typedef enum +{ +S_2246_GenericDwordMove_Fwd_id, +L13_2226if_f_id, +S_2247_GenericByteMove_Bwd_id, +L13_2227if_f_id, +L24_95if_f_id, +L24_96if_d_id, +L24_99w_t_id, +L24_100w_d_id, +L24_97if_f_id, +L24_101w_t_id, +L24_102w_d_id, +L24_98if_d_id, +S_2248_GenericWordMove_Bwd_id, +L13_2228if_f_id, +L24_103if_f_id, +L24_104if_d_id, +L24_107w_t_id, +L24_108w_d_id, +L24_105if_f_id, +L24_109w_t_id, +L24_110w_d_id, +L24_106if_d_id, +S_2249_GenericDwordMove_Bwd_id, +L13_2229if_f_id, +S_2250_UnchainedByteWrite_00000000_00000008_00000000_id, +L13_2230if_f_id, +S_2251_UnchainedByteWrite_00000000_00000009_00000000_id, +L13_2231if_f_id, +S_2252_UnchainedByteWrite_00000000_0000000e_00000000_id, +L13_2232if_f_id, +S_2253_UnchainedByteWrite_00000000_0000000f_00000000_id, +L13_2233if_f_id, +S_2254_UnchainedByteWrite_00000000_00000010_00000000_id, +L13_2234if_f_id, +S_2255_UnchainedByteWrite_00000000_00000011_00000000_id, +L13_2235if_f_id, +S_2256_UnchainedByteWrite_00000000_00000016_00000000_id, +L13_2236if_f_id, +S_2257_UnchainedByteWrite_00000000_00000017_00000000_id, +L13_2237if_f_id, +S_2258_UnchainedByteWrite_00000000_00000018_00000000_id, +L13_2238if_f_id, +S_2259_UnchainedByteWrite_00000000_00000019_00000000_id, +L13_2239if_f_id, +S_2260_UnchainedByteWrite_00000000_0000001e_00000000_id, +L13_2240if_f_id, +S_2261_UnchainedByteWrite_00000000_0000001f_00000000_id, +L13_2241if_f_id, +S_2262_UnchainedByteFill_00000000_00000008_00000000_id, +L13_2242if_f_id, +L28_84if_f_id, +L28_85if_f_id, +L28_86if_f_id, +L28_87if_f_id, +S_2263_UnchainedByteFill_00000000_00000009_00000000_id, +L13_2243if_f_id, +S_2264_Unchained4PlaneByteFill_id, +L13_2244if_f_id, +L28_88w_t_id, +L28_89w_d_id, +S_2265_UnchainedByteFill_00000000_0000000e_00000000_id, +L13_2245if_f_id, +L28_90if_f_id, +L28_91if_f_id, +L28_92if_f_id, +L28_93if_f_id, +S_2266_UnchainedByteFill_00000000_0000000f_00000000_id, +L13_2246if_f_id, +S_2267_UnchainedByteFill_00000000_00000010_00000000_id, +L13_2247if_f_id, +L28_94if_f_id, +L28_95if_f_id, +L28_96if_f_id, +L28_97if_f_id, +S_2268_UnchainedByteFill_00000000_00000011_00000000_id, +L13_2248if_f_id, +S_2269_UnchainedByteFill_00000000_00000016_00000000_id, +L13_2249if_f_id, +L28_98if_f_id, +L28_99if_f_id, +L28_100if_f_id, +L28_101if_f_id, +S_2270_UnchainedByteFill_00000000_00000017_00000000_id, +L13_2250if_f_id, +S_2271_UnchainedByteFill_00000000_00000018_00000000_id, +L13_2251if_f_id, +L28_102if_f_id, +L28_103if_f_id, +L28_104if_f_id, +L28_105if_f_id, +S_2272_UnchainedByteFill_00000000_00000019_00000000_id, +L13_2252if_f_id, +S_2273_UnchainedByteFill_00000000_0000001e_00000000_id, +L13_2253if_f_id, +L28_106if_f_id, +L28_107if_f_id, +L28_108if_f_id, +L28_109if_f_id, +S_2274_UnchainedByteFill_00000000_0000001f_00000000_id, +L13_2254if_f_id, +S_2275_UnchainedByteMove_00000000_00000008_00000000_00000000_id, +L13_2255if_f_id, +L28_110if_f_id, +L28_111if_d_id, +S_2276_CopyBytePlnByPlnUnchained_00000000_00000008_00000000_00000000_id, +L13_2256if_f_id, +L23_128if_f_id, +L23_129if_f_id, +L23_130if_f_id, +L23_131if_f_id, +S_2277_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000000_id, +L13_2257if_f_id, +L23_134w_t_id, +L23_135w_d_id, +L23_132if_f_id, +L23_136w_t_id, +L23_137w_d_id, +L23_133if_d_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_2246_GenericDwordMove_Fwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2246_GenericDwordMove_Fwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2246_GenericDwordMove_Fwd = (IHPE)S_2246_GenericDwordMove_Fwd ; +LOCAL IUH L13_2226if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2226if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2226if_f = (IHPE)L13_2226if_f ; +GLOBAL IUH S_2247_GenericByteMove_Bwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2247_GenericByteMove_Bwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2247_GenericByteMove_Bwd = (IHPE)S_2247_GenericByteMove_Bwd ; +LOCAL IUH L13_2227if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2227if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2227if_f = (IHPE)L13_2227if_f ; +LOCAL IUH L24_95if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_95if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_95if_f = (IHPE)L24_95if_f ; +LOCAL IUH L24_96if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_96if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_96if_d = (IHPE)L24_96if_d ; +LOCAL IUH L24_99w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_99w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_99w_t = (IHPE)L24_99w_t ; +LOCAL IUH L24_100w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_100w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_100w_d = (IHPE)L24_100w_d ; +LOCAL IUH L24_97if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_97if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_97if_f = (IHPE)L24_97if_f ; +LOCAL IUH L24_101w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_101w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_101w_t = (IHPE)L24_101w_t ; +LOCAL IUH L24_102w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_102w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_102w_d = (IHPE)L24_102w_d ; +LOCAL IUH L24_98if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_98if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_98if_d = (IHPE)L24_98if_d ; +GLOBAL IUH S_2248_GenericWordMove_Bwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2248_GenericWordMove_Bwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2248_GenericWordMove_Bwd = (IHPE)S_2248_GenericWordMove_Bwd ; +LOCAL IUH L13_2228if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2228if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2228if_f = (IHPE)L13_2228if_f ; +LOCAL IUH L24_103if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_103if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_103if_f = (IHPE)L24_103if_f ; +LOCAL IUH L24_104if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_104if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_104if_d = (IHPE)L24_104if_d ; +LOCAL IUH L24_107w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_107w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_107w_t = (IHPE)L24_107w_t ; +LOCAL IUH L24_108w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_108w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_108w_d = (IHPE)L24_108w_d ; +LOCAL IUH L24_105if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_105if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_105if_f = (IHPE)L24_105if_f ; +LOCAL IUH L24_109w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_109w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_109w_t = (IHPE)L24_109w_t ; +LOCAL IUH L24_110w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_110w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_110w_d = (IHPE)L24_110w_d ; +LOCAL IUH L24_106if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L24_106if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L24_106if_d = (IHPE)L24_106if_d ; +GLOBAL IUH S_2249_GenericDwordMove_Bwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2249_GenericDwordMove_Bwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2249_GenericDwordMove_Bwd = (IHPE)S_2249_GenericDwordMove_Bwd ; +LOCAL IUH L13_2229if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2229if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2229if_f = (IHPE)L13_2229if_f ; +GLOBAL IUH S_2250_UnchainedByteWrite_00000000_00000008_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2250_UnchainedByteWrite_00000000_00000008_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2250_UnchainedByteWrite_00000000_00000008_00000000 = (IHPE)S_2250_UnchainedByteWrite_00000000_00000008_00000000 ; +LOCAL IUH L13_2230if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2230if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2230if_f = (IHPE)L13_2230if_f ; +GLOBAL IUH S_2251_UnchainedByteWrite_00000000_00000009_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2251_UnchainedByteWrite_00000000_00000009_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2251_UnchainedByteWrite_00000000_00000009_00000000 = (IHPE)S_2251_UnchainedByteWrite_00000000_00000009_00000000 ; +LOCAL IUH L13_2231if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2231if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2231if_f = (IHPE)L13_2231if_f ; +GLOBAL IUH S_2252_UnchainedByteWrite_00000000_0000000e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2252_UnchainedByteWrite_00000000_0000000e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2252_UnchainedByteWrite_00000000_0000000e_00000000 = (IHPE)S_2252_UnchainedByteWrite_00000000_0000000e_00000000 ; +LOCAL IUH L13_2232if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2232if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2232if_f = (IHPE)L13_2232if_f ; +GLOBAL IUH S_2253_UnchainedByteWrite_00000000_0000000f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2253_UnchainedByteWrite_00000000_0000000f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2253_UnchainedByteWrite_00000000_0000000f_00000000 = (IHPE)S_2253_UnchainedByteWrite_00000000_0000000f_00000000 ; +LOCAL IUH L13_2233if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2233if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2233if_f = (IHPE)L13_2233if_f ; +GLOBAL IUH S_2254_UnchainedByteWrite_00000000_00000010_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2254_UnchainedByteWrite_00000000_00000010_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2254_UnchainedByteWrite_00000000_00000010_00000000 = (IHPE)S_2254_UnchainedByteWrite_00000000_00000010_00000000 ; +LOCAL IUH L13_2234if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2234if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2234if_f = (IHPE)L13_2234if_f ; +GLOBAL IUH S_2255_UnchainedByteWrite_00000000_00000011_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2255_UnchainedByteWrite_00000000_00000011_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2255_UnchainedByteWrite_00000000_00000011_00000000 = (IHPE)S_2255_UnchainedByteWrite_00000000_00000011_00000000 ; +LOCAL IUH L13_2235if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2235if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2235if_f = (IHPE)L13_2235if_f ; +GLOBAL IUH S_2256_UnchainedByteWrite_00000000_00000016_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2256_UnchainedByteWrite_00000000_00000016_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2256_UnchainedByteWrite_00000000_00000016_00000000 = (IHPE)S_2256_UnchainedByteWrite_00000000_00000016_00000000 ; +LOCAL IUH L13_2236if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2236if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2236if_f = (IHPE)L13_2236if_f ; +GLOBAL IUH S_2257_UnchainedByteWrite_00000000_00000017_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2257_UnchainedByteWrite_00000000_00000017_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2257_UnchainedByteWrite_00000000_00000017_00000000 = (IHPE)S_2257_UnchainedByteWrite_00000000_00000017_00000000 ; +LOCAL IUH L13_2237if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2237if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2237if_f = (IHPE)L13_2237if_f ; +GLOBAL IUH S_2258_UnchainedByteWrite_00000000_00000018_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2258_UnchainedByteWrite_00000000_00000018_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2258_UnchainedByteWrite_00000000_00000018_00000000 = (IHPE)S_2258_UnchainedByteWrite_00000000_00000018_00000000 ; +LOCAL IUH L13_2238if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2238if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2238if_f = (IHPE)L13_2238if_f ; +GLOBAL IUH S_2259_UnchainedByteWrite_00000000_00000019_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2259_UnchainedByteWrite_00000000_00000019_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2259_UnchainedByteWrite_00000000_00000019_00000000 = (IHPE)S_2259_UnchainedByteWrite_00000000_00000019_00000000 ; +LOCAL IUH L13_2239if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2239if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2239if_f = (IHPE)L13_2239if_f ; +GLOBAL IUH S_2260_UnchainedByteWrite_00000000_0000001e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2260_UnchainedByteWrite_00000000_0000001e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2260_UnchainedByteWrite_00000000_0000001e_00000000 = (IHPE)S_2260_UnchainedByteWrite_00000000_0000001e_00000000 ; +LOCAL IUH L13_2240if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2240if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2240if_f = (IHPE)L13_2240if_f ; +GLOBAL IUH S_2261_UnchainedByteWrite_00000000_0000001f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2261_UnchainedByteWrite_00000000_0000001f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2261_UnchainedByteWrite_00000000_0000001f_00000000 = (IHPE)S_2261_UnchainedByteWrite_00000000_0000001f_00000000 ; +LOCAL IUH L13_2241if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2241if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2241if_f = (IHPE)L13_2241if_f ; +GLOBAL IUH S_2262_UnchainedByteFill_00000000_00000008_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2262_UnchainedByteFill_00000000_00000008_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2262_UnchainedByteFill_00000000_00000008_00000000 = (IHPE)S_2262_UnchainedByteFill_00000000_00000008_00000000 ; +LOCAL IUH L13_2242if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2242if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2242if_f = (IHPE)L13_2242if_f ; +LOCAL IUH L28_84if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_84if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_84if_f = (IHPE)L28_84if_f ; +LOCAL IUH L28_85if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_85if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_85if_f = (IHPE)L28_85if_f ; +LOCAL IUH L28_86if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_86if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_86if_f = (IHPE)L28_86if_f ; +LOCAL IUH L28_87if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_87if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_87if_f = (IHPE)L28_87if_f ; +GLOBAL IUH S_2263_UnchainedByteFill_00000000_00000009_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2263_UnchainedByteFill_00000000_00000009_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2263_UnchainedByteFill_00000000_00000009_00000000 = (IHPE)S_2263_UnchainedByteFill_00000000_00000009_00000000 ; +LOCAL IUH L13_2243if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2243if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2243if_f = (IHPE)L13_2243if_f ; +GLOBAL IUH S_2264_Unchained4PlaneByteFill IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2264_Unchained4PlaneByteFill_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2264_Unchained4PlaneByteFill = (IHPE)S_2264_Unchained4PlaneByteFill ; +LOCAL IUH L13_2244if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2244if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2244if_f = (IHPE)L13_2244if_f ; +LOCAL IUH L28_88w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_88w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_88w_t = (IHPE)L28_88w_t ; +LOCAL IUH L28_89w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_89w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_89w_d = (IHPE)L28_89w_d ; +GLOBAL IUH S_2265_UnchainedByteFill_00000000_0000000e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2265_UnchainedByteFill_00000000_0000000e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2265_UnchainedByteFill_00000000_0000000e_00000000 = (IHPE)S_2265_UnchainedByteFill_00000000_0000000e_00000000 ; +LOCAL IUH L13_2245if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2245if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2245if_f = (IHPE)L13_2245if_f ; +LOCAL IUH L28_90if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_90if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_90if_f = (IHPE)L28_90if_f ; +LOCAL IUH L28_91if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_91if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_91if_f = (IHPE)L28_91if_f ; +LOCAL IUH L28_92if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_92if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_92if_f = (IHPE)L28_92if_f ; +LOCAL IUH L28_93if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_93if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_93if_f = (IHPE)L28_93if_f ; +GLOBAL IUH S_2266_UnchainedByteFill_00000000_0000000f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2266_UnchainedByteFill_00000000_0000000f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2266_UnchainedByteFill_00000000_0000000f_00000000 = (IHPE)S_2266_UnchainedByteFill_00000000_0000000f_00000000 ; +LOCAL IUH L13_2246if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2246if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2246if_f = (IHPE)L13_2246if_f ; +GLOBAL IUH S_2267_UnchainedByteFill_00000000_00000010_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2267_UnchainedByteFill_00000000_00000010_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2267_UnchainedByteFill_00000000_00000010_00000000 = (IHPE)S_2267_UnchainedByteFill_00000000_00000010_00000000 ; +LOCAL IUH L13_2247if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2247if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2247if_f = (IHPE)L13_2247if_f ; +LOCAL IUH L28_94if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_94if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_94if_f = (IHPE)L28_94if_f ; +LOCAL IUH L28_95if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_95if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_95if_f = (IHPE)L28_95if_f ; +LOCAL IUH L28_96if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_96if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_96if_f = (IHPE)L28_96if_f ; +LOCAL IUH L28_97if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_97if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_97if_f = (IHPE)L28_97if_f ; +GLOBAL IUH S_2268_UnchainedByteFill_00000000_00000011_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2268_UnchainedByteFill_00000000_00000011_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2268_UnchainedByteFill_00000000_00000011_00000000 = (IHPE)S_2268_UnchainedByteFill_00000000_00000011_00000000 ; +LOCAL IUH L13_2248if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2248if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2248if_f = (IHPE)L13_2248if_f ; +GLOBAL IUH S_2269_UnchainedByteFill_00000000_00000016_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2269_UnchainedByteFill_00000000_00000016_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2269_UnchainedByteFill_00000000_00000016_00000000 = (IHPE)S_2269_UnchainedByteFill_00000000_00000016_00000000 ; +LOCAL IUH L13_2249if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2249if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2249if_f = (IHPE)L13_2249if_f ; +LOCAL IUH L28_98if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_98if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_98if_f = (IHPE)L28_98if_f ; +LOCAL IUH L28_99if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_99if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_99if_f = (IHPE)L28_99if_f ; +LOCAL IUH L28_100if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_100if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_100if_f = (IHPE)L28_100if_f ; +LOCAL IUH L28_101if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_101if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_101if_f = (IHPE)L28_101if_f ; +GLOBAL IUH S_2270_UnchainedByteFill_00000000_00000017_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2270_UnchainedByteFill_00000000_00000017_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2270_UnchainedByteFill_00000000_00000017_00000000 = (IHPE)S_2270_UnchainedByteFill_00000000_00000017_00000000 ; +LOCAL IUH L13_2250if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2250if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2250if_f = (IHPE)L13_2250if_f ; +GLOBAL IUH S_2271_UnchainedByteFill_00000000_00000018_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2271_UnchainedByteFill_00000000_00000018_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2271_UnchainedByteFill_00000000_00000018_00000000 = (IHPE)S_2271_UnchainedByteFill_00000000_00000018_00000000 ; +LOCAL IUH L13_2251if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2251if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2251if_f = (IHPE)L13_2251if_f ; +LOCAL IUH L28_102if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_102if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_102if_f = (IHPE)L28_102if_f ; +LOCAL IUH L28_103if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_103if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_103if_f = (IHPE)L28_103if_f ; +LOCAL IUH L28_104if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_104if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_104if_f = (IHPE)L28_104if_f ; +LOCAL IUH L28_105if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_105if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_105if_f = (IHPE)L28_105if_f ; +GLOBAL IUH S_2272_UnchainedByteFill_00000000_00000019_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2272_UnchainedByteFill_00000000_00000019_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2272_UnchainedByteFill_00000000_00000019_00000000 = (IHPE)S_2272_UnchainedByteFill_00000000_00000019_00000000 ; +LOCAL IUH L13_2252if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2252if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2252if_f = (IHPE)L13_2252if_f ; +GLOBAL IUH S_2273_UnchainedByteFill_00000000_0000001e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2273_UnchainedByteFill_00000000_0000001e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2273_UnchainedByteFill_00000000_0000001e_00000000 = (IHPE)S_2273_UnchainedByteFill_00000000_0000001e_00000000 ; +LOCAL IUH L13_2253if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2253if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2253if_f = (IHPE)L13_2253if_f ; +LOCAL IUH L28_106if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_106if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_106if_f = (IHPE)L28_106if_f ; +LOCAL IUH L28_107if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_107if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_107if_f = (IHPE)L28_107if_f ; +LOCAL IUH L28_108if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_108if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_108if_f = (IHPE)L28_108if_f ; +LOCAL IUH L28_109if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_109if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_109if_f = (IHPE)L28_109if_f ; +GLOBAL IUH S_2274_UnchainedByteFill_00000000_0000001f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2274_UnchainedByteFill_00000000_0000001f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2274_UnchainedByteFill_00000000_0000001f_00000000 = (IHPE)S_2274_UnchainedByteFill_00000000_0000001f_00000000 ; +LOCAL IUH L13_2254if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2254if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2254if_f = (IHPE)L13_2254if_f ; +GLOBAL IUH S_2275_UnchainedByteMove_00000000_00000008_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2275_UnchainedByteMove_00000000_00000008_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2275_UnchainedByteMove_00000000_00000008_00000000_00000000 = (IHPE)S_2275_UnchainedByteMove_00000000_00000008_00000000_00000000 ; +LOCAL IUH L13_2255if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2255if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2255if_f = (IHPE)L13_2255if_f ; +LOCAL IUH L28_110if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_110if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_110if_f = (IHPE)L28_110if_f ; +LOCAL IUH L28_111if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_111if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_111if_d = (IHPE)L28_111if_d ; +GLOBAL IUH S_2276_CopyBytePlnByPlnUnchained_00000000_00000008_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2276_CopyBytePlnByPlnUnchained_00000000_00000008_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2276_CopyBytePlnByPlnUnchained_00000000_00000008_00000000_00000000 = (IHPE)S_2276_CopyBytePlnByPlnUnchained_00000000_00000008_00000000_00000000 ; +LOCAL IUH L13_2256if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2256if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2256if_f = (IHPE)L13_2256if_f ; +LOCAL IUH L23_128if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_128if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_128if_f = (IHPE)L23_128if_f ; +LOCAL IUH L23_129if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_129if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_129if_f = (IHPE)L23_129if_f ; +LOCAL IUH L23_130if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_130if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_130if_f = (IHPE)L23_130if_f ; +LOCAL IUH L23_131if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_131if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_131if_f = (IHPE)L23_131if_f ; +GLOBAL IUH S_2277_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2277_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2277_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000000 = (IHPE)S_2277_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000000 ; +LOCAL IUH L13_2257if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2257if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2257if_f = (IHPE)L13_2257if_f ; +LOCAL IUH L23_134w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_134w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_134w_t = (IHPE)L23_134w_t ; +LOCAL IUH L23_135w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_135w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_135w_d = (IHPE)L23_135w_d ; +LOCAL IUH L23_132if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_132if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_132if_f = (IHPE)L23_132if_f ; +LOCAL IUH L23_136w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_136w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_136w_t = (IHPE)L23_136w_t ; +LOCAL IUH L23_137w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_137w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_137w_d = (IHPE)L23_137w_d ; +LOCAL IUH L23_133if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_133if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_133if_d = (IHPE)L23_133if_d ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2246_GenericDwordMove_Fwd_id : + S_2246_GenericDwordMove_Fwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2246) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2226if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2226if_f_id : + L13_2226if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16458) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2243_GenericWordMove_Fwd() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2243_GenericWordMove_Fwd(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16459) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2247_GenericByteMove_Bwd_id : + S_2247_GenericByteMove_Bwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2247) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2227if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2227if_f_id : + L13_2227if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1431) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L24_95if_f; + *((IUH *)(LocalIUH+6)) = (IS32)(-4) ; + { extern IUH L24_96if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_96if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_95if_f_id : + L24_95if_f: ; + *((IUH *)(LocalIUH+6)) = (IS32)(-1) ; + case L24_96if_d_id : + L24_96if_d: ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L24_97if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L24_100w_d; + case L24_99w_t_id : + L24_99w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16438) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2238_GenericByteWrite() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2238_GenericByteWrite(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16439) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)(LocalIUH+6) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L24_99w_t; + case L24_100w_d_id : + L24_100w_d: ; + { extern IUH L24_98if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_98if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_97if_f_id : + L24_97if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L24_102w_d; + case L24_101w_t_id : + L24_101w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+9)) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1416) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004277), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IU8 *)(LocalIUH+10) + REGBYTE) = *((IU8 *)&(r2) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16438) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+10) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2238_GenericByteWrite() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2238_GenericByteWrite(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16439) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+9)) + *((IUH *)(LocalIUH+6)) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)(LocalIUH+6) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L24_101w_t; + case L24_102w_d_id : + L24_102w_d: ; + case L24_98if_d_id : + L24_98if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2248_GenericWordMove_Bwd_id : + S_2248_GenericWordMove_Bwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2248) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2228if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2228if_f_id : + L13_2228if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1431) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L24_103if_f; + *((IUH *)(LocalIUH+4)) = (IS32)(-8) ; + { extern IUH L24_104if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_104if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_103if_f_id : + L24_103if_f: ; + *((IUH *)(LocalIUH+4)) = (IS32)(-2) ; + case L24_104if_d_id : + L24_104if_d: ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L24_105if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L24_108w_d; + case L24_107w_t_id : + L24_107w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16446) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+8) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2241_GenericWordWrite() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2241_GenericWordWrite(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16447) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) + *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L24_107w_t; + case L24_108w_d_id : + L24_108w_d: ; + { extern IUH L24_106if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L24_106if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L24_105if_f_id : + L24_105if_f: ; + *((IU32 *)(LocalIUH+10) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L24_110w_d; + case L24_109w_t_id : + L24_109w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+10) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1416) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004277), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)&(r2) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+10) + REGLONG) = *((IU32 *)(LocalIUH+10) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+10) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1416) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004277), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)&(r2) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16446) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+8) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2241_GenericWordWrite() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2241_GenericWordWrite(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16447) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+10) + REGLONG) = *((IU32 *)(LocalIUH+10) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) + *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L24_109w_t; + case L24_110w_d_id : + L24_110w_d: ; + case L24_106if_d_id : + L24_106if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2249_GenericDwordMove_Bwd_id : + S_2249_GenericDwordMove_Bwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2249) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2229if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2229if_f_id : + L13_2229if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16466) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2248_GenericWordMove_Bwd() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2248_GenericWordMove_Bwd(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16467) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2250_UnchainedByteWrite_00000000_00000008_00000000_id : + S_2250_UnchainedByteWrite_00000000_00000008_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2250) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2230if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2230if_f_id : + L13_2230if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2251_UnchainedByteWrite_00000000_00000009_00000000_id : + S_2251_UnchainedByteWrite_00000000_00000009_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2251) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2231if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2231if_f_id : + L13_2231if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2252_UnchainedByteWrite_00000000_0000000e_00000000_id : + S_2252_UnchainedByteWrite_00000000_0000000e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2252) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2232if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2232if_f_id : + L13_2232if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2253_UnchainedByteWrite_00000000_0000000f_00000000_id : + S_2253_UnchainedByteWrite_00000000_0000000f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2253) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2233if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2233if_f_id : + L13_2233if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2254_UnchainedByteWrite_00000000_00000010_00000000_id : + S_2254_UnchainedByteWrite_00000000_00000010_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2254) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2234if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2234if_f_id : + L13_2234if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2255_UnchainedByteWrite_00000000_00000011_00000000_id : + S_2255_UnchainedByteWrite_00000000_00000011_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2255) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2235if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2235if_f_id : + L13_2235if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2256_UnchainedByteWrite_00000000_00000016_00000000_id : + S_2256_UnchainedByteWrite_00000000_00000016_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2256) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2236if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2236if_f_id : + L13_2236if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2257_UnchainedByteWrite_00000000_00000017_00000000_id : + S_2257_UnchainedByteWrite_00000000_00000017_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2257) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2237if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2237if_f_id : + L13_2237if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2258_UnchainedByteWrite_00000000_00000018_00000000_id : + S_2258_UnchainedByteWrite_00000000_00000018_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2258) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2238if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2238if_f_id : + L13_2238if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2259_UnchainedByteWrite_00000000_00000019_00000000_id : + S_2259_UnchainedByteWrite_00000000_00000019_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2259) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2239if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2239if_f_id : + L13_2239if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2260_UnchainedByteWrite_00000000_0000001e_00000000_id : + S_2260_UnchainedByteWrite_00000000_0000001e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2260) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2240if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2240if_f_id : + L13_2240if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2261_UnchainedByteWrite_00000000_0000001f_00000000_id : + S_2261_UnchainedByteWrite_00000000_0000001f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2261) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2241if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2241if_f_id : + L13_2241if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2262_UnchainedByteFill_00000000_00000008_00000000_id : + S_2262_UnchainedByteFill_00000000_00000008_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2262) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2242if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2242if_f_id : + L13_2242if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_84if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_84if_f_id : + L28_84if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_85if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_85if_f_id : + L28_85if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_86if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_86if_f_id : + L28_86if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_87if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_87if_f_id : + L28_87if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2263_UnchainedByteFill_00000000_00000009_00000000_id : + S_2263_UnchainedByteFill_00000000_00000009_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2263) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2243if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2243if_f_id : + L13_2243if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16474) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2264_Unchained4PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2264_Unchained4PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16475) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2264_Unchained4PlaneByteFill_id : + S_2264_Unchained4PlaneByteFill : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2264) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2244if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2244if_f_id : + L13_2244if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+4)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L28_89w_d; + case L28_88w_t_id : + L28_88w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)(LocalIUH+4)) = *((IUH *)(LocalIUH+4)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+4)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IU32 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L28_88w_t; + case L28_89w_d_id : + L28_89w_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2265_UnchainedByteFill_00000000_0000000e_00000000_id : + S_2265_UnchainedByteFill_00000000_0000000e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2265) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2245if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2245if_f_id : + L13_2245if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_90if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_90if_f_id : + L28_90if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_91if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_91if_f_id : + L28_91if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_92if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_92if_f_id : + L28_92if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_93if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_93if_f_id : + L28_93if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2266_UnchainedByteFill_00000000_0000000f_00000000_id : + S_2266_UnchainedByteFill_00000000_0000000f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2266) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2246if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2246if_f_id : + L13_2246if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16474) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2264_Unchained4PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2264_Unchained4PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16475) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2267_UnchainedByteFill_00000000_00000010_00000000_id : + S_2267_UnchainedByteFill_00000000_00000010_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2267) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2247if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2247if_f_id : + L13_2247if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_94if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_94if_f_id : + L28_94if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_95if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_95if_f_id : + L28_95if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_96if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_96if_f_id : + L28_96if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_97if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_97if_f_id : + L28_97if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2268_UnchainedByteFill_00000000_00000011_00000000_id : + S_2268_UnchainedByteFill_00000000_00000011_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2268) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2248if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2248if_f_id : + L13_2248if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16474) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2264_Unchained4PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2264_Unchained4PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16475) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2269_UnchainedByteFill_00000000_00000016_00000000_id : + S_2269_UnchainedByteFill_00000000_00000016_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2269) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2249if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2249if_f_id : + L13_2249if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_98if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_98if_f_id : + L28_98if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_99if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_99if_f_id : + L28_99if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_100if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_100if_f_id : + L28_100if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_101if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_101if_f_id : + L28_101if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2270_UnchainedByteFill_00000000_00000017_00000000_id : + S_2270_UnchainedByteFill_00000000_00000017_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2270) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2250if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2250if_f_id : + L13_2250if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16474) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2264_Unchained4PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2264_Unchained4PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16475) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2271_UnchainedByteFill_00000000_00000018_00000000_id : + S_2271_UnchainedByteFill_00000000_00000018_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2271) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2251if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2251if_f_id : + L13_2251if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_102if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_102if_f_id : + L28_102if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_103if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_103if_f_id : + L28_103if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_104if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_104if_f_id : + L28_104if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_105if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_105if_f_id : + L28_105if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2272_UnchainedByteFill_00000000_00000019_00000000_id : + S_2272_UnchainedByteFill_00000000_00000019_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2272) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2252if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2252if_f_id : + L13_2252if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16474) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2264_Unchained4PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2264_Unchained4PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16475) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2273_UnchainedByteFill_00000000_0000001e_00000000_id : + S_2273_UnchainedByteFill_00000000_0000001e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2273) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2253if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2253if_f_id : + L13_2253if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_106if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_106if_f_id : + L28_106if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_107if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_107if_f_id : + L28_107if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_108if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_108if_f_id : + L28_108if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_109if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_109if_f_id : + L28_109if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2274_UnchainedByteFill_00000000_0000001f_00000000_id : + S_2274_UnchainedByteFill_00000000_0000001f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2274) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2254if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2254if_f_id : + L13_2254if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16474) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2264_Unchained4PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2264_Unchained4PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16475) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2275_UnchainedByteMove_00000000_00000008_00000000_00000000_id : + S_2275_UnchainedByteMove_00000000_00000008_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2275) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2255if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2255if_f_id : + L13_2255if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_110if_f; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2276_CopyBytePlnByPlnUnchained_00000000_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2276_CopyBytePlnByPlnUnchained_00000000_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + { extern IUH L28_111if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_111if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_110if_f_id : + L28_110if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2276_CopyBytePlnByPlnUnchained_00000000_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2276_CopyBytePlnByPlnUnchained_00000000_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + case L28_111if_d_id : + L28_111if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2276_CopyBytePlnByPlnUnchained_00000000_00000008_00000000_00000000_id : + S_2276_CopyBytePlnByPlnUnchained_00000000_00000008_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2276) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2256if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2256if_f_id : + L13_2256if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_128if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2277_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2277_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_128if_f_id : + L23_128if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_129if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2277_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2277_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_129if_f_id : + L23_129if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_130if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2277_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2277_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_130if_f_id : + L23_130if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_131if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2277_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2277_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_131if_f_id : + L23_131if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2277_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000000_id : + S_2277_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2277) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2257if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2257if_f_id : + L13_2257if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_132if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_135w_d; + case L23_134w_t_id : + L23_134w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_134w_t; + case L23_135w_d_id : + L23_135w_d: ; + { extern IUH L23_133if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_133if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_132if_f_id : + L23_132if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_137w_d; + case L23_136w_t_id : + L23_136w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_136w_t; + case L23_137w_d_id : + L23_137w_d: ; + case L23_133if_d_id : + L23_133if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid006.c b/private/mvdm/softpc.new/base/cvidc/sevid006.c new file mode 100644 index 000000000..821f9ce45 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid006.c @@ -0,0 +1,4828 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_2278_UnchainedByteMove_00000000_00000009_00000000_00000000_id, +L13_2258if_f_id, +L28_112if_f_id, +L28_113if_d_id, +S_2279_CopyByte4PlaneUnchained_00000000_00000009_00000000_00000000_id, +L13_2259if_f_id, +L23_140w_t_id, +L23_141w_d_id, +L23_138if_f_id, +L23_142w_t_id, +L23_143w_d_id, +L23_139if_d_id, +S_2280_UnchainedByteMove_00000000_0000000e_00000000_00000000_id, +L13_2260if_f_id, +L28_114if_f_id, +L28_115if_d_id, +S_2281_CopyBytePlnByPlnUnchained_00000000_0000000e_00000000_00000000_id, +L13_2261if_f_id, +L23_144if_f_id, +L23_145if_f_id, +L23_146if_f_id, +L23_147if_f_id, +S_2282_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000000_id, +L13_2262if_f_id, +L23_150w_t_id, +L23_151w_d_id, +L23_148if_f_id, +L23_152w_t_id, +L23_153w_d_id, +L23_149if_d_id, +S_2283_UnchainedByteMove_00000000_0000000f_00000000_00000000_id, +L13_2263if_f_id, +L28_116if_f_id, +L28_117if_d_id, +S_2284_CopyByte4PlaneUnchained_00000000_0000000f_00000000_00000000_id, +L13_2264if_f_id, +L23_156w_t_id, +L23_157w_d_id, +L23_154if_f_id, +L23_158w_t_id, +L23_159w_d_id, +L23_155if_d_id, +S_2285_UnchainedByteMove_00000000_00000010_00000000_00000000_id, +L13_2265if_f_id, +L28_118if_f_id, +L28_119if_d_id, +S_2286_CopyBytePlnByPlnUnchained_00000000_00000010_00000000_00000000_id, +L13_2266if_f_id, +L23_160if_f_id, +L23_161if_f_id, +L23_162if_f_id, +L23_163if_f_id, +S_2287_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000000_id, +L13_2267if_f_id, +L23_166w_t_id, +L23_167w_d_id, +L23_164if_f_id, +L23_168w_t_id, +L23_169w_d_id, +L23_165if_d_id, +S_2288_UnchainedByteMove_00000000_00000011_00000000_00000000_id, +L13_2268if_f_id, +L28_120if_f_id, +L28_121if_d_id, +S_2289_CopyByte4PlaneUnchained_00000000_00000011_00000000_00000000_id, +L13_2269if_f_id, +L23_172w_t_id, +L23_173w_d_id, +L23_170if_f_id, +L23_174w_t_id, +L23_175w_d_id, +L23_171if_d_id, +S_2290_UnchainedByteMove_00000000_00000016_00000000_00000000_id, +L13_2270if_f_id, +L28_122if_f_id, +L28_123if_d_id, +S_2291_CopyBytePlnByPlnUnchained_00000000_00000016_00000000_00000000_id, +L13_2271if_f_id, +L23_176if_f_id, +L23_177if_f_id, +L23_178if_f_id, +L23_179if_f_id, +S_2292_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000000_id, +L13_2272if_f_id, +L23_182w_t_id, +L23_183w_d_id, +L23_180if_f_id, +L23_184w_t_id, +L23_185w_d_id, +L23_181if_d_id, +S_2293_UnchainedByteMove_00000000_00000017_00000000_00000000_id, +L13_2273if_f_id, +L28_124if_f_id, +L28_125if_d_id, +S_2294_CopyByte4PlaneUnchained_00000000_00000017_00000000_00000000_id, +L13_2274if_f_id, +L23_188w_t_id, +L23_189w_d_id, +L23_186if_f_id, +L23_190w_t_id, +L23_191w_d_id, +L23_187if_d_id, +S_2295_UnchainedByteMove_00000000_00000018_00000000_00000000_id, +L13_2275if_f_id, +L28_126if_f_id, +L28_127if_d_id, +S_2296_CopyBytePlnByPlnUnchained_00000000_00000018_00000000_00000000_id, +L13_2276if_f_id, +L23_192if_f_id, +L23_193if_f_id, +L23_194if_f_id, +L23_195if_f_id, +S_2297_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000000_id, +L13_2277if_f_id, +L23_198w_t_id, +L23_199w_d_id, +L23_196if_f_id, +L23_200w_t_id, +L23_201w_d_id, +L23_197if_d_id, +S_2298_UnchainedByteMove_00000000_00000019_00000000_00000000_id, +L13_2278if_f_id, +L28_128if_f_id, +L28_129if_d_id, +S_2299_CopyByte4PlaneUnchained_00000000_00000019_00000000_00000000_id, +L13_2279if_f_id, +L23_204w_t_id, +L23_205w_d_id, +L23_202if_f_id, +L23_206w_t_id, +L23_207w_d_id, +L23_203if_d_id, +S_2300_UnchainedByteMove_00000000_0000001e_00000000_00000000_id, +L13_2280if_f_id, +L28_130if_f_id, +L28_131if_d_id, +S_2301_CopyBytePlnByPlnUnchained_00000000_0000001e_00000000_00000000_id, +L13_2281if_f_id, +L23_208if_f_id, +L23_209if_f_id, +L23_210if_f_id, +L23_211if_f_id, +S_2302_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000000_id, +L13_2282if_f_id, +L23_214w_t_id, +L23_215w_d_id, +L23_212if_f_id, +L23_216w_t_id, +L23_217w_d_id, +L23_213if_d_id, +S_2303_UnchainedByteMove_00000000_0000001f_00000000_00000000_id, +L13_2283if_f_id, +L28_132if_f_id, +L28_133if_d_id, +S_2304_CopyByte4PlaneUnchained_00000000_0000001f_00000000_00000000_id, +L13_2284if_f_id, +L23_220w_t_id, +L23_221w_d_id, +L23_218if_f_id, +L23_222w_t_id, +L23_223w_d_id, +L23_219if_d_id, +S_2305_UnchainedWordWrite_00000000_00000008_00000000_id, +L13_2285if_f_id, +S_2306_UnchainedWordWrite_00000000_00000009_00000000_id, +L13_2286if_f_id, +S_2307_UnchainedWordWrite_00000000_0000000e_00000000_id, +L13_2287if_f_id, +S_2308_UnchainedWordWrite_00000000_0000000f_00000000_id, +L13_2288if_f_id, +S_2309_UnchainedWordWrite_00000000_00000010_00000000_id, +L13_2289if_f_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_2278_UnchainedByteMove_00000000_00000009_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2278_UnchainedByteMove_00000000_00000009_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2278_UnchainedByteMove_00000000_00000009_00000000_00000000 = (IHPE)S_2278_UnchainedByteMove_00000000_00000009_00000000_00000000 ; +LOCAL IUH L13_2258if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2258if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2258if_f = (IHPE)L13_2258if_f ; +LOCAL IUH L28_112if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_112if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_112if_f = (IHPE)L28_112if_f ; +LOCAL IUH L28_113if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_113if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_113if_d = (IHPE)L28_113if_d ; +GLOBAL IUH S_2279_CopyByte4PlaneUnchained_00000000_00000009_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2279_CopyByte4PlaneUnchained_00000000_00000009_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2279_CopyByte4PlaneUnchained_00000000_00000009_00000000_00000000 = (IHPE)S_2279_CopyByte4PlaneUnchained_00000000_00000009_00000000_00000000 ; +LOCAL IUH L13_2259if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2259if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2259if_f = (IHPE)L13_2259if_f ; +LOCAL IUH L23_140w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_140w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_140w_t = (IHPE)L23_140w_t ; +LOCAL IUH L23_141w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_141w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_141w_d = (IHPE)L23_141w_d ; +LOCAL IUH L23_138if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_138if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_138if_f = (IHPE)L23_138if_f ; +LOCAL IUH L23_142w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_142w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_142w_t = (IHPE)L23_142w_t ; +LOCAL IUH L23_143w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_143w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_143w_d = (IHPE)L23_143w_d ; +LOCAL IUH L23_139if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_139if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_139if_d = (IHPE)L23_139if_d ; +GLOBAL IUH S_2280_UnchainedByteMove_00000000_0000000e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2280_UnchainedByteMove_00000000_0000000e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2280_UnchainedByteMove_00000000_0000000e_00000000_00000000 = (IHPE)S_2280_UnchainedByteMove_00000000_0000000e_00000000_00000000 ; +LOCAL IUH L13_2260if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2260if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2260if_f = (IHPE)L13_2260if_f ; +LOCAL IUH L28_114if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_114if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_114if_f = (IHPE)L28_114if_f ; +LOCAL IUH L28_115if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_115if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_115if_d = (IHPE)L28_115if_d ; +GLOBAL IUH S_2281_CopyBytePlnByPlnUnchained_00000000_0000000e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2281_CopyBytePlnByPlnUnchained_00000000_0000000e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2281_CopyBytePlnByPlnUnchained_00000000_0000000e_00000000_00000000 = (IHPE)S_2281_CopyBytePlnByPlnUnchained_00000000_0000000e_00000000_00000000 ; +LOCAL IUH L13_2261if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2261if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2261if_f = (IHPE)L13_2261if_f ; +LOCAL IUH L23_144if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_144if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_144if_f = (IHPE)L23_144if_f ; +LOCAL IUH L23_145if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_145if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_145if_f = (IHPE)L23_145if_f ; +LOCAL IUH L23_146if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_146if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_146if_f = (IHPE)L23_146if_f ; +LOCAL IUH L23_147if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_147if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_147if_f = (IHPE)L23_147if_f ; +GLOBAL IUH S_2282_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2282_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2282_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000000 = (IHPE)S_2282_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000000 ; +LOCAL IUH L13_2262if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2262if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2262if_f = (IHPE)L13_2262if_f ; +LOCAL IUH L23_150w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_150w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_150w_t = (IHPE)L23_150w_t ; +LOCAL IUH L23_151w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_151w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_151w_d = (IHPE)L23_151w_d ; +LOCAL IUH L23_148if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_148if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_148if_f = (IHPE)L23_148if_f ; +LOCAL IUH L23_152w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_152w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_152w_t = (IHPE)L23_152w_t ; +LOCAL IUH L23_153w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_153w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_153w_d = (IHPE)L23_153w_d ; +LOCAL IUH L23_149if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_149if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_149if_d = (IHPE)L23_149if_d ; +GLOBAL IUH S_2283_UnchainedByteMove_00000000_0000000f_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2283_UnchainedByteMove_00000000_0000000f_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2283_UnchainedByteMove_00000000_0000000f_00000000_00000000 = (IHPE)S_2283_UnchainedByteMove_00000000_0000000f_00000000_00000000 ; +LOCAL IUH L13_2263if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2263if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2263if_f = (IHPE)L13_2263if_f ; +LOCAL IUH L28_116if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_116if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_116if_f = (IHPE)L28_116if_f ; +LOCAL IUH L28_117if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_117if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_117if_d = (IHPE)L28_117if_d ; +GLOBAL IUH S_2284_CopyByte4PlaneUnchained_00000000_0000000f_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2284_CopyByte4PlaneUnchained_00000000_0000000f_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2284_CopyByte4PlaneUnchained_00000000_0000000f_00000000_00000000 = (IHPE)S_2284_CopyByte4PlaneUnchained_00000000_0000000f_00000000_00000000 ; +LOCAL IUH L13_2264if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2264if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2264if_f = (IHPE)L13_2264if_f ; +LOCAL IUH L23_156w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_156w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_156w_t = (IHPE)L23_156w_t ; +LOCAL IUH L23_157w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_157w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_157w_d = (IHPE)L23_157w_d ; +LOCAL IUH L23_154if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_154if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_154if_f = (IHPE)L23_154if_f ; +LOCAL IUH L23_158w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_158w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_158w_t = (IHPE)L23_158w_t ; +LOCAL IUH L23_159w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_159w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_159w_d = (IHPE)L23_159w_d ; +LOCAL IUH L23_155if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_155if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_155if_d = (IHPE)L23_155if_d ; +GLOBAL IUH S_2285_UnchainedByteMove_00000000_00000010_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2285_UnchainedByteMove_00000000_00000010_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2285_UnchainedByteMove_00000000_00000010_00000000_00000000 = (IHPE)S_2285_UnchainedByteMove_00000000_00000010_00000000_00000000 ; +LOCAL IUH L13_2265if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2265if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2265if_f = (IHPE)L13_2265if_f ; +LOCAL IUH L28_118if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_118if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_118if_f = (IHPE)L28_118if_f ; +LOCAL IUH L28_119if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_119if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_119if_d = (IHPE)L28_119if_d ; +GLOBAL IUH S_2286_CopyBytePlnByPlnUnchained_00000000_00000010_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2286_CopyBytePlnByPlnUnchained_00000000_00000010_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2286_CopyBytePlnByPlnUnchained_00000000_00000010_00000000_00000000 = (IHPE)S_2286_CopyBytePlnByPlnUnchained_00000000_00000010_00000000_00000000 ; +LOCAL IUH L13_2266if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2266if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2266if_f = (IHPE)L13_2266if_f ; +LOCAL IUH L23_160if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_160if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_160if_f = (IHPE)L23_160if_f ; +LOCAL IUH L23_161if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_161if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_161if_f = (IHPE)L23_161if_f ; +LOCAL IUH L23_162if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_162if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_162if_f = (IHPE)L23_162if_f ; +LOCAL IUH L23_163if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_163if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_163if_f = (IHPE)L23_163if_f ; +GLOBAL IUH S_2287_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2287_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2287_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000000 = (IHPE)S_2287_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000000 ; +LOCAL IUH L13_2267if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2267if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2267if_f = (IHPE)L13_2267if_f ; +LOCAL IUH L23_166w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_166w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_166w_t = (IHPE)L23_166w_t ; +LOCAL IUH L23_167w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_167w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_167w_d = (IHPE)L23_167w_d ; +LOCAL IUH L23_164if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_164if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_164if_f = (IHPE)L23_164if_f ; +LOCAL IUH L23_168w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_168w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_168w_t = (IHPE)L23_168w_t ; +LOCAL IUH L23_169w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_169w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_169w_d = (IHPE)L23_169w_d ; +LOCAL IUH L23_165if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_165if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_165if_d = (IHPE)L23_165if_d ; +GLOBAL IUH S_2288_UnchainedByteMove_00000000_00000011_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2288_UnchainedByteMove_00000000_00000011_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2288_UnchainedByteMove_00000000_00000011_00000000_00000000 = (IHPE)S_2288_UnchainedByteMove_00000000_00000011_00000000_00000000 ; +LOCAL IUH L13_2268if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2268if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2268if_f = (IHPE)L13_2268if_f ; +LOCAL IUH L28_120if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_120if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_120if_f = (IHPE)L28_120if_f ; +LOCAL IUH L28_121if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_121if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_121if_d = (IHPE)L28_121if_d ; +GLOBAL IUH S_2289_CopyByte4PlaneUnchained_00000000_00000011_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2289_CopyByte4PlaneUnchained_00000000_00000011_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2289_CopyByte4PlaneUnchained_00000000_00000011_00000000_00000000 = (IHPE)S_2289_CopyByte4PlaneUnchained_00000000_00000011_00000000_00000000 ; +LOCAL IUH L13_2269if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2269if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2269if_f = (IHPE)L13_2269if_f ; +LOCAL IUH L23_172w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_172w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_172w_t = (IHPE)L23_172w_t ; +LOCAL IUH L23_173w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_173w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_173w_d = (IHPE)L23_173w_d ; +LOCAL IUH L23_170if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_170if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_170if_f = (IHPE)L23_170if_f ; +LOCAL IUH L23_174w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_174w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_174w_t = (IHPE)L23_174w_t ; +LOCAL IUH L23_175w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_175w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_175w_d = (IHPE)L23_175w_d ; +LOCAL IUH L23_171if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_171if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_171if_d = (IHPE)L23_171if_d ; +GLOBAL IUH S_2290_UnchainedByteMove_00000000_00000016_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2290_UnchainedByteMove_00000000_00000016_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2290_UnchainedByteMove_00000000_00000016_00000000_00000000 = (IHPE)S_2290_UnchainedByteMove_00000000_00000016_00000000_00000000 ; +LOCAL IUH L13_2270if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2270if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2270if_f = (IHPE)L13_2270if_f ; +LOCAL IUH L28_122if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_122if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_122if_f = (IHPE)L28_122if_f ; +LOCAL IUH L28_123if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_123if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_123if_d = (IHPE)L28_123if_d ; +GLOBAL IUH S_2291_CopyBytePlnByPlnUnchained_00000000_00000016_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2291_CopyBytePlnByPlnUnchained_00000000_00000016_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2291_CopyBytePlnByPlnUnchained_00000000_00000016_00000000_00000000 = (IHPE)S_2291_CopyBytePlnByPlnUnchained_00000000_00000016_00000000_00000000 ; +LOCAL IUH L13_2271if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2271if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2271if_f = (IHPE)L13_2271if_f ; +LOCAL IUH L23_176if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_176if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_176if_f = (IHPE)L23_176if_f ; +LOCAL IUH L23_177if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_177if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_177if_f = (IHPE)L23_177if_f ; +LOCAL IUH L23_178if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_178if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_178if_f = (IHPE)L23_178if_f ; +LOCAL IUH L23_179if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_179if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_179if_f = (IHPE)L23_179if_f ; +GLOBAL IUH S_2292_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2292_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2292_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000000 = (IHPE)S_2292_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000000 ; +LOCAL IUH L13_2272if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2272if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2272if_f = (IHPE)L13_2272if_f ; +LOCAL IUH L23_182w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_182w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_182w_t = (IHPE)L23_182w_t ; +LOCAL IUH L23_183w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_183w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_183w_d = (IHPE)L23_183w_d ; +LOCAL IUH L23_180if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_180if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_180if_f = (IHPE)L23_180if_f ; +LOCAL IUH L23_184w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_184w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_184w_t = (IHPE)L23_184w_t ; +LOCAL IUH L23_185w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_185w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_185w_d = (IHPE)L23_185w_d ; +LOCAL IUH L23_181if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_181if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_181if_d = (IHPE)L23_181if_d ; +GLOBAL IUH S_2293_UnchainedByteMove_00000000_00000017_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2293_UnchainedByteMove_00000000_00000017_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2293_UnchainedByteMove_00000000_00000017_00000000_00000000 = (IHPE)S_2293_UnchainedByteMove_00000000_00000017_00000000_00000000 ; +LOCAL IUH L13_2273if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2273if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2273if_f = (IHPE)L13_2273if_f ; +LOCAL IUH L28_124if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_124if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_124if_f = (IHPE)L28_124if_f ; +LOCAL IUH L28_125if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_125if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_125if_d = (IHPE)L28_125if_d ; +GLOBAL IUH S_2294_CopyByte4PlaneUnchained_00000000_00000017_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2294_CopyByte4PlaneUnchained_00000000_00000017_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2294_CopyByte4PlaneUnchained_00000000_00000017_00000000_00000000 = (IHPE)S_2294_CopyByte4PlaneUnchained_00000000_00000017_00000000_00000000 ; +LOCAL IUH L13_2274if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2274if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2274if_f = (IHPE)L13_2274if_f ; +LOCAL IUH L23_188w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_188w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_188w_t = (IHPE)L23_188w_t ; +LOCAL IUH L23_189w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_189w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_189w_d = (IHPE)L23_189w_d ; +LOCAL IUH L23_186if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_186if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_186if_f = (IHPE)L23_186if_f ; +LOCAL IUH L23_190w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_190w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_190w_t = (IHPE)L23_190w_t ; +LOCAL IUH L23_191w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_191w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_191w_d = (IHPE)L23_191w_d ; +LOCAL IUH L23_187if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_187if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_187if_d = (IHPE)L23_187if_d ; +GLOBAL IUH S_2295_UnchainedByteMove_00000000_00000018_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2295_UnchainedByteMove_00000000_00000018_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2295_UnchainedByteMove_00000000_00000018_00000000_00000000 = (IHPE)S_2295_UnchainedByteMove_00000000_00000018_00000000_00000000 ; +LOCAL IUH L13_2275if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2275if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2275if_f = (IHPE)L13_2275if_f ; +LOCAL IUH L28_126if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_126if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_126if_f = (IHPE)L28_126if_f ; +LOCAL IUH L28_127if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_127if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_127if_d = (IHPE)L28_127if_d ; +GLOBAL IUH S_2296_CopyBytePlnByPlnUnchained_00000000_00000018_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2296_CopyBytePlnByPlnUnchained_00000000_00000018_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2296_CopyBytePlnByPlnUnchained_00000000_00000018_00000000_00000000 = (IHPE)S_2296_CopyBytePlnByPlnUnchained_00000000_00000018_00000000_00000000 ; +LOCAL IUH L13_2276if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2276if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2276if_f = (IHPE)L13_2276if_f ; +LOCAL IUH L23_192if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_192if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_192if_f = (IHPE)L23_192if_f ; +LOCAL IUH L23_193if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_193if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_193if_f = (IHPE)L23_193if_f ; +LOCAL IUH L23_194if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_194if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_194if_f = (IHPE)L23_194if_f ; +LOCAL IUH L23_195if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_195if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_195if_f = (IHPE)L23_195if_f ; +GLOBAL IUH S_2297_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2297_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2297_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000000 = (IHPE)S_2297_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000000 ; +LOCAL IUH L13_2277if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2277if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2277if_f = (IHPE)L13_2277if_f ; +LOCAL IUH L23_198w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_198w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_198w_t = (IHPE)L23_198w_t ; +LOCAL IUH L23_199w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_199w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_199w_d = (IHPE)L23_199w_d ; +LOCAL IUH L23_196if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_196if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_196if_f = (IHPE)L23_196if_f ; +LOCAL IUH L23_200w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_200w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_200w_t = (IHPE)L23_200w_t ; +LOCAL IUH L23_201w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_201w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_201w_d = (IHPE)L23_201w_d ; +LOCAL IUH L23_197if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_197if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_197if_d = (IHPE)L23_197if_d ; +GLOBAL IUH S_2298_UnchainedByteMove_00000000_00000019_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2298_UnchainedByteMove_00000000_00000019_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2298_UnchainedByteMove_00000000_00000019_00000000_00000000 = (IHPE)S_2298_UnchainedByteMove_00000000_00000019_00000000_00000000 ; +LOCAL IUH L13_2278if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2278if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2278if_f = (IHPE)L13_2278if_f ; +LOCAL IUH L28_128if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_128if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_128if_f = (IHPE)L28_128if_f ; +LOCAL IUH L28_129if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_129if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_129if_d = (IHPE)L28_129if_d ; +GLOBAL IUH S_2299_CopyByte4PlaneUnchained_00000000_00000019_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2299_CopyByte4PlaneUnchained_00000000_00000019_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2299_CopyByte4PlaneUnchained_00000000_00000019_00000000_00000000 = (IHPE)S_2299_CopyByte4PlaneUnchained_00000000_00000019_00000000_00000000 ; +LOCAL IUH L13_2279if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2279if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2279if_f = (IHPE)L13_2279if_f ; +LOCAL IUH L23_204w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_204w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_204w_t = (IHPE)L23_204w_t ; +LOCAL IUH L23_205w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_205w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_205w_d = (IHPE)L23_205w_d ; +LOCAL IUH L23_202if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_202if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_202if_f = (IHPE)L23_202if_f ; +LOCAL IUH L23_206w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_206w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_206w_t = (IHPE)L23_206w_t ; +LOCAL IUH L23_207w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_207w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_207w_d = (IHPE)L23_207w_d ; +LOCAL IUH L23_203if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_203if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_203if_d = (IHPE)L23_203if_d ; +GLOBAL IUH S_2300_UnchainedByteMove_00000000_0000001e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2300_UnchainedByteMove_00000000_0000001e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2300_UnchainedByteMove_00000000_0000001e_00000000_00000000 = (IHPE)S_2300_UnchainedByteMove_00000000_0000001e_00000000_00000000 ; +LOCAL IUH L13_2280if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2280if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2280if_f = (IHPE)L13_2280if_f ; +LOCAL IUH L28_130if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_130if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_130if_f = (IHPE)L28_130if_f ; +LOCAL IUH L28_131if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_131if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_131if_d = (IHPE)L28_131if_d ; +GLOBAL IUH S_2301_CopyBytePlnByPlnUnchained_00000000_0000001e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2301_CopyBytePlnByPlnUnchained_00000000_0000001e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2301_CopyBytePlnByPlnUnchained_00000000_0000001e_00000000_00000000 = (IHPE)S_2301_CopyBytePlnByPlnUnchained_00000000_0000001e_00000000_00000000 ; +LOCAL IUH L13_2281if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2281if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2281if_f = (IHPE)L13_2281if_f ; +LOCAL IUH L23_208if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_208if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_208if_f = (IHPE)L23_208if_f ; +LOCAL IUH L23_209if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_209if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_209if_f = (IHPE)L23_209if_f ; +LOCAL IUH L23_210if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_210if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_210if_f = (IHPE)L23_210if_f ; +LOCAL IUH L23_211if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_211if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_211if_f = (IHPE)L23_211if_f ; +GLOBAL IUH S_2302_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2302_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2302_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000000 = (IHPE)S_2302_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000000 ; +LOCAL IUH L13_2282if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2282if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2282if_f = (IHPE)L13_2282if_f ; +LOCAL IUH L23_214w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_214w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_214w_t = (IHPE)L23_214w_t ; +LOCAL IUH L23_215w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_215w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_215w_d = (IHPE)L23_215w_d ; +LOCAL IUH L23_212if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_212if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_212if_f = (IHPE)L23_212if_f ; +LOCAL IUH L23_216w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_216w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_216w_t = (IHPE)L23_216w_t ; +LOCAL IUH L23_217w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_217w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_217w_d = (IHPE)L23_217w_d ; +LOCAL IUH L23_213if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_213if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_213if_d = (IHPE)L23_213if_d ; +GLOBAL IUH S_2303_UnchainedByteMove_00000000_0000001f_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2303_UnchainedByteMove_00000000_0000001f_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2303_UnchainedByteMove_00000000_0000001f_00000000_00000000 = (IHPE)S_2303_UnchainedByteMove_00000000_0000001f_00000000_00000000 ; +LOCAL IUH L13_2283if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2283if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2283if_f = (IHPE)L13_2283if_f ; +LOCAL IUH L28_132if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_132if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_132if_f = (IHPE)L28_132if_f ; +LOCAL IUH L28_133if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_133if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_133if_d = (IHPE)L28_133if_d ; +GLOBAL IUH S_2304_CopyByte4PlaneUnchained_00000000_0000001f_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2304_CopyByte4PlaneUnchained_00000000_0000001f_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2304_CopyByte4PlaneUnchained_00000000_0000001f_00000000_00000000 = (IHPE)S_2304_CopyByte4PlaneUnchained_00000000_0000001f_00000000_00000000 ; +LOCAL IUH L13_2284if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2284if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2284if_f = (IHPE)L13_2284if_f ; +LOCAL IUH L23_220w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_220w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_220w_t = (IHPE)L23_220w_t ; +LOCAL IUH L23_221w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_221w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_221w_d = (IHPE)L23_221w_d ; +LOCAL IUH L23_218if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_218if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_218if_f = (IHPE)L23_218if_f ; +LOCAL IUH L23_222w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_222w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_222w_t = (IHPE)L23_222w_t ; +LOCAL IUH L23_223w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_223w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_223w_d = (IHPE)L23_223w_d ; +LOCAL IUH L23_219if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_219if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_219if_d = (IHPE)L23_219if_d ; +GLOBAL IUH S_2305_UnchainedWordWrite_00000000_00000008_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2305_UnchainedWordWrite_00000000_00000008_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2305_UnchainedWordWrite_00000000_00000008_00000000 = (IHPE)S_2305_UnchainedWordWrite_00000000_00000008_00000000 ; +LOCAL IUH L13_2285if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2285if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2285if_f = (IHPE)L13_2285if_f ; +GLOBAL IUH S_2306_UnchainedWordWrite_00000000_00000009_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2306_UnchainedWordWrite_00000000_00000009_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2306_UnchainedWordWrite_00000000_00000009_00000000 = (IHPE)S_2306_UnchainedWordWrite_00000000_00000009_00000000 ; +LOCAL IUH L13_2286if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2286if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2286if_f = (IHPE)L13_2286if_f ; +GLOBAL IUH S_2307_UnchainedWordWrite_00000000_0000000e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2307_UnchainedWordWrite_00000000_0000000e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2307_UnchainedWordWrite_00000000_0000000e_00000000 = (IHPE)S_2307_UnchainedWordWrite_00000000_0000000e_00000000 ; +LOCAL IUH L13_2287if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2287if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2287if_f = (IHPE)L13_2287if_f ; +GLOBAL IUH S_2308_UnchainedWordWrite_00000000_0000000f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2308_UnchainedWordWrite_00000000_0000000f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2308_UnchainedWordWrite_00000000_0000000f_00000000 = (IHPE)S_2308_UnchainedWordWrite_00000000_0000000f_00000000 ; +LOCAL IUH L13_2288if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2288if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2288if_f = (IHPE)L13_2288if_f ; +GLOBAL IUH S_2309_UnchainedWordWrite_00000000_00000010_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2309_UnchainedWordWrite_00000000_00000010_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2309_UnchainedWordWrite_00000000_00000010_00000000 = (IHPE)S_2309_UnchainedWordWrite_00000000_00000010_00000000 ; +LOCAL IUH L13_2289if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2289if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2289if_f = (IHPE)L13_2289if_f ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2278_UnchainedByteMove_00000000_00000009_00000000_00000000_id : + S_2278_UnchainedByteMove_00000000_00000009_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2278) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2258if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2258if_f_id : + L13_2258if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_112if_f; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2279_CopyByte4PlaneUnchained_00000000_00000009_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2279_CopyByte4PlaneUnchained_00000000_00000009_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + { extern IUH L28_113if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_113if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_112if_f_id : + L28_112if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2279_CopyByte4PlaneUnchained_00000000_00000009_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2279_CopyByte4PlaneUnchained_00000000_00000009_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + case L28_113if_d_id : + L28_113if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2279_CopyByte4PlaneUnchained_00000000_00000009_00000000_00000000_id : + S_2279_CopyByte4PlaneUnchained_00000000_00000009_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2279) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2259if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2259if_f_id : + L13_2259if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_138if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_141w_d; + case L23_140w_t_id : + L23_140w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_140w_t; + case L23_141w_d_id : + L23_141w_d: ; + { extern IUH L23_139if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_139if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_138if_f_id : + L23_138if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_143w_d; + case L23_142w_t_id : + L23_142w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+9)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_142w_t; + case L23_143w_d_id : + L23_143w_d: ; + case L23_139if_d_id : + L23_139if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2280_UnchainedByteMove_00000000_0000000e_00000000_00000000_id : + S_2280_UnchainedByteMove_00000000_0000000e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2280) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2260if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2260if_f_id : + L13_2260if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_114if_f; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2281_CopyBytePlnByPlnUnchained_00000000_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2281_CopyBytePlnByPlnUnchained_00000000_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + { extern IUH L28_115if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_115if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_114if_f_id : + L28_114if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2281_CopyBytePlnByPlnUnchained_00000000_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2281_CopyBytePlnByPlnUnchained_00000000_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + case L28_115if_d_id : + L28_115if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2281_CopyBytePlnByPlnUnchained_00000000_0000000e_00000000_00000000_id : + S_2281_CopyBytePlnByPlnUnchained_00000000_0000000e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2281) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2261if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2261if_f_id : + L13_2261if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_144if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2282_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2282_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_144if_f_id : + L23_144if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_145if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2282_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2282_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_145if_f_id : + L23_145if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_146if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2282_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2282_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_146if_f_id : + L23_146if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_147if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2282_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2282_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_147if_f_id : + L23_147if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2282_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000000_id : + S_2282_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2282) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2262if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2262if_f_id : + L13_2262if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_148if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_151w_d; + case L23_150w_t_id : + L23_150w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_150w_t; + case L23_151w_d_id : + L23_151w_d: ; + { extern IUH L23_149if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_149if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_148if_f_id : + L23_148if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_153w_d; + case L23_152w_t_id : + L23_152w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_152w_t; + case L23_153w_d_id : + L23_153w_d: ; + case L23_149if_d_id : + L23_149if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2283_UnchainedByteMove_00000000_0000000f_00000000_00000000_id : + S_2283_UnchainedByteMove_00000000_0000000f_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2283) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2263if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2263if_f_id : + L13_2263if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_116if_f; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2284_CopyByte4PlaneUnchained_00000000_0000000f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2284_CopyByte4PlaneUnchained_00000000_0000000f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + { extern IUH L28_117if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_117if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_116if_f_id : + L28_116if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2284_CopyByte4PlaneUnchained_00000000_0000000f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2284_CopyByte4PlaneUnchained_00000000_0000000f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + case L28_117if_d_id : + L28_117if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2284_CopyByte4PlaneUnchained_00000000_0000000f_00000000_00000000_id : + S_2284_CopyByte4PlaneUnchained_00000000_0000000f_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2284) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2264if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2264if_f_id : + L13_2264if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_154if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_157w_d; + case L23_156w_t_id : + L23_156w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_156w_t; + case L23_157w_d_id : + L23_157w_d: ; + { extern IUH L23_155if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_155if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_154if_f_id : + L23_154if_f: ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_159w_d; + case L23_158w_t_id : + L23_158w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+9)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_158w_t; + case L23_159w_d_id : + L23_159w_d: ; + case L23_155if_d_id : + L23_155if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2285_UnchainedByteMove_00000000_00000010_00000000_00000000_id : + S_2285_UnchainedByteMove_00000000_00000010_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2285) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2265if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2265if_f_id : + L13_2265if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_118if_f; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2286_CopyBytePlnByPlnUnchained_00000000_00000010_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2286_CopyBytePlnByPlnUnchained_00000000_00000010_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + { extern IUH L28_119if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_119if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_118if_f_id : + L28_118if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2286_CopyBytePlnByPlnUnchained_00000000_00000010_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2286_CopyBytePlnByPlnUnchained_00000000_00000010_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + case L28_119if_d_id : + L28_119if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2286_CopyBytePlnByPlnUnchained_00000000_00000010_00000000_00000000_id : + S_2286_CopyBytePlnByPlnUnchained_00000000_00000010_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2286) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2266if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2266if_f_id : + L13_2266if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_160if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2287_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2287_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_160if_f_id : + L23_160if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_161if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2287_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2287_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_161if_f_id : + L23_161if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_162if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2287_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2287_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_162if_f_id : + L23_162if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_163if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2287_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2287_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_163if_f_id : + L23_163if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2287_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000000_id : + S_2287_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2287) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2267if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2267if_f_id : + L13_2267if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_164if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_167w_d; + case L23_166w_t_id : + L23_166w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_166w_t; + case L23_167w_d_id : + L23_167w_d: ; + { extern IUH L23_165if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_165if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_164if_f_id : + L23_164if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_169w_d; + case L23_168w_t_id : + L23_168w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_168w_t; + case L23_169w_d_id : + L23_169w_d: ; + case L23_165if_d_id : + L23_165if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2288_UnchainedByteMove_00000000_00000011_00000000_00000000_id : + S_2288_UnchainedByteMove_00000000_00000011_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2288) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2268if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2268if_f_id : + L13_2268if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_120if_f; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2289_CopyByte4PlaneUnchained_00000000_00000011_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2289_CopyByte4PlaneUnchained_00000000_00000011_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + { extern IUH L28_121if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_121if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_120if_f_id : + L28_120if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2289_CopyByte4PlaneUnchained_00000000_00000011_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2289_CopyByte4PlaneUnchained_00000000_00000011_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + case L28_121if_d_id : + L28_121if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2289_CopyByte4PlaneUnchained_00000000_00000011_00000000_00000000_id : + S_2289_CopyByte4PlaneUnchained_00000000_00000011_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2289) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2269if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2269if_f_id : + L13_2269if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_170if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_173w_d; + case L23_172w_t_id : + L23_172w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_172w_t; + case L23_173w_d_id : + L23_173w_d: ; + { extern IUH L23_171if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_171if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_170if_f_id : + L23_170if_f: ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_175w_d; + case L23_174w_t_id : + L23_174w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_174w_t; + case L23_175w_d_id : + L23_175w_d: ; + case L23_171if_d_id : + L23_171if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2290_UnchainedByteMove_00000000_00000016_00000000_00000000_id : + S_2290_UnchainedByteMove_00000000_00000016_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2290) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2270if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2270if_f_id : + L13_2270if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_122if_f; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2291_CopyBytePlnByPlnUnchained_00000000_00000016_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2291_CopyBytePlnByPlnUnchained_00000000_00000016_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + { extern IUH L28_123if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_123if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_122if_f_id : + L28_122if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2291_CopyBytePlnByPlnUnchained_00000000_00000016_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2291_CopyBytePlnByPlnUnchained_00000000_00000016_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + case L28_123if_d_id : + L28_123if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2291_CopyBytePlnByPlnUnchained_00000000_00000016_00000000_00000000_id : + S_2291_CopyBytePlnByPlnUnchained_00000000_00000016_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2291) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2271if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2271if_f_id : + L13_2271if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_176if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2292_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2292_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_176if_f_id : + L23_176if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_177if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2292_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2292_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_177if_f_id : + L23_177if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_178if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2292_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2292_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_178if_f_id : + L23_178if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_179if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2292_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2292_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_179if_f_id : + L23_179if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2292_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000000_id : + S_2292_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2292) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2272if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2272if_f_id : + L13_2272if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_180if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_183w_d; + case L23_182w_t_id : + L23_182w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_182w_t; + case L23_183w_d_id : + L23_183w_d: ; + { extern IUH L23_181if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_181if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_180if_f_id : + L23_180if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_185w_d; + case L23_184w_t_id : + L23_184w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) ^ *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_184w_t; + case L23_185w_d_id : + L23_185w_d: ; + case L23_181if_d_id : + L23_181if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2293_UnchainedByteMove_00000000_00000017_00000000_00000000_id : + S_2293_UnchainedByteMove_00000000_00000017_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2293) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2273if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2273if_f_id : + L13_2273if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_124if_f; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2294_CopyByte4PlaneUnchained_00000000_00000017_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2294_CopyByte4PlaneUnchained_00000000_00000017_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + { extern IUH L28_125if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_125if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_124if_f_id : + L28_124if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2294_CopyByte4PlaneUnchained_00000000_00000017_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2294_CopyByte4PlaneUnchained_00000000_00000017_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + case L28_125if_d_id : + L28_125if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2294_CopyByte4PlaneUnchained_00000000_00000017_00000000_00000000_id : + S_2294_CopyByte4PlaneUnchained_00000000_00000017_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2294) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2274if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2274if_f_id : + L13_2274if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_186if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_189w_d; + case L23_188w_t_id : + L23_188w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_188w_t; + case L23_189w_d_id : + L23_189w_d: ; + { extern IUH L23_187if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_187if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_186if_f_id : + L23_186if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_191w_d; + case L23_190w_t_id : + L23_190w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) ^ *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_190w_t; + case L23_191w_d_id : + L23_191w_d: ; + case L23_187if_d_id : + L23_187if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2295_UnchainedByteMove_00000000_00000018_00000000_00000000_id : + S_2295_UnchainedByteMove_00000000_00000018_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2295) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2275if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2275if_f_id : + L13_2275if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_126if_f; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2296_CopyBytePlnByPlnUnchained_00000000_00000018_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2296_CopyBytePlnByPlnUnchained_00000000_00000018_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + { extern IUH L28_127if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_127if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_126if_f_id : + L28_126if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2296_CopyBytePlnByPlnUnchained_00000000_00000018_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2296_CopyBytePlnByPlnUnchained_00000000_00000018_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + case L28_127if_d_id : + L28_127if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2296_CopyBytePlnByPlnUnchained_00000000_00000018_00000000_00000000_id : + S_2296_CopyBytePlnByPlnUnchained_00000000_00000018_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2296) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2276if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2276if_f_id : + L13_2276if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_192if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2297_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2297_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_192if_f_id : + L23_192if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_193if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2297_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2297_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_193if_f_id : + L23_193if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_194if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2297_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2297_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_194if_f_id : + L23_194if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_195if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2297_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2297_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_195if_f_id : + L23_195if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2297_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000000_id : + S_2297_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2297) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2277if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2277if_f_id : + L13_2277if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_196if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_199w_d; + case L23_198w_t_id : + L23_198w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_198w_t; + case L23_199w_d_id : + L23_199w_d: ; + { extern IUH L23_197if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_197if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_196if_f_id : + L23_196if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_201w_d; + case L23_200w_t_id : + L23_200w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_200w_t; + case L23_201w_d_id : + L23_201w_d: ; + case L23_197if_d_id : + L23_197if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2298_UnchainedByteMove_00000000_00000019_00000000_00000000_id : + S_2298_UnchainedByteMove_00000000_00000019_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2298) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2278if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2278if_f_id : + L13_2278if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_128if_f; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2299_CopyByte4PlaneUnchained_00000000_00000019_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2299_CopyByte4PlaneUnchained_00000000_00000019_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + { extern IUH L28_129if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_129if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_128if_f_id : + L28_128if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2299_CopyByte4PlaneUnchained_00000000_00000019_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2299_CopyByte4PlaneUnchained_00000000_00000019_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + case L28_129if_d_id : + L28_129if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2299_CopyByte4PlaneUnchained_00000000_00000019_00000000_00000000_id : + S_2299_CopyByte4PlaneUnchained_00000000_00000019_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2299) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2279if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2279if_f_id : + L13_2279if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_202if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_205w_d; + case L23_204w_t_id : + L23_204w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_204w_t; + case L23_205w_d_id : + L23_205w_d: ; + { extern IUH L23_203if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_203if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_202if_f_id : + L23_202if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_207w_d; + case L23_206w_t_id : + L23_206w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+9)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_206w_t; + case L23_207w_d_id : + L23_207w_d: ; + case L23_203if_d_id : + L23_203if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2300_UnchainedByteMove_00000000_0000001e_00000000_00000000_id : + S_2300_UnchainedByteMove_00000000_0000001e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2300) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2280if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2280if_f_id : + L13_2280if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_130if_f; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2301_CopyBytePlnByPlnUnchained_00000000_0000001e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2301_CopyBytePlnByPlnUnchained_00000000_0000001e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + { extern IUH L28_131if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_131if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_130if_f_id : + L28_130if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2301_CopyBytePlnByPlnUnchained_00000000_0000001e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2301_CopyBytePlnByPlnUnchained_00000000_0000001e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + case L28_131if_d_id : + L28_131if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2301_CopyBytePlnByPlnUnchained_00000000_0000001e_00000000_00000000_id : + S_2301_CopyBytePlnByPlnUnchained_00000000_0000001e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2301) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2281if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2281if_f_id : + L13_2281if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_208if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2302_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2302_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_208if_f_id : + L23_208if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_209if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2302_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2302_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_209if_f_id : + L23_209if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_210if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2302_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2302_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_210if_f_id : + L23_210if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_211if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2302_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2302_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_211if_f_id : + L23_211if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2302_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000000_id : + S_2302_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2302) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2282if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2282if_f_id : + L13_2282if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_212if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_215w_d; + case L23_214w_t_id : + L23_214w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_214w_t; + case L23_215w_d_id : + L23_215w_d: ; + { extern IUH L23_213if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_213if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_212if_f_id : + L23_212if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_217w_d; + case L23_216w_t_id : + L23_216w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_216w_t; + case L23_217w_d_id : + L23_217w_d: ; + case L23_213if_d_id : + L23_213if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2303_UnchainedByteMove_00000000_0000001f_00000000_00000000_id : + S_2303_UnchainedByteMove_00000000_0000001f_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2303) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2283if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2283if_f_id : + L13_2283if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_132if_f; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2304_CopyByte4PlaneUnchained_00000000_0000001f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2304_CopyByte4PlaneUnchained_00000000_0000001f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + { extern IUH L28_133if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_133if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_132if_f_id : + L28_132if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2304_CopyByte4PlaneUnchained_00000000_0000001f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2304_CopyByte4PlaneUnchained_00000000_0000001f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + case L28_133if_d_id : + L28_133if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2304_CopyByte4PlaneUnchained_00000000_0000001f_00000000_00000000_id : + S_2304_CopyByte4PlaneUnchained_00000000_0000001f_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2304) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2284if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2284if_f_id : + L13_2284if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_218if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_221w_d; + case L23_220w_t_id : + L23_220w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_220w_t; + case L23_221w_d_id : + L23_221w_d: ; + { extern IUH L23_219if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_219if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_218if_f_id : + L23_218if_f: ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_223w_d; + case L23_222w_t_id : + L23_222w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+9)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_222w_t; + case L23_223w_d_id : + L23_223w_d: ; + case L23_219if_d_id : + L23_219if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2305_UnchainedWordWrite_00000000_00000008_00000000_id : + S_2305_UnchainedWordWrite_00000000_00000008_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2305) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2285if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2285if_f_id : + L13_2285if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+4) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2306_UnchainedWordWrite_00000000_00000009_00000000_id : + S_2306_UnchainedWordWrite_00000000_00000009_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2306) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2286if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2286if_f_id : + L13_2286if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+4) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2307_UnchainedWordWrite_00000000_0000000e_00000000_id : + S_2307_UnchainedWordWrite_00000000_0000000e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2307) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2287if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2287if_f_id : + L13_2287if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+4) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2308_UnchainedWordWrite_00000000_0000000f_00000000_id : + S_2308_UnchainedWordWrite_00000000_0000000f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2308) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2288if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2288if_f_id : + L13_2288if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+4) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2309_UnchainedWordWrite_00000000_00000010_00000000_id : + S_2309_UnchainedWordWrite_00000000_00000010_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2309) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2289if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2289if_f_id : + L13_2289if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+4) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid007.c b/private/mvdm/softpc.new/base/cvidc/sevid007.c new file mode 100644 index 000000000..946cb7ef8 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid007.c @@ -0,0 +1,5257 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_2310_UnchainedWordWrite_00000000_00000011_00000000_id, +L13_2290if_f_id, +S_2311_UnchainedWordWrite_00000000_00000016_00000000_id, +L13_2291if_f_id, +S_2312_UnchainedWordWrite_00000000_00000017_00000000_id, +L13_2292if_f_id, +S_2313_UnchainedWordWrite_00000000_00000018_00000000_id, +L13_2293if_f_id, +S_2314_UnchainedWordWrite_00000000_00000019_00000000_id, +L13_2294if_f_id, +S_2315_UnchainedWordWrite_00000000_0000001e_00000000_id, +L13_2295if_f_id, +S_2316_UnchainedWordWrite_00000000_0000001f_00000000_id, +L13_2296if_f_id, +S_2317_UnchainedWordFill_00000000_00000008_00000000_id, +L13_2297if_f_id, +L28_134if_f_id, +L28_135if_f_id, +L28_136if_f_id, +L28_137if_f_id, +S_2318_UnchainedWordFill_00000000_00000009_00000000_id, +L13_2298if_f_id, +S_2319_Unchained4PlaneWordFill_id, +L13_2299if_f_id, +L28_138w_t_id, +L28_139w_d_id, +S_2320_UnchainedWordFill_00000000_0000000e_00000000_id, +L13_2300if_f_id, +L28_140if_f_id, +L28_141if_f_id, +L28_142if_f_id, +L28_143if_f_id, +S_2321_UnchainedWordFill_00000000_0000000f_00000000_id, +L13_2301if_f_id, +S_2322_UnchainedWordFill_00000000_00000010_00000000_id, +L13_2302if_f_id, +L28_144if_f_id, +L28_145if_f_id, +L28_146if_f_id, +L28_147if_f_id, +S_2323_UnchainedWordFill_00000000_00000011_00000000_id, +L13_2303if_f_id, +S_2324_UnchainedWordFill_00000000_00000016_00000000_id, +L13_2304if_f_id, +L28_148if_f_id, +L28_149if_f_id, +L28_150if_f_id, +L28_151if_f_id, +S_2325_UnchainedWordFill_00000000_00000017_00000000_id, +L13_2305if_f_id, +S_2326_UnchainedWordFill_00000000_00000018_00000000_id, +L13_2306if_f_id, +L28_152if_f_id, +L28_153if_f_id, +L28_154if_f_id, +L28_155if_f_id, +S_2327_UnchainedWordFill_00000000_00000019_00000000_id, +L13_2307if_f_id, +S_2328_UnchainedWordFill_00000000_0000001e_00000000_id, +L13_2308if_f_id, +L28_156if_f_id, +L28_157if_f_id, +L28_158if_f_id, +L28_159if_f_id, +S_2329_UnchainedWordFill_00000000_0000001f_00000000_id, +L13_2309if_f_id, +S_2330_UnchainedWordMove_00000000_00000008_00000000_00000000_id, +L13_2310if_f_id, +L28_160if_f_id, +L28_161if_d_id, +S_2331_CopyWordPlnByPlnUnchained_00000000_00000008_00000000_00000000_id, +L13_2311if_f_id, +L23_224if_f_id, +L23_225if_f_id, +L23_226if_f_id, +L23_227if_f_id, +S_2332_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000000_id, +L13_2312if_f_id, +L23_230w_t_id, +L23_231w_d_id, +L23_228if_f_id, +L23_232w_t_id, +L23_233w_d_id, +L23_229if_d_id, +S_2333_UnchainedWordMove_00000000_00000009_00000000_00000000_id, +L13_2313if_f_id, +L28_162if_f_id, +L28_163if_d_id, +S_2334_CopyWord4PlaneUnchained_00000000_00000009_00000000_00000000_id, +L13_2314if_f_id, +L23_236w_t_id, +L23_237w_d_id, +L23_234if_f_id, +L23_238w_t_id, +L23_239w_d_id, +L23_235if_d_id, +S_2335_UnchainedWordMove_00000000_0000000e_00000000_00000000_id, +L13_2315if_f_id, +L28_164if_f_id, +L28_165if_d_id, +S_2336_CopyWordPlnByPlnUnchained_00000000_0000000e_00000000_00000000_id, +L13_2316if_f_id, +L23_240if_f_id, +L23_241if_f_id, +L23_242if_f_id, +L23_243if_f_id, +S_2337_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000000_id, +L13_2317if_f_id, +L23_246w_t_id, +L23_247w_d_id, +L23_244if_f_id, +L23_248w_t_id, +L23_249w_d_id, +L23_245if_d_id, +S_2338_UnchainedWordMove_00000000_0000000f_00000000_00000000_id, +L13_2318if_f_id, +L28_166if_f_id, +L28_167if_d_id, +S_2339_CopyWord4PlaneUnchained_00000000_0000000f_00000000_00000000_id, +L13_2319if_f_id, +L23_252w_t_id, +L23_253w_d_id, +L23_250if_f_id, +L23_254w_t_id, +L23_255w_d_id, +L23_251if_d_id, +S_2340_UnchainedWordMove_00000000_00000010_00000000_00000000_id, +L13_2320if_f_id, +L28_168if_f_id, +L28_169if_d_id, +S_2341_CopyWordPlnByPlnUnchained_00000000_00000010_00000000_00000000_id, +L13_2321if_f_id, +L23_256if_f_id, +L23_257if_f_id, +L23_258if_f_id, +L23_259if_f_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_2310_UnchainedWordWrite_00000000_00000011_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2310_UnchainedWordWrite_00000000_00000011_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2310_UnchainedWordWrite_00000000_00000011_00000000 = (IHPE)S_2310_UnchainedWordWrite_00000000_00000011_00000000 ; +LOCAL IUH L13_2290if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2290if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2290if_f = (IHPE)L13_2290if_f ; +GLOBAL IUH S_2311_UnchainedWordWrite_00000000_00000016_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2311_UnchainedWordWrite_00000000_00000016_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2311_UnchainedWordWrite_00000000_00000016_00000000 = (IHPE)S_2311_UnchainedWordWrite_00000000_00000016_00000000 ; +LOCAL IUH L13_2291if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2291if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2291if_f = (IHPE)L13_2291if_f ; +GLOBAL IUH S_2312_UnchainedWordWrite_00000000_00000017_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2312_UnchainedWordWrite_00000000_00000017_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2312_UnchainedWordWrite_00000000_00000017_00000000 = (IHPE)S_2312_UnchainedWordWrite_00000000_00000017_00000000 ; +LOCAL IUH L13_2292if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2292if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2292if_f = (IHPE)L13_2292if_f ; +GLOBAL IUH S_2313_UnchainedWordWrite_00000000_00000018_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2313_UnchainedWordWrite_00000000_00000018_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2313_UnchainedWordWrite_00000000_00000018_00000000 = (IHPE)S_2313_UnchainedWordWrite_00000000_00000018_00000000 ; +LOCAL IUH L13_2293if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2293if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2293if_f = (IHPE)L13_2293if_f ; +GLOBAL IUH S_2314_UnchainedWordWrite_00000000_00000019_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2314_UnchainedWordWrite_00000000_00000019_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2314_UnchainedWordWrite_00000000_00000019_00000000 = (IHPE)S_2314_UnchainedWordWrite_00000000_00000019_00000000 ; +LOCAL IUH L13_2294if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2294if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2294if_f = (IHPE)L13_2294if_f ; +GLOBAL IUH S_2315_UnchainedWordWrite_00000000_0000001e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2315_UnchainedWordWrite_00000000_0000001e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2315_UnchainedWordWrite_00000000_0000001e_00000000 = (IHPE)S_2315_UnchainedWordWrite_00000000_0000001e_00000000 ; +LOCAL IUH L13_2295if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2295if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2295if_f = (IHPE)L13_2295if_f ; +GLOBAL IUH S_2316_UnchainedWordWrite_00000000_0000001f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2316_UnchainedWordWrite_00000000_0000001f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2316_UnchainedWordWrite_00000000_0000001f_00000000 = (IHPE)S_2316_UnchainedWordWrite_00000000_0000001f_00000000 ; +LOCAL IUH L13_2296if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2296if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2296if_f = (IHPE)L13_2296if_f ; +GLOBAL IUH S_2317_UnchainedWordFill_00000000_00000008_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2317_UnchainedWordFill_00000000_00000008_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2317_UnchainedWordFill_00000000_00000008_00000000 = (IHPE)S_2317_UnchainedWordFill_00000000_00000008_00000000 ; +LOCAL IUH L13_2297if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2297if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2297if_f = (IHPE)L13_2297if_f ; +LOCAL IUH L28_134if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_134if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_134if_f = (IHPE)L28_134if_f ; +LOCAL IUH L28_135if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_135if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_135if_f = (IHPE)L28_135if_f ; +LOCAL IUH L28_136if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_136if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_136if_f = (IHPE)L28_136if_f ; +LOCAL IUH L28_137if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_137if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_137if_f = (IHPE)L28_137if_f ; +GLOBAL IUH S_2318_UnchainedWordFill_00000000_00000009_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2318_UnchainedWordFill_00000000_00000009_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2318_UnchainedWordFill_00000000_00000009_00000000 = (IHPE)S_2318_UnchainedWordFill_00000000_00000009_00000000 ; +LOCAL IUH L13_2298if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2298if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2298if_f = (IHPE)L13_2298if_f ; +GLOBAL IUH S_2319_Unchained4PlaneWordFill IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2319_Unchained4PlaneWordFill_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2319_Unchained4PlaneWordFill = (IHPE)S_2319_Unchained4PlaneWordFill ; +LOCAL IUH L13_2299if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2299if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2299if_f = (IHPE)L13_2299if_f ; +LOCAL IUH L28_138w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_138w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_138w_t = (IHPE)L28_138w_t ; +LOCAL IUH L28_139w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_139w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_139w_d = (IHPE)L28_139w_d ; +GLOBAL IUH S_2320_UnchainedWordFill_00000000_0000000e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2320_UnchainedWordFill_00000000_0000000e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2320_UnchainedWordFill_00000000_0000000e_00000000 = (IHPE)S_2320_UnchainedWordFill_00000000_0000000e_00000000 ; +LOCAL IUH L13_2300if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2300if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2300if_f = (IHPE)L13_2300if_f ; +LOCAL IUH L28_140if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_140if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_140if_f = (IHPE)L28_140if_f ; +LOCAL IUH L28_141if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_141if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_141if_f = (IHPE)L28_141if_f ; +LOCAL IUH L28_142if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_142if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_142if_f = (IHPE)L28_142if_f ; +LOCAL IUH L28_143if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_143if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_143if_f = (IHPE)L28_143if_f ; +GLOBAL IUH S_2321_UnchainedWordFill_00000000_0000000f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2321_UnchainedWordFill_00000000_0000000f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2321_UnchainedWordFill_00000000_0000000f_00000000 = (IHPE)S_2321_UnchainedWordFill_00000000_0000000f_00000000 ; +LOCAL IUH L13_2301if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2301if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2301if_f = (IHPE)L13_2301if_f ; +GLOBAL IUH S_2322_UnchainedWordFill_00000000_00000010_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2322_UnchainedWordFill_00000000_00000010_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2322_UnchainedWordFill_00000000_00000010_00000000 = (IHPE)S_2322_UnchainedWordFill_00000000_00000010_00000000 ; +LOCAL IUH L13_2302if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2302if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2302if_f = (IHPE)L13_2302if_f ; +LOCAL IUH L28_144if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_144if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_144if_f = (IHPE)L28_144if_f ; +LOCAL IUH L28_145if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_145if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_145if_f = (IHPE)L28_145if_f ; +LOCAL IUH L28_146if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_146if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_146if_f = (IHPE)L28_146if_f ; +LOCAL IUH L28_147if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_147if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_147if_f = (IHPE)L28_147if_f ; +GLOBAL IUH S_2323_UnchainedWordFill_00000000_00000011_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2323_UnchainedWordFill_00000000_00000011_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2323_UnchainedWordFill_00000000_00000011_00000000 = (IHPE)S_2323_UnchainedWordFill_00000000_00000011_00000000 ; +LOCAL IUH L13_2303if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2303if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2303if_f = (IHPE)L13_2303if_f ; +GLOBAL IUH S_2324_UnchainedWordFill_00000000_00000016_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2324_UnchainedWordFill_00000000_00000016_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2324_UnchainedWordFill_00000000_00000016_00000000 = (IHPE)S_2324_UnchainedWordFill_00000000_00000016_00000000 ; +LOCAL IUH L13_2304if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2304if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2304if_f = (IHPE)L13_2304if_f ; +LOCAL IUH L28_148if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_148if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_148if_f = (IHPE)L28_148if_f ; +LOCAL IUH L28_149if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_149if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_149if_f = (IHPE)L28_149if_f ; +LOCAL IUH L28_150if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_150if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_150if_f = (IHPE)L28_150if_f ; +LOCAL IUH L28_151if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_151if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_151if_f = (IHPE)L28_151if_f ; +GLOBAL IUH S_2325_UnchainedWordFill_00000000_00000017_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2325_UnchainedWordFill_00000000_00000017_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2325_UnchainedWordFill_00000000_00000017_00000000 = (IHPE)S_2325_UnchainedWordFill_00000000_00000017_00000000 ; +LOCAL IUH L13_2305if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2305if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2305if_f = (IHPE)L13_2305if_f ; +GLOBAL IUH S_2326_UnchainedWordFill_00000000_00000018_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2326_UnchainedWordFill_00000000_00000018_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2326_UnchainedWordFill_00000000_00000018_00000000 = (IHPE)S_2326_UnchainedWordFill_00000000_00000018_00000000 ; +LOCAL IUH L13_2306if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2306if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2306if_f = (IHPE)L13_2306if_f ; +LOCAL IUH L28_152if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_152if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_152if_f = (IHPE)L28_152if_f ; +LOCAL IUH L28_153if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_153if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_153if_f = (IHPE)L28_153if_f ; +LOCAL IUH L28_154if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_154if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_154if_f = (IHPE)L28_154if_f ; +LOCAL IUH L28_155if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_155if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_155if_f = (IHPE)L28_155if_f ; +GLOBAL IUH S_2327_UnchainedWordFill_00000000_00000019_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2327_UnchainedWordFill_00000000_00000019_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2327_UnchainedWordFill_00000000_00000019_00000000 = (IHPE)S_2327_UnchainedWordFill_00000000_00000019_00000000 ; +LOCAL IUH L13_2307if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2307if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2307if_f = (IHPE)L13_2307if_f ; +GLOBAL IUH S_2328_UnchainedWordFill_00000000_0000001e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2328_UnchainedWordFill_00000000_0000001e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2328_UnchainedWordFill_00000000_0000001e_00000000 = (IHPE)S_2328_UnchainedWordFill_00000000_0000001e_00000000 ; +LOCAL IUH L13_2308if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2308if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2308if_f = (IHPE)L13_2308if_f ; +LOCAL IUH L28_156if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_156if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_156if_f = (IHPE)L28_156if_f ; +LOCAL IUH L28_157if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_157if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_157if_f = (IHPE)L28_157if_f ; +LOCAL IUH L28_158if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_158if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_158if_f = (IHPE)L28_158if_f ; +LOCAL IUH L28_159if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_159if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_159if_f = (IHPE)L28_159if_f ; +GLOBAL IUH S_2329_UnchainedWordFill_00000000_0000001f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2329_UnchainedWordFill_00000000_0000001f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2329_UnchainedWordFill_00000000_0000001f_00000000 = (IHPE)S_2329_UnchainedWordFill_00000000_0000001f_00000000 ; +LOCAL IUH L13_2309if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2309if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2309if_f = (IHPE)L13_2309if_f ; +GLOBAL IUH S_2330_UnchainedWordMove_00000000_00000008_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2330_UnchainedWordMove_00000000_00000008_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2330_UnchainedWordMove_00000000_00000008_00000000_00000000 = (IHPE)S_2330_UnchainedWordMove_00000000_00000008_00000000_00000000 ; +LOCAL IUH L13_2310if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2310if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2310if_f = (IHPE)L13_2310if_f ; +LOCAL IUH L28_160if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_160if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_160if_f = (IHPE)L28_160if_f ; +LOCAL IUH L28_161if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_161if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_161if_d = (IHPE)L28_161if_d ; +GLOBAL IUH S_2331_CopyWordPlnByPlnUnchained_00000000_00000008_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2331_CopyWordPlnByPlnUnchained_00000000_00000008_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2331_CopyWordPlnByPlnUnchained_00000000_00000008_00000000_00000000 = (IHPE)S_2331_CopyWordPlnByPlnUnchained_00000000_00000008_00000000_00000000 ; +LOCAL IUH L13_2311if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2311if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2311if_f = (IHPE)L13_2311if_f ; +LOCAL IUH L23_224if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_224if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_224if_f = (IHPE)L23_224if_f ; +LOCAL IUH L23_225if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_225if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_225if_f = (IHPE)L23_225if_f ; +LOCAL IUH L23_226if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_226if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_226if_f = (IHPE)L23_226if_f ; +LOCAL IUH L23_227if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_227if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_227if_f = (IHPE)L23_227if_f ; +GLOBAL IUH S_2332_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2332_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2332_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000000 = (IHPE)S_2332_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000000 ; +LOCAL IUH L13_2312if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2312if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2312if_f = (IHPE)L13_2312if_f ; +LOCAL IUH L23_230w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_230w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_230w_t = (IHPE)L23_230w_t ; +LOCAL IUH L23_231w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_231w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_231w_d = (IHPE)L23_231w_d ; +LOCAL IUH L23_228if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_228if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_228if_f = (IHPE)L23_228if_f ; +LOCAL IUH L23_232w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_232w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_232w_t = (IHPE)L23_232w_t ; +LOCAL IUH L23_233w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_233w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_233w_d = (IHPE)L23_233w_d ; +LOCAL IUH L23_229if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_229if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_229if_d = (IHPE)L23_229if_d ; +GLOBAL IUH S_2333_UnchainedWordMove_00000000_00000009_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2333_UnchainedWordMove_00000000_00000009_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2333_UnchainedWordMove_00000000_00000009_00000000_00000000 = (IHPE)S_2333_UnchainedWordMove_00000000_00000009_00000000_00000000 ; +LOCAL IUH L13_2313if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2313if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2313if_f = (IHPE)L13_2313if_f ; +LOCAL IUH L28_162if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_162if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_162if_f = (IHPE)L28_162if_f ; +LOCAL IUH L28_163if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_163if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_163if_d = (IHPE)L28_163if_d ; +GLOBAL IUH S_2334_CopyWord4PlaneUnchained_00000000_00000009_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2334_CopyWord4PlaneUnchained_00000000_00000009_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2334_CopyWord4PlaneUnchained_00000000_00000009_00000000_00000000 = (IHPE)S_2334_CopyWord4PlaneUnchained_00000000_00000009_00000000_00000000 ; +LOCAL IUH L13_2314if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2314if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2314if_f = (IHPE)L13_2314if_f ; +LOCAL IUH L23_236w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_236w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_236w_t = (IHPE)L23_236w_t ; +LOCAL IUH L23_237w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_237w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_237w_d = (IHPE)L23_237w_d ; +LOCAL IUH L23_234if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_234if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_234if_f = (IHPE)L23_234if_f ; +LOCAL IUH L23_238w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_238w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_238w_t = (IHPE)L23_238w_t ; +LOCAL IUH L23_239w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_239w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_239w_d = (IHPE)L23_239w_d ; +LOCAL IUH L23_235if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_235if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_235if_d = (IHPE)L23_235if_d ; +GLOBAL IUH S_2335_UnchainedWordMove_00000000_0000000e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2335_UnchainedWordMove_00000000_0000000e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2335_UnchainedWordMove_00000000_0000000e_00000000_00000000 = (IHPE)S_2335_UnchainedWordMove_00000000_0000000e_00000000_00000000 ; +LOCAL IUH L13_2315if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2315if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2315if_f = (IHPE)L13_2315if_f ; +LOCAL IUH L28_164if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_164if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_164if_f = (IHPE)L28_164if_f ; +LOCAL IUH L28_165if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_165if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_165if_d = (IHPE)L28_165if_d ; +GLOBAL IUH S_2336_CopyWordPlnByPlnUnchained_00000000_0000000e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2336_CopyWordPlnByPlnUnchained_00000000_0000000e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2336_CopyWordPlnByPlnUnchained_00000000_0000000e_00000000_00000000 = (IHPE)S_2336_CopyWordPlnByPlnUnchained_00000000_0000000e_00000000_00000000 ; +LOCAL IUH L13_2316if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2316if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2316if_f = (IHPE)L13_2316if_f ; +LOCAL IUH L23_240if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_240if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_240if_f = (IHPE)L23_240if_f ; +LOCAL IUH L23_241if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_241if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_241if_f = (IHPE)L23_241if_f ; +LOCAL IUH L23_242if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_242if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_242if_f = (IHPE)L23_242if_f ; +LOCAL IUH L23_243if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_243if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_243if_f = (IHPE)L23_243if_f ; +GLOBAL IUH S_2337_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2337_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2337_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000000 = (IHPE)S_2337_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000000 ; +LOCAL IUH L13_2317if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2317if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2317if_f = (IHPE)L13_2317if_f ; +LOCAL IUH L23_246w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_246w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_246w_t = (IHPE)L23_246w_t ; +LOCAL IUH L23_247w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_247w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_247w_d = (IHPE)L23_247w_d ; +LOCAL IUH L23_244if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_244if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_244if_f = (IHPE)L23_244if_f ; +LOCAL IUH L23_248w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_248w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_248w_t = (IHPE)L23_248w_t ; +LOCAL IUH L23_249w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_249w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_249w_d = (IHPE)L23_249w_d ; +LOCAL IUH L23_245if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_245if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_245if_d = (IHPE)L23_245if_d ; +GLOBAL IUH S_2338_UnchainedWordMove_00000000_0000000f_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2338_UnchainedWordMove_00000000_0000000f_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2338_UnchainedWordMove_00000000_0000000f_00000000_00000000 = (IHPE)S_2338_UnchainedWordMove_00000000_0000000f_00000000_00000000 ; +LOCAL IUH L13_2318if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2318if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2318if_f = (IHPE)L13_2318if_f ; +LOCAL IUH L28_166if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_166if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_166if_f = (IHPE)L28_166if_f ; +LOCAL IUH L28_167if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_167if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_167if_d = (IHPE)L28_167if_d ; +GLOBAL IUH S_2339_CopyWord4PlaneUnchained_00000000_0000000f_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2339_CopyWord4PlaneUnchained_00000000_0000000f_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2339_CopyWord4PlaneUnchained_00000000_0000000f_00000000_00000000 = (IHPE)S_2339_CopyWord4PlaneUnchained_00000000_0000000f_00000000_00000000 ; +LOCAL IUH L13_2319if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2319if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2319if_f = (IHPE)L13_2319if_f ; +LOCAL IUH L23_252w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_252w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_252w_t = (IHPE)L23_252w_t ; +LOCAL IUH L23_253w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_253w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_253w_d = (IHPE)L23_253w_d ; +LOCAL IUH L23_250if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_250if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_250if_f = (IHPE)L23_250if_f ; +LOCAL IUH L23_254w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_254w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_254w_t = (IHPE)L23_254w_t ; +LOCAL IUH L23_255w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_255w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_255w_d = (IHPE)L23_255w_d ; +LOCAL IUH L23_251if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_251if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_251if_d = (IHPE)L23_251if_d ; +GLOBAL IUH S_2340_UnchainedWordMove_00000000_00000010_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2340_UnchainedWordMove_00000000_00000010_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2340_UnchainedWordMove_00000000_00000010_00000000_00000000 = (IHPE)S_2340_UnchainedWordMove_00000000_00000010_00000000_00000000 ; +LOCAL IUH L13_2320if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2320if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2320if_f = (IHPE)L13_2320if_f ; +LOCAL IUH L28_168if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_168if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_168if_f = (IHPE)L28_168if_f ; +LOCAL IUH L28_169if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_169if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_169if_d = (IHPE)L28_169if_d ; +GLOBAL IUH S_2341_CopyWordPlnByPlnUnchained_00000000_00000010_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2341_CopyWordPlnByPlnUnchained_00000000_00000010_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2341_CopyWordPlnByPlnUnchained_00000000_00000010_00000000_00000000 = (IHPE)S_2341_CopyWordPlnByPlnUnchained_00000000_00000010_00000000_00000000 ; +LOCAL IUH L13_2321if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2321if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2321if_f = (IHPE)L13_2321if_f ; +LOCAL IUH L23_256if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_256if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_256if_f = (IHPE)L23_256if_f ; +LOCAL IUH L23_257if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_257if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_257if_f = (IHPE)L23_257if_f ; +LOCAL IUH L23_258if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_258if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_258if_f = (IHPE)L23_258if_f ; +LOCAL IUH L23_259if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_259if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_259if_f = (IHPE)L23_259if_f ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2310_UnchainedWordWrite_00000000_00000011_00000000_id : + S_2310_UnchainedWordWrite_00000000_00000011_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2310) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2290if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2290if_f_id : + L13_2290if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+4) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2311_UnchainedWordWrite_00000000_00000016_00000000_id : + S_2311_UnchainedWordWrite_00000000_00000016_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2311) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2291if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2291if_f_id : + L13_2291if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+4) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2312_UnchainedWordWrite_00000000_00000017_00000000_id : + S_2312_UnchainedWordWrite_00000000_00000017_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2312) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2292if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2292if_f_id : + L13_2292if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+4) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2313_UnchainedWordWrite_00000000_00000018_00000000_id : + S_2313_UnchainedWordWrite_00000000_00000018_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2313) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2293if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2293if_f_id : + L13_2293if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+4) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2314_UnchainedWordWrite_00000000_00000019_00000000_id : + S_2314_UnchainedWordWrite_00000000_00000019_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2314) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2294if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2294if_f_id : + L13_2294if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+4) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2315_UnchainedWordWrite_00000000_0000001e_00000000_id : + S_2315_UnchainedWordWrite_00000000_0000001e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2315) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2295if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2295if_f_id : + L13_2295if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+4) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2316_UnchainedWordWrite_00000000_0000001f_00000000_id : + S_2316_UnchainedWordWrite_00000000_0000001f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2316) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2296if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2296if_f_id : + L13_2296if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+4) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2317_UnchainedWordFill_00000000_00000008_00000000_id : + S_2317_UnchainedWordFill_00000000_00000008_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2317) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2297if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2297if_f_id : + L13_2297if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+5) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+5) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+5) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+5) + REGLONG) = (*((IU32 *)(LocalIUH+5) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_134if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_134if_f_id : + L28_134if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_135if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU8 *)&(r4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+5) )) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_135if_f_id : + L28_135if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_136if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_136if_f_id : + L28_136if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_137if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_137if_f_id : + L28_137if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2318_UnchainedWordFill_00000000_00000009_00000000_id : + S_2318_UnchainedWordFill_00000000_00000009_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2318) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2298if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2298if_f_id : + L13_2298if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+5) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+5) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+5) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+5) + REGLONG) = (*((IU32 *)(LocalIUH+5) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16484) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2319_Unchained4PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2319_Unchained4PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16485) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2319_Unchained4PlaneWordFill_id : + S_2319_Unchained4PlaneWordFill : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2319) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2299if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2299if_f_id : + L13_2299if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L28_139w_d; + case L28_138w_t_id : + L28_138w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+5)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IU32 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+5)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IU32 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L28_138w_t; + case L28_139w_d_id : + L28_139w_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2320_UnchainedWordFill_00000000_0000000e_00000000_id : + S_2320_UnchainedWordFill_00000000_0000000e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2320) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2300if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2300if_f_id : + L13_2300if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+5) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+5) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+5) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+5) + REGLONG) = (*((IU32 *)(LocalIUH+5) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_140if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_140if_f_id : + L28_140if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_141if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU8 *)&(r4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+5) )) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_141if_f_id : + L28_141if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_142if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_142if_f_id : + L28_142if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_143if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_143if_f_id : + L28_143if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2321_UnchainedWordFill_00000000_0000000f_00000000_id : + S_2321_UnchainedWordFill_00000000_0000000f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2321) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2301if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2301if_f_id : + L13_2301if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+5) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+5) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+5) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+5) + REGLONG) = (*((IU32 *)(LocalIUH+5) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16484) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2319_Unchained4PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2319_Unchained4PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16485) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2322_UnchainedWordFill_00000000_00000010_00000000_id : + S_2322_UnchainedWordFill_00000000_00000010_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2322) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2302if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2302if_f_id : + L13_2302if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+5) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+5) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+5) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+5) + REGLONG) = (*((IU32 *)(LocalIUH+5) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_144if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_144if_f_id : + L28_144if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_145if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU8 *)&(r4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+5) )) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_145if_f_id : + L28_145if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_146if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_146if_f_id : + L28_146if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_147if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_147if_f_id : + L28_147if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2323_UnchainedWordFill_00000000_00000011_00000000_id : + S_2323_UnchainedWordFill_00000000_00000011_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2323) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2303if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2303if_f_id : + L13_2303if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+5) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+5) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+5) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+5) + REGLONG) = (*((IU32 *)(LocalIUH+5) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16484) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2319_Unchained4PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2319_Unchained4PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16485) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2324_UnchainedWordFill_00000000_00000016_00000000_id : + S_2324_UnchainedWordFill_00000000_00000016_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2324) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2304if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2304if_f_id : + L13_2304if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+5) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+5) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+5) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+5) + REGLONG) = (*((IU32 *)(LocalIUH+5) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_148if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_148if_f_id : + L28_148if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_149if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU8 *)&(r4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+5) )) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_149if_f_id : + L28_149if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_150if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_150if_f_id : + L28_150if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_151if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_151if_f_id : + L28_151if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2325_UnchainedWordFill_00000000_00000017_00000000_id : + S_2325_UnchainedWordFill_00000000_00000017_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2325) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2305if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2305if_f_id : + L13_2305if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+5) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+5) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+5) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+5) + REGLONG) = (*((IU32 *)(LocalIUH+5) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16484) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2319_Unchained4PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2319_Unchained4PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16485) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2326_UnchainedWordFill_00000000_00000018_00000000_id : + S_2326_UnchainedWordFill_00000000_00000018_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2326) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2306if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2306if_f_id : + L13_2306if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+5) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+5) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+5) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+5) + REGLONG) = (*((IU32 *)(LocalIUH+5) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_152if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_152if_f_id : + L28_152if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_153if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU8 *)&(r4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+5) )) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_153if_f_id : + L28_153if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_154if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_154if_f_id : + L28_154if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_155if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_155if_f_id : + L28_155if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2327_UnchainedWordFill_00000000_00000019_00000000_id : + S_2327_UnchainedWordFill_00000000_00000019_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2327) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2307if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2307if_f_id : + L13_2307if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+5) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+5) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+5) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+5) + REGLONG) = (*((IU32 *)(LocalIUH+5) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16484) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2319_Unchained4PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2319_Unchained4PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16485) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2328_UnchainedWordFill_00000000_0000001e_00000000_id : + S_2328_UnchainedWordFill_00000000_0000001e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2328) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2308if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2308if_f_id : + L13_2308if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+5) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+5) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+5) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+5) + REGLONG) = (*((IU32 *)(LocalIUH+5) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_156if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_156if_f_id : + L28_156if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_157if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU8 *)&(r4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+5) )) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_157if_f_id : + L28_157if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_158if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_158if_f_id : + L28_158if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_159if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_159if_f_id : + L28_159if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2329_UnchainedWordFill_00000000_0000001f_00000000_id : + S_2329_UnchainedWordFill_00000000_0000001f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2329) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2309if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2309if_f_id : + L13_2309if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+5) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+5) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+5) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+5) + REGLONG) = (*((IU32 *)(LocalIUH+5) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16484) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2319_Unchained4PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2319_Unchained4PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16485) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2330_UnchainedWordMove_00000000_00000008_00000000_00000000_id : + S_2330_UnchainedWordMove_00000000_00000008_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2330) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2310if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2310if_f_id : + L13_2310if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_160if_f; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2331_CopyWordPlnByPlnUnchained_00000000_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2331_CopyWordPlnByPlnUnchained_00000000_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + { extern IUH L28_161if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_161if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_160if_f_id : + L28_160if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2331_CopyWordPlnByPlnUnchained_00000000_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2331_CopyWordPlnByPlnUnchained_00000000_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + case L28_161if_d_id : + L28_161if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2331_CopyWordPlnByPlnUnchained_00000000_00000008_00000000_00000000_id : + S_2331_CopyWordPlnByPlnUnchained_00000000_00000008_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2331) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2311if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2311if_f_id : + L13_2311if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_224if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2332_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2332_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_224if_f_id : + L23_224if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_225if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2332_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2332_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_225if_f_id : + L23_225if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_226if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2332_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2332_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_226if_f_id : + L23_226if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_227if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2332_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2332_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_227if_f_id : + L23_227if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2332_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000000_id : + S_2332_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2332) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2312if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2312if_f_id : + L13_2312if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_228if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_231w_d; + case L23_230w_t_id : + L23_230w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_230w_t; + case L23_231w_d_id : + L23_231w_d: ; + { extern IUH L23_229if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_229if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_228if_f_id : + L23_228if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_233w_d; + case L23_232w_t_id : + L23_232w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_232w_t; + case L23_233w_d_id : + L23_233w_d: ; + case L23_229if_d_id : + L23_229if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2333_UnchainedWordMove_00000000_00000009_00000000_00000000_id : + S_2333_UnchainedWordMove_00000000_00000009_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2333) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2313if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2313if_f_id : + L13_2313if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_162if_f; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2334_CopyWord4PlaneUnchained_00000000_00000009_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2334_CopyWord4PlaneUnchained_00000000_00000009_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + { extern IUH L28_163if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_163if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_162if_f_id : + L28_162if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2334_CopyWord4PlaneUnchained_00000000_00000009_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2334_CopyWord4PlaneUnchained_00000000_00000009_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + case L28_163if_d_id : + L28_163if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2334_CopyWord4PlaneUnchained_00000000_00000009_00000000_00000000_id : + S_2334_CopyWord4PlaneUnchained_00000000_00000009_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2334) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2314if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2314if_f_id : + L13_2314if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_234if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_237w_d; + case L23_236w_t_id : + L23_236w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_236w_t; + case L23_237w_d_id : + L23_237w_d: ; + { extern IUH L23_235if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_235if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_234if_f_id : + L23_234if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_239w_d; + case L23_238w_t_id : + L23_238w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_238w_t; + case L23_239w_d_id : + L23_239w_d: ; + case L23_235if_d_id : + L23_235if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2335_UnchainedWordMove_00000000_0000000e_00000000_00000000_id : + S_2335_UnchainedWordMove_00000000_0000000e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2335) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2315if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2315if_f_id : + L13_2315if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_164if_f; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2336_CopyWordPlnByPlnUnchained_00000000_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2336_CopyWordPlnByPlnUnchained_00000000_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + { extern IUH L28_165if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_165if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_164if_f_id : + L28_164if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2336_CopyWordPlnByPlnUnchained_00000000_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2336_CopyWordPlnByPlnUnchained_00000000_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + case L28_165if_d_id : + L28_165if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2336_CopyWordPlnByPlnUnchained_00000000_0000000e_00000000_00000000_id : + S_2336_CopyWordPlnByPlnUnchained_00000000_0000000e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2336) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2316if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2316if_f_id : + L13_2316if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_240if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2337_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2337_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_240if_f_id : + L23_240if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_241if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2337_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2337_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_241if_f_id : + L23_241if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_242if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2337_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2337_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_242if_f_id : + L23_242if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_243if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2337_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2337_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_243if_f_id : + L23_243if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2337_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000000_id : + S_2337_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2337) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2317if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2317if_f_id : + L13_2317if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_244if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_247w_d; + case L23_246w_t_id : + L23_246w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_246w_t; + case L23_247w_d_id : + L23_247w_d: ; + { extern IUH L23_245if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_245if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_244if_f_id : + L23_244if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_249w_d; + case L23_248w_t_id : + L23_248w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_248w_t; + case L23_249w_d_id : + L23_249w_d: ; + case L23_245if_d_id : + L23_245if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2338_UnchainedWordMove_00000000_0000000f_00000000_00000000_id : + S_2338_UnchainedWordMove_00000000_0000000f_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2338) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2318if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2318if_f_id : + L13_2318if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_166if_f; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2339_CopyWord4PlaneUnchained_00000000_0000000f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2339_CopyWord4PlaneUnchained_00000000_0000000f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + { extern IUH L28_167if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_167if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_166if_f_id : + L28_166if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2339_CopyWord4PlaneUnchained_00000000_0000000f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2339_CopyWord4PlaneUnchained_00000000_0000000f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + case L28_167if_d_id : + L28_167if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2339_CopyWord4PlaneUnchained_00000000_0000000f_00000000_00000000_id : + S_2339_CopyWord4PlaneUnchained_00000000_0000000f_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2339) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2319if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2319if_f_id : + L13_2319if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_250if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_253w_d; + case L23_252w_t_id : + L23_252w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_252w_t; + case L23_253w_d_id : + L23_253w_d: ; + { extern IUH L23_251if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_251if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_250if_f_id : + L23_250if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_255w_d; + case L23_254w_t_id : + L23_254w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_254w_t; + case L23_255w_d_id : + L23_255w_d: ; + case L23_251if_d_id : + L23_251if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2340_UnchainedWordMove_00000000_00000010_00000000_00000000_id : + S_2340_UnchainedWordMove_00000000_00000010_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2340) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2320if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2320if_f_id : + L13_2320if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_168if_f; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2341_CopyWordPlnByPlnUnchained_00000000_00000010_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2341_CopyWordPlnByPlnUnchained_00000000_00000010_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + { extern IUH L28_169if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_169if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_168if_f_id : + L28_168if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2341_CopyWordPlnByPlnUnchained_00000000_00000010_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2341_CopyWordPlnByPlnUnchained_00000000_00000010_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + case L28_169if_d_id : + L28_169if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2341_CopyWordPlnByPlnUnchained_00000000_00000010_00000000_00000000_id : + S_2341_CopyWordPlnByPlnUnchained_00000000_00000010_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2341) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2321if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2321if_f_id : + L13_2321if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_256if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2342_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2342_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_256if_f_id : + L23_256if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_257if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2342_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2342_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_257if_f_id : + L23_257if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_258if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2342_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2342_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_258if_f_id : + L23_258if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_259if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2342_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2342_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_259if_f_id : + L23_259if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid008.c b/private/mvdm/softpc.new/base/cvidc/sevid008.c new file mode 100644 index 000000000..642266b4c --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid008.c @@ -0,0 +1,4334 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_2342_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000000_id, +L13_2322if_f_id, +L23_262w_t_id, +L23_263w_d_id, +L23_260if_f_id, +L23_264w_t_id, +L23_265w_d_id, +L23_261if_d_id, +S_2343_UnchainedWordMove_00000000_00000011_00000000_00000000_id, +L13_2323if_f_id, +L28_170if_f_id, +L28_171if_d_id, +S_2344_CopyWord4PlaneUnchained_00000000_00000011_00000000_00000000_id, +L13_2324if_f_id, +L23_268w_t_id, +L23_269w_d_id, +L23_266if_f_id, +L23_270w_t_id, +L23_271w_d_id, +L23_267if_d_id, +S_2345_UnchainedWordMove_00000000_00000016_00000000_00000000_id, +L13_2325if_f_id, +L28_172if_f_id, +L28_173if_d_id, +S_2346_CopyWordPlnByPlnUnchained_00000000_00000016_00000000_00000000_id, +L13_2326if_f_id, +L23_272if_f_id, +L23_273if_f_id, +L23_274if_f_id, +L23_275if_f_id, +S_2347_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000000_id, +L13_2327if_f_id, +L23_278w_t_id, +L23_279w_d_id, +L23_276if_f_id, +L23_280w_t_id, +L23_281w_d_id, +L23_277if_d_id, +S_2348_UnchainedWordMove_00000000_00000017_00000000_00000000_id, +L13_2328if_f_id, +L28_174if_f_id, +L28_175if_d_id, +S_2349_CopyWord4PlaneUnchained_00000000_00000017_00000000_00000000_id, +L13_2329if_f_id, +L23_284w_t_id, +L23_285w_d_id, +L23_282if_f_id, +L23_286w_t_id, +L23_287w_d_id, +L23_283if_d_id, +S_2350_UnchainedWordMove_00000000_00000018_00000000_00000000_id, +L13_2330if_f_id, +L28_176if_f_id, +L28_177if_d_id, +S_2351_CopyWordPlnByPlnUnchained_00000000_00000018_00000000_00000000_id, +L13_2331if_f_id, +L23_288if_f_id, +L23_289if_f_id, +L23_290if_f_id, +L23_291if_f_id, +S_2352_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000000_id, +L13_2332if_f_id, +L23_294w_t_id, +L23_295w_d_id, +L23_292if_f_id, +L23_296w_t_id, +L23_297w_d_id, +L23_293if_d_id, +S_2353_UnchainedWordMove_00000000_00000019_00000000_00000000_id, +L13_2333if_f_id, +L28_178if_f_id, +L28_179if_d_id, +S_2354_CopyWord4PlaneUnchained_00000000_00000019_00000000_00000000_id, +L13_2334if_f_id, +L23_300w_t_id, +L23_301w_d_id, +L23_298if_f_id, +L23_302w_t_id, +L23_303w_d_id, +L23_299if_d_id, +S_2355_UnchainedWordMove_00000000_0000001e_00000000_00000000_id, +L13_2335if_f_id, +L28_180if_f_id, +L28_181if_d_id, +S_2356_CopyWordPlnByPlnUnchained_00000000_0000001e_00000000_00000000_id, +L13_2336if_f_id, +L23_304if_f_id, +L23_305if_f_id, +L23_306if_f_id, +L23_307if_f_id, +S_2357_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000000_id, +L13_2337if_f_id, +L23_310w_t_id, +L23_311w_d_id, +L23_308if_f_id, +L23_312w_t_id, +L23_313w_d_id, +L23_309if_d_id, +S_2358_UnchainedWordMove_00000000_0000001f_00000000_00000000_id, +L13_2338if_f_id, +L28_182if_f_id, +L28_183if_d_id, +S_2359_CopyWord4PlaneUnchained_00000000_0000001f_00000000_00000000_id, +L13_2339if_f_id, +L23_316w_t_id, +L23_317w_d_id, +L23_314if_f_id, +L23_318w_t_id, +L23_319w_d_id, +L23_315if_d_id, +S_2360_UnchainedDwordWrite_00000000_00000008_00000000_id, +L13_2340if_f_id, +S_2361_UnchainedDwordWrite_00000000_00000009_00000000_id, +L13_2341if_f_id, +S_2362_UnchainedDwordWrite_00000000_0000000e_00000000_id, +L13_2342if_f_id, +S_2363_UnchainedDwordWrite_00000000_0000000f_00000000_id, +L13_2343if_f_id, +S_2364_UnchainedDwordWrite_00000000_00000010_00000000_id, +L13_2344if_f_id, +S_2365_UnchainedDwordWrite_00000000_00000011_00000000_id, +L13_2345if_f_id, +S_2366_UnchainedDwordWrite_00000000_00000016_00000000_id, +L13_2346if_f_id, +S_2367_UnchainedDwordWrite_00000000_00000017_00000000_id, +L13_2347if_f_id, +S_2368_UnchainedDwordWrite_00000000_00000018_00000000_id, +L13_2348if_f_id, +S_2369_UnchainedDwordWrite_00000000_00000019_00000000_id, +L13_2349if_f_id, +S_2370_UnchainedDwordWrite_00000000_0000001e_00000000_id, +L13_2350if_f_id, +S_2371_UnchainedDwordWrite_00000000_0000001f_00000000_id, +L13_2351if_f_id, +S_2372_UnchainedDwordFill_00000000_00000008_00000000_id, +L13_2352if_f_id, +S_2373_UnchainedDwordFill_00000000_00000009_00000000_id, +L13_2353if_f_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_2342_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2342_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2342_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000000 = (IHPE)S_2342_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000000 ; +LOCAL IUH L13_2322if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2322if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2322if_f = (IHPE)L13_2322if_f ; +LOCAL IUH L23_262w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_262w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_262w_t = (IHPE)L23_262w_t ; +LOCAL IUH L23_263w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_263w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_263w_d = (IHPE)L23_263w_d ; +LOCAL IUH L23_260if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_260if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_260if_f = (IHPE)L23_260if_f ; +LOCAL IUH L23_264w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_264w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_264w_t = (IHPE)L23_264w_t ; +LOCAL IUH L23_265w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_265w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_265w_d = (IHPE)L23_265w_d ; +LOCAL IUH L23_261if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_261if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_261if_d = (IHPE)L23_261if_d ; +GLOBAL IUH S_2343_UnchainedWordMove_00000000_00000011_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2343_UnchainedWordMove_00000000_00000011_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2343_UnchainedWordMove_00000000_00000011_00000000_00000000 = (IHPE)S_2343_UnchainedWordMove_00000000_00000011_00000000_00000000 ; +LOCAL IUH L13_2323if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2323if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2323if_f = (IHPE)L13_2323if_f ; +LOCAL IUH L28_170if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_170if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_170if_f = (IHPE)L28_170if_f ; +LOCAL IUH L28_171if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_171if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_171if_d = (IHPE)L28_171if_d ; +GLOBAL IUH S_2344_CopyWord4PlaneUnchained_00000000_00000011_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2344_CopyWord4PlaneUnchained_00000000_00000011_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2344_CopyWord4PlaneUnchained_00000000_00000011_00000000_00000000 = (IHPE)S_2344_CopyWord4PlaneUnchained_00000000_00000011_00000000_00000000 ; +LOCAL IUH L13_2324if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2324if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2324if_f = (IHPE)L13_2324if_f ; +LOCAL IUH L23_268w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_268w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_268w_t = (IHPE)L23_268w_t ; +LOCAL IUH L23_269w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_269w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_269w_d = (IHPE)L23_269w_d ; +LOCAL IUH L23_266if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_266if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_266if_f = (IHPE)L23_266if_f ; +LOCAL IUH L23_270w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_270w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_270w_t = (IHPE)L23_270w_t ; +LOCAL IUH L23_271w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_271w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_271w_d = (IHPE)L23_271w_d ; +LOCAL IUH L23_267if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_267if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_267if_d = (IHPE)L23_267if_d ; +GLOBAL IUH S_2345_UnchainedWordMove_00000000_00000016_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2345_UnchainedWordMove_00000000_00000016_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2345_UnchainedWordMove_00000000_00000016_00000000_00000000 = (IHPE)S_2345_UnchainedWordMove_00000000_00000016_00000000_00000000 ; +LOCAL IUH L13_2325if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2325if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2325if_f = (IHPE)L13_2325if_f ; +LOCAL IUH L28_172if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_172if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_172if_f = (IHPE)L28_172if_f ; +LOCAL IUH L28_173if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_173if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_173if_d = (IHPE)L28_173if_d ; +GLOBAL IUH S_2346_CopyWordPlnByPlnUnchained_00000000_00000016_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2346_CopyWordPlnByPlnUnchained_00000000_00000016_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2346_CopyWordPlnByPlnUnchained_00000000_00000016_00000000_00000000 = (IHPE)S_2346_CopyWordPlnByPlnUnchained_00000000_00000016_00000000_00000000 ; +LOCAL IUH L13_2326if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2326if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2326if_f = (IHPE)L13_2326if_f ; +LOCAL IUH L23_272if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_272if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_272if_f = (IHPE)L23_272if_f ; +LOCAL IUH L23_273if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_273if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_273if_f = (IHPE)L23_273if_f ; +LOCAL IUH L23_274if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_274if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_274if_f = (IHPE)L23_274if_f ; +LOCAL IUH L23_275if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_275if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_275if_f = (IHPE)L23_275if_f ; +GLOBAL IUH S_2347_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2347_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2347_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000000 = (IHPE)S_2347_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000000 ; +LOCAL IUH L13_2327if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2327if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2327if_f = (IHPE)L13_2327if_f ; +LOCAL IUH L23_278w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_278w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_278w_t = (IHPE)L23_278w_t ; +LOCAL IUH L23_279w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_279w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_279w_d = (IHPE)L23_279w_d ; +LOCAL IUH L23_276if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_276if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_276if_f = (IHPE)L23_276if_f ; +LOCAL IUH L23_280w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_280w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_280w_t = (IHPE)L23_280w_t ; +LOCAL IUH L23_281w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_281w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_281w_d = (IHPE)L23_281w_d ; +LOCAL IUH L23_277if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_277if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_277if_d = (IHPE)L23_277if_d ; +GLOBAL IUH S_2348_UnchainedWordMove_00000000_00000017_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2348_UnchainedWordMove_00000000_00000017_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2348_UnchainedWordMove_00000000_00000017_00000000_00000000 = (IHPE)S_2348_UnchainedWordMove_00000000_00000017_00000000_00000000 ; +LOCAL IUH L13_2328if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2328if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2328if_f = (IHPE)L13_2328if_f ; +LOCAL IUH L28_174if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_174if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_174if_f = (IHPE)L28_174if_f ; +LOCAL IUH L28_175if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_175if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_175if_d = (IHPE)L28_175if_d ; +GLOBAL IUH S_2349_CopyWord4PlaneUnchained_00000000_00000017_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2349_CopyWord4PlaneUnchained_00000000_00000017_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2349_CopyWord4PlaneUnchained_00000000_00000017_00000000_00000000 = (IHPE)S_2349_CopyWord4PlaneUnchained_00000000_00000017_00000000_00000000 ; +LOCAL IUH L13_2329if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2329if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2329if_f = (IHPE)L13_2329if_f ; +LOCAL IUH L23_284w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_284w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_284w_t = (IHPE)L23_284w_t ; +LOCAL IUH L23_285w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_285w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_285w_d = (IHPE)L23_285w_d ; +LOCAL IUH L23_282if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_282if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_282if_f = (IHPE)L23_282if_f ; +LOCAL IUH L23_286w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_286w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_286w_t = (IHPE)L23_286w_t ; +LOCAL IUH L23_287w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_287w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_287w_d = (IHPE)L23_287w_d ; +LOCAL IUH L23_283if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_283if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_283if_d = (IHPE)L23_283if_d ; +GLOBAL IUH S_2350_UnchainedWordMove_00000000_00000018_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2350_UnchainedWordMove_00000000_00000018_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2350_UnchainedWordMove_00000000_00000018_00000000_00000000 = (IHPE)S_2350_UnchainedWordMove_00000000_00000018_00000000_00000000 ; +LOCAL IUH L13_2330if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2330if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2330if_f = (IHPE)L13_2330if_f ; +LOCAL IUH L28_176if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_176if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_176if_f = (IHPE)L28_176if_f ; +LOCAL IUH L28_177if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_177if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_177if_d = (IHPE)L28_177if_d ; +GLOBAL IUH S_2351_CopyWordPlnByPlnUnchained_00000000_00000018_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2351_CopyWordPlnByPlnUnchained_00000000_00000018_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2351_CopyWordPlnByPlnUnchained_00000000_00000018_00000000_00000000 = (IHPE)S_2351_CopyWordPlnByPlnUnchained_00000000_00000018_00000000_00000000 ; +LOCAL IUH L13_2331if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2331if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2331if_f = (IHPE)L13_2331if_f ; +LOCAL IUH L23_288if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_288if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_288if_f = (IHPE)L23_288if_f ; +LOCAL IUH L23_289if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_289if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_289if_f = (IHPE)L23_289if_f ; +LOCAL IUH L23_290if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_290if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_290if_f = (IHPE)L23_290if_f ; +LOCAL IUH L23_291if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_291if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_291if_f = (IHPE)L23_291if_f ; +GLOBAL IUH S_2352_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2352_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2352_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000000 = (IHPE)S_2352_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000000 ; +LOCAL IUH L13_2332if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2332if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2332if_f = (IHPE)L13_2332if_f ; +LOCAL IUH L23_294w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_294w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_294w_t = (IHPE)L23_294w_t ; +LOCAL IUH L23_295w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_295w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_295w_d = (IHPE)L23_295w_d ; +LOCAL IUH L23_292if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_292if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_292if_f = (IHPE)L23_292if_f ; +LOCAL IUH L23_296w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_296w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_296w_t = (IHPE)L23_296w_t ; +LOCAL IUH L23_297w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_297w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_297w_d = (IHPE)L23_297w_d ; +LOCAL IUH L23_293if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_293if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_293if_d = (IHPE)L23_293if_d ; +GLOBAL IUH S_2353_UnchainedWordMove_00000000_00000019_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2353_UnchainedWordMove_00000000_00000019_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2353_UnchainedWordMove_00000000_00000019_00000000_00000000 = (IHPE)S_2353_UnchainedWordMove_00000000_00000019_00000000_00000000 ; +LOCAL IUH L13_2333if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2333if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2333if_f = (IHPE)L13_2333if_f ; +LOCAL IUH L28_178if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_178if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_178if_f = (IHPE)L28_178if_f ; +LOCAL IUH L28_179if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_179if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_179if_d = (IHPE)L28_179if_d ; +GLOBAL IUH S_2354_CopyWord4PlaneUnchained_00000000_00000019_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2354_CopyWord4PlaneUnchained_00000000_00000019_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2354_CopyWord4PlaneUnchained_00000000_00000019_00000000_00000000 = (IHPE)S_2354_CopyWord4PlaneUnchained_00000000_00000019_00000000_00000000 ; +LOCAL IUH L13_2334if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2334if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2334if_f = (IHPE)L13_2334if_f ; +LOCAL IUH L23_300w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_300w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_300w_t = (IHPE)L23_300w_t ; +LOCAL IUH L23_301w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_301w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_301w_d = (IHPE)L23_301w_d ; +LOCAL IUH L23_298if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_298if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_298if_f = (IHPE)L23_298if_f ; +LOCAL IUH L23_302w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_302w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_302w_t = (IHPE)L23_302w_t ; +LOCAL IUH L23_303w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_303w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_303w_d = (IHPE)L23_303w_d ; +LOCAL IUH L23_299if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_299if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_299if_d = (IHPE)L23_299if_d ; +GLOBAL IUH S_2355_UnchainedWordMove_00000000_0000001e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2355_UnchainedWordMove_00000000_0000001e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2355_UnchainedWordMove_00000000_0000001e_00000000_00000000 = (IHPE)S_2355_UnchainedWordMove_00000000_0000001e_00000000_00000000 ; +LOCAL IUH L13_2335if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2335if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2335if_f = (IHPE)L13_2335if_f ; +LOCAL IUH L28_180if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_180if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_180if_f = (IHPE)L28_180if_f ; +LOCAL IUH L28_181if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_181if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_181if_d = (IHPE)L28_181if_d ; +GLOBAL IUH S_2356_CopyWordPlnByPlnUnchained_00000000_0000001e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2356_CopyWordPlnByPlnUnchained_00000000_0000001e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2356_CopyWordPlnByPlnUnchained_00000000_0000001e_00000000_00000000 = (IHPE)S_2356_CopyWordPlnByPlnUnchained_00000000_0000001e_00000000_00000000 ; +LOCAL IUH L13_2336if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2336if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2336if_f = (IHPE)L13_2336if_f ; +LOCAL IUH L23_304if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_304if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_304if_f = (IHPE)L23_304if_f ; +LOCAL IUH L23_305if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_305if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_305if_f = (IHPE)L23_305if_f ; +LOCAL IUH L23_306if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_306if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_306if_f = (IHPE)L23_306if_f ; +LOCAL IUH L23_307if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_307if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_307if_f = (IHPE)L23_307if_f ; +GLOBAL IUH S_2357_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2357_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2357_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000000 = (IHPE)S_2357_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000000 ; +LOCAL IUH L13_2337if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2337if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2337if_f = (IHPE)L13_2337if_f ; +LOCAL IUH L23_310w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_310w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_310w_t = (IHPE)L23_310w_t ; +LOCAL IUH L23_311w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_311w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_311w_d = (IHPE)L23_311w_d ; +LOCAL IUH L23_308if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_308if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_308if_f = (IHPE)L23_308if_f ; +LOCAL IUH L23_312w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_312w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_312w_t = (IHPE)L23_312w_t ; +LOCAL IUH L23_313w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_313w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_313w_d = (IHPE)L23_313w_d ; +LOCAL IUH L23_309if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_309if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_309if_d = (IHPE)L23_309if_d ; +GLOBAL IUH S_2358_UnchainedWordMove_00000000_0000001f_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2358_UnchainedWordMove_00000000_0000001f_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2358_UnchainedWordMove_00000000_0000001f_00000000_00000000 = (IHPE)S_2358_UnchainedWordMove_00000000_0000001f_00000000_00000000 ; +LOCAL IUH L13_2338if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2338if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2338if_f = (IHPE)L13_2338if_f ; +LOCAL IUH L28_182if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_182if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_182if_f = (IHPE)L28_182if_f ; +LOCAL IUH L28_183if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_183if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_183if_d = (IHPE)L28_183if_d ; +GLOBAL IUH S_2359_CopyWord4PlaneUnchained_00000000_0000001f_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2359_CopyWord4PlaneUnchained_00000000_0000001f_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2359_CopyWord4PlaneUnchained_00000000_0000001f_00000000_00000000 = (IHPE)S_2359_CopyWord4PlaneUnchained_00000000_0000001f_00000000_00000000 ; +LOCAL IUH L13_2339if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2339if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2339if_f = (IHPE)L13_2339if_f ; +LOCAL IUH L23_316w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_316w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_316w_t = (IHPE)L23_316w_t ; +LOCAL IUH L23_317w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_317w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_317w_d = (IHPE)L23_317w_d ; +LOCAL IUH L23_314if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_314if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_314if_f = (IHPE)L23_314if_f ; +LOCAL IUH L23_318w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_318w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_318w_t = (IHPE)L23_318w_t ; +LOCAL IUH L23_319w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_319w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_319w_d = (IHPE)L23_319w_d ; +LOCAL IUH L23_315if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_315if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_315if_d = (IHPE)L23_315if_d ; +GLOBAL IUH S_2360_UnchainedDwordWrite_00000000_00000008_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2360_UnchainedDwordWrite_00000000_00000008_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2360_UnchainedDwordWrite_00000000_00000008_00000000 = (IHPE)S_2360_UnchainedDwordWrite_00000000_00000008_00000000 ; +LOCAL IUH L13_2340if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2340if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2340if_f = (IHPE)L13_2340if_f ; +GLOBAL IUH S_2361_UnchainedDwordWrite_00000000_00000009_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2361_UnchainedDwordWrite_00000000_00000009_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2361_UnchainedDwordWrite_00000000_00000009_00000000 = (IHPE)S_2361_UnchainedDwordWrite_00000000_00000009_00000000 ; +LOCAL IUH L13_2341if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2341if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2341if_f = (IHPE)L13_2341if_f ; +GLOBAL IUH S_2362_UnchainedDwordWrite_00000000_0000000e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2362_UnchainedDwordWrite_00000000_0000000e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2362_UnchainedDwordWrite_00000000_0000000e_00000000 = (IHPE)S_2362_UnchainedDwordWrite_00000000_0000000e_00000000 ; +LOCAL IUH L13_2342if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2342if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2342if_f = (IHPE)L13_2342if_f ; +GLOBAL IUH S_2363_UnchainedDwordWrite_00000000_0000000f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2363_UnchainedDwordWrite_00000000_0000000f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2363_UnchainedDwordWrite_00000000_0000000f_00000000 = (IHPE)S_2363_UnchainedDwordWrite_00000000_0000000f_00000000 ; +LOCAL IUH L13_2343if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2343if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2343if_f = (IHPE)L13_2343if_f ; +GLOBAL IUH S_2364_UnchainedDwordWrite_00000000_00000010_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2364_UnchainedDwordWrite_00000000_00000010_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2364_UnchainedDwordWrite_00000000_00000010_00000000 = (IHPE)S_2364_UnchainedDwordWrite_00000000_00000010_00000000 ; +LOCAL IUH L13_2344if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2344if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2344if_f = (IHPE)L13_2344if_f ; +GLOBAL IUH S_2365_UnchainedDwordWrite_00000000_00000011_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2365_UnchainedDwordWrite_00000000_00000011_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2365_UnchainedDwordWrite_00000000_00000011_00000000 = (IHPE)S_2365_UnchainedDwordWrite_00000000_00000011_00000000 ; +LOCAL IUH L13_2345if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2345if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2345if_f = (IHPE)L13_2345if_f ; +GLOBAL IUH S_2366_UnchainedDwordWrite_00000000_00000016_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2366_UnchainedDwordWrite_00000000_00000016_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2366_UnchainedDwordWrite_00000000_00000016_00000000 = (IHPE)S_2366_UnchainedDwordWrite_00000000_00000016_00000000 ; +LOCAL IUH L13_2346if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2346if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2346if_f = (IHPE)L13_2346if_f ; +GLOBAL IUH S_2367_UnchainedDwordWrite_00000000_00000017_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2367_UnchainedDwordWrite_00000000_00000017_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2367_UnchainedDwordWrite_00000000_00000017_00000000 = (IHPE)S_2367_UnchainedDwordWrite_00000000_00000017_00000000 ; +LOCAL IUH L13_2347if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2347if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2347if_f = (IHPE)L13_2347if_f ; +GLOBAL IUH S_2368_UnchainedDwordWrite_00000000_00000018_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2368_UnchainedDwordWrite_00000000_00000018_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2368_UnchainedDwordWrite_00000000_00000018_00000000 = (IHPE)S_2368_UnchainedDwordWrite_00000000_00000018_00000000 ; +LOCAL IUH L13_2348if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2348if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2348if_f = (IHPE)L13_2348if_f ; +GLOBAL IUH S_2369_UnchainedDwordWrite_00000000_00000019_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2369_UnchainedDwordWrite_00000000_00000019_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2369_UnchainedDwordWrite_00000000_00000019_00000000 = (IHPE)S_2369_UnchainedDwordWrite_00000000_00000019_00000000 ; +LOCAL IUH L13_2349if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2349if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2349if_f = (IHPE)L13_2349if_f ; +GLOBAL IUH S_2370_UnchainedDwordWrite_00000000_0000001e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2370_UnchainedDwordWrite_00000000_0000001e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2370_UnchainedDwordWrite_00000000_0000001e_00000000 = (IHPE)S_2370_UnchainedDwordWrite_00000000_0000001e_00000000 ; +LOCAL IUH L13_2350if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2350if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2350if_f = (IHPE)L13_2350if_f ; +GLOBAL IUH S_2371_UnchainedDwordWrite_00000000_0000001f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2371_UnchainedDwordWrite_00000000_0000001f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2371_UnchainedDwordWrite_00000000_0000001f_00000000 = (IHPE)S_2371_UnchainedDwordWrite_00000000_0000001f_00000000 ; +LOCAL IUH L13_2351if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2351if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2351if_f = (IHPE)L13_2351if_f ; +GLOBAL IUH S_2372_UnchainedDwordFill_00000000_00000008_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2372_UnchainedDwordFill_00000000_00000008_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2372_UnchainedDwordFill_00000000_00000008_00000000 = (IHPE)S_2372_UnchainedDwordFill_00000000_00000008_00000000 ; +LOCAL IUH L13_2352if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2352if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2352if_f = (IHPE)L13_2352if_f ; +GLOBAL IUH S_2373_UnchainedDwordFill_00000000_00000009_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2373_UnchainedDwordFill_00000000_00000009_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2373_UnchainedDwordFill_00000000_00000009_00000000 = (IHPE)S_2373_UnchainedDwordFill_00000000_00000009_00000000 ; +LOCAL IUH L13_2353if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2353if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2353if_f = (IHPE)L13_2353if_f ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + case S_2342_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000000_id : + S_2342_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2342) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2322if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2322if_f_id : + L13_2322if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_260if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_263w_d; + case L23_262w_t_id : + L23_262w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_262w_t; + case L23_263w_d_id : + L23_263w_d: ; + { extern IUH L23_261if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_261if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_260if_f_id : + L23_260if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_265w_d; + case L23_264w_t_id : + L23_264w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_264w_t; + case L23_265w_d_id : + L23_265w_d: ; + case L23_261if_d_id : + L23_261if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2343_UnchainedWordMove_00000000_00000011_00000000_00000000_id : + S_2343_UnchainedWordMove_00000000_00000011_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2343) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2323if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2323if_f_id : + L13_2323if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_170if_f; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2344_CopyWord4PlaneUnchained_00000000_00000011_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2344_CopyWord4PlaneUnchained_00000000_00000011_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + { extern IUH L28_171if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_171if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_170if_f_id : + L28_170if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2344_CopyWord4PlaneUnchained_00000000_00000011_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2344_CopyWord4PlaneUnchained_00000000_00000011_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + case L28_171if_d_id : + L28_171if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2344_CopyWord4PlaneUnchained_00000000_00000011_00000000_00000000_id : + S_2344_CopyWord4PlaneUnchained_00000000_00000011_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2344) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2324if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2324if_f_id : + L13_2324if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_266if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_269w_d; + case L23_268w_t_id : + L23_268w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_268w_t; + case L23_269w_d_id : + L23_269w_d: ; + { extern IUH L23_267if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_267if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_266if_f_id : + L23_266if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_271w_d; + case L23_270w_t_id : + L23_270w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_270w_t; + case L23_271w_d_id : + L23_271w_d: ; + case L23_267if_d_id : + L23_267if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2345_UnchainedWordMove_00000000_00000016_00000000_00000000_id : + S_2345_UnchainedWordMove_00000000_00000016_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2345) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2325if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2325if_f_id : + L13_2325if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_172if_f; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2346_CopyWordPlnByPlnUnchained_00000000_00000016_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2346_CopyWordPlnByPlnUnchained_00000000_00000016_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + { extern IUH L28_173if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_173if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_172if_f_id : + L28_172if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2346_CopyWordPlnByPlnUnchained_00000000_00000016_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2346_CopyWordPlnByPlnUnchained_00000000_00000016_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + case L28_173if_d_id : + L28_173if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2346_CopyWordPlnByPlnUnchained_00000000_00000016_00000000_00000000_id : + S_2346_CopyWordPlnByPlnUnchained_00000000_00000016_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2346) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2326if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2326if_f_id : + L13_2326if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_272if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2347_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2347_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_272if_f_id : + L23_272if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_273if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2347_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2347_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_273if_f_id : + L23_273if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_274if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2347_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2347_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_274if_f_id : + L23_274if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_275if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2347_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2347_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_275if_f_id : + L23_275if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2347_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000000_id : + S_2347_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2347) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2327if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2327if_f_id : + L13_2327if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_276if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_279w_d; + case L23_278w_t_id : + L23_278w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_278w_t; + case L23_279w_d_id : + L23_279w_d: ; + { extern IUH L23_277if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_277if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_276if_f_id : + L23_276if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_281w_d; + case L23_280w_t_id : + L23_280w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) ^ *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) ^ *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_280w_t; + case L23_281w_d_id : + L23_281w_d: ; + case L23_277if_d_id : + L23_277if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2348_UnchainedWordMove_00000000_00000017_00000000_00000000_id : + S_2348_UnchainedWordMove_00000000_00000017_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2348) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2328if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2328if_f_id : + L13_2328if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_174if_f; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2349_CopyWord4PlaneUnchained_00000000_00000017_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2349_CopyWord4PlaneUnchained_00000000_00000017_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + { extern IUH L28_175if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_175if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_174if_f_id : + L28_174if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2349_CopyWord4PlaneUnchained_00000000_00000017_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2349_CopyWord4PlaneUnchained_00000000_00000017_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + case L28_175if_d_id : + L28_175if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2349_CopyWord4PlaneUnchained_00000000_00000017_00000000_00000000_id : + S_2349_CopyWord4PlaneUnchained_00000000_00000017_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2349) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2329if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2329if_f_id : + L13_2329if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_282if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_285w_d; + case L23_284w_t_id : + L23_284w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_284w_t; + case L23_285w_d_id : + L23_285w_d: ; + { extern IUH L23_283if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_283if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_282if_f_id : + L23_282if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_287w_d; + case L23_286w_t_id : + L23_286w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) ^ *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) ^ *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_286w_t; + case L23_287w_d_id : + L23_287w_d: ; + case L23_283if_d_id : + L23_283if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2350_UnchainedWordMove_00000000_00000018_00000000_00000000_id : + S_2350_UnchainedWordMove_00000000_00000018_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2350) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2330if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2330if_f_id : + L13_2330if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_176if_f; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2351_CopyWordPlnByPlnUnchained_00000000_00000018_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2351_CopyWordPlnByPlnUnchained_00000000_00000018_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + { extern IUH L28_177if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_177if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_176if_f_id : + L28_176if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2351_CopyWordPlnByPlnUnchained_00000000_00000018_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2351_CopyWordPlnByPlnUnchained_00000000_00000018_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + case L28_177if_d_id : + L28_177if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2351_CopyWordPlnByPlnUnchained_00000000_00000018_00000000_00000000_id : + S_2351_CopyWordPlnByPlnUnchained_00000000_00000018_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2351) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2331if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2331if_f_id : + L13_2331if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_288if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2352_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2352_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_288if_f_id : + L23_288if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_289if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2352_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2352_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_289if_f_id : + L23_289if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_290if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2352_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2352_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_290if_f_id : + L23_290if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_291if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2352_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2352_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_291if_f_id : + L23_291if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2352_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000000_id : + S_2352_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2352) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2332if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2332if_f_id : + L13_2332if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_292if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_295w_d; + case L23_294w_t_id : + L23_294w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_294w_t; + case L23_295w_d_id : + L23_295w_d: ; + { extern IUH L23_293if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_293if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_292if_f_id : + L23_292if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_297w_d; + case L23_296w_t_id : + L23_296w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_296w_t; + case L23_297w_d_id : + L23_297w_d: ; + case L23_293if_d_id : + L23_293if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2353_UnchainedWordMove_00000000_00000019_00000000_00000000_id : + S_2353_UnchainedWordMove_00000000_00000019_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2353) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2333if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2333if_f_id : + L13_2333if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_178if_f; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2354_CopyWord4PlaneUnchained_00000000_00000019_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2354_CopyWord4PlaneUnchained_00000000_00000019_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + { extern IUH L28_179if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_179if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_178if_f_id : + L28_178if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2354_CopyWord4PlaneUnchained_00000000_00000019_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2354_CopyWord4PlaneUnchained_00000000_00000019_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + case L28_179if_d_id : + L28_179if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2354_CopyWord4PlaneUnchained_00000000_00000019_00000000_00000000_id : + S_2354_CopyWord4PlaneUnchained_00000000_00000019_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2354) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2334if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2334if_f_id : + L13_2334if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_298if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_301w_d; + case L23_300w_t_id : + L23_300w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_300w_t; + case L23_301w_d_id : + L23_301w_d: ; + { extern IUH L23_299if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_299if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_298if_f_id : + L23_298if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_303w_d; + case L23_302w_t_id : + L23_302w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_302w_t; + case L23_303w_d_id : + L23_303w_d: ; + case L23_299if_d_id : + L23_299if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2355_UnchainedWordMove_00000000_0000001e_00000000_00000000_id : + S_2355_UnchainedWordMove_00000000_0000001e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2355) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2335if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2335if_f_id : + L13_2335if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_180if_f; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2356_CopyWordPlnByPlnUnchained_00000000_0000001e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2356_CopyWordPlnByPlnUnchained_00000000_0000001e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + { extern IUH L28_181if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_181if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_180if_f_id : + L28_180if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2356_CopyWordPlnByPlnUnchained_00000000_0000001e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2356_CopyWordPlnByPlnUnchained_00000000_0000001e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + case L28_181if_d_id : + L28_181if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2356_CopyWordPlnByPlnUnchained_00000000_0000001e_00000000_00000000_id : + S_2356_CopyWordPlnByPlnUnchained_00000000_0000001e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2356) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2336if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2336if_f_id : + L13_2336if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_304if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2357_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2357_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_304if_f_id : + L23_304if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_305if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2357_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2357_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_305if_f_id : + L23_305if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_306if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2357_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2357_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_306if_f_id : + L23_306if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_307if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2357_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2357_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_307if_f_id : + L23_307if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2357_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000000_id : + S_2357_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2357) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2337if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2337if_f_id : + L13_2337if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_308if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_311w_d; + case L23_310w_t_id : + L23_310w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_310w_t; + case L23_311w_d_id : + L23_311w_d: ; + { extern IUH L23_309if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_309if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_308if_f_id : + L23_308if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_313w_d; + case L23_312w_t_id : + L23_312w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_312w_t; + case L23_313w_d_id : + L23_313w_d: ; + case L23_309if_d_id : + L23_309if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2358_UnchainedWordMove_00000000_0000001f_00000000_00000000_id : + S_2358_UnchainedWordMove_00000000_0000001f_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2358) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2338if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2338if_f_id : + L13_2338if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_182if_f; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2359_CopyWord4PlaneUnchained_00000000_0000001f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2359_CopyWord4PlaneUnchained_00000000_0000001f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + { extern IUH L28_183if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_183if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_182if_f_id : + L28_182if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2359_CopyWord4PlaneUnchained_00000000_0000001f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2359_CopyWord4PlaneUnchained_00000000_0000001f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + case L28_183if_d_id : + L28_183if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2359_CopyWord4PlaneUnchained_00000000_0000001f_00000000_00000000_id : + S_2359_CopyWord4PlaneUnchained_00000000_0000001f_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2359) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2339if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2339if_f_id : + L13_2339if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_314if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_317w_d; + case L23_316w_t_id : + L23_316w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_316w_t; + case L23_317w_d_id : + L23_317w_d: ; + { extern IUH L23_315if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_315if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_314if_f_id : + L23_314if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_319w_d; + case L23_318w_t_id : + L23_318w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_318w_t; + case L23_319w_d_id : + L23_319w_d: ; + case L23_315if_d_id : + L23_315if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2360_UnchainedDwordWrite_00000000_00000008_00000000_id : + S_2360_UnchainedDwordWrite_00000000_00000008_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2360) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2340if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2340if_f_id : + L13_2340if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2305_UnchainedWordWrite_00000000_00000008_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2305_UnchainedWordWrite_00000000_00000008_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2305_UnchainedWordWrite_00000000_00000008_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2305_UnchainedWordWrite_00000000_00000008_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2361_UnchainedDwordWrite_00000000_00000009_00000000_id : + S_2361_UnchainedDwordWrite_00000000_00000009_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2361) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2341if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2341if_f_id : + L13_2341if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2306_UnchainedWordWrite_00000000_00000009_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2306_UnchainedWordWrite_00000000_00000009_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2306_UnchainedWordWrite_00000000_00000009_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2306_UnchainedWordWrite_00000000_00000009_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2362_UnchainedDwordWrite_00000000_0000000e_00000000_id : + S_2362_UnchainedDwordWrite_00000000_0000000e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2362) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2342if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2342if_f_id : + L13_2342if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2307_UnchainedWordWrite_00000000_0000000e_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2307_UnchainedWordWrite_00000000_0000000e_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2307_UnchainedWordWrite_00000000_0000000e_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2307_UnchainedWordWrite_00000000_0000000e_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2363_UnchainedDwordWrite_00000000_0000000f_00000000_id : + S_2363_UnchainedDwordWrite_00000000_0000000f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2363) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2343if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2343if_f_id : + L13_2343if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2308_UnchainedWordWrite_00000000_0000000f_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2308_UnchainedWordWrite_00000000_0000000f_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2308_UnchainedWordWrite_00000000_0000000f_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2308_UnchainedWordWrite_00000000_0000000f_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2364_UnchainedDwordWrite_00000000_00000010_00000000_id : + S_2364_UnchainedDwordWrite_00000000_00000010_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2364) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2344if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2344if_f_id : + L13_2344if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2309_UnchainedWordWrite_00000000_00000010_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2309_UnchainedWordWrite_00000000_00000010_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2309_UnchainedWordWrite_00000000_00000010_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2309_UnchainedWordWrite_00000000_00000010_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2365_UnchainedDwordWrite_00000000_00000011_00000000_id : + S_2365_UnchainedDwordWrite_00000000_00000011_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2365) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2345if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2345if_f_id : + L13_2345if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2310_UnchainedWordWrite_00000000_00000011_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2310_UnchainedWordWrite_00000000_00000011_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2310_UnchainedWordWrite_00000000_00000011_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2310_UnchainedWordWrite_00000000_00000011_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2366_UnchainedDwordWrite_00000000_00000016_00000000_id : + S_2366_UnchainedDwordWrite_00000000_00000016_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2366) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2346if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2346if_f_id : + L13_2346if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2311_UnchainedWordWrite_00000000_00000016_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2311_UnchainedWordWrite_00000000_00000016_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2311_UnchainedWordWrite_00000000_00000016_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2311_UnchainedWordWrite_00000000_00000016_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2367_UnchainedDwordWrite_00000000_00000017_00000000_id : + S_2367_UnchainedDwordWrite_00000000_00000017_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2367) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2347if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2347if_f_id : + L13_2347if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2312_UnchainedWordWrite_00000000_00000017_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2312_UnchainedWordWrite_00000000_00000017_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2312_UnchainedWordWrite_00000000_00000017_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2312_UnchainedWordWrite_00000000_00000017_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2368_UnchainedDwordWrite_00000000_00000018_00000000_id : + S_2368_UnchainedDwordWrite_00000000_00000018_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2368) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2348if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2348if_f_id : + L13_2348if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2313_UnchainedWordWrite_00000000_00000018_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2313_UnchainedWordWrite_00000000_00000018_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2313_UnchainedWordWrite_00000000_00000018_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2313_UnchainedWordWrite_00000000_00000018_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2369_UnchainedDwordWrite_00000000_00000019_00000000_id : + S_2369_UnchainedDwordWrite_00000000_00000019_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2369) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2349if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2349if_f_id : + L13_2349if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2314_UnchainedWordWrite_00000000_00000019_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2314_UnchainedWordWrite_00000000_00000019_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2314_UnchainedWordWrite_00000000_00000019_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2314_UnchainedWordWrite_00000000_00000019_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2370_UnchainedDwordWrite_00000000_0000001e_00000000_id : + S_2370_UnchainedDwordWrite_00000000_0000001e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2370) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2350if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2350if_f_id : + L13_2350if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2315_UnchainedWordWrite_00000000_0000001e_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2315_UnchainedWordWrite_00000000_0000001e_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2315_UnchainedWordWrite_00000000_0000001e_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2315_UnchainedWordWrite_00000000_0000001e_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2371_UnchainedDwordWrite_00000000_0000001f_00000000_id : + S_2371_UnchainedDwordWrite_00000000_0000001f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2371) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2351if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2351if_f_id : + L13_2351if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2316_UnchainedWordWrite_00000000_0000001f_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2316_UnchainedWordWrite_00000000_0000001f_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2316_UnchainedWordWrite_00000000_0000001f_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2316_UnchainedWordWrite_00000000_0000001f_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2372_UnchainedDwordFill_00000000_00000008_00000000_id : + S_2372_UnchainedDwordFill_00000000_00000008_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2372) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2352if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2352if_f_id : + L13_2352if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2317_UnchainedWordFill_00000000_00000008_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2317_UnchainedWordFill_00000000_00000008_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2317_UnchainedWordFill_00000000_00000008_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2317_UnchainedWordFill_00000000_00000008_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2373_UnchainedDwordFill_00000000_00000009_00000000_id : + S_2373_UnchainedDwordFill_00000000_00000009_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2373) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2353if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2353if_f_id : + L13_2353if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2318_UnchainedWordFill_00000000_00000009_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2318_UnchainedWordFill_00000000_00000009_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2318_UnchainedWordFill_00000000_00000009_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2318_UnchainedWordFill_00000000_00000009_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid009.c b/private/mvdm/softpc.new/base/cvidc/sevid009.c new file mode 100644 index 000000000..ca3f40e30 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid009.c @@ -0,0 +1,2827 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_2374_UnchainedDwordFill_00000000_0000000e_00000000_id, +L13_2354if_f_id, +S_2375_UnchainedDwordFill_00000000_0000000f_00000000_id, +L13_2355if_f_id, +S_2376_UnchainedDwordFill_00000000_00000010_00000000_id, +L13_2356if_f_id, +S_2377_UnchainedDwordFill_00000000_00000011_00000000_id, +L13_2357if_f_id, +S_2378_UnchainedDwordFill_00000000_00000016_00000000_id, +L13_2358if_f_id, +S_2379_UnchainedDwordFill_00000000_00000017_00000000_id, +L13_2359if_f_id, +S_2380_UnchainedDwordFill_00000000_00000018_00000000_id, +L13_2360if_f_id, +S_2381_UnchainedDwordFill_00000000_00000019_00000000_id, +L13_2361if_f_id, +S_2382_UnchainedDwordFill_00000000_0000001e_00000000_id, +L13_2362if_f_id, +S_2383_UnchainedDwordFill_00000000_0000001f_00000000_id, +L13_2363if_f_id, +S_2384_UnchainedDwordMove_00000000_00000008_00000000_00000000_id, +L13_2364if_f_id, +S_2385_UnchainedDwordMove_00000000_00000009_00000000_00000000_id, +L13_2365if_f_id, +S_2386_UnchainedDwordMove_00000000_0000000e_00000000_00000000_id, +L13_2366if_f_id, +S_2387_UnchainedDwordMove_00000000_0000000f_00000000_00000000_id, +L13_2367if_f_id, +S_2388_UnchainedDwordMove_00000000_00000010_00000000_00000000_id, +L13_2368if_f_id, +S_2389_UnchainedDwordMove_00000000_00000011_00000000_00000000_id, +L13_2369if_f_id, +S_2390_UnchainedDwordMove_00000000_00000016_00000000_00000000_id, +L13_2370if_f_id, +S_2391_UnchainedDwordMove_00000000_00000017_00000000_00000000_id, +L13_2371if_f_id, +S_2392_UnchainedDwordMove_00000000_00000018_00000000_00000000_id, +L13_2372if_f_id, +S_2393_UnchainedDwordMove_00000000_00000019_00000000_00000000_id, +L13_2373if_f_id, +S_2394_UnchainedDwordMove_00000000_0000001e_00000000_00000000_id, +L13_2374if_f_id, +S_2395_UnchainedDwordMove_00000000_0000001f_00000000_00000000_id, +L13_2375if_f_id, +S_2396_UnchainedByteWrite_00000001_00000000_00000000_id, +L13_2376if_f_id, +S_2397_UnchainedByteFill_00000001_00000000_00000000_id, +L13_2377if_f_id, +L28_184if_f_id, +L28_185if_f_id, +L28_186if_f_id, +L28_187if_f_id, +S_2398_UnchainedByteMove_00000001_00000000_00000000_00000000_id, +L13_2378if_f_id, +L28_188if_f_id, +L28_190if_f_id, +L28_191if_f_id, +L28_192if_f_id, +L28_193if_f_id, +L28_189if_d_id, +S_2399_UnchainedWordWrite_00000001_00000000_00000000_id, +L13_2379if_f_id, +S_2400_UnchainedWordFill_00000001_00000000_00000000_id, +L13_2380if_f_id, +L28_194if_f_id, +L28_195if_f_id, +L28_196if_f_id, +L28_197if_f_id, +S_2401_UnchainedWordMove_00000001_00000000_00000000_00000000_id, +L13_2381if_f_id, +L28_198if_f_id, +L28_200if_f_id, +L28_201if_f_id, +L28_202if_f_id, +L28_203if_f_id, +L28_199if_d_id, +S_2402_UnchainedDwordWrite_00000001_00000000_00000000_id, +L13_2382if_f_id, +S_2403_UnchainedDwordFill_00000001_00000000_00000000_id, +L13_2383if_f_id, +S_2404_UnchainedDwordMove_00000001_00000000_00000000_00000000_id, +L13_2384if_f_id, +S_2405_UnchainedByteWrite_00000002_00000008_00000000_id, +L13_2385if_f_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_2374_UnchainedDwordFill_00000000_0000000e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2374_UnchainedDwordFill_00000000_0000000e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2374_UnchainedDwordFill_00000000_0000000e_00000000 = (IHPE)S_2374_UnchainedDwordFill_00000000_0000000e_00000000 ; +LOCAL IUH L13_2354if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2354if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2354if_f = (IHPE)L13_2354if_f ; +GLOBAL IUH S_2375_UnchainedDwordFill_00000000_0000000f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2375_UnchainedDwordFill_00000000_0000000f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2375_UnchainedDwordFill_00000000_0000000f_00000000 = (IHPE)S_2375_UnchainedDwordFill_00000000_0000000f_00000000 ; +LOCAL IUH L13_2355if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2355if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2355if_f = (IHPE)L13_2355if_f ; +GLOBAL IUH S_2376_UnchainedDwordFill_00000000_00000010_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2376_UnchainedDwordFill_00000000_00000010_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2376_UnchainedDwordFill_00000000_00000010_00000000 = (IHPE)S_2376_UnchainedDwordFill_00000000_00000010_00000000 ; +LOCAL IUH L13_2356if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2356if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2356if_f = (IHPE)L13_2356if_f ; +GLOBAL IUH S_2377_UnchainedDwordFill_00000000_00000011_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2377_UnchainedDwordFill_00000000_00000011_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2377_UnchainedDwordFill_00000000_00000011_00000000 = (IHPE)S_2377_UnchainedDwordFill_00000000_00000011_00000000 ; +LOCAL IUH L13_2357if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2357if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2357if_f = (IHPE)L13_2357if_f ; +GLOBAL IUH S_2378_UnchainedDwordFill_00000000_00000016_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2378_UnchainedDwordFill_00000000_00000016_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2378_UnchainedDwordFill_00000000_00000016_00000000 = (IHPE)S_2378_UnchainedDwordFill_00000000_00000016_00000000 ; +LOCAL IUH L13_2358if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2358if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2358if_f = (IHPE)L13_2358if_f ; +GLOBAL IUH S_2379_UnchainedDwordFill_00000000_00000017_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2379_UnchainedDwordFill_00000000_00000017_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2379_UnchainedDwordFill_00000000_00000017_00000000 = (IHPE)S_2379_UnchainedDwordFill_00000000_00000017_00000000 ; +LOCAL IUH L13_2359if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2359if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2359if_f = (IHPE)L13_2359if_f ; +GLOBAL IUH S_2380_UnchainedDwordFill_00000000_00000018_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2380_UnchainedDwordFill_00000000_00000018_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2380_UnchainedDwordFill_00000000_00000018_00000000 = (IHPE)S_2380_UnchainedDwordFill_00000000_00000018_00000000 ; +LOCAL IUH L13_2360if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2360if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2360if_f = (IHPE)L13_2360if_f ; +GLOBAL IUH S_2381_UnchainedDwordFill_00000000_00000019_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2381_UnchainedDwordFill_00000000_00000019_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2381_UnchainedDwordFill_00000000_00000019_00000000 = (IHPE)S_2381_UnchainedDwordFill_00000000_00000019_00000000 ; +LOCAL IUH L13_2361if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2361if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2361if_f = (IHPE)L13_2361if_f ; +GLOBAL IUH S_2382_UnchainedDwordFill_00000000_0000001e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2382_UnchainedDwordFill_00000000_0000001e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2382_UnchainedDwordFill_00000000_0000001e_00000000 = (IHPE)S_2382_UnchainedDwordFill_00000000_0000001e_00000000 ; +LOCAL IUH L13_2362if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2362if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2362if_f = (IHPE)L13_2362if_f ; +GLOBAL IUH S_2383_UnchainedDwordFill_00000000_0000001f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2383_UnchainedDwordFill_00000000_0000001f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2383_UnchainedDwordFill_00000000_0000001f_00000000 = (IHPE)S_2383_UnchainedDwordFill_00000000_0000001f_00000000 ; +LOCAL IUH L13_2363if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2363if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2363if_f = (IHPE)L13_2363if_f ; +GLOBAL IUH S_2384_UnchainedDwordMove_00000000_00000008_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2384_UnchainedDwordMove_00000000_00000008_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2384_UnchainedDwordMove_00000000_00000008_00000000_00000000 = (IHPE)S_2384_UnchainedDwordMove_00000000_00000008_00000000_00000000 ; +LOCAL IUH L13_2364if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2364if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2364if_f = (IHPE)L13_2364if_f ; +GLOBAL IUH S_2385_UnchainedDwordMove_00000000_00000009_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2385_UnchainedDwordMove_00000000_00000009_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2385_UnchainedDwordMove_00000000_00000009_00000000_00000000 = (IHPE)S_2385_UnchainedDwordMove_00000000_00000009_00000000_00000000 ; +LOCAL IUH L13_2365if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2365if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2365if_f = (IHPE)L13_2365if_f ; +GLOBAL IUH S_2386_UnchainedDwordMove_00000000_0000000e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2386_UnchainedDwordMove_00000000_0000000e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2386_UnchainedDwordMove_00000000_0000000e_00000000_00000000 = (IHPE)S_2386_UnchainedDwordMove_00000000_0000000e_00000000_00000000 ; +LOCAL IUH L13_2366if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2366if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2366if_f = (IHPE)L13_2366if_f ; +GLOBAL IUH S_2387_UnchainedDwordMove_00000000_0000000f_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2387_UnchainedDwordMove_00000000_0000000f_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2387_UnchainedDwordMove_00000000_0000000f_00000000_00000000 = (IHPE)S_2387_UnchainedDwordMove_00000000_0000000f_00000000_00000000 ; +LOCAL IUH L13_2367if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2367if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2367if_f = (IHPE)L13_2367if_f ; +GLOBAL IUH S_2388_UnchainedDwordMove_00000000_00000010_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2388_UnchainedDwordMove_00000000_00000010_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2388_UnchainedDwordMove_00000000_00000010_00000000_00000000 = (IHPE)S_2388_UnchainedDwordMove_00000000_00000010_00000000_00000000 ; +LOCAL IUH L13_2368if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2368if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2368if_f = (IHPE)L13_2368if_f ; +GLOBAL IUH S_2389_UnchainedDwordMove_00000000_00000011_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2389_UnchainedDwordMove_00000000_00000011_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2389_UnchainedDwordMove_00000000_00000011_00000000_00000000 = (IHPE)S_2389_UnchainedDwordMove_00000000_00000011_00000000_00000000 ; +LOCAL IUH L13_2369if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2369if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2369if_f = (IHPE)L13_2369if_f ; +GLOBAL IUH S_2390_UnchainedDwordMove_00000000_00000016_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2390_UnchainedDwordMove_00000000_00000016_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2390_UnchainedDwordMove_00000000_00000016_00000000_00000000 = (IHPE)S_2390_UnchainedDwordMove_00000000_00000016_00000000_00000000 ; +LOCAL IUH L13_2370if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2370if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2370if_f = (IHPE)L13_2370if_f ; +GLOBAL IUH S_2391_UnchainedDwordMove_00000000_00000017_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2391_UnchainedDwordMove_00000000_00000017_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2391_UnchainedDwordMove_00000000_00000017_00000000_00000000 = (IHPE)S_2391_UnchainedDwordMove_00000000_00000017_00000000_00000000 ; +LOCAL IUH L13_2371if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2371if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2371if_f = (IHPE)L13_2371if_f ; +GLOBAL IUH S_2392_UnchainedDwordMove_00000000_00000018_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2392_UnchainedDwordMove_00000000_00000018_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2392_UnchainedDwordMove_00000000_00000018_00000000_00000000 = (IHPE)S_2392_UnchainedDwordMove_00000000_00000018_00000000_00000000 ; +LOCAL IUH L13_2372if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2372if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2372if_f = (IHPE)L13_2372if_f ; +GLOBAL IUH S_2393_UnchainedDwordMove_00000000_00000019_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2393_UnchainedDwordMove_00000000_00000019_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2393_UnchainedDwordMove_00000000_00000019_00000000_00000000 = (IHPE)S_2393_UnchainedDwordMove_00000000_00000019_00000000_00000000 ; +LOCAL IUH L13_2373if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2373if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2373if_f = (IHPE)L13_2373if_f ; +GLOBAL IUH S_2394_UnchainedDwordMove_00000000_0000001e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2394_UnchainedDwordMove_00000000_0000001e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2394_UnchainedDwordMove_00000000_0000001e_00000000_00000000 = (IHPE)S_2394_UnchainedDwordMove_00000000_0000001e_00000000_00000000 ; +LOCAL IUH L13_2374if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2374if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2374if_f = (IHPE)L13_2374if_f ; +GLOBAL IUH S_2395_UnchainedDwordMove_00000000_0000001f_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2395_UnchainedDwordMove_00000000_0000001f_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2395_UnchainedDwordMove_00000000_0000001f_00000000_00000000 = (IHPE)S_2395_UnchainedDwordMove_00000000_0000001f_00000000_00000000 ; +LOCAL IUH L13_2375if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2375if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2375if_f = (IHPE)L13_2375if_f ; +GLOBAL IUH S_2396_UnchainedByteWrite_00000001_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2396_UnchainedByteWrite_00000001_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2396_UnchainedByteWrite_00000001_00000000_00000000 = (IHPE)S_2396_UnchainedByteWrite_00000001_00000000_00000000 ; +LOCAL IUH L13_2376if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2376if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2376if_f = (IHPE)L13_2376if_f ; +GLOBAL IUH S_2397_UnchainedByteFill_00000001_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2397_UnchainedByteFill_00000001_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2397_UnchainedByteFill_00000001_00000000_00000000 = (IHPE)S_2397_UnchainedByteFill_00000001_00000000_00000000 ; +LOCAL IUH L13_2377if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2377if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2377if_f = (IHPE)L13_2377if_f ; +LOCAL IUH L28_184if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_184if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_184if_f = (IHPE)L28_184if_f ; +LOCAL IUH L28_185if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_185if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_185if_f = (IHPE)L28_185if_f ; +LOCAL IUH L28_186if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_186if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_186if_f = (IHPE)L28_186if_f ; +LOCAL IUH L28_187if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_187if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_187if_f = (IHPE)L28_187if_f ; +GLOBAL IUH S_2398_UnchainedByteMove_00000001_00000000_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2398_UnchainedByteMove_00000001_00000000_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2398_UnchainedByteMove_00000001_00000000_00000000_00000000 = (IHPE)S_2398_UnchainedByteMove_00000001_00000000_00000000_00000000 ; +LOCAL IUH L13_2378if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2378if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2378if_f = (IHPE)L13_2378if_f ; +LOCAL IUH L28_188if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_188if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_188if_f = (IHPE)L28_188if_f ; +LOCAL IUH L28_190if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_190if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_190if_f = (IHPE)L28_190if_f ; +LOCAL IUH L28_191if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_191if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_191if_f = (IHPE)L28_191if_f ; +LOCAL IUH L28_192if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_192if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_192if_f = (IHPE)L28_192if_f ; +LOCAL IUH L28_193if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_193if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_193if_f = (IHPE)L28_193if_f ; +LOCAL IUH L28_189if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_189if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_189if_d = (IHPE)L28_189if_d ; +GLOBAL IUH S_2399_UnchainedWordWrite_00000001_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2399_UnchainedWordWrite_00000001_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2399_UnchainedWordWrite_00000001_00000000_00000000 = (IHPE)S_2399_UnchainedWordWrite_00000001_00000000_00000000 ; +LOCAL IUH L13_2379if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2379if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2379if_f = (IHPE)L13_2379if_f ; +GLOBAL IUH S_2400_UnchainedWordFill_00000001_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2400_UnchainedWordFill_00000001_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2400_UnchainedWordFill_00000001_00000000_00000000 = (IHPE)S_2400_UnchainedWordFill_00000001_00000000_00000000 ; +LOCAL IUH L13_2380if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2380if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2380if_f = (IHPE)L13_2380if_f ; +LOCAL IUH L28_194if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_194if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_194if_f = (IHPE)L28_194if_f ; +LOCAL IUH L28_195if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_195if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_195if_f = (IHPE)L28_195if_f ; +LOCAL IUH L28_196if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_196if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_196if_f = (IHPE)L28_196if_f ; +LOCAL IUH L28_197if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_197if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_197if_f = (IHPE)L28_197if_f ; +GLOBAL IUH S_2401_UnchainedWordMove_00000001_00000000_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2401_UnchainedWordMove_00000001_00000000_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2401_UnchainedWordMove_00000001_00000000_00000000_00000000 = (IHPE)S_2401_UnchainedWordMove_00000001_00000000_00000000_00000000 ; +LOCAL IUH L13_2381if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2381if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2381if_f = (IHPE)L13_2381if_f ; +LOCAL IUH L28_198if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_198if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_198if_f = (IHPE)L28_198if_f ; +LOCAL IUH L28_200if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_200if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_200if_f = (IHPE)L28_200if_f ; +LOCAL IUH L28_201if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_201if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_201if_f = (IHPE)L28_201if_f ; +LOCAL IUH L28_202if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_202if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_202if_f = (IHPE)L28_202if_f ; +LOCAL IUH L28_203if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_203if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_203if_f = (IHPE)L28_203if_f ; +LOCAL IUH L28_199if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_199if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_199if_d = (IHPE)L28_199if_d ; +GLOBAL IUH S_2402_UnchainedDwordWrite_00000001_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2402_UnchainedDwordWrite_00000001_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2402_UnchainedDwordWrite_00000001_00000000_00000000 = (IHPE)S_2402_UnchainedDwordWrite_00000001_00000000_00000000 ; +LOCAL IUH L13_2382if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2382if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2382if_f = (IHPE)L13_2382if_f ; +GLOBAL IUH S_2403_UnchainedDwordFill_00000001_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2403_UnchainedDwordFill_00000001_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2403_UnchainedDwordFill_00000001_00000000_00000000 = (IHPE)S_2403_UnchainedDwordFill_00000001_00000000_00000000 ; +LOCAL IUH L13_2383if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2383if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2383if_f = (IHPE)L13_2383if_f ; +GLOBAL IUH S_2404_UnchainedDwordMove_00000001_00000000_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2404_UnchainedDwordMove_00000001_00000000_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2404_UnchainedDwordMove_00000001_00000000_00000000_00000000 = (IHPE)S_2404_UnchainedDwordMove_00000001_00000000_00000000_00000000 ; +LOCAL IUH L13_2384if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2384if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2384if_f = (IHPE)L13_2384if_f ; +GLOBAL IUH S_2405_UnchainedByteWrite_00000002_00000008_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2405_UnchainedByteWrite_00000002_00000008_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2405_UnchainedByteWrite_00000002_00000008_00000000 = (IHPE)S_2405_UnchainedByteWrite_00000002_00000008_00000000 ; +LOCAL IUH L13_2385if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2385if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2385if_f = (IHPE)L13_2385if_f ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2374_UnchainedDwordFill_00000000_0000000e_00000000_id : + S_2374_UnchainedDwordFill_00000000_0000000e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2374) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2354if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2354if_f_id : + L13_2354if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2320_UnchainedWordFill_00000000_0000000e_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2320_UnchainedWordFill_00000000_0000000e_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2320_UnchainedWordFill_00000000_0000000e_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2320_UnchainedWordFill_00000000_0000000e_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2375_UnchainedDwordFill_00000000_0000000f_00000000_id : + S_2375_UnchainedDwordFill_00000000_0000000f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2375) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2355if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2355if_f_id : + L13_2355if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2321_UnchainedWordFill_00000000_0000000f_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2321_UnchainedWordFill_00000000_0000000f_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2321_UnchainedWordFill_00000000_0000000f_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2321_UnchainedWordFill_00000000_0000000f_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2376_UnchainedDwordFill_00000000_00000010_00000000_id : + S_2376_UnchainedDwordFill_00000000_00000010_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2376) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2356if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2356if_f_id : + L13_2356if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2322_UnchainedWordFill_00000000_00000010_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2322_UnchainedWordFill_00000000_00000010_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2322_UnchainedWordFill_00000000_00000010_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2322_UnchainedWordFill_00000000_00000010_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2377_UnchainedDwordFill_00000000_00000011_00000000_id : + S_2377_UnchainedDwordFill_00000000_00000011_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2377) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2357if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2357if_f_id : + L13_2357if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2323_UnchainedWordFill_00000000_00000011_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2323_UnchainedWordFill_00000000_00000011_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2323_UnchainedWordFill_00000000_00000011_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2323_UnchainedWordFill_00000000_00000011_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2378_UnchainedDwordFill_00000000_00000016_00000000_id : + S_2378_UnchainedDwordFill_00000000_00000016_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2378) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2358if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2358if_f_id : + L13_2358if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2324_UnchainedWordFill_00000000_00000016_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2324_UnchainedWordFill_00000000_00000016_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2324_UnchainedWordFill_00000000_00000016_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2324_UnchainedWordFill_00000000_00000016_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2379_UnchainedDwordFill_00000000_00000017_00000000_id : + S_2379_UnchainedDwordFill_00000000_00000017_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2379) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2359if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2359if_f_id : + L13_2359if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2325_UnchainedWordFill_00000000_00000017_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2325_UnchainedWordFill_00000000_00000017_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2325_UnchainedWordFill_00000000_00000017_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2325_UnchainedWordFill_00000000_00000017_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2380_UnchainedDwordFill_00000000_00000018_00000000_id : + S_2380_UnchainedDwordFill_00000000_00000018_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2380) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2360if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2360if_f_id : + L13_2360if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2326_UnchainedWordFill_00000000_00000018_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2326_UnchainedWordFill_00000000_00000018_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2326_UnchainedWordFill_00000000_00000018_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2326_UnchainedWordFill_00000000_00000018_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2381_UnchainedDwordFill_00000000_00000019_00000000_id : + S_2381_UnchainedDwordFill_00000000_00000019_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2381) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2361if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2361if_f_id : + L13_2361if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2327_UnchainedWordFill_00000000_00000019_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2327_UnchainedWordFill_00000000_00000019_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2327_UnchainedWordFill_00000000_00000019_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2327_UnchainedWordFill_00000000_00000019_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2382_UnchainedDwordFill_00000000_0000001e_00000000_id : + S_2382_UnchainedDwordFill_00000000_0000001e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2382) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2362if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2362if_f_id : + L13_2362if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2328_UnchainedWordFill_00000000_0000001e_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2328_UnchainedWordFill_00000000_0000001e_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2328_UnchainedWordFill_00000000_0000001e_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2328_UnchainedWordFill_00000000_0000001e_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2383_UnchainedDwordFill_00000000_0000001f_00000000_id : + S_2383_UnchainedDwordFill_00000000_0000001f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2383) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2363if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2363if_f_id : + L13_2363if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2329_UnchainedWordFill_00000000_0000001f_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2329_UnchainedWordFill_00000000_0000001f_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2329_UnchainedWordFill_00000000_0000001f_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2329_UnchainedWordFill_00000000_0000001f_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2384_UnchainedDwordMove_00000000_00000008_00000000_00000000_id : + S_2384_UnchainedDwordMove_00000000_00000008_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2384) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2364if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2364if_f_id : + L13_2364if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2330_UnchainedWordMove_00000000_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2330_UnchainedWordMove_00000000_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2385_UnchainedDwordMove_00000000_00000009_00000000_00000000_id : + S_2385_UnchainedDwordMove_00000000_00000009_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2385) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2365if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2365if_f_id : + L13_2365if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2333_UnchainedWordMove_00000000_00000009_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2333_UnchainedWordMove_00000000_00000009_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2386_UnchainedDwordMove_00000000_0000000e_00000000_00000000_id : + S_2386_UnchainedDwordMove_00000000_0000000e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2386) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2366if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2366if_f_id : + L13_2366if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2335_UnchainedWordMove_00000000_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2335_UnchainedWordMove_00000000_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2387_UnchainedDwordMove_00000000_0000000f_00000000_00000000_id : + S_2387_UnchainedDwordMove_00000000_0000000f_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2387) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2367if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2367if_f_id : + L13_2367if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2338_UnchainedWordMove_00000000_0000000f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2338_UnchainedWordMove_00000000_0000000f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2388_UnchainedDwordMove_00000000_00000010_00000000_00000000_id : + S_2388_UnchainedDwordMove_00000000_00000010_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2388) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2368if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2368if_f_id : + L13_2368if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2340_UnchainedWordMove_00000000_00000010_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2340_UnchainedWordMove_00000000_00000010_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2389_UnchainedDwordMove_00000000_00000011_00000000_00000000_id : + S_2389_UnchainedDwordMove_00000000_00000011_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2389) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2369if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2369if_f_id : + L13_2369if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2343_UnchainedWordMove_00000000_00000011_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2343_UnchainedWordMove_00000000_00000011_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2390_UnchainedDwordMove_00000000_00000016_00000000_00000000_id : + S_2390_UnchainedDwordMove_00000000_00000016_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2390) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2370if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2370if_f_id : + L13_2370if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2345_UnchainedWordMove_00000000_00000016_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2345_UnchainedWordMove_00000000_00000016_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2391_UnchainedDwordMove_00000000_00000017_00000000_00000000_id : + S_2391_UnchainedDwordMove_00000000_00000017_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2391) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2371if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2371if_f_id : + L13_2371if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2348_UnchainedWordMove_00000000_00000017_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2348_UnchainedWordMove_00000000_00000017_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2392_UnchainedDwordMove_00000000_00000018_00000000_00000000_id : + S_2392_UnchainedDwordMove_00000000_00000018_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2392) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2372if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2372if_f_id : + L13_2372if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2350_UnchainedWordMove_00000000_00000018_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2350_UnchainedWordMove_00000000_00000018_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2393_UnchainedDwordMove_00000000_00000019_00000000_00000000_id : + S_2393_UnchainedDwordMove_00000000_00000019_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2393) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2373if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2373if_f_id : + L13_2373if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2353_UnchainedWordMove_00000000_00000019_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2353_UnchainedWordMove_00000000_00000019_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2394_UnchainedDwordMove_00000000_0000001e_00000000_00000000_id : + S_2394_UnchainedDwordMove_00000000_0000001e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2394) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2374if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2374if_f_id : + L13_2374if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2355_UnchainedWordMove_00000000_0000001e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2355_UnchainedWordMove_00000000_0000001e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2395_UnchainedDwordMove_00000000_0000001f_00000000_00000000_id : + S_2395_UnchainedDwordMove_00000000_0000001f_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2395) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2375if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2375if_f_id : + L13_2375if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2358_UnchainedWordMove_00000000_0000001f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2358_UnchainedWordMove_00000000_0000001f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2396_UnchainedByteWrite_00000001_00000000_00000000_id : + S_2396_UnchainedByteWrite_00000001_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2396) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2376if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2376if_f_id : + L13_2376if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2397_UnchainedByteFill_00000001_00000000_00000000_id : + S_2397_UnchainedByteFill_00000001_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2397) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2377if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2377if_f_id : + L13_2377if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_184if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_184if_f_id : + L28_184if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_185if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_185if_f_id : + L28_185if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_186if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_186if_f_id : + L28_186if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_187if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_187if_f_id : + L28_187if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2398_UnchainedByteMove_00000001_00000000_00000000_00000000_id : + S_2398_UnchainedByteMove_00000001_00000000_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2398) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2378if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2378if_f_id : + L13_2378if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_188if_f; + *((IUH *)(r1+0)) = (IS32)(16398) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = (IS32)(-1) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2397_UnchainedByteFill_00000001_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2397_UnchainedByteFill_00000001_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16399) ; + { extern IUH L28_189if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_189if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_188if_f_id : + L28_188if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_190if_f; + *((IUH *)(r1+0)) = (IS32)(16400) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r2)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2169_CopyDirByte1Plane_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2169_CopyDirByte1Plane_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16401) ; + case L28_190if_f_id : + L28_190if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_191if_f; + *((IUH *)(r1+0)) = (IS32)(16400) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r2)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r3)) = *((IUH *)&(r20)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2169_CopyDirByte1Plane_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2169_CopyDirByte1Plane_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16401) ; + case L28_191if_f_id : + L28_191if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_192if_f; + *((IUH *)(r1+0)) = (IS32)(16400) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r2)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2169_CopyDirByte1Plane_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2169_CopyDirByte1Plane_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16401) ; + case L28_192if_f_id : + L28_192if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_193if_f; + *((IUH *)(r1+0)) = (IS32)(16400) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r2)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r3)) = *((IUH *)&(r20)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2169_CopyDirByte1Plane_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2169_CopyDirByte1Plane_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16401) ; + case L28_193if_f_id : + L28_193if_f: ; + case L28_189if_d_id : + L28_189if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2399_UnchainedWordWrite_00000001_00000000_00000000_id : + S_2399_UnchainedWordWrite_00000001_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2399) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2379if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2379if_f_id : + L13_2379if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2400_UnchainedWordFill_00000001_00000000_00000000_id : + S_2400_UnchainedWordFill_00000001_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2400) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2380if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2380if_f_id : + L13_2380if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_194if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_194if_f_id : + L28_194if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_195if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU8 *)&(r4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+5) )) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_195if_f_id : + L28_195if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_196if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_196if_f_id : + L28_196if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_197if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_197if_f_id : + L28_197if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2401_UnchainedWordMove_00000001_00000000_00000000_00000000_id : + S_2401_UnchainedWordMove_00000001_00000000_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2401) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2381if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2381if_f_id : + L13_2381if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_198if_f; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = (IS32)(-1) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2400_UnchainedWordFill_00000001_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2400_UnchainedWordFill_00000001_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; + { extern IUH L28_199if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_199if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_198if_f_id : + L28_198if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_200if_f; + *((IUH *)(r1+0)) = (IS32)(16404) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r2)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2174_CopyDirWord1Plane_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2174_CopyDirWord1Plane_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16405) ; + case L28_200if_f_id : + L28_200if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_201if_f; + *((IUH *)(r1+0)) = (IS32)(16404) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r2)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r3)) = *((IUH *)&(r20)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2174_CopyDirWord1Plane_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2174_CopyDirWord1Plane_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16405) ; + case L28_201if_f_id : + L28_201if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_202if_f; + *((IUH *)(r1+0)) = (IS32)(16404) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r2)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2174_CopyDirWord1Plane_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2174_CopyDirWord1Plane_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16405) ; + case L28_202if_f_id : + L28_202if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_203if_f; + *((IUH *)(r1+0)) = (IS32)(16404) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r2)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r3)) = *((IUH *)&(r20)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2174_CopyDirWord1Plane_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2174_CopyDirWord1Plane_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16405) ; + case L28_203if_f_id : + L28_203if_f: ; + case L28_199if_d_id : + L28_199if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2402_UnchainedDwordWrite_00000001_00000000_00000000_id : + S_2402_UnchainedDwordWrite_00000001_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2402) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2382if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2382if_f_id : + L13_2382if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2399_UnchainedWordWrite_00000001_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2399_UnchainedWordWrite_00000001_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2399_UnchainedWordWrite_00000001_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2399_UnchainedWordWrite_00000001_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2403_UnchainedDwordFill_00000001_00000000_00000000_id : + S_2403_UnchainedDwordFill_00000001_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2403) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2383if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2383if_f_id : + L13_2383if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2400_UnchainedWordFill_00000001_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2400_UnchainedWordFill_00000001_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2400_UnchainedWordFill_00000001_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2400_UnchainedWordFill_00000001_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2404_UnchainedDwordMove_00000001_00000000_00000000_00000000_id : + S_2404_UnchainedDwordMove_00000001_00000000_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2404) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2384if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2384if_f_id : + L13_2384if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2401_UnchainedWordMove_00000001_00000000_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2401_UnchainedWordMove_00000001_00000000_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2405_UnchainedByteWrite_00000002_00000008_00000000_id : + S_2405_UnchainedByteWrite_00000002_00000008_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2405) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2385if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2385if_f_id : + L13_2385if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+3) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid010.c b/private/mvdm/softpc.new/base/cvidc/sevid010.c new file mode 100644 index 000000000..17f98ae2d --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid010.c @@ -0,0 +1,4989 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_2406_UnchainedByteWrite_00000002_00000009_00000000_id, +L13_2386if_f_id, +S_2407_UnchainedByteWrite_00000002_0000000e_00000000_id, +L13_2387if_f_id, +S_2408_UnchainedByteWrite_00000002_0000000f_00000000_id, +L13_2388if_f_id, +S_2409_UnchainedByteFill_00000002_00000008_00000000_id, +L13_2389if_f_id, +L28_204if_f_id, +L28_205if_f_id, +L28_206if_f_id, +L28_207if_f_id, +S_2410_UnchainedByteFill_00000002_00000009_00000000_id, +L13_2390if_f_id, +S_2411_UnchainedByteFill_00000002_0000000e_00000000_id, +L13_2391if_f_id, +L28_208if_f_id, +L28_209if_f_id, +L28_210if_f_id, +L28_211if_f_id, +S_2412_UnchainedByteFill_00000002_0000000f_00000000_id, +L13_2392if_f_id, +S_2413_UnchainedByteMove_00000002_00000008_00000000_00000000_id, +L13_2393if_f_id, +L28_212if_f_id, +L28_213if_d_id, +S_2414_CopyBytePlnByPlnUnchained_00000002_00000008_00000000_00000000_id, +L13_2394if_f_id, +L23_320if_f_id, +L23_321if_f_id, +L23_322if_f_id, +L23_323if_f_id, +S_2415_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000000_id, +L13_2395if_f_id, +L23_326w_t_id, +L23_327w_d_id, +L23_324if_f_id, +L23_328w_t_id, +L23_329w_d_id, +L23_325if_d_id, +S_2416_UnchainedByteMove_00000002_00000009_00000000_00000000_id, +L13_2396if_f_id, +L28_214if_f_id, +L28_215if_d_id, +S_2417_CopyByte4PlaneUnchained_00000002_00000009_00000000_00000000_id, +L13_2397if_f_id, +L23_332w_t_id, +L23_333w_d_id, +L23_330if_f_id, +L23_334w_t_id, +L23_335w_d_id, +L23_331if_d_id, +S_2418_UnchainedByteMove_00000002_0000000e_00000000_00000000_id, +L13_2398if_f_id, +L28_216if_f_id, +L28_217if_d_id, +S_2419_CopyBytePlnByPlnUnchained_00000002_0000000e_00000000_00000000_id, +L13_2399if_f_id, +L23_336if_f_id, +L23_337if_f_id, +L23_338if_f_id, +L23_339if_f_id, +S_2420_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000000_id, +L13_2400if_f_id, +L23_342w_t_id, +L23_343w_d_id, +L23_340if_f_id, +L23_344w_t_id, +L23_345w_d_id, +L23_341if_d_id, +S_2421_UnchainedByteMove_00000002_0000000f_00000000_00000000_id, +L13_2401if_f_id, +L28_218if_f_id, +L28_219if_d_id, +S_2422_CopyByte4PlaneUnchained_00000002_0000000f_00000000_00000000_id, +L13_2402if_f_id, +L23_348w_t_id, +L23_349w_d_id, +L23_346if_f_id, +L23_350w_t_id, +L23_351w_d_id, +L23_347if_d_id, +S_2423_UnchainedWordWrite_00000002_00000008_00000000_id, +L13_2403if_f_id, +S_2424_UnchainedWordWrite_00000002_00000009_00000000_id, +L13_2404if_f_id, +S_2425_UnchainedWordWrite_00000002_0000000e_00000000_id, +L13_2405if_f_id, +S_2426_UnchainedWordWrite_00000002_0000000f_00000000_id, +L13_2406if_f_id, +S_2427_UnchainedWordFill_00000002_00000008_00000000_id, +L13_2407if_f_id, +L28_220if_f_id, +L28_221if_f_id, +L28_222if_f_id, +L28_223if_f_id, +S_2428_UnchainedWordFill_00000002_00000009_00000000_id, +L13_2408if_f_id, +S_2429_UnchainedWordFill_00000002_0000000e_00000000_id, +L13_2409if_f_id, +L28_224if_f_id, +L28_225if_f_id, +L28_226if_f_id, +L28_227if_f_id, +S_2430_UnchainedWordFill_00000002_0000000f_00000000_id, +L13_2410if_f_id, +S_2431_UnchainedWordMove_00000002_00000008_00000000_00000000_id, +L13_2411if_f_id, +L28_228if_f_id, +L28_229if_d_id, +S_2432_CopyWordPlnByPlnUnchained_00000002_00000008_00000000_00000000_id, +L13_2412if_f_id, +L23_352if_f_id, +L23_353if_f_id, +L23_354if_f_id, +L23_355if_f_id, +S_2433_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000000_id, +L13_2413if_f_id, +L23_358w_t_id, +L23_359w_d_id, +L23_356if_f_id, +L23_360w_t_id, +L23_361w_d_id, +L23_357if_d_id, +S_2434_UnchainedWordMove_00000002_00000009_00000000_00000000_id, +L13_2414if_f_id, +L28_230if_f_id, +L28_231if_d_id, +S_2435_CopyWord4PlaneUnchained_00000002_00000009_00000000_00000000_id, +L13_2415if_f_id, +L23_364w_t_id, +L23_365w_d_id, +L23_362if_f_id, +L23_366w_t_id, +L23_367w_d_id, +L23_363if_d_id, +S_2436_UnchainedWordMove_00000002_0000000e_00000000_00000000_id, +L13_2416if_f_id, +L28_232if_f_id, +L28_233if_d_id, +S_2437_CopyWordPlnByPlnUnchained_00000002_0000000e_00000000_00000000_id, +L13_2417if_f_id, +L23_368if_f_id, +L23_369if_f_id, +L23_370if_f_id, +L23_371if_f_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_2406_UnchainedByteWrite_00000002_00000009_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2406_UnchainedByteWrite_00000002_00000009_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2406_UnchainedByteWrite_00000002_00000009_00000000 = (IHPE)S_2406_UnchainedByteWrite_00000002_00000009_00000000 ; +LOCAL IUH L13_2386if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2386if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2386if_f = (IHPE)L13_2386if_f ; +GLOBAL IUH S_2407_UnchainedByteWrite_00000002_0000000e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2407_UnchainedByteWrite_00000002_0000000e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2407_UnchainedByteWrite_00000002_0000000e_00000000 = (IHPE)S_2407_UnchainedByteWrite_00000002_0000000e_00000000 ; +LOCAL IUH L13_2387if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2387if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2387if_f = (IHPE)L13_2387if_f ; +GLOBAL IUH S_2408_UnchainedByteWrite_00000002_0000000f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2408_UnchainedByteWrite_00000002_0000000f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2408_UnchainedByteWrite_00000002_0000000f_00000000 = (IHPE)S_2408_UnchainedByteWrite_00000002_0000000f_00000000 ; +LOCAL IUH L13_2388if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2388if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2388if_f = (IHPE)L13_2388if_f ; +GLOBAL IUH S_2409_UnchainedByteFill_00000002_00000008_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2409_UnchainedByteFill_00000002_00000008_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2409_UnchainedByteFill_00000002_00000008_00000000 = (IHPE)S_2409_UnchainedByteFill_00000002_00000008_00000000 ; +LOCAL IUH L13_2389if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2389if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2389if_f = (IHPE)L13_2389if_f ; +LOCAL IUH L28_204if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_204if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_204if_f = (IHPE)L28_204if_f ; +LOCAL IUH L28_205if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_205if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_205if_f = (IHPE)L28_205if_f ; +LOCAL IUH L28_206if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_206if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_206if_f = (IHPE)L28_206if_f ; +LOCAL IUH L28_207if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_207if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_207if_f = (IHPE)L28_207if_f ; +GLOBAL IUH S_2410_UnchainedByteFill_00000002_00000009_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2410_UnchainedByteFill_00000002_00000009_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2410_UnchainedByteFill_00000002_00000009_00000000 = (IHPE)S_2410_UnchainedByteFill_00000002_00000009_00000000 ; +LOCAL IUH L13_2390if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2390if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2390if_f = (IHPE)L13_2390if_f ; +GLOBAL IUH S_2411_UnchainedByteFill_00000002_0000000e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2411_UnchainedByteFill_00000002_0000000e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2411_UnchainedByteFill_00000002_0000000e_00000000 = (IHPE)S_2411_UnchainedByteFill_00000002_0000000e_00000000 ; +LOCAL IUH L13_2391if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2391if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2391if_f = (IHPE)L13_2391if_f ; +LOCAL IUH L28_208if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_208if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_208if_f = (IHPE)L28_208if_f ; +LOCAL IUH L28_209if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_209if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_209if_f = (IHPE)L28_209if_f ; +LOCAL IUH L28_210if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_210if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_210if_f = (IHPE)L28_210if_f ; +LOCAL IUH L28_211if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_211if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_211if_f = (IHPE)L28_211if_f ; +GLOBAL IUH S_2412_UnchainedByteFill_00000002_0000000f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2412_UnchainedByteFill_00000002_0000000f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2412_UnchainedByteFill_00000002_0000000f_00000000 = (IHPE)S_2412_UnchainedByteFill_00000002_0000000f_00000000 ; +LOCAL IUH L13_2392if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2392if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2392if_f = (IHPE)L13_2392if_f ; +GLOBAL IUH S_2413_UnchainedByteMove_00000002_00000008_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2413_UnchainedByteMove_00000002_00000008_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2413_UnchainedByteMove_00000002_00000008_00000000_00000000 = (IHPE)S_2413_UnchainedByteMove_00000002_00000008_00000000_00000000 ; +LOCAL IUH L13_2393if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2393if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2393if_f = (IHPE)L13_2393if_f ; +LOCAL IUH L28_212if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_212if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_212if_f = (IHPE)L28_212if_f ; +LOCAL IUH L28_213if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_213if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_213if_d = (IHPE)L28_213if_d ; +GLOBAL IUH S_2414_CopyBytePlnByPlnUnchained_00000002_00000008_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2414_CopyBytePlnByPlnUnchained_00000002_00000008_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2414_CopyBytePlnByPlnUnchained_00000002_00000008_00000000_00000000 = (IHPE)S_2414_CopyBytePlnByPlnUnchained_00000002_00000008_00000000_00000000 ; +LOCAL IUH L13_2394if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2394if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2394if_f = (IHPE)L13_2394if_f ; +LOCAL IUH L23_320if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_320if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_320if_f = (IHPE)L23_320if_f ; +LOCAL IUH L23_321if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_321if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_321if_f = (IHPE)L23_321if_f ; +LOCAL IUH L23_322if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_322if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_322if_f = (IHPE)L23_322if_f ; +LOCAL IUH L23_323if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_323if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_323if_f = (IHPE)L23_323if_f ; +GLOBAL IUH S_2415_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2415_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2415_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000000 = (IHPE)S_2415_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000000 ; +LOCAL IUH L13_2395if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2395if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2395if_f = (IHPE)L13_2395if_f ; +LOCAL IUH L23_326w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_326w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_326w_t = (IHPE)L23_326w_t ; +LOCAL IUH L23_327w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_327w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_327w_d = (IHPE)L23_327w_d ; +LOCAL IUH L23_324if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_324if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_324if_f = (IHPE)L23_324if_f ; +LOCAL IUH L23_328w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_328w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_328w_t = (IHPE)L23_328w_t ; +LOCAL IUH L23_329w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_329w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_329w_d = (IHPE)L23_329w_d ; +LOCAL IUH L23_325if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_325if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_325if_d = (IHPE)L23_325if_d ; +GLOBAL IUH S_2416_UnchainedByteMove_00000002_00000009_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2416_UnchainedByteMove_00000002_00000009_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2416_UnchainedByteMove_00000002_00000009_00000000_00000000 = (IHPE)S_2416_UnchainedByteMove_00000002_00000009_00000000_00000000 ; +LOCAL IUH L13_2396if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2396if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2396if_f = (IHPE)L13_2396if_f ; +LOCAL IUH L28_214if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_214if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_214if_f = (IHPE)L28_214if_f ; +LOCAL IUH L28_215if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_215if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_215if_d = (IHPE)L28_215if_d ; +GLOBAL IUH S_2417_CopyByte4PlaneUnchained_00000002_00000009_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2417_CopyByte4PlaneUnchained_00000002_00000009_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2417_CopyByte4PlaneUnchained_00000002_00000009_00000000_00000000 = (IHPE)S_2417_CopyByte4PlaneUnchained_00000002_00000009_00000000_00000000 ; +LOCAL IUH L13_2397if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2397if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2397if_f = (IHPE)L13_2397if_f ; +LOCAL IUH L23_332w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_332w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_332w_t = (IHPE)L23_332w_t ; +LOCAL IUH L23_333w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_333w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_333w_d = (IHPE)L23_333w_d ; +LOCAL IUH L23_330if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_330if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_330if_f = (IHPE)L23_330if_f ; +LOCAL IUH L23_334w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_334w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_334w_t = (IHPE)L23_334w_t ; +LOCAL IUH L23_335w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_335w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_335w_d = (IHPE)L23_335w_d ; +LOCAL IUH L23_331if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_331if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_331if_d = (IHPE)L23_331if_d ; +GLOBAL IUH S_2418_UnchainedByteMove_00000002_0000000e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2418_UnchainedByteMove_00000002_0000000e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2418_UnchainedByteMove_00000002_0000000e_00000000_00000000 = (IHPE)S_2418_UnchainedByteMove_00000002_0000000e_00000000_00000000 ; +LOCAL IUH L13_2398if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2398if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2398if_f = (IHPE)L13_2398if_f ; +LOCAL IUH L28_216if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_216if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_216if_f = (IHPE)L28_216if_f ; +LOCAL IUH L28_217if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_217if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_217if_d = (IHPE)L28_217if_d ; +GLOBAL IUH S_2419_CopyBytePlnByPlnUnchained_00000002_0000000e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2419_CopyBytePlnByPlnUnchained_00000002_0000000e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2419_CopyBytePlnByPlnUnchained_00000002_0000000e_00000000_00000000 = (IHPE)S_2419_CopyBytePlnByPlnUnchained_00000002_0000000e_00000000_00000000 ; +LOCAL IUH L13_2399if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2399if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2399if_f = (IHPE)L13_2399if_f ; +LOCAL IUH L23_336if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_336if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_336if_f = (IHPE)L23_336if_f ; +LOCAL IUH L23_337if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_337if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_337if_f = (IHPE)L23_337if_f ; +LOCAL IUH L23_338if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_338if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_338if_f = (IHPE)L23_338if_f ; +LOCAL IUH L23_339if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_339if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_339if_f = (IHPE)L23_339if_f ; +GLOBAL IUH S_2420_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2420_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2420_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000000 = (IHPE)S_2420_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000000 ; +LOCAL IUH L13_2400if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2400if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2400if_f = (IHPE)L13_2400if_f ; +LOCAL IUH L23_342w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_342w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_342w_t = (IHPE)L23_342w_t ; +LOCAL IUH L23_343w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_343w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_343w_d = (IHPE)L23_343w_d ; +LOCAL IUH L23_340if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_340if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_340if_f = (IHPE)L23_340if_f ; +LOCAL IUH L23_344w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_344w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_344w_t = (IHPE)L23_344w_t ; +LOCAL IUH L23_345w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_345w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_345w_d = (IHPE)L23_345w_d ; +LOCAL IUH L23_341if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_341if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_341if_d = (IHPE)L23_341if_d ; +GLOBAL IUH S_2421_UnchainedByteMove_00000002_0000000f_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2421_UnchainedByteMove_00000002_0000000f_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2421_UnchainedByteMove_00000002_0000000f_00000000_00000000 = (IHPE)S_2421_UnchainedByteMove_00000002_0000000f_00000000_00000000 ; +LOCAL IUH L13_2401if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2401if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2401if_f = (IHPE)L13_2401if_f ; +LOCAL IUH L28_218if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_218if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_218if_f = (IHPE)L28_218if_f ; +LOCAL IUH L28_219if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_219if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_219if_d = (IHPE)L28_219if_d ; +GLOBAL IUH S_2422_CopyByte4PlaneUnchained_00000002_0000000f_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2422_CopyByte4PlaneUnchained_00000002_0000000f_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2422_CopyByte4PlaneUnchained_00000002_0000000f_00000000_00000000 = (IHPE)S_2422_CopyByte4PlaneUnchained_00000002_0000000f_00000000_00000000 ; +LOCAL IUH L13_2402if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2402if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2402if_f = (IHPE)L13_2402if_f ; +LOCAL IUH L23_348w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_348w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_348w_t = (IHPE)L23_348w_t ; +LOCAL IUH L23_349w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_349w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_349w_d = (IHPE)L23_349w_d ; +LOCAL IUH L23_346if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_346if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_346if_f = (IHPE)L23_346if_f ; +LOCAL IUH L23_350w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_350w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_350w_t = (IHPE)L23_350w_t ; +LOCAL IUH L23_351w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_351w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_351w_d = (IHPE)L23_351w_d ; +LOCAL IUH L23_347if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_347if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_347if_d = (IHPE)L23_347if_d ; +GLOBAL IUH S_2423_UnchainedWordWrite_00000002_00000008_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2423_UnchainedWordWrite_00000002_00000008_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2423_UnchainedWordWrite_00000002_00000008_00000000 = (IHPE)S_2423_UnchainedWordWrite_00000002_00000008_00000000 ; +LOCAL IUH L13_2403if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2403if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2403if_f = (IHPE)L13_2403if_f ; +GLOBAL IUH S_2424_UnchainedWordWrite_00000002_00000009_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2424_UnchainedWordWrite_00000002_00000009_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2424_UnchainedWordWrite_00000002_00000009_00000000 = (IHPE)S_2424_UnchainedWordWrite_00000002_00000009_00000000 ; +LOCAL IUH L13_2404if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2404if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2404if_f = (IHPE)L13_2404if_f ; +GLOBAL IUH S_2425_UnchainedWordWrite_00000002_0000000e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2425_UnchainedWordWrite_00000002_0000000e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2425_UnchainedWordWrite_00000002_0000000e_00000000 = (IHPE)S_2425_UnchainedWordWrite_00000002_0000000e_00000000 ; +LOCAL IUH L13_2405if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2405if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2405if_f = (IHPE)L13_2405if_f ; +GLOBAL IUH S_2426_UnchainedWordWrite_00000002_0000000f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2426_UnchainedWordWrite_00000002_0000000f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2426_UnchainedWordWrite_00000002_0000000f_00000000 = (IHPE)S_2426_UnchainedWordWrite_00000002_0000000f_00000000 ; +LOCAL IUH L13_2406if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2406if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2406if_f = (IHPE)L13_2406if_f ; +GLOBAL IUH S_2427_UnchainedWordFill_00000002_00000008_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2427_UnchainedWordFill_00000002_00000008_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2427_UnchainedWordFill_00000002_00000008_00000000 = (IHPE)S_2427_UnchainedWordFill_00000002_00000008_00000000 ; +LOCAL IUH L13_2407if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2407if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2407if_f = (IHPE)L13_2407if_f ; +LOCAL IUH L28_220if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_220if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_220if_f = (IHPE)L28_220if_f ; +LOCAL IUH L28_221if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_221if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_221if_f = (IHPE)L28_221if_f ; +LOCAL IUH L28_222if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_222if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_222if_f = (IHPE)L28_222if_f ; +LOCAL IUH L28_223if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_223if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_223if_f = (IHPE)L28_223if_f ; +GLOBAL IUH S_2428_UnchainedWordFill_00000002_00000009_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2428_UnchainedWordFill_00000002_00000009_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2428_UnchainedWordFill_00000002_00000009_00000000 = (IHPE)S_2428_UnchainedWordFill_00000002_00000009_00000000 ; +LOCAL IUH L13_2408if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2408if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2408if_f = (IHPE)L13_2408if_f ; +GLOBAL IUH S_2429_UnchainedWordFill_00000002_0000000e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2429_UnchainedWordFill_00000002_0000000e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2429_UnchainedWordFill_00000002_0000000e_00000000 = (IHPE)S_2429_UnchainedWordFill_00000002_0000000e_00000000 ; +LOCAL IUH L13_2409if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2409if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2409if_f = (IHPE)L13_2409if_f ; +LOCAL IUH L28_224if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_224if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_224if_f = (IHPE)L28_224if_f ; +LOCAL IUH L28_225if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_225if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_225if_f = (IHPE)L28_225if_f ; +LOCAL IUH L28_226if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_226if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_226if_f = (IHPE)L28_226if_f ; +LOCAL IUH L28_227if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_227if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_227if_f = (IHPE)L28_227if_f ; +GLOBAL IUH S_2430_UnchainedWordFill_00000002_0000000f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2430_UnchainedWordFill_00000002_0000000f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2430_UnchainedWordFill_00000002_0000000f_00000000 = (IHPE)S_2430_UnchainedWordFill_00000002_0000000f_00000000 ; +LOCAL IUH L13_2410if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2410if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2410if_f = (IHPE)L13_2410if_f ; +GLOBAL IUH S_2431_UnchainedWordMove_00000002_00000008_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2431_UnchainedWordMove_00000002_00000008_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2431_UnchainedWordMove_00000002_00000008_00000000_00000000 = (IHPE)S_2431_UnchainedWordMove_00000002_00000008_00000000_00000000 ; +LOCAL IUH L13_2411if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2411if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2411if_f = (IHPE)L13_2411if_f ; +LOCAL IUH L28_228if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_228if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_228if_f = (IHPE)L28_228if_f ; +LOCAL IUH L28_229if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_229if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_229if_d = (IHPE)L28_229if_d ; +GLOBAL IUH S_2432_CopyWordPlnByPlnUnchained_00000002_00000008_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2432_CopyWordPlnByPlnUnchained_00000002_00000008_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2432_CopyWordPlnByPlnUnchained_00000002_00000008_00000000_00000000 = (IHPE)S_2432_CopyWordPlnByPlnUnchained_00000002_00000008_00000000_00000000 ; +LOCAL IUH L13_2412if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2412if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2412if_f = (IHPE)L13_2412if_f ; +LOCAL IUH L23_352if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_352if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_352if_f = (IHPE)L23_352if_f ; +LOCAL IUH L23_353if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_353if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_353if_f = (IHPE)L23_353if_f ; +LOCAL IUH L23_354if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_354if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_354if_f = (IHPE)L23_354if_f ; +LOCAL IUH L23_355if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_355if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_355if_f = (IHPE)L23_355if_f ; +GLOBAL IUH S_2433_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2433_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2433_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000000 = (IHPE)S_2433_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000000 ; +LOCAL IUH L13_2413if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2413if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2413if_f = (IHPE)L13_2413if_f ; +LOCAL IUH L23_358w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_358w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_358w_t = (IHPE)L23_358w_t ; +LOCAL IUH L23_359w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_359w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_359w_d = (IHPE)L23_359w_d ; +LOCAL IUH L23_356if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_356if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_356if_f = (IHPE)L23_356if_f ; +LOCAL IUH L23_360w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_360w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_360w_t = (IHPE)L23_360w_t ; +LOCAL IUH L23_361w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_361w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_361w_d = (IHPE)L23_361w_d ; +LOCAL IUH L23_357if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_357if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_357if_d = (IHPE)L23_357if_d ; +GLOBAL IUH S_2434_UnchainedWordMove_00000002_00000009_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2434_UnchainedWordMove_00000002_00000009_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2434_UnchainedWordMove_00000002_00000009_00000000_00000000 = (IHPE)S_2434_UnchainedWordMove_00000002_00000009_00000000_00000000 ; +LOCAL IUH L13_2414if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2414if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2414if_f = (IHPE)L13_2414if_f ; +LOCAL IUH L28_230if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_230if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_230if_f = (IHPE)L28_230if_f ; +LOCAL IUH L28_231if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_231if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_231if_d = (IHPE)L28_231if_d ; +GLOBAL IUH S_2435_CopyWord4PlaneUnchained_00000002_00000009_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2435_CopyWord4PlaneUnchained_00000002_00000009_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2435_CopyWord4PlaneUnchained_00000002_00000009_00000000_00000000 = (IHPE)S_2435_CopyWord4PlaneUnchained_00000002_00000009_00000000_00000000 ; +LOCAL IUH L13_2415if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2415if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2415if_f = (IHPE)L13_2415if_f ; +LOCAL IUH L23_364w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_364w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_364w_t = (IHPE)L23_364w_t ; +LOCAL IUH L23_365w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_365w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_365w_d = (IHPE)L23_365w_d ; +LOCAL IUH L23_362if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_362if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_362if_f = (IHPE)L23_362if_f ; +LOCAL IUH L23_366w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_366w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_366w_t = (IHPE)L23_366w_t ; +LOCAL IUH L23_367w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_367w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_367w_d = (IHPE)L23_367w_d ; +LOCAL IUH L23_363if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_363if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_363if_d = (IHPE)L23_363if_d ; +GLOBAL IUH S_2436_UnchainedWordMove_00000002_0000000e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2436_UnchainedWordMove_00000002_0000000e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2436_UnchainedWordMove_00000002_0000000e_00000000_00000000 = (IHPE)S_2436_UnchainedWordMove_00000002_0000000e_00000000_00000000 ; +LOCAL IUH L13_2416if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2416if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2416if_f = (IHPE)L13_2416if_f ; +LOCAL IUH L28_232if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_232if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_232if_f = (IHPE)L28_232if_f ; +LOCAL IUH L28_233if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_233if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_233if_d = (IHPE)L28_233if_d ; +GLOBAL IUH S_2437_CopyWordPlnByPlnUnchained_00000002_0000000e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2437_CopyWordPlnByPlnUnchained_00000002_0000000e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2437_CopyWordPlnByPlnUnchained_00000002_0000000e_00000000_00000000 = (IHPE)S_2437_CopyWordPlnByPlnUnchained_00000002_0000000e_00000000_00000000 ; +LOCAL IUH L13_2417if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2417if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2417if_f = (IHPE)L13_2417if_f ; +LOCAL IUH L23_368if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_368if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_368if_f = (IHPE)L23_368if_f ; +LOCAL IUH L23_369if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_369if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_369if_f = (IHPE)L23_369if_f ; +LOCAL IUH L23_370if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_370if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_370if_f = (IHPE)L23_370if_f ; +LOCAL IUH L23_371if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_371if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_371if_f = (IHPE)L23_371if_f ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2406_UnchainedByteWrite_00000002_00000009_00000000_id : + S_2406_UnchainedByteWrite_00000002_00000009_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2406) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2386if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2386if_f_id : + L13_2386if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+3) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2407_UnchainedByteWrite_00000002_0000000e_00000000_id : + S_2407_UnchainedByteWrite_00000002_0000000e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2407) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2387if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2387if_f_id : + L13_2387if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+3) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2408_UnchainedByteWrite_00000002_0000000f_00000000_id : + S_2408_UnchainedByteWrite_00000002_0000000f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2408) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2388if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2388if_f_id : + L13_2388if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+3) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2409_UnchainedByteFill_00000002_00000008_00000000_id : + S_2409_UnchainedByteFill_00000002_00000008_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2409) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2389if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2389if_f_id : + L13_2389if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_204if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_204if_f_id : + L28_204if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_205if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_205if_f_id : + L28_205if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_206if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_206if_f_id : + L28_206if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_207if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_207if_f_id : + L28_207if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2410_UnchainedByteFill_00000002_00000009_00000000_id : + S_2410_UnchainedByteFill_00000002_00000009_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2410) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2390if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2390if_f_id : + L13_2390if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16474) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2264_Unchained4PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2264_Unchained4PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16475) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2411_UnchainedByteFill_00000002_0000000e_00000000_id : + S_2411_UnchainedByteFill_00000002_0000000e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2411) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2391if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2391if_f_id : + L13_2391if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_208if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_208if_f_id : + L28_208if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_209if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_209if_f_id : + L28_209if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_210if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_210if_f_id : + L28_210if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_211if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_211if_f_id : + L28_211if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2412_UnchainedByteFill_00000002_0000000f_00000000_id : + S_2412_UnchainedByteFill_00000002_0000000f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2412) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2392if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2392if_f_id : + L13_2392if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16474) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2264_Unchained4PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2264_Unchained4PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16475) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2413_UnchainedByteMove_00000002_00000008_00000000_00000000_id : + S_2413_UnchainedByteMove_00000002_00000008_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2413) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2393if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2393if_f_id : + L13_2393if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_212if_f; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2414_CopyBytePlnByPlnUnchained_00000002_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2414_CopyBytePlnByPlnUnchained_00000002_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + { extern IUH L28_213if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_213if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_212if_f_id : + L28_212if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2414_CopyBytePlnByPlnUnchained_00000002_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2414_CopyBytePlnByPlnUnchained_00000002_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + case L28_213if_d_id : + L28_213if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2414_CopyBytePlnByPlnUnchained_00000002_00000008_00000000_00000000_id : + S_2414_CopyBytePlnByPlnUnchained_00000002_00000008_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2414) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2394if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2394if_f_id : + L13_2394if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_320if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2415_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2415_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_320if_f_id : + L23_320if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_321if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2415_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2415_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_321if_f_id : + L23_321if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_322if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2415_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2415_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_322if_f_id : + L23_322if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_323if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2415_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2415_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_323if_f_id : + L23_323if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2415_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000000_id : + S_2415_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2415) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2395if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2395if_f_id : + L13_2395if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_324if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_327w_d; + case L23_326w_t_id : + L23_326w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+9) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_326w_t; + case L23_327w_d_id : + L23_327w_d: ; + { extern IUH L23_325if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_325if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_324if_f_id : + L23_324if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_329w_d; + case L23_328w_t_id : + L23_328w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+9) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_328w_t; + case L23_329w_d_id : + L23_329w_d: ; + case L23_325if_d_id : + L23_325if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2416_UnchainedByteMove_00000002_00000009_00000000_00000000_id : + S_2416_UnchainedByteMove_00000002_00000009_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2416) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2396if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2396if_f_id : + L13_2396if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_214if_f; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2417_CopyByte4PlaneUnchained_00000002_00000009_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2417_CopyByte4PlaneUnchained_00000002_00000009_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + { extern IUH L28_215if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_215if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_214if_f_id : + L28_214if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2417_CopyByte4PlaneUnchained_00000002_00000009_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2417_CopyByte4PlaneUnchained_00000002_00000009_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + case L28_215if_d_id : + L28_215if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2417_CopyByte4PlaneUnchained_00000002_00000009_00000000_00000000_id : + S_2417_CopyByte4PlaneUnchained_00000002_00000009_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2417) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2397if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2397if_f_id : + L13_2397if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_330if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_333w_d; + case L23_332w_t_id : + L23_332w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_332w_t; + case L23_333w_d_id : + L23_333w_d: ; + { extern IUH L23_331if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_331if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_330if_f_id : + L23_330if_f: ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_335w_d; + case L23_334w_t_id : + L23_334w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+9)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_334w_t; + case L23_335w_d_id : + L23_335w_d: ; + case L23_331if_d_id : + L23_331if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2418_UnchainedByteMove_00000002_0000000e_00000000_00000000_id : + S_2418_UnchainedByteMove_00000002_0000000e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2418) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2398if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2398if_f_id : + L13_2398if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_216if_f; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2419_CopyBytePlnByPlnUnchained_00000002_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2419_CopyBytePlnByPlnUnchained_00000002_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + { extern IUH L28_217if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_217if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_216if_f_id : + L28_216if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2419_CopyBytePlnByPlnUnchained_00000002_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2419_CopyBytePlnByPlnUnchained_00000002_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + case L28_217if_d_id : + L28_217if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2419_CopyBytePlnByPlnUnchained_00000002_0000000e_00000000_00000000_id : + S_2419_CopyBytePlnByPlnUnchained_00000002_0000000e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2419) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2399if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2399if_f_id : + L13_2399if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_336if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2420_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2420_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_336if_f_id : + L23_336if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_337if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2420_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2420_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_337if_f_id : + L23_337if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_338if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2420_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2420_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_338if_f_id : + L23_338if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_339if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2420_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2420_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_339if_f_id : + L23_339if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2420_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000000_id : + S_2420_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2420) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2400if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2400if_f_id : + L13_2400if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_340if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_343w_d; + case L23_342w_t_id : + L23_342w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+9) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_342w_t; + case L23_343w_d_id : + L23_343w_d: ; + { extern IUH L23_341if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_341if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_340if_f_id : + L23_340if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_345w_d; + case L23_344w_t_id : + L23_344w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+9) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_344w_t; + case L23_345w_d_id : + L23_345w_d: ; + case L23_341if_d_id : + L23_341if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2421_UnchainedByteMove_00000002_0000000f_00000000_00000000_id : + S_2421_UnchainedByteMove_00000002_0000000f_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2421) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2401if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2401if_f_id : + L13_2401if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_218if_f; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2422_CopyByte4PlaneUnchained_00000002_0000000f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2422_CopyByte4PlaneUnchained_00000002_0000000f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + { extern IUH L28_219if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_219if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_218if_f_id : + L28_218if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2422_CopyByte4PlaneUnchained_00000002_0000000f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2422_CopyByte4PlaneUnchained_00000002_0000000f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + case L28_219if_d_id : + L28_219if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2422_CopyByte4PlaneUnchained_00000002_0000000f_00000000_00000000_id : + S_2422_CopyByte4PlaneUnchained_00000002_0000000f_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2422) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2402if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2402if_f_id : + L13_2402if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_346if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_349w_d; + case L23_348w_t_id : + L23_348w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_348w_t; + case L23_349w_d_id : + L23_349w_d: ; + { extern IUH L23_347if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_347if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_346if_f_id : + L23_346if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_351w_d; + case L23_350w_t_id : + L23_350w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+9)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_350w_t; + case L23_351w_d_id : + L23_351w_d: ; + case L23_347if_d_id : + L23_347if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2423_UnchainedWordWrite_00000002_00000008_00000000_id : + S_2423_UnchainedWordWrite_00000002_00000008_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2423) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2403if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2403if_f_id : + L13_2403if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+3) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2424_UnchainedWordWrite_00000002_00000009_00000000_id : + S_2424_UnchainedWordWrite_00000002_00000009_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2424) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2404if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2404if_f_id : + L13_2404if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+3) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2425_UnchainedWordWrite_00000002_0000000e_00000000_id : + S_2425_UnchainedWordWrite_00000002_0000000e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2425) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2405if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2405if_f_id : + L13_2405if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+3) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2426_UnchainedWordWrite_00000002_0000000f_00000000_id : + S_2426_UnchainedWordWrite_00000002_0000000f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2426) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2406if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2406if_f_id : + L13_2406if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+3) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2427_UnchainedWordFill_00000002_00000008_00000000_id : + S_2427_UnchainedWordFill_00000002_00000008_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2427) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2407if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2407if_f_id : + L13_2407if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_220if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_220if_f_id : + L28_220if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_221if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU8 *)&(r4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+5) )) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_221if_f_id : + L28_221if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_222if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_222if_f_id : + L28_222if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_223if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_223if_f_id : + L28_223if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2428_UnchainedWordFill_00000002_00000009_00000000_id : + S_2428_UnchainedWordFill_00000002_00000009_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2428) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2408if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2408if_f_id : + L13_2408if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16484) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2319_Unchained4PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2319_Unchained4PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16485) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2429_UnchainedWordFill_00000002_0000000e_00000000_id : + S_2429_UnchainedWordFill_00000002_0000000e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2429) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2409if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2409if_f_id : + L13_2409if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_224if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_224if_f_id : + L28_224if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_225if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU8 *)&(r4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+5) )) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_225if_f_id : + L28_225if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_226if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_226if_f_id : + L28_226if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_227if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_227if_f_id : + L28_227if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2430_UnchainedWordFill_00000002_0000000f_00000000_id : + S_2430_UnchainedWordFill_00000002_0000000f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2430) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2410if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2410if_f_id : + L13_2410if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16484) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2319_Unchained4PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2319_Unchained4PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16485) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2431_UnchainedWordMove_00000002_00000008_00000000_00000000_id : + S_2431_UnchainedWordMove_00000002_00000008_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2431) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2411if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2411if_f_id : + L13_2411if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_228if_f; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2432_CopyWordPlnByPlnUnchained_00000002_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2432_CopyWordPlnByPlnUnchained_00000002_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + { extern IUH L28_229if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_229if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_228if_f_id : + L28_228if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2432_CopyWordPlnByPlnUnchained_00000002_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2432_CopyWordPlnByPlnUnchained_00000002_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + case L28_229if_d_id : + L28_229if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2432_CopyWordPlnByPlnUnchained_00000002_00000008_00000000_00000000_id : + S_2432_CopyWordPlnByPlnUnchained_00000002_00000008_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2432) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2412if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2412if_f_id : + L13_2412if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_352if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2433_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2433_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_352if_f_id : + L23_352if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_353if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2433_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2433_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_353if_f_id : + L23_353if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_354if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2433_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2433_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_354if_f_id : + L23_354if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_355if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2433_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2433_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_355if_f_id : + L23_355if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2433_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000000_id : + S_2433_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2433) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2413if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2413if_f_id : + L13_2413if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_356if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_359w_d; + case L23_358w_t_id : + L23_358w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+9) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+9) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_358w_t; + case L23_359w_d_id : + L23_359w_d: ; + { extern IUH L23_357if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_357if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_356if_f_id : + L23_356if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_361w_d; + case L23_360w_t_id : + L23_360w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+9) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+9) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_360w_t; + case L23_361w_d_id : + L23_361w_d: ; + case L23_357if_d_id : + L23_357if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2434_UnchainedWordMove_00000002_00000009_00000000_00000000_id : + S_2434_UnchainedWordMove_00000002_00000009_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2434) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2414if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2414if_f_id : + L13_2414if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_230if_f; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2435_CopyWord4PlaneUnchained_00000002_00000009_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2435_CopyWord4PlaneUnchained_00000002_00000009_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + { extern IUH L28_231if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_231if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_230if_f_id : + L28_230if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2435_CopyWord4PlaneUnchained_00000002_00000009_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2435_CopyWord4PlaneUnchained_00000002_00000009_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + case L28_231if_d_id : + L28_231if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2435_CopyWord4PlaneUnchained_00000002_00000009_00000000_00000000_id : + S_2435_CopyWord4PlaneUnchained_00000002_00000009_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2435) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2415if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2415if_f_id : + L13_2415if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_362if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_365w_d; + case L23_364w_t_id : + L23_364w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_364w_t; + case L23_365w_d_id : + L23_365w_d: ; + { extern IUH L23_363if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_363if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_362if_f_id : + L23_362if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_367w_d; + case L23_366w_t_id : + L23_366w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_366w_t; + case L23_367w_d_id : + L23_367w_d: ; + case L23_363if_d_id : + L23_363if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2436_UnchainedWordMove_00000002_0000000e_00000000_00000000_id : + S_2436_UnchainedWordMove_00000002_0000000e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2436) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2416if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2416if_f_id : + L13_2416if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_232if_f; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2437_CopyWordPlnByPlnUnchained_00000002_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2437_CopyWordPlnByPlnUnchained_00000002_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + { extern IUH L28_233if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_233if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_232if_f_id : + L28_232if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2437_CopyWordPlnByPlnUnchained_00000002_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2437_CopyWordPlnByPlnUnchained_00000002_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + case L28_233if_d_id : + L28_233if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2437_CopyWordPlnByPlnUnchained_00000002_0000000e_00000000_00000000_id : + S_2437_CopyWordPlnByPlnUnchained_00000002_0000000e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2437) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2417if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2417if_f_id : + L13_2417if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_368if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2438_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2438_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_368if_f_id : + L23_368if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_369if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2438_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2438_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_369if_f_id : + L23_369if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_370if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2438_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2438_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_370if_f_id : + L23_370if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_371if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2438_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2438_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_371if_f_id : + L23_371if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid011.c b/private/mvdm/softpc.new/base/cvidc/sevid011.c new file mode 100644 index 000000000..138157ed0 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid011.c @@ -0,0 +1,3792 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_2438_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000000_id, +L13_2418if_f_id, +L23_374w_t_id, +L23_375w_d_id, +L23_372if_f_id, +L23_376w_t_id, +L23_377w_d_id, +L23_373if_d_id, +S_2439_UnchainedWordMove_00000002_0000000f_00000000_00000000_id, +L13_2419if_f_id, +L28_234if_f_id, +L28_235if_d_id, +S_2440_CopyWord4PlaneUnchained_00000002_0000000f_00000000_00000000_id, +L13_2420if_f_id, +L23_380w_t_id, +L23_381w_d_id, +L23_378if_f_id, +L23_382w_t_id, +L23_383w_d_id, +L23_379if_d_id, +S_2441_UnchainedDwordWrite_00000002_00000008_00000000_id, +L13_2421if_f_id, +S_2442_UnchainedDwordWrite_00000002_00000009_00000000_id, +L13_2422if_f_id, +S_2443_UnchainedDwordWrite_00000002_0000000e_00000000_id, +L13_2423if_f_id, +S_2444_UnchainedDwordWrite_00000002_0000000f_00000000_id, +L13_2424if_f_id, +S_2445_UnchainedDwordFill_00000002_00000008_00000000_id, +L13_2425if_f_id, +S_2446_UnchainedDwordFill_00000002_00000009_00000000_id, +L13_2426if_f_id, +S_2447_UnchainedDwordFill_00000002_0000000e_00000000_id, +L13_2427if_f_id, +S_2448_UnchainedDwordFill_00000002_0000000f_00000000_id, +L13_2428if_f_id, +S_2449_UnchainedDwordMove_00000002_00000008_00000000_00000000_id, +L13_2429if_f_id, +S_2450_UnchainedDwordMove_00000002_00000009_00000000_00000000_id, +L13_2430if_f_id, +S_2451_UnchainedDwordMove_00000002_0000000e_00000000_00000000_id, +L13_2431if_f_id, +S_2452_UnchainedDwordMove_00000002_0000000f_00000000_00000000_id, +L13_2432if_f_id, +S_2453_UnchainedByteWrite_00000003_00000008_00000000_id, +L13_2433if_f_id, +S_2454_UnchainedByteWrite_00000003_00000009_00000000_id, +L13_2434if_f_id, +S_2455_UnchainedByteWrite_00000003_0000000e_00000000_id, +L13_2435if_f_id, +S_2456_UnchainedByteWrite_00000003_0000000f_00000000_id, +L13_2436if_f_id, +S_2457_UnchainedByteFill_00000003_00000008_00000000_id, +L13_2437if_f_id, +L28_236if_f_id, +L28_237if_f_id, +L28_238if_f_id, +L28_239if_f_id, +S_2458_UnchainedByteFill_00000003_00000009_00000000_id, +L13_2438if_f_id, +S_2459_UnchainedByteFill_00000003_0000000e_00000000_id, +L13_2439if_f_id, +L28_240if_f_id, +L28_241if_f_id, +L28_242if_f_id, +L28_243if_f_id, +S_2460_UnchainedByteFill_00000003_0000000f_00000000_id, +L13_2440if_f_id, +S_2461_UnchainedByteMove_00000003_00000008_00000000_00000000_id, +L13_2441if_f_id, +L28_244if_f_id, +L28_245if_d_id, +S_2462_CopyBytePlnByPlnUnchained_00000003_00000008_00000000_00000000_id, +L13_2442if_f_id, +L23_384if_f_id, +L23_385if_f_id, +L23_386if_f_id, +L23_387if_f_id, +S_2463_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000000_id, +L13_2443if_f_id, +L23_390w_t_id, +L23_391w_d_id, +L23_388if_f_id, +L23_392w_t_id, +L23_393w_d_id, +L23_389if_d_id, +S_2464_UnchainedByteMove_00000003_00000009_00000000_00000000_id, +L13_2444if_f_id, +L28_246if_f_id, +L28_247if_d_id, +S_2465_CopyByte4PlaneUnchained_00000003_00000009_00000000_00000000_id, +L13_2445if_f_id, +L23_396w_t_id, +L23_397w_d_id, +L23_394if_f_id, +L23_398w_t_id, +L23_399w_d_id, +L23_395if_d_id, +S_2466_UnchainedByteMove_00000003_0000000e_00000000_00000000_id, +L13_2446if_f_id, +L28_248if_f_id, +L28_249if_d_id, +S_2467_CopyBytePlnByPlnUnchained_00000003_0000000e_00000000_00000000_id, +L13_2447if_f_id, +L23_400if_f_id, +L23_401if_f_id, +L23_402if_f_id, +L23_403if_f_id, +S_2468_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000000_id, +L13_2448if_f_id, +L23_406w_t_id, +L23_407w_d_id, +L23_404if_f_id, +L23_408w_t_id, +L23_409w_d_id, +L23_405if_d_id, +S_2469_UnchainedByteMove_00000003_0000000f_00000000_00000000_id, +L13_2449if_f_id, +L28_250if_f_id, +L28_251if_d_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_2438_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2438_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2438_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000000 = (IHPE)S_2438_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000000 ; +LOCAL IUH L13_2418if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2418if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2418if_f = (IHPE)L13_2418if_f ; +LOCAL IUH L23_374w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_374w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_374w_t = (IHPE)L23_374w_t ; +LOCAL IUH L23_375w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_375w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_375w_d = (IHPE)L23_375w_d ; +LOCAL IUH L23_372if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_372if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_372if_f = (IHPE)L23_372if_f ; +LOCAL IUH L23_376w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_376w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_376w_t = (IHPE)L23_376w_t ; +LOCAL IUH L23_377w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_377w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_377w_d = (IHPE)L23_377w_d ; +LOCAL IUH L23_373if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_373if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_373if_d = (IHPE)L23_373if_d ; +GLOBAL IUH S_2439_UnchainedWordMove_00000002_0000000f_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2439_UnchainedWordMove_00000002_0000000f_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2439_UnchainedWordMove_00000002_0000000f_00000000_00000000 = (IHPE)S_2439_UnchainedWordMove_00000002_0000000f_00000000_00000000 ; +LOCAL IUH L13_2419if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2419if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2419if_f = (IHPE)L13_2419if_f ; +LOCAL IUH L28_234if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_234if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_234if_f = (IHPE)L28_234if_f ; +LOCAL IUH L28_235if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_235if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_235if_d = (IHPE)L28_235if_d ; +GLOBAL IUH S_2440_CopyWord4PlaneUnchained_00000002_0000000f_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2440_CopyWord4PlaneUnchained_00000002_0000000f_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2440_CopyWord4PlaneUnchained_00000002_0000000f_00000000_00000000 = (IHPE)S_2440_CopyWord4PlaneUnchained_00000002_0000000f_00000000_00000000 ; +LOCAL IUH L13_2420if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2420if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2420if_f = (IHPE)L13_2420if_f ; +LOCAL IUH L23_380w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_380w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_380w_t = (IHPE)L23_380w_t ; +LOCAL IUH L23_381w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_381w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_381w_d = (IHPE)L23_381w_d ; +LOCAL IUH L23_378if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_378if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_378if_f = (IHPE)L23_378if_f ; +LOCAL IUH L23_382w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_382w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_382w_t = (IHPE)L23_382w_t ; +LOCAL IUH L23_383w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_383w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_383w_d = (IHPE)L23_383w_d ; +LOCAL IUH L23_379if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_379if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_379if_d = (IHPE)L23_379if_d ; +GLOBAL IUH S_2441_UnchainedDwordWrite_00000002_00000008_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2441_UnchainedDwordWrite_00000002_00000008_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2441_UnchainedDwordWrite_00000002_00000008_00000000 = (IHPE)S_2441_UnchainedDwordWrite_00000002_00000008_00000000 ; +LOCAL IUH L13_2421if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2421if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2421if_f = (IHPE)L13_2421if_f ; +GLOBAL IUH S_2442_UnchainedDwordWrite_00000002_00000009_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2442_UnchainedDwordWrite_00000002_00000009_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2442_UnchainedDwordWrite_00000002_00000009_00000000 = (IHPE)S_2442_UnchainedDwordWrite_00000002_00000009_00000000 ; +LOCAL IUH L13_2422if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2422if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2422if_f = (IHPE)L13_2422if_f ; +GLOBAL IUH S_2443_UnchainedDwordWrite_00000002_0000000e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2443_UnchainedDwordWrite_00000002_0000000e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2443_UnchainedDwordWrite_00000002_0000000e_00000000 = (IHPE)S_2443_UnchainedDwordWrite_00000002_0000000e_00000000 ; +LOCAL IUH L13_2423if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2423if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2423if_f = (IHPE)L13_2423if_f ; +GLOBAL IUH S_2444_UnchainedDwordWrite_00000002_0000000f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2444_UnchainedDwordWrite_00000002_0000000f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2444_UnchainedDwordWrite_00000002_0000000f_00000000 = (IHPE)S_2444_UnchainedDwordWrite_00000002_0000000f_00000000 ; +LOCAL IUH L13_2424if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2424if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2424if_f = (IHPE)L13_2424if_f ; +GLOBAL IUH S_2445_UnchainedDwordFill_00000002_00000008_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2445_UnchainedDwordFill_00000002_00000008_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2445_UnchainedDwordFill_00000002_00000008_00000000 = (IHPE)S_2445_UnchainedDwordFill_00000002_00000008_00000000 ; +LOCAL IUH L13_2425if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2425if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2425if_f = (IHPE)L13_2425if_f ; +GLOBAL IUH S_2446_UnchainedDwordFill_00000002_00000009_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2446_UnchainedDwordFill_00000002_00000009_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2446_UnchainedDwordFill_00000002_00000009_00000000 = (IHPE)S_2446_UnchainedDwordFill_00000002_00000009_00000000 ; +LOCAL IUH L13_2426if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2426if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2426if_f = (IHPE)L13_2426if_f ; +GLOBAL IUH S_2447_UnchainedDwordFill_00000002_0000000e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2447_UnchainedDwordFill_00000002_0000000e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2447_UnchainedDwordFill_00000002_0000000e_00000000 = (IHPE)S_2447_UnchainedDwordFill_00000002_0000000e_00000000 ; +LOCAL IUH L13_2427if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2427if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2427if_f = (IHPE)L13_2427if_f ; +GLOBAL IUH S_2448_UnchainedDwordFill_00000002_0000000f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2448_UnchainedDwordFill_00000002_0000000f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2448_UnchainedDwordFill_00000002_0000000f_00000000 = (IHPE)S_2448_UnchainedDwordFill_00000002_0000000f_00000000 ; +LOCAL IUH L13_2428if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2428if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2428if_f = (IHPE)L13_2428if_f ; +GLOBAL IUH S_2449_UnchainedDwordMove_00000002_00000008_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2449_UnchainedDwordMove_00000002_00000008_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2449_UnchainedDwordMove_00000002_00000008_00000000_00000000 = (IHPE)S_2449_UnchainedDwordMove_00000002_00000008_00000000_00000000 ; +LOCAL IUH L13_2429if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2429if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2429if_f = (IHPE)L13_2429if_f ; +GLOBAL IUH S_2450_UnchainedDwordMove_00000002_00000009_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2450_UnchainedDwordMove_00000002_00000009_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2450_UnchainedDwordMove_00000002_00000009_00000000_00000000 = (IHPE)S_2450_UnchainedDwordMove_00000002_00000009_00000000_00000000 ; +LOCAL IUH L13_2430if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2430if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2430if_f = (IHPE)L13_2430if_f ; +GLOBAL IUH S_2451_UnchainedDwordMove_00000002_0000000e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2451_UnchainedDwordMove_00000002_0000000e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2451_UnchainedDwordMove_00000002_0000000e_00000000_00000000 = (IHPE)S_2451_UnchainedDwordMove_00000002_0000000e_00000000_00000000 ; +LOCAL IUH L13_2431if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2431if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2431if_f = (IHPE)L13_2431if_f ; +GLOBAL IUH S_2452_UnchainedDwordMove_00000002_0000000f_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2452_UnchainedDwordMove_00000002_0000000f_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2452_UnchainedDwordMove_00000002_0000000f_00000000_00000000 = (IHPE)S_2452_UnchainedDwordMove_00000002_0000000f_00000000_00000000 ; +LOCAL IUH L13_2432if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2432if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2432if_f = (IHPE)L13_2432if_f ; +GLOBAL IUH S_2453_UnchainedByteWrite_00000003_00000008_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2453_UnchainedByteWrite_00000003_00000008_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2453_UnchainedByteWrite_00000003_00000008_00000000 = (IHPE)S_2453_UnchainedByteWrite_00000003_00000008_00000000 ; +LOCAL IUH L13_2433if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2433if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2433if_f = (IHPE)L13_2433if_f ; +GLOBAL IUH S_2454_UnchainedByteWrite_00000003_00000009_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2454_UnchainedByteWrite_00000003_00000009_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2454_UnchainedByteWrite_00000003_00000009_00000000 = (IHPE)S_2454_UnchainedByteWrite_00000003_00000009_00000000 ; +LOCAL IUH L13_2434if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2434if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2434if_f = (IHPE)L13_2434if_f ; +GLOBAL IUH S_2455_UnchainedByteWrite_00000003_0000000e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2455_UnchainedByteWrite_00000003_0000000e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2455_UnchainedByteWrite_00000003_0000000e_00000000 = (IHPE)S_2455_UnchainedByteWrite_00000003_0000000e_00000000 ; +LOCAL IUH L13_2435if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2435if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2435if_f = (IHPE)L13_2435if_f ; +GLOBAL IUH S_2456_UnchainedByteWrite_00000003_0000000f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2456_UnchainedByteWrite_00000003_0000000f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2456_UnchainedByteWrite_00000003_0000000f_00000000 = (IHPE)S_2456_UnchainedByteWrite_00000003_0000000f_00000000 ; +LOCAL IUH L13_2436if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2436if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2436if_f = (IHPE)L13_2436if_f ; +GLOBAL IUH S_2457_UnchainedByteFill_00000003_00000008_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2457_UnchainedByteFill_00000003_00000008_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2457_UnchainedByteFill_00000003_00000008_00000000 = (IHPE)S_2457_UnchainedByteFill_00000003_00000008_00000000 ; +LOCAL IUH L13_2437if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2437if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2437if_f = (IHPE)L13_2437if_f ; +LOCAL IUH L28_236if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_236if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_236if_f = (IHPE)L28_236if_f ; +LOCAL IUH L28_237if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_237if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_237if_f = (IHPE)L28_237if_f ; +LOCAL IUH L28_238if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_238if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_238if_f = (IHPE)L28_238if_f ; +LOCAL IUH L28_239if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_239if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_239if_f = (IHPE)L28_239if_f ; +GLOBAL IUH S_2458_UnchainedByteFill_00000003_00000009_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2458_UnchainedByteFill_00000003_00000009_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2458_UnchainedByteFill_00000003_00000009_00000000 = (IHPE)S_2458_UnchainedByteFill_00000003_00000009_00000000 ; +LOCAL IUH L13_2438if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2438if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2438if_f = (IHPE)L13_2438if_f ; +GLOBAL IUH S_2459_UnchainedByteFill_00000003_0000000e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2459_UnchainedByteFill_00000003_0000000e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2459_UnchainedByteFill_00000003_0000000e_00000000 = (IHPE)S_2459_UnchainedByteFill_00000003_0000000e_00000000 ; +LOCAL IUH L13_2439if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2439if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2439if_f = (IHPE)L13_2439if_f ; +LOCAL IUH L28_240if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_240if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_240if_f = (IHPE)L28_240if_f ; +LOCAL IUH L28_241if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_241if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_241if_f = (IHPE)L28_241if_f ; +LOCAL IUH L28_242if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_242if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_242if_f = (IHPE)L28_242if_f ; +LOCAL IUH L28_243if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_243if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_243if_f = (IHPE)L28_243if_f ; +GLOBAL IUH S_2460_UnchainedByteFill_00000003_0000000f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2460_UnchainedByteFill_00000003_0000000f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2460_UnchainedByteFill_00000003_0000000f_00000000 = (IHPE)S_2460_UnchainedByteFill_00000003_0000000f_00000000 ; +LOCAL IUH L13_2440if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2440if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2440if_f = (IHPE)L13_2440if_f ; +GLOBAL IUH S_2461_UnchainedByteMove_00000003_00000008_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2461_UnchainedByteMove_00000003_00000008_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2461_UnchainedByteMove_00000003_00000008_00000000_00000000 = (IHPE)S_2461_UnchainedByteMove_00000003_00000008_00000000_00000000 ; +LOCAL IUH L13_2441if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2441if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2441if_f = (IHPE)L13_2441if_f ; +LOCAL IUH L28_244if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_244if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_244if_f = (IHPE)L28_244if_f ; +LOCAL IUH L28_245if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_245if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_245if_d = (IHPE)L28_245if_d ; +GLOBAL IUH S_2462_CopyBytePlnByPlnUnchained_00000003_00000008_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2462_CopyBytePlnByPlnUnchained_00000003_00000008_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2462_CopyBytePlnByPlnUnchained_00000003_00000008_00000000_00000000 = (IHPE)S_2462_CopyBytePlnByPlnUnchained_00000003_00000008_00000000_00000000 ; +LOCAL IUH L13_2442if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2442if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2442if_f = (IHPE)L13_2442if_f ; +LOCAL IUH L23_384if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_384if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_384if_f = (IHPE)L23_384if_f ; +LOCAL IUH L23_385if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_385if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_385if_f = (IHPE)L23_385if_f ; +LOCAL IUH L23_386if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_386if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_386if_f = (IHPE)L23_386if_f ; +LOCAL IUH L23_387if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_387if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_387if_f = (IHPE)L23_387if_f ; +GLOBAL IUH S_2463_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2463_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2463_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000000 = (IHPE)S_2463_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000000 ; +LOCAL IUH L13_2443if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2443if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2443if_f = (IHPE)L13_2443if_f ; +LOCAL IUH L23_390w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_390w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_390w_t = (IHPE)L23_390w_t ; +LOCAL IUH L23_391w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_391w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_391w_d = (IHPE)L23_391w_d ; +LOCAL IUH L23_388if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_388if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_388if_f = (IHPE)L23_388if_f ; +LOCAL IUH L23_392w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_392w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_392w_t = (IHPE)L23_392w_t ; +LOCAL IUH L23_393w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_393w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_393w_d = (IHPE)L23_393w_d ; +LOCAL IUH L23_389if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_389if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_389if_d = (IHPE)L23_389if_d ; +GLOBAL IUH S_2464_UnchainedByteMove_00000003_00000009_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2464_UnchainedByteMove_00000003_00000009_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2464_UnchainedByteMove_00000003_00000009_00000000_00000000 = (IHPE)S_2464_UnchainedByteMove_00000003_00000009_00000000_00000000 ; +LOCAL IUH L13_2444if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2444if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2444if_f = (IHPE)L13_2444if_f ; +LOCAL IUH L28_246if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_246if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_246if_f = (IHPE)L28_246if_f ; +LOCAL IUH L28_247if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_247if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_247if_d = (IHPE)L28_247if_d ; +GLOBAL IUH S_2465_CopyByte4PlaneUnchained_00000003_00000009_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2465_CopyByte4PlaneUnchained_00000003_00000009_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2465_CopyByte4PlaneUnchained_00000003_00000009_00000000_00000000 = (IHPE)S_2465_CopyByte4PlaneUnchained_00000003_00000009_00000000_00000000 ; +LOCAL IUH L13_2445if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2445if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2445if_f = (IHPE)L13_2445if_f ; +LOCAL IUH L23_396w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_396w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_396w_t = (IHPE)L23_396w_t ; +LOCAL IUH L23_397w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_397w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_397w_d = (IHPE)L23_397w_d ; +LOCAL IUH L23_394if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_394if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_394if_f = (IHPE)L23_394if_f ; +LOCAL IUH L23_398w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_398w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_398w_t = (IHPE)L23_398w_t ; +LOCAL IUH L23_399w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_399w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_399w_d = (IHPE)L23_399w_d ; +LOCAL IUH L23_395if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_395if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_395if_d = (IHPE)L23_395if_d ; +GLOBAL IUH S_2466_UnchainedByteMove_00000003_0000000e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2466_UnchainedByteMove_00000003_0000000e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2466_UnchainedByteMove_00000003_0000000e_00000000_00000000 = (IHPE)S_2466_UnchainedByteMove_00000003_0000000e_00000000_00000000 ; +LOCAL IUH L13_2446if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2446if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2446if_f = (IHPE)L13_2446if_f ; +LOCAL IUH L28_248if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_248if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_248if_f = (IHPE)L28_248if_f ; +LOCAL IUH L28_249if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_249if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_249if_d = (IHPE)L28_249if_d ; +GLOBAL IUH S_2467_CopyBytePlnByPlnUnchained_00000003_0000000e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2467_CopyBytePlnByPlnUnchained_00000003_0000000e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2467_CopyBytePlnByPlnUnchained_00000003_0000000e_00000000_00000000 = (IHPE)S_2467_CopyBytePlnByPlnUnchained_00000003_0000000e_00000000_00000000 ; +LOCAL IUH L13_2447if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2447if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2447if_f = (IHPE)L13_2447if_f ; +LOCAL IUH L23_400if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_400if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_400if_f = (IHPE)L23_400if_f ; +LOCAL IUH L23_401if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_401if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_401if_f = (IHPE)L23_401if_f ; +LOCAL IUH L23_402if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_402if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_402if_f = (IHPE)L23_402if_f ; +LOCAL IUH L23_403if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_403if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_403if_f = (IHPE)L23_403if_f ; +GLOBAL IUH S_2468_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2468_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2468_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000000 = (IHPE)S_2468_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000000 ; +LOCAL IUH L13_2448if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2448if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2448if_f = (IHPE)L13_2448if_f ; +LOCAL IUH L23_406w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_406w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_406w_t = (IHPE)L23_406w_t ; +LOCAL IUH L23_407w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_407w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_407w_d = (IHPE)L23_407w_d ; +LOCAL IUH L23_404if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_404if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_404if_f = (IHPE)L23_404if_f ; +LOCAL IUH L23_408w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_408w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_408w_t = (IHPE)L23_408w_t ; +LOCAL IUH L23_409w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_409w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_409w_d = (IHPE)L23_409w_d ; +LOCAL IUH L23_405if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_405if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_405if_d = (IHPE)L23_405if_d ; +GLOBAL IUH S_2469_UnchainedByteMove_00000003_0000000f_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2469_UnchainedByteMove_00000003_0000000f_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2469_UnchainedByteMove_00000003_0000000f_00000000_00000000 = (IHPE)S_2469_UnchainedByteMove_00000003_0000000f_00000000_00000000 ; +LOCAL IUH L13_2449if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2449if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2449if_f = (IHPE)L13_2449if_f ; +LOCAL IUH L28_250if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_250if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_250if_f = (IHPE)L28_250if_f ; +LOCAL IUH L28_251if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_251if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_251if_d = (IHPE)L28_251if_d ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + case S_2438_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000000_id : + S_2438_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2438) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2418if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2418if_f_id : + L13_2418if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_372if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_375w_d; + case L23_374w_t_id : + L23_374w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+9) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+9) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_374w_t; + case L23_375w_d_id : + L23_375w_d: ; + { extern IUH L23_373if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_373if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_372if_f_id : + L23_372if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_377w_d; + case L23_376w_t_id : + L23_376w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+9) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+9) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_376w_t; + case L23_377w_d_id : + L23_377w_d: ; + case L23_373if_d_id : + L23_373if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2439_UnchainedWordMove_00000002_0000000f_00000000_00000000_id : + S_2439_UnchainedWordMove_00000002_0000000f_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2439) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2419if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2419if_f_id : + L13_2419if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_234if_f; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2440_CopyWord4PlaneUnchained_00000002_0000000f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2440_CopyWord4PlaneUnchained_00000002_0000000f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + { extern IUH L28_235if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_235if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_234if_f_id : + L28_234if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2440_CopyWord4PlaneUnchained_00000002_0000000f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2440_CopyWord4PlaneUnchained_00000002_0000000f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + case L28_235if_d_id : + L28_235if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2440_CopyWord4PlaneUnchained_00000002_0000000f_00000000_00000000_id : + S_2440_CopyWord4PlaneUnchained_00000002_0000000f_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2440) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2420if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2420if_f_id : + L13_2420if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_378if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_381w_d; + case L23_380w_t_id : + L23_380w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_380w_t; + case L23_381w_d_id : + L23_381w_d: ; + { extern IUH L23_379if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_379if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_378if_f_id : + L23_378if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_383w_d; + case L23_382w_t_id : + L23_382w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_382w_t; + case L23_383w_d_id : + L23_383w_d: ; + case L23_379if_d_id : + L23_379if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2441_UnchainedDwordWrite_00000002_00000008_00000000_id : + S_2441_UnchainedDwordWrite_00000002_00000008_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2441) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2421if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2421if_f_id : + L13_2421if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2423_UnchainedWordWrite_00000002_00000008_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2423_UnchainedWordWrite_00000002_00000008_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2423_UnchainedWordWrite_00000002_00000008_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2423_UnchainedWordWrite_00000002_00000008_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2442_UnchainedDwordWrite_00000002_00000009_00000000_id : + S_2442_UnchainedDwordWrite_00000002_00000009_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2442) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2422if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2422if_f_id : + L13_2422if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2424_UnchainedWordWrite_00000002_00000009_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2424_UnchainedWordWrite_00000002_00000009_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2424_UnchainedWordWrite_00000002_00000009_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2424_UnchainedWordWrite_00000002_00000009_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2443_UnchainedDwordWrite_00000002_0000000e_00000000_id : + S_2443_UnchainedDwordWrite_00000002_0000000e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2443) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2423if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2423if_f_id : + L13_2423if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2425_UnchainedWordWrite_00000002_0000000e_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2425_UnchainedWordWrite_00000002_0000000e_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2425_UnchainedWordWrite_00000002_0000000e_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2425_UnchainedWordWrite_00000002_0000000e_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2444_UnchainedDwordWrite_00000002_0000000f_00000000_id : + S_2444_UnchainedDwordWrite_00000002_0000000f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2444) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2424if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2424if_f_id : + L13_2424if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2426_UnchainedWordWrite_00000002_0000000f_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2426_UnchainedWordWrite_00000002_0000000f_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2426_UnchainedWordWrite_00000002_0000000f_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2426_UnchainedWordWrite_00000002_0000000f_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2445_UnchainedDwordFill_00000002_00000008_00000000_id : + S_2445_UnchainedDwordFill_00000002_00000008_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2445) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2425if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2425if_f_id : + L13_2425if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2427_UnchainedWordFill_00000002_00000008_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2427_UnchainedWordFill_00000002_00000008_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2427_UnchainedWordFill_00000002_00000008_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2427_UnchainedWordFill_00000002_00000008_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2446_UnchainedDwordFill_00000002_00000009_00000000_id : + S_2446_UnchainedDwordFill_00000002_00000009_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2446) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2426if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2426if_f_id : + L13_2426if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2428_UnchainedWordFill_00000002_00000009_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2428_UnchainedWordFill_00000002_00000009_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2428_UnchainedWordFill_00000002_00000009_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2428_UnchainedWordFill_00000002_00000009_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2447_UnchainedDwordFill_00000002_0000000e_00000000_id : + S_2447_UnchainedDwordFill_00000002_0000000e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2447) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2427if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2427if_f_id : + L13_2427if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2429_UnchainedWordFill_00000002_0000000e_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2429_UnchainedWordFill_00000002_0000000e_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2429_UnchainedWordFill_00000002_0000000e_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2429_UnchainedWordFill_00000002_0000000e_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2448_UnchainedDwordFill_00000002_0000000f_00000000_id : + S_2448_UnchainedDwordFill_00000002_0000000f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2448) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2428if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2428if_f_id : + L13_2428if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2430_UnchainedWordFill_00000002_0000000f_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2430_UnchainedWordFill_00000002_0000000f_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2430_UnchainedWordFill_00000002_0000000f_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2430_UnchainedWordFill_00000002_0000000f_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2449_UnchainedDwordMove_00000002_00000008_00000000_00000000_id : + S_2449_UnchainedDwordMove_00000002_00000008_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2449) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2429if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2429if_f_id : + L13_2429if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2431_UnchainedWordMove_00000002_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2431_UnchainedWordMove_00000002_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2450_UnchainedDwordMove_00000002_00000009_00000000_00000000_id : + S_2450_UnchainedDwordMove_00000002_00000009_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2450) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2430if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2430if_f_id : + L13_2430if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2434_UnchainedWordMove_00000002_00000009_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2434_UnchainedWordMove_00000002_00000009_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2451_UnchainedDwordMove_00000002_0000000e_00000000_00000000_id : + S_2451_UnchainedDwordMove_00000002_0000000e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2451) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2431if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2431if_f_id : + L13_2431if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2436_UnchainedWordMove_00000002_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2436_UnchainedWordMove_00000002_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2452_UnchainedDwordMove_00000002_0000000f_00000000_00000000_id : + S_2452_UnchainedDwordMove_00000002_0000000f_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2452) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2432if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2432if_f_id : + L13_2432if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2439_UnchainedWordMove_00000002_0000000f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2439_UnchainedWordMove_00000002_0000000f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2453_UnchainedByteWrite_00000003_00000008_00000000_id : + S_2453_UnchainedByteWrite_00000003_00000008_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2453) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2433if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2433if_f_id : + L13_2433if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+3) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2454_UnchainedByteWrite_00000003_00000009_00000000_id : + S_2454_UnchainedByteWrite_00000003_00000009_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2454) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2434if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2434if_f_id : + L13_2434if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+3) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2455_UnchainedByteWrite_00000003_0000000e_00000000_id : + S_2455_UnchainedByteWrite_00000003_0000000e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2455) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2435if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2435if_f_id : + L13_2435if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+3) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2456_UnchainedByteWrite_00000003_0000000f_00000000_id : + S_2456_UnchainedByteWrite_00000003_0000000f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2456) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2436if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2436if_f_id : + L13_2436if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+3) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2457_UnchainedByteFill_00000003_00000008_00000000_id : + S_2457_UnchainedByteFill_00000003_00000008_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2457) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2437if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2437if_f_id : + L13_2437if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+4) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_236if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_236if_f_id : + L28_236if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_237if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_237if_f_id : + L28_237if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_238if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_238if_f_id : + L28_238if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_239if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_239if_f_id : + L28_239if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2458_UnchainedByteFill_00000003_00000009_00000000_id : + S_2458_UnchainedByteFill_00000003_00000009_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2458) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2438if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2438if_f_id : + L13_2438if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+4) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)(r1+0)) = (IS32)(16474) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2264_Unchained4PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2264_Unchained4PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16475) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2459_UnchainedByteFill_00000003_0000000e_00000000_id : + S_2459_UnchainedByteFill_00000003_0000000e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2459) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2439if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2439if_f_id : + L13_2439if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+4) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_240if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_240if_f_id : + L28_240if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_241if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_241if_f_id : + L28_241if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_242if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_242if_f_id : + L28_242if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_243if_f; + *((IUH *)(r1+0)) = (IS32)(16366) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2153_Unchained1PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2153_Unchained1PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16367) ; + case L28_243if_f_id : + L28_243if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2460_UnchainedByteFill_00000003_0000000f_00000000_id : + S_2460_UnchainedByteFill_00000003_0000000f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2460) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2440if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2440if_f_id : + L13_2440if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+4) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)(r1+0)) = (IS32)(16474) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2264_Unchained4PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2264_Unchained4PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16475) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2461_UnchainedByteMove_00000003_00000008_00000000_00000000_id : + S_2461_UnchainedByteMove_00000003_00000008_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2461) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2441if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2441if_f_id : + L13_2441if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_244if_f; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2462_CopyBytePlnByPlnUnchained_00000003_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2462_CopyBytePlnByPlnUnchained_00000003_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + { extern IUH L28_245if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_245if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_244if_f_id : + L28_244if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2462_CopyBytePlnByPlnUnchained_00000003_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2462_CopyBytePlnByPlnUnchained_00000003_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + case L28_245if_d_id : + L28_245if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2462_CopyBytePlnByPlnUnchained_00000003_00000008_00000000_00000000_id : + S_2462_CopyBytePlnByPlnUnchained_00000003_00000008_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2462) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2442if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2442if_f_id : + L13_2442if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_384if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2463_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2463_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_384if_f_id : + L23_384if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_385if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2463_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2463_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_385if_f_id : + L23_385if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_386if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2463_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2463_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_386if_f_id : + L23_386if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_387if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2463_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2463_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_387if_f_id : + L23_387if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2463_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000000_id : + S_2463_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2463) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2443if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2443if_f_id : + L13_2443if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_388if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_391w_d; + case L23_390w_t_id : + L23_390w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_390w_t; + case L23_391w_d_id : + L23_391w_d: ; + { extern IUH L23_389if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_389if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_388if_f_id : + L23_388if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_393w_d; + case L23_392w_t_id : + L23_392w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_392w_t; + case L23_393w_d_id : + L23_393w_d: ; + case L23_389if_d_id : + L23_389if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2464_UnchainedByteMove_00000003_00000009_00000000_00000000_id : + S_2464_UnchainedByteMove_00000003_00000009_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2464) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2444if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2444if_f_id : + L13_2444if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_246if_f; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2465_CopyByte4PlaneUnchained_00000003_00000009_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2465_CopyByte4PlaneUnchained_00000003_00000009_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + { extern IUH L28_247if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_247if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_246if_f_id : + L28_246if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2465_CopyByte4PlaneUnchained_00000003_00000009_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2465_CopyByte4PlaneUnchained_00000003_00000009_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + case L28_247if_d_id : + L28_247if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2465_CopyByte4PlaneUnchained_00000003_00000009_00000000_00000000_id : + S_2465_CopyByte4PlaneUnchained_00000003_00000009_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2465) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2445if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2445if_f_id : + L13_2445if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_394if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_397w_d; + case L23_396w_t_id : + L23_396w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_396w_t; + case L23_397w_d_id : + L23_397w_d: ; + { extern IUH L23_395if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_395if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_394if_f_id : + L23_394if_f: ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_399w_d; + case L23_398w_t_id : + L23_398w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+9)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_398w_t; + case L23_399w_d_id : + L23_399w_d: ; + case L23_395if_d_id : + L23_395if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2466_UnchainedByteMove_00000003_0000000e_00000000_00000000_id : + S_2466_UnchainedByteMove_00000003_0000000e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2466) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2446if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2446if_f_id : + L13_2446if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_248if_f; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2467_CopyBytePlnByPlnUnchained_00000003_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2467_CopyBytePlnByPlnUnchained_00000003_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + { extern IUH L28_249if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_249if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_248if_f_id : + L28_248if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2467_CopyBytePlnByPlnUnchained_00000003_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2467_CopyBytePlnByPlnUnchained_00000003_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + case L28_249if_d_id : + L28_249if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2467_CopyBytePlnByPlnUnchained_00000003_0000000e_00000000_00000000_id : + S_2467_CopyBytePlnByPlnUnchained_00000003_0000000e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2467) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2447if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2447if_f_id : + L13_2447if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_400if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2468_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2468_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_400if_f_id : + L23_400if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_401if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2468_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2468_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_401if_f_id : + L23_401if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_402if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2468_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2468_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_402if_f_id : + L23_402if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_403if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2468_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2468_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_403if_f_id : + L23_403if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2468_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000000_id : + S_2468_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2468) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2448if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2448if_f_id : + L13_2448if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_404if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_407w_d; + case L23_406w_t_id : + L23_406w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_406w_t; + case L23_407w_d_id : + L23_407w_d: ; + { extern IUH L23_405if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_405if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_404if_f_id : + L23_404if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_409w_d; + case L23_408w_t_id : + L23_408w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1296) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_408w_t; + case L23_409w_d_id : + L23_409w_d: ; + case L23_405if_d_id : + L23_405if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2469_UnchainedByteMove_00000003_0000000f_00000000_00000000_id : + S_2469_UnchainedByteMove_00000003_0000000f_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2469) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2449if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2449if_f_id : + L13_2449if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_250if_f; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2470_CopyByte4PlaneUnchained_00000003_0000000f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2470_CopyByte4PlaneUnchained_00000003_0000000f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + { extern IUH L28_251if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_251if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_250if_f_id : + L28_250if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2470_CopyByte4PlaneUnchained_00000003_0000000f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2470_CopyByte4PlaneUnchained_00000003_0000000f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + case L28_251if_d_id : + L28_251if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid012.c b/private/mvdm/softpc.new/base/cvidc/sevid012.c new file mode 100644 index 000000000..cfbf9fcb9 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid012.c @@ -0,0 +1,4120 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_2470_CopyByte4PlaneUnchained_00000003_0000000f_00000000_00000000_id, +L13_2450if_f_id, +L23_412w_t_id, +L23_413w_d_id, +L23_410if_f_id, +L23_414w_t_id, +L23_415w_d_id, +L23_411if_d_id, +S_2471_UnchainedWordWrite_00000003_00000008_00000000_id, +L13_2451if_f_id, +S_2472_UnchainedWordWrite_00000003_00000009_00000000_id, +L13_2452if_f_id, +S_2473_UnchainedWordWrite_00000003_0000000e_00000000_id, +L13_2453if_f_id, +S_2474_UnchainedWordWrite_00000003_0000000f_00000000_id, +L13_2454if_f_id, +S_2475_UnchainedWordFill_00000003_00000008_00000000_id, +L13_2455if_f_id, +L28_252if_f_id, +L28_253if_f_id, +L28_254if_f_id, +L28_255if_f_id, +S_2476_UnchainedWordFill_00000003_00000009_00000000_id, +L13_2456if_f_id, +S_2477_UnchainedWordFill_00000003_0000000e_00000000_id, +L13_2457if_f_id, +L28_256if_f_id, +L28_257if_f_id, +L28_258if_f_id, +L28_259if_f_id, +S_2478_UnchainedWordFill_00000003_0000000f_00000000_id, +L13_2458if_f_id, +S_2479_UnchainedWordMove_00000003_00000008_00000000_00000000_id, +L13_2459if_f_id, +L28_260if_f_id, +L28_261if_d_id, +S_2480_CopyWordPlnByPlnUnchained_00000003_00000008_00000000_00000000_id, +L13_2460if_f_id, +L23_416if_f_id, +L23_417if_f_id, +L23_418if_f_id, +L23_419if_f_id, +S_2481_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000000_id, +L13_2461if_f_id, +L23_422w_t_id, +L23_423w_d_id, +L23_420if_f_id, +L23_424w_t_id, +L23_425w_d_id, +L23_421if_d_id, +S_2482_UnchainedWordMove_00000003_00000009_00000000_00000000_id, +L13_2462if_f_id, +L28_262if_f_id, +L28_263if_d_id, +S_2483_CopyWord4PlaneUnchained_00000003_00000009_00000000_00000000_id, +L13_2463if_f_id, +L23_428w_t_id, +L23_429w_d_id, +L23_426if_f_id, +L23_430w_t_id, +L23_431w_d_id, +L23_427if_d_id, +S_2484_UnchainedWordMove_00000003_0000000e_00000000_00000000_id, +L13_2464if_f_id, +L28_264if_f_id, +L28_265if_d_id, +S_2485_CopyWordPlnByPlnUnchained_00000003_0000000e_00000000_00000000_id, +L13_2465if_f_id, +L23_432if_f_id, +L23_433if_f_id, +L23_434if_f_id, +L23_435if_f_id, +S_2486_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000000_id, +L13_2466if_f_id, +L23_438w_t_id, +L23_439w_d_id, +L23_436if_f_id, +L23_440w_t_id, +L23_441w_d_id, +L23_437if_d_id, +S_2487_UnchainedWordMove_00000003_0000000f_00000000_00000000_id, +L13_2467if_f_id, +L28_266if_f_id, +L28_267if_d_id, +S_2488_CopyWord4PlaneUnchained_00000003_0000000f_00000000_00000000_id, +L13_2468if_f_id, +L23_444w_t_id, +L23_445w_d_id, +L23_442if_f_id, +L23_446w_t_id, +L23_447w_d_id, +L23_443if_d_id, +S_2489_UnchainedDwordWrite_00000003_00000008_00000000_id, +L13_2469if_f_id, +S_2490_UnchainedDwordWrite_00000003_00000009_00000000_id, +L13_2470if_f_id, +S_2491_UnchainedDwordWrite_00000003_0000000e_00000000_id, +L13_2471if_f_id, +S_2492_UnchainedDwordWrite_00000003_0000000f_00000000_id, +L13_2472if_f_id, +S_2493_UnchainedDwordFill_00000003_00000008_00000000_id, +L13_2473if_f_id, +S_2494_UnchainedDwordFill_00000003_00000009_00000000_id, +L13_2474if_f_id, +S_2495_UnchainedDwordFill_00000003_0000000e_00000000_id, +L13_2475if_f_id, +S_2496_UnchainedDwordFill_00000003_0000000f_00000000_id, +L13_2476if_f_id, +S_2497_UnchainedDwordMove_00000003_00000008_00000000_00000000_id, +L13_2477if_f_id, +S_2498_UnchainedDwordMove_00000003_00000009_00000000_00000000_id, +L13_2478if_f_id, +S_2499_UnchainedDwordMove_00000003_0000000e_00000000_00000000_id, +L13_2479if_f_id, +S_2500_UnchainedDwordMove_00000003_0000000f_00000000_00000000_id, +L13_2480if_f_id, +S_2501_UnchainedByteMove_00000000_00000008_00000000_00000001_id, +L13_2481if_f_id, +L28_268if_f_id, +L28_269if_d_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_2470_CopyByte4PlaneUnchained_00000003_0000000f_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2470_CopyByte4PlaneUnchained_00000003_0000000f_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2470_CopyByte4PlaneUnchained_00000003_0000000f_00000000_00000000 = (IHPE)S_2470_CopyByte4PlaneUnchained_00000003_0000000f_00000000_00000000 ; +LOCAL IUH L13_2450if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2450if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2450if_f = (IHPE)L13_2450if_f ; +LOCAL IUH L23_412w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_412w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_412w_t = (IHPE)L23_412w_t ; +LOCAL IUH L23_413w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_413w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_413w_d = (IHPE)L23_413w_d ; +LOCAL IUH L23_410if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_410if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_410if_f = (IHPE)L23_410if_f ; +LOCAL IUH L23_414w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_414w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_414w_t = (IHPE)L23_414w_t ; +LOCAL IUH L23_415w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_415w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_415w_d = (IHPE)L23_415w_d ; +LOCAL IUH L23_411if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_411if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_411if_d = (IHPE)L23_411if_d ; +GLOBAL IUH S_2471_UnchainedWordWrite_00000003_00000008_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2471_UnchainedWordWrite_00000003_00000008_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2471_UnchainedWordWrite_00000003_00000008_00000000 = (IHPE)S_2471_UnchainedWordWrite_00000003_00000008_00000000 ; +LOCAL IUH L13_2451if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2451if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2451if_f = (IHPE)L13_2451if_f ; +GLOBAL IUH S_2472_UnchainedWordWrite_00000003_00000009_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2472_UnchainedWordWrite_00000003_00000009_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2472_UnchainedWordWrite_00000003_00000009_00000000 = (IHPE)S_2472_UnchainedWordWrite_00000003_00000009_00000000 ; +LOCAL IUH L13_2452if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2452if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2452if_f = (IHPE)L13_2452if_f ; +GLOBAL IUH S_2473_UnchainedWordWrite_00000003_0000000e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2473_UnchainedWordWrite_00000003_0000000e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2473_UnchainedWordWrite_00000003_0000000e_00000000 = (IHPE)S_2473_UnchainedWordWrite_00000003_0000000e_00000000 ; +LOCAL IUH L13_2453if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2453if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2453if_f = (IHPE)L13_2453if_f ; +GLOBAL IUH S_2474_UnchainedWordWrite_00000003_0000000f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2474_UnchainedWordWrite_00000003_0000000f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2474_UnchainedWordWrite_00000003_0000000f_00000000 = (IHPE)S_2474_UnchainedWordWrite_00000003_0000000f_00000000 ; +LOCAL IUH L13_2454if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2454if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2454if_f = (IHPE)L13_2454if_f ; +GLOBAL IUH S_2475_UnchainedWordFill_00000003_00000008_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2475_UnchainedWordFill_00000003_00000008_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2475_UnchainedWordFill_00000003_00000008_00000000 = (IHPE)S_2475_UnchainedWordFill_00000003_00000008_00000000 ; +LOCAL IUH L13_2455if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2455if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2455if_f = (IHPE)L13_2455if_f ; +LOCAL IUH L28_252if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_252if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_252if_f = (IHPE)L28_252if_f ; +LOCAL IUH L28_253if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_253if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_253if_f = (IHPE)L28_253if_f ; +LOCAL IUH L28_254if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_254if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_254if_f = (IHPE)L28_254if_f ; +LOCAL IUH L28_255if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_255if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_255if_f = (IHPE)L28_255if_f ; +GLOBAL IUH S_2476_UnchainedWordFill_00000003_00000009_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2476_UnchainedWordFill_00000003_00000009_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2476_UnchainedWordFill_00000003_00000009_00000000 = (IHPE)S_2476_UnchainedWordFill_00000003_00000009_00000000 ; +LOCAL IUH L13_2456if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2456if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2456if_f = (IHPE)L13_2456if_f ; +GLOBAL IUH S_2477_UnchainedWordFill_00000003_0000000e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2477_UnchainedWordFill_00000003_0000000e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2477_UnchainedWordFill_00000003_0000000e_00000000 = (IHPE)S_2477_UnchainedWordFill_00000003_0000000e_00000000 ; +LOCAL IUH L13_2457if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2457if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2457if_f = (IHPE)L13_2457if_f ; +LOCAL IUH L28_256if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_256if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_256if_f = (IHPE)L28_256if_f ; +LOCAL IUH L28_257if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_257if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_257if_f = (IHPE)L28_257if_f ; +LOCAL IUH L28_258if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_258if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_258if_f = (IHPE)L28_258if_f ; +LOCAL IUH L28_259if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_259if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_259if_f = (IHPE)L28_259if_f ; +GLOBAL IUH S_2478_UnchainedWordFill_00000003_0000000f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2478_UnchainedWordFill_00000003_0000000f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2478_UnchainedWordFill_00000003_0000000f_00000000 = (IHPE)S_2478_UnchainedWordFill_00000003_0000000f_00000000 ; +LOCAL IUH L13_2458if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2458if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2458if_f = (IHPE)L13_2458if_f ; +GLOBAL IUH S_2479_UnchainedWordMove_00000003_00000008_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2479_UnchainedWordMove_00000003_00000008_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2479_UnchainedWordMove_00000003_00000008_00000000_00000000 = (IHPE)S_2479_UnchainedWordMove_00000003_00000008_00000000_00000000 ; +LOCAL IUH L13_2459if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2459if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2459if_f = (IHPE)L13_2459if_f ; +LOCAL IUH L28_260if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_260if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_260if_f = (IHPE)L28_260if_f ; +LOCAL IUH L28_261if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_261if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_261if_d = (IHPE)L28_261if_d ; +GLOBAL IUH S_2480_CopyWordPlnByPlnUnchained_00000003_00000008_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2480_CopyWordPlnByPlnUnchained_00000003_00000008_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2480_CopyWordPlnByPlnUnchained_00000003_00000008_00000000_00000000 = (IHPE)S_2480_CopyWordPlnByPlnUnchained_00000003_00000008_00000000_00000000 ; +LOCAL IUH L13_2460if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2460if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2460if_f = (IHPE)L13_2460if_f ; +LOCAL IUH L23_416if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_416if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_416if_f = (IHPE)L23_416if_f ; +LOCAL IUH L23_417if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_417if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_417if_f = (IHPE)L23_417if_f ; +LOCAL IUH L23_418if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_418if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_418if_f = (IHPE)L23_418if_f ; +LOCAL IUH L23_419if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_419if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_419if_f = (IHPE)L23_419if_f ; +GLOBAL IUH S_2481_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2481_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2481_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000000 = (IHPE)S_2481_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000000 ; +LOCAL IUH L13_2461if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2461if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2461if_f = (IHPE)L13_2461if_f ; +LOCAL IUH L23_422w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_422w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_422w_t = (IHPE)L23_422w_t ; +LOCAL IUH L23_423w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_423w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_423w_d = (IHPE)L23_423w_d ; +LOCAL IUH L23_420if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_420if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_420if_f = (IHPE)L23_420if_f ; +LOCAL IUH L23_424w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_424w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_424w_t = (IHPE)L23_424w_t ; +LOCAL IUH L23_425w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_425w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_425w_d = (IHPE)L23_425w_d ; +LOCAL IUH L23_421if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_421if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_421if_d = (IHPE)L23_421if_d ; +GLOBAL IUH S_2482_UnchainedWordMove_00000003_00000009_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2482_UnchainedWordMove_00000003_00000009_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2482_UnchainedWordMove_00000003_00000009_00000000_00000000 = (IHPE)S_2482_UnchainedWordMove_00000003_00000009_00000000_00000000 ; +LOCAL IUH L13_2462if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2462if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2462if_f = (IHPE)L13_2462if_f ; +LOCAL IUH L28_262if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_262if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_262if_f = (IHPE)L28_262if_f ; +LOCAL IUH L28_263if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_263if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_263if_d = (IHPE)L28_263if_d ; +GLOBAL IUH S_2483_CopyWord4PlaneUnchained_00000003_00000009_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2483_CopyWord4PlaneUnchained_00000003_00000009_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2483_CopyWord4PlaneUnchained_00000003_00000009_00000000_00000000 = (IHPE)S_2483_CopyWord4PlaneUnchained_00000003_00000009_00000000_00000000 ; +LOCAL IUH L13_2463if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2463if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2463if_f = (IHPE)L13_2463if_f ; +LOCAL IUH L23_428w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_428w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_428w_t = (IHPE)L23_428w_t ; +LOCAL IUH L23_429w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_429w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_429w_d = (IHPE)L23_429w_d ; +LOCAL IUH L23_426if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_426if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_426if_f = (IHPE)L23_426if_f ; +LOCAL IUH L23_430w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_430w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_430w_t = (IHPE)L23_430w_t ; +LOCAL IUH L23_431w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_431w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_431w_d = (IHPE)L23_431w_d ; +LOCAL IUH L23_427if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_427if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_427if_d = (IHPE)L23_427if_d ; +GLOBAL IUH S_2484_UnchainedWordMove_00000003_0000000e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2484_UnchainedWordMove_00000003_0000000e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2484_UnchainedWordMove_00000003_0000000e_00000000_00000000 = (IHPE)S_2484_UnchainedWordMove_00000003_0000000e_00000000_00000000 ; +LOCAL IUH L13_2464if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2464if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2464if_f = (IHPE)L13_2464if_f ; +LOCAL IUH L28_264if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_264if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_264if_f = (IHPE)L28_264if_f ; +LOCAL IUH L28_265if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_265if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_265if_d = (IHPE)L28_265if_d ; +GLOBAL IUH S_2485_CopyWordPlnByPlnUnchained_00000003_0000000e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2485_CopyWordPlnByPlnUnchained_00000003_0000000e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2485_CopyWordPlnByPlnUnchained_00000003_0000000e_00000000_00000000 = (IHPE)S_2485_CopyWordPlnByPlnUnchained_00000003_0000000e_00000000_00000000 ; +LOCAL IUH L13_2465if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2465if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2465if_f = (IHPE)L13_2465if_f ; +LOCAL IUH L23_432if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_432if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_432if_f = (IHPE)L23_432if_f ; +LOCAL IUH L23_433if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_433if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_433if_f = (IHPE)L23_433if_f ; +LOCAL IUH L23_434if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_434if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_434if_f = (IHPE)L23_434if_f ; +LOCAL IUH L23_435if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_435if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_435if_f = (IHPE)L23_435if_f ; +GLOBAL IUH S_2486_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2486_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2486_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000000 = (IHPE)S_2486_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000000 ; +LOCAL IUH L13_2466if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2466if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2466if_f = (IHPE)L13_2466if_f ; +LOCAL IUH L23_438w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_438w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_438w_t = (IHPE)L23_438w_t ; +LOCAL IUH L23_439w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_439w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_439w_d = (IHPE)L23_439w_d ; +LOCAL IUH L23_436if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_436if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_436if_f = (IHPE)L23_436if_f ; +LOCAL IUH L23_440w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_440w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_440w_t = (IHPE)L23_440w_t ; +LOCAL IUH L23_441w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_441w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_441w_d = (IHPE)L23_441w_d ; +LOCAL IUH L23_437if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_437if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_437if_d = (IHPE)L23_437if_d ; +GLOBAL IUH S_2487_UnchainedWordMove_00000003_0000000f_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2487_UnchainedWordMove_00000003_0000000f_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2487_UnchainedWordMove_00000003_0000000f_00000000_00000000 = (IHPE)S_2487_UnchainedWordMove_00000003_0000000f_00000000_00000000 ; +LOCAL IUH L13_2467if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2467if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2467if_f = (IHPE)L13_2467if_f ; +LOCAL IUH L28_266if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_266if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_266if_f = (IHPE)L28_266if_f ; +LOCAL IUH L28_267if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_267if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_267if_d = (IHPE)L28_267if_d ; +GLOBAL IUH S_2488_CopyWord4PlaneUnchained_00000003_0000000f_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2488_CopyWord4PlaneUnchained_00000003_0000000f_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2488_CopyWord4PlaneUnchained_00000003_0000000f_00000000_00000000 = (IHPE)S_2488_CopyWord4PlaneUnchained_00000003_0000000f_00000000_00000000 ; +LOCAL IUH L13_2468if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2468if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2468if_f = (IHPE)L13_2468if_f ; +LOCAL IUH L23_444w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_444w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_444w_t = (IHPE)L23_444w_t ; +LOCAL IUH L23_445w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_445w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_445w_d = (IHPE)L23_445w_d ; +LOCAL IUH L23_442if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_442if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_442if_f = (IHPE)L23_442if_f ; +LOCAL IUH L23_446w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_446w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_446w_t = (IHPE)L23_446w_t ; +LOCAL IUH L23_447w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_447w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_447w_d = (IHPE)L23_447w_d ; +LOCAL IUH L23_443if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_443if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_443if_d = (IHPE)L23_443if_d ; +GLOBAL IUH S_2489_UnchainedDwordWrite_00000003_00000008_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2489_UnchainedDwordWrite_00000003_00000008_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2489_UnchainedDwordWrite_00000003_00000008_00000000 = (IHPE)S_2489_UnchainedDwordWrite_00000003_00000008_00000000 ; +LOCAL IUH L13_2469if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2469if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2469if_f = (IHPE)L13_2469if_f ; +GLOBAL IUH S_2490_UnchainedDwordWrite_00000003_00000009_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2490_UnchainedDwordWrite_00000003_00000009_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2490_UnchainedDwordWrite_00000003_00000009_00000000 = (IHPE)S_2490_UnchainedDwordWrite_00000003_00000009_00000000 ; +LOCAL IUH L13_2470if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2470if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2470if_f = (IHPE)L13_2470if_f ; +GLOBAL IUH S_2491_UnchainedDwordWrite_00000003_0000000e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2491_UnchainedDwordWrite_00000003_0000000e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2491_UnchainedDwordWrite_00000003_0000000e_00000000 = (IHPE)S_2491_UnchainedDwordWrite_00000003_0000000e_00000000 ; +LOCAL IUH L13_2471if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2471if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2471if_f = (IHPE)L13_2471if_f ; +GLOBAL IUH S_2492_UnchainedDwordWrite_00000003_0000000f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2492_UnchainedDwordWrite_00000003_0000000f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2492_UnchainedDwordWrite_00000003_0000000f_00000000 = (IHPE)S_2492_UnchainedDwordWrite_00000003_0000000f_00000000 ; +LOCAL IUH L13_2472if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2472if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2472if_f = (IHPE)L13_2472if_f ; +GLOBAL IUH S_2493_UnchainedDwordFill_00000003_00000008_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2493_UnchainedDwordFill_00000003_00000008_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2493_UnchainedDwordFill_00000003_00000008_00000000 = (IHPE)S_2493_UnchainedDwordFill_00000003_00000008_00000000 ; +LOCAL IUH L13_2473if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2473if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2473if_f = (IHPE)L13_2473if_f ; +GLOBAL IUH S_2494_UnchainedDwordFill_00000003_00000009_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2494_UnchainedDwordFill_00000003_00000009_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2494_UnchainedDwordFill_00000003_00000009_00000000 = (IHPE)S_2494_UnchainedDwordFill_00000003_00000009_00000000 ; +LOCAL IUH L13_2474if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2474if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2474if_f = (IHPE)L13_2474if_f ; +GLOBAL IUH S_2495_UnchainedDwordFill_00000003_0000000e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2495_UnchainedDwordFill_00000003_0000000e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2495_UnchainedDwordFill_00000003_0000000e_00000000 = (IHPE)S_2495_UnchainedDwordFill_00000003_0000000e_00000000 ; +LOCAL IUH L13_2475if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2475if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2475if_f = (IHPE)L13_2475if_f ; +GLOBAL IUH S_2496_UnchainedDwordFill_00000003_0000000f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2496_UnchainedDwordFill_00000003_0000000f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2496_UnchainedDwordFill_00000003_0000000f_00000000 = (IHPE)S_2496_UnchainedDwordFill_00000003_0000000f_00000000 ; +LOCAL IUH L13_2476if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2476if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2476if_f = (IHPE)L13_2476if_f ; +GLOBAL IUH S_2497_UnchainedDwordMove_00000003_00000008_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2497_UnchainedDwordMove_00000003_00000008_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2497_UnchainedDwordMove_00000003_00000008_00000000_00000000 = (IHPE)S_2497_UnchainedDwordMove_00000003_00000008_00000000_00000000 ; +LOCAL IUH L13_2477if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2477if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2477if_f = (IHPE)L13_2477if_f ; +GLOBAL IUH S_2498_UnchainedDwordMove_00000003_00000009_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2498_UnchainedDwordMove_00000003_00000009_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2498_UnchainedDwordMove_00000003_00000009_00000000_00000000 = (IHPE)S_2498_UnchainedDwordMove_00000003_00000009_00000000_00000000 ; +LOCAL IUH L13_2478if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2478if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2478if_f = (IHPE)L13_2478if_f ; +GLOBAL IUH S_2499_UnchainedDwordMove_00000003_0000000e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2499_UnchainedDwordMove_00000003_0000000e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2499_UnchainedDwordMove_00000003_0000000e_00000000_00000000 = (IHPE)S_2499_UnchainedDwordMove_00000003_0000000e_00000000_00000000 ; +LOCAL IUH L13_2479if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2479if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2479if_f = (IHPE)L13_2479if_f ; +GLOBAL IUH S_2500_UnchainedDwordMove_00000003_0000000f_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2500_UnchainedDwordMove_00000003_0000000f_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2500_UnchainedDwordMove_00000003_0000000f_00000000_00000000 = (IHPE)S_2500_UnchainedDwordMove_00000003_0000000f_00000000_00000000 ; +LOCAL IUH L13_2480if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2480if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2480if_f = (IHPE)L13_2480if_f ; +GLOBAL IUH S_2501_UnchainedByteMove_00000000_00000008_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2501_UnchainedByteMove_00000000_00000008_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2501_UnchainedByteMove_00000000_00000008_00000000_00000001 = (IHPE)S_2501_UnchainedByteMove_00000000_00000008_00000000_00000001 ; +LOCAL IUH L13_2481if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2481if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2481if_f = (IHPE)L13_2481if_f ; +LOCAL IUH L28_268if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_268if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_268if_f = (IHPE)L28_268if_f ; +LOCAL IUH L28_269if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_269if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_269if_d = (IHPE)L28_269if_d ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + case S_2470_CopyByte4PlaneUnchained_00000003_0000000f_00000000_00000000_id : + S_2470_CopyByte4PlaneUnchained_00000003_0000000f_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2470) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2450if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2450if_f_id : + L13_2450if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_410if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_413w_d; + case L23_412w_t_id : + L23_412w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_412w_t; + case L23_413w_d_id : + L23_413w_d: ; + { extern IUH L23_411if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_411if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_410if_f_id : + L23_410if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_415w_d; + case L23_414w_t_id : + L23_414w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1296) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+9)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_414w_t; + case L23_415w_d_id : + L23_415w_d: ; + case L23_411if_d_id : + L23_411if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2471_UnchainedWordWrite_00000003_00000008_00000000_id : + S_2471_UnchainedWordWrite_00000003_00000008_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2471) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2451if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2451if_f_id : + L13_2451if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+4) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+3) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+4) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2472_UnchainedWordWrite_00000003_00000009_00000000_id : + S_2472_UnchainedWordWrite_00000003_00000009_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2472) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2452if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2452if_f_id : + L13_2452if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+4) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)(LocalIUH+3) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)(LocalIUH+4) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2473_UnchainedWordWrite_00000003_0000000e_00000000_id : + S_2473_UnchainedWordWrite_00000003_0000000e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2473) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2453if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2453if_f_id : + L13_2453if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+4) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+3) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+4) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1324) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2474_UnchainedWordWrite_00000003_0000000f_00000000_id : + S_2474_UnchainedWordWrite_00000003_0000000f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2474) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2454if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2454if_f_id : + L13_2454if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+3) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+3) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = (*((IU32 *)(LocalIUH+3) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+4) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+3) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+4) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2475_UnchainedWordFill_00000003_00000008_00000000_id : + S_2475_UnchainedWordFill_00000003_00000008_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2475) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2455if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2455if_f_id : + L13_2455if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+5) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+5) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+5) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+5) + REGLONG) = (*((IU32 *)(LocalIUH+5) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+4) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+5) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_252if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_252if_f_id : + L28_252if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_253if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU8 *)&(r4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+5) )) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_253if_f_id : + L28_253if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_254if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_254if_f_id : + L28_254if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_255if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_255if_f_id : + L28_255if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2476_UnchainedWordFill_00000003_00000009_00000000_id : + S_2476_UnchainedWordFill_00000003_00000009_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2476) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2456if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2456if_f_id : + L13_2456if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+5) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+5) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+5) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+5) + REGLONG) = (*((IU32 *)(LocalIUH+5) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+4) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+5) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)(r1+0)) = (IS32)(16484) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2319_Unchained4PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2319_Unchained4PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16485) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2477_UnchainedWordFill_00000003_0000000e_00000000_id : + S_2477_UnchainedWordFill_00000003_0000000e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2477) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2457if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2457if_f_id : + L13_2457if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+5) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+5) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+5) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+5) + REGLONG) = (*((IU32 *)(LocalIUH+5) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+4) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+5) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_256if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_256if_f_id : + L28_256if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_257if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+4) )) ; + *((IU8 *)&(r4) + REGBYTE) = *(UOFF_15_8( (LocalIUH+5) )) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_257if_f_id : + L28_257if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_258if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_258if_f_id : + L28_258if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_259if_f; + *((IUH *)(r1+0)) = (IS32)(16378) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2159_Unchained1PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2159_Unchained1PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16379) ; + case L28_259if_f_id : + L28_259if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2478_UnchainedWordFill_00000003_0000000f_00000000_id : + S_2478_UnchainedWordFill_00000003_0000000f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2478) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2458if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2458if_f_id : + L13_2458if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *(UOFF_15_8( (LocalIUH+4) )) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+4) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+4) + REGLONG) = (*((IU32 *)(LocalIUH+4) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IU8 *)(LocalIUH+5) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; + *(UOFF_15_8( (LocalIUH+5) )) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+5) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+5) + REGLONG) = (*((IU32 *)(LocalIUH+5) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+4) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+5) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)(r1+0)) = (IS32)(16484) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2319_Unchained4PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2319_Unchained4PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16485) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2479_UnchainedWordMove_00000003_00000008_00000000_00000000_id : + S_2479_UnchainedWordMove_00000003_00000008_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2479) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2459if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2459if_f_id : + L13_2459if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_260if_f; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2480_CopyWordPlnByPlnUnchained_00000003_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2480_CopyWordPlnByPlnUnchained_00000003_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + { extern IUH L28_261if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_261if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_260if_f_id : + L28_260if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2480_CopyWordPlnByPlnUnchained_00000003_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2480_CopyWordPlnByPlnUnchained_00000003_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + case L28_261if_d_id : + L28_261if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2480_CopyWordPlnByPlnUnchained_00000003_00000008_00000000_00000000_id : + S_2480_CopyWordPlnByPlnUnchained_00000003_00000008_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2480) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2460if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2460if_f_id : + L13_2460if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_416if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2481_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2481_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_416if_f_id : + L23_416if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_417if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2481_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2481_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_417if_f_id : + L23_417if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_418if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2481_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2481_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_418if_f_id : + L23_418if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_419if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2481_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2481_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_419if_f_id : + L23_419if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2481_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000000_id : + S_2481_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2481) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2461if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2461if_f_id : + L13_2461if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_420if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_423w_d; + case L23_422w_t_id : + L23_422w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_422w_t; + case L23_423w_d_id : + L23_423w_d: ; + { extern IUH L23_421if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_421if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_420if_f_id : + L23_420if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_425w_d; + case L23_424w_t_id : + L23_424w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_424w_t; + case L23_425w_d_id : + L23_425w_d: ; + case L23_421if_d_id : + L23_421if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2482_UnchainedWordMove_00000003_00000009_00000000_00000000_id : + S_2482_UnchainedWordMove_00000003_00000009_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2482) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2462if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2462if_f_id : + L13_2462if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_262if_f; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2483_CopyWord4PlaneUnchained_00000003_00000009_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2483_CopyWord4PlaneUnchained_00000003_00000009_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + { extern IUH L28_263if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_263if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_262if_f_id : + L28_262if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2483_CopyWord4PlaneUnchained_00000003_00000009_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2483_CopyWord4PlaneUnchained_00000003_00000009_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + case L28_263if_d_id : + L28_263if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2483_CopyWord4PlaneUnchained_00000003_00000009_00000000_00000000_id : + S_2483_CopyWord4PlaneUnchained_00000003_00000009_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2483) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2463if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2463if_f_id : + L13_2463if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_426if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_429w_d; + case L23_428w_t_id : + L23_428w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_428w_t; + case L23_429w_d_id : + L23_429w_d: ; + { extern IUH L23_427if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_427if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_426if_f_id : + L23_426if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_431w_d; + case L23_430w_t_id : + L23_430w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_430w_t; + case L23_431w_d_id : + L23_431w_d: ; + case L23_427if_d_id : + L23_427if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2484_UnchainedWordMove_00000003_0000000e_00000000_00000000_id : + S_2484_UnchainedWordMove_00000003_0000000e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2484) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2464if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2464if_f_id : + L13_2464if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_264if_f; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2485_CopyWordPlnByPlnUnchained_00000003_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2485_CopyWordPlnByPlnUnchained_00000003_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + { extern IUH L28_265if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_265if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_264if_f_id : + L28_264if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2485_CopyWordPlnByPlnUnchained_00000003_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2485_CopyWordPlnByPlnUnchained_00000003_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + case L28_265if_d_id : + L28_265if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2485_CopyWordPlnByPlnUnchained_00000003_0000000e_00000000_00000000_id : + S_2485_CopyWordPlnByPlnUnchained_00000003_0000000e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2485) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2465if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2465if_f_id : + L13_2465if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_432if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2486_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2486_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_432if_f_id : + L23_432if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_433if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2486_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2486_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_433if_f_id : + L23_433if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_434if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2486_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2486_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_434if_f_id : + L23_434if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_435if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2486_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2486_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_435if_f_id : + L23_435if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2486_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000000_id : + S_2486_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2486) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2466if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2466if_f_id : + L13_2466if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_436if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_439w_d; + case L23_438w_t_id : + L23_438w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_438w_t; + case L23_439w_d_id : + L23_439w_d: ; + { extern IUH L23_437if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_437if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_436if_f_id : + L23_436if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_441w_d; + case L23_440w_t_id : + L23_440w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1296) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1296) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_440w_t; + case L23_441w_d_id : + L23_441w_d: ; + case L23_437if_d_id : + L23_437if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2487_UnchainedWordMove_00000003_0000000f_00000000_00000000_id : + S_2487_UnchainedWordMove_00000003_0000000f_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2487) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2467if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2467if_f_id : + L13_2467if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L28_266if_f; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2488_CopyWord4PlaneUnchained_00000003_0000000f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2488_CopyWord4PlaneUnchained_00000003_0000000f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + { extern IUH L28_267if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_267if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_266if_f_id : + L28_266if_f: ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2488_CopyWord4PlaneUnchained_00000003_0000000f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2488_CopyWord4PlaneUnchained_00000003_0000000f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + case L28_267if_d_id : + L28_267if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2488_CopyWord4PlaneUnchained_00000003_0000000f_00000000_00000000_id : + S_2488_CopyWord4PlaneUnchained_00000003_0000000f_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2488) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2468if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2468if_f_id : + L13_2468if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_442if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_445w_d; + case L23_444w_t_id : + L23_444w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_444w_t; + case L23_445w_d_id : + L23_445w_d: ; + { extern IUH L23_443if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_443if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_442if_f_id : + L23_442if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_447w_d; + case L23_446w_t_id : + L23_446w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1296) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1296) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_446w_t; + case L23_447w_d_id : + L23_447w_d: ; + case L23_443if_d_id : + L23_443if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2489_UnchainedDwordWrite_00000003_00000008_00000000_id : + S_2489_UnchainedDwordWrite_00000003_00000008_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2489) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2469if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2469if_f_id : + L13_2469if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2471_UnchainedWordWrite_00000003_00000008_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2471_UnchainedWordWrite_00000003_00000008_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2471_UnchainedWordWrite_00000003_00000008_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2471_UnchainedWordWrite_00000003_00000008_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2490_UnchainedDwordWrite_00000003_00000009_00000000_id : + S_2490_UnchainedDwordWrite_00000003_00000009_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2490) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2470if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2470if_f_id : + L13_2470if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2472_UnchainedWordWrite_00000003_00000009_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2472_UnchainedWordWrite_00000003_00000009_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2472_UnchainedWordWrite_00000003_00000009_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2472_UnchainedWordWrite_00000003_00000009_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2491_UnchainedDwordWrite_00000003_0000000e_00000000_id : + S_2491_UnchainedDwordWrite_00000003_0000000e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2491) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2471if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2471if_f_id : + L13_2471if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2473_UnchainedWordWrite_00000003_0000000e_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2473_UnchainedWordWrite_00000003_0000000e_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2473_UnchainedWordWrite_00000003_0000000e_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2473_UnchainedWordWrite_00000003_0000000e_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2492_UnchainedDwordWrite_00000003_0000000f_00000000_id : + S_2492_UnchainedDwordWrite_00000003_0000000f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2492) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2472if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2472if_f_id : + L13_2472if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2474_UnchainedWordWrite_00000003_0000000f_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2474_UnchainedWordWrite_00000003_0000000f_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; + *((IUH *)(r1+0)) = (IS32)(16388) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2474_UnchainedWordWrite_00000003_0000000f_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2474_UnchainedWordWrite_00000003_0000000f_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16389) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2493_UnchainedDwordFill_00000003_00000008_00000000_id : + S_2493_UnchainedDwordFill_00000003_00000008_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2493) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2473if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2473if_f_id : + L13_2473if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2475_UnchainedWordFill_00000003_00000008_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2475_UnchainedWordFill_00000003_00000008_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2475_UnchainedWordFill_00000003_00000008_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2475_UnchainedWordFill_00000003_00000008_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2494_UnchainedDwordFill_00000003_00000009_00000000_id : + S_2494_UnchainedDwordFill_00000003_00000009_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2494) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2474if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2474if_f_id : + L13_2474if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2476_UnchainedWordFill_00000003_00000009_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2476_UnchainedWordFill_00000003_00000009_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2476_UnchainedWordFill_00000003_00000009_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2476_UnchainedWordFill_00000003_00000009_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2495_UnchainedDwordFill_00000003_0000000e_00000000_id : + S_2495_UnchainedDwordFill_00000003_0000000e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2495) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2475if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2475if_f_id : + L13_2475if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2477_UnchainedWordFill_00000003_0000000e_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2477_UnchainedWordFill_00000003_0000000e_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2477_UnchainedWordFill_00000003_0000000e_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2477_UnchainedWordFill_00000003_0000000e_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2496_UnchainedDwordFill_00000003_0000000f_00000000_id : + S_2496_UnchainedDwordFill_00000003_0000000f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2496) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2476if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2476if_f_id : + L13_2476if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2478_UnchainedWordFill_00000003_0000000f_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2478_UnchainedWordFill_00000003_0000000f_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2478_UnchainedWordFill_00000003_0000000f_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2478_UnchainedWordFill_00000003_0000000f_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2497_UnchainedDwordMove_00000003_00000008_00000000_00000000_id : + S_2497_UnchainedDwordMove_00000003_00000008_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2497) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2477if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2477if_f_id : + L13_2477if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2479_UnchainedWordMove_00000003_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2479_UnchainedWordMove_00000003_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2498_UnchainedDwordMove_00000003_00000009_00000000_00000000_id : + S_2498_UnchainedDwordMove_00000003_00000009_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2498) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2478if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2478if_f_id : + L13_2478if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2482_UnchainedWordMove_00000003_00000009_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2482_UnchainedWordMove_00000003_00000009_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2499_UnchainedDwordMove_00000003_0000000e_00000000_00000000_id : + S_2499_UnchainedDwordMove_00000003_0000000e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2499) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2479if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2479if_f_id : + L13_2479if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2484_UnchainedWordMove_00000003_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2484_UnchainedWordMove_00000003_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2500_UnchainedDwordMove_00000003_0000000f_00000000_00000000_id : + S_2500_UnchainedDwordMove_00000003_0000000f_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2500) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2480if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2480if_f_id : + L13_2480if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2487_UnchainedWordMove_00000003_0000000f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2487_UnchainedWordMove_00000003_0000000f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2501_UnchainedByteMove_00000000_00000008_00000000_00000001_id : + S_2501_UnchainedByteMove_00000000_00000008_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2501) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2481if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2481if_f_id : + L13_2481if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_268if_f; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2502_CopyBytePlnByPlnUnchained_00000000_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2502_CopyBytePlnByPlnUnchained_00000000_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + { extern IUH L28_269if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_269if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_268if_f_id : + L28_268if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2502_CopyBytePlnByPlnUnchained_00000000_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2502_CopyBytePlnByPlnUnchained_00000000_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + case L28_269if_d_id : + L28_269if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid013.c b/private/mvdm/softpc.new/base/cvidc/sevid013.c new file mode 100644 index 000000000..0e5994532 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid013.c @@ -0,0 +1,5153 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_2502_CopyBytePlnByPlnUnchained_00000000_00000008_00000000_00000001_id, +L13_2482if_f_id, +L23_448if_f_id, +L23_449if_f_id, +L23_450if_f_id, +L23_451if_f_id, +S_2503_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000001_id, +L13_2483if_f_id, +L23_454w_t_id, +L23_455w_d_id, +L23_452if_f_id, +L23_456w_t_id, +L23_457w_d_id, +L23_453if_d_id, +S_2504_UnchainedByteMove_00000000_00000009_00000000_00000001_id, +L13_2484if_f_id, +L28_270if_f_id, +L28_271if_d_id, +S_2505_CopyByte4PlaneUnchained_00000000_00000009_00000000_00000001_id, +L13_2485if_f_id, +L23_460w_t_id, +L23_461w_d_id, +L23_458if_f_id, +L23_462w_t_id, +L23_463w_d_id, +L23_459if_d_id, +S_2506_UnchainedByteMove_00000000_0000000e_00000000_00000001_id, +L13_2486if_f_id, +L28_272if_f_id, +L28_273if_d_id, +S_2507_CopyBytePlnByPlnUnchained_00000000_0000000e_00000000_00000001_id, +L13_2487if_f_id, +L23_464if_f_id, +L23_465if_f_id, +L23_466if_f_id, +L23_467if_f_id, +S_2508_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000001_id, +L13_2488if_f_id, +L23_470w_t_id, +L23_471w_d_id, +L23_468if_f_id, +L23_472w_t_id, +L23_473w_d_id, +L23_469if_d_id, +S_2509_UnchainedByteMove_00000000_0000000f_00000000_00000001_id, +L13_2489if_f_id, +L28_274if_f_id, +L28_275if_d_id, +S_2510_CopyByte4PlaneUnchained_00000000_0000000f_00000000_00000001_id, +L13_2490if_f_id, +L23_476w_t_id, +L23_477w_d_id, +L23_474if_f_id, +L23_478w_t_id, +L23_479w_d_id, +L23_475if_d_id, +S_2511_UnchainedByteMove_00000000_00000010_00000000_00000001_id, +L13_2491if_f_id, +L28_276if_f_id, +L28_277if_d_id, +S_2512_CopyBytePlnByPlnUnchained_00000000_00000010_00000000_00000001_id, +L13_2492if_f_id, +L23_480if_f_id, +L23_481if_f_id, +L23_482if_f_id, +L23_483if_f_id, +S_2513_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000001_id, +L13_2493if_f_id, +L23_486w_t_id, +L23_487w_d_id, +L23_484if_f_id, +L23_488w_t_id, +L23_489w_d_id, +L23_485if_d_id, +S_2514_UnchainedByteMove_00000000_00000011_00000000_00000001_id, +L13_2494if_f_id, +L28_278if_f_id, +L28_279if_d_id, +S_2515_CopyByte4PlaneUnchained_00000000_00000011_00000000_00000001_id, +L13_2495if_f_id, +L23_492w_t_id, +L23_493w_d_id, +L23_490if_f_id, +L23_494w_t_id, +L23_495w_d_id, +L23_491if_d_id, +S_2516_UnchainedByteMove_00000000_00000016_00000000_00000001_id, +L13_2496if_f_id, +L28_280if_f_id, +L28_281if_d_id, +S_2517_CopyBytePlnByPlnUnchained_00000000_00000016_00000000_00000001_id, +L13_2497if_f_id, +L23_496if_f_id, +L23_497if_f_id, +L23_498if_f_id, +L23_499if_f_id, +S_2518_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000001_id, +L13_2498if_f_id, +L23_502w_t_id, +L23_503w_d_id, +L23_500if_f_id, +L23_504w_t_id, +L23_505w_d_id, +L23_501if_d_id, +S_2519_UnchainedByteMove_00000000_00000017_00000000_00000001_id, +L13_2499if_f_id, +L28_282if_f_id, +L28_283if_d_id, +S_2520_CopyByte4PlaneUnchained_00000000_00000017_00000000_00000001_id, +L13_2500if_f_id, +L23_508w_t_id, +L23_509w_d_id, +L23_506if_f_id, +L23_510w_t_id, +L23_511w_d_id, +L23_507if_d_id, +S_2521_UnchainedByteMove_00000000_00000018_00000000_00000001_id, +L13_2501if_f_id, +L28_284if_f_id, +L28_285if_d_id, +S_2522_CopyBytePlnByPlnUnchained_00000000_00000018_00000000_00000001_id, +L13_2502if_f_id, +L23_512if_f_id, +L23_513if_f_id, +L23_514if_f_id, +L23_515if_f_id, +S_2523_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000001_id, +L13_2503if_f_id, +L23_518w_t_id, +L23_519w_d_id, +L23_516if_f_id, +L23_520w_t_id, +L23_521w_d_id, +L23_517if_d_id, +S_2524_UnchainedByteMove_00000000_00000019_00000000_00000001_id, +L13_2504if_f_id, +L28_286if_f_id, +L28_287if_d_id, +S_2525_CopyByte4PlaneUnchained_00000000_00000019_00000000_00000001_id, +L13_2505if_f_id, +L23_524w_t_id, +L23_525w_d_id, +L23_522if_f_id, +L23_526w_t_id, +L23_527w_d_id, +L23_523if_d_id, +S_2526_UnchainedByteMove_00000000_0000001e_00000000_00000001_id, +L13_2506if_f_id, +L28_288if_f_id, +L28_289if_d_id, +S_2527_CopyBytePlnByPlnUnchained_00000000_0000001e_00000000_00000001_id, +L13_2507if_f_id, +L23_528if_f_id, +L23_529if_f_id, +L23_530if_f_id, +L23_531if_f_id, +S_2528_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000001_id, +L13_2508if_f_id, +L23_534w_t_id, +L23_535w_d_id, +L23_532if_f_id, +L23_536w_t_id, +L23_537w_d_id, +L23_533if_d_id, +S_2529_UnchainedByteMove_00000000_0000001f_00000000_00000001_id, +L13_2509if_f_id, +L28_290if_f_id, +L28_291if_d_id, +S_2530_CopyByte4PlaneUnchained_00000000_0000001f_00000000_00000001_id, +L13_2510if_f_id, +L23_540w_t_id, +L23_541w_d_id, +L23_538if_f_id, +L23_542w_t_id, +L23_543w_d_id, +L23_539if_d_id, +S_2531_UnchainedWordMove_00000000_00000008_00000000_00000001_id, +L13_2511if_f_id, +L28_292if_f_id, +L28_293if_d_id, +S_2532_CopyWordPlnByPlnUnchained_00000000_00000008_00000000_00000001_id, +L13_2512if_f_id, +L23_544if_f_id, +L23_545if_f_id, +L23_546if_f_id, +L23_547if_f_id, +S_2533_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000001_id, +L13_2513if_f_id, +L23_550w_t_id, +L23_551w_d_id, +L23_548if_f_id, +L23_552w_t_id, +L23_553w_d_id, +L23_549if_d_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_2502_CopyBytePlnByPlnUnchained_00000000_00000008_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2502_CopyBytePlnByPlnUnchained_00000000_00000008_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2502_CopyBytePlnByPlnUnchained_00000000_00000008_00000000_00000001 = (IHPE)S_2502_CopyBytePlnByPlnUnchained_00000000_00000008_00000000_00000001 ; +LOCAL IUH L13_2482if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2482if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2482if_f = (IHPE)L13_2482if_f ; +LOCAL IUH L23_448if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_448if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_448if_f = (IHPE)L23_448if_f ; +LOCAL IUH L23_449if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_449if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_449if_f = (IHPE)L23_449if_f ; +LOCAL IUH L23_450if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_450if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_450if_f = (IHPE)L23_450if_f ; +LOCAL IUH L23_451if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_451if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_451if_f = (IHPE)L23_451if_f ; +GLOBAL IUH S_2503_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2503_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2503_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000001 = (IHPE)S_2503_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000001 ; +LOCAL IUH L13_2483if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2483if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2483if_f = (IHPE)L13_2483if_f ; +LOCAL IUH L23_454w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_454w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_454w_t = (IHPE)L23_454w_t ; +LOCAL IUH L23_455w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_455w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_455w_d = (IHPE)L23_455w_d ; +LOCAL IUH L23_452if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_452if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_452if_f = (IHPE)L23_452if_f ; +LOCAL IUH L23_456w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_456w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_456w_t = (IHPE)L23_456w_t ; +LOCAL IUH L23_457w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_457w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_457w_d = (IHPE)L23_457w_d ; +LOCAL IUH L23_453if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_453if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_453if_d = (IHPE)L23_453if_d ; +GLOBAL IUH S_2504_UnchainedByteMove_00000000_00000009_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2504_UnchainedByteMove_00000000_00000009_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2504_UnchainedByteMove_00000000_00000009_00000000_00000001 = (IHPE)S_2504_UnchainedByteMove_00000000_00000009_00000000_00000001 ; +LOCAL IUH L13_2484if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2484if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2484if_f = (IHPE)L13_2484if_f ; +LOCAL IUH L28_270if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_270if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_270if_f = (IHPE)L28_270if_f ; +LOCAL IUH L28_271if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_271if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_271if_d = (IHPE)L28_271if_d ; +GLOBAL IUH S_2505_CopyByte4PlaneUnchained_00000000_00000009_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2505_CopyByte4PlaneUnchained_00000000_00000009_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2505_CopyByte4PlaneUnchained_00000000_00000009_00000000_00000001 = (IHPE)S_2505_CopyByte4PlaneUnchained_00000000_00000009_00000000_00000001 ; +LOCAL IUH L13_2485if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2485if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2485if_f = (IHPE)L13_2485if_f ; +LOCAL IUH L23_460w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_460w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_460w_t = (IHPE)L23_460w_t ; +LOCAL IUH L23_461w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_461w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_461w_d = (IHPE)L23_461w_d ; +LOCAL IUH L23_458if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_458if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_458if_f = (IHPE)L23_458if_f ; +LOCAL IUH L23_462w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_462w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_462w_t = (IHPE)L23_462w_t ; +LOCAL IUH L23_463w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_463w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_463w_d = (IHPE)L23_463w_d ; +LOCAL IUH L23_459if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_459if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_459if_d = (IHPE)L23_459if_d ; +GLOBAL IUH S_2506_UnchainedByteMove_00000000_0000000e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2506_UnchainedByteMove_00000000_0000000e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2506_UnchainedByteMove_00000000_0000000e_00000000_00000001 = (IHPE)S_2506_UnchainedByteMove_00000000_0000000e_00000000_00000001 ; +LOCAL IUH L13_2486if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2486if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2486if_f = (IHPE)L13_2486if_f ; +LOCAL IUH L28_272if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_272if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_272if_f = (IHPE)L28_272if_f ; +LOCAL IUH L28_273if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_273if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_273if_d = (IHPE)L28_273if_d ; +GLOBAL IUH S_2507_CopyBytePlnByPlnUnchained_00000000_0000000e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2507_CopyBytePlnByPlnUnchained_00000000_0000000e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2507_CopyBytePlnByPlnUnchained_00000000_0000000e_00000000_00000001 = (IHPE)S_2507_CopyBytePlnByPlnUnchained_00000000_0000000e_00000000_00000001 ; +LOCAL IUH L13_2487if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2487if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2487if_f = (IHPE)L13_2487if_f ; +LOCAL IUH L23_464if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_464if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_464if_f = (IHPE)L23_464if_f ; +LOCAL IUH L23_465if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_465if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_465if_f = (IHPE)L23_465if_f ; +LOCAL IUH L23_466if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_466if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_466if_f = (IHPE)L23_466if_f ; +LOCAL IUH L23_467if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_467if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_467if_f = (IHPE)L23_467if_f ; +GLOBAL IUH S_2508_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2508_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2508_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000001 = (IHPE)S_2508_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000001 ; +LOCAL IUH L13_2488if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2488if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2488if_f = (IHPE)L13_2488if_f ; +LOCAL IUH L23_470w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_470w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_470w_t = (IHPE)L23_470w_t ; +LOCAL IUH L23_471w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_471w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_471w_d = (IHPE)L23_471w_d ; +LOCAL IUH L23_468if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_468if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_468if_f = (IHPE)L23_468if_f ; +LOCAL IUH L23_472w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_472w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_472w_t = (IHPE)L23_472w_t ; +LOCAL IUH L23_473w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_473w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_473w_d = (IHPE)L23_473w_d ; +LOCAL IUH L23_469if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_469if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_469if_d = (IHPE)L23_469if_d ; +GLOBAL IUH S_2509_UnchainedByteMove_00000000_0000000f_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2509_UnchainedByteMove_00000000_0000000f_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2509_UnchainedByteMove_00000000_0000000f_00000000_00000001 = (IHPE)S_2509_UnchainedByteMove_00000000_0000000f_00000000_00000001 ; +LOCAL IUH L13_2489if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2489if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2489if_f = (IHPE)L13_2489if_f ; +LOCAL IUH L28_274if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_274if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_274if_f = (IHPE)L28_274if_f ; +LOCAL IUH L28_275if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_275if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_275if_d = (IHPE)L28_275if_d ; +GLOBAL IUH S_2510_CopyByte4PlaneUnchained_00000000_0000000f_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2510_CopyByte4PlaneUnchained_00000000_0000000f_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2510_CopyByte4PlaneUnchained_00000000_0000000f_00000000_00000001 = (IHPE)S_2510_CopyByte4PlaneUnchained_00000000_0000000f_00000000_00000001 ; +LOCAL IUH L13_2490if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2490if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2490if_f = (IHPE)L13_2490if_f ; +LOCAL IUH L23_476w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_476w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_476w_t = (IHPE)L23_476w_t ; +LOCAL IUH L23_477w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_477w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_477w_d = (IHPE)L23_477w_d ; +LOCAL IUH L23_474if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_474if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_474if_f = (IHPE)L23_474if_f ; +LOCAL IUH L23_478w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_478w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_478w_t = (IHPE)L23_478w_t ; +LOCAL IUH L23_479w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_479w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_479w_d = (IHPE)L23_479w_d ; +LOCAL IUH L23_475if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_475if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_475if_d = (IHPE)L23_475if_d ; +GLOBAL IUH S_2511_UnchainedByteMove_00000000_00000010_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2511_UnchainedByteMove_00000000_00000010_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2511_UnchainedByteMove_00000000_00000010_00000000_00000001 = (IHPE)S_2511_UnchainedByteMove_00000000_00000010_00000000_00000001 ; +LOCAL IUH L13_2491if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2491if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2491if_f = (IHPE)L13_2491if_f ; +LOCAL IUH L28_276if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_276if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_276if_f = (IHPE)L28_276if_f ; +LOCAL IUH L28_277if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_277if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_277if_d = (IHPE)L28_277if_d ; +GLOBAL IUH S_2512_CopyBytePlnByPlnUnchained_00000000_00000010_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2512_CopyBytePlnByPlnUnchained_00000000_00000010_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2512_CopyBytePlnByPlnUnchained_00000000_00000010_00000000_00000001 = (IHPE)S_2512_CopyBytePlnByPlnUnchained_00000000_00000010_00000000_00000001 ; +LOCAL IUH L13_2492if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2492if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2492if_f = (IHPE)L13_2492if_f ; +LOCAL IUH L23_480if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_480if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_480if_f = (IHPE)L23_480if_f ; +LOCAL IUH L23_481if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_481if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_481if_f = (IHPE)L23_481if_f ; +LOCAL IUH L23_482if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_482if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_482if_f = (IHPE)L23_482if_f ; +LOCAL IUH L23_483if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_483if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_483if_f = (IHPE)L23_483if_f ; +GLOBAL IUH S_2513_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2513_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2513_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000001 = (IHPE)S_2513_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000001 ; +LOCAL IUH L13_2493if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2493if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2493if_f = (IHPE)L13_2493if_f ; +LOCAL IUH L23_486w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_486w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_486w_t = (IHPE)L23_486w_t ; +LOCAL IUH L23_487w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_487w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_487w_d = (IHPE)L23_487w_d ; +LOCAL IUH L23_484if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_484if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_484if_f = (IHPE)L23_484if_f ; +LOCAL IUH L23_488w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_488w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_488w_t = (IHPE)L23_488w_t ; +LOCAL IUH L23_489w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_489w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_489w_d = (IHPE)L23_489w_d ; +LOCAL IUH L23_485if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_485if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_485if_d = (IHPE)L23_485if_d ; +GLOBAL IUH S_2514_UnchainedByteMove_00000000_00000011_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2514_UnchainedByteMove_00000000_00000011_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2514_UnchainedByteMove_00000000_00000011_00000000_00000001 = (IHPE)S_2514_UnchainedByteMove_00000000_00000011_00000000_00000001 ; +LOCAL IUH L13_2494if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2494if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2494if_f = (IHPE)L13_2494if_f ; +LOCAL IUH L28_278if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_278if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_278if_f = (IHPE)L28_278if_f ; +LOCAL IUH L28_279if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_279if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_279if_d = (IHPE)L28_279if_d ; +GLOBAL IUH S_2515_CopyByte4PlaneUnchained_00000000_00000011_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2515_CopyByte4PlaneUnchained_00000000_00000011_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2515_CopyByte4PlaneUnchained_00000000_00000011_00000000_00000001 = (IHPE)S_2515_CopyByte4PlaneUnchained_00000000_00000011_00000000_00000001 ; +LOCAL IUH L13_2495if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2495if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2495if_f = (IHPE)L13_2495if_f ; +LOCAL IUH L23_492w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_492w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_492w_t = (IHPE)L23_492w_t ; +LOCAL IUH L23_493w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_493w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_493w_d = (IHPE)L23_493w_d ; +LOCAL IUH L23_490if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_490if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_490if_f = (IHPE)L23_490if_f ; +LOCAL IUH L23_494w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_494w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_494w_t = (IHPE)L23_494w_t ; +LOCAL IUH L23_495w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_495w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_495w_d = (IHPE)L23_495w_d ; +LOCAL IUH L23_491if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_491if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_491if_d = (IHPE)L23_491if_d ; +GLOBAL IUH S_2516_UnchainedByteMove_00000000_00000016_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2516_UnchainedByteMove_00000000_00000016_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2516_UnchainedByteMove_00000000_00000016_00000000_00000001 = (IHPE)S_2516_UnchainedByteMove_00000000_00000016_00000000_00000001 ; +LOCAL IUH L13_2496if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2496if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2496if_f = (IHPE)L13_2496if_f ; +LOCAL IUH L28_280if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_280if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_280if_f = (IHPE)L28_280if_f ; +LOCAL IUH L28_281if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_281if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_281if_d = (IHPE)L28_281if_d ; +GLOBAL IUH S_2517_CopyBytePlnByPlnUnchained_00000000_00000016_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2517_CopyBytePlnByPlnUnchained_00000000_00000016_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2517_CopyBytePlnByPlnUnchained_00000000_00000016_00000000_00000001 = (IHPE)S_2517_CopyBytePlnByPlnUnchained_00000000_00000016_00000000_00000001 ; +LOCAL IUH L13_2497if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2497if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2497if_f = (IHPE)L13_2497if_f ; +LOCAL IUH L23_496if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_496if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_496if_f = (IHPE)L23_496if_f ; +LOCAL IUH L23_497if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_497if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_497if_f = (IHPE)L23_497if_f ; +LOCAL IUH L23_498if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_498if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_498if_f = (IHPE)L23_498if_f ; +LOCAL IUH L23_499if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_499if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_499if_f = (IHPE)L23_499if_f ; +GLOBAL IUH S_2518_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2518_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2518_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000001 = (IHPE)S_2518_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000001 ; +LOCAL IUH L13_2498if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2498if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2498if_f = (IHPE)L13_2498if_f ; +LOCAL IUH L23_502w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_502w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_502w_t = (IHPE)L23_502w_t ; +LOCAL IUH L23_503w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_503w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_503w_d = (IHPE)L23_503w_d ; +LOCAL IUH L23_500if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_500if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_500if_f = (IHPE)L23_500if_f ; +LOCAL IUH L23_504w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_504w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_504w_t = (IHPE)L23_504w_t ; +LOCAL IUH L23_505w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_505w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_505w_d = (IHPE)L23_505w_d ; +LOCAL IUH L23_501if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_501if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_501if_d = (IHPE)L23_501if_d ; +GLOBAL IUH S_2519_UnchainedByteMove_00000000_00000017_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2519_UnchainedByteMove_00000000_00000017_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2519_UnchainedByteMove_00000000_00000017_00000000_00000001 = (IHPE)S_2519_UnchainedByteMove_00000000_00000017_00000000_00000001 ; +LOCAL IUH L13_2499if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2499if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2499if_f = (IHPE)L13_2499if_f ; +LOCAL IUH L28_282if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_282if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_282if_f = (IHPE)L28_282if_f ; +LOCAL IUH L28_283if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_283if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_283if_d = (IHPE)L28_283if_d ; +GLOBAL IUH S_2520_CopyByte4PlaneUnchained_00000000_00000017_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2520_CopyByte4PlaneUnchained_00000000_00000017_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2520_CopyByte4PlaneUnchained_00000000_00000017_00000000_00000001 = (IHPE)S_2520_CopyByte4PlaneUnchained_00000000_00000017_00000000_00000001 ; +LOCAL IUH L13_2500if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2500if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2500if_f = (IHPE)L13_2500if_f ; +LOCAL IUH L23_508w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_508w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_508w_t = (IHPE)L23_508w_t ; +LOCAL IUH L23_509w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_509w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_509w_d = (IHPE)L23_509w_d ; +LOCAL IUH L23_506if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_506if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_506if_f = (IHPE)L23_506if_f ; +LOCAL IUH L23_510w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_510w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_510w_t = (IHPE)L23_510w_t ; +LOCAL IUH L23_511w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_511w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_511w_d = (IHPE)L23_511w_d ; +LOCAL IUH L23_507if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_507if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_507if_d = (IHPE)L23_507if_d ; +GLOBAL IUH S_2521_UnchainedByteMove_00000000_00000018_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2521_UnchainedByteMove_00000000_00000018_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2521_UnchainedByteMove_00000000_00000018_00000000_00000001 = (IHPE)S_2521_UnchainedByteMove_00000000_00000018_00000000_00000001 ; +LOCAL IUH L13_2501if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2501if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2501if_f = (IHPE)L13_2501if_f ; +LOCAL IUH L28_284if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_284if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_284if_f = (IHPE)L28_284if_f ; +LOCAL IUH L28_285if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_285if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_285if_d = (IHPE)L28_285if_d ; +GLOBAL IUH S_2522_CopyBytePlnByPlnUnchained_00000000_00000018_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2522_CopyBytePlnByPlnUnchained_00000000_00000018_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2522_CopyBytePlnByPlnUnchained_00000000_00000018_00000000_00000001 = (IHPE)S_2522_CopyBytePlnByPlnUnchained_00000000_00000018_00000000_00000001 ; +LOCAL IUH L13_2502if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2502if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2502if_f = (IHPE)L13_2502if_f ; +LOCAL IUH L23_512if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_512if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_512if_f = (IHPE)L23_512if_f ; +LOCAL IUH L23_513if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_513if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_513if_f = (IHPE)L23_513if_f ; +LOCAL IUH L23_514if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_514if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_514if_f = (IHPE)L23_514if_f ; +LOCAL IUH L23_515if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_515if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_515if_f = (IHPE)L23_515if_f ; +GLOBAL IUH S_2523_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2523_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2523_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000001 = (IHPE)S_2523_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000001 ; +LOCAL IUH L13_2503if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2503if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2503if_f = (IHPE)L13_2503if_f ; +LOCAL IUH L23_518w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_518w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_518w_t = (IHPE)L23_518w_t ; +LOCAL IUH L23_519w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_519w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_519w_d = (IHPE)L23_519w_d ; +LOCAL IUH L23_516if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_516if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_516if_f = (IHPE)L23_516if_f ; +LOCAL IUH L23_520w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_520w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_520w_t = (IHPE)L23_520w_t ; +LOCAL IUH L23_521w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_521w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_521w_d = (IHPE)L23_521w_d ; +LOCAL IUH L23_517if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_517if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_517if_d = (IHPE)L23_517if_d ; +GLOBAL IUH S_2524_UnchainedByteMove_00000000_00000019_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2524_UnchainedByteMove_00000000_00000019_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2524_UnchainedByteMove_00000000_00000019_00000000_00000001 = (IHPE)S_2524_UnchainedByteMove_00000000_00000019_00000000_00000001 ; +LOCAL IUH L13_2504if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2504if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2504if_f = (IHPE)L13_2504if_f ; +LOCAL IUH L28_286if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_286if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_286if_f = (IHPE)L28_286if_f ; +LOCAL IUH L28_287if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_287if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_287if_d = (IHPE)L28_287if_d ; +GLOBAL IUH S_2525_CopyByte4PlaneUnchained_00000000_00000019_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2525_CopyByte4PlaneUnchained_00000000_00000019_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2525_CopyByte4PlaneUnchained_00000000_00000019_00000000_00000001 = (IHPE)S_2525_CopyByte4PlaneUnchained_00000000_00000019_00000000_00000001 ; +LOCAL IUH L13_2505if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2505if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2505if_f = (IHPE)L13_2505if_f ; +LOCAL IUH L23_524w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_524w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_524w_t = (IHPE)L23_524w_t ; +LOCAL IUH L23_525w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_525w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_525w_d = (IHPE)L23_525w_d ; +LOCAL IUH L23_522if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_522if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_522if_f = (IHPE)L23_522if_f ; +LOCAL IUH L23_526w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_526w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_526w_t = (IHPE)L23_526w_t ; +LOCAL IUH L23_527w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_527w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_527w_d = (IHPE)L23_527w_d ; +LOCAL IUH L23_523if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_523if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_523if_d = (IHPE)L23_523if_d ; +GLOBAL IUH S_2526_UnchainedByteMove_00000000_0000001e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2526_UnchainedByteMove_00000000_0000001e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2526_UnchainedByteMove_00000000_0000001e_00000000_00000001 = (IHPE)S_2526_UnchainedByteMove_00000000_0000001e_00000000_00000001 ; +LOCAL IUH L13_2506if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2506if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2506if_f = (IHPE)L13_2506if_f ; +LOCAL IUH L28_288if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_288if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_288if_f = (IHPE)L28_288if_f ; +LOCAL IUH L28_289if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_289if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_289if_d = (IHPE)L28_289if_d ; +GLOBAL IUH S_2527_CopyBytePlnByPlnUnchained_00000000_0000001e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2527_CopyBytePlnByPlnUnchained_00000000_0000001e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2527_CopyBytePlnByPlnUnchained_00000000_0000001e_00000000_00000001 = (IHPE)S_2527_CopyBytePlnByPlnUnchained_00000000_0000001e_00000000_00000001 ; +LOCAL IUH L13_2507if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2507if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2507if_f = (IHPE)L13_2507if_f ; +LOCAL IUH L23_528if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_528if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_528if_f = (IHPE)L23_528if_f ; +LOCAL IUH L23_529if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_529if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_529if_f = (IHPE)L23_529if_f ; +LOCAL IUH L23_530if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_530if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_530if_f = (IHPE)L23_530if_f ; +LOCAL IUH L23_531if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_531if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_531if_f = (IHPE)L23_531if_f ; +GLOBAL IUH S_2528_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2528_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2528_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000001 = (IHPE)S_2528_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000001 ; +LOCAL IUH L13_2508if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2508if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2508if_f = (IHPE)L13_2508if_f ; +LOCAL IUH L23_534w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_534w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_534w_t = (IHPE)L23_534w_t ; +LOCAL IUH L23_535w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_535w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_535w_d = (IHPE)L23_535w_d ; +LOCAL IUH L23_532if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_532if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_532if_f = (IHPE)L23_532if_f ; +LOCAL IUH L23_536w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_536w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_536w_t = (IHPE)L23_536w_t ; +LOCAL IUH L23_537w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_537w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_537w_d = (IHPE)L23_537w_d ; +LOCAL IUH L23_533if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_533if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_533if_d = (IHPE)L23_533if_d ; +GLOBAL IUH S_2529_UnchainedByteMove_00000000_0000001f_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2529_UnchainedByteMove_00000000_0000001f_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2529_UnchainedByteMove_00000000_0000001f_00000000_00000001 = (IHPE)S_2529_UnchainedByteMove_00000000_0000001f_00000000_00000001 ; +LOCAL IUH L13_2509if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2509if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2509if_f = (IHPE)L13_2509if_f ; +LOCAL IUH L28_290if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_290if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_290if_f = (IHPE)L28_290if_f ; +LOCAL IUH L28_291if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_291if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_291if_d = (IHPE)L28_291if_d ; +GLOBAL IUH S_2530_CopyByte4PlaneUnchained_00000000_0000001f_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2530_CopyByte4PlaneUnchained_00000000_0000001f_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2530_CopyByte4PlaneUnchained_00000000_0000001f_00000000_00000001 = (IHPE)S_2530_CopyByte4PlaneUnchained_00000000_0000001f_00000000_00000001 ; +LOCAL IUH L13_2510if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2510if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2510if_f = (IHPE)L13_2510if_f ; +LOCAL IUH L23_540w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_540w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_540w_t = (IHPE)L23_540w_t ; +LOCAL IUH L23_541w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_541w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_541w_d = (IHPE)L23_541w_d ; +LOCAL IUH L23_538if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_538if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_538if_f = (IHPE)L23_538if_f ; +LOCAL IUH L23_542w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_542w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_542w_t = (IHPE)L23_542w_t ; +LOCAL IUH L23_543w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_543w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_543w_d = (IHPE)L23_543w_d ; +LOCAL IUH L23_539if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_539if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_539if_d = (IHPE)L23_539if_d ; +GLOBAL IUH S_2531_UnchainedWordMove_00000000_00000008_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2531_UnchainedWordMove_00000000_00000008_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2531_UnchainedWordMove_00000000_00000008_00000000_00000001 = (IHPE)S_2531_UnchainedWordMove_00000000_00000008_00000000_00000001 ; +LOCAL IUH L13_2511if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2511if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2511if_f = (IHPE)L13_2511if_f ; +LOCAL IUH L28_292if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_292if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_292if_f = (IHPE)L28_292if_f ; +LOCAL IUH L28_293if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_293if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_293if_d = (IHPE)L28_293if_d ; +GLOBAL IUH S_2532_CopyWordPlnByPlnUnchained_00000000_00000008_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2532_CopyWordPlnByPlnUnchained_00000000_00000008_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2532_CopyWordPlnByPlnUnchained_00000000_00000008_00000000_00000001 = (IHPE)S_2532_CopyWordPlnByPlnUnchained_00000000_00000008_00000000_00000001 ; +LOCAL IUH L13_2512if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2512if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2512if_f = (IHPE)L13_2512if_f ; +LOCAL IUH L23_544if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_544if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_544if_f = (IHPE)L23_544if_f ; +LOCAL IUH L23_545if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_545if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_545if_f = (IHPE)L23_545if_f ; +LOCAL IUH L23_546if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_546if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_546if_f = (IHPE)L23_546if_f ; +LOCAL IUH L23_547if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_547if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_547if_f = (IHPE)L23_547if_f ; +GLOBAL IUH S_2533_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2533_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2533_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000001 = (IHPE)S_2533_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000001 ; +LOCAL IUH L13_2513if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2513if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2513if_f = (IHPE)L13_2513if_f ; +LOCAL IUH L23_550w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_550w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_550w_t = (IHPE)L23_550w_t ; +LOCAL IUH L23_551w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_551w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_551w_d = (IHPE)L23_551w_d ; +LOCAL IUH L23_548if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_548if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_548if_f = (IHPE)L23_548if_f ; +LOCAL IUH L23_552w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_552w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_552w_t = (IHPE)L23_552w_t ; +LOCAL IUH L23_553w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_553w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_553w_d = (IHPE)L23_553w_d ; +LOCAL IUH L23_549if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_549if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_549if_d = (IHPE)L23_549if_d ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + case S_2502_CopyBytePlnByPlnUnchained_00000000_00000008_00000000_00000001_id : + S_2502_CopyBytePlnByPlnUnchained_00000000_00000008_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2502) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2482if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2482if_f_id : + L13_2482if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_448if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2503_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2503_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_448if_f_id : + L23_448if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_449if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2503_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2503_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_449if_f_id : + L23_449if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_450if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2503_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2503_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_450if_f_id : + L23_450if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_451if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2503_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2503_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_451if_f_id : + L23_451if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2503_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000001_id : + S_2503_CopyByte1PlaneUnchained_00000000_00000008_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2503) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2483if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2483if_f_id : + L13_2483if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_452if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_455w_d; + case L23_454w_t_id : + L23_454w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_454w_t; + case L23_455w_d_id : + L23_455w_d: ; + { extern IUH L23_453if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_453if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_452if_f_id : + L23_452if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_457w_d; + case L23_456w_t_id : + L23_456w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_456w_t; + case L23_457w_d_id : + L23_457w_d: ; + case L23_453if_d_id : + L23_453if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2504_UnchainedByteMove_00000000_00000009_00000000_00000001_id : + S_2504_UnchainedByteMove_00000000_00000009_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2504) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2484if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2484if_f_id : + L13_2484if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_270if_f; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2505_CopyByte4PlaneUnchained_00000000_00000009_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2505_CopyByte4PlaneUnchained_00000000_00000009_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + { extern IUH L28_271if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_271if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_270if_f_id : + L28_270if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2505_CopyByte4PlaneUnchained_00000000_00000009_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2505_CopyByte4PlaneUnchained_00000000_00000009_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + case L28_271if_d_id : + L28_271if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2505_CopyByte4PlaneUnchained_00000000_00000009_00000000_00000001_id : + S_2505_CopyByte4PlaneUnchained_00000000_00000009_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2505) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2485if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2485if_f_id : + L13_2485if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_458if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_461w_d; + case L23_460w_t_id : + L23_460w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_460w_t; + case L23_461w_d_id : + L23_461w_d: ; + { extern IUH L23_459if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_459if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_458if_f_id : + L23_458if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_463w_d; + case L23_462w_t_id : + L23_462w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+9)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_462w_t; + case L23_463w_d_id : + L23_463w_d: ; + case L23_459if_d_id : + L23_459if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2506_UnchainedByteMove_00000000_0000000e_00000000_00000001_id : + S_2506_UnchainedByteMove_00000000_0000000e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2506) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2486if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2486if_f_id : + L13_2486if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_272if_f; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2507_CopyBytePlnByPlnUnchained_00000000_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2507_CopyBytePlnByPlnUnchained_00000000_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + { extern IUH L28_273if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_273if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_272if_f_id : + L28_272if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2507_CopyBytePlnByPlnUnchained_00000000_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2507_CopyBytePlnByPlnUnchained_00000000_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + case L28_273if_d_id : + L28_273if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2507_CopyBytePlnByPlnUnchained_00000000_0000000e_00000000_00000001_id : + S_2507_CopyBytePlnByPlnUnchained_00000000_0000000e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2507) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2487if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2487if_f_id : + L13_2487if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_464if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2508_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2508_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_464if_f_id : + L23_464if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_465if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2508_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2508_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_465if_f_id : + L23_465if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_466if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2508_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2508_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_466if_f_id : + L23_466if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_467if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2508_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2508_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_467if_f_id : + L23_467if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2508_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000001_id : + S_2508_CopyByte1PlaneUnchained_00000000_0000000e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2508) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2488if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2488if_f_id : + L13_2488if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_468if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_471w_d; + case L23_470w_t_id : + L23_470w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_470w_t; + case L23_471w_d_id : + L23_471w_d: ; + { extern IUH L23_469if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_469if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_468if_f_id : + L23_468if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_473w_d; + case L23_472w_t_id : + L23_472w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_472w_t; + case L23_473w_d_id : + L23_473w_d: ; + case L23_469if_d_id : + L23_469if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2509_UnchainedByteMove_00000000_0000000f_00000000_00000001_id : + S_2509_UnchainedByteMove_00000000_0000000f_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2509) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2489if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2489if_f_id : + L13_2489if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_274if_f; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2510_CopyByte4PlaneUnchained_00000000_0000000f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2510_CopyByte4PlaneUnchained_00000000_0000000f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + { extern IUH L28_275if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_275if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_274if_f_id : + L28_274if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2510_CopyByte4PlaneUnchained_00000000_0000000f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2510_CopyByte4PlaneUnchained_00000000_0000000f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + case L28_275if_d_id : + L28_275if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2510_CopyByte4PlaneUnchained_00000000_0000000f_00000000_00000001_id : + S_2510_CopyByte4PlaneUnchained_00000000_0000000f_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2510) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2490if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2490if_f_id : + L13_2490if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_474if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_477w_d; + case L23_476w_t_id : + L23_476w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_476w_t; + case L23_477w_d_id : + L23_477w_d: ; + { extern IUH L23_475if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_475if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_474if_f_id : + L23_474if_f: ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_479w_d; + case L23_478w_t_id : + L23_478w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+9)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_478w_t; + case L23_479w_d_id : + L23_479w_d: ; + case L23_475if_d_id : + L23_475if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2511_UnchainedByteMove_00000000_00000010_00000000_00000001_id : + S_2511_UnchainedByteMove_00000000_00000010_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2511) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2491if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2491if_f_id : + L13_2491if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_276if_f; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2512_CopyBytePlnByPlnUnchained_00000000_00000010_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2512_CopyBytePlnByPlnUnchained_00000000_00000010_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + { extern IUH L28_277if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_277if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_276if_f_id : + L28_276if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2512_CopyBytePlnByPlnUnchained_00000000_00000010_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2512_CopyBytePlnByPlnUnchained_00000000_00000010_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + case L28_277if_d_id : + L28_277if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2512_CopyBytePlnByPlnUnchained_00000000_00000010_00000000_00000001_id : + S_2512_CopyBytePlnByPlnUnchained_00000000_00000010_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2512) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2492if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2492if_f_id : + L13_2492if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_480if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2513_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2513_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_480if_f_id : + L23_480if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_481if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2513_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2513_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_481if_f_id : + L23_481if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_482if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2513_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2513_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_482if_f_id : + L23_482if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_483if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2513_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2513_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_483if_f_id : + L23_483if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2513_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000001_id : + S_2513_CopyByte1PlaneUnchained_00000000_00000010_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2513) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2493if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2493if_f_id : + L13_2493if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_484if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_487w_d; + case L23_486w_t_id : + L23_486w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_486w_t; + case L23_487w_d_id : + L23_487w_d: ; + { extern IUH L23_485if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_485if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_484if_f_id : + L23_484if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_489w_d; + case L23_488w_t_id : + L23_488w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_488w_t; + case L23_489w_d_id : + L23_489w_d: ; + case L23_485if_d_id : + L23_485if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2514_UnchainedByteMove_00000000_00000011_00000000_00000001_id : + S_2514_UnchainedByteMove_00000000_00000011_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2514) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2494if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2494if_f_id : + L13_2494if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_278if_f; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2515_CopyByte4PlaneUnchained_00000000_00000011_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2515_CopyByte4PlaneUnchained_00000000_00000011_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + { extern IUH L28_279if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_279if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_278if_f_id : + L28_278if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2515_CopyByte4PlaneUnchained_00000000_00000011_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2515_CopyByte4PlaneUnchained_00000000_00000011_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + case L28_279if_d_id : + L28_279if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2515_CopyByte4PlaneUnchained_00000000_00000011_00000000_00000001_id : + S_2515_CopyByte4PlaneUnchained_00000000_00000011_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2515) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2495if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2495if_f_id : + L13_2495if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_490if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_493w_d; + case L23_492w_t_id : + L23_492w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_492w_t; + case L23_493w_d_id : + L23_493w_d: ; + { extern IUH L23_491if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_491if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_490if_f_id : + L23_490if_f: ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_495w_d; + case L23_494w_t_id : + L23_494w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_494w_t; + case L23_495w_d_id : + L23_495w_d: ; + case L23_491if_d_id : + L23_491if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2516_UnchainedByteMove_00000000_00000016_00000000_00000001_id : + S_2516_UnchainedByteMove_00000000_00000016_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2516) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2496if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2496if_f_id : + L13_2496if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_280if_f; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2517_CopyBytePlnByPlnUnchained_00000000_00000016_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2517_CopyBytePlnByPlnUnchained_00000000_00000016_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + { extern IUH L28_281if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_281if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_280if_f_id : + L28_280if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2517_CopyBytePlnByPlnUnchained_00000000_00000016_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2517_CopyBytePlnByPlnUnchained_00000000_00000016_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + case L28_281if_d_id : + L28_281if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2517_CopyBytePlnByPlnUnchained_00000000_00000016_00000000_00000001_id : + S_2517_CopyBytePlnByPlnUnchained_00000000_00000016_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2517) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2497if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2497if_f_id : + L13_2497if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_496if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2518_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2518_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_496if_f_id : + L23_496if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_497if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2518_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2518_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_497if_f_id : + L23_497if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_498if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2518_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2518_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_498if_f_id : + L23_498if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_499if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2518_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2518_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_499if_f_id : + L23_499if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2518_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000001_id : + S_2518_CopyByte1PlaneUnchained_00000000_00000016_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2518) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2498if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2498if_f_id : + L13_2498if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_500if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_503w_d; + case L23_502w_t_id : + L23_502w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_502w_t; + case L23_503w_d_id : + L23_503w_d: ; + { extern IUH L23_501if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_501if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_500if_f_id : + L23_500if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_505w_d; + case L23_504w_t_id : + L23_504w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) ^ *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_504w_t; + case L23_505w_d_id : + L23_505w_d: ; + case L23_501if_d_id : + L23_501if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2519_UnchainedByteMove_00000000_00000017_00000000_00000001_id : + S_2519_UnchainedByteMove_00000000_00000017_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2519) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2499if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2499if_f_id : + L13_2499if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_282if_f; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2520_CopyByte4PlaneUnchained_00000000_00000017_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2520_CopyByte4PlaneUnchained_00000000_00000017_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + { extern IUH L28_283if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_283if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_282if_f_id : + L28_282if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2520_CopyByte4PlaneUnchained_00000000_00000017_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2520_CopyByte4PlaneUnchained_00000000_00000017_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + case L28_283if_d_id : + L28_283if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2520_CopyByte4PlaneUnchained_00000000_00000017_00000000_00000001_id : + S_2520_CopyByte4PlaneUnchained_00000000_00000017_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2520) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2500if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2500if_f_id : + L13_2500if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_506if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_509w_d; + case L23_508w_t_id : + L23_508w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_508w_t; + case L23_509w_d_id : + L23_509w_d: ; + { extern IUH L23_507if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_507if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_506if_f_id : + L23_506if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_511w_d; + case L23_510w_t_id : + L23_510w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) ^ *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_510w_t; + case L23_511w_d_id : + L23_511w_d: ; + case L23_507if_d_id : + L23_507if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2521_UnchainedByteMove_00000000_00000018_00000000_00000001_id : + S_2521_UnchainedByteMove_00000000_00000018_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2521) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2501if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2501if_f_id : + L13_2501if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_284if_f; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2522_CopyBytePlnByPlnUnchained_00000000_00000018_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2522_CopyBytePlnByPlnUnchained_00000000_00000018_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + { extern IUH L28_285if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_285if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_284if_f_id : + L28_284if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2522_CopyBytePlnByPlnUnchained_00000000_00000018_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2522_CopyBytePlnByPlnUnchained_00000000_00000018_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + case L28_285if_d_id : + L28_285if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2522_CopyBytePlnByPlnUnchained_00000000_00000018_00000000_00000001_id : + S_2522_CopyBytePlnByPlnUnchained_00000000_00000018_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2522) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2502if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2502if_f_id : + L13_2502if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_512if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2523_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2523_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_512if_f_id : + L23_512if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_513if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2523_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2523_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_513if_f_id : + L23_513if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_514if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2523_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2523_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_514if_f_id : + L23_514if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_515if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2523_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2523_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_515if_f_id : + L23_515if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2523_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000001_id : + S_2523_CopyByte1PlaneUnchained_00000000_00000018_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2523) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2503if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2503if_f_id : + L13_2503if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_516if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_519w_d; + case L23_518w_t_id : + L23_518w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_518w_t; + case L23_519w_d_id : + L23_519w_d: ; + { extern IUH L23_517if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_517if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_516if_f_id : + L23_516if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_521w_d; + case L23_520w_t_id : + L23_520w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_520w_t; + case L23_521w_d_id : + L23_521w_d: ; + case L23_517if_d_id : + L23_517if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2524_UnchainedByteMove_00000000_00000019_00000000_00000001_id : + S_2524_UnchainedByteMove_00000000_00000019_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2524) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2504if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2504if_f_id : + L13_2504if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_286if_f; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2525_CopyByte4PlaneUnchained_00000000_00000019_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2525_CopyByte4PlaneUnchained_00000000_00000019_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + { extern IUH L28_287if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_287if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_286if_f_id : + L28_286if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2525_CopyByte4PlaneUnchained_00000000_00000019_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2525_CopyByte4PlaneUnchained_00000000_00000019_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + case L28_287if_d_id : + L28_287if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2525_CopyByte4PlaneUnchained_00000000_00000019_00000000_00000001_id : + S_2525_CopyByte4PlaneUnchained_00000000_00000019_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2525) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2505if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2505if_f_id : + L13_2505if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_522if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_525w_d; + case L23_524w_t_id : + L23_524w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_524w_t; + case L23_525w_d_id : + L23_525w_d: ; + { extern IUH L23_523if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_523if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_522if_f_id : + L23_522if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_527w_d; + case L23_526w_t_id : + L23_526w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+9)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_526w_t; + case L23_527w_d_id : + L23_527w_d: ; + case L23_523if_d_id : + L23_523if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2526_UnchainedByteMove_00000000_0000001e_00000000_00000001_id : + S_2526_UnchainedByteMove_00000000_0000001e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2526) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2506if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2506if_f_id : + L13_2506if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_288if_f; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2527_CopyBytePlnByPlnUnchained_00000000_0000001e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2527_CopyBytePlnByPlnUnchained_00000000_0000001e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + { extern IUH L28_289if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_289if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_288if_f_id : + L28_288if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2527_CopyBytePlnByPlnUnchained_00000000_0000001e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2527_CopyBytePlnByPlnUnchained_00000000_0000001e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + case L28_289if_d_id : + L28_289if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2527_CopyBytePlnByPlnUnchained_00000000_0000001e_00000000_00000001_id : + S_2527_CopyBytePlnByPlnUnchained_00000000_0000001e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2527) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2507if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2507if_f_id : + L13_2507if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_528if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2528_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2528_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_528if_f_id : + L23_528if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_529if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2528_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2528_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_529if_f_id : + L23_529if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_530if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2528_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2528_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_530if_f_id : + L23_530if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_531if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2528_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2528_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_531if_f_id : + L23_531if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2528_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000001_id : + S_2528_CopyByte1PlaneUnchained_00000000_0000001e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2528) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2508if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2508if_f_id : + L13_2508if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_532if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_535w_d; + case L23_534w_t_id : + L23_534w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_534w_t; + case L23_535w_d_id : + L23_535w_d: ; + { extern IUH L23_533if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_533if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_532if_f_id : + L23_532if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_537w_d; + case L23_536w_t_id : + L23_536w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_536w_t; + case L23_537w_d_id : + L23_537w_d: ; + case L23_533if_d_id : + L23_533if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2529_UnchainedByteMove_00000000_0000001f_00000000_00000001_id : + S_2529_UnchainedByteMove_00000000_0000001f_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2529) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2509if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2509if_f_id : + L13_2509if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_290if_f; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2530_CopyByte4PlaneUnchained_00000000_0000001f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2530_CopyByte4PlaneUnchained_00000000_0000001f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + { extern IUH L28_291if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_291if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_290if_f_id : + L28_290if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2530_CopyByte4PlaneUnchained_00000000_0000001f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2530_CopyByte4PlaneUnchained_00000000_0000001f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + case L28_291if_d_id : + L28_291if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2530_CopyByte4PlaneUnchained_00000000_0000001f_00000000_00000001_id : + S_2530_CopyByte4PlaneUnchained_00000000_0000001f_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2530) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2510if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2510if_f_id : + L13_2510if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_538if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_541w_d; + case L23_540w_t_id : + L23_540w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_540w_t; + case L23_541w_d_id : + L23_541w_d: ; + { extern IUH L23_539if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_539if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_538if_f_id : + L23_538if_f: ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_543w_d; + case L23_542w_t_id : + L23_542w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+9)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_542w_t; + case L23_543w_d_id : + L23_543w_d: ; + case L23_539if_d_id : + L23_539if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2531_UnchainedWordMove_00000000_00000008_00000000_00000001_id : + S_2531_UnchainedWordMove_00000000_00000008_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2531) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2511if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2511if_f_id : + L13_2511if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_292if_f; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2532_CopyWordPlnByPlnUnchained_00000000_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2532_CopyWordPlnByPlnUnchained_00000000_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + { extern IUH L28_293if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_293if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_292if_f_id : + L28_292if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2532_CopyWordPlnByPlnUnchained_00000000_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2532_CopyWordPlnByPlnUnchained_00000000_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + case L28_293if_d_id : + L28_293if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2532_CopyWordPlnByPlnUnchained_00000000_00000008_00000000_00000001_id : + S_2532_CopyWordPlnByPlnUnchained_00000000_00000008_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2532) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2512if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2512if_f_id : + L13_2512if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_544if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2533_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2533_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_544if_f_id : + L23_544if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_545if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2533_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2533_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_545if_f_id : + L23_545if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_546if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2533_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2533_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_546if_f_id : + L23_546if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_547if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2533_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2533_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_547if_f_id : + L23_547if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2533_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000001_id : + S_2533_CopyWord1PlaneUnchained_00000000_00000008_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2533) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2513if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2513if_f_id : + L13_2513if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_548if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_551w_d; + case L23_550w_t_id : + L23_550w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_550w_t; + case L23_551w_d_id : + L23_551w_d: ; + { extern IUH L23_549if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_549if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_548if_f_id : + L23_548if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_553w_d; + case L23_552w_t_id : + L23_552w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_552w_t; + case L23_553w_d_id : + L23_553w_d: ; + case L23_549if_d_id : + L23_549if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid014.c b/private/mvdm/softpc.new/base/cvidc/sevid014.c new file mode 100644 index 000000000..1e6e75521 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid014.c @@ -0,0 +1,5345 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_2534_UnchainedWordMove_00000000_00000009_00000000_00000001_id, +L13_2514if_f_id, +L28_294if_f_id, +L28_295if_d_id, +S_2535_CopyWord4PlaneUnchained_00000000_00000009_00000000_00000001_id, +L13_2515if_f_id, +L23_556w_t_id, +L23_557w_d_id, +L23_554if_f_id, +L23_558w_t_id, +L23_559w_d_id, +L23_555if_d_id, +S_2536_UnchainedWordMove_00000000_0000000e_00000000_00000001_id, +L13_2516if_f_id, +L28_296if_f_id, +L28_297if_d_id, +S_2537_CopyWordPlnByPlnUnchained_00000000_0000000e_00000000_00000001_id, +L13_2517if_f_id, +L23_560if_f_id, +L23_561if_f_id, +L23_562if_f_id, +L23_563if_f_id, +S_2538_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000001_id, +L13_2518if_f_id, +L23_566w_t_id, +L23_567w_d_id, +L23_564if_f_id, +L23_568w_t_id, +L23_569w_d_id, +L23_565if_d_id, +S_2539_UnchainedWordMove_00000000_0000000f_00000000_00000001_id, +L13_2519if_f_id, +L28_298if_f_id, +L28_299if_d_id, +S_2540_CopyWord4PlaneUnchained_00000000_0000000f_00000000_00000001_id, +L13_2520if_f_id, +L23_572w_t_id, +L23_573w_d_id, +L23_570if_f_id, +L23_574w_t_id, +L23_575w_d_id, +L23_571if_d_id, +S_2541_UnchainedWordMove_00000000_00000010_00000000_00000001_id, +L13_2521if_f_id, +L28_300if_f_id, +L28_301if_d_id, +S_2542_CopyWordPlnByPlnUnchained_00000000_00000010_00000000_00000001_id, +L13_2522if_f_id, +L23_576if_f_id, +L23_577if_f_id, +L23_578if_f_id, +L23_579if_f_id, +S_2543_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000001_id, +L13_2523if_f_id, +L23_582w_t_id, +L23_583w_d_id, +L23_580if_f_id, +L23_584w_t_id, +L23_585w_d_id, +L23_581if_d_id, +S_2544_UnchainedWordMove_00000000_00000011_00000000_00000001_id, +L13_2524if_f_id, +L28_302if_f_id, +L28_303if_d_id, +S_2545_CopyWord4PlaneUnchained_00000000_00000011_00000000_00000001_id, +L13_2525if_f_id, +L23_588w_t_id, +L23_589w_d_id, +L23_586if_f_id, +L23_590w_t_id, +L23_591w_d_id, +L23_587if_d_id, +S_2546_UnchainedWordMove_00000000_00000016_00000000_00000001_id, +L13_2526if_f_id, +L28_304if_f_id, +L28_305if_d_id, +S_2547_CopyWordPlnByPlnUnchained_00000000_00000016_00000000_00000001_id, +L13_2527if_f_id, +L23_592if_f_id, +L23_593if_f_id, +L23_594if_f_id, +L23_595if_f_id, +S_2548_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000001_id, +L13_2528if_f_id, +L23_598w_t_id, +L23_599w_d_id, +L23_596if_f_id, +L23_600w_t_id, +L23_601w_d_id, +L23_597if_d_id, +S_2549_UnchainedWordMove_00000000_00000017_00000000_00000001_id, +L13_2529if_f_id, +L28_306if_f_id, +L28_307if_d_id, +S_2550_CopyWord4PlaneUnchained_00000000_00000017_00000000_00000001_id, +L13_2530if_f_id, +L23_604w_t_id, +L23_605w_d_id, +L23_602if_f_id, +L23_606w_t_id, +L23_607w_d_id, +L23_603if_d_id, +S_2551_UnchainedWordMove_00000000_00000018_00000000_00000001_id, +L13_2531if_f_id, +L28_308if_f_id, +L28_309if_d_id, +S_2552_CopyWordPlnByPlnUnchained_00000000_00000018_00000000_00000001_id, +L13_2532if_f_id, +L23_608if_f_id, +L23_609if_f_id, +L23_610if_f_id, +L23_611if_f_id, +S_2553_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000001_id, +L13_2533if_f_id, +L23_614w_t_id, +L23_615w_d_id, +L23_612if_f_id, +L23_616w_t_id, +L23_617w_d_id, +L23_613if_d_id, +S_2554_UnchainedWordMove_00000000_00000019_00000000_00000001_id, +L13_2534if_f_id, +L28_310if_f_id, +L28_311if_d_id, +S_2555_CopyWord4PlaneUnchained_00000000_00000019_00000000_00000001_id, +L13_2535if_f_id, +L23_620w_t_id, +L23_621w_d_id, +L23_618if_f_id, +L23_622w_t_id, +L23_623w_d_id, +L23_619if_d_id, +S_2556_UnchainedWordMove_00000000_0000001e_00000000_00000001_id, +L13_2536if_f_id, +L28_312if_f_id, +L28_313if_d_id, +S_2557_CopyWordPlnByPlnUnchained_00000000_0000001e_00000000_00000001_id, +L13_2537if_f_id, +L23_624if_f_id, +L23_625if_f_id, +L23_626if_f_id, +L23_627if_f_id, +S_2558_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000001_id, +L13_2538if_f_id, +L23_630w_t_id, +L23_631w_d_id, +L23_628if_f_id, +L23_632w_t_id, +L23_633w_d_id, +L23_629if_d_id, +S_2559_UnchainedWordMove_00000000_0000001f_00000000_00000001_id, +L13_2539if_f_id, +L28_314if_f_id, +L28_315if_d_id, +S_2560_CopyWord4PlaneUnchained_00000000_0000001f_00000000_00000001_id, +L13_2540if_f_id, +L23_636w_t_id, +L23_637w_d_id, +L23_634if_f_id, +L23_638w_t_id, +L23_639w_d_id, +L23_635if_d_id, +S_2561_UnchainedDwordMove_00000000_00000008_00000000_00000001_id, +L13_2541if_f_id, +S_2562_UnchainedDwordMove_00000000_00000009_00000000_00000001_id, +L13_2542if_f_id, +S_2563_UnchainedDwordMove_00000000_0000000e_00000000_00000001_id, +L13_2543if_f_id, +S_2564_UnchainedDwordMove_00000000_0000000f_00000000_00000001_id, +L13_2544if_f_id, +S_2565_UnchainedDwordMove_00000000_00000010_00000000_00000001_id, +L13_2545if_f_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_2534_UnchainedWordMove_00000000_00000009_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2534_UnchainedWordMove_00000000_00000009_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2534_UnchainedWordMove_00000000_00000009_00000000_00000001 = (IHPE)S_2534_UnchainedWordMove_00000000_00000009_00000000_00000001 ; +LOCAL IUH L13_2514if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2514if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2514if_f = (IHPE)L13_2514if_f ; +LOCAL IUH L28_294if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_294if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_294if_f = (IHPE)L28_294if_f ; +LOCAL IUH L28_295if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_295if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_295if_d = (IHPE)L28_295if_d ; +GLOBAL IUH S_2535_CopyWord4PlaneUnchained_00000000_00000009_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2535_CopyWord4PlaneUnchained_00000000_00000009_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2535_CopyWord4PlaneUnchained_00000000_00000009_00000000_00000001 = (IHPE)S_2535_CopyWord4PlaneUnchained_00000000_00000009_00000000_00000001 ; +LOCAL IUH L13_2515if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2515if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2515if_f = (IHPE)L13_2515if_f ; +LOCAL IUH L23_556w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_556w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_556w_t = (IHPE)L23_556w_t ; +LOCAL IUH L23_557w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_557w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_557w_d = (IHPE)L23_557w_d ; +LOCAL IUH L23_554if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_554if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_554if_f = (IHPE)L23_554if_f ; +LOCAL IUH L23_558w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_558w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_558w_t = (IHPE)L23_558w_t ; +LOCAL IUH L23_559w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_559w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_559w_d = (IHPE)L23_559w_d ; +LOCAL IUH L23_555if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_555if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_555if_d = (IHPE)L23_555if_d ; +GLOBAL IUH S_2536_UnchainedWordMove_00000000_0000000e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2536_UnchainedWordMove_00000000_0000000e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2536_UnchainedWordMove_00000000_0000000e_00000000_00000001 = (IHPE)S_2536_UnchainedWordMove_00000000_0000000e_00000000_00000001 ; +LOCAL IUH L13_2516if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2516if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2516if_f = (IHPE)L13_2516if_f ; +LOCAL IUH L28_296if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_296if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_296if_f = (IHPE)L28_296if_f ; +LOCAL IUH L28_297if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_297if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_297if_d = (IHPE)L28_297if_d ; +GLOBAL IUH S_2537_CopyWordPlnByPlnUnchained_00000000_0000000e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2537_CopyWordPlnByPlnUnchained_00000000_0000000e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2537_CopyWordPlnByPlnUnchained_00000000_0000000e_00000000_00000001 = (IHPE)S_2537_CopyWordPlnByPlnUnchained_00000000_0000000e_00000000_00000001 ; +LOCAL IUH L13_2517if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2517if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2517if_f = (IHPE)L13_2517if_f ; +LOCAL IUH L23_560if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_560if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_560if_f = (IHPE)L23_560if_f ; +LOCAL IUH L23_561if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_561if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_561if_f = (IHPE)L23_561if_f ; +LOCAL IUH L23_562if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_562if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_562if_f = (IHPE)L23_562if_f ; +LOCAL IUH L23_563if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_563if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_563if_f = (IHPE)L23_563if_f ; +GLOBAL IUH S_2538_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2538_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2538_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000001 = (IHPE)S_2538_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000001 ; +LOCAL IUH L13_2518if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2518if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2518if_f = (IHPE)L13_2518if_f ; +LOCAL IUH L23_566w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_566w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_566w_t = (IHPE)L23_566w_t ; +LOCAL IUH L23_567w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_567w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_567w_d = (IHPE)L23_567w_d ; +LOCAL IUH L23_564if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_564if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_564if_f = (IHPE)L23_564if_f ; +LOCAL IUH L23_568w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_568w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_568w_t = (IHPE)L23_568w_t ; +LOCAL IUH L23_569w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_569w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_569w_d = (IHPE)L23_569w_d ; +LOCAL IUH L23_565if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_565if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_565if_d = (IHPE)L23_565if_d ; +GLOBAL IUH S_2539_UnchainedWordMove_00000000_0000000f_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2539_UnchainedWordMove_00000000_0000000f_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2539_UnchainedWordMove_00000000_0000000f_00000000_00000001 = (IHPE)S_2539_UnchainedWordMove_00000000_0000000f_00000000_00000001 ; +LOCAL IUH L13_2519if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2519if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2519if_f = (IHPE)L13_2519if_f ; +LOCAL IUH L28_298if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_298if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_298if_f = (IHPE)L28_298if_f ; +LOCAL IUH L28_299if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_299if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_299if_d = (IHPE)L28_299if_d ; +GLOBAL IUH S_2540_CopyWord4PlaneUnchained_00000000_0000000f_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2540_CopyWord4PlaneUnchained_00000000_0000000f_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2540_CopyWord4PlaneUnchained_00000000_0000000f_00000000_00000001 = (IHPE)S_2540_CopyWord4PlaneUnchained_00000000_0000000f_00000000_00000001 ; +LOCAL IUH L13_2520if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2520if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2520if_f = (IHPE)L13_2520if_f ; +LOCAL IUH L23_572w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_572w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_572w_t = (IHPE)L23_572w_t ; +LOCAL IUH L23_573w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_573w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_573w_d = (IHPE)L23_573w_d ; +LOCAL IUH L23_570if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_570if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_570if_f = (IHPE)L23_570if_f ; +LOCAL IUH L23_574w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_574w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_574w_t = (IHPE)L23_574w_t ; +LOCAL IUH L23_575w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_575w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_575w_d = (IHPE)L23_575w_d ; +LOCAL IUH L23_571if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_571if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_571if_d = (IHPE)L23_571if_d ; +GLOBAL IUH S_2541_UnchainedWordMove_00000000_00000010_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2541_UnchainedWordMove_00000000_00000010_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2541_UnchainedWordMove_00000000_00000010_00000000_00000001 = (IHPE)S_2541_UnchainedWordMove_00000000_00000010_00000000_00000001 ; +LOCAL IUH L13_2521if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2521if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2521if_f = (IHPE)L13_2521if_f ; +LOCAL IUH L28_300if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_300if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_300if_f = (IHPE)L28_300if_f ; +LOCAL IUH L28_301if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_301if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_301if_d = (IHPE)L28_301if_d ; +GLOBAL IUH S_2542_CopyWordPlnByPlnUnchained_00000000_00000010_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2542_CopyWordPlnByPlnUnchained_00000000_00000010_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2542_CopyWordPlnByPlnUnchained_00000000_00000010_00000000_00000001 = (IHPE)S_2542_CopyWordPlnByPlnUnchained_00000000_00000010_00000000_00000001 ; +LOCAL IUH L13_2522if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2522if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2522if_f = (IHPE)L13_2522if_f ; +LOCAL IUH L23_576if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_576if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_576if_f = (IHPE)L23_576if_f ; +LOCAL IUH L23_577if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_577if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_577if_f = (IHPE)L23_577if_f ; +LOCAL IUH L23_578if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_578if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_578if_f = (IHPE)L23_578if_f ; +LOCAL IUH L23_579if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_579if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_579if_f = (IHPE)L23_579if_f ; +GLOBAL IUH S_2543_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2543_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2543_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000001 = (IHPE)S_2543_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000001 ; +LOCAL IUH L13_2523if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2523if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2523if_f = (IHPE)L13_2523if_f ; +LOCAL IUH L23_582w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_582w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_582w_t = (IHPE)L23_582w_t ; +LOCAL IUH L23_583w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_583w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_583w_d = (IHPE)L23_583w_d ; +LOCAL IUH L23_580if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_580if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_580if_f = (IHPE)L23_580if_f ; +LOCAL IUH L23_584w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_584w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_584w_t = (IHPE)L23_584w_t ; +LOCAL IUH L23_585w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_585w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_585w_d = (IHPE)L23_585w_d ; +LOCAL IUH L23_581if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_581if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_581if_d = (IHPE)L23_581if_d ; +GLOBAL IUH S_2544_UnchainedWordMove_00000000_00000011_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2544_UnchainedWordMove_00000000_00000011_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2544_UnchainedWordMove_00000000_00000011_00000000_00000001 = (IHPE)S_2544_UnchainedWordMove_00000000_00000011_00000000_00000001 ; +LOCAL IUH L13_2524if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2524if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2524if_f = (IHPE)L13_2524if_f ; +LOCAL IUH L28_302if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_302if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_302if_f = (IHPE)L28_302if_f ; +LOCAL IUH L28_303if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_303if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_303if_d = (IHPE)L28_303if_d ; +GLOBAL IUH S_2545_CopyWord4PlaneUnchained_00000000_00000011_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2545_CopyWord4PlaneUnchained_00000000_00000011_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2545_CopyWord4PlaneUnchained_00000000_00000011_00000000_00000001 = (IHPE)S_2545_CopyWord4PlaneUnchained_00000000_00000011_00000000_00000001 ; +LOCAL IUH L13_2525if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2525if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2525if_f = (IHPE)L13_2525if_f ; +LOCAL IUH L23_588w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_588w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_588w_t = (IHPE)L23_588w_t ; +LOCAL IUH L23_589w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_589w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_589w_d = (IHPE)L23_589w_d ; +LOCAL IUH L23_586if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_586if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_586if_f = (IHPE)L23_586if_f ; +LOCAL IUH L23_590w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_590w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_590w_t = (IHPE)L23_590w_t ; +LOCAL IUH L23_591w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_591w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_591w_d = (IHPE)L23_591w_d ; +LOCAL IUH L23_587if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_587if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_587if_d = (IHPE)L23_587if_d ; +GLOBAL IUH S_2546_UnchainedWordMove_00000000_00000016_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2546_UnchainedWordMove_00000000_00000016_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2546_UnchainedWordMove_00000000_00000016_00000000_00000001 = (IHPE)S_2546_UnchainedWordMove_00000000_00000016_00000000_00000001 ; +LOCAL IUH L13_2526if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2526if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2526if_f = (IHPE)L13_2526if_f ; +LOCAL IUH L28_304if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_304if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_304if_f = (IHPE)L28_304if_f ; +LOCAL IUH L28_305if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_305if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_305if_d = (IHPE)L28_305if_d ; +GLOBAL IUH S_2547_CopyWordPlnByPlnUnchained_00000000_00000016_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2547_CopyWordPlnByPlnUnchained_00000000_00000016_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2547_CopyWordPlnByPlnUnchained_00000000_00000016_00000000_00000001 = (IHPE)S_2547_CopyWordPlnByPlnUnchained_00000000_00000016_00000000_00000001 ; +LOCAL IUH L13_2527if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2527if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2527if_f = (IHPE)L13_2527if_f ; +LOCAL IUH L23_592if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_592if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_592if_f = (IHPE)L23_592if_f ; +LOCAL IUH L23_593if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_593if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_593if_f = (IHPE)L23_593if_f ; +LOCAL IUH L23_594if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_594if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_594if_f = (IHPE)L23_594if_f ; +LOCAL IUH L23_595if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_595if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_595if_f = (IHPE)L23_595if_f ; +GLOBAL IUH S_2548_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2548_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2548_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000001 = (IHPE)S_2548_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000001 ; +LOCAL IUH L13_2528if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2528if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2528if_f = (IHPE)L13_2528if_f ; +LOCAL IUH L23_598w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_598w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_598w_t = (IHPE)L23_598w_t ; +LOCAL IUH L23_599w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_599w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_599w_d = (IHPE)L23_599w_d ; +LOCAL IUH L23_596if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_596if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_596if_f = (IHPE)L23_596if_f ; +LOCAL IUH L23_600w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_600w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_600w_t = (IHPE)L23_600w_t ; +LOCAL IUH L23_601w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_601w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_601w_d = (IHPE)L23_601w_d ; +LOCAL IUH L23_597if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_597if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_597if_d = (IHPE)L23_597if_d ; +GLOBAL IUH S_2549_UnchainedWordMove_00000000_00000017_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2549_UnchainedWordMove_00000000_00000017_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2549_UnchainedWordMove_00000000_00000017_00000000_00000001 = (IHPE)S_2549_UnchainedWordMove_00000000_00000017_00000000_00000001 ; +LOCAL IUH L13_2529if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2529if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2529if_f = (IHPE)L13_2529if_f ; +LOCAL IUH L28_306if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_306if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_306if_f = (IHPE)L28_306if_f ; +LOCAL IUH L28_307if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_307if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_307if_d = (IHPE)L28_307if_d ; +GLOBAL IUH S_2550_CopyWord4PlaneUnchained_00000000_00000017_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2550_CopyWord4PlaneUnchained_00000000_00000017_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2550_CopyWord4PlaneUnchained_00000000_00000017_00000000_00000001 = (IHPE)S_2550_CopyWord4PlaneUnchained_00000000_00000017_00000000_00000001 ; +LOCAL IUH L13_2530if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2530if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2530if_f = (IHPE)L13_2530if_f ; +LOCAL IUH L23_604w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_604w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_604w_t = (IHPE)L23_604w_t ; +LOCAL IUH L23_605w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_605w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_605w_d = (IHPE)L23_605w_d ; +LOCAL IUH L23_602if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_602if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_602if_f = (IHPE)L23_602if_f ; +LOCAL IUH L23_606w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_606w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_606w_t = (IHPE)L23_606w_t ; +LOCAL IUH L23_607w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_607w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_607w_d = (IHPE)L23_607w_d ; +LOCAL IUH L23_603if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_603if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_603if_d = (IHPE)L23_603if_d ; +GLOBAL IUH S_2551_UnchainedWordMove_00000000_00000018_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2551_UnchainedWordMove_00000000_00000018_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2551_UnchainedWordMove_00000000_00000018_00000000_00000001 = (IHPE)S_2551_UnchainedWordMove_00000000_00000018_00000000_00000001 ; +LOCAL IUH L13_2531if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2531if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2531if_f = (IHPE)L13_2531if_f ; +LOCAL IUH L28_308if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_308if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_308if_f = (IHPE)L28_308if_f ; +LOCAL IUH L28_309if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_309if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_309if_d = (IHPE)L28_309if_d ; +GLOBAL IUH S_2552_CopyWordPlnByPlnUnchained_00000000_00000018_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2552_CopyWordPlnByPlnUnchained_00000000_00000018_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2552_CopyWordPlnByPlnUnchained_00000000_00000018_00000000_00000001 = (IHPE)S_2552_CopyWordPlnByPlnUnchained_00000000_00000018_00000000_00000001 ; +LOCAL IUH L13_2532if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2532if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2532if_f = (IHPE)L13_2532if_f ; +LOCAL IUH L23_608if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_608if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_608if_f = (IHPE)L23_608if_f ; +LOCAL IUH L23_609if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_609if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_609if_f = (IHPE)L23_609if_f ; +LOCAL IUH L23_610if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_610if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_610if_f = (IHPE)L23_610if_f ; +LOCAL IUH L23_611if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_611if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_611if_f = (IHPE)L23_611if_f ; +GLOBAL IUH S_2553_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2553_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2553_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000001 = (IHPE)S_2553_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000001 ; +LOCAL IUH L13_2533if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2533if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2533if_f = (IHPE)L13_2533if_f ; +LOCAL IUH L23_614w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_614w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_614w_t = (IHPE)L23_614w_t ; +LOCAL IUH L23_615w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_615w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_615w_d = (IHPE)L23_615w_d ; +LOCAL IUH L23_612if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_612if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_612if_f = (IHPE)L23_612if_f ; +LOCAL IUH L23_616w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_616w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_616w_t = (IHPE)L23_616w_t ; +LOCAL IUH L23_617w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_617w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_617w_d = (IHPE)L23_617w_d ; +LOCAL IUH L23_613if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_613if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_613if_d = (IHPE)L23_613if_d ; +GLOBAL IUH S_2554_UnchainedWordMove_00000000_00000019_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2554_UnchainedWordMove_00000000_00000019_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2554_UnchainedWordMove_00000000_00000019_00000000_00000001 = (IHPE)S_2554_UnchainedWordMove_00000000_00000019_00000000_00000001 ; +LOCAL IUH L13_2534if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2534if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2534if_f = (IHPE)L13_2534if_f ; +LOCAL IUH L28_310if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_310if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_310if_f = (IHPE)L28_310if_f ; +LOCAL IUH L28_311if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_311if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_311if_d = (IHPE)L28_311if_d ; +GLOBAL IUH S_2555_CopyWord4PlaneUnchained_00000000_00000019_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2555_CopyWord4PlaneUnchained_00000000_00000019_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2555_CopyWord4PlaneUnchained_00000000_00000019_00000000_00000001 = (IHPE)S_2555_CopyWord4PlaneUnchained_00000000_00000019_00000000_00000001 ; +LOCAL IUH L13_2535if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2535if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2535if_f = (IHPE)L13_2535if_f ; +LOCAL IUH L23_620w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_620w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_620w_t = (IHPE)L23_620w_t ; +LOCAL IUH L23_621w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_621w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_621w_d = (IHPE)L23_621w_d ; +LOCAL IUH L23_618if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_618if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_618if_f = (IHPE)L23_618if_f ; +LOCAL IUH L23_622w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_622w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_622w_t = (IHPE)L23_622w_t ; +LOCAL IUH L23_623w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_623w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_623w_d = (IHPE)L23_623w_d ; +LOCAL IUH L23_619if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_619if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_619if_d = (IHPE)L23_619if_d ; +GLOBAL IUH S_2556_UnchainedWordMove_00000000_0000001e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2556_UnchainedWordMove_00000000_0000001e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2556_UnchainedWordMove_00000000_0000001e_00000000_00000001 = (IHPE)S_2556_UnchainedWordMove_00000000_0000001e_00000000_00000001 ; +LOCAL IUH L13_2536if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2536if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2536if_f = (IHPE)L13_2536if_f ; +LOCAL IUH L28_312if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_312if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_312if_f = (IHPE)L28_312if_f ; +LOCAL IUH L28_313if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_313if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_313if_d = (IHPE)L28_313if_d ; +GLOBAL IUH S_2557_CopyWordPlnByPlnUnchained_00000000_0000001e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2557_CopyWordPlnByPlnUnchained_00000000_0000001e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2557_CopyWordPlnByPlnUnchained_00000000_0000001e_00000000_00000001 = (IHPE)S_2557_CopyWordPlnByPlnUnchained_00000000_0000001e_00000000_00000001 ; +LOCAL IUH L13_2537if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2537if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2537if_f = (IHPE)L13_2537if_f ; +LOCAL IUH L23_624if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_624if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_624if_f = (IHPE)L23_624if_f ; +LOCAL IUH L23_625if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_625if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_625if_f = (IHPE)L23_625if_f ; +LOCAL IUH L23_626if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_626if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_626if_f = (IHPE)L23_626if_f ; +LOCAL IUH L23_627if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_627if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_627if_f = (IHPE)L23_627if_f ; +GLOBAL IUH S_2558_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2558_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2558_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000001 = (IHPE)S_2558_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000001 ; +LOCAL IUH L13_2538if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2538if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2538if_f = (IHPE)L13_2538if_f ; +LOCAL IUH L23_630w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_630w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_630w_t = (IHPE)L23_630w_t ; +LOCAL IUH L23_631w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_631w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_631w_d = (IHPE)L23_631w_d ; +LOCAL IUH L23_628if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_628if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_628if_f = (IHPE)L23_628if_f ; +LOCAL IUH L23_632w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_632w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_632w_t = (IHPE)L23_632w_t ; +LOCAL IUH L23_633w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_633w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_633w_d = (IHPE)L23_633w_d ; +LOCAL IUH L23_629if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_629if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_629if_d = (IHPE)L23_629if_d ; +GLOBAL IUH S_2559_UnchainedWordMove_00000000_0000001f_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2559_UnchainedWordMove_00000000_0000001f_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2559_UnchainedWordMove_00000000_0000001f_00000000_00000001 = (IHPE)S_2559_UnchainedWordMove_00000000_0000001f_00000000_00000001 ; +LOCAL IUH L13_2539if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2539if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2539if_f = (IHPE)L13_2539if_f ; +LOCAL IUH L28_314if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_314if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_314if_f = (IHPE)L28_314if_f ; +LOCAL IUH L28_315if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_315if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_315if_d = (IHPE)L28_315if_d ; +GLOBAL IUH S_2560_CopyWord4PlaneUnchained_00000000_0000001f_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2560_CopyWord4PlaneUnchained_00000000_0000001f_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2560_CopyWord4PlaneUnchained_00000000_0000001f_00000000_00000001 = (IHPE)S_2560_CopyWord4PlaneUnchained_00000000_0000001f_00000000_00000001 ; +LOCAL IUH L13_2540if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2540if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2540if_f = (IHPE)L13_2540if_f ; +LOCAL IUH L23_636w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_636w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_636w_t = (IHPE)L23_636w_t ; +LOCAL IUH L23_637w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_637w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_637w_d = (IHPE)L23_637w_d ; +LOCAL IUH L23_634if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_634if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_634if_f = (IHPE)L23_634if_f ; +LOCAL IUH L23_638w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_638w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_638w_t = (IHPE)L23_638w_t ; +LOCAL IUH L23_639w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_639w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_639w_d = (IHPE)L23_639w_d ; +LOCAL IUH L23_635if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_635if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_635if_d = (IHPE)L23_635if_d ; +GLOBAL IUH S_2561_UnchainedDwordMove_00000000_00000008_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2561_UnchainedDwordMove_00000000_00000008_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2561_UnchainedDwordMove_00000000_00000008_00000000_00000001 = (IHPE)S_2561_UnchainedDwordMove_00000000_00000008_00000000_00000001 ; +LOCAL IUH L13_2541if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2541if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2541if_f = (IHPE)L13_2541if_f ; +GLOBAL IUH S_2562_UnchainedDwordMove_00000000_00000009_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2562_UnchainedDwordMove_00000000_00000009_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2562_UnchainedDwordMove_00000000_00000009_00000000_00000001 = (IHPE)S_2562_UnchainedDwordMove_00000000_00000009_00000000_00000001 ; +LOCAL IUH L13_2542if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2542if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2542if_f = (IHPE)L13_2542if_f ; +GLOBAL IUH S_2563_UnchainedDwordMove_00000000_0000000e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2563_UnchainedDwordMove_00000000_0000000e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2563_UnchainedDwordMove_00000000_0000000e_00000000_00000001 = (IHPE)S_2563_UnchainedDwordMove_00000000_0000000e_00000000_00000001 ; +LOCAL IUH L13_2543if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2543if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2543if_f = (IHPE)L13_2543if_f ; +GLOBAL IUH S_2564_UnchainedDwordMove_00000000_0000000f_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2564_UnchainedDwordMove_00000000_0000000f_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2564_UnchainedDwordMove_00000000_0000000f_00000000_00000001 = (IHPE)S_2564_UnchainedDwordMove_00000000_0000000f_00000000_00000001 ; +LOCAL IUH L13_2544if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2544if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2544if_f = (IHPE)L13_2544if_f ; +GLOBAL IUH S_2565_UnchainedDwordMove_00000000_00000010_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2565_UnchainedDwordMove_00000000_00000010_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2565_UnchainedDwordMove_00000000_00000010_00000000_00000001 = (IHPE)S_2565_UnchainedDwordMove_00000000_00000010_00000000_00000001 ; +LOCAL IUH L13_2545if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2545if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2545if_f = (IHPE)L13_2545if_f ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2534_UnchainedWordMove_00000000_00000009_00000000_00000001_id : + S_2534_UnchainedWordMove_00000000_00000009_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2534) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2514if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2514if_f_id : + L13_2514if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_294if_f; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2535_CopyWord4PlaneUnchained_00000000_00000009_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2535_CopyWord4PlaneUnchained_00000000_00000009_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + { extern IUH L28_295if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_295if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_294if_f_id : + L28_294if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2535_CopyWord4PlaneUnchained_00000000_00000009_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2535_CopyWord4PlaneUnchained_00000000_00000009_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + case L28_295if_d_id : + L28_295if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2535_CopyWord4PlaneUnchained_00000000_00000009_00000000_00000001_id : + S_2535_CopyWord4PlaneUnchained_00000000_00000009_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2535) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2515if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2515if_f_id : + L13_2515if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_554if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_557w_d; + case L23_556w_t_id : + L23_556w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_556w_t; + case L23_557w_d_id : + L23_557w_d: ; + { extern IUH L23_555if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_555if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_554if_f_id : + L23_554if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_559w_d; + case L23_558w_t_id : + L23_558w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_558w_t; + case L23_559w_d_id : + L23_559w_d: ; + case L23_555if_d_id : + L23_555if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2536_UnchainedWordMove_00000000_0000000e_00000000_00000001_id : + S_2536_UnchainedWordMove_00000000_0000000e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2536) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2516if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2516if_f_id : + L13_2516if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_296if_f; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2537_CopyWordPlnByPlnUnchained_00000000_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2537_CopyWordPlnByPlnUnchained_00000000_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + { extern IUH L28_297if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_297if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_296if_f_id : + L28_296if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2537_CopyWordPlnByPlnUnchained_00000000_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2537_CopyWordPlnByPlnUnchained_00000000_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + case L28_297if_d_id : + L28_297if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2537_CopyWordPlnByPlnUnchained_00000000_0000000e_00000000_00000001_id : + S_2537_CopyWordPlnByPlnUnchained_00000000_0000000e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2537) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2517if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2517if_f_id : + L13_2517if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_560if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2538_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2538_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_560if_f_id : + L23_560if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_561if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2538_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2538_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_561if_f_id : + L23_561if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_562if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2538_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2538_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_562if_f_id : + L23_562if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_563if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2538_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2538_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_563if_f_id : + L23_563if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2538_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000001_id : + S_2538_CopyWord1PlaneUnchained_00000000_0000000e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2538) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2518if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2518if_f_id : + L13_2518if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_564if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_567w_d; + case L23_566w_t_id : + L23_566w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_566w_t; + case L23_567w_d_id : + L23_567w_d: ; + { extern IUH L23_565if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_565if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_564if_f_id : + L23_564if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_569w_d; + case L23_568w_t_id : + L23_568w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_568w_t; + case L23_569w_d_id : + L23_569w_d: ; + case L23_565if_d_id : + L23_565if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2539_UnchainedWordMove_00000000_0000000f_00000000_00000001_id : + S_2539_UnchainedWordMove_00000000_0000000f_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2539) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2519if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2519if_f_id : + L13_2519if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_298if_f; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2540_CopyWord4PlaneUnchained_00000000_0000000f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2540_CopyWord4PlaneUnchained_00000000_0000000f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + { extern IUH L28_299if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_299if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_298if_f_id : + L28_298if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2540_CopyWord4PlaneUnchained_00000000_0000000f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2540_CopyWord4PlaneUnchained_00000000_0000000f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + case L28_299if_d_id : + L28_299if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2540_CopyWord4PlaneUnchained_00000000_0000000f_00000000_00000001_id : + S_2540_CopyWord4PlaneUnchained_00000000_0000000f_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2540) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2520if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2520if_f_id : + L13_2520if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_570if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_573w_d; + case L23_572w_t_id : + L23_572w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_572w_t; + case L23_573w_d_id : + L23_573w_d: ; + { extern IUH L23_571if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_571if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_570if_f_id : + L23_570if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_575w_d; + case L23_574w_t_id : + L23_574w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_574w_t; + case L23_575w_d_id : + L23_575w_d: ; + case L23_571if_d_id : + L23_571if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2541_UnchainedWordMove_00000000_00000010_00000000_00000001_id : + S_2541_UnchainedWordMove_00000000_00000010_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2541) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2521if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2521if_f_id : + L13_2521if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_300if_f; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2542_CopyWordPlnByPlnUnchained_00000000_00000010_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2542_CopyWordPlnByPlnUnchained_00000000_00000010_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + { extern IUH L28_301if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_301if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_300if_f_id : + L28_300if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2542_CopyWordPlnByPlnUnchained_00000000_00000010_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2542_CopyWordPlnByPlnUnchained_00000000_00000010_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + case L28_301if_d_id : + L28_301if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2542_CopyWordPlnByPlnUnchained_00000000_00000010_00000000_00000001_id : + S_2542_CopyWordPlnByPlnUnchained_00000000_00000010_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2542) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2522if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2522if_f_id : + L13_2522if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_576if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2543_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2543_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_576if_f_id : + L23_576if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_577if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2543_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2543_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_577if_f_id : + L23_577if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_578if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2543_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2543_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_578if_f_id : + L23_578if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_579if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2543_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2543_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_579if_f_id : + L23_579if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2543_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000001_id : + S_2543_CopyWord1PlaneUnchained_00000000_00000010_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2543) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2523if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2523if_f_id : + L13_2523if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_580if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_583w_d; + case L23_582w_t_id : + L23_582w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_582w_t; + case L23_583w_d_id : + L23_583w_d: ; + { extern IUH L23_581if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_581if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_580if_f_id : + L23_580if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_585w_d; + case L23_584w_t_id : + L23_584w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_584w_t; + case L23_585w_d_id : + L23_585w_d: ; + case L23_581if_d_id : + L23_581if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2544_UnchainedWordMove_00000000_00000011_00000000_00000001_id : + S_2544_UnchainedWordMove_00000000_00000011_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2544) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2524if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2524if_f_id : + L13_2524if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_302if_f; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2545_CopyWord4PlaneUnchained_00000000_00000011_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2545_CopyWord4PlaneUnchained_00000000_00000011_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + { extern IUH L28_303if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_303if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_302if_f_id : + L28_302if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2545_CopyWord4PlaneUnchained_00000000_00000011_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2545_CopyWord4PlaneUnchained_00000000_00000011_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + case L28_303if_d_id : + L28_303if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2545_CopyWord4PlaneUnchained_00000000_00000011_00000000_00000001_id : + S_2545_CopyWord4PlaneUnchained_00000000_00000011_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2545) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2525if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2525if_f_id : + L13_2525if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_586if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_589w_d; + case L23_588w_t_id : + L23_588w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_588w_t; + case L23_589w_d_id : + L23_589w_d: ; + { extern IUH L23_587if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_587if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_586if_f_id : + L23_586if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_591w_d; + case L23_590w_t_id : + L23_590w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_590w_t; + case L23_591w_d_id : + L23_591w_d: ; + case L23_587if_d_id : + L23_587if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2546_UnchainedWordMove_00000000_00000016_00000000_00000001_id : + S_2546_UnchainedWordMove_00000000_00000016_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2546) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2526if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2526if_f_id : + L13_2526if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_304if_f; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2547_CopyWordPlnByPlnUnchained_00000000_00000016_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2547_CopyWordPlnByPlnUnchained_00000000_00000016_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + { extern IUH L28_305if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_305if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_304if_f_id : + L28_304if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2547_CopyWordPlnByPlnUnchained_00000000_00000016_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2547_CopyWordPlnByPlnUnchained_00000000_00000016_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + case L28_305if_d_id : + L28_305if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2547_CopyWordPlnByPlnUnchained_00000000_00000016_00000000_00000001_id : + S_2547_CopyWordPlnByPlnUnchained_00000000_00000016_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2547) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2527if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2527if_f_id : + L13_2527if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_592if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2548_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2548_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_592if_f_id : + L23_592if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_593if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2548_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2548_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_593if_f_id : + L23_593if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_594if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2548_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2548_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_594if_f_id : + L23_594if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_595if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2548_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2548_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_595if_f_id : + L23_595if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2548_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000001_id : + S_2548_CopyWord1PlaneUnchained_00000000_00000016_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2548) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2528if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2528if_f_id : + L13_2528if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_596if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_599w_d; + case L23_598w_t_id : + L23_598w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_598w_t; + case L23_599w_d_id : + L23_599w_d: ; + { extern IUH L23_597if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_597if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_596if_f_id : + L23_596if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_601w_d; + case L23_600w_t_id : + L23_600w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) ^ *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) ^ *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_600w_t; + case L23_601w_d_id : + L23_601w_d: ; + case L23_597if_d_id : + L23_597if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2549_UnchainedWordMove_00000000_00000017_00000000_00000001_id : + S_2549_UnchainedWordMove_00000000_00000017_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2549) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2529if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2529if_f_id : + L13_2529if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_306if_f; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2550_CopyWord4PlaneUnchained_00000000_00000017_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2550_CopyWord4PlaneUnchained_00000000_00000017_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + { extern IUH L28_307if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_307if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_306if_f_id : + L28_306if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2550_CopyWord4PlaneUnchained_00000000_00000017_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2550_CopyWord4PlaneUnchained_00000000_00000017_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + case L28_307if_d_id : + L28_307if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2550_CopyWord4PlaneUnchained_00000000_00000017_00000000_00000001_id : + S_2550_CopyWord4PlaneUnchained_00000000_00000017_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2550) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2530if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2530if_f_id : + L13_2530if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_602if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_605w_d; + case L23_604w_t_id : + L23_604w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_604w_t; + case L23_605w_d_id : + L23_605w_d: ; + { extern IUH L23_603if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_603if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_602if_f_id : + L23_602if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_607w_d; + case L23_606w_t_id : + L23_606w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) ^ *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) ^ *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_606w_t; + case L23_607w_d_id : + L23_607w_d: ; + case L23_603if_d_id : + L23_603if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2551_UnchainedWordMove_00000000_00000018_00000000_00000001_id : + S_2551_UnchainedWordMove_00000000_00000018_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2551) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2531if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2531if_f_id : + L13_2531if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_308if_f; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2552_CopyWordPlnByPlnUnchained_00000000_00000018_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2552_CopyWordPlnByPlnUnchained_00000000_00000018_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + { extern IUH L28_309if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_309if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_308if_f_id : + L28_308if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2552_CopyWordPlnByPlnUnchained_00000000_00000018_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2552_CopyWordPlnByPlnUnchained_00000000_00000018_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + case L28_309if_d_id : + L28_309if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2552_CopyWordPlnByPlnUnchained_00000000_00000018_00000000_00000001_id : + S_2552_CopyWordPlnByPlnUnchained_00000000_00000018_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2552) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2532if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2532if_f_id : + L13_2532if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_608if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2553_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2553_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_608if_f_id : + L23_608if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_609if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2553_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2553_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_609if_f_id : + L23_609if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_610if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2553_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2553_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_610if_f_id : + L23_610if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_611if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2553_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2553_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_611if_f_id : + L23_611if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2553_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000001_id : + S_2553_CopyWord1PlaneUnchained_00000000_00000018_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2553) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2533if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2533if_f_id : + L13_2533if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_612if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_615w_d; + case L23_614w_t_id : + L23_614w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_614w_t; + case L23_615w_d_id : + L23_615w_d: ; + { extern IUH L23_613if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_613if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_612if_f_id : + L23_612if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_617w_d; + case L23_616w_t_id : + L23_616w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_616w_t; + case L23_617w_d_id : + L23_617w_d: ; + case L23_613if_d_id : + L23_613if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2554_UnchainedWordMove_00000000_00000019_00000000_00000001_id : + S_2554_UnchainedWordMove_00000000_00000019_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2554) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2534if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2534if_f_id : + L13_2534if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_310if_f; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2555_CopyWord4PlaneUnchained_00000000_00000019_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2555_CopyWord4PlaneUnchained_00000000_00000019_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + { extern IUH L28_311if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_311if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_310if_f_id : + L28_310if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2555_CopyWord4PlaneUnchained_00000000_00000019_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2555_CopyWord4PlaneUnchained_00000000_00000019_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + case L28_311if_d_id : + L28_311if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2555_CopyWord4PlaneUnchained_00000000_00000019_00000000_00000001_id : + S_2555_CopyWord4PlaneUnchained_00000000_00000019_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2555) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2535if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2535if_f_id : + L13_2535if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_618if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_621w_d; + case L23_620w_t_id : + L23_620w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_620w_t; + case L23_621w_d_id : + L23_621w_d: ; + { extern IUH L23_619if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_619if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_618if_f_id : + L23_618if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_623w_d; + case L23_622w_t_id : + L23_622w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_622w_t; + case L23_623w_d_id : + L23_623w_d: ; + case L23_619if_d_id : + L23_619if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2556_UnchainedWordMove_00000000_0000001e_00000000_00000001_id : + S_2556_UnchainedWordMove_00000000_0000001e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2556) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2536if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2536if_f_id : + L13_2536if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_312if_f; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2557_CopyWordPlnByPlnUnchained_00000000_0000001e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2557_CopyWordPlnByPlnUnchained_00000000_0000001e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + { extern IUH L28_313if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_313if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_312if_f_id : + L28_312if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2557_CopyWordPlnByPlnUnchained_00000000_0000001e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2557_CopyWordPlnByPlnUnchained_00000000_0000001e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + case L28_313if_d_id : + L28_313if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2557_CopyWordPlnByPlnUnchained_00000000_0000001e_00000000_00000001_id : + S_2557_CopyWordPlnByPlnUnchained_00000000_0000001e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2557) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2537if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2537if_f_id : + L13_2537if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_624if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2558_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2558_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_624if_f_id : + L23_624if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_625if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2558_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2558_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_625if_f_id : + L23_625if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_626if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2558_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2558_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_626if_f_id : + L23_626if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_627if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2558_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2558_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_627if_f_id : + L23_627if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2558_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000001_id : + S_2558_CopyWord1PlaneUnchained_00000000_0000001e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2558) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2538if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2538if_f_id : + L13_2538if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_628if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_631w_d; + case L23_630w_t_id : + L23_630w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_630w_t; + case L23_631w_d_id : + L23_631w_d: ; + { extern IUH L23_629if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_629if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_628if_f_id : + L23_628if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_633w_d; + case L23_632w_t_id : + L23_632w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) << *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_632w_t; + case L23_633w_d_id : + L23_633w_d: ; + case L23_629if_d_id : + L23_629if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2559_UnchainedWordMove_00000000_0000001f_00000000_00000001_id : + S_2559_UnchainedWordMove_00000000_0000001f_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2559) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2539if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2539if_f_id : + L13_2539if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_314if_f; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2560_CopyWord4PlaneUnchained_00000000_0000001f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2560_CopyWord4PlaneUnchained_00000000_0000001f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + { extern IUH L28_315if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_315if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_314if_f_id : + L28_314if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2560_CopyWord4PlaneUnchained_00000000_0000001f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2560_CopyWord4PlaneUnchained_00000000_0000001f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + case L28_315if_d_id : + L28_315if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2560_CopyWord4PlaneUnchained_00000000_0000001f_00000000_00000001_id : + S_2560_CopyWord4PlaneUnchained_00000000_0000001f_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2560) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2540if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2540if_f_id : + L13_2540if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_634if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_637w_d; + case L23_636w_t_id : + L23_636w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_636w_t; + case L23_637w_d_id : + L23_637w_d: ; + { extern IUH L23_635if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_635if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_634if_f_id : + L23_634if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_639w_d; + case L23_638w_t_id : + L23_638w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_638w_t; + case L23_639w_d_id : + L23_639w_d: ; + case L23_635if_d_id : + L23_635if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2561_UnchainedDwordMove_00000000_00000008_00000000_00000001_id : + S_2561_UnchainedDwordMove_00000000_00000008_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2561) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2541if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2541if_f_id : + L13_2541if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2531_UnchainedWordMove_00000000_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2531_UnchainedWordMove_00000000_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2562_UnchainedDwordMove_00000000_00000009_00000000_00000001_id : + S_2562_UnchainedDwordMove_00000000_00000009_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2562) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2542if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2542if_f_id : + L13_2542if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2534_UnchainedWordMove_00000000_00000009_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2534_UnchainedWordMove_00000000_00000009_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2563_UnchainedDwordMove_00000000_0000000e_00000000_00000001_id : + S_2563_UnchainedDwordMove_00000000_0000000e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2563) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2543if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2543if_f_id : + L13_2543if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2536_UnchainedWordMove_00000000_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2536_UnchainedWordMove_00000000_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2564_UnchainedDwordMove_00000000_0000000f_00000000_00000001_id : + S_2564_UnchainedDwordMove_00000000_0000000f_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2564) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2544if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2544if_f_id : + L13_2544if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2539_UnchainedWordMove_00000000_0000000f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2539_UnchainedWordMove_00000000_0000000f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2565_UnchainedDwordMove_00000000_00000010_00000000_00000001_id : + S_2565_UnchainedDwordMove_00000000_00000010_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2565) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2545if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2545if_f_id : + L13_2545if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2541_UnchainedWordMove_00000000_00000010_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2541_UnchainedWordMove_00000000_00000010_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid015.c b/private/mvdm/softpc.new/base/cvidc/sevid015.c new file mode 100644 index 000000000..3d94c53e8 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid015.c @@ -0,0 +1,4711 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_2566_UnchainedDwordMove_00000000_00000011_00000000_00000001_id, +L13_2546if_f_id, +S_2567_UnchainedDwordMove_00000000_00000016_00000000_00000001_id, +L13_2547if_f_id, +S_2568_UnchainedDwordMove_00000000_00000017_00000000_00000001_id, +L13_2548if_f_id, +S_2569_UnchainedDwordMove_00000000_00000018_00000000_00000001_id, +L13_2549if_f_id, +S_2570_UnchainedDwordMove_00000000_00000019_00000000_00000001_id, +L13_2550if_f_id, +S_2571_UnchainedDwordMove_00000000_0000001e_00000000_00000001_id, +L13_2551if_f_id, +S_2572_UnchainedDwordMove_00000000_0000001f_00000000_00000001_id, +L13_2552if_f_id, +S_2573_UnchainedByteMove_00000001_00000000_00000000_00000001_id, +L13_2553if_f_id, +L28_316if_f_id, +L28_318if_f_id, +L28_319if_f_id, +L28_320if_f_id, +L28_321if_f_id, +L28_317if_d_id, +S_2574_UnchainedWordMove_00000001_00000000_00000000_00000001_id, +L13_2554if_f_id, +L28_322if_f_id, +L28_324if_f_id, +L28_325if_f_id, +L28_326if_f_id, +L28_327if_f_id, +L28_323if_d_id, +S_2575_UnchainedDwordMove_00000001_00000000_00000000_00000001_id, +L13_2555if_f_id, +S_2576_UnchainedByteMove_00000002_00000008_00000000_00000001_id, +L13_2556if_f_id, +L28_328if_f_id, +L28_329if_d_id, +S_2577_CopyBytePlnByPlnUnchained_00000002_00000008_00000000_00000001_id, +L13_2557if_f_id, +L23_640if_f_id, +L23_641if_f_id, +L23_642if_f_id, +L23_643if_f_id, +S_2578_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000001_id, +L13_2558if_f_id, +L23_646w_t_id, +L23_647w_d_id, +L23_644if_f_id, +L23_648w_t_id, +L23_649w_d_id, +L23_645if_d_id, +S_2579_UnchainedByteMove_00000002_00000009_00000000_00000001_id, +L13_2559if_f_id, +L28_330if_f_id, +L28_331if_d_id, +S_2580_CopyByte4PlaneUnchained_00000002_00000009_00000000_00000001_id, +L13_2560if_f_id, +L23_652w_t_id, +L23_653w_d_id, +L23_650if_f_id, +L23_654w_t_id, +L23_655w_d_id, +L23_651if_d_id, +S_2581_UnchainedByteMove_00000002_0000000e_00000000_00000001_id, +L13_2561if_f_id, +L28_332if_f_id, +L28_333if_d_id, +S_2582_CopyBytePlnByPlnUnchained_00000002_0000000e_00000000_00000001_id, +L13_2562if_f_id, +L23_656if_f_id, +L23_657if_f_id, +L23_658if_f_id, +L23_659if_f_id, +S_2583_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000001_id, +L13_2563if_f_id, +L23_662w_t_id, +L23_663w_d_id, +L23_660if_f_id, +L23_664w_t_id, +L23_665w_d_id, +L23_661if_d_id, +S_2584_UnchainedByteMove_00000002_0000000f_00000000_00000001_id, +L13_2564if_f_id, +L28_334if_f_id, +L28_335if_d_id, +S_2585_CopyByte4PlaneUnchained_00000002_0000000f_00000000_00000001_id, +L13_2565if_f_id, +L23_668w_t_id, +L23_669w_d_id, +L23_666if_f_id, +L23_670w_t_id, +L23_671w_d_id, +L23_667if_d_id, +S_2586_UnchainedWordMove_00000002_00000008_00000000_00000001_id, +L13_2566if_f_id, +L28_336if_f_id, +L28_337if_d_id, +S_2587_CopyWordPlnByPlnUnchained_00000002_00000008_00000000_00000001_id, +L13_2567if_f_id, +L23_672if_f_id, +L23_673if_f_id, +L23_674if_f_id, +L23_675if_f_id, +S_2588_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000001_id, +L13_2568if_f_id, +L23_678w_t_id, +L23_679w_d_id, +L23_676if_f_id, +L23_680w_t_id, +L23_681w_d_id, +L23_677if_d_id, +S_2589_UnchainedWordMove_00000002_00000009_00000000_00000001_id, +L13_2569if_f_id, +L28_338if_f_id, +L28_339if_d_id, +S_2590_CopyWord4PlaneUnchained_00000002_00000009_00000000_00000001_id, +L13_2570if_f_id, +L23_684w_t_id, +L23_685w_d_id, +L23_682if_f_id, +L23_686w_t_id, +L23_687w_d_id, +L23_683if_d_id, +S_2591_UnchainedWordMove_00000002_0000000e_00000000_00000001_id, +L13_2571if_f_id, +L28_340if_f_id, +L28_341if_d_id, +S_2592_CopyWordPlnByPlnUnchained_00000002_0000000e_00000000_00000001_id, +L13_2572if_f_id, +L23_688if_f_id, +L23_689if_f_id, +L23_690if_f_id, +L23_691if_f_id, +S_2593_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000001_id, +L13_2573if_f_id, +L23_694w_t_id, +L23_695w_d_id, +L23_692if_f_id, +L23_696w_t_id, +L23_697w_d_id, +L23_693if_d_id, +S_2594_UnchainedWordMove_00000002_0000000f_00000000_00000001_id, +L13_2574if_f_id, +L28_342if_f_id, +L28_343if_d_id, +S_2595_CopyWord4PlaneUnchained_00000002_0000000f_00000000_00000001_id, +L13_2575if_f_id, +L23_700w_t_id, +L23_701w_d_id, +L23_698if_f_id, +L23_702w_t_id, +L23_703w_d_id, +L23_699if_d_id, +S_2596_UnchainedDwordMove_00000002_00000008_00000000_00000001_id, +L13_2576if_f_id, +S_2597_UnchainedDwordMove_00000002_00000009_00000000_00000001_id, +L13_2577if_f_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_2566_UnchainedDwordMove_00000000_00000011_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2566_UnchainedDwordMove_00000000_00000011_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2566_UnchainedDwordMove_00000000_00000011_00000000_00000001 = (IHPE)S_2566_UnchainedDwordMove_00000000_00000011_00000000_00000001 ; +LOCAL IUH L13_2546if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2546if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2546if_f = (IHPE)L13_2546if_f ; +GLOBAL IUH S_2567_UnchainedDwordMove_00000000_00000016_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2567_UnchainedDwordMove_00000000_00000016_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2567_UnchainedDwordMove_00000000_00000016_00000000_00000001 = (IHPE)S_2567_UnchainedDwordMove_00000000_00000016_00000000_00000001 ; +LOCAL IUH L13_2547if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2547if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2547if_f = (IHPE)L13_2547if_f ; +GLOBAL IUH S_2568_UnchainedDwordMove_00000000_00000017_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2568_UnchainedDwordMove_00000000_00000017_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2568_UnchainedDwordMove_00000000_00000017_00000000_00000001 = (IHPE)S_2568_UnchainedDwordMove_00000000_00000017_00000000_00000001 ; +LOCAL IUH L13_2548if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2548if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2548if_f = (IHPE)L13_2548if_f ; +GLOBAL IUH S_2569_UnchainedDwordMove_00000000_00000018_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2569_UnchainedDwordMove_00000000_00000018_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2569_UnchainedDwordMove_00000000_00000018_00000000_00000001 = (IHPE)S_2569_UnchainedDwordMove_00000000_00000018_00000000_00000001 ; +LOCAL IUH L13_2549if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2549if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2549if_f = (IHPE)L13_2549if_f ; +GLOBAL IUH S_2570_UnchainedDwordMove_00000000_00000019_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2570_UnchainedDwordMove_00000000_00000019_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2570_UnchainedDwordMove_00000000_00000019_00000000_00000001 = (IHPE)S_2570_UnchainedDwordMove_00000000_00000019_00000000_00000001 ; +LOCAL IUH L13_2550if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2550if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2550if_f = (IHPE)L13_2550if_f ; +GLOBAL IUH S_2571_UnchainedDwordMove_00000000_0000001e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2571_UnchainedDwordMove_00000000_0000001e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2571_UnchainedDwordMove_00000000_0000001e_00000000_00000001 = (IHPE)S_2571_UnchainedDwordMove_00000000_0000001e_00000000_00000001 ; +LOCAL IUH L13_2551if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2551if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2551if_f = (IHPE)L13_2551if_f ; +GLOBAL IUH S_2572_UnchainedDwordMove_00000000_0000001f_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2572_UnchainedDwordMove_00000000_0000001f_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2572_UnchainedDwordMove_00000000_0000001f_00000000_00000001 = (IHPE)S_2572_UnchainedDwordMove_00000000_0000001f_00000000_00000001 ; +LOCAL IUH L13_2552if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2552if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2552if_f = (IHPE)L13_2552if_f ; +GLOBAL IUH S_2573_UnchainedByteMove_00000001_00000000_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2573_UnchainedByteMove_00000001_00000000_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2573_UnchainedByteMove_00000001_00000000_00000000_00000001 = (IHPE)S_2573_UnchainedByteMove_00000001_00000000_00000000_00000001 ; +LOCAL IUH L13_2553if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2553if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2553if_f = (IHPE)L13_2553if_f ; +LOCAL IUH L28_316if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_316if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_316if_f = (IHPE)L28_316if_f ; +LOCAL IUH L28_318if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_318if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_318if_f = (IHPE)L28_318if_f ; +LOCAL IUH L28_319if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_319if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_319if_f = (IHPE)L28_319if_f ; +LOCAL IUH L28_320if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_320if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_320if_f = (IHPE)L28_320if_f ; +LOCAL IUH L28_321if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_321if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_321if_f = (IHPE)L28_321if_f ; +LOCAL IUH L28_317if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_317if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_317if_d = (IHPE)L28_317if_d ; +GLOBAL IUH S_2574_UnchainedWordMove_00000001_00000000_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2574_UnchainedWordMove_00000001_00000000_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2574_UnchainedWordMove_00000001_00000000_00000000_00000001 = (IHPE)S_2574_UnchainedWordMove_00000001_00000000_00000000_00000001 ; +LOCAL IUH L13_2554if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2554if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2554if_f = (IHPE)L13_2554if_f ; +LOCAL IUH L28_322if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_322if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_322if_f = (IHPE)L28_322if_f ; +LOCAL IUH L28_324if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_324if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_324if_f = (IHPE)L28_324if_f ; +LOCAL IUH L28_325if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_325if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_325if_f = (IHPE)L28_325if_f ; +LOCAL IUH L28_326if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_326if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_326if_f = (IHPE)L28_326if_f ; +LOCAL IUH L28_327if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_327if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_327if_f = (IHPE)L28_327if_f ; +LOCAL IUH L28_323if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_323if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_323if_d = (IHPE)L28_323if_d ; +GLOBAL IUH S_2575_UnchainedDwordMove_00000001_00000000_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2575_UnchainedDwordMove_00000001_00000000_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2575_UnchainedDwordMove_00000001_00000000_00000000_00000001 = (IHPE)S_2575_UnchainedDwordMove_00000001_00000000_00000000_00000001 ; +LOCAL IUH L13_2555if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2555if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2555if_f = (IHPE)L13_2555if_f ; +GLOBAL IUH S_2576_UnchainedByteMove_00000002_00000008_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2576_UnchainedByteMove_00000002_00000008_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2576_UnchainedByteMove_00000002_00000008_00000000_00000001 = (IHPE)S_2576_UnchainedByteMove_00000002_00000008_00000000_00000001 ; +LOCAL IUH L13_2556if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2556if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2556if_f = (IHPE)L13_2556if_f ; +LOCAL IUH L28_328if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_328if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_328if_f = (IHPE)L28_328if_f ; +LOCAL IUH L28_329if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_329if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_329if_d = (IHPE)L28_329if_d ; +GLOBAL IUH S_2577_CopyBytePlnByPlnUnchained_00000002_00000008_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2577_CopyBytePlnByPlnUnchained_00000002_00000008_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2577_CopyBytePlnByPlnUnchained_00000002_00000008_00000000_00000001 = (IHPE)S_2577_CopyBytePlnByPlnUnchained_00000002_00000008_00000000_00000001 ; +LOCAL IUH L13_2557if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2557if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2557if_f = (IHPE)L13_2557if_f ; +LOCAL IUH L23_640if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_640if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_640if_f = (IHPE)L23_640if_f ; +LOCAL IUH L23_641if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_641if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_641if_f = (IHPE)L23_641if_f ; +LOCAL IUH L23_642if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_642if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_642if_f = (IHPE)L23_642if_f ; +LOCAL IUH L23_643if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_643if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_643if_f = (IHPE)L23_643if_f ; +GLOBAL IUH S_2578_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2578_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2578_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000001 = (IHPE)S_2578_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000001 ; +LOCAL IUH L13_2558if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2558if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2558if_f = (IHPE)L13_2558if_f ; +LOCAL IUH L23_646w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_646w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_646w_t = (IHPE)L23_646w_t ; +LOCAL IUH L23_647w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_647w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_647w_d = (IHPE)L23_647w_d ; +LOCAL IUH L23_644if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_644if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_644if_f = (IHPE)L23_644if_f ; +LOCAL IUH L23_648w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_648w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_648w_t = (IHPE)L23_648w_t ; +LOCAL IUH L23_649w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_649w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_649w_d = (IHPE)L23_649w_d ; +LOCAL IUH L23_645if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_645if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_645if_d = (IHPE)L23_645if_d ; +GLOBAL IUH S_2579_UnchainedByteMove_00000002_00000009_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2579_UnchainedByteMove_00000002_00000009_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2579_UnchainedByteMove_00000002_00000009_00000000_00000001 = (IHPE)S_2579_UnchainedByteMove_00000002_00000009_00000000_00000001 ; +LOCAL IUH L13_2559if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2559if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2559if_f = (IHPE)L13_2559if_f ; +LOCAL IUH L28_330if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_330if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_330if_f = (IHPE)L28_330if_f ; +LOCAL IUH L28_331if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_331if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_331if_d = (IHPE)L28_331if_d ; +GLOBAL IUH S_2580_CopyByte4PlaneUnchained_00000002_00000009_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2580_CopyByte4PlaneUnchained_00000002_00000009_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2580_CopyByte4PlaneUnchained_00000002_00000009_00000000_00000001 = (IHPE)S_2580_CopyByte4PlaneUnchained_00000002_00000009_00000000_00000001 ; +LOCAL IUH L13_2560if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2560if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2560if_f = (IHPE)L13_2560if_f ; +LOCAL IUH L23_652w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_652w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_652w_t = (IHPE)L23_652w_t ; +LOCAL IUH L23_653w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_653w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_653w_d = (IHPE)L23_653w_d ; +LOCAL IUH L23_650if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_650if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_650if_f = (IHPE)L23_650if_f ; +LOCAL IUH L23_654w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_654w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_654w_t = (IHPE)L23_654w_t ; +LOCAL IUH L23_655w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_655w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_655w_d = (IHPE)L23_655w_d ; +LOCAL IUH L23_651if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_651if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_651if_d = (IHPE)L23_651if_d ; +GLOBAL IUH S_2581_UnchainedByteMove_00000002_0000000e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2581_UnchainedByteMove_00000002_0000000e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2581_UnchainedByteMove_00000002_0000000e_00000000_00000001 = (IHPE)S_2581_UnchainedByteMove_00000002_0000000e_00000000_00000001 ; +LOCAL IUH L13_2561if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2561if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2561if_f = (IHPE)L13_2561if_f ; +LOCAL IUH L28_332if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_332if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_332if_f = (IHPE)L28_332if_f ; +LOCAL IUH L28_333if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_333if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_333if_d = (IHPE)L28_333if_d ; +GLOBAL IUH S_2582_CopyBytePlnByPlnUnchained_00000002_0000000e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2582_CopyBytePlnByPlnUnchained_00000002_0000000e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2582_CopyBytePlnByPlnUnchained_00000002_0000000e_00000000_00000001 = (IHPE)S_2582_CopyBytePlnByPlnUnchained_00000002_0000000e_00000000_00000001 ; +LOCAL IUH L13_2562if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2562if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2562if_f = (IHPE)L13_2562if_f ; +LOCAL IUH L23_656if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_656if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_656if_f = (IHPE)L23_656if_f ; +LOCAL IUH L23_657if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_657if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_657if_f = (IHPE)L23_657if_f ; +LOCAL IUH L23_658if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_658if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_658if_f = (IHPE)L23_658if_f ; +LOCAL IUH L23_659if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_659if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_659if_f = (IHPE)L23_659if_f ; +GLOBAL IUH S_2583_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2583_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2583_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000001 = (IHPE)S_2583_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000001 ; +LOCAL IUH L13_2563if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2563if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2563if_f = (IHPE)L13_2563if_f ; +LOCAL IUH L23_662w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_662w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_662w_t = (IHPE)L23_662w_t ; +LOCAL IUH L23_663w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_663w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_663w_d = (IHPE)L23_663w_d ; +LOCAL IUH L23_660if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_660if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_660if_f = (IHPE)L23_660if_f ; +LOCAL IUH L23_664w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_664w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_664w_t = (IHPE)L23_664w_t ; +LOCAL IUH L23_665w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_665w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_665w_d = (IHPE)L23_665w_d ; +LOCAL IUH L23_661if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_661if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_661if_d = (IHPE)L23_661if_d ; +GLOBAL IUH S_2584_UnchainedByteMove_00000002_0000000f_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2584_UnchainedByteMove_00000002_0000000f_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2584_UnchainedByteMove_00000002_0000000f_00000000_00000001 = (IHPE)S_2584_UnchainedByteMove_00000002_0000000f_00000000_00000001 ; +LOCAL IUH L13_2564if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2564if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2564if_f = (IHPE)L13_2564if_f ; +LOCAL IUH L28_334if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_334if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_334if_f = (IHPE)L28_334if_f ; +LOCAL IUH L28_335if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_335if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_335if_d = (IHPE)L28_335if_d ; +GLOBAL IUH S_2585_CopyByte4PlaneUnchained_00000002_0000000f_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2585_CopyByte4PlaneUnchained_00000002_0000000f_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2585_CopyByte4PlaneUnchained_00000002_0000000f_00000000_00000001 = (IHPE)S_2585_CopyByte4PlaneUnchained_00000002_0000000f_00000000_00000001 ; +LOCAL IUH L13_2565if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2565if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2565if_f = (IHPE)L13_2565if_f ; +LOCAL IUH L23_668w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_668w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_668w_t = (IHPE)L23_668w_t ; +LOCAL IUH L23_669w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_669w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_669w_d = (IHPE)L23_669w_d ; +LOCAL IUH L23_666if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_666if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_666if_f = (IHPE)L23_666if_f ; +LOCAL IUH L23_670w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_670w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_670w_t = (IHPE)L23_670w_t ; +LOCAL IUH L23_671w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_671w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_671w_d = (IHPE)L23_671w_d ; +LOCAL IUH L23_667if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_667if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_667if_d = (IHPE)L23_667if_d ; +GLOBAL IUH S_2586_UnchainedWordMove_00000002_00000008_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2586_UnchainedWordMove_00000002_00000008_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2586_UnchainedWordMove_00000002_00000008_00000000_00000001 = (IHPE)S_2586_UnchainedWordMove_00000002_00000008_00000000_00000001 ; +LOCAL IUH L13_2566if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2566if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2566if_f = (IHPE)L13_2566if_f ; +LOCAL IUH L28_336if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_336if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_336if_f = (IHPE)L28_336if_f ; +LOCAL IUH L28_337if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_337if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_337if_d = (IHPE)L28_337if_d ; +GLOBAL IUH S_2587_CopyWordPlnByPlnUnchained_00000002_00000008_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2587_CopyWordPlnByPlnUnchained_00000002_00000008_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2587_CopyWordPlnByPlnUnchained_00000002_00000008_00000000_00000001 = (IHPE)S_2587_CopyWordPlnByPlnUnchained_00000002_00000008_00000000_00000001 ; +LOCAL IUH L13_2567if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2567if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2567if_f = (IHPE)L13_2567if_f ; +LOCAL IUH L23_672if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_672if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_672if_f = (IHPE)L23_672if_f ; +LOCAL IUH L23_673if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_673if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_673if_f = (IHPE)L23_673if_f ; +LOCAL IUH L23_674if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_674if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_674if_f = (IHPE)L23_674if_f ; +LOCAL IUH L23_675if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_675if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_675if_f = (IHPE)L23_675if_f ; +GLOBAL IUH S_2588_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2588_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2588_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000001 = (IHPE)S_2588_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000001 ; +LOCAL IUH L13_2568if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2568if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2568if_f = (IHPE)L13_2568if_f ; +LOCAL IUH L23_678w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_678w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_678w_t = (IHPE)L23_678w_t ; +LOCAL IUH L23_679w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_679w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_679w_d = (IHPE)L23_679w_d ; +LOCAL IUH L23_676if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_676if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_676if_f = (IHPE)L23_676if_f ; +LOCAL IUH L23_680w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_680w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_680w_t = (IHPE)L23_680w_t ; +LOCAL IUH L23_681w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_681w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_681w_d = (IHPE)L23_681w_d ; +LOCAL IUH L23_677if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_677if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_677if_d = (IHPE)L23_677if_d ; +GLOBAL IUH S_2589_UnchainedWordMove_00000002_00000009_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2589_UnchainedWordMove_00000002_00000009_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2589_UnchainedWordMove_00000002_00000009_00000000_00000001 = (IHPE)S_2589_UnchainedWordMove_00000002_00000009_00000000_00000001 ; +LOCAL IUH L13_2569if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2569if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2569if_f = (IHPE)L13_2569if_f ; +LOCAL IUH L28_338if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_338if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_338if_f = (IHPE)L28_338if_f ; +LOCAL IUH L28_339if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_339if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_339if_d = (IHPE)L28_339if_d ; +GLOBAL IUH S_2590_CopyWord4PlaneUnchained_00000002_00000009_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2590_CopyWord4PlaneUnchained_00000002_00000009_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2590_CopyWord4PlaneUnchained_00000002_00000009_00000000_00000001 = (IHPE)S_2590_CopyWord4PlaneUnchained_00000002_00000009_00000000_00000001 ; +LOCAL IUH L13_2570if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2570if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2570if_f = (IHPE)L13_2570if_f ; +LOCAL IUH L23_684w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_684w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_684w_t = (IHPE)L23_684w_t ; +LOCAL IUH L23_685w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_685w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_685w_d = (IHPE)L23_685w_d ; +LOCAL IUH L23_682if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_682if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_682if_f = (IHPE)L23_682if_f ; +LOCAL IUH L23_686w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_686w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_686w_t = (IHPE)L23_686w_t ; +LOCAL IUH L23_687w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_687w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_687w_d = (IHPE)L23_687w_d ; +LOCAL IUH L23_683if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_683if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_683if_d = (IHPE)L23_683if_d ; +GLOBAL IUH S_2591_UnchainedWordMove_00000002_0000000e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2591_UnchainedWordMove_00000002_0000000e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2591_UnchainedWordMove_00000002_0000000e_00000000_00000001 = (IHPE)S_2591_UnchainedWordMove_00000002_0000000e_00000000_00000001 ; +LOCAL IUH L13_2571if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2571if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2571if_f = (IHPE)L13_2571if_f ; +LOCAL IUH L28_340if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_340if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_340if_f = (IHPE)L28_340if_f ; +LOCAL IUH L28_341if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_341if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_341if_d = (IHPE)L28_341if_d ; +GLOBAL IUH S_2592_CopyWordPlnByPlnUnchained_00000002_0000000e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2592_CopyWordPlnByPlnUnchained_00000002_0000000e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2592_CopyWordPlnByPlnUnchained_00000002_0000000e_00000000_00000001 = (IHPE)S_2592_CopyWordPlnByPlnUnchained_00000002_0000000e_00000000_00000001 ; +LOCAL IUH L13_2572if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2572if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2572if_f = (IHPE)L13_2572if_f ; +LOCAL IUH L23_688if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_688if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_688if_f = (IHPE)L23_688if_f ; +LOCAL IUH L23_689if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_689if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_689if_f = (IHPE)L23_689if_f ; +LOCAL IUH L23_690if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_690if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_690if_f = (IHPE)L23_690if_f ; +LOCAL IUH L23_691if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_691if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_691if_f = (IHPE)L23_691if_f ; +GLOBAL IUH S_2593_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2593_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2593_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000001 = (IHPE)S_2593_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000001 ; +LOCAL IUH L13_2573if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2573if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2573if_f = (IHPE)L13_2573if_f ; +LOCAL IUH L23_694w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_694w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_694w_t = (IHPE)L23_694w_t ; +LOCAL IUH L23_695w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_695w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_695w_d = (IHPE)L23_695w_d ; +LOCAL IUH L23_692if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_692if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_692if_f = (IHPE)L23_692if_f ; +LOCAL IUH L23_696w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_696w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_696w_t = (IHPE)L23_696w_t ; +LOCAL IUH L23_697w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_697w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_697w_d = (IHPE)L23_697w_d ; +LOCAL IUH L23_693if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_693if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_693if_d = (IHPE)L23_693if_d ; +GLOBAL IUH S_2594_UnchainedWordMove_00000002_0000000f_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2594_UnchainedWordMove_00000002_0000000f_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2594_UnchainedWordMove_00000002_0000000f_00000000_00000001 = (IHPE)S_2594_UnchainedWordMove_00000002_0000000f_00000000_00000001 ; +LOCAL IUH L13_2574if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2574if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2574if_f = (IHPE)L13_2574if_f ; +LOCAL IUH L28_342if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_342if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_342if_f = (IHPE)L28_342if_f ; +LOCAL IUH L28_343if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_343if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_343if_d = (IHPE)L28_343if_d ; +GLOBAL IUH S_2595_CopyWord4PlaneUnchained_00000002_0000000f_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2595_CopyWord4PlaneUnchained_00000002_0000000f_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2595_CopyWord4PlaneUnchained_00000002_0000000f_00000000_00000001 = (IHPE)S_2595_CopyWord4PlaneUnchained_00000002_0000000f_00000000_00000001 ; +LOCAL IUH L13_2575if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2575if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2575if_f = (IHPE)L13_2575if_f ; +LOCAL IUH L23_700w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_700w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_700w_t = (IHPE)L23_700w_t ; +LOCAL IUH L23_701w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_701w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_701w_d = (IHPE)L23_701w_d ; +LOCAL IUH L23_698if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_698if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_698if_f = (IHPE)L23_698if_f ; +LOCAL IUH L23_702w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_702w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_702w_t = (IHPE)L23_702w_t ; +LOCAL IUH L23_703w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_703w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_703w_d = (IHPE)L23_703w_d ; +LOCAL IUH L23_699if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_699if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_699if_d = (IHPE)L23_699if_d ; +GLOBAL IUH S_2596_UnchainedDwordMove_00000002_00000008_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2596_UnchainedDwordMove_00000002_00000008_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2596_UnchainedDwordMove_00000002_00000008_00000000_00000001 = (IHPE)S_2596_UnchainedDwordMove_00000002_00000008_00000000_00000001 ; +LOCAL IUH L13_2576if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2576if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2576if_f = (IHPE)L13_2576if_f ; +GLOBAL IUH S_2597_UnchainedDwordMove_00000002_00000009_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2597_UnchainedDwordMove_00000002_00000009_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2597_UnchainedDwordMove_00000002_00000009_00000000_00000001 = (IHPE)S_2597_UnchainedDwordMove_00000002_00000009_00000000_00000001 ; +LOCAL IUH L13_2577if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2577if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2577if_f = (IHPE)L13_2577if_f ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2566_UnchainedDwordMove_00000000_00000011_00000000_00000001_id : + S_2566_UnchainedDwordMove_00000000_00000011_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2566) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2546if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2546if_f_id : + L13_2546if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2544_UnchainedWordMove_00000000_00000011_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2544_UnchainedWordMove_00000000_00000011_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2567_UnchainedDwordMove_00000000_00000016_00000000_00000001_id : + S_2567_UnchainedDwordMove_00000000_00000016_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2567) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2547if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2547if_f_id : + L13_2547if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2546_UnchainedWordMove_00000000_00000016_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2546_UnchainedWordMove_00000000_00000016_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2568_UnchainedDwordMove_00000000_00000017_00000000_00000001_id : + S_2568_UnchainedDwordMove_00000000_00000017_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2568) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2548if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2548if_f_id : + L13_2548if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2549_UnchainedWordMove_00000000_00000017_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2549_UnchainedWordMove_00000000_00000017_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2569_UnchainedDwordMove_00000000_00000018_00000000_00000001_id : + S_2569_UnchainedDwordMove_00000000_00000018_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2569) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2549if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2549if_f_id : + L13_2549if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2551_UnchainedWordMove_00000000_00000018_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2551_UnchainedWordMove_00000000_00000018_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2570_UnchainedDwordMove_00000000_00000019_00000000_00000001_id : + S_2570_UnchainedDwordMove_00000000_00000019_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2570) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2550if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2550if_f_id : + L13_2550if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2554_UnchainedWordMove_00000000_00000019_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2554_UnchainedWordMove_00000000_00000019_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2571_UnchainedDwordMove_00000000_0000001e_00000000_00000001_id : + S_2571_UnchainedDwordMove_00000000_0000001e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2571) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2551if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2551if_f_id : + L13_2551if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2556_UnchainedWordMove_00000000_0000001e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2556_UnchainedWordMove_00000000_0000001e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2572_UnchainedDwordMove_00000000_0000001f_00000000_00000001_id : + S_2572_UnchainedDwordMove_00000000_0000001f_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2572) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2552if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2552if_f_id : + L13_2552if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2559_UnchainedWordMove_00000000_0000001f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2559_UnchainedWordMove_00000000_0000001f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2573_UnchainedByteMove_00000001_00000000_00000000_00000001_id : + S_2573_UnchainedByteMove_00000001_00000000_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2573) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2553if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2553if_f_id : + L13_2553if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_316if_f; + *((IUH *)(r1+0)) = (IS32)(16398) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = (IS32)(-1) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2397_UnchainedByteFill_00000001_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2397_UnchainedByteFill_00000001_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16399) ; + { extern IUH L28_317if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_317if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_316if_f_id : + L28_316if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_318if_f; + *((IUH *)(r1+0)) = (IS32)(16400) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r2)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2213_CopyDirByte1Plane_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2213_CopyDirByte1Plane_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16401) ; + case L28_318if_f_id : + L28_318if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_319if_f; + *((IUH *)(r1+0)) = (IS32)(16400) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r2)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r3)) = *((IUH *)&(r20)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2213_CopyDirByte1Plane_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2213_CopyDirByte1Plane_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16401) ; + case L28_319if_f_id : + L28_319if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_320if_f; + *((IUH *)(r1+0)) = (IS32)(16400) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r2)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2213_CopyDirByte1Plane_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2213_CopyDirByte1Plane_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16401) ; + case L28_320if_f_id : + L28_320if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_321if_f; + *((IUH *)(r1+0)) = (IS32)(16400) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r2)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r3)) = *((IUH *)&(r20)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2213_CopyDirByte1Plane_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2213_CopyDirByte1Plane_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16401) ; + case L28_321if_f_id : + L28_321if_f: ; + case L28_317if_d_id : + L28_317if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2574_UnchainedWordMove_00000001_00000000_00000000_00000001_id : + S_2574_UnchainedWordMove_00000001_00000000_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2574) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2554if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2554if_f_id : + L13_2554if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_322if_f; + *((IUH *)(r1+0)) = (IS32)(16392) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r21) + REGLONG) * *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = (IS32)(-1) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2400_UnchainedWordFill_00000001_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2400_UnchainedWordFill_00000001_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16393) ; + { extern IUH L28_323if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_323if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_322if_f_id : + L28_322if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_324if_f; + *((IUH *)(r1+0)) = (IS32)(16404) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r2)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2216_CopyDirWord1Plane_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2216_CopyDirWord1Plane_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16405) ; + case L28_324if_f_id : + L28_324if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_325if_f; + *((IUH *)(r1+0)) = (IS32)(16404) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r2)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r3)) = *((IUH *)&(r20)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2216_CopyDirWord1Plane_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2216_CopyDirWord1Plane_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16405) ; + case L28_325if_f_id : + L28_325if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_326if_f; + *((IUH *)(r1+0)) = (IS32)(16404) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r2)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2216_CopyDirWord1Plane_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2216_CopyDirWord1Plane_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16405) ; + case L28_326if_f_id : + L28_326if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L28_327if_f; + *((IUH *)(r1+0)) = (IS32)(16404) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r2)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r3)) = *((IUH *)&(r20)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2216_CopyDirWord1Plane_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2216_CopyDirWord1Plane_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16405) ; + case L28_327if_f_id : + L28_327if_f: ; + case L28_323if_d_id : + L28_323if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2575_UnchainedDwordMove_00000001_00000000_00000000_00000001_id : + S_2575_UnchainedDwordMove_00000001_00000000_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2575) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2555if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2555if_f_id : + L13_2555if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2574_UnchainedWordMove_00000001_00000000_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2574_UnchainedWordMove_00000001_00000000_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2576_UnchainedByteMove_00000002_00000008_00000000_00000001_id : + S_2576_UnchainedByteMove_00000002_00000008_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2576) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2556if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2556if_f_id : + L13_2556if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_328if_f; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2577_CopyBytePlnByPlnUnchained_00000002_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2577_CopyBytePlnByPlnUnchained_00000002_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + { extern IUH L28_329if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_329if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_328if_f_id : + L28_328if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2577_CopyBytePlnByPlnUnchained_00000002_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2577_CopyBytePlnByPlnUnchained_00000002_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + case L28_329if_d_id : + L28_329if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2577_CopyBytePlnByPlnUnchained_00000002_00000008_00000000_00000001_id : + S_2577_CopyBytePlnByPlnUnchained_00000002_00000008_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2577) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2557if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2557if_f_id : + L13_2557if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_640if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2578_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2578_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_640if_f_id : + L23_640if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_641if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2578_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2578_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_641if_f_id : + L23_641if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_642if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2578_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2578_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_642if_f_id : + L23_642if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_643if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2578_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2578_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_643if_f_id : + L23_643if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2578_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000001_id : + S_2578_CopyByte1PlaneUnchained_00000002_00000008_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2578) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2558if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2558if_f_id : + L13_2558if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_644if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_647w_d; + case L23_646w_t_id : + L23_646w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+9) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_646w_t; + case L23_647w_d_id : + L23_647w_d: ; + { extern IUH L23_645if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_645if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_644if_f_id : + L23_644if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_649w_d; + case L23_648w_t_id : + L23_648w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+9) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_648w_t; + case L23_649w_d_id : + L23_649w_d: ; + case L23_645if_d_id : + L23_645if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2579_UnchainedByteMove_00000002_00000009_00000000_00000001_id : + S_2579_UnchainedByteMove_00000002_00000009_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2579) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2559if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2559if_f_id : + L13_2559if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_330if_f; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2580_CopyByte4PlaneUnchained_00000002_00000009_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2580_CopyByte4PlaneUnchained_00000002_00000009_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + { extern IUH L28_331if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_331if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_330if_f_id : + L28_330if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2580_CopyByte4PlaneUnchained_00000002_00000009_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2580_CopyByte4PlaneUnchained_00000002_00000009_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + case L28_331if_d_id : + L28_331if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2580_CopyByte4PlaneUnchained_00000002_00000009_00000000_00000001_id : + S_2580_CopyByte4PlaneUnchained_00000002_00000009_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2580) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2560if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2560if_f_id : + L13_2560if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_650if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_653w_d; + case L23_652w_t_id : + L23_652w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_652w_t; + case L23_653w_d_id : + L23_653w_d: ; + { extern IUH L23_651if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_651if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_650if_f_id : + L23_650if_f: ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_655w_d; + case L23_654w_t_id : + L23_654w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+9)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_654w_t; + case L23_655w_d_id : + L23_655w_d: ; + case L23_651if_d_id : + L23_651if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2581_UnchainedByteMove_00000002_0000000e_00000000_00000001_id : + S_2581_UnchainedByteMove_00000002_0000000e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2581) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2561if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2561if_f_id : + L13_2561if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_332if_f; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2582_CopyBytePlnByPlnUnchained_00000002_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2582_CopyBytePlnByPlnUnchained_00000002_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + { extern IUH L28_333if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_333if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_332if_f_id : + L28_332if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2582_CopyBytePlnByPlnUnchained_00000002_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2582_CopyBytePlnByPlnUnchained_00000002_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + case L28_333if_d_id : + L28_333if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2582_CopyBytePlnByPlnUnchained_00000002_0000000e_00000000_00000001_id : + S_2582_CopyBytePlnByPlnUnchained_00000002_0000000e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2582) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2562if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2562if_f_id : + L13_2562if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_656if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2583_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2583_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_656if_f_id : + L23_656if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_657if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2583_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2583_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_657if_f_id : + L23_657if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_658if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2583_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2583_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_658if_f_id : + L23_658if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_659if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2583_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2583_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_659if_f_id : + L23_659if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2583_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000001_id : + S_2583_CopyByte1PlaneUnchained_00000002_0000000e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2583) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2563if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2563if_f_id : + L13_2563if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_660if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_663w_d; + case L23_662w_t_id : + L23_662w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+9) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_662w_t; + case L23_663w_d_id : + L23_663w_d: ; + { extern IUH L23_661if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_661if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_660if_f_id : + L23_660if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_665w_d; + case L23_664w_t_id : + L23_664w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+9) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_664w_t; + case L23_665w_d_id : + L23_665w_d: ; + case L23_661if_d_id : + L23_661if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2584_UnchainedByteMove_00000002_0000000f_00000000_00000001_id : + S_2584_UnchainedByteMove_00000002_0000000f_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2584) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2564if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2564if_f_id : + L13_2564if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_334if_f; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2585_CopyByte4PlaneUnchained_00000002_0000000f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2585_CopyByte4PlaneUnchained_00000002_0000000f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + { extern IUH L28_335if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_335if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_334if_f_id : + L28_334if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2585_CopyByte4PlaneUnchained_00000002_0000000f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2585_CopyByte4PlaneUnchained_00000002_0000000f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + case L28_335if_d_id : + L28_335if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2585_CopyByte4PlaneUnchained_00000002_0000000f_00000000_00000001_id : + S_2585_CopyByte4PlaneUnchained_00000002_0000000f_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2585) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2565if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2565if_f_id : + L13_2565if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_666if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_669w_d; + case L23_668w_t_id : + L23_668w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_668w_t; + case L23_669w_d_id : + L23_669w_d: ; + { extern IUH L23_667if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_667if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_666if_f_id : + L23_666if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_671w_d; + case L23_670w_t_id : + L23_670w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+9)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_670w_t; + case L23_671w_d_id : + L23_671w_d: ; + case L23_667if_d_id : + L23_667if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2586_UnchainedWordMove_00000002_00000008_00000000_00000001_id : + S_2586_UnchainedWordMove_00000002_00000008_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2586) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2566if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2566if_f_id : + L13_2566if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_336if_f; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2587_CopyWordPlnByPlnUnchained_00000002_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2587_CopyWordPlnByPlnUnchained_00000002_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + { extern IUH L28_337if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_337if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_336if_f_id : + L28_336if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2587_CopyWordPlnByPlnUnchained_00000002_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2587_CopyWordPlnByPlnUnchained_00000002_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + case L28_337if_d_id : + L28_337if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2587_CopyWordPlnByPlnUnchained_00000002_00000008_00000000_00000001_id : + S_2587_CopyWordPlnByPlnUnchained_00000002_00000008_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2587) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2567if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2567if_f_id : + L13_2567if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_672if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2588_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2588_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_672if_f_id : + L23_672if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_673if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2588_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2588_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_673if_f_id : + L23_673if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_674if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2588_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2588_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_674if_f_id : + L23_674if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_675if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2588_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2588_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_675if_f_id : + L23_675if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2588_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000001_id : + S_2588_CopyWord1PlaneUnchained_00000002_00000008_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2588) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2568if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2568if_f_id : + L13_2568if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_676if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_679w_d; + case L23_678w_t_id : + L23_678w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+9) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+9) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_678w_t; + case L23_679w_d_id : + L23_679w_d: ; + { extern IUH L23_677if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_677if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_676if_f_id : + L23_676if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_681w_d; + case L23_680w_t_id : + L23_680w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+9) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+9) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_680w_t; + case L23_681w_d_id : + L23_681w_d: ; + case L23_677if_d_id : + L23_677if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2589_UnchainedWordMove_00000002_00000009_00000000_00000001_id : + S_2589_UnchainedWordMove_00000002_00000009_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2589) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2569if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2569if_f_id : + L13_2569if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_338if_f; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2590_CopyWord4PlaneUnchained_00000002_00000009_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2590_CopyWord4PlaneUnchained_00000002_00000009_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + { extern IUH L28_339if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_339if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_338if_f_id : + L28_338if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2590_CopyWord4PlaneUnchained_00000002_00000009_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2590_CopyWord4PlaneUnchained_00000002_00000009_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + case L28_339if_d_id : + L28_339if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2590_CopyWord4PlaneUnchained_00000002_00000009_00000000_00000001_id : + S_2590_CopyWord4PlaneUnchained_00000002_00000009_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2590) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2570if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2570if_f_id : + L13_2570if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_682if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_685w_d; + case L23_684w_t_id : + L23_684w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_684w_t; + case L23_685w_d_id : + L23_685w_d: ; + { extern IUH L23_683if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_683if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_682if_f_id : + L23_682if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_687w_d; + case L23_686w_t_id : + L23_686w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_686w_t; + case L23_687w_d_id : + L23_687w_d: ; + case L23_683if_d_id : + L23_683if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2591_UnchainedWordMove_00000002_0000000e_00000000_00000001_id : + S_2591_UnchainedWordMove_00000002_0000000e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2591) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2571if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2571if_f_id : + L13_2571if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_340if_f; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2592_CopyWordPlnByPlnUnchained_00000002_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2592_CopyWordPlnByPlnUnchained_00000002_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + { extern IUH L28_341if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_341if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_340if_f_id : + L28_340if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2592_CopyWordPlnByPlnUnchained_00000002_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2592_CopyWordPlnByPlnUnchained_00000002_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + case L28_341if_d_id : + L28_341if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2592_CopyWordPlnByPlnUnchained_00000002_0000000e_00000000_00000001_id : + S_2592_CopyWordPlnByPlnUnchained_00000002_0000000e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2592) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2572if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2572if_f_id : + L13_2572if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_688if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2593_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2593_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_688if_f_id : + L23_688if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_689if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2593_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2593_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_689if_f_id : + L23_689if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_690if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2593_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2593_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_690if_f_id : + L23_690if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_691if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2593_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2593_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_691if_f_id : + L23_691if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2593_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000001_id : + S_2593_CopyWord1PlaneUnchained_00000002_0000000e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2593) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2573if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2573if_f_id : + L13_2573if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_692if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_695w_d; + case L23_694w_t_id : + L23_694w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+9) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+9) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_694w_t; + case L23_695w_d_id : + L23_695w_d: ; + { extern IUH L23_693if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_693if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_692if_f_id : + L23_692if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_697w_d; + case L23_696w_t_id : + L23_696w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+9) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+9) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_696w_t; + case L23_697w_d_id : + L23_697w_d: ; + case L23_693if_d_id : + L23_693if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2594_UnchainedWordMove_00000002_0000000f_00000000_00000001_id : + S_2594_UnchainedWordMove_00000002_0000000f_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2594) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2574if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2574if_f_id : + L13_2574if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_342if_f; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2595_CopyWord4PlaneUnchained_00000002_0000000f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2595_CopyWord4PlaneUnchained_00000002_0000000f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + { extern IUH L28_343if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_343if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_342if_f_id : + L28_342if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2595_CopyWord4PlaneUnchained_00000002_0000000f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2595_CopyWord4PlaneUnchained_00000002_0000000f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + case L28_343if_d_id : + L28_343if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2595_CopyWord4PlaneUnchained_00000002_0000000f_00000000_00000001_id : + S_2595_CopyWord4PlaneUnchained_00000002_0000000f_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2595) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2575if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2575if_f_id : + L13_2575if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_698if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_701w_d; + case L23_700w_t_id : + L23_700w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_700w_t; + case L23_701w_d_id : + L23_701w_d: ; + { extern IUH L23_699if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_699if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_698if_f_id : + L23_698if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_703w_d; + case L23_702w_t_id : + L23_702w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_702w_t; + case L23_703w_d_id : + L23_703w_d: ; + case L23_699if_d_id : + L23_699if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2596_UnchainedDwordMove_00000002_00000008_00000000_00000001_id : + S_2596_UnchainedDwordMove_00000002_00000008_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2596) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2576if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2576if_f_id : + L13_2576if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2586_UnchainedWordMove_00000002_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2586_UnchainedWordMove_00000002_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2597_UnchainedDwordMove_00000002_00000009_00000000_00000001_id : + S_2597_UnchainedDwordMove_00000002_00000009_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2597) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2577if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2577if_f_id : + L13_2577if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2589_UnchainedWordMove_00000002_00000009_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2589_UnchainedWordMove_00000002_00000009_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid016.c b/private/mvdm/softpc.new/base/cvidc/sevid016.c new file mode 100644 index 000000000..e75c917a0 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid016.c @@ -0,0 +1,4530 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_2598_UnchainedDwordMove_00000002_0000000e_00000000_00000001_id, +L13_2578if_f_id, +S_2599_UnchainedDwordMove_00000002_0000000f_00000000_00000001_id, +L13_2579if_f_id, +S_2600_UnchainedByteMove_00000003_00000008_00000000_00000001_id, +L13_2580if_f_id, +L28_344if_f_id, +L28_345if_d_id, +S_2601_CopyBytePlnByPlnUnchained_00000003_00000008_00000000_00000001_id, +L13_2581if_f_id, +L23_704if_f_id, +L23_705if_f_id, +L23_706if_f_id, +L23_707if_f_id, +S_2602_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000001_id, +L13_2582if_f_id, +L23_710w_t_id, +L23_711w_d_id, +L23_708if_f_id, +L23_712w_t_id, +L23_713w_d_id, +L23_709if_d_id, +S_2603_UnchainedByteMove_00000003_00000009_00000000_00000001_id, +L13_2583if_f_id, +L28_346if_f_id, +L28_347if_d_id, +S_2604_CopyByte4PlaneUnchained_00000003_00000009_00000000_00000001_id, +L13_2584if_f_id, +L23_716w_t_id, +L23_717w_d_id, +L23_714if_f_id, +L23_718w_t_id, +L23_719w_d_id, +L23_715if_d_id, +S_2605_UnchainedByteMove_00000003_0000000e_00000000_00000001_id, +L13_2585if_f_id, +L28_348if_f_id, +L28_349if_d_id, +S_2606_CopyBytePlnByPlnUnchained_00000003_0000000e_00000000_00000001_id, +L13_2586if_f_id, +L23_720if_f_id, +L23_721if_f_id, +L23_722if_f_id, +L23_723if_f_id, +S_2607_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000001_id, +L13_2587if_f_id, +L23_726w_t_id, +L23_727w_d_id, +L23_724if_f_id, +L23_728w_t_id, +L23_729w_d_id, +L23_725if_d_id, +S_2608_UnchainedByteMove_00000003_0000000f_00000000_00000001_id, +L13_2588if_f_id, +L28_350if_f_id, +L28_351if_d_id, +S_2609_CopyByte4PlaneUnchained_00000003_0000000f_00000000_00000001_id, +L13_2589if_f_id, +L23_732w_t_id, +L23_733w_d_id, +L23_730if_f_id, +L23_734w_t_id, +L23_735w_d_id, +L23_731if_d_id, +S_2610_UnchainedWordMove_00000003_00000008_00000000_00000001_id, +L13_2590if_f_id, +L28_352if_f_id, +L28_353if_d_id, +S_2611_CopyWordPlnByPlnUnchained_00000003_00000008_00000000_00000001_id, +L13_2591if_f_id, +L23_736if_f_id, +L23_737if_f_id, +L23_738if_f_id, +L23_739if_f_id, +S_2612_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000001_id, +L13_2592if_f_id, +L23_742w_t_id, +L23_743w_d_id, +L23_740if_f_id, +L23_744w_t_id, +L23_745w_d_id, +L23_741if_d_id, +S_2613_UnchainedWordMove_00000003_00000009_00000000_00000001_id, +L13_2593if_f_id, +L28_354if_f_id, +L28_355if_d_id, +S_2614_CopyWord4PlaneUnchained_00000003_00000009_00000000_00000001_id, +L13_2594if_f_id, +L23_748w_t_id, +L23_749w_d_id, +L23_746if_f_id, +L23_750w_t_id, +L23_751w_d_id, +L23_747if_d_id, +S_2615_UnchainedWordMove_00000003_0000000e_00000000_00000001_id, +L13_2595if_f_id, +L28_356if_f_id, +L28_357if_d_id, +S_2616_CopyWordPlnByPlnUnchained_00000003_0000000e_00000000_00000001_id, +L13_2596if_f_id, +L23_752if_f_id, +L23_753if_f_id, +L23_754if_f_id, +L23_755if_f_id, +S_2617_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000001_id, +L13_2597if_f_id, +L23_758w_t_id, +L23_759w_d_id, +L23_756if_f_id, +L23_760w_t_id, +L23_761w_d_id, +L23_757if_d_id, +S_2618_UnchainedWordMove_00000003_0000000f_00000000_00000001_id, +L13_2598if_f_id, +L28_358if_f_id, +L28_359if_d_id, +S_2619_CopyWord4PlaneUnchained_00000003_0000000f_00000000_00000001_id, +L13_2599if_f_id, +L23_764w_t_id, +L23_765w_d_id, +L23_762if_f_id, +L23_766w_t_id, +L23_767w_d_id, +L23_763if_d_id, +S_2620_UnchainedDwordMove_00000003_00000008_00000000_00000001_id, +L13_2600if_f_id, +S_2621_UnchainedDwordMove_00000003_00000009_00000000_00000001_id, +L13_2601if_f_id, +S_2622_UnchainedDwordMove_00000003_0000000e_00000000_00000001_id, +L13_2602if_f_id, +S_2623_UnchainedDwordMove_00000003_0000000f_00000000_00000001_id, +L13_2603if_f_id, +S_2624_Chain2ByteWrite_00000000_id, +L13_2604if_f_id, +S_2625_Chain2ModeXByteWrite_00000000_id, +L13_2605if_f_id, +L25_18if_f_id, +L25_19if_f_id, +L21_2if_f_id, +L21_0if_f_id, +L21_3if_f_id, +L21_1if_d_id, +S_2626_Chain2ByteFill_00000000_id, +L13_2606if_f_id, +S_2627_Chain2ModeXByteFill_00000000_id, +L13_2607if_f_id, +L21_4if_f_id, +L21_5w_t_id, +L21_6w_d_id, +L21_7if_f_id, +S_2628_Chain2ByteMove_00000000_Fwd_id, +L13_2608if_f_id, +S_2629_Chain2ModeXFwdByteMove_00000000_id, +L13_2609if_f_id, +L25_20if_f_id, +L25_21if_f_id, +L21_10if_f_id, +L21_11w_t_id, +L21_12w_d_id, +L21_13if_f_id, +L21_8if_f_id, +L21_14if_f_id, +L21_15w_t_id, +L21_16w_d_id, +L21_17if_f_id, +L21_9if_d_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_2598_UnchainedDwordMove_00000002_0000000e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2598_UnchainedDwordMove_00000002_0000000e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2598_UnchainedDwordMove_00000002_0000000e_00000000_00000001 = (IHPE)S_2598_UnchainedDwordMove_00000002_0000000e_00000000_00000001 ; +LOCAL IUH L13_2578if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2578if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2578if_f = (IHPE)L13_2578if_f ; +GLOBAL IUH S_2599_UnchainedDwordMove_00000002_0000000f_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2599_UnchainedDwordMove_00000002_0000000f_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2599_UnchainedDwordMove_00000002_0000000f_00000000_00000001 = (IHPE)S_2599_UnchainedDwordMove_00000002_0000000f_00000000_00000001 ; +LOCAL IUH L13_2579if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2579if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2579if_f = (IHPE)L13_2579if_f ; +GLOBAL IUH S_2600_UnchainedByteMove_00000003_00000008_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2600_UnchainedByteMove_00000003_00000008_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2600_UnchainedByteMove_00000003_00000008_00000000_00000001 = (IHPE)S_2600_UnchainedByteMove_00000003_00000008_00000000_00000001 ; +LOCAL IUH L13_2580if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2580if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2580if_f = (IHPE)L13_2580if_f ; +LOCAL IUH L28_344if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_344if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_344if_f = (IHPE)L28_344if_f ; +LOCAL IUH L28_345if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_345if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_345if_d = (IHPE)L28_345if_d ; +GLOBAL IUH S_2601_CopyBytePlnByPlnUnchained_00000003_00000008_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2601_CopyBytePlnByPlnUnchained_00000003_00000008_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2601_CopyBytePlnByPlnUnchained_00000003_00000008_00000000_00000001 = (IHPE)S_2601_CopyBytePlnByPlnUnchained_00000003_00000008_00000000_00000001 ; +LOCAL IUH L13_2581if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2581if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2581if_f = (IHPE)L13_2581if_f ; +LOCAL IUH L23_704if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_704if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_704if_f = (IHPE)L23_704if_f ; +LOCAL IUH L23_705if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_705if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_705if_f = (IHPE)L23_705if_f ; +LOCAL IUH L23_706if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_706if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_706if_f = (IHPE)L23_706if_f ; +LOCAL IUH L23_707if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_707if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_707if_f = (IHPE)L23_707if_f ; +GLOBAL IUH S_2602_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2602_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2602_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000001 = (IHPE)S_2602_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000001 ; +LOCAL IUH L13_2582if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2582if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2582if_f = (IHPE)L13_2582if_f ; +LOCAL IUH L23_710w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_710w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_710w_t = (IHPE)L23_710w_t ; +LOCAL IUH L23_711w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_711w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_711w_d = (IHPE)L23_711w_d ; +LOCAL IUH L23_708if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_708if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_708if_f = (IHPE)L23_708if_f ; +LOCAL IUH L23_712w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_712w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_712w_t = (IHPE)L23_712w_t ; +LOCAL IUH L23_713w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_713w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_713w_d = (IHPE)L23_713w_d ; +LOCAL IUH L23_709if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_709if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_709if_d = (IHPE)L23_709if_d ; +GLOBAL IUH S_2603_UnchainedByteMove_00000003_00000009_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2603_UnchainedByteMove_00000003_00000009_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2603_UnchainedByteMove_00000003_00000009_00000000_00000001 = (IHPE)S_2603_UnchainedByteMove_00000003_00000009_00000000_00000001 ; +LOCAL IUH L13_2583if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2583if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2583if_f = (IHPE)L13_2583if_f ; +LOCAL IUH L28_346if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_346if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_346if_f = (IHPE)L28_346if_f ; +LOCAL IUH L28_347if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_347if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_347if_d = (IHPE)L28_347if_d ; +GLOBAL IUH S_2604_CopyByte4PlaneUnchained_00000003_00000009_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2604_CopyByte4PlaneUnchained_00000003_00000009_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2604_CopyByte4PlaneUnchained_00000003_00000009_00000000_00000001 = (IHPE)S_2604_CopyByte4PlaneUnchained_00000003_00000009_00000000_00000001 ; +LOCAL IUH L13_2584if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2584if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2584if_f = (IHPE)L13_2584if_f ; +LOCAL IUH L23_716w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_716w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_716w_t = (IHPE)L23_716w_t ; +LOCAL IUH L23_717w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_717w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_717w_d = (IHPE)L23_717w_d ; +LOCAL IUH L23_714if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_714if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_714if_f = (IHPE)L23_714if_f ; +LOCAL IUH L23_718w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_718w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_718w_t = (IHPE)L23_718w_t ; +LOCAL IUH L23_719w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_719w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_719w_d = (IHPE)L23_719w_d ; +LOCAL IUH L23_715if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_715if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_715if_d = (IHPE)L23_715if_d ; +GLOBAL IUH S_2605_UnchainedByteMove_00000003_0000000e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2605_UnchainedByteMove_00000003_0000000e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2605_UnchainedByteMove_00000003_0000000e_00000000_00000001 = (IHPE)S_2605_UnchainedByteMove_00000003_0000000e_00000000_00000001 ; +LOCAL IUH L13_2585if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2585if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2585if_f = (IHPE)L13_2585if_f ; +LOCAL IUH L28_348if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_348if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_348if_f = (IHPE)L28_348if_f ; +LOCAL IUH L28_349if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_349if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_349if_d = (IHPE)L28_349if_d ; +GLOBAL IUH S_2606_CopyBytePlnByPlnUnchained_00000003_0000000e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2606_CopyBytePlnByPlnUnchained_00000003_0000000e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2606_CopyBytePlnByPlnUnchained_00000003_0000000e_00000000_00000001 = (IHPE)S_2606_CopyBytePlnByPlnUnchained_00000003_0000000e_00000000_00000001 ; +LOCAL IUH L13_2586if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2586if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2586if_f = (IHPE)L13_2586if_f ; +LOCAL IUH L23_720if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_720if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_720if_f = (IHPE)L23_720if_f ; +LOCAL IUH L23_721if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_721if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_721if_f = (IHPE)L23_721if_f ; +LOCAL IUH L23_722if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_722if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_722if_f = (IHPE)L23_722if_f ; +LOCAL IUH L23_723if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_723if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_723if_f = (IHPE)L23_723if_f ; +GLOBAL IUH S_2607_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2607_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2607_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000001 = (IHPE)S_2607_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000001 ; +LOCAL IUH L13_2587if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2587if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2587if_f = (IHPE)L13_2587if_f ; +LOCAL IUH L23_726w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_726w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_726w_t = (IHPE)L23_726w_t ; +LOCAL IUH L23_727w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_727w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_727w_d = (IHPE)L23_727w_d ; +LOCAL IUH L23_724if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_724if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_724if_f = (IHPE)L23_724if_f ; +LOCAL IUH L23_728w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_728w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_728w_t = (IHPE)L23_728w_t ; +LOCAL IUH L23_729w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_729w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_729w_d = (IHPE)L23_729w_d ; +LOCAL IUH L23_725if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_725if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_725if_d = (IHPE)L23_725if_d ; +GLOBAL IUH S_2608_UnchainedByteMove_00000003_0000000f_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2608_UnchainedByteMove_00000003_0000000f_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2608_UnchainedByteMove_00000003_0000000f_00000000_00000001 = (IHPE)S_2608_UnchainedByteMove_00000003_0000000f_00000000_00000001 ; +LOCAL IUH L13_2588if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2588if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2588if_f = (IHPE)L13_2588if_f ; +LOCAL IUH L28_350if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_350if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_350if_f = (IHPE)L28_350if_f ; +LOCAL IUH L28_351if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_351if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_351if_d = (IHPE)L28_351if_d ; +GLOBAL IUH S_2609_CopyByte4PlaneUnchained_00000003_0000000f_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2609_CopyByte4PlaneUnchained_00000003_0000000f_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2609_CopyByte4PlaneUnchained_00000003_0000000f_00000000_00000001 = (IHPE)S_2609_CopyByte4PlaneUnchained_00000003_0000000f_00000000_00000001 ; +LOCAL IUH L13_2589if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2589if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2589if_f = (IHPE)L13_2589if_f ; +LOCAL IUH L23_732w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_732w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_732w_t = (IHPE)L23_732w_t ; +LOCAL IUH L23_733w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_733w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_733w_d = (IHPE)L23_733w_d ; +LOCAL IUH L23_730if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_730if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_730if_f = (IHPE)L23_730if_f ; +LOCAL IUH L23_734w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_734w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_734w_t = (IHPE)L23_734w_t ; +LOCAL IUH L23_735w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_735w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_735w_d = (IHPE)L23_735w_d ; +LOCAL IUH L23_731if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_731if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_731if_d = (IHPE)L23_731if_d ; +GLOBAL IUH S_2610_UnchainedWordMove_00000003_00000008_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2610_UnchainedWordMove_00000003_00000008_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2610_UnchainedWordMove_00000003_00000008_00000000_00000001 = (IHPE)S_2610_UnchainedWordMove_00000003_00000008_00000000_00000001 ; +LOCAL IUH L13_2590if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2590if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2590if_f = (IHPE)L13_2590if_f ; +LOCAL IUH L28_352if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_352if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_352if_f = (IHPE)L28_352if_f ; +LOCAL IUH L28_353if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_353if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_353if_d = (IHPE)L28_353if_d ; +GLOBAL IUH S_2611_CopyWordPlnByPlnUnchained_00000003_00000008_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2611_CopyWordPlnByPlnUnchained_00000003_00000008_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2611_CopyWordPlnByPlnUnchained_00000003_00000008_00000000_00000001 = (IHPE)S_2611_CopyWordPlnByPlnUnchained_00000003_00000008_00000000_00000001 ; +LOCAL IUH L13_2591if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2591if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2591if_f = (IHPE)L13_2591if_f ; +LOCAL IUH L23_736if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_736if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_736if_f = (IHPE)L23_736if_f ; +LOCAL IUH L23_737if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_737if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_737if_f = (IHPE)L23_737if_f ; +LOCAL IUH L23_738if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_738if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_738if_f = (IHPE)L23_738if_f ; +LOCAL IUH L23_739if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_739if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_739if_f = (IHPE)L23_739if_f ; +GLOBAL IUH S_2612_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2612_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2612_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000001 = (IHPE)S_2612_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000001 ; +LOCAL IUH L13_2592if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2592if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2592if_f = (IHPE)L13_2592if_f ; +LOCAL IUH L23_742w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_742w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_742w_t = (IHPE)L23_742w_t ; +LOCAL IUH L23_743w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_743w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_743w_d = (IHPE)L23_743w_d ; +LOCAL IUH L23_740if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_740if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_740if_f = (IHPE)L23_740if_f ; +LOCAL IUH L23_744w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_744w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_744w_t = (IHPE)L23_744w_t ; +LOCAL IUH L23_745w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_745w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_745w_d = (IHPE)L23_745w_d ; +LOCAL IUH L23_741if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_741if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_741if_d = (IHPE)L23_741if_d ; +GLOBAL IUH S_2613_UnchainedWordMove_00000003_00000009_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2613_UnchainedWordMove_00000003_00000009_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2613_UnchainedWordMove_00000003_00000009_00000000_00000001 = (IHPE)S_2613_UnchainedWordMove_00000003_00000009_00000000_00000001 ; +LOCAL IUH L13_2593if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2593if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2593if_f = (IHPE)L13_2593if_f ; +LOCAL IUH L28_354if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_354if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_354if_f = (IHPE)L28_354if_f ; +LOCAL IUH L28_355if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_355if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_355if_d = (IHPE)L28_355if_d ; +GLOBAL IUH S_2614_CopyWord4PlaneUnchained_00000003_00000009_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2614_CopyWord4PlaneUnchained_00000003_00000009_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2614_CopyWord4PlaneUnchained_00000003_00000009_00000000_00000001 = (IHPE)S_2614_CopyWord4PlaneUnchained_00000003_00000009_00000000_00000001 ; +LOCAL IUH L13_2594if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2594if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2594if_f = (IHPE)L13_2594if_f ; +LOCAL IUH L23_748w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_748w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_748w_t = (IHPE)L23_748w_t ; +LOCAL IUH L23_749w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_749w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_749w_d = (IHPE)L23_749w_d ; +LOCAL IUH L23_746if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_746if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_746if_f = (IHPE)L23_746if_f ; +LOCAL IUH L23_750w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_750w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_750w_t = (IHPE)L23_750w_t ; +LOCAL IUH L23_751w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_751w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_751w_d = (IHPE)L23_751w_d ; +LOCAL IUH L23_747if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_747if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_747if_d = (IHPE)L23_747if_d ; +GLOBAL IUH S_2615_UnchainedWordMove_00000003_0000000e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2615_UnchainedWordMove_00000003_0000000e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2615_UnchainedWordMove_00000003_0000000e_00000000_00000001 = (IHPE)S_2615_UnchainedWordMove_00000003_0000000e_00000000_00000001 ; +LOCAL IUH L13_2595if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2595if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2595if_f = (IHPE)L13_2595if_f ; +LOCAL IUH L28_356if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_356if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_356if_f = (IHPE)L28_356if_f ; +LOCAL IUH L28_357if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_357if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_357if_d = (IHPE)L28_357if_d ; +GLOBAL IUH S_2616_CopyWordPlnByPlnUnchained_00000003_0000000e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2616_CopyWordPlnByPlnUnchained_00000003_0000000e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2616_CopyWordPlnByPlnUnchained_00000003_0000000e_00000000_00000001 = (IHPE)S_2616_CopyWordPlnByPlnUnchained_00000003_0000000e_00000000_00000001 ; +LOCAL IUH L13_2596if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2596if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2596if_f = (IHPE)L13_2596if_f ; +LOCAL IUH L23_752if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_752if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_752if_f = (IHPE)L23_752if_f ; +LOCAL IUH L23_753if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_753if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_753if_f = (IHPE)L23_753if_f ; +LOCAL IUH L23_754if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_754if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_754if_f = (IHPE)L23_754if_f ; +LOCAL IUH L23_755if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_755if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_755if_f = (IHPE)L23_755if_f ; +GLOBAL IUH S_2617_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2617_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2617_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000001 = (IHPE)S_2617_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000001 ; +LOCAL IUH L13_2597if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2597if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2597if_f = (IHPE)L13_2597if_f ; +LOCAL IUH L23_758w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_758w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_758w_t = (IHPE)L23_758w_t ; +LOCAL IUH L23_759w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_759w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_759w_d = (IHPE)L23_759w_d ; +LOCAL IUH L23_756if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_756if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_756if_f = (IHPE)L23_756if_f ; +LOCAL IUH L23_760w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_760w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_760w_t = (IHPE)L23_760w_t ; +LOCAL IUH L23_761w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_761w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_761w_d = (IHPE)L23_761w_d ; +LOCAL IUH L23_757if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_757if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_757if_d = (IHPE)L23_757if_d ; +GLOBAL IUH S_2618_UnchainedWordMove_00000003_0000000f_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2618_UnchainedWordMove_00000003_0000000f_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2618_UnchainedWordMove_00000003_0000000f_00000000_00000001 = (IHPE)S_2618_UnchainedWordMove_00000003_0000000f_00000000_00000001 ; +LOCAL IUH L13_2598if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2598if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2598if_f = (IHPE)L13_2598if_f ; +LOCAL IUH L28_358if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_358if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_358if_f = (IHPE)L28_358if_f ; +LOCAL IUH L28_359if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L28_359if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L28_359if_d = (IHPE)L28_359if_d ; +GLOBAL IUH S_2619_CopyWord4PlaneUnchained_00000003_0000000f_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2619_CopyWord4PlaneUnchained_00000003_0000000f_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2619_CopyWord4PlaneUnchained_00000003_0000000f_00000000_00000001 = (IHPE)S_2619_CopyWord4PlaneUnchained_00000003_0000000f_00000000_00000001 ; +LOCAL IUH L13_2599if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2599if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2599if_f = (IHPE)L13_2599if_f ; +LOCAL IUH L23_764w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_764w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_764w_t = (IHPE)L23_764w_t ; +LOCAL IUH L23_765w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_765w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_765w_d = (IHPE)L23_765w_d ; +LOCAL IUH L23_762if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_762if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_762if_f = (IHPE)L23_762if_f ; +LOCAL IUH L23_766w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_766w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_766w_t = (IHPE)L23_766w_t ; +LOCAL IUH L23_767w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_767w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_767w_d = (IHPE)L23_767w_d ; +LOCAL IUH L23_763if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_763if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_763if_d = (IHPE)L23_763if_d ; +GLOBAL IUH S_2620_UnchainedDwordMove_00000003_00000008_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2620_UnchainedDwordMove_00000003_00000008_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2620_UnchainedDwordMove_00000003_00000008_00000000_00000001 = (IHPE)S_2620_UnchainedDwordMove_00000003_00000008_00000000_00000001 ; +LOCAL IUH L13_2600if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2600if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2600if_f = (IHPE)L13_2600if_f ; +GLOBAL IUH S_2621_UnchainedDwordMove_00000003_00000009_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2621_UnchainedDwordMove_00000003_00000009_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2621_UnchainedDwordMove_00000003_00000009_00000000_00000001 = (IHPE)S_2621_UnchainedDwordMove_00000003_00000009_00000000_00000001 ; +LOCAL IUH L13_2601if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2601if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2601if_f = (IHPE)L13_2601if_f ; +GLOBAL IUH S_2622_UnchainedDwordMove_00000003_0000000e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2622_UnchainedDwordMove_00000003_0000000e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2622_UnchainedDwordMove_00000003_0000000e_00000000_00000001 = (IHPE)S_2622_UnchainedDwordMove_00000003_0000000e_00000000_00000001 ; +LOCAL IUH L13_2602if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2602if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2602if_f = (IHPE)L13_2602if_f ; +GLOBAL IUH S_2623_UnchainedDwordMove_00000003_0000000f_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2623_UnchainedDwordMove_00000003_0000000f_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2623_UnchainedDwordMove_00000003_0000000f_00000000_00000001 = (IHPE)S_2623_UnchainedDwordMove_00000003_0000000f_00000000_00000001 ; +LOCAL IUH L13_2603if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2603if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2603if_f = (IHPE)L13_2603if_f ; +GLOBAL IUH S_2624_Chain2ByteWrite_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2624_Chain2ByteWrite_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2624_Chain2ByteWrite_00000000 = (IHPE)S_2624_Chain2ByteWrite_00000000 ; +LOCAL IUH L13_2604if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2604if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2604if_f = (IHPE)L13_2604if_f ; +GLOBAL IUH S_2625_Chain2ModeXByteWrite_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2625_Chain2ModeXByteWrite_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2625_Chain2ModeXByteWrite_00000000 = (IHPE)S_2625_Chain2ModeXByteWrite_00000000 ; +LOCAL IUH L13_2605if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2605if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2605if_f = (IHPE)L13_2605if_f ; +LOCAL IUH L25_18if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_18if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_18if_f = (IHPE)L25_18if_f ; +LOCAL IUH L25_19if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_19if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_19if_f = (IHPE)L25_19if_f ; +LOCAL IUH L21_2if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_2if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_2if_f = (IHPE)L21_2if_f ; +LOCAL IUH L21_0if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_0if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_0if_f = (IHPE)L21_0if_f ; +LOCAL IUH L21_3if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_3if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_3if_f = (IHPE)L21_3if_f ; +LOCAL IUH L21_1if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_1if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_1if_d = (IHPE)L21_1if_d ; +GLOBAL IUH S_2626_Chain2ByteFill_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2626_Chain2ByteFill_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2626_Chain2ByteFill_00000000 = (IHPE)S_2626_Chain2ByteFill_00000000 ; +LOCAL IUH L13_2606if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2606if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2606if_f = (IHPE)L13_2606if_f ; +GLOBAL IUH S_2627_Chain2ModeXByteFill_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2627_Chain2ModeXByteFill_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2627_Chain2ModeXByteFill_00000000 = (IHPE)S_2627_Chain2ModeXByteFill_00000000 ; +LOCAL IUH L13_2607if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2607if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2607if_f = (IHPE)L13_2607if_f ; +LOCAL IUH L21_4if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_4if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_4if_f = (IHPE)L21_4if_f ; +LOCAL IUH L21_5w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_5w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_5w_t = (IHPE)L21_5w_t ; +LOCAL IUH L21_6w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_6w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_6w_d = (IHPE)L21_6w_d ; +LOCAL IUH L21_7if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_7if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_7if_f = (IHPE)L21_7if_f ; +GLOBAL IUH S_2628_Chain2ByteMove_00000000_Fwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2628_Chain2ByteMove_00000000_Fwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2628_Chain2ByteMove_00000000_Fwd = (IHPE)S_2628_Chain2ByteMove_00000000_Fwd ; +LOCAL IUH L13_2608if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2608if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2608if_f = (IHPE)L13_2608if_f ; +GLOBAL IUH S_2629_Chain2ModeXFwdByteMove_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2629_Chain2ModeXFwdByteMove_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2629_Chain2ModeXFwdByteMove_00000000 = (IHPE)S_2629_Chain2ModeXFwdByteMove_00000000 ; +LOCAL IUH L13_2609if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2609if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2609if_f = (IHPE)L13_2609if_f ; +LOCAL IUH L25_20if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_20if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_20if_f = (IHPE)L25_20if_f ; +LOCAL IUH L25_21if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_21if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_21if_f = (IHPE)L25_21if_f ; +LOCAL IUH L21_10if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_10if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_10if_f = (IHPE)L21_10if_f ; +LOCAL IUH L21_11w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_11w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_11w_t = (IHPE)L21_11w_t ; +LOCAL IUH L21_12w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_12w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_12w_d = (IHPE)L21_12w_d ; +LOCAL IUH L21_13if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_13if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_13if_f = (IHPE)L21_13if_f ; +LOCAL IUH L21_8if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_8if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_8if_f = (IHPE)L21_8if_f ; +LOCAL IUH L21_14if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_14if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_14if_f = (IHPE)L21_14if_f ; +LOCAL IUH L21_15w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_15w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_15w_t = (IHPE)L21_15w_t ; +LOCAL IUH L21_16w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_16w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_16w_d = (IHPE)L21_16w_d ; +LOCAL IUH L21_17if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_17if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_17if_f = (IHPE)L21_17if_f ; +LOCAL IUH L21_9if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_9if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_9if_d = (IHPE)L21_9if_d ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2598_UnchainedDwordMove_00000002_0000000e_00000000_00000001_id : + S_2598_UnchainedDwordMove_00000002_0000000e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2598) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2578if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2578if_f_id : + L13_2578if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2591_UnchainedWordMove_00000002_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2591_UnchainedWordMove_00000002_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2599_UnchainedDwordMove_00000002_0000000f_00000000_00000001_id : + S_2599_UnchainedDwordMove_00000002_0000000f_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2599) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2579if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2579if_f_id : + L13_2579if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2594_UnchainedWordMove_00000002_0000000f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2594_UnchainedWordMove_00000002_0000000f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2600_UnchainedByteMove_00000003_00000008_00000000_00000001_id : + S_2600_UnchainedByteMove_00000003_00000008_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2600) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2580if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2580if_f_id : + L13_2580if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_344if_f; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2601_CopyBytePlnByPlnUnchained_00000003_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2601_CopyBytePlnByPlnUnchained_00000003_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + { extern IUH L28_345if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_345if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_344if_f_id : + L28_344if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2601_CopyBytePlnByPlnUnchained_00000003_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2601_CopyBytePlnByPlnUnchained_00000003_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + case L28_345if_d_id : + L28_345if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2601_CopyBytePlnByPlnUnchained_00000003_00000008_00000000_00000001_id : + S_2601_CopyBytePlnByPlnUnchained_00000003_00000008_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2601) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2581if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2581if_f_id : + L13_2581if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_704if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2602_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2602_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_704if_f_id : + L23_704if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_705if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2602_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2602_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_705if_f_id : + L23_705if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_706if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2602_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2602_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_706if_f_id : + L23_706if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_707if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2602_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2602_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_707if_f_id : + L23_707if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2602_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000001_id : + S_2602_CopyByte1PlaneUnchained_00000003_00000008_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2602) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2582if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2582if_f_id : + L13_2582if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_708if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_711w_d; + case L23_710w_t_id : + L23_710w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_710w_t; + case L23_711w_d_id : + L23_711w_d: ; + { extern IUH L23_709if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_709if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_708if_f_id : + L23_708if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_713w_d; + case L23_712w_t_id : + L23_712w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_712w_t; + case L23_713w_d_id : + L23_713w_d: ; + case L23_709if_d_id : + L23_709if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2603_UnchainedByteMove_00000003_00000009_00000000_00000001_id : + S_2603_UnchainedByteMove_00000003_00000009_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2603) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2583if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2583if_f_id : + L13_2583if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_346if_f; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2604_CopyByte4PlaneUnchained_00000003_00000009_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2604_CopyByte4PlaneUnchained_00000003_00000009_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + { extern IUH L28_347if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_347if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_346if_f_id : + L28_346if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2604_CopyByte4PlaneUnchained_00000003_00000009_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2604_CopyByte4PlaneUnchained_00000003_00000009_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + case L28_347if_d_id : + L28_347if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2604_CopyByte4PlaneUnchained_00000003_00000009_00000000_00000001_id : + S_2604_CopyByte4PlaneUnchained_00000003_00000009_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2604) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2584if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2584if_f_id : + L13_2584if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_714if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_717w_d; + case L23_716w_t_id : + L23_716w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_716w_t; + case L23_717w_d_id : + L23_717w_d: ; + { extern IUH L23_715if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_715if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_714if_f_id : + L23_714if_f: ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_719w_d; + case L23_718w_t_id : + L23_718w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+9)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_718w_t; + case L23_719w_d_id : + L23_719w_d: ; + case L23_715if_d_id : + L23_715if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2605_UnchainedByteMove_00000003_0000000e_00000000_00000001_id : + S_2605_UnchainedByteMove_00000003_0000000e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2605) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2585if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2585if_f_id : + L13_2585if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_348if_f; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2606_CopyBytePlnByPlnUnchained_00000003_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2606_CopyBytePlnByPlnUnchained_00000003_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + { extern IUH L28_349if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_349if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_348if_f_id : + L28_348if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16370) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2606_CopyBytePlnByPlnUnchained_00000003_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2606_CopyBytePlnByPlnUnchained_00000003_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16371) ; + case L28_349if_d_id : + L28_349if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2606_CopyBytePlnByPlnUnchained_00000003_0000000e_00000000_00000001_id : + S_2606_CopyBytePlnByPlnUnchained_00000003_0000000e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2606) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2586if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2586if_f_id : + L13_2586if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_720if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2607_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2607_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_720if_f_id : + L23_720if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_721if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2607_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2607_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_721if_f_id : + L23_721if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_722if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2607_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2607_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_722if_f_id : + L23_722if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_723if_f; + *((IUH *)(r1+0)) = (IS32)(16372) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2607_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2607_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16373) ; + case L23_723if_f_id : + L23_723if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2607_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000001_id : + S_2607_CopyByte1PlaneUnchained_00000003_0000000e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2607) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2587if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2587if_f_id : + L13_2587if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_724if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_727w_d; + case L23_726w_t_id : + L23_726w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_726w_t; + case L23_727w_d_id : + L23_727w_d: ; + { extern IUH L23_725if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_725if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_724if_f_id : + L23_724if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_729w_d; + case L23_728w_t_id : + L23_728w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1296) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_728w_t; + case L23_729w_d_id : + L23_729w_d: ; + case L23_725if_d_id : + L23_725if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2608_UnchainedByteMove_00000003_0000000f_00000000_00000001_id : + S_2608_UnchainedByteMove_00000003_0000000f_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2608) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2588if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2588if_f_id : + L13_2588if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_350if_f; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2609_CopyByte4PlaneUnchained_00000003_0000000f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2609_CopyByte4PlaneUnchained_00000003_0000000f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + { extern IUH L28_351if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_351if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_350if_f_id : + L28_350if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16478) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2609_CopyByte4PlaneUnchained_00000003_0000000f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2609_CopyByte4PlaneUnchained_00000003_0000000f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16479) ; + case L28_351if_d_id : + L28_351if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2609_CopyByte4PlaneUnchained_00000003_0000000f_00000000_00000001_id : + S_2609_CopyByte4PlaneUnchained_00000003_0000000f_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2609) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2589if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2589if_f_id : + L13_2589if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_730if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_733w_d; + case L23_732w_t_id : + L23_732w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_732w_t; + case L23_733w_d_id : + L23_733w_d: ; + { extern IUH L23_731if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_731if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_730if_f_id : + L23_730if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_735w_d; + case L23_734w_t_id : + L23_734w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1296) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+9)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_734w_t; + case L23_735w_d_id : + L23_735w_d: ; + case L23_731if_d_id : + L23_731if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2610_UnchainedWordMove_00000003_00000008_00000000_00000001_id : + S_2610_UnchainedWordMove_00000003_00000008_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2610) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2590if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2590if_f_id : + L13_2590if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_352if_f; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2611_CopyWordPlnByPlnUnchained_00000003_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2611_CopyWordPlnByPlnUnchained_00000003_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + { extern IUH L28_353if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_353if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_352if_f_id : + L28_352if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2611_CopyWordPlnByPlnUnchained_00000003_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2611_CopyWordPlnByPlnUnchained_00000003_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + case L28_353if_d_id : + L28_353if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2611_CopyWordPlnByPlnUnchained_00000003_00000008_00000000_00000001_id : + S_2611_CopyWordPlnByPlnUnchained_00000003_00000008_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2611) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2591if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2591if_f_id : + L13_2591if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_736if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2612_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2612_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_736if_f_id : + L23_736if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_737if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2612_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2612_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_737if_f_id : + L23_737if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_738if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2612_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2612_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_738if_f_id : + L23_738if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_739if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2612_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2612_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_739if_f_id : + L23_739if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2612_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000001_id : + S_2612_CopyWord1PlaneUnchained_00000003_00000008_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2612) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2592if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2592if_f_id : + L13_2592if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_740if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_743w_d; + case L23_742w_t_id : + L23_742w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_742w_t; + case L23_743w_d_id : + L23_743w_d: ; + { extern IUH L23_741if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_741if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_740if_f_id : + L23_740if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_745w_d; + case L23_744w_t_id : + L23_744w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_744w_t; + case L23_745w_d_id : + L23_745w_d: ; + case L23_741if_d_id : + L23_741if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2613_UnchainedWordMove_00000003_00000009_00000000_00000001_id : + S_2613_UnchainedWordMove_00000003_00000009_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2613) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2593if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2593if_f_id : + L13_2593if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_354if_f; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2614_CopyWord4PlaneUnchained_00000003_00000009_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2614_CopyWord4PlaneUnchained_00000003_00000009_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + { extern IUH L28_355if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_355if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_354if_f_id : + L28_354if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2614_CopyWord4PlaneUnchained_00000003_00000009_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2614_CopyWord4PlaneUnchained_00000003_00000009_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + case L28_355if_d_id : + L28_355if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2614_CopyWord4PlaneUnchained_00000003_00000009_00000000_00000001_id : + S_2614_CopyWord4PlaneUnchained_00000003_00000009_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2614) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2594if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2594if_f_id : + L13_2594if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_746if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_749w_d; + case L23_748w_t_id : + L23_748w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_748w_t; + case L23_749w_d_id : + L23_749w_d: ; + { extern IUH L23_747if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_747if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_746if_f_id : + L23_746if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_751w_d; + case L23_750w_t_id : + L23_750w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_750w_t; + case L23_751w_d_id : + L23_751w_d: ; + case L23_747if_d_id : + L23_747if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2615_UnchainedWordMove_00000003_0000000e_00000000_00000001_id : + S_2615_UnchainedWordMove_00000003_0000000e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2615) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2595if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2595if_f_id : + L13_2595if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_356if_f; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2616_CopyWordPlnByPlnUnchained_00000003_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2616_CopyWordPlnByPlnUnchained_00000003_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + { extern IUH L28_357if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_357if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_356if_f_id : + L28_356if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16382) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2616_CopyWordPlnByPlnUnchained_00000003_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2616_CopyWordPlnByPlnUnchained_00000003_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16383) ; + case L28_357if_d_id : + L28_357if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2616_CopyWordPlnByPlnUnchained_00000003_0000000e_00000000_00000001_id : + S_2616_CopyWordPlnByPlnUnchained_00000003_0000000e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2616) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2596if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2596if_f_id : + L13_2596if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_752if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(0) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2617_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2617_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_752if_f_id : + L23_752if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_753if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(8) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2617_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2617_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_753if_f_id : + L23_753if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_754if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(16) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2617_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2617_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_754if_f_id : + L23_754if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L23_755if_f; + *((IUH *)(r1+0)) = (IS32)(16384) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r7)) = (IS32)(24) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2617_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2617_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004033), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16385) ; + case L23_755if_f_id : + L23_755if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2617_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000001_id : + S_2617_CopyWord1PlaneUnchained_00000003_0000000e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 48 > 0 ) LocalIUH = (IUH *)malloc ( 48 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2617) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2597if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2597if_f_id : + L13_2597if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r7)) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_756if_f; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_759w_d; + case L23_758w_t_id : + L23_758w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_758w_t; + case L23_759w_d_id : + L23_759w_d: ; + { extern IUH L23_757if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_757if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_756if_f_id : + L23_756if_f: ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_761w_d; + case L23_760w_t_id : + L23_760w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1296) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) ; + *((IUH *)&(r22)) = (IS32)(1296) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+9) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+9) + REGLONG)); + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+11)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + if(*((IU32 *)(LocalIUH+5) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+9) + REGLONG) = *((IU32 *)(LocalIUH+9) + REGLONG) >> *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+9) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+11)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+11)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+8)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_760w_t; + case L23_761w_d_id : + L23_761w_d: ; + case L23_757if_d_id : + L23_757if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2618_UnchainedWordMove_00000003_0000000f_00000000_00000001_id : + S_2618_UnchainedWordMove_00000003_0000000f_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2618) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2598if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2598if_f_id : + L13_2598if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L28_358if_f; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2619_CopyWord4PlaneUnchained_00000003_0000000f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2619_CopyWord4PlaneUnchained_00000003_0000000f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + { extern IUH L28_359if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L28_359if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L28_358if_f_id : + L28_358if_f: ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16488) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2619_CopyWord4PlaneUnchained_00000003_0000000f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2619_CopyWord4PlaneUnchained_00000003_0000000f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16489) ; + case L28_359if_d_id : + L28_359if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2619_CopyWord4PlaneUnchained_00000003_0000000f_00000000_00000001_id : + S_2619_CopyWord4PlaneUnchained_00000003_0000000f_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2619) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2599if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2599if_f_id : + L13_2599if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_762if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_765w_d; + case L23_764w_t_id : + L23_764w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_764w_t; + case L23_765w_d_id : + L23_765w_d: ; + { extern IUH L23_763if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_763if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_762if_f_id : + L23_762if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_767w_d; + case L23_766w_t_id : + L23_766w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1296) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16408) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)(LocalIUH+8) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *(UOFF_15_8( (LocalIUH+8) )) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = *((IU16 *)(LocalIUH+8) + REGWORD); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+8) + REGLONG) = (*((IU32 *)(LocalIUH+8) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16409) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = (IS32)(1296) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r23)) = *((IUH *)(LocalIUH+10)) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(*((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IU32 *)(*((IHPE *)&(r21))) ) = *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_766w_t; + case L23_767w_d_id : + L23_767w_d: ; + case L23_763if_d_id : + L23_763if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2620_UnchainedDwordMove_00000003_00000008_00000000_00000001_id : + S_2620_UnchainedDwordMove_00000003_00000008_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2620) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2600if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2600if_f_id : + L13_2600if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2610_UnchainedWordMove_00000003_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2610_UnchainedWordMove_00000003_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2621_UnchainedDwordMove_00000003_00000009_00000000_00000001_id : + S_2621_UnchainedDwordMove_00000003_00000009_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2621) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2601if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2601if_f_id : + L13_2601if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2613_UnchainedWordMove_00000003_00000009_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2613_UnchainedWordMove_00000003_00000009_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2622_UnchainedDwordMove_00000003_0000000e_00000000_00000001_id : + S_2622_UnchainedDwordMove_00000003_0000000e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2622) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2602if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2602if_f_id : + L13_2602if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2615_UnchainedWordMove_00000003_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2615_UnchainedWordMove_00000003_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2623_UnchainedDwordMove_00000003_0000000f_00000000_00000001_id : + S_2623_UnchainedDwordMove_00000003_0000000f_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2623) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2603if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2603if_f_id : + L13_2603if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16396) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2618_UnchainedWordMove_00000003_0000000f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2618_UnchainedWordMove_00000003_0000000f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16397) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2624_Chain2ByteWrite_00000000_id : + S_2624_Chain2ByteWrite_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2624) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2604if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2604if_f_id : + L13_2604if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2625_Chain2ModeXByteWrite_00000000_id : + S_2625_Chain2ModeXByteWrite_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2625) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2605if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2605if_f_id : + L13_2605if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_18if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_18if_f_id : + L25_18if_f: ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1348) ; + if (*((IS32 *)&(r21) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_19if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_19if_f_id : + L25_19if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+0) + REGLONG) & (1 << *((IU32 *)&(r21) + REGLONG))) == 0) goto L21_0if_f; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L21_2if_f; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r23)) = (IS32)(31) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r22) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+0) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(2) ; + if(*((IU32 *)&(r23) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r23) + REGLONG) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + case L21_2if_f_id : + L21_2if_f: ; + { extern IUH L21_1if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_1if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_0if_f_id : + L21_0if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L21_3if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r22)) = (IS32)(31) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+0) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + case L21_3if_f_id : + L21_3if_f: ; + case L21_1if_d_id : + L21_1if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2626_Chain2ByteFill_00000000_id : + S_2626_Chain2ByteFill_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2626) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2606if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2606if_f_id : + L13_2606if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16504) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2627_Chain2ModeXByteFill_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2627_Chain2ModeXByteFill_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16505) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2627_Chain2ModeXByteFill_00000000_id : + S_2627_Chain2ModeXByteFill_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2627) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2607if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2607if_f_id : + L13_2607if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+4) + REGLONG) & (1 << *((IU32 *)&(r21) + REGLONG))) == 0) goto L21_4if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + case L21_4if_f_id : + L21_4if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L21_6w_d; + case L21_5w_t_id : + L21_5w_t: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L21_5w_t; + case L21_6w_d_id : + L21_6w_d: ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IS32 *)(LocalIUH+3) + REGLONG) != *((IS32 *)&(r20) + REGLONG)) goto L21_7if_f; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + case L21_7if_f_id : + L21_7if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2628_Chain2ByteMove_00000000_Fwd_id : + S_2628_Chain2ByteMove_00000000_Fwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2628) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2608if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2608if_f_id : + L13_2608if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16508) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2629_Chain2ModeXFwdByteMove_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2629_Chain2ModeXFwdByteMove_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16509) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2629_Chain2ModeXFwdByteMove_00000000_id : + S_2629_Chain2ModeXFwdByteMove_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 36 > 0 ) LocalIUH = (IUH *)malloc ( 36 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2629) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2609if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2609if_f_id : + L13_2609if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_20if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_20if_f_id : + L25_20if_f: ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(57343) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + if (*((IS32 *)&(r20) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )) goto L25_21if_f; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_21if_f_id : + L25_21if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L21_8if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+4) + REGLONG) & (1 << *((IU32 *)&(r21) + REGLONG))) == 0) goto L21_10if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + case L21_10if_f_id : + L21_10if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L21_12w_d; + case L21_11w_t_id : + L21_11w_t: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L21_11w_t; + case L21_12w_d_id : + L21_12w_d: ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IS32 *)(LocalIUH+5) + REGLONG) != *((IS32 *)&(r20) + REGLONG)) goto L21_13if_f; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + case L21_13if_f_id : + L21_13if_f: ; + { extern IUH L21_9if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_9if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_8if_f_id : + L21_8if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = (IS32)(0) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+4) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L21_14if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + case L21_14if_f_id : + L21_14if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_16w_d; + case L21_15w_t_id : + L21_15w_t: ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L21_15w_t; + case L21_16w_d_id : + L21_16w_d: ; + *((IUH *)&(r21)) = (IS32)(1) ; + if (*((IS32 *)(LocalIUH+5) + REGLONG) != *((IS32 *)&(r21) + REGLONG)) goto L21_17if_f; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + case L21_17if_f_id : + L21_17if_f: ; + case L21_9if_d_id : + L21_9if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid017.c b/private/mvdm/softpc.new/base/cvidc/sevid017.c new file mode 100644 index 000000000..091fa3491 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid017.c @@ -0,0 +1,3361 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_2630_Chain2WordWrite_00000000_id, +L13_2610if_f_id, +S_2631_Chain2ModeXWordWrite_00000000_id, +L13_2611if_f_id, +L21_18if_f_id, +L21_19if_d_id, +S_2632_Chain2WordFill_00000000_id, +L13_2612if_f_id, +S_2633_Chain2ModeXWordFill_00000000_id, +L13_2613if_f_id, +L21_20if_f_id, +L21_21w_t_id, +L21_22w_d_id, +S_2634_Chain2WordMove_00000000_Fwd_id, +L13_2614if_f_id, +S_2635_Chain2ModeXFwdWordMove_00000000_id, +L13_2615if_f_id, +L25_22if_f_id, +L25_23if_f_id, +L21_25if_f_id, +L21_26w_t_id, +L21_27w_d_id, +L21_23if_f_id, +L21_28if_f_id, +L21_29w_t_id, +L21_30w_d_id, +L21_24if_d_id, +S_2636_Chain2DwordWrite_00000000_id, +L13_2616if_f_id, +S_2637_Chain2ModeXDwordWrite_00000000_id, +L13_2617if_f_id, +S_2638_Chain2DwordFill_00000000_id, +L13_2618if_f_id, +S_2639_Chain2ModeXDwordFill_00000000_id, +L13_2619if_f_id, +L21_31if_f_id, +L21_32w_t_id, +L21_33w_d_id, +S_2640_Chain2DwordMove_00000000_Fwd_id, +L13_2620if_f_id, +S_2641_Chain2ModeXFwdDwordMove_00000000_id, +L13_2621if_f_id, +S_2642_Chain2ByteWrite_00000001_id, +L13_2622if_f_id, +S_2643_Chain2ModeXByteWrite_00000001_id, +L13_2623if_f_id, +L25_24if_f_id, +L25_25if_f_id, +L21_36if_f_id, +L21_34if_f_id, +L21_37if_f_id, +L21_35if_d_id, +S_2644_Chain2ByteFill_00000001_id, +L13_2624if_f_id, +S_2645_Chain2ModeXByteFill_00000001_id, +L13_2625if_f_id, +L21_38if_f_id, +L21_39w_t_id, +L21_40w_d_id, +L21_41if_f_id, +S_2646_Chain2ByteMove_00000001_Fwd_id, +L13_2626if_f_id, +S_2647_Chain2ModeXFwdByteMove_00000001_id, +L13_2627if_f_id, +L25_26if_f_id, +L25_27if_f_id, +L21_44if_f_id, +L21_45w_t_id, +L21_46w_d_id, +L21_47if_f_id, +L21_42if_f_id, +L21_48if_f_id, +L21_49w_t_id, +L21_50w_d_id, +L21_51if_f_id, +L21_43if_d_id, +S_2648_Chain2WordWrite_00000001_id, +L13_2628if_f_id, +S_2649_Chain2ModeXWordWrite_00000001_id, +L13_2629if_f_id, +L21_52if_f_id, +L21_53if_d_id, +S_2650_Chain2WordFill_00000001_id, +L13_2630if_f_id, +S_2651_Chain2ModeXWordFill_00000001_id, +L13_2631if_f_id, +L21_54if_f_id, +L21_55w_t_id, +L21_56w_d_id, +S_2652_Chain2WordMove_00000001_Fwd_id, +L13_2632if_f_id, +S_2653_Chain2ModeXFwdWordMove_00000001_id, +L13_2633if_f_id, +L25_28if_f_id, +L25_29if_f_id, +L21_59if_f_id, +L21_60w_t_id, +L21_61w_d_id, +L21_57if_f_id, +L21_62if_f_id, +L21_63w_t_id, +L21_64w_d_id, +L21_58if_d_id, +S_2654_Chain2DwordWrite_00000001_id, +L13_2634if_f_id, +S_2655_Chain2ModeXDwordWrite_00000001_id, +L13_2635if_f_id, +S_2656_Chain2DwordFill_00000001_id, +L13_2636if_f_id, +S_2657_Chain2ModeXDwordFill_00000001_id, +L13_2637if_f_id, +L21_65if_f_id, +L21_66w_t_id, +L21_67w_d_id, +S_2658_Chain2DwordMove_00000001_Fwd_id, +L13_2638if_f_id, +S_2659_Chain2ModeXFwdDwordMove_00000001_id, +L13_2639if_f_id, +S_2660_Chain2ByteWrite_00000002_id, +L13_2640if_f_id, +S_2661_Chain2ModeXByteWrite_00000002_id, +L13_2641if_f_id, +L25_30if_f_id, +L25_31if_f_id, +L21_70if_f_id, +L21_68if_f_id, +L21_71if_f_id, +L21_69if_d_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_2630_Chain2WordWrite_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2630_Chain2WordWrite_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2630_Chain2WordWrite_00000000 = (IHPE)S_2630_Chain2WordWrite_00000000 ; +LOCAL IUH L13_2610if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2610if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2610if_f = (IHPE)L13_2610if_f ; +GLOBAL IUH S_2631_Chain2ModeXWordWrite_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2631_Chain2ModeXWordWrite_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2631_Chain2ModeXWordWrite_00000000 = (IHPE)S_2631_Chain2ModeXWordWrite_00000000 ; +LOCAL IUH L13_2611if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2611if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2611if_f = (IHPE)L13_2611if_f ; +LOCAL IUH L21_18if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_18if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_18if_f = (IHPE)L21_18if_f ; +LOCAL IUH L21_19if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_19if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_19if_d = (IHPE)L21_19if_d ; +GLOBAL IUH S_2632_Chain2WordFill_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2632_Chain2WordFill_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2632_Chain2WordFill_00000000 = (IHPE)S_2632_Chain2WordFill_00000000 ; +LOCAL IUH L13_2612if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2612if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2612if_f = (IHPE)L13_2612if_f ; +GLOBAL IUH S_2633_Chain2ModeXWordFill_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2633_Chain2ModeXWordFill_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2633_Chain2ModeXWordFill_00000000 = (IHPE)S_2633_Chain2ModeXWordFill_00000000 ; +LOCAL IUH L13_2613if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2613if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2613if_f = (IHPE)L13_2613if_f ; +LOCAL IUH L21_20if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_20if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_20if_f = (IHPE)L21_20if_f ; +LOCAL IUH L21_21w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_21w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_21w_t = (IHPE)L21_21w_t ; +LOCAL IUH L21_22w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_22w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_22w_d = (IHPE)L21_22w_d ; +GLOBAL IUH S_2634_Chain2WordMove_00000000_Fwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2634_Chain2WordMove_00000000_Fwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2634_Chain2WordMove_00000000_Fwd = (IHPE)S_2634_Chain2WordMove_00000000_Fwd ; +LOCAL IUH L13_2614if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2614if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2614if_f = (IHPE)L13_2614if_f ; +GLOBAL IUH S_2635_Chain2ModeXFwdWordMove_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2635_Chain2ModeXFwdWordMove_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2635_Chain2ModeXFwdWordMove_00000000 = (IHPE)S_2635_Chain2ModeXFwdWordMove_00000000 ; +LOCAL IUH L13_2615if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2615if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2615if_f = (IHPE)L13_2615if_f ; +LOCAL IUH L25_22if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_22if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_22if_f = (IHPE)L25_22if_f ; +LOCAL IUH L25_23if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_23if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_23if_f = (IHPE)L25_23if_f ; +LOCAL IUH L21_25if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_25if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_25if_f = (IHPE)L21_25if_f ; +LOCAL IUH L21_26w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_26w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_26w_t = (IHPE)L21_26w_t ; +LOCAL IUH L21_27w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_27w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_27w_d = (IHPE)L21_27w_d ; +LOCAL IUH L21_23if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_23if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_23if_f = (IHPE)L21_23if_f ; +LOCAL IUH L21_28if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_28if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_28if_f = (IHPE)L21_28if_f ; +LOCAL IUH L21_29w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_29w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_29w_t = (IHPE)L21_29w_t ; +LOCAL IUH L21_30w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_30w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_30w_d = (IHPE)L21_30w_d ; +LOCAL IUH L21_24if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_24if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_24if_d = (IHPE)L21_24if_d ; +GLOBAL IUH S_2636_Chain2DwordWrite_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2636_Chain2DwordWrite_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2636_Chain2DwordWrite_00000000 = (IHPE)S_2636_Chain2DwordWrite_00000000 ; +LOCAL IUH L13_2616if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2616if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2616if_f = (IHPE)L13_2616if_f ; +GLOBAL IUH S_2637_Chain2ModeXDwordWrite_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2637_Chain2ModeXDwordWrite_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2637_Chain2ModeXDwordWrite_00000000 = (IHPE)S_2637_Chain2ModeXDwordWrite_00000000 ; +LOCAL IUH L13_2617if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2617if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2617if_f = (IHPE)L13_2617if_f ; +GLOBAL IUH S_2638_Chain2DwordFill_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2638_Chain2DwordFill_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2638_Chain2DwordFill_00000000 = (IHPE)S_2638_Chain2DwordFill_00000000 ; +LOCAL IUH L13_2618if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2618if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2618if_f = (IHPE)L13_2618if_f ; +GLOBAL IUH S_2639_Chain2ModeXDwordFill_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2639_Chain2ModeXDwordFill_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2639_Chain2ModeXDwordFill_00000000 = (IHPE)S_2639_Chain2ModeXDwordFill_00000000 ; +LOCAL IUH L13_2619if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2619if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2619if_f = (IHPE)L13_2619if_f ; +LOCAL IUH L21_31if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_31if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_31if_f = (IHPE)L21_31if_f ; +LOCAL IUH L21_32w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_32w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_32w_t = (IHPE)L21_32w_t ; +LOCAL IUH L21_33w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_33w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_33w_d = (IHPE)L21_33w_d ; +GLOBAL IUH S_2640_Chain2DwordMove_00000000_Fwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2640_Chain2DwordMove_00000000_Fwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2640_Chain2DwordMove_00000000_Fwd = (IHPE)S_2640_Chain2DwordMove_00000000_Fwd ; +LOCAL IUH L13_2620if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2620if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2620if_f = (IHPE)L13_2620if_f ; +GLOBAL IUH S_2641_Chain2ModeXFwdDwordMove_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2641_Chain2ModeXFwdDwordMove_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2641_Chain2ModeXFwdDwordMove_00000000 = (IHPE)S_2641_Chain2ModeXFwdDwordMove_00000000 ; +LOCAL IUH L13_2621if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2621if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2621if_f = (IHPE)L13_2621if_f ; +GLOBAL IUH S_2642_Chain2ByteWrite_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2642_Chain2ByteWrite_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2642_Chain2ByteWrite_00000001 = (IHPE)S_2642_Chain2ByteWrite_00000001 ; +LOCAL IUH L13_2622if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2622if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2622if_f = (IHPE)L13_2622if_f ; +GLOBAL IUH S_2643_Chain2ModeXByteWrite_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2643_Chain2ModeXByteWrite_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2643_Chain2ModeXByteWrite_00000001 = (IHPE)S_2643_Chain2ModeXByteWrite_00000001 ; +LOCAL IUH L13_2623if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2623if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2623if_f = (IHPE)L13_2623if_f ; +LOCAL IUH L25_24if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_24if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_24if_f = (IHPE)L25_24if_f ; +LOCAL IUH L25_25if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_25if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_25if_f = (IHPE)L25_25if_f ; +LOCAL IUH L21_36if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_36if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_36if_f = (IHPE)L21_36if_f ; +LOCAL IUH L21_34if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_34if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_34if_f = (IHPE)L21_34if_f ; +LOCAL IUH L21_37if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_37if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_37if_f = (IHPE)L21_37if_f ; +LOCAL IUH L21_35if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_35if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_35if_d = (IHPE)L21_35if_d ; +GLOBAL IUH S_2644_Chain2ByteFill_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2644_Chain2ByteFill_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2644_Chain2ByteFill_00000001 = (IHPE)S_2644_Chain2ByteFill_00000001 ; +LOCAL IUH L13_2624if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2624if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2624if_f = (IHPE)L13_2624if_f ; +GLOBAL IUH S_2645_Chain2ModeXByteFill_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2645_Chain2ModeXByteFill_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2645_Chain2ModeXByteFill_00000001 = (IHPE)S_2645_Chain2ModeXByteFill_00000001 ; +LOCAL IUH L13_2625if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2625if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2625if_f = (IHPE)L13_2625if_f ; +LOCAL IUH L21_38if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_38if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_38if_f = (IHPE)L21_38if_f ; +LOCAL IUH L21_39w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_39w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_39w_t = (IHPE)L21_39w_t ; +LOCAL IUH L21_40w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_40w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_40w_d = (IHPE)L21_40w_d ; +LOCAL IUH L21_41if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_41if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_41if_f = (IHPE)L21_41if_f ; +GLOBAL IUH S_2646_Chain2ByteMove_00000001_Fwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2646_Chain2ByteMove_00000001_Fwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2646_Chain2ByteMove_00000001_Fwd = (IHPE)S_2646_Chain2ByteMove_00000001_Fwd ; +LOCAL IUH L13_2626if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2626if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2626if_f = (IHPE)L13_2626if_f ; +GLOBAL IUH S_2647_Chain2ModeXFwdByteMove_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2647_Chain2ModeXFwdByteMove_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2647_Chain2ModeXFwdByteMove_00000001 = (IHPE)S_2647_Chain2ModeXFwdByteMove_00000001 ; +LOCAL IUH L13_2627if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2627if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2627if_f = (IHPE)L13_2627if_f ; +LOCAL IUH L25_26if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_26if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_26if_f = (IHPE)L25_26if_f ; +LOCAL IUH L25_27if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_27if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_27if_f = (IHPE)L25_27if_f ; +LOCAL IUH L21_44if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_44if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_44if_f = (IHPE)L21_44if_f ; +LOCAL IUH L21_45w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_45w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_45w_t = (IHPE)L21_45w_t ; +LOCAL IUH L21_46w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_46w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_46w_d = (IHPE)L21_46w_d ; +LOCAL IUH L21_47if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_47if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_47if_f = (IHPE)L21_47if_f ; +LOCAL IUH L21_42if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_42if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_42if_f = (IHPE)L21_42if_f ; +LOCAL IUH L21_48if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_48if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_48if_f = (IHPE)L21_48if_f ; +LOCAL IUH L21_49w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_49w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_49w_t = (IHPE)L21_49w_t ; +LOCAL IUH L21_50w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_50w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_50w_d = (IHPE)L21_50w_d ; +LOCAL IUH L21_51if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_51if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_51if_f = (IHPE)L21_51if_f ; +LOCAL IUH L21_43if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_43if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_43if_d = (IHPE)L21_43if_d ; +GLOBAL IUH S_2648_Chain2WordWrite_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2648_Chain2WordWrite_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2648_Chain2WordWrite_00000001 = (IHPE)S_2648_Chain2WordWrite_00000001 ; +LOCAL IUH L13_2628if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2628if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2628if_f = (IHPE)L13_2628if_f ; +GLOBAL IUH S_2649_Chain2ModeXWordWrite_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2649_Chain2ModeXWordWrite_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2649_Chain2ModeXWordWrite_00000001 = (IHPE)S_2649_Chain2ModeXWordWrite_00000001 ; +LOCAL IUH L13_2629if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2629if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2629if_f = (IHPE)L13_2629if_f ; +LOCAL IUH L21_52if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_52if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_52if_f = (IHPE)L21_52if_f ; +LOCAL IUH L21_53if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_53if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_53if_d = (IHPE)L21_53if_d ; +GLOBAL IUH S_2650_Chain2WordFill_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2650_Chain2WordFill_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2650_Chain2WordFill_00000001 = (IHPE)S_2650_Chain2WordFill_00000001 ; +LOCAL IUH L13_2630if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2630if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2630if_f = (IHPE)L13_2630if_f ; +GLOBAL IUH S_2651_Chain2ModeXWordFill_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2651_Chain2ModeXWordFill_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2651_Chain2ModeXWordFill_00000001 = (IHPE)S_2651_Chain2ModeXWordFill_00000001 ; +LOCAL IUH L13_2631if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2631if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2631if_f = (IHPE)L13_2631if_f ; +LOCAL IUH L21_54if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_54if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_54if_f = (IHPE)L21_54if_f ; +LOCAL IUH L21_55w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_55w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_55w_t = (IHPE)L21_55w_t ; +LOCAL IUH L21_56w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_56w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_56w_d = (IHPE)L21_56w_d ; +GLOBAL IUH S_2652_Chain2WordMove_00000001_Fwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2652_Chain2WordMove_00000001_Fwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2652_Chain2WordMove_00000001_Fwd = (IHPE)S_2652_Chain2WordMove_00000001_Fwd ; +LOCAL IUH L13_2632if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2632if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2632if_f = (IHPE)L13_2632if_f ; +GLOBAL IUH S_2653_Chain2ModeXFwdWordMove_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2653_Chain2ModeXFwdWordMove_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2653_Chain2ModeXFwdWordMove_00000001 = (IHPE)S_2653_Chain2ModeXFwdWordMove_00000001 ; +LOCAL IUH L13_2633if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2633if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2633if_f = (IHPE)L13_2633if_f ; +LOCAL IUH L25_28if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_28if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_28if_f = (IHPE)L25_28if_f ; +LOCAL IUH L25_29if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_29if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_29if_f = (IHPE)L25_29if_f ; +LOCAL IUH L21_59if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_59if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_59if_f = (IHPE)L21_59if_f ; +LOCAL IUH L21_60w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_60w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_60w_t = (IHPE)L21_60w_t ; +LOCAL IUH L21_61w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_61w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_61w_d = (IHPE)L21_61w_d ; +LOCAL IUH L21_57if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_57if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_57if_f = (IHPE)L21_57if_f ; +LOCAL IUH L21_62if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_62if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_62if_f = (IHPE)L21_62if_f ; +LOCAL IUH L21_63w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_63w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_63w_t = (IHPE)L21_63w_t ; +LOCAL IUH L21_64w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_64w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_64w_d = (IHPE)L21_64w_d ; +LOCAL IUH L21_58if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_58if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_58if_d = (IHPE)L21_58if_d ; +GLOBAL IUH S_2654_Chain2DwordWrite_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2654_Chain2DwordWrite_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2654_Chain2DwordWrite_00000001 = (IHPE)S_2654_Chain2DwordWrite_00000001 ; +LOCAL IUH L13_2634if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2634if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2634if_f = (IHPE)L13_2634if_f ; +GLOBAL IUH S_2655_Chain2ModeXDwordWrite_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2655_Chain2ModeXDwordWrite_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2655_Chain2ModeXDwordWrite_00000001 = (IHPE)S_2655_Chain2ModeXDwordWrite_00000001 ; +LOCAL IUH L13_2635if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2635if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2635if_f = (IHPE)L13_2635if_f ; +GLOBAL IUH S_2656_Chain2DwordFill_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2656_Chain2DwordFill_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2656_Chain2DwordFill_00000001 = (IHPE)S_2656_Chain2DwordFill_00000001 ; +LOCAL IUH L13_2636if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2636if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2636if_f = (IHPE)L13_2636if_f ; +GLOBAL IUH S_2657_Chain2ModeXDwordFill_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2657_Chain2ModeXDwordFill_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2657_Chain2ModeXDwordFill_00000001 = (IHPE)S_2657_Chain2ModeXDwordFill_00000001 ; +LOCAL IUH L13_2637if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2637if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2637if_f = (IHPE)L13_2637if_f ; +LOCAL IUH L21_65if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_65if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_65if_f = (IHPE)L21_65if_f ; +LOCAL IUH L21_66w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_66w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_66w_t = (IHPE)L21_66w_t ; +LOCAL IUH L21_67w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_67w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_67w_d = (IHPE)L21_67w_d ; +GLOBAL IUH S_2658_Chain2DwordMove_00000001_Fwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2658_Chain2DwordMove_00000001_Fwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2658_Chain2DwordMove_00000001_Fwd = (IHPE)S_2658_Chain2DwordMove_00000001_Fwd ; +LOCAL IUH L13_2638if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2638if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2638if_f = (IHPE)L13_2638if_f ; +GLOBAL IUH S_2659_Chain2ModeXFwdDwordMove_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2659_Chain2ModeXFwdDwordMove_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2659_Chain2ModeXFwdDwordMove_00000001 = (IHPE)S_2659_Chain2ModeXFwdDwordMove_00000001 ; +LOCAL IUH L13_2639if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2639if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2639if_f = (IHPE)L13_2639if_f ; +GLOBAL IUH S_2660_Chain2ByteWrite_00000002 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2660_Chain2ByteWrite_00000002_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2660_Chain2ByteWrite_00000002 = (IHPE)S_2660_Chain2ByteWrite_00000002 ; +LOCAL IUH L13_2640if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2640if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2640if_f = (IHPE)L13_2640if_f ; +GLOBAL IUH S_2661_Chain2ModeXByteWrite_00000002 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2661_Chain2ModeXByteWrite_00000002_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2661_Chain2ModeXByteWrite_00000002 = (IHPE)S_2661_Chain2ModeXByteWrite_00000002 ; +LOCAL IUH L13_2641if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2641if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2641if_f = (IHPE)L13_2641if_f ; +LOCAL IUH L25_30if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_30if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_30if_f = (IHPE)L25_30if_f ; +LOCAL IUH L25_31if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_31if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_31if_f = (IHPE)L25_31if_f ; +LOCAL IUH L21_70if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_70if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_70if_f = (IHPE)L21_70if_f ; +LOCAL IUH L21_68if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_68if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_68if_f = (IHPE)L21_68if_f ; +LOCAL IUH L21_71if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_71if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_71if_f = (IHPE)L21_71if_f ; +LOCAL IUH L21_69if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_69if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_69if_d = (IHPE)L21_69if_d ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2630_Chain2WordWrite_00000000_id : + S_2630_Chain2WordWrite_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2630) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2610if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2610if_f_id : + L13_2610if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2631_Chain2ModeXWordWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2631_Chain2ModeXWordWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2631_Chain2ModeXWordWrite_00000000_id : + S_2631_Chain2ModeXWordWrite_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2631) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2611if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2611if_f_id : + L13_2611if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+0) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L21_18if_f; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + { extern IUH L21_19if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_19if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_18if_f_id : + L21_18if_f: ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + case L21_19if_d_id : + L21_19if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2632_Chain2WordFill_00000000_id : + S_2632_Chain2WordFill_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2632) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2612if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2612if_f_id : + L13_2612if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16516) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2633_Chain2ModeXWordFill_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2633_Chain2ModeXWordFill_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16517) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2633_Chain2ModeXWordFill_00000000_id : + S_2633_Chain2ModeXWordFill_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 28 > 0 ) LocalIUH = (IUH *)malloc ( 28 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2633) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2613if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2613if_f_id : + L13_2613if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)(LocalIUH+5) + REGWORD) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+4) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L21_20if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) * *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r22)) = (IS32)(8) ; + *((IU16 *)&(r20) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +if(*((IU16 *)&(r22) + REGWORD )>=16) + CrulesRuntimeError("Bad Bit No"); + else + if(*((IU16 *)&(r22) + REGWORD )!=0) + *((IU16 *)&(r20) + REGWORD ) = (*((IU16 *)(LocalIUH+1) + REGWORD) << ((16) - *((IU16 *)&(r22) + REGWORD )) ) | (*((IU16 *)&(r20) + REGWORD ) >> *((IU16 *)&(r22) + REGWORD )); + *((IU16 *)&(r21) + REGWORD) = *((IU16 *)&(r20) + REGWORD) ; + *((IU16 *)(LocalIUH+5) + REGWORD) = *((IU16 *)&(r21) + REGWORD ) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + case L21_20if_f_id : + L21_20if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_22w_d; + case L21_21w_t_id : + L21_21w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+5) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2631_Chain2ModeXWordWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2631_Chain2ModeXWordWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L21_21w_t; + case L21_22w_d_id : + L21_22w_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2634_Chain2WordMove_00000000_Fwd_id : + S_2634_Chain2WordMove_00000000_Fwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2634) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2614if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2614if_f_id : + L13_2614if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16520) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2635_Chain2ModeXFwdWordMove_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2635_Chain2ModeXFwdWordMove_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16521) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2635_Chain2ModeXFwdWordMove_00000000_id : + S_2635_Chain2ModeXFwdWordMove_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 36 > 0 ) LocalIUH = (IUH *)malloc ( 36 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2635) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2615if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2615if_f_id : + L13_2615if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_22if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_22if_f_id : + L25_22if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1348) ; + if (*((IS32 *)&(r21) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_23if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) + *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_23if_f_id : + L25_23if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L21_23if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+5) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L21_25if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + case L21_25if_f_id : + L21_25if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_27w_d; + case L21_26w_t_id : + L21_26w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(-1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)&(r21)) = *((IUH *)&(r20)) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(*((IHPE *)&(r21)) )) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2631_Chain2ModeXWordWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2631_Chain2ModeXWordWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L21_26w_t; + case L21_27w_d_id : + L21_27w_d: ; + { extern IUH L21_24if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_24if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_23if_f_id : + L21_23if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = (IS32)(0) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+5) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L21_28if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) + *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + case L21_28if_f_id : + L21_28if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_30w_d; + case L21_29w_t_id : + L21_29w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1292) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2631_Chain2ModeXWordWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2631_Chain2ModeXWordWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L21_29w_t; + case L21_30w_d_id : + L21_30w_d: ; + case L21_24if_d_id : + L21_24if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2636_Chain2DwordWrite_00000000_id : + S_2636_Chain2DwordWrite_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2636) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2616if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2616if_f_id : + L13_2616if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16524) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2637_Chain2ModeXDwordWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2637_Chain2ModeXDwordWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16525) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2637_Chain2ModeXDwordWrite_00000000_id : + S_2637_Chain2ModeXDwordWrite_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2637) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2617if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2617if_f_id : + L13_2617if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2631_Chain2ModeXWordWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2631_Chain2ModeXWordWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2631_Chain2ModeXWordWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2631_Chain2ModeXWordWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2638_Chain2DwordFill_00000000_id : + S_2638_Chain2DwordFill_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2638) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2618if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2618if_f_id : + L13_2618if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16528) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2639_Chain2ModeXDwordFill_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2639_Chain2ModeXDwordFill_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16529) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2639_Chain2ModeXDwordFill_00000000_id : + S_2639_Chain2ModeXDwordFill_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 28 > 0 ) LocalIUH = (IUH *)malloc ( 28 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2639) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2619if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2619if_f_id : + L13_2619if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+4) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L21_31if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) * *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r22)) = (IS32)(8) ; + *((IU16 *)&(r20) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +if(*((IU16 *)&(r22) + REGWORD )>=16) + CrulesRuntimeError("Bad Bit No"); + else + if(*((IU16 *)&(r22) + REGWORD )!=0) + *((IU16 *)&(r20) + REGWORD ) = (*((IU16 *)(LocalIUH+1) + REGWORD) << ((16) - *((IU16 *)&(r22) + REGWORD )) ) | (*((IU16 *)&(r20) + REGWORD ) >> *((IU16 *)&(r22) + REGWORD )); + *((IU16 *)&(r21) + REGWORD) = *((IU16 *)&(r20) + REGWORD) ; + *((IU16 *)(LocalIUH+5) + REGWORD) = *((IU16 *)&(r21) + REGWORD ) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = (IS32)(8) ; +if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if(*((IU32 *)&(r20) + REGLONG)!=0) + *((IU32 *)&(r21) + REGLONG) = (*((IU32 *)&(r21) + REGLONG) << ((32) - *((IU32 *)&(r20) + REGLONG)) ) | (*((IU32 *)&(r21) + REGLONG) >> *((IU32 *)&(r20) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+5) + REGLONG) = (*((IU32 *)(LocalIUH+5) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r21) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2631_Chain2ModeXWordWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2631_Chain2ModeXWordWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + case L21_31if_f_id : + L21_31if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_33w_d; + case L21_32w_t_id : + L21_32w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16524) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2637_Chain2ModeXDwordWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2637_Chain2ModeXDwordWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16525) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L21_32w_t; + case L21_33w_d_id : + L21_33w_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2640_Chain2DwordMove_00000000_Fwd_id : + S_2640_Chain2DwordMove_00000000_Fwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2640) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2620if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2620if_f_id : + L13_2620if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16532) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2641_Chain2ModeXFwdDwordMove_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2641_Chain2ModeXFwdDwordMove_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16533) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2641_Chain2ModeXFwdDwordMove_00000000_id : + S_2641_Chain2ModeXFwdDwordMove_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2641) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2621if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2621if_f_id : + L13_2621if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16520) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2635_Chain2ModeXFwdWordMove_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2635_Chain2ModeXFwdWordMove_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16521) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2642_Chain2ByteWrite_00000001_id : + S_2642_Chain2ByteWrite_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2642) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2622if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2622if_f_id : + L13_2622if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2643_Chain2ModeXByteWrite_00000001_id : + S_2643_Chain2ModeXByteWrite_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2643) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2623if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2623if_f_id : + L13_2623if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_24if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_24if_f_id : + L25_24if_f: ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1348) ; + if (*((IS32 *)&(r21) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_25if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_25if_f_id : + L25_25if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+0) + REGLONG) & (1 << *((IU32 *)&(r21) + REGLONG))) == 0) goto L21_34if_f; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L21_36if_f; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r23)) = (IS32)(31) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r22) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+0) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(2) ; + if(*((IU32 *)&(r23) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r23) + REGLONG) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + case L21_36if_f_id : + L21_36if_f: ; + { extern IUH L21_35if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_35if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_34if_f_id : + L21_34if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L21_37if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r22)) = (IS32)(31) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+0) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + case L21_37if_f_id : + L21_37if_f: ; + case L21_35if_d_id : + L21_35if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2644_Chain2ByteFill_00000001_id : + S_2644_Chain2ByteFill_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2644) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2624if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2624if_f_id : + L13_2624if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16504) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2645_Chain2ModeXByteFill_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2645_Chain2ModeXByteFill_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16505) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2645_Chain2ModeXByteFill_00000001_id : + S_2645_Chain2ModeXByteFill_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2645) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2625if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2625if_f_id : + L13_2625if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+4) + REGLONG) & (1 << *((IU32 *)&(r21) + REGLONG))) == 0) goto L21_38if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + case L21_38if_f_id : + L21_38if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L21_40w_d; + case L21_39w_t_id : + L21_39w_t: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L21_39w_t; + case L21_40w_d_id : + L21_40w_d: ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IS32 *)(LocalIUH+3) + REGLONG) != *((IS32 *)&(r20) + REGLONG)) goto L21_41if_f; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + case L21_41if_f_id : + L21_41if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2646_Chain2ByteMove_00000001_Fwd_id : + S_2646_Chain2ByteMove_00000001_Fwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2646) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2626if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2626if_f_id : + L13_2626if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16508) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2647_Chain2ModeXFwdByteMove_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2647_Chain2ModeXFwdByteMove_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16509) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2647_Chain2ModeXFwdByteMove_00000001_id : + S_2647_Chain2ModeXFwdByteMove_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 36 > 0 ) LocalIUH = (IUH *)malloc ( 36 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2647) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2627if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2627if_f_id : + L13_2627if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_26if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_26if_f_id : + L25_26if_f: ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(57343) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + if (*((IS32 *)&(r20) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )) goto L25_27if_f; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_27if_f_id : + L25_27if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L21_42if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+4) + REGLONG) & (1 << *((IU32 *)&(r21) + REGLONG))) == 0) goto L21_44if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + case L21_44if_f_id : + L21_44if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L21_46w_d; + case L21_45w_t_id : + L21_45w_t: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L21_45w_t; + case L21_46w_d_id : + L21_46w_d: ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IS32 *)(LocalIUH+5) + REGLONG) != *((IS32 *)&(r20) + REGLONG)) goto L21_47if_f; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + case L21_47if_f_id : + L21_47if_f: ; + { extern IUH L21_43if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_43if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_42if_f_id : + L21_42if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = (IS32)(0) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+4) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L21_48if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + case L21_48if_f_id : + L21_48if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_50w_d; + case L21_49w_t_id : + L21_49w_t: ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L21_49w_t; + case L21_50w_d_id : + L21_50w_d: ; + *((IUH *)&(r21)) = (IS32)(1) ; + if (*((IS32 *)(LocalIUH+5) + REGLONG) != *((IS32 *)&(r21) + REGLONG)) goto L21_51if_f; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + case L21_51if_f_id : + L21_51if_f: ; + case L21_43if_d_id : + L21_43if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2648_Chain2WordWrite_00000001_id : + S_2648_Chain2WordWrite_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2648) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2628if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2628if_f_id : + L13_2628if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2649_Chain2ModeXWordWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2649_Chain2ModeXWordWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2649_Chain2ModeXWordWrite_00000001_id : + S_2649_Chain2ModeXWordWrite_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2649) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2629if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2629if_f_id : + L13_2629if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+0) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L21_52if_f; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + { extern IUH L21_53if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_53if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_52if_f_id : + L21_52if_f: ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + case L21_53if_d_id : + L21_53if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2650_Chain2WordFill_00000001_id : + S_2650_Chain2WordFill_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2650) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2630if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2630if_f_id : + L13_2630if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16516) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2651_Chain2ModeXWordFill_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2651_Chain2ModeXWordFill_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16517) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2651_Chain2ModeXWordFill_00000001_id : + S_2651_Chain2ModeXWordFill_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 28 > 0 ) LocalIUH = (IUH *)malloc ( 28 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2651) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2631if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2631if_f_id : + L13_2631if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)(LocalIUH+5) + REGWORD) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+4) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L21_54if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) * *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r22)) = (IS32)(8) ; + *((IU16 *)&(r20) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +if(*((IU16 *)&(r22) + REGWORD )>=16) + CrulesRuntimeError("Bad Bit No"); + else + if(*((IU16 *)&(r22) + REGWORD )!=0) + *((IU16 *)&(r20) + REGWORD ) = (*((IU16 *)(LocalIUH+1) + REGWORD) << ((16) - *((IU16 *)&(r22) + REGWORD )) ) | (*((IU16 *)&(r20) + REGWORD ) >> *((IU16 *)&(r22) + REGWORD )); + *((IU16 *)&(r21) + REGWORD) = *((IU16 *)&(r20) + REGWORD) ; + *((IU16 *)(LocalIUH+5) + REGWORD) = *((IU16 *)&(r21) + REGWORD ) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + case L21_54if_f_id : + L21_54if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_56w_d; + case L21_55w_t_id : + L21_55w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+5) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2649_Chain2ModeXWordWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2649_Chain2ModeXWordWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L21_55w_t; + case L21_56w_d_id : + L21_56w_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2652_Chain2WordMove_00000001_Fwd_id : + S_2652_Chain2WordMove_00000001_Fwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2652) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2632if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2632if_f_id : + L13_2632if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16520) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2653_Chain2ModeXFwdWordMove_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2653_Chain2ModeXFwdWordMove_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16521) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2653_Chain2ModeXFwdWordMove_00000001_id : + S_2653_Chain2ModeXFwdWordMove_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 36 > 0 ) LocalIUH = (IUH *)malloc ( 36 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2653) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2633if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2633if_f_id : + L13_2633if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_28if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_28if_f_id : + L25_28if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1348) ; + if (*((IS32 *)&(r21) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_29if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) + *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_29if_f_id : + L25_29if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L21_57if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+5) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L21_59if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + case L21_59if_f_id : + L21_59if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_61w_d; + case L21_60w_t_id : + L21_60w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(-1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)&(r21)) = *((IUH *)&(r20)) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(*((IHPE *)&(r21)) )) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2649_Chain2ModeXWordWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2649_Chain2ModeXWordWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L21_60w_t; + case L21_61w_d_id : + L21_61w_d: ; + { extern IUH L21_58if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_58if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_57if_f_id : + L21_57if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = (IS32)(0) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+5) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L21_62if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) + *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + case L21_62if_f_id : + L21_62if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_64w_d; + case L21_63w_t_id : + L21_63w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1292) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2649_Chain2ModeXWordWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2649_Chain2ModeXWordWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L21_63w_t; + case L21_64w_d_id : + L21_64w_d: ; + case L21_58if_d_id : + L21_58if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2654_Chain2DwordWrite_00000001_id : + S_2654_Chain2DwordWrite_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2654) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2634if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2634if_f_id : + L13_2634if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16524) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2655_Chain2ModeXDwordWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2655_Chain2ModeXDwordWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16525) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2655_Chain2ModeXDwordWrite_00000001_id : + S_2655_Chain2ModeXDwordWrite_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2655) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2635if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2635if_f_id : + L13_2635if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2649_Chain2ModeXWordWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2649_Chain2ModeXWordWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2649_Chain2ModeXWordWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2649_Chain2ModeXWordWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2656_Chain2DwordFill_00000001_id : + S_2656_Chain2DwordFill_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2656) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2636if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2636if_f_id : + L13_2636if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16528) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2657_Chain2ModeXDwordFill_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2657_Chain2ModeXDwordFill_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16529) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2657_Chain2ModeXDwordFill_00000001_id : + S_2657_Chain2ModeXDwordFill_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 28 > 0 ) LocalIUH = (IUH *)malloc ( 28 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2657) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2637if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2637if_f_id : + L13_2637if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+4) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L21_65if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) * *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r22)) = (IS32)(8) ; + *((IU16 *)&(r20) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +if(*((IU16 *)&(r22) + REGWORD )>=16) + CrulesRuntimeError("Bad Bit No"); + else + if(*((IU16 *)&(r22) + REGWORD )!=0) + *((IU16 *)&(r20) + REGWORD ) = (*((IU16 *)(LocalIUH+1) + REGWORD) << ((16) - *((IU16 *)&(r22) + REGWORD )) ) | (*((IU16 *)&(r20) + REGWORD ) >> *((IU16 *)&(r22) + REGWORD )); + *((IU16 *)&(r21) + REGWORD) = *((IU16 *)&(r20) + REGWORD) ; + *((IU16 *)(LocalIUH+5) + REGWORD) = *((IU16 *)&(r21) + REGWORD ) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = (IS32)(8) ; +if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if(*((IU32 *)&(r20) + REGLONG)!=0) + *((IU32 *)&(r21) + REGLONG) = (*((IU32 *)&(r21) + REGLONG) << ((32) - *((IU32 *)&(r20) + REGLONG)) ) | (*((IU32 *)&(r21) + REGLONG) >> *((IU32 *)&(r20) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+5) + REGLONG) = (*((IU32 *)(LocalIUH+5) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r21) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2649_Chain2ModeXWordWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2649_Chain2ModeXWordWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + case L21_65if_f_id : + L21_65if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_67w_d; + case L21_66w_t_id : + L21_66w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16524) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2655_Chain2ModeXDwordWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2655_Chain2ModeXDwordWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16525) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L21_66w_t; + case L21_67w_d_id : + L21_67w_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2658_Chain2DwordMove_00000001_Fwd_id : + S_2658_Chain2DwordMove_00000001_Fwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2658) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2638if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2638if_f_id : + L13_2638if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16532) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2659_Chain2ModeXFwdDwordMove_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2659_Chain2ModeXFwdDwordMove_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16533) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2659_Chain2ModeXFwdDwordMove_00000001_id : + S_2659_Chain2ModeXFwdDwordMove_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2659) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2639if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2639if_f_id : + L13_2639if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16520) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2653_Chain2ModeXFwdWordMove_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2653_Chain2ModeXFwdWordMove_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16521) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2660_Chain2ByteWrite_00000002_id : + S_2660_Chain2ByteWrite_00000002 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2660) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2640if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2640if_f_id : + L13_2640if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2661_Chain2ModeXByteWrite_00000002_id : + S_2661_Chain2ModeXByteWrite_00000002 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2661) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2641if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2641if_f_id : + L13_2641if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_30if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_30if_f_id : + L25_30if_f: ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1348) ; + if (*((IS32 *)&(r21) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_31if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_31if_f_id : + L25_31if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+2) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+0) + REGLONG) & (1 << *((IU32 *)&(r21) + REGLONG))) == 0) goto L21_68if_f; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L21_70if_f; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r23)) = (IS32)(31) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r22) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+0) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(2) ; + if(*((IU32 *)&(r23) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r23) + REGLONG) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + case L21_70if_f_id : + L21_70if_f: ; + { extern IUH L21_69if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_69if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_68if_f_id : + L21_68if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L21_71if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r22)) = (IS32)(31) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+0) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + case L21_71if_f_id : + L21_71if_f: ; + case L21_69if_d_id : + L21_69if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid018.c b/private/mvdm/softpc.new/base/cvidc/sevid018.c new file mode 100644 index 000000000..c0769d8c6 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid018.c @@ -0,0 +1,3581 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_2662_Chain2ByteFill_00000002_id, +L13_2642if_f_id, +S_2663_Chain2ModeXByteFill_00000002_id, +L13_2643if_f_id, +L21_72if_f_id, +L21_73w_t_id, +L21_74w_d_id, +L21_75if_f_id, +S_2664_Chain2ByteMove_00000002_Fwd_id, +L13_2644if_f_id, +S_2665_Chain2ModeXFwdByteMove_00000002_id, +L13_2645if_f_id, +L25_32if_f_id, +L25_33if_f_id, +L21_78if_f_id, +L21_79w_t_id, +L21_80w_d_id, +L21_81if_f_id, +L21_76if_f_id, +L21_82if_f_id, +L21_83w_t_id, +L21_84w_d_id, +L21_85if_f_id, +L21_77if_d_id, +S_2666_Chain2WordWrite_00000002_id, +L13_2646if_f_id, +S_2667_Chain2ModeXWordWrite_00000002_id, +L13_2647if_f_id, +L21_86if_f_id, +L21_87if_d_id, +S_2668_Chain2WordFill_00000002_id, +L13_2648if_f_id, +S_2669_Chain2ModeXWordFill_00000002_id, +L13_2649if_f_id, +L21_88if_f_id, +L21_89w_t_id, +L21_90w_d_id, +S_2670_Chain2WordMove_00000002_Fwd_id, +L13_2650if_f_id, +S_2671_Chain2ModeXFwdWordMove_00000002_id, +L13_2651if_f_id, +L25_34if_f_id, +L25_35if_f_id, +L21_93if_f_id, +L21_94w_t_id, +L21_95w_d_id, +L21_91if_f_id, +L21_96if_f_id, +L21_97w_t_id, +L21_98w_d_id, +L21_92if_d_id, +S_2672_Chain2DwordWrite_00000002_id, +L13_2652if_f_id, +S_2673_Chain2ModeXDwordWrite_00000002_id, +L13_2653if_f_id, +S_2674_Chain2DwordFill_00000002_id, +L13_2654if_f_id, +S_2675_Chain2ModeXDwordFill_00000002_id, +L13_2655if_f_id, +L21_99if_f_id, +L21_100w_t_id, +L21_101w_d_id, +S_2676_Chain2DwordMove_00000002_Fwd_id, +L13_2656if_f_id, +S_2677_Chain2ModeXFwdDwordMove_00000002_id, +L13_2657if_f_id, +S_2678_Chain2ByteWrite_00000003_id, +L13_2658if_f_id, +S_2679_Chain2ModeXByteWrite_00000003_id, +L13_2659if_f_id, +L25_36if_f_id, +L25_37if_f_id, +L21_104if_f_id, +L21_102if_f_id, +L21_105if_f_id, +L21_103if_d_id, +S_2680_Chain2ByteFill_00000003_id, +L13_2660if_f_id, +S_2681_Chain2ModeXByteFill_00000003_id, +L13_2661if_f_id, +L21_106if_f_id, +L21_107w_t_id, +L21_108w_d_id, +L21_109if_f_id, +S_2682_Chain2ByteMove_00000003_Fwd_id, +L13_2662if_f_id, +S_2683_Chain2ModeXFwdByteMove_00000003_id, +L13_2663if_f_id, +L25_38if_f_id, +L25_39if_f_id, +L21_112if_f_id, +L21_113w_t_id, +L21_114w_d_id, +L21_115if_f_id, +L21_110if_f_id, +L21_116if_f_id, +L21_117w_t_id, +L21_118w_d_id, +L21_119if_f_id, +L21_111if_d_id, +S_2684_Chain2WordWrite_00000003_id, +L13_2664if_f_id, +S_2685_Chain2ModeXWordWrite_00000003_id, +L13_2665if_f_id, +L21_120if_f_id, +L21_121if_d_id, +S_2686_Chain2WordFill_00000003_id, +L13_2666if_f_id, +S_2687_Chain2ModeXWordFill_00000003_id, +L13_2667if_f_id, +L21_122if_f_id, +L21_123w_t_id, +L21_124w_d_id, +S_2688_Chain2WordMove_00000003_Fwd_id, +L13_2668if_f_id, +S_2689_Chain2ModeXFwdWordMove_00000003_id, +L13_2669if_f_id, +L25_40if_f_id, +L25_41if_f_id, +L21_127if_f_id, +L21_128w_t_id, +L21_129w_d_id, +L21_125if_f_id, +L21_130if_f_id, +L21_131w_t_id, +L21_132w_d_id, +L21_126if_d_id, +S_2690_Chain2DwordWrite_00000003_id, +L13_2670if_f_id, +S_2691_Chain2ModeXDwordWrite_00000003_id, +L13_2671if_f_id, +S_2692_Chain2DwordFill_00000003_id, +L13_2672if_f_id, +S_2693_Chain2ModeXDwordFill_00000003_id, +L13_2673if_f_id, +L21_133if_f_id, +L21_134w_t_id, +L21_135w_d_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_2662_Chain2ByteFill_00000002 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2662_Chain2ByteFill_00000002_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2662_Chain2ByteFill_00000002 = (IHPE)S_2662_Chain2ByteFill_00000002 ; +LOCAL IUH L13_2642if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2642if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2642if_f = (IHPE)L13_2642if_f ; +GLOBAL IUH S_2663_Chain2ModeXByteFill_00000002 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2663_Chain2ModeXByteFill_00000002_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2663_Chain2ModeXByteFill_00000002 = (IHPE)S_2663_Chain2ModeXByteFill_00000002 ; +LOCAL IUH L13_2643if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2643if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2643if_f = (IHPE)L13_2643if_f ; +LOCAL IUH L21_72if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_72if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_72if_f = (IHPE)L21_72if_f ; +LOCAL IUH L21_73w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_73w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_73w_t = (IHPE)L21_73w_t ; +LOCAL IUH L21_74w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_74w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_74w_d = (IHPE)L21_74w_d ; +LOCAL IUH L21_75if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_75if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_75if_f = (IHPE)L21_75if_f ; +GLOBAL IUH S_2664_Chain2ByteMove_00000002_Fwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2664_Chain2ByteMove_00000002_Fwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2664_Chain2ByteMove_00000002_Fwd = (IHPE)S_2664_Chain2ByteMove_00000002_Fwd ; +LOCAL IUH L13_2644if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2644if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2644if_f = (IHPE)L13_2644if_f ; +GLOBAL IUH S_2665_Chain2ModeXFwdByteMove_00000002 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2665_Chain2ModeXFwdByteMove_00000002_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2665_Chain2ModeXFwdByteMove_00000002 = (IHPE)S_2665_Chain2ModeXFwdByteMove_00000002 ; +LOCAL IUH L13_2645if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2645if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2645if_f = (IHPE)L13_2645if_f ; +LOCAL IUH L25_32if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_32if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_32if_f = (IHPE)L25_32if_f ; +LOCAL IUH L25_33if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_33if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_33if_f = (IHPE)L25_33if_f ; +LOCAL IUH L21_78if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_78if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_78if_f = (IHPE)L21_78if_f ; +LOCAL IUH L21_79w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_79w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_79w_t = (IHPE)L21_79w_t ; +LOCAL IUH L21_80w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_80w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_80w_d = (IHPE)L21_80w_d ; +LOCAL IUH L21_81if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_81if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_81if_f = (IHPE)L21_81if_f ; +LOCAL IUH L21_76if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_76if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_76if_f = (IHPE)L21_76if_f ; +LOCAL IUH L21_82if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_82if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_82if_f = (IHPE)L21_82if_f ; +LOCAL IUH L21_83w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_83w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_83w_t = (IHPE)L21_83w_t ; +LOCAL IUH L21_84w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_84w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_84w_d = (IHPE)L21_84w_d ; +LOCAL IUH L21_85if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_85if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_85if_f = (IHPE)L21_85if_f ; +LOCAL IUH L21_77if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_77if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_77if_d = (IHPE)L21_77if_d ; +GLOBAL IUH S_2666_Chain2WordWrite_00000002 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2666_Chain2WordWrite_00000002_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2666_Chain2WordWrite_00000002 = (IHPE)S_2666_Chain2WordWrite_00000002 ; +LOCAL IUH L13_2646if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2646if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2646if_f = (IHPE)L13_2646if_f ; +GLOBAL IUH S_2667_Chain2ModeXWordWrite_00000002 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2667_Chain2ModeXWordWrite_00000002_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2667_Chain2ModeXWordWrite_00000002 = (IHPE)S_2667_Chain2ModeXWordWrite_00000002 ; +LOCAL IUH L13_2647if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2647if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2647if_f = (IHPE)L13_2647if_f ; +LOCAL IUH L21_86if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_86if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_86if_f = (IHPE)L21_86if_f ; +LOCAL IUH L21_87if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_87if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_87if_d = (IHPE)L21_87if_d ; +GLOBAL IUH S_2668_Chain2WordFill_00000002 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2668_Chain2WordFill_00000002_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2668_Chain2WordFill_00000002 = (IHPE)S_2668_Chain2WordFill_00000002 ; +LOCAL IUH L13_2648if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2648if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2648if_f = (IHPE)L13_2648if_f ; +GLOBAL IUH S_2669_Chain2ModeXWordFill_00000002 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2669_Chain2ModeXWordFill_00000002_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2669_Chain2ModeXWordFill_00000002 = (IHPE)S_2669_Chain2ModeXWordFill_00000002 ; +LOCAL IUH L13_2649if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2649if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2649if_f = (IHPE)L13_2649if_f ; +LOCAL IUH L21_88if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_88if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_88if_f = (IHPE)L21_88if_f ; +LOCAL IUH L21_89w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_89w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_89w_t = (IHPE)L21_89w_t ; +LOCAL IUH L21_90w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_90w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_90w_d = (IHPE)L21_90w_d ; +GLOBAL IUH S_2670_Chain2WordMove_00000002_Fwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2670_Chain2WordMove_00000002_Fwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2670_Chain2WordMove_00000002_Fwd = (IHPE)S_2670_Chain2WordMove_00000002_Fwd ; +LOCAL IUH L13_2650if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2650if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2650if_f = (IHPE)L13_2650if_f ; +GLOBAL IUH S_2671_Chain2ModeXFwdWordMove_00000002 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2671_Chain2ModeXFwdWordMove_00000002_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2671_Chain2ModeXFwdWordMove_00000002 = (IHPE)S_2671_Chain2ModeXFwdWordMove_00000002 ; +LOCAL IUH L13_2651if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2651if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2651if_f = (IHPE)L13_2651if_f ; +LOCAL IUH L25_34if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_34if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_34if_f = (IHPE)L25_34if_f ; +LOCAL IUH L25_35if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_35if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_35if_f = (IHPE)L25_35if_f ; +LOCAL IUH L21_93if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_93if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_93if_f = (IHPE)L21_93if_f ; +LOCAL IUH L21_94w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_94w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_94w_t = (IHPE)L21_94w_t ; +LOCAL IUH L21_95w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_95w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_95w_d = (IHPE)L21_95w_d ; +LOCAL IUH L21_91if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_91if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_91if_f = (IHPE)L21_91if_f ; +LOCAL IUH L21_96if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_96if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_96if_f = (IHPE)L21_96if_f ; +LOCAL IUH L21_97w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_97w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_97w_t = (IHPE)L21_97w_t ; +LOCAL IUH L21_98w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_98w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_98w_d = (IHPE)L21_98w_d ; +LOCAL IUH L21_92if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_92if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_92if_d = (IHPE)L21_92if_d ; +GLOBAL IUH S_2672_Chain2DwordWrite_00000002 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2672_Chain2DwordWrite_00000002_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2672_Chain2DwordWrite_00000002 = (IHPE)S_2672_Chain2DwordWrite_00000002 ; +LOCAL IUH L13_2652if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2652if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2652if_f = (IHPE)L13_2652if_f ; +GLOBAL IUH S_2673_Chain2ModeXDwordWrite_00000002 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2673_Chain2ModeXDwordWrite_00000002_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2673_Chain2ModeXDwordWrite_00000002 = (IHPE)S_2673_Chain2ModeXDwordWrite_00000002 ; +LOCAL IUH L13_2653if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2653if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2653if_f = (IHPE)L13_2653if_f ; +GLOBAL IUH S_2674_Chain2DwordFill_00000002 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2674_Chain2DwordFill_00000002_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2674_Chain2DwordFill_00000002 = (IHPE)S_2674_Chain2DwordFill_00000002 ; +LOCAL IUH L13_2654if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2654if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2654if_f = (IHPE)L13_2654if_f ; +GLOBAL IUH S_2675_Chain2ModeXDwordFill_00000002 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2675_Chain2ModeXDwordFill_00000002_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2675_Chain2ModeXDwordFill_00000002 = (IHPE)S_2675_Chain2ModeXDwordFill_00000002 ; +LOCAL IUH L13_2655if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2655if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2655if_f = (IHPE)L13_2655if_f ; +LOCAL IUH L21_99if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_99if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_99if_f = (IHPE)L21_99if_f ; +LOCAL IUH L21_100w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_100w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_100w_t = (IHPE)L21_100w_t ; +LOCAL IUH L21_101w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_101w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_101w_d = (IHPE)L21_101w_d ; +GLOBAL IUH S_2676_Chain2DwordMove_00000002_Fwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2676_Chain2DwordMove_00000002_Fwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2676_Chain2DwordMove_00000002_Fwd = (IHPE)S_2676_Chain2DwordMove_00000002_Fwd ; +LOCAL IUH L13_2656if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2656if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2656if_f = (IHPE)L13_2656if_f ; +GLOBAL IUH S_2677_Chain2ModeXFwdDwordMove_00000002 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2677_Chain2ModeXFwdDwordMove_00000002_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2677_Chain2ModeXFwdDwordMove_00000002 = (IHPE)S_2677_Chain2ModeXFwdDwordMove_00000002 ; +LOCAL IUH L13_2657if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2657if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2657if_f = (IHPE)L13_2657if_f ; +GLOBAL IUH S_2678_Chain2ByteWrite_00000003 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2678_Chain2ByteWrite_00000003_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2678_Chain2ByteWrite_00000003 = (IHPE)S_2678_Chain2ByteWrite_00000003 ; +LOCAL IUH L13_2658if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2658if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2658if_f = (IHPE)L13_2658if_f ; +GLOBAL IUH S_2679_Chain2ModeXByteWrite_00000003 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2679_Chain2ModeXByteWrite_00000003_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2679_Chain2ModeXByteWrite_00000003 = (IHPE)S_2679_Chain2ModeXByteWrite_00000003 ; +LOCAL IUH L13_2659if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2659if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2659if_f = (IHPE)L13_2659if_f ; +LOCAL IUH L25_36if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_36if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_36if_f = (IHPE)L25_36if_f ; +LOCAL IUH L25_37if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_37if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_37if_f = (IHPE)L25_37if_f ; +LOCAL IUH L21_104if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_104if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_104if_f = (IHPE)L21_104if_f ; +LOCAL IUH L21_102if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_102if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_102if_f = (IHPE)L21_102if_f ; +LOCAL IUH L21_105if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_105if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_105if_f = (IHPE)L21_105if_f ; +LOCAL IUH L21_103if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_103if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_103if_d = (IHPE)L21_103if_d ; +GLOBAL IUH S_2680_Chain2ByteFill_00000003 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2680_Chain2ByteFill_00000003_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2680_Chain2ByteFill_00000003 = (IHPE)S_2680_Chain2ByteFill_00000003 ; +LOCAL IUH L13_2660if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2660if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2660if_f = (IHPE)L13_2660if_f ; +GLOBAL IUH S_2681_Chain2ModeXByteFill_00000003 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2681_Chain2ModeXByteFill_00000003_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2681_Chain2ModeXByteFill_00000003 = (IHPE)S_2681_Chain2ModeXByteFill_00000003 ; +LOCAL IUH L13_2661if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2661if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2661if_f = (IHPE)L13_2661if_f ; +LOCAL IUH L21_106if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_106if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_106if_f = (IHPE)L21_106if_f ; +LOCAL IUH L21_107w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_107w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_107w_t = (IHPE)L21_107w_t ; +LOCAL IUH L21_108w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_108w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_108w_d = (IHPE)L21_108w_d ; +LOCAL IUH L21_109if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_109if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_109if_f = (IHPE)L21_109if_f ; +GLOBAL IUH S_2682_Chain2ByteMove_00000003_Fwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2682_Chain2ByteMove_00000003_Fwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2682_Chain2ByteMove_00000003_Fwd = (IHPE)S_2682_Chain2ByteMove_00000003_Fwd ; +LOCAL IUH L13_2662if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2662if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2662if_f = (IHPE)L13_2662if_f ; +GLOBAL IUH S_2683_Chain2ModeXFwdByteMove_00000003 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2683_Chain2ModeXFwdByteMove_00000003_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2683_Chain2ModeXFwdByteMove_00000003 = (IHPE)S_2683_Chain2ModeXFwdByteMove_00000003 ; +LOCAL IUH L13_2663if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2663if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2663if_f = (IHPE)L13_2663if_f ; +LOCAL IUH L25_38if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_38if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_38if_f = (IHPE)L25_38if_f ; +LOCAL IUH L25_39if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_39if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_39if_f = (IHPE)L25_39if_f ; +LOCAL IUH L21_112if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_112if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_112if_f = (IHPE)L21_112if_f ; +LOCAL IUH L21_113w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_113w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_113w_t = (IHPE)L21_113w_t ; +LOCAL IUH L21_114w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_114w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_114w_d = (IHPE)L21_114w_d ; +LOCAL IUH L21_115if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_115if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_115if_f = (IHPE)L21_115if_f ; +LOCAL IUH L21_110if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_110if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_110if_f = (IHPE)L21_110if_f ; +LOCAL IUH L21_116if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_116if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_116if_f = (IHPE)L21_116if_f ; +LOCAL IUH L21_117w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_117w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_117w_t = (IHPE)L21_117w_t ; +LOCAL IUH L21_118w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_118w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_118w_d = (IHPE)L21_118w_d ; +LOCAL IUH L21_119if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_119if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_119if_f = (IHPE)L21_119if_f ; +LOCAL IUH L21_111if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_111if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_111if_d = (IHPE)L21_111if_d ; +GLOBAL IUH S_2684_Chain2WordWrite_00000003 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2684_Chain2WordWrite_00000003_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2684_Chain2WordWrite_00000003 = (IHPE)S_2684_Chain2WordWrite_00000003 ; +LOCAL IUH L13_2664if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2664if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2664if_f = (IHPE)L13_2664if_f ; +GLOBAL IUH S_2685_Chain2ModeXWordWrite_00000003 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2685_Chain2ModeXWordWrite_00000003_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2685_Chain2ModeXWordWrite_00000003 = (IHPE)S_2685_Chain2ModeXWordWrite_00000003 ; +LOCAL IUH L13_2665if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2665if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2665if_f = (IHPE)L13_2665if_f ; +LOCAL IUH L21_120if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_120if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_120if_f = (IHPE)L21_120if_f ; +LOCAL IUH L21_121if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_121if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_121if_d = (IHPE)L21_121if_d ; +GLOBAL IUH S_2686_Chain2WordFill_00000003 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2686_Chain2WordFill_00000003_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2686_Chain2WordFill_00000003 = (IHPE)S_2686_Chain2WordFill_00000003 ; +LOCAL IUH L13_2666if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2666if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2666if_f = (IHPE)L13_2666if_f ; +GLOBAL IUH S_2687_Chain2ModeXWordFill_00000003 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2687_Chain2ModeXWordFill_00000003_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2687_Chain2ModeXWordFill_00000003 = (IHPE)S_2687_Chain2ModeXWordFill_00000003 ; +LOCAL IUH L13_2667if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2667if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2667if_f = (IHPE)L13_2667if_f ; +LOCAL IUH L21_122if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_122if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_122if_f = (IHPE)L21_122if_f ; +LOCAL IUH L21_123w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_123w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_123w_t = (IHPE)L21_123w_t ; +LOCAL IUH L21_124w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_124w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_124w_d = (IHPE)L21_124w_d ; +GLOBAL IUH S_2688_Chain2WordMove_00000003_Fwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2688_Chain2WordMove_00000003_Fwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2688_Chain2WordMove_00000003_Fwd = (IHPE)S_2688_Chain2WordMove_00000003_Fwd ; +LOCAL IUH L13_2668if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2668if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2668if_f = (IHPE)L13_2668if_f ; +GLOBAL IUH S_2689_Chain2ModeXFwdWordMove_00000003 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2689_Chain2ModeXFwdWordMove_00000003_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2689_Chain2ModeXFwdWordMove_00000003 = (IHPE)S_2689_Chain2ModeXFwdWordMove_00000003 ; +LOCAL IUH L13_2669if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2669if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2669if_f = (IHPE)L13_2669if_f ; +LOCAL IUH L25_40if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_40if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_40if_f = (IHPE)L25_40if_f ; +LOCAL IUH L25_41if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_41if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_41if_f = (IHPE)L25_41if_f ; +LOCAL IUH L21_127if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_127if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_127if_f = (IHPE)L21_127if_f ; +LOCAL IUH L21_128w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_128w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_128w_t = (IHPE)L21_128w_t ; +LOCAL IUH L21_129w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_129w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_129w_d = (IHPE)L21_129w_d ; +LOCAL IUH L21_125if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_125if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_125if_f = (IHPE)L21_125if_f ; +LOCAL IUH L21_130if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_130if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_130if_f = (IHPE)L21_130if_f ; +LOCAL IUH L21_131w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_131w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_131w_t = (IHPE)L21_131w_t ; +LOCAL IUH L21_132w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_132w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_132w_d = (IHPE)L21_132w_d ; +LOCAL IUH L21_126if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_126if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_126if_d = (IHPE)L21_126if_d ; +GLOBAL IUH S_2690_Chain2DwordWrite_00000003 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2690_Chain2DwordWrite_00000003_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2690_Chain2DwordWrite_00000003 = (IHPE)S_2690_Chain2DwordWrite_00000003 ; +LOCAL IUH L13_2670if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2670if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2670if_f = (IHPE)L13_2670if_f ; +GLOBAL IUH S_2691_Chain2ModeXDwordWrite_00000003 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2691_Chain2ModeXDwordWrite_00000003_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2691_Chain2ModeXDwordWrite_00000003 = (IHPE)S_2691_Chain2ModeXDwordWrite_00000003 ; +LOCAL IUH L13_2671if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2671if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2671if_f = (IHPE)L13_2671if_f ; +GLOBAL IUH S_2692_Chain2DwordFill_00000003 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2692_Chain2DwordFill_00000003_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2692_Chain2DwordFill_00000003 = (IHPE)S_2692_Chain2DwordFill_00000003 ; +LOCAL IUH L13_2672if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2672if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2672if_f = (IHPE)L13_2672if_f ; +GLOBAL IUH S_2693_Chain2ModeXDwordFill_00000003 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2693_Chain2ModeXDwordFill_00000003_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2693_Chain2ModeXDwordFill_00000003 = (IHPE)S_2693_Chain2ModeXDwordFill_00000003 ; +LOCAL IUH L13_2673if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2673if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2673if_f = (IHPE)L13_2673if_f ; +LOCAL IUH L21_133if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_133if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_133if_f = (IHPE)L21_133if_f ; +LOCAL IUH L21_134w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_134w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_134w_t = (IHPE)L21_134w_t ; +LOCAL IUH L21_135w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_135w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_135w_d = (IHPE)L21_135w_d ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2662_Chain2ByteFill_00000002_id : + S_2662_Chain2ByteFill_00000002 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2662) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2642if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2642if_f_id : + L13_2642if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16504) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2663_Chain2ModeXByteFill_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2663_Chain2ModeXByteFill_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16505) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2663_Chain2ModeXByteFill_00000002_id : + S_2663_Chain2ModeXByteFill_00000002 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2663) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2643if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2643if_f_id : + L13_2643if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+4) + REGLONG) & (1 << *((IU32 *)&(r21) + REGLONG))) == 0) goto L21_72if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + case L21_72if_f_id : + L21_72if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L21_74w_d; + case L21_73w_t_id : + L21_73w_t: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L21_73w_t; + case L21_74w_d_id : + L21_74w_d: ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IS32 *)(LocalIUH+3) + REGLONG) != *((IS32 *)&(r20) + REGLONG)) goto L21_75if_f; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + case L21_75if_f_id : + L21_75if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2664_Chain2ByteMove_00000002_Fwd_id : + S_2664_Chain2ByteMove_00000002_Fwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2664) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2644if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2644if_f_id : + L13_2644if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16508) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2665_Chain2ModeXFwdByteMove_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2665_Chain2ModeXFwdByteMove_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16509) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2665_Chain2ModeXFwdByteMove_00000002_id : + S_2665_Chain2ModeXFwdByteMove_00000002 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 36 > 0 ) LocalIUH = (IUH *)malloc ( 36 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2665) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2645if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2645if_f_id : + L13_2645if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_32if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_32if_f_id : + L25_32if_f: ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(57343) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + if (*((IS32 *)&(r20) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )) goto L25_33if_f; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_33if_f_id : + L25_33if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L21_76if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+4) + REGLONG) & (1 << *((IU32 *)&(r21) + REGLONG))) == 0) goto L21_78if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + case L21_78if_f_id : + L21_78if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L21_80w_d; + case L21_79w_t_id : + L21_79w_t: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L21_79w_t; + case L21_80w_d_id : + L21_80w_d: ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IS32 *)(LocalIUH+5) + REGLONG) != *((IS32 *)&(r20) + REGLONG)) goto L21_81if_f; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + case L21_81if_f_id : + L21_81if_f: ; + { extern IUH L21_77if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_77if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_76if_f_id : + L21_76if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = (IS32)(0) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+4) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L21_82if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + case L21_82if_f_id : + L21_82if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_84w_d; + case L21_83w_t_id : + L21_83w_t: ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L21_83w_t; + case L21_84w_d_id : + L21_84w_d: ; + *((IUH *)&(r21)) = (IS32)(1) ; + if (*((IS32 *)(LocalIUH+5) + REGLONG) != *((IS32 *)&(r21) + REGLONG)) goto L21_85if_f; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + case L21_85if_f_id : + L21_85if_f: ; + case L21_77if_d_id : + L21_77if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2666_Chain2WordWrite_00000002_id : + S_2666_Chain2WordWrite_00000002 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2666) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2646if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2646if_f_id : + L13_2646if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2667_Chain2ModeXWordWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2667_Chain2ModeXWordWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2667_Chain2ModeXWordWrite_00000002_id : + S_2667_Chain2ModeXWordWrite_00000002 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2667) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2647if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2647if_f_id : + L13_2647if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+0) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L21_86if_f; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + { extern IUH L21_87if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_87if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_86if_f_id : + L21_86if_f: ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + case L21_87if_d_id : + L21_87if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2668_Chain2WordFill_00000002_id : + S_2668_Chain2WordFill_00000002 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2668) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2648if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2648if_f_id : + L13_2648if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16516) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2669_Chain2ModeXWordFill_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2669_Chain2ModeXWordFill_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16517) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2669_Chain2ModeXWordFill_00000002_id : + S_2669_Chain2ModeXWordFill_00000002 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 28 > 0 ) LocalIUH = (IUH *)malloc ( 28 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2669) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2649if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2649if_f_id : + L13_2649if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)(LocalIUH+5) + REGWORD) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+4) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L21_88if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) * *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r22)) = (IS32)(8) ; + *((IU16 *)&(r20) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +if(*((IU16 *)&(r22) + REGWORD )>=16) + CrulesRuntimeError("Bad Bit No"); + else + if(*((IU16 *)&(r22) + REGWORD )!=0) + *((IU16 *)&(r20) + REGWORD ) = (*((IU16 *)(LocalIUH+1) + REGWORD) << ((16) - *((IU16 *)&(r22) + REGWORD )) ) | (*((IU16 *)&(r20) + REGWORD ) >> *((IU16 *)&(r22) + REGWORD )); + *((IU16 *)&(r21) + REGWORD) = *((IU16 *)&(r20) + REGWORD) ; + *((IU16 *)(LocalIUH+5) + REGWORD) = *((IU16 *)&(r21) + REGWORD ) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + case L21_88if_f_id : + L21_88if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_90w_d; + case L21_89w_t_id : + L21_89w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+5) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2667_Chain2ModeXWordWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2667_Chain2ModeXWordWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L21_89w_t; + case L21_90w_d_id : + L21_90w_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2670_Chain2WordMove_00000002_Fwd_id : + S_2670_Chain2WordMove_00000002_Fwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2670) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2650if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2650if_f_id : + L13_2650if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16520) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2671_Chain2ModeXFwdWordMove_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2671_Chain2ModeXFwdWordMove_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16521) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2671_Chain2ModeXFwdWordMove_00000002_id : + S_2671_Chain2ModeXFwdWordMove_00000002 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 36 > 0 ) LocalIUH = (IUH *)malloc ( 36 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2671) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2651if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2651if_f_id : + L13_2651if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_34if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_34if_f_id : + L25_34if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1348) ; + if (*((IS32 *)&(r21) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_35if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) + *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_35if_f_id : + L25_35if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L21_91if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+5) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L21_93if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + case L21_93if_f_id : + L21_93if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_95w_d; + case L21_94w_t_id : + L21_94w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(-1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)&(r21)) = *((IUH *)&(r20)) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(*((IHPE *)&(r21)) )) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2667_Chain2ModeXWordWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2667_Chain2ModeXWordWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L21_94w_t; + case L21_95w_d_id : + L21_95w_d: ; + { extern IUH L21_92if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_92if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_91if_f_id : + L21_91if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = (IS32)(0) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+5) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L21_96if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) + *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + case L21_96if_f_id : + L21_96if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_98w_d; + case L21_97w_t_id : + L21_97w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1292) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2667_Chain2ModeXWordWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2667_Chain2ModeXWordWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L21_97w_t; + case L21_98w_d_id : + L21_98w_d: ; + case L21_92if_d_id : + L21_92if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2672_Chain2DwordWrite_00000002_id : + S_2672_Chain2DwordWrite_00000002 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2672) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2652if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2652if_f_id : + L13_2652if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16524) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2673_Chain2ModeXDwordWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2673_Chain2ModeXDwordWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16525) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2673_Chain2ModeXDwordWrite_00000002_id : + S_2673_Chain2ModeXDwordWrite_00000002 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2673) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2653if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2653if_f_id : + L13_2653if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2667_Chain2ModeXWordWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2667_Chain2ModeXWordWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2667_Chain2ModeXWordWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2667_Chain2ModeXWordWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2674_Chain2DwordFill_00000002_id : + S_2674_Chain2DwordFill_00000002 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2674) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2654if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2654if_f_id : + L13_2654if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16528) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2675_Chain2ModeXDwordFill_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2675_Chain2ModeXDwordFill_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16529) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2675_Chain2ModeXDwordFill_00000002_id : + S_2675_Chain2ModeXDwordFill_00000002 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 28 > 0 ) LocalIUH = (IUH *)malloc ( 28 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2675) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2655if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2655if_f_id : + L13_2655if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+4) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L21_99if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) * *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r22)) = (IS32)(8) ; + *((IU16 *)&(r20) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +if(*((IU16 *)&(r22) + REGWORD )>=16) + CrulesRuntimeError("Bad Bit No"); + else + if(*((IU16 *)&(r22) + REGWORD )!=0) + *((IU16 *)&(r20) + REGWORD ) = (*((IU16 *)(LocalIUH+1) + REGWORD) << ((16) - *((IU16 *)&(r22) + REGWORD )) ) | (*((IU16 *)&(r20) + REGWORD ) >> *((IU16 *)&(r22) + REGWORD )); + *((IU16 *)&(r21) + REGWORD) = *((IU16 *)&(r20) + REGWORD) ; + *((IU16 *)(LocalIUH+5) + REGWORD) = *((IU16 *)&(r21) + REGWORD ) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = (IS32)(8) ; +if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if(*((IU32 *)&(r20) + REGLONG)!=0) + *((IU32 *)&(r21) + REGLONG) = (*((IU32 *)&(r21) + REGLONG) << ((32) - *((IU32 *)&(r20) + REGLONG)) ) | (*((IU32 *)&(r21) + REGLONG) >> *((IU32 *)&(r20) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+5) + REGLONG) = (*((IU32 *)(LocalIUH+5) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r21) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2667_Chain2ModeXWordWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2667_Chain2ModeXWordWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + case L21_99if_f_id : + L21_99if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_101w_d; + case L21_100w_t_id : + L21_100w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16524) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2673_Chain2ModeXDwordWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2673_Chain2ModeXDwordWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16525) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L21_100w_t; + case L21_101w_d_id : + L21_101w_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2676_Chain2DwordMove_00000002_Fwd_id : + S_2676_Chain2DwordMove_00000002_Fwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2676) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2656if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2656if_f_id : + L13_2656if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16532) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2677_Chain2ModeXFwdDwordMove_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2677_Chain2ModeXFwdDwordMove_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16533) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2677_Chain2ModeXFwdDwordMove_00000002_id : + S_2677_Chain2ModeXFwdDwordMove_00000002 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2677) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2657if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2657if_f_id : + L13_2657if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16520) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2671_Chain2ModeXFwdWordMove_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2671_Chain2ModeXFwdWordMove_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16521) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2678_Chain2ByteWrite_00000003_id : + S_2678_Chain2ByteWrite_00000003 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2678) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2658if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2658if_f_id : + L13_2658if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2679_Chain2ModeXByteWrite_00000003_id : + S_2679_Chain2ModeXByteWrite_00000003 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2679) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2659if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2659if_f_id : + L13_2659if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_36if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_36if_f_id : + L25_36if_f: ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1348) ; + if (*((IS32 *)&(r21) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_37if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_37if_f_id : + L25_37if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+2) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+0) + REGLONG) & (1 << *((IU32 *)&(r21) + REGLONG))) == 0) goto L21_102if_f; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L21_104if_f; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r23)) = (IS32)(31) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r22) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+0) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(2) ; + if(*((IU32 *)&(r23) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r23) + REGLONG) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + case L21_104if_f_id : + L21_104if_f: ; + { extern IUH L21_103if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_103if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_102if_f_id : + L21_102if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L21_105if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r22)) = (IS32)(31) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+0) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + case L21_105if_f_id : + L21_105if_f: ; + case L21_103if_d_id : + L21_103if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2680_Chain2ByteFill_00000003_id : + S_2680_Chain2ByteFill_00000003 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2680) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2660if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2660if_f_id : + L13_2660if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16504) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2681_Chain2ModeXByteFill_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2681_Chain2ModeXByteFill_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16505) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2681_Chain2ModeXByteFill_00000003_id : + S_2681_Chain2ModeXByteFill_00000003 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2681) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2661if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2661if_f_id : + L13_2661if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+4) + REGLONG) & (1 << *((IU32 *)&(r21) + REGLONG))) == 0) goto L21_106if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + case L21_106if_f_id : + L21_106if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L21_108w_d; + case L21_107w_t_id : + L21_107w_t: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L21_107w_t; + case L21_108w_d_id : + L21_108w_d: ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IS32 *)(LocalIUH+3) + REGLONG) != *((IS32 *)&(r20) + REGLONG)) goto L21_109if_f; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + case L21_109if_f_id : + L21_109if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2682_Chain2ByteMove_00000003_Fwd_id : + S_2682_Chain2ByteMove_00000003_Fwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2682) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2662if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2662if_f_id : + L13_2662if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16508) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2683_Chain2ModeXFwdByteMove_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2683_Chain2ModeXFwdByteMove_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16509) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2683_Chain2ModeXFwdByteMove_00000003_id : + S_2683_Chain2ModeXFwdByteMove_00000003 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 36 > 0 ) LocalIUH = (IUH *)malloc ( 36 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2683) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2663if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2663if_f_id : + L13_2663if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_38if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_38if_f_id : + L25_38if_f: ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(57343) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + if (*((IS32 *)&(r20) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )) goto L25_39if_f; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_39if_f_id : + L25_39if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L21_110if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+4) + REGLONG) & (1 << *((IU32 *)&(r21) + REGLONG))) == 0) goto L21_112if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + case L21_112if_f_id : + L21_112if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L21_114w_d; + case L21_113w_t_id : + L21_113w_t: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L21_113w_t; + case L21_114w_d_id : + L21_114w_d: ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IS32 *)(LocalIUH+5) + REGLONG) != *((IS32 *)&(r20) + REGLONG)) goto L21_115if_f; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + case L21_115if_f_id : + L21_115if_f: ; + { extern IUH L21_111if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_111if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_110if_f_id : + L21_110if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = (IS32)(0) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+4) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L21_116if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + case L21_116if_f_id : + L21_116if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_118w_d; + case L21_117w_t_id : + L21_117w_t: ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L21_117w_t; + case L21_118w_d_id : + L21_118w_d: ; + *((IUH *)&(r21)) = (IS32)(1) ; + if (*((IS32 *)(LocalIUH+5) + REGLONG) != *((IS32 *)&(r21) + REGLONG)) goto L21_119if_f; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + case L21_119if_f_id : + L21_119if_f: ; + case L21_111if_d_id : + L21_111if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2684_Chain2WordWrite_00000003_id : + S_2684_Chain2WordWrite_00000003 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2684) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2664if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2664if_f_id : + L13_2664if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2685_Chain2ModeXWordWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2685_Chain2ModeXWordWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2685_Chain2ModeXWordWrite_00000003_id : + S_2685_Chain2ModeXWordWrite_00000003 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2685) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2665if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2665if_f_id : + L13_2665if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+0) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L21_120if_f; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + { extern IUH L21_121if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_121if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_120if_f_id : + L21_120if_f: ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + case L21_121if_d_id : + L21_121if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2686_Chain2WordFill_00000003_id : + S_2686_Chain2WordFill_00000003 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2686) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2666if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2666if_f_id : + L13_2666if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16516) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2687_Chain2ModeXWordFill_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2687_Chain2ModeXWordFill_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16517) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2687_Chain2ModeXWordFill_00000003_id : + S_2687_Chain2ModeXWordFill_00000003 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 28 > 0 ) LocalIUH = (IUH *)malloc ( 28 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2687) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2667if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2667if_f_id : + L13_2667if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)(LocalIUH+5) + REGWORD) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+4) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L21_122if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) * *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *(UOFF_15_8( (LocalIUH+1) )) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r22)) = (IS32)(8) ; + *((IU16 *)&(r20) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +if(*((IU16 *)&(r22) + REGWORD )>=16) + CrulesRuntimeError("Bad Bit No"); + else + if(*((IU16 *)&(r22) + REGWORD )!=0) + *((IU16 *)&(r20) + REGWORD ) = (*((IU16 *)(LocalIUH+1) + REGWORD) << ((16) - *((IU16 *)&(r22) + REGWORD )) ) | (*((IU16 *)&(r20) + REGWORD ) >> *((IU16 *)&(r22) + REGWORD )); + *((IU16 *)&(r21) + REGWORD) = *((IU16 *)&(r20) + REGWORD) ; + *((IU16 *)(LocalIUH+5) + REGWORD) = *((IU16 *)&(r21) + REGWORD ) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + case L21_122if_f_id : + L21_122if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_124w_d; + case L21_123w_t_id : + L21_123w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+5) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2685_Chain2ModeXWordWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2685_Chain2ModeXWordWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L21_123w_t; + case L21_124w_d_id : + L21_124w_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2688_Chain2WordMove_00000003_Fwd_id : + S_2688_Chain2WordMove_00000003_Fwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2688) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2668if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2668if_f_id : + L13_2668if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16520) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2689_Chain2ModeXFwdWordMove_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2689_Chain2ModeXFwdWordMove_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16521) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2689_Chain2ModeXFwdWordMove_00000003_id : + S_2689_Chain2ModeXFwdWordMove_00000003 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 36 > 0 ) LocalIUH = (IUH *)malloc ( 36 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2689) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2669if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2669if_f_id : + L13_2669if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_40if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_40if_f_id : + L25_40if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1348) ; + if (*((IS32 *)&(r21) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_41if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) + *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_41if_f_id : + L25_41if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L21_125if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+5) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L21_127if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + case L21_127if_f_id : + L21_127if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_129w_d; + case L21_128w_t_id : + L21_128w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(-1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)&(r21)) = *((IUH *)&(r20)) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(*((IHPE *)&(r21)) )) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2685_Chain2ModeXWordWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2685_Chain2ModeXWordWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L21_128w_t; + case L21_129w_d_id : + L21_129w_d: ; + { extern IUH L21_126if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_126if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_125if_f_id : + L21_125if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = (IS32)(0) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+5) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L21_130if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) + *((IU32 *)(LocalIUH+8) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + case L21_130if_f_id : + L21_130if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_132w_d; + case L21_131w_t_id : + L21_131w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1292) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2685_Chain2ModeXWordWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2685_Chain2ModeXWordWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L21_131w_t; + case L21_132w_d_id : + L21_132w_d: ; + case L21_126if_d_id : + L21_126if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2690_Chain2DwordWrite_00000003_id : + S_2690_Chain2DwordWrite_00000003 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2690) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2670if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2670if_f_id : + L13_2670if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16524) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2691_Chain2ModeXDwordWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2691_Chain2ModeXDwordWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16525) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2691_Chain2ModeXDwordWrite_00000003_id : + S_2691_Chain2ModeXDwordWrite_00000003 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2691) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2671if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2671if_f_id : + L13_2671if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2685_Chain2ModeXWordWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2685_Chain2ModeXWordWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2685_Chain2ModeXWordWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2685_Chain2ModeXWordWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2692_Chain2DwordFill_00000003_id : + S_2692_Chain2DwordFill_00000003 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2692) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2672if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2672if_f_id : + L13_2672if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16528) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2693_Chain2ModeXDwordFill_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2693_Chain2ModeXDwordFill_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16529) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2693_Chain2ModeXDwordFill_00000003_id : + S_2693_Chain2ModeXDwordFill_00000003 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 28 > 0 ) LocalIUH = (IUH *)malloc ( 28 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2693) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2673if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2673if_f_id : + L13_2673if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+4) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L21_133if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) * *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(24) ; + *((IUH *)&(r22)) = (IS32)(8) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)&(r20) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r22)) = (IS32)(8) ; + *((IU16 *)&(r20) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +if(*((IU16 *)&(r22) + REGWORD )>=16) + CrulesRuntimeError("Bad Bit No"); + else + if(*((IU16 *)&(r22) + REGWORD )!=0) + *((IU16 *)&(r20) + REGWORD ) = (*((IU16 *)(LocalIUH+1) + REGWORD) << ((16) - *((IU16 *)&(r22) + REGWORD )) ) | (*((IU16 *)&(r20) + REGWORD ) >> *((IU16 *)&(r22) + REGWORD )); + *((IU16 *)&(r21) + REGWORD) = *((IU16 *)&(r20) + REGWORD) ; + *((IU16 *)(LocalIUH+5) + REGWORD) = *((IU16 *)&(r21) + REGWORD ) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = (IS32)(8) ; +if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if(*((IU32 *)&(r20) + REGLONG)!=0) + *((IU32 *)&(r21) + REGLONG) = (*((IU32 *)&(r21) + REGLONG) << ((32) - *((IU32 *)&(r20) + REGLONG)) ) | (*((IU32 *)&(r21) + REGLONG) >> *((IU32 *)&(r20) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(16) ; + *((IUH *)&(r23)) = (IS32)(16) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)(LocalIUH+5) + REGLONG) = (*((IU32 *)(LocalIUH+5) + REGLONG) & ~mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)) )) | ((*((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG)) & mask((IUH)(*((IU32 *)&(r22) + REGLONG)), (IUH)(*((IU32 *)&(r23) + REGLONG)))) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r21) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2685_Chain2ModeXWordWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2685_Chain2ModeXWordWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; + *((IUH *)&(r20)) = (IS32)(8) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + case L21_133if_f_id : + L21_133if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_135w_d; + case L21_134w_t_id : + L21_134w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16524) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2691_Chain2ModeXDwordWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2691_Chain2ModeXDwordWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16525) ; + *((IUH *)&(r21)) = (IS32)(8) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L21_134w_t; + case L21_135w_d_id : + L21_135w_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid019.c b/private/mvdm/softpc.new/base/cvidc/sevid019.c new file mode 100644 index 000000000..3e3a01dda --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid019.c @@ -0,0 +1,4591 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_2694_Chain2DwordMove_00000003_Fwd_id, +L13_2674if_f_id, +S_2695_Chain2ModeXFwdDwordMove_00000003_id, +L13_2675if_f_id, +S_2696_Chain2ByteWrite_Copy_id, +L13_2676if_f_id, +L25_42if_f_id, +L25_43if_f_id, +S_2697_Chain2ByteFill_Copy_id, +L13_2677if_f_id, +L25_44if_f_id, +L25_45if_f_id, +L21_136if_f_id, +L21_137if_d_id, +L21_138w_t_id, +L21_139w_d_id, +S_2698_Chain2ByteMove_Copy_Fwd_id, +L13_2678if_f_id, +L25_46if_f_id, +L25_47if_f_id, +L21_142if_f_id, +L21_143if_d_id, +L21_144w_t_id, +L21_145w_d_id, +L21_140if_f_id, +L21_146if_f_id, +L21_147if_d_id, +L21_148if_f_id, +L21_149if_d_id, +L21_150w_t_id, +L21_151w_d_id, +L21_141if_d_id, +S_2699_Chain2WordWrite_Copy_id, +L13_2679if_f_id, +L25_48if_f_id, +L25_49if_f_id, +L21_152if_f_id, +L21_153if_d_id, +S_2700_Chain2WordFill_Copy_id, +L13_2680if_f_id, +L25_50if_f_id, +L25_51if_f_id, +L21_156w_t_id, +L21_157w_d_id, +L21_154if_f_id, +L21_158w_t_id, +L21_159w_d_id, +L21_155if_d_id, +S_2701_Chain2WordMove_Copy_Fwd_id, +L13_2681if_f_id, +S_2702_Chain2DwordWrite_Copy_id, +L13_2682if_f_id, +L25_52if_f_id, +L25_53if_f_id, +L21_160if_f_id, +L21_161if_d_id, +S_2703_Chain2DwordFill_Copy_id, +L13_2683if_f_id, +L25_54if_f_id, +L25_55if_f_id, +L21_162if_f_id, +L21_163if_d_id, +L21_164w_t_id, +L21_165w_d_id, +S_2704_Chain2DwordMove_Copy_Fwd_id, +L13_2684if_f_id, +S_2705_Chain2ByteMove_00000000_Bwd_id, +L13_2685if_f_id, +S_2706_Chain2ModeXBwdByteMove_00000000_id, +L13_2686if_f_id, +L25_56if_f_id, +L25_57if_f_id, +L21_168if_f_id, +L21_169w_t_id, +L21_170w_d_id, +L21_171if_f_id, +L21_166if_f_id, +L21_172if_f_id, +L21_173w_t_id, +L21_174w_d_id, +L21_175if_f_id, +L21_167if_d_id, +S_2707_Chain2WordMove_00000000_Bwd_id, +L13_2687if_f_id, +S_2708_Chain2ModeXBwdWordMove_00000000_id, +L13_2688if_f_id, +L25_58if_f_id, +L25_59if_f_id, +L21_178if_f_id, +L21_179w_t_id, +L21_180w_d_id, +L21_176if_f_id, +L21_181if_f_id, +L21_182w_t_id, +L21_183w_d_id, +L21_177if_d_id, +S_2709_Chain2DwordMove_00000000_Bwd_id, +L13_2689if_f_id, +S_2710_Chain2ModeXBwdDwordMove_00000000_id, +L13_2690if_f_id, +S_2711_Chain2ByteMove_00000001_Bwd_id, +L13_2691if_f_id, +S_2712_Chain2ModeXBwdByteMove_00000001_id, +L13_2692if_f_id, +L25_60if_f_id, +L25_61if_f_id, +L21_186if_f_id, +L21_187w_t_id, +L21_188w_d_id, +L21_189if_f_id, +L21_184if_f_id, +L21_190if_f_id, +L21_191w_t_id, +L21_192w_d_id, +L21_193if_f_id, +L21_185if_d_id, +S_2713_Chain2WordMove_00000001_Bwd_id, +L13_2693if_f_id, +S_2714_Chain2ModeXBwdWordMove_00000001_id, +L13_2694if_f_id, +L25_62if_f_id, +L25_63if_f_id, +L21_196if_f_id, +L21_197w_t_id, +L21_198w_d_id, +L21_194if_f_id, +L21_199if_f_id, +L21_200w_t_id, +L21_201w_d_id, +L21_195if_d_id, +S_2715_Chain2DwordMove_00000001_Bwd_id, +L13_2695if_f_id, +S_2716_Chain2ModeXBwdDwordMove_00000001_id, +L13_2696if_f_id, +S_2717_Chain2ByteMove_00000002_Bwd_id, +L13_2697if_f_id, +S_2718_Chain2ModeXBwdByteMove_00000002_id, +L13_2698if_f_id, +L25_64if_f_id, +L25_65if_f_id, +L21_204if_f_id, +L21_205w_t_id, +L21_206w_d_id, +L21_207if_f_id, +L21_202if_f_id, +L21_208if_f_id, +L21_209w_t_id, +L21_210w_d_id, +L21_211if_f_id, +L21_203if_d_id, +S_2719_Chain2WordMove_00000002_Bwd_id, +L13_2699if_f_id, +S_2720_Chain2ModeXBwdWordMove_00000002_id, +L13_2700if_f_id, +L25_66if_f_id, +L25_67if_f_id, +L21_214if_f_id, +L21_215w_t_id, +L21_216w_d_id, +L21_212if_f_id, +L21_217if_f_id, +L21_218w_t_id, +L21_219w_d_id, +L21_213if_d_id, +S_2721_Chain2DwordMove_00000002_Bwd_id, +L13_2701if_f_id, +S_2722_Chain2ModeXBwdDwordMove_00000002_id, +L13_2702if_f_id, +S_2723_Chain2ByteMove_00000003_Bwd_id, +L13_2703if_f_id, +S_2724_Chain2ModeXBwdByteMove_00000003_id, +L13_2704if_f_id, +L25_68if_f_id, +L25_69if_f_id, +L21_222if_f_id, +L21_223w_t_id, +L21_224w_d_id, +L21_225if_f_id, +L21_220if_f_id, +L21_226if_f_id, +L21_227w_t_id, +L21_228w_d_id, +L21_229if_f_id, +L21_221if_d_id, +S_2725_Chain2WordMove_00000003_Bwd_id, +L13_2705if_f_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_2694_Chain2DwordMove_00000003_Fwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2694_Chain2DwordMove_00000003_Fwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2694_Chain2DwordMove_00000003_Fwd = (IHPE)S_2694_Chain2DwordMove_00000003_Fwd ; +LOCAL IUH L13_2674if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2674if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2674if_f = (IHPE)L13_2674if_f ; +GLOBAL IUH S_2695_Chain2ModeXFwdDwordMove_00000003 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2695_Chain2ModeXFwdDwordMove_00000003_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2695_Chain2ModeXFwdDwordMove_00000003 = (IHPE)S_2695_Chain2ModeXFwdDwordMove_00000003 ; +LOCAL IUH L13_2675if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2675if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2675if_f = (IHPE)L13_2675if_f ; +GLOBAL IUH S_2696_Chain2ByteWrite_Copy IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2696_Chain2ByteWrite_Copy_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2696_Chain2ByteWrite_Copy = (IHPE)S_2696_Chain2ByteWrite_Copy ; +LOCAL IUH L13_2676if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2676if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2676if_f = (IHPE)L13_2676if_f ; +LOCAL IUH L25_42if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_42if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_42if_f = (IHPE)L25_42if_f ; +LOCAL IUH L25_43if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_43if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_43if_f = (IHPE)L25_43if_f ; +GLOBAL IUH S_2697_Chain2ByteFill_Copy IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2697_Chain2ByteFill_Copy_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2697_Chain2ByteFill_Copy = (IHPE)S_2697_Chain2ByteFill_Copy ; +LOCAL IUH L13_2677if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2677if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2677if_f = (IHPE)L13_2677if_f ; +LOCAL IUH L25_44if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_44if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_44if_f = (IHPE)L25_44if_f ; +LOCAL IUH L25_45if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_45if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_45if_f = (IHPE)L25_45if_f ; +LOCAL IUH L21_136if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_136if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_136if_f = (IHPE)L21_136if_f ; +LOCAL IUH L21_137if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_137if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_137if_d = (IHPE)L21_137if_d ; +LOCAL IUH L21_138w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_138w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_138w_t = (IHPE)L21_138w_t ; +LOCAL IUH L21_139w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_139w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_139w_d = (IHPE)L21_139w_d ; +GLOBAL IUH S_2698_Chain2ByteMove_Copy_Fwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2698_Chain2ByteMove_Copy_Fwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2698_Chain2ByteMove_Copy_Fwd = (IHPE)S_2698_Chain2ByteMove_Copy_Fwd ; +LOCAL IUH L13_2678if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2678if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2678if_f = (IHPE)L13_2678if_f ; +LOCAL IUH L25_46if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_46if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_46if_f = (IHPE)L25_46if_f ; +LOCAL IUH L25_47if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_47if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_47if_f = (IHPE)L25_47if_f ; +LOCAL IUH L21_142if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_142if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_142if_f = (IHPE)L21_142if_f ; +LOCAL IUH L21_143if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_143if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_143if_d = (IHPE)L21_143if_d ; +LOCAL IUH L21_144w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_144w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_144w_t = (IHPE)L21_144w_t ; +LOCAL IUH L21_145w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_145w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_145w_d = (IHPE)L21_145w_d ; +LOCAL IUH L21_140if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_140if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_140if_f = (IHPE)L21_140if_f ; +LOCAL IUH L21_146if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_146if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_146if_f = (IHPE)L21_146if_f ; +LOCAL IUH L21_147if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_147if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_147if_d = (IHPE)L21_147if_d ; +LOCAL IUH L21_148if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_148if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_148if_f = (IHPE)L21_148if_f ; +LOCAL IUH L21_149if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_149if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_149if_d = (IHPE)L21_149if_d ; +LOCAL IUH L21_150w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_150w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_150w_t = (IHPE)L21_150w_t ; +LOCAL IUH L21_151w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_151w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_151w_d = (IHPE)L21_151w_d ; +LOCAL IUH L21_141if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_141if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_141if_d = (IHPE)L21_141if_d ; +GLOBAL IUH S_2699_Chain2WordWrite_Copy IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2699_Chain2WordWrite_Copy_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2699_Chain2WordWrite_Copy = (IHPE)S_2699_Chain2WordWrite_Copy ; +LOCAL IUH L13_2679if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2679if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2679if_f = (IHPE)L13_2679if_f ; +LOCAL IUH L25_48if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_48if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_48if_f = (IHPE)L25_48if_f ; +LOCAL IUH L25_49if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_49if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_49if_f = (IHPE)L25_49if_f ; +LOCAL IUH L21_152if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_152if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_152if_f = (IHPE)L21_152if_f ; +LOCAL IUH L21_153if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_153if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_153if_d = (IHPE)L21_153if_d ; +GLOBAL IUH S_2700_Chain2WordFill_Copy IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2700_Chain2WordFill_Copy_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2700_Chain2WordFill_Copy = (IHPE)S_2700_Chain2WordFill_Copy ; +LOCAL IUH L13_2680if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2680if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2680if_f = (IHPE)L13_2680if_f ; +LOCAL IUH L25_50if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_50if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_50if_f = (IHPE)L25_50if_f ; +LOCAL IUH L25_51if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_51if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_51if_f = (IHPE)L25_51if_f ; +LOCAL IUH L21_156w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_156w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_156w_t = (IHPE)L21_156w_t ; +LOCAL IUH L21_157w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_157w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_157w_d = (IHPE)L21_157w_d ; +LOCAL IUH L21_154if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_154if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_154if_f = (IHPE)L21_154if_f ; +LOCAL IUH L21_158w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_158w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_158w_t = (IHPE)L21_158w_t ; +LOCAL IUH L21_159w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_159w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_159w_d = (IHPE)L21_159w_d ; +LOCAL IUH L21_155if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_155if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_155if_d = (IHPE)L21_155if_d ; +GLOBAL IUH S_2701_Chain2WordMove_Copy_Fwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2701_Chain2WordMove_Copy_Fwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2701_Chain2WordMove_Copy_Fwd = (IHPE)S_2701_Chain2WordMove_Copy_Fwd ; +LOCAL IUH L13_2681if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2681if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2681if_f = (IHPE)L13_2681if_f ; +GLOBAL IUH S_2702_Chain2DwordWrite_Copy IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2702_Chain2DwordWrite_Copy_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2702_Chain2DwordWrite_Copy = (IHPE)S_2702_Chain2DwordWrite_Copy ; +LOCAL IUH L13_2682if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2682if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2682if_f = (IHPE)L13_2682if_f ; +LOCAL IUH L25_52if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_52if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_52if_f = (IHPE)L25_52if_f ; +LOCAL IUH L25_53if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_53if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_53if_f = (IHPE)L25_53if_f ; +LOCAL IUH L21_160if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_160if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_160if_f = (IHPE)L21_160if_f ; +LOCAL IUH L21_161if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_161if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_161if_d = (IHPE)L21_161if_d ; +GLOBAL IUH S_2703_Chain2DwordFill_Copy IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2703_Chain2DwordFill_Copy_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2703_Chain2DwordFill_Copy = (IHPE)S_2703_Chain2DwordFill_Copy ; +LOCAL IUH L13_2683if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2683if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2683if_f = (IHPE)L13_2683if_f ; +LOCAL IUH L25_54if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_54if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_54if_f = (IHPE)L25_54if_f ; +LOCAL IUH L25_55if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_55if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_55if_f = (IHPE)L25_55if_f ; +LOCAL IUH L21_162if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_162if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_162if_f = (IHPE)L21_162if_f ; +LOCAL IUH L21_163if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_163if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_163if_d = (IHPE)L21_163if_d ; +LOCAL IUH L21_164w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_164w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_164w_t = (IHPE)L21_164w_t ; +LOCAL IUH L21_165w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_165w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_165w_d = (IHPE)L21_165w_d ; +GLOBAL IUH S_2704_Chain2DwordMove_Copy_Fwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2704_Chain2DwordMove_Copy_Fwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2704_Chain2DwordMove_Copy_Fwd = (IHPE)S_2704_Chain2DwordMove_Copy_Fwd ; +LOCAL IUH L13_2684if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2684if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2684if_f = (IHPE)L13_2684if_f ; +GLOBAL IUH S_2705_Chain2ByteMove_00000000_Bwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2705_Chain2ByteMove_00000000_Bwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2705_Chain2ByteMove_00000000_Bwd = (IHPE)S_2705_Chain2ByteMove_00000000_Bwd ; +LOCAL IUH L13_2685if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2685if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2685if_f = (IHPE)L13_2685if_f ; +GLOBAL IUH S_2706_Chain2ModeXBwdByteMove_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2706_Chain2ModeXBwdByteMove_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2706_Chain2ModeXBwdByteMove_00000000 = (IHPE)S_2706_Chain2ModeXBwdByteMove_00000000 ; +LOCAL IUH L13_2686if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2686if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2686if_f = (IHPE)L13_2686if_f ; +LOCAL IUH L25_56if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_56if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_56if_f = (IHPE)L25_56if_f ; +LOCAL IUH L25_57if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_57if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_57if_f = (IHPE)L25_57if_f ; +LOCAL IUH L21_168if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_168if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_168if_f = (IHPE)L21_168if_f ; +LOCAL IUH L21_169w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_169w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_169w_t = (IHPE)L21_169w_t ; +LOCAL IUH L21_170w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_170w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_170w_d = (IHPE)L21_170w_d ; +LOCAL IUH L21_171if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_171if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_171if_f = (IHPE)L21_171if_f ; +LOCAL IUH L21_166if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_166if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_166if_f = (IHPE)L21_166if_f ; +LOCAL IUH L21_172if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_172if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_172if_f = (IHPE)L21_172if_f ; +LOCAL IUH L21_173w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_173w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_173w_t = (IHPE)L21_173w_t ; +LOCAL IUH L21_174w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_174w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_174w_d = (IHPE)L21_174w_d ; +LOCAL IUH L21_175if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_175if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_175if_f = (IHPE)L21_175if_f ; +LOCAL IUH L21_167if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_167if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_167if_d = (IHPE)L21_167if_d ; +GLOBAL IUH S_2707_Chain2WordMove_00000000_Bwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2707_Chain2WordMove_00000000_Bwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2707_Chain2WordMove_00000000_Bwd = (IHPE)S_2707_Chain2WordMove_00000000_Bwd ; +LOCAL IUH L13_2687if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2687if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2687if_f = (IHPE)L13_2687if_f ; +GLOBAL IUH S_2708_Chain2ModeXBwdWordMove_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2708_Chain2ModeXBwdWordMove_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2708_Chain2ModeXBwdWordMove_00000000 = (IHPE)S_2708_Chain2ModeXBwdWordMove_00000000 ; +LOCAL IUH L13_2688if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2688if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2688if_f = (IHPE)L13_2688if_f ; +LOCAL IUH L25_58if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_58if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_58if_f = (IHPE)L25_58if_f ; +LOCAL IUH L25_59if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_59if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_59if_f = (IHPE)L25_59if_f ; +LOCAL IUH L21_178if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_178if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_178if_f = (IHPE)L21_178if_f ; +LOCAL IUH L21_179w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_179w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_179w_t = (IHPE)L21_179w_t ; +LOCAL IUH L21_180w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_180w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_180w_d = (IHPE)L21_180w_d ; +LOCAL IUH L21_176if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_176if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_176if_f = (IHPE)L21_176if_f ; +LOCAL IUH L21_181if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_181if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_181if_f = (IHPE)L21_181if_f ; +LOCAL IUH L21_182w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_182w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_182w_t = (IHPE)L21_182w_t ; +LOCAL IUH L21_183w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_183w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_183w_d = (IHPE)L21_183w_d ; +LOCAL IUH L21_177if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_177if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_177if_d = (IHPE)L21_177if_d ; +GLOBAL IUH S_2709_Chain2DwordMove_00000000_Bwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2709_Chain2DwordMove_00000000_Bwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2709_Chain2DwordMove_00000000_Bwd = (IHPE)S_2709_Chain2DwordMove_00000000_Bwd ; +LOCAL IUH L13_2689if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2689if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2689if_f = (IHPE)L13_2689if_f ; +GLOBAL IUH S_2710_Chain2ModeXBwdDwordMove_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2710_Chain2ModeXBwdDwordMove_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2710_Chain2ModeXBwdDwordMove_00000000 = (IHPE)S_2710_Chain2ModeXBwdDwordMove_00000000 ; +LOCAL IUH L13_2690if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2690if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2690if_f = (IHPE)L13_2690if_f ; +GLOBAL IUH S_2711_Chain2ByteMove_00000001_Bwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2711_Chain2ByteMove_00000001_Bwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2711_Chain2ByteMove_00000001_Bwd = (IHPE)S_2711_Chain2ByteMove_00000001_Bwd ; +LOCAL IUH L13_2691if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2691if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2691if_f = (IHPE)L13_2691if_f ; +GLOBAL IUH S_2712_Chain2ModeXBwdByteMove_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2712_Chain2ModeXBwdByteMove_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2712_Chain2ModeXBwdByteMove_00000001 = (IHPE)S_2712_Chain2ModeXBwdByteMove_00000001 ; +LOCAL IUH L13_2692if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2692if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2692if_f = (IHPE)L13_2692if_f ; +LOCAL IUH L25_60if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_60if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_60if_f = (IHPE)L25_60if_f ; +LOCAL IUH L25_61if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_61if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_61if_f = (IHPE)L25_61if_f ; +LOCAL IUH L21_186if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_186if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_186if_f = (IHPE)L21_186if_f ; +LOCAL IUH L21_187w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_187w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_187w_t = (IHPE)L21_187w_t ; +LOCAL IUH L21_188w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_188w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_188w_d = (IHPE)L21_188w_d ; +LOCAL IUH L21_189if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_189if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_189if_f = (IHPE)L21_189if_f ; +LOCAL IUH L21_184if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_184if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_184if_f = (IHPE)L21_184if_f ; +LOCAL IUH L21_190if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_190if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_190if_f = (IHPE)L21_190if_f ; +LOCAL IUH L21_191w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_191w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_191w_t = (IHPE)L21_191w_t ; +LOCAL IUH L21_192w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_192w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_192w_d = (IHPE)L21_192w_d ; +LOCAL IUH L21_193if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_193if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_193if_f = (IHPE)L21_193if_f ; +LOCAL IUH L21_185if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_185if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_185if_d = (IHPE)L21_185if_d ; +GLOBAL IUH S_2713_Chain2WordMove_00000001_Bwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2713_Chain2WordMove_00000001_Bwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2713_Chain2WordMove_00000001_Bwd = (IHPE)S_2713_Chain2WordMove_00000001_Bwd ; +LOCAL IUH L13_2693if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2693if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2693if_f = (IHPE)L13_2693if_f ; +GLOBAL IUH S_2714_Chain2ModeXBwdWordMove_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2714_Chain2ModeXBwdWordMove_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2714_Chain2ModeXBwdWordMove_00000001 = (IHPE)S_2714_Chain2ModeXBwdWordMove_00000001 ; +LOCAL IUH L13_2694if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2694if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2694if_f = (IHPE)L13_2694if_f ; +LOCAL IUH L25_62if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_62if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_62if_f = (IHPE)L25_62if_f ; +LOCAL IUH L25_63if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_63if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_63if_f = (IHPE)L25_63if_f ; +LOCAL IUH L21_196if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_196if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_196if_f = (IHPE)L21_196if_f ; +LOCAL IUH L21_197w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_197w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_197w_t = (IHPE)L21_197w_t ; +LOCAL IUH L21_198w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_198w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_198w_d = (IHPE)L21_198w_d ; +LOCAL IUH L21_194if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_194if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_194if_f = (IHPE)L21_194if_f ; +LOCAL IUH L21_199if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_199if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_199if_f = (IHPE)L21_199if_f ; +LOCAL IUH L21_200w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_200w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_200w_t = (IHPE)L21_200w_t ; +LOCAL IUH L21_201w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_201w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_201w_d = (IHPE)L21_201w_d ; +LOCAL IUH L21_195if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_195if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_195if_d = (IHPE)L21_195if_d ; +GLOBAL IUH S_2715_Chain2DwordMove_00000001_Bwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2715_Chain2DwordMove_00000001_Bwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2715_Chain2DwordMove_00000001_Bwd = (IHPE)S_2715_Chain2DwordMove_00000001_Bwd ; +LOCAL IUH L13_2695if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2695if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2695if_f = (IHPE)L13_2695if_f ; +GLOBAL IUH S_2716_Chain2ModeXBwdDwordMove_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2716_Chain2ModeXBwdDwordMove_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2716_Chain2ModeXBwdDwordMove_00000001 = (IHPE)S_2716_Chain2ModeXBwdDwordMove_00000001 ; +LOCAL IUH L13_2696if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2696if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2696if_f = (IHPE)L13_2696if_f ; +GLOBAL IUH S_2717_Chain2ByteMove_00000002_Bwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2717_Chain2ByteMove_00000002_Bwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2717_Chain2ByteMove_00000002_Bwd = (IHPE)S_2717_Chain2ByteMove_00000002_Bwd ; +LOCAL IUH L13_2697if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2697if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2697if_f = (IHPE)L13_2697if_f ; +GLOBAL IUH S_2718_Chain2ModeXBwdByteMove_00000002 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2718_Chain2ModeXBwdByteMove_00000002_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2718_Chain2ModeXBwdByteMove_00000002 = (IHPE)S_2718_Chain2ModeXBwdByteMove_00000002 ; +LOCAL IUH L13_2698if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2698if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2698if_f = (IHPE)L13_2698if_f ; +LOCAL IUH L25_64if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_64if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_64if_f = (IHPE)L25_64if_f ; +LOCAL IUH L25_65if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_65if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_65if_f = (IHPE)L25_65if_f ; +LOCAL IUH L21_204if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_204if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_204if_f = (IHPE)L21_204if_f ; +LOCAL IUH L21_205w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_205w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_205w_t = (IHPE)L21_205w_t ; +LOCAL IUH L21_206w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_206w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_206w_d = (IHPE)L21_206w_d ; +LOCAL IUH L21_207if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_207if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_207if_f = (IHPE)L21_207if_f ; +LOCAL IUH L21_202if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_202if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_202if_f = (IHPE)L21_202if_f ; +LOCAL IUH L21_208if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_208if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_208if_f = (IHPE)L21_208if_f ; +LOCAL IUH L21_209w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_209w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_209w_t = (IHPE)L21_209w_t ; +LOCAL IUH L21_210w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_210w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_210w_d = (IHPE)L21_210w_d ; +LOCAL IUH L21_211if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_211if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_211if_f = (IHPE)L21_211if_f ; +LOCAL IUH L21_203if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_203if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_203if_d = (IHPE)L21_203if_d ; +GLOBAL IUH S_2719_Chain2WordMove_00000002_Bwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2719_Chain2WordMove_00000002_Bwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2719_Chain2WordMove_00000002_Bwd = (IHPE)S_2719_Chain2WordMove_00000002_Bwd ; +LOCAL IUH L13_2699if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2699if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2699if_f = (IHPE)L13_2699if_f ; +GLOBAL IUH S_2720_Chain2ModeXBwdWordMove_00000002 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2720_Chain2ModeXBwdWordMove_00000002_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2720_Chain2ModeXBwdWordMove_00000002 = (IHPE)S_2720_Chain2ModeXBwdWordMove_00000002 ; +LOCAL IUH L13_2700if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2700if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2700if_f = (IHPE)L13_2700if_f ; +LOCAL IUH L25_66if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_66if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_66if_f = (IHPE)L25_66if_f ; +LOCAL IUH L25_67if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_67if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_67if_f = (IHPE)L25_67if_f ; +LOCAL IUH L21_214if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_214if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_214if_f = (IHPE)L21_214if_f ; +LOCAL IUH L21_215w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_215w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_215w_t = (IHPE)L21_215w_t ; +LOCAL IUH L21_216w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_216w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_216w_d = (IHPE)L21_216w_d ; +LOCAL IUH L21_212if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_212if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_212if_f = (IHPE)L21_212if_f ; +LOCAL IUH L21_217if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_217if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_217if_f = (IHPE)L21_217if_f ; +LOCAL IUH L21_218w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_218w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_218w_t = (IHPE)L21_218w_t ; +LOCAL IUH L21_219w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_219w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_219w_d = (IHPE)L21_219w_d ; +LOCAL IUH L21_213if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_213if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_213if_d = (IHPE)L21_213if_d ; +GLOBAL IUH S_2721_Chain2DwordMove_00000002_Bwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2721_Chain2DwordMove_00000002_Bwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2721_Chain2DwordMove_00000002_Bwd = (IHPE)S_2721_Chain2DwordMove_00000002_Bwd ; +LOCAL IUH L13_2701if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2701if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2701if_f = (IHPE)L13_2701if_f ; +GLOBAL IUH S_2722_Chain2ModeXBwdDwordMove_00000002 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2722_Chain2ModeXBwdDwordMove_00000002_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2722_Chain2ModeXBwdDwordMove_00000002 = (IHPE)S_2722_Chain2ModeXBwdDwordMove_00000002 ; +LOCAL IUH L13_2702if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2702if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2702if_f = (IHPE)L13_2702if_f ; +GLOBAL IUH S_2723_Chain2ByteMove_00000003_Bwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2723_Chain2ByteMove_00000003_Bwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2723_Chain2ByteMove_00000003_Bwd = (IHPE)S_2723_Chain2ByteMove_00000003_Bwd ; +LOCAL IUH L13_2703if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2703if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2703if_f = (IHPE)L13_2703if_f ; +GLOBAL IUH S_2724_Chain2ModeXBwdByteMove_00000003 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2724_Chain2ModeXBwdByteMove_00000003_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2724_Chain2ModeXBwdByteMove_00000003 = (IHPE)S_2724_Chain2ModeXBwdByteMove_00000003 ; +LOCAL IUH L13_2704if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2704if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2704if_f = (IHPE)L13_2704if_f ; +LOCAL IUH L25_68if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_68if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_68if_f = (IHPE)L25_68if_f ; +LOCAL IUH L25_69if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_69if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_69if_f = (IHPE)L25_69if_f ; +LOCAL IUH L21_222if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_222if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_222if_f = (IHPE)L21_222if_f ; +LOCAL IUH L21_223w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_223w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_223w_t = (IHPE)L21_223w_t ; +LOCAL IUH L21_224w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_224w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_224w_d = (IHPE)L21_224w_d ; +LOCAL IUH L21_225if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_225if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_225if_f = (IHPE)L21_225if_f ; +LOCAL IUH L21_220if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_220if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_220if_f = (IHPE)L21_220if_f ; +LOCAL IUH L21_226if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_226if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_226if_f = (IHPE)L21_226if_f ; +LOCAL IUH L21_227w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_227w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_227w_t = (IHPE)L21_227w_t ; +LOCAL IUH L21_228w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_228w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_228w_d = (IHPE)L21_228w_d ; +LOCAL IUH L21_229if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_229if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_229if_f = (IHPE)L21_229if_f ; +LOCAL IUH L21_221if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_221if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_221if_d = (IHPE)L21_221if_d ; +GLOBAL IUH S_2725_Chain2WordMove_00000003_Bwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2725_Chain2WordMove_00000003_Bwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2725_Chain2WordMove_00000003_Bwd = (IHPE)S_2725_Chain2WordMove_00000003_Bwd ; +LOCAL IUH L13_2705if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2705if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2705if_f = (IHPE)L13_2705if_f ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2694_Chain2DwordMove_00000003_Fwd_id : + S_2694_Chain2DwordMove_00000003_Fwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2694) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2674if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2674if_f_id : + L13_2674if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16532) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2695_Chain2ModeXFwdDwordMove_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2695_Chain2ModeXFwdDwordMove_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16533) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2695_Chain2ModeXFwdDwordMove_00000003_id : + S_2695_Chain2ModeXFwdDwordMove_00000003 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2695) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2675if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2675if_f_id : + L13_2675if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16520) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2689_Chain2ModeXFwdWordMove_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2689_Chain2ModeXFwdWordMove_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16521) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2696_Chain2ByteWrite_Copy_id : + S_2696_Chain2ByteWrite_Copy : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 8 > 0 ) LocalIUH = (IUH *)malloc ( 8 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2696) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2676if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2676if_f_id : + L13_2676if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_42if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_42if_f_id : + L25_42if_f: ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1348) ; + if (*((IS32 *)&(r21) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_43if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_43if_f_id : + L25_43if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+0) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r23)) = (IS32)(31) ; + if (*((IU32 *)&(r23) + REGLONG) + *((IU32 *)&(r22) + REGLONG) > 32 || *((IU32 *)&(r23) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+0) + REGLONG) << (32-(*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r23) + REGLONG))))) >> (32 - *((IU32 *)&(r23) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2697_Chain2ByteFill_Copy_id : + S_2697_Chain2ByteFill_Copy : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2697) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2677if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2677if_f_id : + L13_2677if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_44if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_44if_f_id : + L25_44if_f: ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(57343) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + if (*((IS32 *)&(r20) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )) goto L25_45if_f; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_45if_f_id : + L25_45if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+0) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L21_136if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r22)) = (IS32)(31) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+0) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IUH *)(LocalIUH+3)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+4)) = (IS32)(3) ; + { extern IUH L21_137if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_137if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_136if_f_id : + L21_136if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r22)) = (IS32)(31) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+0) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IUH *)(LocalIUH+3)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+4)) = (IS32)(1) ; + case L21_137if_d_id : + L21_137if_d: ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_139w_d; + case L21_138w_t_id : + L21_138w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+3)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+3)) + *((IUH *)(LocalIUH+4)) ; + *((IUH *)(LocalIUH+3)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)(LocalIUH+4)) = *((IUH *)(LocalIUH+4)) ^ *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L21_138w_t; + case L21_139w_d_id : + L21_139w_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2698_Chain2ByteMove_Copy_Fwd_id : + S_2698_Chain2ByteMove_Copy_Fwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 40 > 0 ) LocalIUH = (IUH *)malloc ( 40 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2698) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2678if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2678if_f_id : + L13_2678if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_46if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_46if_f_id : + L25_46if_f: ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(57343) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + if (*((IS32 *)&(r20) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )) goto L25_47if_f; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_47if_f_id : + L25_47if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L21_140if_f; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+0) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L21_142if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r22)) = (IS32)(31) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+0) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = (IS32)(3) ; + { extern IUH L21_143if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_143if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_142if_f_id : + L21_142if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r22)) = (IS32)(31) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+0) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = (IS32)(1) ; + case L21_143if_d_id : + L21_143if_d: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_145w_d; + case L21_144w_t_id : + L21_144w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+5)) - *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r23)) = (IS32)(1) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)(LocalIUH+7)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+7)) ^ *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L21_144w_t; + case L21_145w_d_id : + L21_145w_d: ; + { extern IUH L21_141if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_141if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_140if_f_id : + L21_140if_f: ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+0) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L21_146if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r22)) = (IS32)(31) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+0) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = (IS32)(3) ; + { extern IUH L21_147if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_147if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_146if_f_id : + L21_146if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r22)) = (IS32)(31) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+0) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = (IS32)(1) ; + case L21_147if_d_id : + L21_147if_d: ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IUH *)&(r20))>=8*sizeof(IUH)) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IUH *)(LocalIUH+1)) & (1 << *((IUH *)&(r20)))) == 0) goto L21_148if_f; + *((IUH *)(LocalIUH+8)) = (IS32)(3) ; + { extern IUH L21_149if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_149if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_148if_f_id : + L21_148if_f: ; + *((IUH *)(LocalIUH+8)) = (IS32)(1) ; + case L21_149if_d_id : + L21_149if_d: ; + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)(LocalIUH+1)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_151w_d; + case L21_150w_t_id : + L21_150w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+9)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(*((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)(LocalIUH+7)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)(LocalIUH+8)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+7)) ^ *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)(LocalIUH+8)) ^ *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L21_150w_t; + case L21_151w_d_id : + L21_151w_d: ; + case L21_141if_d_id : + L21_141if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2699_Chain2WordWrite_Copy_id : + S_2699_Chain2WordWrite_Copy : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2699) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2679if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2679if_f_id : + L13_2679if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)(LocalIUH+2)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(-2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_48if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_48if_f_id : + L25_48if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1348) ; + if (*((IS32 *)&(r21) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_49if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_49if_f_id : + L25_49if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)(LocalIUH+2)) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+3)) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((ISH *)(LocalIUH+2)) != *((ISH *)&(r20))) goto L21_152if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + { extern IUH L21_153if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_153if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_152if_f_id : + L21_152if_f: ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + case L21_153if_d_id : + L21_153if_d: ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)(LocalIUH+2)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+3)) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = *(UOFF_15_8( (LocalIUH+1) )) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2700_Chain2WordFill_Copy_id : + S_2700_Chain2WordFill_Copy : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2700) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2680if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2680if_f_id : + L13_2680if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_50if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_50if_f_id : + L25_50if_f: ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) * *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1348) ; + if (*((IS32 *)&(r21) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_51if_f; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) * *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) + *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_51if_f_id : + L25_51if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+0) + REGLONG) & (1 << *((IU32 *)&(r21) + REGLONG))) == 0) goto L21_154if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r22)) = (IS32)(31) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+0) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IUH *)(LocalIUH+3)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+3)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r22)) = (IS32)(8) ; + *((IU16 *)&(r20) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +if(*((IU16 *)&(r22) + REGWORD )>=16) + CrulesRuntimeError("Bad Bit No"); + else + if(*((IU16 *)&(r22) + REGWORD )!=0) + *((IU16 *)&(r20) + REGWORD ) = (*((IU16 *)(LocalIUH+1) + REGWORD) << ((16) - *((IU16 *)&(r22) + REGWORD )) ) | (*((IU16 *)&(r20) + REGWORD ) >> *((IU16 *)&(r22) + REGWORD )); + *((IU16 *)&(r21) + REGWORD) = *((IU16 *)&(r20) + REGWORD) ; + *((IU16 *)(LocalIUH+4) + REGWORD) = *((IU16 *)&(r21) + REGWORD ) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+3)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+3)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L21_157w_d; + case L21_156w_t_id : + L21_156w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+3)) ; + *((IU16 *)(*((IHPE *)&(r20))) ) = *((IU16 *)(LocalIUH+4) + REGWORD) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+3)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+3)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L21_156w_t; + case L21_157w_d_id : + L21_157w_d: ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+3)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *(UOFF_15_8( (LocalIUH+1) )) ; + { extern IUH L21_155if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_155if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_154if_f_id : + L21_154if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r22)) = (IS32)(31) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+0) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IUH *)(LocalIUH+3)) = *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_159w_d; + case L21_158w_t_id : + L21_158w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+3)) ; + *((IU16 *)(*((IHPE *)&(r21))) ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+3)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+3)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L21_158w_t; + case L21_159w_d_id : + L21_159w_d: ; + case L21_155if_d_id : + L21_155if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2701_Chain2WordMove_Copy_Fwd_id : + S_2701_Chain2WordMove_Copy_Fwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2701) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2681if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2681if_f_id : + L13_2681if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16600) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2698_Chain2ByteMove_Copy_Fwd() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2698_Chain2ByteMove_Copy_Fwd(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16601) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2702_Chain2DwordWrite_Copy_id : + S_2702_Chain2DwordWrite_Copy : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2702) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2682if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2682if_f_id : + L13_2682if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)(LocalIUH+2)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(-2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_52if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_52if_f_id : + L25_52if_f: ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1348) ; + if (*((IS32 *)&(r21) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_53if_f; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_53if_f_id : + L25_53if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)(LocalIUH+2)) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+3)) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((ISH *)(LocalIUH+2)) != *((ISH *)&(r21))) goto L21_160if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)(LocalIUH+2)) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+3)) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IUH *)&(r20)) = *((IUH *)&(r21)) + *((IUH *)(LocalIUH+2)) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + { extern IUH L21_161if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_161if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_160if_f_id : + L21_160if_f: ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)(LocalIUH+2)) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+3)) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *(UOFF_15_8( (LocalIUH+1) )) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)&(r20)) + *((IUH *)(LocalIUH+2)) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + case L21_161if_d_id : + L21_161if_d: ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r21)) = (IS32)(8) ; + if (*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r21) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r23) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG))))) >> (32 - *((IU32 *)&(r21) + REGLONG)); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+3)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)&(r23) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(24) ; + *((IUH *)&(r21)) = (IS32)(8) ; + if (*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r21) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r22) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG))))) >> (32 - *((IU32 *)&(r21) + REGLONG)); + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+3)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r21))) ) = *((IU8 *)&(r22) + REGBYTE) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2703_Chain2DwordFill_Copy_id : + S_2703_Chain2DwordFill_Copy : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 28 > 0 ) LocalIUH = (IUH *)malloc ( 28 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2703) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2683if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2683if_f_id : + L13_2683if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_54if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_54if_f_id : + L25_54if_f: ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) * *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1348) ; + if (*((IS32 *)&(r21) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_55if_f; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) * *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) + *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_55if_f_id : + L25_55if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+0) + REGLONG) & (1 << *((IU32 *)&(r21) + REGLONG))) == 0) goto L21_162if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r22)) = (IS32)(31) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+0) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IUH *)(LocalIUH+3)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+3)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r22)) = (IS32)(8) ; + *((IU16 *)&(r20) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +if(*((IU16 *)&(r22) + REGWORD )>=16) + CrulesRuntimeError("Bad Bit No"); + else + if(*((IU16 *)&(r22) + REGWORD )!=0) + *((IU16 *)&(r20) + REGWORD ) = (*((IU16 *)(LocalIUH+1) + REGWORD) << ((16) - *((IU16 *)&(r22) + REGWORD )) ) | (*((IU16 *)&(r20) + REGWORD ) >> *((IU16 *)&(r22) + REGWORD )); + *((IU16 *)&(r21) + REGWORD) = *((IU16 *)&(r20) + REGWORD) ; + *((IU16 *)(LocalIUH+4) + REGWORD) = *((IU16 *)&(r21) + REGWORD ) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(8) ; +if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if(*((IU32 *)&(r22) + REGLONG)!=0) + *((IU32 *)&(r21) + REGLONG) = (*((IU32 *)&(r21) + REGLONG) << ((32) - *((IU32 *)&(r22) + REGLONG)) ) | (*((IU32 *)&(r21) + REGLONG) >> *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)(LocalIUH+5) + REGWORD) = *((IU16 *)&(r21) + REGWORD ) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+3)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+3)) = *((IUH *)&(r21)) ; + { extern IUH L21_163if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_163if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_162if_f_id : + L21_162if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r22)) = (IS32)(31) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+0) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IUH *)(LocalIUH+3)) = *((IUH *)&(r21)) ; + *((IU16 *)(LocalIUH+4) + REGWORD) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IUH *)&(r20)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)(LocalIUH+5) + REGWORD) = *((IU16 *)&(r21) + REGWORD ) ; + case L21_163if_d_id : + L21_163if_d: ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L21_165w_d; + case L21_164w_t_id : + L21_164w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+6) + REGLONG) = *((IU32 *)(LocalIUH+6) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+3)) ; + *((IU16 *)(*((IHPE *)&(r20))) ) = *((IU16 *)(LocalIUH+4) + REGWORD) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+3)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+3)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+3)) ; + *((IU16 *)(*((IHPE *)&(r21))) ) = *((IU16 *)(LocalIUH+5) + REGWORD) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+3)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+3)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+6) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L21_164w_t; + case L21_165w_d_id : + L21_165w_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2704_Chain2DwordMove_Copy_Fwd_id : + S_2704_Chain2DwordMove_Copy_Fwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2704) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2684if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2684if_f_id : + L13_2684if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16600) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2698_Chain2ByteMove_Copy_Fwd() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2698_Chain2ByteMove_Copy_Fwd(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16601) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2705_Chain2ByteMove_00000000_Bwd_id : + S_2705_Chain2ByteMove_00000000_Bwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2705) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2685if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2685if_f_id : + L13_2685if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16610) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2706_Chain2ModeXBwdByteMove_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2706_Chain2ModeXBwdByteMove_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16611) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2706_Chain2ModeXBwdByteMove_00000000_id : + S_2706_Chain2ModeXBwdByteMove_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 36 > 0 ) LocalIUH = (IUH *)malloc ( 36 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2706) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2686if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2686if_f_id : + L13_2686if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_56if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_56if_f_id : + L25_56if_f: ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(57343) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + if (*((IS32 *)&(r20) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )) goto L25_57if_f; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_57if_f_id : + L25_57if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L21_166if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+5) + REGLONG) & (1 << *((IU32 *)&(r21) + REGLONG))) != 0) goto L21_168if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + case L21_168if_f_id : + L21_168if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L21_170w_d; + case L21_169w_t_id : + L21_169w_t: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L21_169w_t; + case L21_170w_d_id : + L21_170w_d: ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IS32 *)(LocalIUH+4) + REGLONG) != *((IS32 *)&(r20) + REGLONG)) goto L21_171if_f; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + case L21_171if_f_id : + L21_171if_f: ; + { extern IUH L21_167if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_167if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_166if_f_id : + L21_166if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+5) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) != 0) goto L21_172if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + case L21_172if_f_id : + L21_172if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_174w_d; + case L21_173w_t_id : + L21_173w_t: ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L21_173w_t; + case L21_174w_d_id : + L21_174w_d: ; + *((IUH *)&(r21)) = (IS32)(1) ; + if (*((IS32 *)(LocalIUH+4) + REGLONG) != *((IS32 *)&(r21) + REGLONG)) goto L21_175if_f; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + case L21_175if_f_id : + L21_175if_f: ; + case L21_167if_d_id : + L21_167if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2707_Chain2WordMove_00000000_Bwd_id : + S_2707_Chain2WordMove_00000000_Bwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2707) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2687if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2687if_f_id : + L13_2687if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16614) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2708_Chain2ModeXBwdWordMove_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2708_Chain2ModeXBwdWordMove_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16615) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2708_Chain2ModeXBwdWordMove_00000000_id : + S_2708_Chain2ModeXBwdWordMove_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 36 > 0 ) LocalIUH = (IUH *)malloc ( 36 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2708) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2688if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2688if_f_id : + L13_2688if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_58if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_58if_f_id : + L25_58if_f: ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(57343) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + if (*((IS32 *)&(r20) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )) goto L25_59if_f; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_59if_f_id : + L25_59if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L21_176if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+5) + REGLONG) & (1 << *((IU32 *)&(r21) + REGLONG))) != 0) goto L21_178if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(5) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + case L21_178if_f_id : + L21_178if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_180w_d; + case L21_179w_t_id : + L21_179w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(-1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)&(r21)) = *((IUH *)&(r20)) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(*((IHPE *)&(r21)) )) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2631_Chain2ModeXWordWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2631_Chain2ModeXWordWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L21_179w_t; + case L21_180w_d_id : + L21_180w_d: ; + { extern IUH L21_177if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_177if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_176if_f_id : + L21_176if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+5) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) != 0) goto L21_181if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) - *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2625_Chain2ModeXByteWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2625_Chain2ModeXByteWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(5) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + case L21_181if_f_id : + L21_181if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_183w_d; + case L21_182w_t_id : + L21_182w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1292) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2631_Chain2ModeXWordWrite_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2631_Chain2ModeXWordWrite_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L21_182w_t; + case L21_183w_d_id : + L21_183w_d: ; + case L21_177if_d_id : + L21_177if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2709_Chain2DwordMove_00000000_Bwd_id : + S_2709_Chain2DwordMove_00000000_Bwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2709) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2689if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2689if_f_id : + L13_2689if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16618) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2710_Chain2ModeXBwdDwordMove_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2710_Chain2ModeXBwdDwordMove_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16619) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2710_Chain2ModeXBwdDwordMove_00000000_id : + S_2710_Chain2ModeXBwdDwordMove_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2710) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2690if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2690if_f_id : + L13_2690if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16614) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2708_Chain2ModeXBwdWordMove_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2708_Chain2ModeXBwdWordMove_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16615) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2711_Chain2ByteMove_00000001_Bwd_id : + S_2711_Chain2ByteMove_00000001_Bwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2711) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2691if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2691if_f_id : + L13_2691if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16610) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2712_Chain2ModeXBwdByteMove_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2712_Chain2ModeXBwdByteMove_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16611) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2712_Chain2ModeXBwdByteMove_00000001_id : + S_2712_Chain2ModeXBwdByteMove_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 36 > 0 ) LocalIUH = (IUH *)malloc ( 36 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2712) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2692if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2692if_f_id : + L13_2692if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_60if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_60if_f_id : + L25_60if_f: ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(57343) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + if (*((IS32 *)&(r20) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )) goto L25_61if_f; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_61if_f_id : + L25_61if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L21_184if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+5) + REGLONG) & (1 << *((IU32 *)&(r21) + REGLONG))) != 0) goto L21_186if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + case L21_186if_f_id : + L21_186if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L21_188w_d; + case L21_187w_t_id : + L21_187w_t: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L21_187w_t; + case L21_188w_d_id : + L21_188w_d: ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IS32 *)(LocalIUH+4) + REGLONG) != *((IS32 *)&(r20) + REGLONG)) goto L21_189if_f; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + case L21_189if_f_id : + L21_189if_f: ; + { extern IUH L21_185if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_185if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_184if_f_id : + L21_184if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+5) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) != 0) goto L21_190if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + case L21_190if_f_id : + L21_190if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_192w_d; + case L21_191w_t_id : + L21_191w_t: ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L21_191w_t; + case L21_192w_d_id : + L21_192w_d: ; + *((IUH *)&(r21)) = (IS32)(1) ; + if (*((IS32 *)(LocalIUH+4) + REGLONG) != *((IS32 *)&(r21) + REGLONG)) goto L21_193if_f; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + case L21_193if_f_id : + L21_193if_f: ; + case L21_185if_d_id : + L21_185if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2713_Chain2WordMove_00000001_Bwd_id : + S_2713_Chain2WordMove_00000001_Bwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2713) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2693if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2693if_f_id : + L13_2693if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16614) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2714_Chain2ModeXBwdWordMove_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2714_Chain2ModeXBwdWordMove_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16615) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2714_Chain2ModeXBwdWordMove_00000001_id : + S_2714_Chain2ModeXBwdWordMove_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 36 > 0 ) LocalIUH = (IUH *)malloc ( 36 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2714) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2694if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2694if_f_id : + L13_2694if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_62if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_62if_f_id : + L25_62if_f: ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(57343) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + if (*((IS32 *)&(r20) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )) goto L25_63if_f; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_63if_f_id : + L25_63if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L21_194if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+5) + REGLONG) & (1 << *((IU32 *)&(r21) + REGLONG))) != 0) goto L21_196if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(5) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + case L21_196if_f_id : + L21_196if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_198w_d; + case L21_197w_t_id : + L21_197w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(-1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)&(r21)) = *((IUH *)&(r20)) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(*((IHPE *)&(r21)) )) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2649_Chain2ModeXWordWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2649_Chain2ModeXWordWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L21_197w_t; + case L21_198w_d_id : + L21_198w_d: ; + { extern IUH L21_195if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_195if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_194if_f_id : + L21_194if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+5) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) != 0) goto L21_199if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) - *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2643_Chain2ModeXByteWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2643_Chain2ModeXByteWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(5) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + case L21_199if_f_id : + L21_199if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_201w_d; + case L21_200w_t_id : + L21_200w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1292) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2649_Chain2ModeXWordWrite_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2649_Chain2ModeXWordWrite_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L21_200w_t; + case L21_201w_d_id : + L21_201w_d: ; + case L21_195if_d_id : + L21_195if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2715_Chain2DwordMove_00000001_Bwd_id : + S_2715_Chain2DwordMove_00000001_Bwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2715) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2695if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2695if_f_id : + L13_2695if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16618) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2716_Chain2ModeXBwdDwordMove_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2716_Chain2ModeXBwdDwordMove_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16619) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2716_Chain2ModeXBwdDwordMove_00000001_id : + S_2716_Chain2ModeXBwdDwordMove_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2716) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2696if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2696if_f_id : + L13_2696if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16614) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2714_Chain2ModeXBwdWordMove_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2714_Chain2ModeXBwdWordMove_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16615) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2717_Chain2ByteMove_00000002_Bwd_id : + S_2717_Chain2ByteMove_00000002_Bwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2717) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2697if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2697if_f_id : + L13_2697if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16610) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2718_Chain2ModeXBwdByteMove_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2718_Chain2ModeXBwdByteMove_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16611) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2718_Chain2ModeXBwdByteMove_00000002_id : + S_2718_Chain2ModeXBwdByteMove_00000002 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 36 > 0 ) LocalIUH = (IUH *)malloc ( 36 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2718) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2698if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2698if_f_id : + L13_2698if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_64if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_64if_f_id : + L25_64if_f: ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(57343) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + if (*((IS32 *)&(r20) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )) goto L25_65if_f; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_65if_f_id : + L25_65if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L21_202if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+5) + REGLONG) & (1 << *((IU32 *)&(r21) + REGLONG))) != 0) goto L21_204if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + case L21_204if_f_id : + L21_204if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L21_206w_d; + case L21_205w_t_id : + L21_205w_t: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L21_205w_t; + case L21_206w_d_id : + L21_206w_d: ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IS32 *)(LocalIUH+4) + REGLONG) != *((IS32 *)&(r20) + REGLONG)) goto L21_207if_f; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + case L21_207if_f_id : + L21_207if_f: ; + { extern IUH L21_203if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_203if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_202if_f_id : + L21_202if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+5) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) != 0) goto L21_208if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + case L21_208if_f_id : + L21_208if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_210w_d; + case L21_209w_t_id : + L21_209w_t: ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L21_209w_t; + case L21_210w_d_id : + L21_210w_d: ; + *((IUH *)&(r21)) = (IS32)(1) ; + if (*((IS32 *)(LocalIUH+4) + REGLONG) != *((IS32 *)&(r21) + REGLONG)) goto L21_211if_f; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + case L21_211if_f_id : + L21_211if_f: ; + case L21_203if_d_id : + L21_203if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2719_Chain2WordMove_00000002_Bwd_id : + S_2719_Chain2WordMove_00000002_Bwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2719) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2699if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2699if_f_id : + L13_2699if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16614) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2720_Chain2ModeXBwdWordMove_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2720_Chain2ModeXBwdWordMove_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16615) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2720_Chain2ModeXBwdWordMove_00000002_id : + S_2720_Chain2ModeXBwdWordMove_00000002 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 36 > 0 ) LocalIUH = (IUH *)malloc ( 36 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2720) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2700if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2700if_f_id : + L13_2700if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_66if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_66if_f_id : + L25_66if_f: ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(57343) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + if (*((IS32 *)&(r20) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )) goto L25_67if_f; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_67if_f_id : + L25_67if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L21_212if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+5) + REGLONG) & (1 << *((IU32 *)&(r21) + REGLONG))) != 0) goto L21_214if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(5) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + case L21_214if_f_id : + L21_214if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_216w_d; + case L21_215w_t_id : + L21_215w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(-1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)&(r21)) = *((IUH *)&(r20)) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(*((IHPE *)&(r21)) )) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2667_Chain2ModeXWordWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2667_Chain2ModeXWordWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L21_215w_t; + case L21_216w_d_id : + L21_216w_d: ; + { extern IUH L21_213if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_213if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_212if_f_id : + L21_212if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+5) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) != 0) goto L21_217if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) - *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2661_Chain2ModeXByteWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2661_Chain2ModeXByteWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(5) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + case L21_217if_f_id : + L21_217if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_219w_d; + case L21_218w_t_id : + L21_218w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1292) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2667_Chain2ModeXWordWrite_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2667_Chain2ModeXWordWrite_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L21_218w_t; + case L21_219w_d_id : + L21_219w_d: ; + case L21_213if_d_id : + L21_213if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2721_Chain2DwordMove_00000002_Bwd_id : + S_2721_Chain2DwordMove_00000002_Bwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2721) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2701if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2701if_f_id : + L13_2701if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16618) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2722_Chain2ModeXBwdDwordMove_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2722_Chain2ModeXBwdDwordMove_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16619) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2722_Chain2ModeXBwdDwordMove_00000002_id : + S_2722_Chain2ModeXBwdDwordMove_00000002 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2722) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2702if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2702if_f_id : + L13_2702if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16614) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2720_Chain2ModeXBwdWordMove_00000002() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2720_Chain2ModeXBwdWordMove_00000002(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16615) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2723_Chain2ByteMove_00000003_Bwd_id : + S_2723_Chain2ByteMove_00000003_Bwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2723) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2703if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2703if_f_id : + L13_2703if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16610) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2724_Chain2ModeXBwdByteMove_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2724_Chain2ModeXBwdByteMove_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16611) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2724_Chain2ModeXBwdByteMove_00000003_id : + S_2724_Chain2ModeXBwdByteMove_00000003 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 36 > 0 ) LocalIUH = (IUH *)malloc ( 36 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2724) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2704if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2704if_f_id : + L13_2704if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_68if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_68if_f_id : + L25_68if_f: ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(57343) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + if (*((IS32 *)&(r20) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )) goto L25_69if_f; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_69if_f_id : + L25_69if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L21_220if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+5) + REGLONG) & (1 << *((IU32 *)&(r21) + REGLONG))) != 0) goto L21_222if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + case L21_222if_f_id : + L21_222if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L21_224w_d; + case L21_223w_t_id : + L21_223w_t: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L21_223w_t; + case L21_224w_d_id : + L21_224w_d: ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IS32 *)(LocalIUH+4) + REGLONG) != *((IS32 *)&(r20) + REGLONG)) goto L21_225if_f; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + case L21_225if_f_id : + L21_225if_f: ; + { extern IUH L21_221if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_221if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_220if_f_id : + L21_220if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+5) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) != 0) goto L21_226if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + case L21_226if_f_id : + L21_226if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_228w_d; + case L21_227w_t_id : + L21_227w_t: ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L21_227w_t; + case L21_228w_d_id : + L21_228w_d: ; + *((IUH *)&(r21)) = (IS32)(1) ; + if (*((IS32 *)(LocalIUH+4) + REGLONG) != *((IS32 *)&(r21) + REGLONG)) goto L21_229if_f; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + case L21_229if_f_id : + L21_229if_f: ; + case L21_221if_d_id : + L21_221if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2725_Chain2WordMove_00000003_Bwd_id : + S_2725_Chain2WordMove_00000003_Bwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2725) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2705if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2705if_f_id : + L13_2705if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16614) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2726_Chain2ModeXBwdWordMove_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2726_Chain2ModeXBwdWordMove_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16615) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid020.c b/private/mvdm/softpc.new/base/cvidc/sevid020.c new file mode 100644 index 000000000..559fb80f5 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid020.c @@ -0,0 +1,3728 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_2726_Chain2ModeXBwdWordMove_00000003_id, +L13_2706if_f_id, +L25_70if_f_id, +L25_71if_f_id, +L21_232if_f_id, +L21_233w_t_id, +L21_234w_d_id, +L21_230if_f_id, +L21_235if_f_id, +L21_236w_t_id, +L21_237w_d_id, +L21_231if_d_id, +S_2727_Chain2DwordMove_00000003_Bwd_id, +L13_2707if_f_id, +S_2728_Chain2ModeXBwdDwordMove_00000003_id, +L13_2708if_f_id, +S_2729_Chain2ByteMove_Copy_Bwd_id, +L13_2709if_f_id, +L25_72if_f_id, +L25_73if_f_id, +L21_240if_f_id, +L21_241if_d_id, +L21_242w_t_id, +L21_243w_d_id, +L21_238if_f_id, +L21_244if_f_id, +L21_245if_d_id, +L21_246if_f_id, +L21_247if_d_id, +L21_248w_t_id, +L21_249w_d_id, +L21_239if_d_id, +S_2730_Chain2WordMove_Copy_Bwd_id, +L13_2710if_f_id, +L21_250if_f_id, +L21_251if_d_id, +S_2731_Chain2DwordMove_Copy_Bwd_id, +L13_2711if_f_id, +S_2732_Chain4ByteWrite_00000000_00000008_id, +L13_2712if_f_id, +L22_0if_f_id, +S_2733_Chain4ByteWrite_00000000_00000009_id, +L13_2713if_f_id, +S_2734_Chain4ByteWrite_00000000_0000000e_id, +L13_2714if_f_id, +L22_1if_f_id, +S_2735_Chain4ByteWrite_00000000_0000000f_id, +L13_2715if_f_id, +S_2736_Chain4ByteWrite_00000000_00000010_id, +L13_2716if_f_id, +L22_2if_f_id, +S_2737_Chain4ByteWrite_00000000_00000011_id, +L13_2717if_f_id, +S_2738_Chain4ByteWrite_00000000_00000016_id, +L13_2718if_f_id, +L22_3if_f_id, +S_2739_Chain4ByteWrite_00000000_00000017_id, +L13_2719if_f_id, +S_2740_Chain4ByteWrite_00000000_00000018_id, +L13_2720if_f_id, +L22_4if_f_id, +S_2741_Chain4ByteWrite_00000000_00000019_id, +L13_2721if_f_id, +S_2742_Chain4ByteWrite_00000000_0000001e_id, +L13_2722if_f_id, +L22_5if_f_id, +S_2743_Chain4ByteWrite_00000000_0000001f_id, +L13_2723if_f_id, +S_2744_Chain4ByteFill_00000000_00000008_id, +L13_2724if_f_id, +L22_6if_f_id, +L22_7if_f_id, +L22_8if_f_id, +L22_9if_f_id, +S_2745_Chain41PlaneByteFill_id, +L13_2725if_f_id, +L22_10w_t_id, +L22_11w_d_id, +S_2746_Chain4ByteFill_00000000_00000009_id, +L13_2726if_f_id, +S_2747_Chain44PlaneByteFill_id, +L13_2727if_f_id, +L22_12w_t_id, +L22_13w_d_id, +S_2748_Chain4ByteFill_00000000_0000000e_id, +L13_2728if_f_id, +L22_14if_f_id, +L22_15if_f_id, +L22_16if_f_id, +L22_17if_f_id, +S_2749_Chain4ByteFill_00000000_0000000f_id, +L13_2729if_f_id, +S_2750_Chain4ByteFill_00000000_00000010_id, +L13_2730if_f_id, +L22_18if_f_id, +L22_19if_f_id, +L22_20if_f_id, +L22_21if_f_id, +S_2751_Chain4ByteFill_00000000_00000011_id, +L13_2731if_f_id, +S_2752_Chain4ByteFill_00000000_00000016_id, +L13_2732if_f_id, +L22_22if_f_id, +L22_23if_f_id, +L22_24if_f_id, +L22_25if_f_id, +S_2753_Chain4ByteFill_00000000_00000017_id, +L13_2733if_f_id, +S_2754_Chain4ByteFill_00000000_00000018_id, +L13_2734if_f_id, +L22_26if_f_id, +L22_27if_f_id, +L22_28if_f_id, +L22_29if_f_id, +S_2755_Chain4ByteFill_00000000_00000019_id, +L13_2735if_f_id, +S_2756_Chain4ByteFill_00000000_0000001e_id, +L13_2736if_f_id, +L22_30if_f_id, +L22_31if_f_id, +L22_32if_f_id, +L22_33if_f_id, +S_2757_Chain4ByteFill_00000000_0000001f_id, +L13_2737if_f_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_2726_Chain2ModeXBwdWordMove_00000003 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2726_Chain2ModeXBwdWordMove_00000003_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2726_Chain2ModeXBwdWordMove_00000003 = (IHPE)S_2726_Chain2ModeXBwdWordMove_00000003 ; +LOCAL IUH L13_2706if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2706if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2706if_f = (IHPE)L13_2706if_f ; +LOCAL IUH L25_70if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_70if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_70if_f = (IHPE)L25_70if_f ; +LOCAL IUH L25_71if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_71if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_71if_f = (IHPE)L25_71if_f ; +LOCAL IUH L21_232if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_232if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_232if_f = (IHPE)L21_232if_f ; +LOCAL IUH L21_233w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_233w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_233w_t = (IHPE)L21_233w_t ; +LOCAL IUH L21_234w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_234w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_234w_d = (IHPE)L21_234w_d ; +LOCAL IUH L21_230if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_230if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_230if_f = (IHPE)L21_230if_f ; +LOCAL IUH L21_235if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_235if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_235if_f = (IHPE)L21_235if_f ; +LOCAL IUH L21_236w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_236w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_236w_t = (IHPE)L21_236w_t ; +LOCAL IUH L21_237w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_237w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_237w_d = (IHPE)L21_237w_d ; +LOCAL IUH L21_231if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_231if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_231if_d = (IHPE)L21_231if_d ; +GLOBAL IUH S_2727_Chain2DwordMove_00000003_Bwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2727_Chain2DwordMove_00000003_Bwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2727_Chain2DwordMove_00000003_Bwd = (IHPE)S_2727_Chain2DwordMove_00000003_Bwd ; +LOCAL IUH L13_2707if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2707if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2707if_f = (IHPE)L13_2707if_f ; +GLOBAL IUH S_2728_Chain2ModeXBwdDwordMove_00000003 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2728_Chain2ModeXBwdDwordMove_00000003_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2728_Chain2ModeXBwdDwordMove_00000003 = (IHPE)S_2728_Chain2ModeXBwdDwordMove_00000003 ; +LOCAL IUH L13_2708if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2708if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2708if_f = (IHPE)L13_2708if_f ; +GLOBAL IUH S_2729_Chain2ByteMove_Copy_Bwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2729_Chain2ByteMove_Copy_Bwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2729_Chain2ByteMove_Copy_Bwd = (IHPE)S_2729_Chain2ByteMove_Copy_Bwd ; +LOCAL IUH L13_2709if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2709if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2709if_f = (IHPE)L13_2709if_f ; +LOCAL IUH L25_72if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_72if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_72if_f = (IHPE)L25_72if_f ; +LOCAL IUH L25_73if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L25_73if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L25_73if_f = (IHPE)L25_73if_f ; +LOCAL IUH L21_240if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_240if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_240if_f = (IHPE)L21_240if_f ; +LOCAL IUH L21_241if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_241if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_241if_d = (IHPE)L21_241if_d ; +LOCAL IUH L21_242w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_242w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_242w_t = (IHPE)L21_242w_t ; +LOCAL IUH L21_243w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_243w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_243w_d = (IHPE)L21_243w_d ; +LOCAL IUH L21_238if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_238if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_238if_f = (IHPE)L21_238if_f ; +LOCAL IUH L21_244if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_244if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_244if_f = (IHPE)L21_244if_f ; +LOCAL IUH L21_245if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_245if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_245if_d = (IHPE)L21_245if_d ; +LOCAL IUH L21_246if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_246if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_246if_f = (IHPE)L21_246if_f ; +LOCAL IUH L21_247if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_247if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_247if_d = (IHPE)L21_247if_d ; +LOCAL IUH L21_248w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_248w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_248w_t = (IHPE)L21_248w_t ; +LOCAL IUH L21_249w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_249w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_249w_d = (IHPE)L21_249w_d ; +LOCAL IUH L21_239if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_239if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_239if_d = (IHPE)L21_239if_d ; +GLOBAL IUH S_2730_Chain2WordMove_Copy_Bwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2730_Chain2WordMove_Copy_Bwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2730_Chain2WordMove_Copy_Bwd = (IHPE)S_2730_Chain2WordMove_Copy_Bwd ; +LOCAL IUH L13_2710if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2710if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2710if_f = (IHPE)L13_2710if_f ; +LOCAL IUH L21_250if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_250if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_250if_f = (IHPE)L21_250if_f ; +LOCAL IUH L21_251if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L21_251if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L21_251if_d = (IHPE)L21_251if_d ; +GLOBAL IUH S_2731_Chain2DwordMove_Copy_Bwd IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2731_Chain2DwordMove_Copy_Bwd_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2731_Chain2DwordMove_Copy_Bwd = (IHPE)S_2731_Chain2DwordMove_Copy_Bwd ; +LOCAL IUH L13_2711if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2711if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2711if_f = (IHPE)L13_2711if_f ; +GLOBAL IUH S_2732_Chain4ByteWrite_00000000_00000008 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2732_Chain4ByteWrite_00000000_00000008_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2732_Chain4ByteWrite_00000000_00000008 = (IHPE)S_2732_Chain4ByteWrite_00000000_00000008 ; +LOCAL IUH L13_2712if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2712if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2712if_f = (IHPE)L13_2712if_f ; +LOCAL IUH L22_0if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_0if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_0if_f = (IHPE)L22_0if_f ; +GLOBAL IUH S_2733_Chain4ByteWrite_00000000_00000009 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2733_Chain4ByteWrite_00000000_00000009_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2733_Chain4ByteWrite_00000000_00000009 = (IHPE)S_2733_Chain4ByteWrite_00000000_00000009 ; +LOCAL IUH L13_2713if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2713if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2713if_f = (IHPE)L13_2713if_f ; +GLOBAL IUH S_2734_Chain4ByteWrite_00000000_0000000e IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2734_Chain4ByteWrite_00000000_0000000e_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2734_Chain4ByteWrite_00000000_0000000e = (IHPE)S_2734_Chain4ByteWrite_00000000_0000000e ; +LOCAL IUH L13_2714if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2714if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2714if_f = (IHPE)L13_2714if_f ; +LOCAL IUH L22_1if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_1if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_1if_f = (IHPE)L22_1if_f ; +GLOBAL IUH S_2735_Chain4ByteWrite_00000000_0000000f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2735_Chain4ByteWrite_00000000_0000000f_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2735_Chain4ByteWrite_00000000_0000000f = (IHPE)S_2735_Chain4ByteWrite_00000000_0000000f ; +LOCAL IUH L13_2715if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2715if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2715if_f = (IHPE)L13_2715if_f ; +GLOBAL IUH S_2736_Chain4ByteWrite_00000000_00000010 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2736_Chain4ByteWrite_00000000_00000010_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2736_Chain4ByteWrite_00000000_00000010 = (IHPE)S_2736_Chain4ByteWrite_00000000_00000010 ; +LOCAL IUH L13_2716if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2716if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2716if_f = (IHPE)L13_2716if_f ; +LOCAL IUH L22_2if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_2if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_2if_f = (IHPE)L22_2if_f ; +GLOBAL IUH S_2737_Chain4ByteWrite_00000000_00000011 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2737_Chain4ByteWrite_00000000_00000011_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2737_Chain4ByteWrite_00000000_00000011 = (IHPE)S_2737_Chain4ByteWrite_00000000_00000011 ; +LOCAL IUH L13_2717if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2717if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2717if_f = (IHPE)L13_2717if_f ; +GLOBAL IUH S_2738_Chain4ByteWrite_00000000_00000016 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2738_Chain4ByteWrite_00000000_00000016_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2738_Chain4ByteWrite_00000000_00000016 = (IHPE)S_2738_Chain4ByteWrite_00000000_00000016 ; +LOCAL IUH L13_2718if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2718if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2718if_f = (IHPE)L13_2718if_f ; +LOCAL IUH L22_3if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_3if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_3if_f = (IHPE)L22_3if_f ; +GLOBAL IUH S_2739_Chain4ByteWrite_00000000_00000017 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2739_Chain4ByteWrite_00000000_00000017_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2739_Chain4ByteWrite_00000000_00000017 = (IHPE)S_2739_Chain4ByteWrite_00000000_00000017 ; +LOCAL IUH L13_2719if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2719if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2719if_f = (IHPE)L13_2719if_f ; +GLOBAL IUH S_2740_Chain4ByteWrite_00000000_00000018 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2740_Chain4ByteWrite_00000000_00000018_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2740_Chain4ByteWrite_00000000_00000018 = (IHPE)S_2740_Chain4ByteWrite_00000000_00000018 ; +LOCAL IUH L13_2720if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2720if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2720if_f = (IHPE)L13_2720if_f ; +LOCAL IUH L22_4if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_4if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_4if_f = (IHPE)L22_4if_f ; +GLOBAL IUH S_2741_Chain4ByteWrite_00000000_00000019 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2741_Chain4ByteWrite_00000000_00000019_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2741_Chain4ByteWrite_00000000_00000019 = (IHPE)S_2741_Chain4ByteWrite_00000000_00000019 ; +LOCAL IUH L13_2721if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2721if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2721if_f = (IHPE)L13_2721if_f ; +GLOBAL IUH S_2742_Chain4ByteWrite_00000000_0000001e IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2742_Chain4ByteWrite_00000000_0000001e_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2742_Chain4ByteWrite_00000000_0000001e = (IHPE)S_2742_Chain4ByteWrite_00000000_0000001e ; +LOCAL IUH L13_2722if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2722if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2722if_f = (IHPE)L13_2722if_f ; +LOCAL IUH L22_5if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_5if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_5if_f = (IHPE)L22_5if_f ; +GLOBAL IUH S_2743_Chain4ByteWrite_00000000_0000001f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2743_Chain4ByteWrite_00000000_0000001f_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2743_Chain4ByteWrite_00000000_0000001f = (IHPE)S_2743_Chain4ByteWrite_00000000_0000001f ; +LOCAL IUH L13_2723if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2723if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2723if_f = (IHPE)L13_2723if_f ; +GLOBAL IUH S_2744_Chain4ByteFill_00000000_00000008 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2744_Chain4ByteFill_00000000_00000008_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2744_Chain4ByteFill_00000000_00000008 = (IHPE)S_2744_Chain4ByteFill_00000000_00000008 ; +LOCAL IUH L13_2724if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2724if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2724if_f = (IHPE)L13_2724if_f ; +LOCAL IUH L22_6if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_6if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_6if_f = (IHPE)L22_6if_f ; +LOCAL IUH L22_7if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_7if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_7if_f = (IHPE)L22_7if_f ; +LOCAL IUH L22_8if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_8if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_8if_f = (IHPE)L22_8if_f ; +LOCAL IUH L22_9if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_9if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_9if_f = (IHPE)L22_9if_f ; +GLOBAL IUH S_2745_Chain41PlaneByteFill IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2745_Chain41PlaneByteFill_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2745_Chain41PlaneByteFill = (IHPE)S_2745_Chain41PlaneByteFill ; +LOCAL IUH L13_2725if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2725if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2725if_f = (IHPE)L13_2725if_f ; +LOCAL IUH L22_10w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_10w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_10w_t = (IHPE)L22_10w_t ; +LOCAL IUH L22_11w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_11w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_11w_d = (IHPE)L22_11w_d ; +GLOBAL IUH S_2746_Chain4ByteFill_00000000_00000009 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2746_Chain4ByteFill_00000000_00000009_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2746_Chain4ByteFill_00000000_00000009 = (IHPE)S_2746_Chain4ByteFill_00000000_00000009 ; +LOCAL IUH L13_2726if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2726if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2726if_f = (IHPE)L13_2726if_f ; +GLOBAL IUH S_2747_Chain44PlaneByteFill IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2747_Chain44PlaneByteFill_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2747_Chain44PlaneByteFill = (IHPE)S_2747_Chain44PlaneByteFill ; +LOCAL IUH L13_2727if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2727if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2727if_f = (IHPE)L13_2727if_f ; +LOCAL IUH L22_12w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_12w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_12w_t = (IHPE)L22_12w_t ; +LOCAL IUH L22_13w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_13w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_13w_d = (IHPE)L22_13w_d ; +GLOBAL IUH S_2748_Chain4ByteFill_00000000_0000000e IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2748_Chain4ByteFill_00000000_0000000e_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2748_Chain4ByteFill_00000000_0000000e = (IHPE)S_2748_Chain4ByteFill_00000000_0000000e ; +LOCAL IUH L13_2728if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2728if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2728if_f = (IHPE)L13_2728if_f ; +LOCAL IUH L22_14if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_14if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_14if_f = (IHPE)L22_14if_f ; +LOCAL IUH L22_15if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_15if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_15if_f = (IHPE)L22_15if_f ; +LOCAL IUH L22_16if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_16if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_16if_f = (IHPE)L22_16if_f ; +LOCAL IUH L22_17if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_17if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_17if_f = (IHPE)L22_17if_f ; +GLOBAL IUH S_2749_Chain4ByteFill_00000000_0000000f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2749_Chain4ByteFill_00000000_0000000f_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2749_Chain4ByteFill_00000000_0000000f = (IHPE)S_2749_Chain4ByteFill_00000000_0000000f ; +LOCAL IUH L13_2729if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2729if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2729if_f = (IHPE)L13_2729if_f ; +GLOBAL IUH S_2750_Chain4ByteFill_00000000_00000010 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2750_Chain4ByteFill_00000000_00000010_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2750_Chain4ByteFill_00000000_00000010 = (IHPE)S_2750_Chain4ByteFill_00000000_00000010 ; +LOCAL IUH L13_2730if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2730if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2730if_f = (IHPE)L13_2730if_f ; +LOCAL IUH L22_18if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_18if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_18if_f = (IHPE)L22_18if_f ; +LOCAL IUH L22_19if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_19if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_19if_f = (IHPE)L22_19if_f ; +LOCAL IUH L22_20if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_20if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_20if_f = (IHPE)L22_20if_f ; +LOCAL IUH L22_21if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_21if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_21if_f = (IHPE)L22_21if_f ; +GLOBAL IUH S_2751_Chain4ByteFill_00000000_00000011 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2751_Chain4ByteFill_00000000_00000011_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2751_Chain4ByteFill_00000000_00000011 = (IHPE)S_2751_Chain4ByteFill_00000000_00000011 ; +LOCAL IUH L13_2731if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2731if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2731if_f = (IHPE)L13_2731if_f ; +GLOBAL IUH S_2752_Chain4ByteFill_00000000_00000016 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2752_Chain4ByteFill_00000000_00000016_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2752_Chain4ByteFill_00000000_00000016 = (IHPE)S_2752_Chain4ByteFill_00000000_00000016 ; +LOCAL IUH L13_2732if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2732if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2732if_f = (IHPE)L13_2732if_f ; +LOCAL IUH L22_22if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_22if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_22if_f = (IHPE)L22_22if_f ; +LOCAL IUH L22_23if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_23if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_23if_f = (IHPE)L22_23if_f ; +LOCAL IUH L22_24if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_24if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_24if_f = (IHPE)L22_24if_f ; +LOCAL IUH L22_25if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_25if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_25if_f = (IHPE)L22_25if_f ; +GLOBAL IUH S_2753_Chain4ByteFill_00000000_00000017 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2753_Chain4ByteFill_00000000_00000017_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2753_Chain4ByteFill_00000000_00000017 = (IHPE)S_2753_Chain4ByteFill_00000000_00000017 ; +LOCAL IUH L13_2733if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2733if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2733if_f = (IHPE)L13_2733if_f ; +GLOBAL IUH S_2754_Chain4ByteFill_00000000_00000018 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2754_Chain4ByteFill_00000000_00000018_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2754_Chain4ByteFill_00000000_00000018 = (IHPE)S_2754_Chain4ByteFill_00000000_00000018 ; +LOCAL IUH L13_2734if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2734if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2734if_f = (IHPE)L13_2734if_f ; +LOCAL IUH L22_26if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_26if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_26if_f = (IHPE)L22_26if_f ; +LOCAL IUH L22_27if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_27if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_27if_f = (IHPE)L22_27if_f ; +LOCAL IUH L22_28if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_28if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_28if_f = (IHPE)L22_28if_f ; +LOCAL IUH L22_29if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_29if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_29if_f = (IHPE)L22_29if_f ; +GLOBAL IUH S_2755_Chain4ByteFill_00000000_00000019 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2755_Chain4ByteFill_00000000_00000019_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2755_Chain4ByteFill_00000000_00000019 = (IHPE)S_2755_Chain4ByteFill_00000000_00000019 ; +LOCAL IUH L13_2735if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2735if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2735if_f = (IHPE)L13_2735if_f ; +GLOBAL IUH S_2756_Chain4ByteFill_00000000_0000001e IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2756_Chain4ByteFill_00000000_0000001e_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2756_Chain4ByteFill_00000000_0000001e = (IHPE)S_2756_Chain4ByteFill_00000000_0000001e ; +LOCAL IUH L13_2736if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2736if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2736if_f = (IHPE)L13_2736if_f ; +LOCAL IUH L22_30if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_30if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_30if_f = (IHPE)L22_30if_f ; +LOCAL IUH L22_31if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_31if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_31if_f = (IHPE)L22_31if_f ; +LOCAL IUH L22_32if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_32if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_32if_f = (IHPE)L22_32if_f ; +LOCAL IUH L22_33if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_33if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_33if_f = (IHPE)L22_33if_f ; +GLOBAL IUH S_2757_Chain4ByteFill_00000000_0000001f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2757_Chain4ByteFill_00000000_0000001f_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2757_Chain4ByteFill_00000000_0000001f = (IHPE)S_2757_Chain4ByteFill_00000000_0000001f ; +LOCAL IUH L13_2737if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2737if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2737if_f = (IHPE)L13_2737if_f ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + case S_2726_Chain2ModeXBwdWordMove_00000003_id : + S_2726_Chain2ModeXBwdWordMove_00000003 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 36 > 0 ) LocalIUH = (IUH *)malloc ( 36 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2726) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2706if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2706if_f_id : + L13_2706if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_70if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_70if_f_id : + L25_70if_f: ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(57343) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + if (*((IS32 *)&(r20) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )) goto L25_71if_f; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_71if_f_id : + L25_71if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L21_230if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+5) + REGLONG) & (1 << *((IU32 *)&(r21) + REGLONG))) != 0) goto L21_232if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r20))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r20)) = (IS32)(5) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + case L21_232if_f_id : + L21_232if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_234w_d; + case L21_233w_t_id : + L21_233w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(-1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)&(r21)) = *((IUH *)&(r20)) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(*((IHPE *)&(r21)) )) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2685_Chain2ModeXWordWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2685_Chain2ModeXWordWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L21_233w_t; + case L21_234w_d_id : + L21_234w_d: ; + { extern IUH L21_231if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_231if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_230if_f_id : + L21_230if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+5) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) != 0) goto L21_235if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+8)) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16500) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) - *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2679_Chain2ModeXByteWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2679_Chain2ModeXByteWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16501) ; + *((IUH *)&(r21)) = (IS32)(5) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + case L21_235if_f_id : + L21_235if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_237w_d; + case L21_236w_t_id : + L21_236w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16512) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1292) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(*((IHPE *)&(r21))) ) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2685_Chain2ModeXWordWrite_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2685_Chain2ModeXWordWrite_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16513) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L21_236w_t; + case L21_237w_d_id : + L21_237w_d: ; + case L21_231if_d_id : + L21_231if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2727_Chain2DwordMove_00000003_Bwd_id : + S_2727_Chain2DwordMove_00000003_Bwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r21)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r21))) ) = (IS32)(2727) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2707if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2707if_f_id : + L13_2707if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16618) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2728_Chain2ModeXBwdDwordMove_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2728_Chain2ModeXBwdDwordMove_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16619) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2728_Chain2ModeXBwdDwordMove_00000003_id : + S_2728_Chain2ModeXBwdDwordMove_00000003 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2728) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2708if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2708if_f_id : + L13_2708if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16614) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2726_Chain2ModeXBwdWordMove_00000003() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2726_Chain2ModeXBwdWordMove_00000003(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16615) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2729_Chain2ByteMove_Copy_Bwd_id : + S_2729_Chain2ByteMove_Copy_Bwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 40 > 0 ) LocalIUH = (IUH *)malloc ( 40 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2729) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2709if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2709if_f_id : + L13_2709if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16294) ; + *((IUH *)(r1+0)) = (IS32)(16295) ; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1344) ; + if (*((IS32 *)&(r21) + REGLONG) >= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) )) goto L25_72if_f; + *((IUH *)&(r20)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_72if_f_id : + L25_72if_f: ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(57343) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1348) ; + if (*((IS32 *)&(r20) + REGLONG) <= *((IS32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )) goto L25_73if_f; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(57343) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)&(r22) + REGLONG) ; + case L25_73if_f_id : + L25_73if_f: ; + *((IUH *)(r1+0)) = (IS32)(16296) ; + *((IUH *)(r1+0)) = (IS32)(16297) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L21_238if_f; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+0) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L21_240if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r22)) = (IS32)(31) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+0) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = (IS32)(1) ; + { extern IUH L21_241if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_241if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_240if_f_id : + L21_240if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r22)) = (IS32)(31) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+0) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = (IS32)(3) ; + case L21_241if_d_id : + L21_241if_d: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_243w_d; + case L21_242w_t_id : + L21_242w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+5)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+5)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(*((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)(LocalIUH+7)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+7)) ^ *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L21_242w_t; + case L21_243w_d_id : + L21_243w_d: ; + { extern IUH L21_239if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_239if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_238if_f_id : + L21_238if_f: ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)(LocalIUH+0) + REGLONG) & (1 << *((IU32 *)&(r20) + REGLONG))) == 0) goto L21_244if_f; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r22)) = (IS32)(31) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+0) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r22) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = (IS32)(1) ; + { extern IUH L21_245if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_245if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_244if_f_id : + L21_244if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r22)) = (IS32)(31) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+0) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = (IS32)(2) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = (IS32)(3) ; + case L21_245if_d_id : + L21_245if_d: ; + *((IUH *)&(r20)) = (IS32)(0) ; + if(*((IUH *)&(r20))>=8*sizeof(IUH)) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IUH *)(LocalIUH+1)) & (1 << *((IUH *)&(r20)))) == 0) goto L21_246if_f; + *((IUH *)(LocalIUH+8)) = (IS32)(1) ; + { extern IUH L21_247if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_247if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_246if_f_id : + L21_246if_f: ; + *((IUH *)(LocalIUH+8)) = (IS32)(3) ; + case L21_247if_d_id : + L21_247if_d: ; + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)(LocalIUH+1)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L21_249w_d; + case L21_248w_t_id : + L21_248w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+9)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(*((IHPE *)&(r22))) ) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)(LocalIUH+7)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)(LocalIUH+8)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+7)) ^ *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)(LocalIUH+8)) = *((IUH *)(LocalIUH+8)) ^ *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L21_248w_t; + case L21_249w_d_id : + L21_249w_d: ; + case L21_239if_d_id : + L21_239if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2730_Chain2WordMove_Copy_Bwd_id : + S_2730_Chain2WordMove_Copy_Bwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2730) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2710if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2710if_f_id : + L13_2710if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L21_250if_f; + *((IUH *)(r1+0)) = (IS32)(16642) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2729_Chain2ByteMove_Copy_Bwd() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2729_Chain2ByteMove_Copy_Bwd(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16643) ; + { extern IUH L21_251if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L21_251if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L21_250if_f_id : + L21_250if_f: ; + *((IUH *)(r1+0)) = (IS32)(16642) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)&(r3)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2729_Chain2ByteMove_Copy_Bwd() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2729_Chain2ByteMove_Copy_Bwd(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16643) ; + case L21_251if_d_id : + L21_251if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2731_Chain2DwordMove_Copy_Bwd_id : + S_2731_Chain2DwordMove_Copy_Bwd : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2731) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2711if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2711if_f_id : + L13_2711if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16642) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2729_Chain2ByteMove_Copy_Bwd() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2729_Chain2ByteMove_Copy_Bwd(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16643) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2732_Chain4ByteWrite_00000000_00000008_id : + S_2732_Chain4ByteWrite_00000000_00000008 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2732) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2712if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2712if_f_id : + L13_2712if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_0if_f; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + case L22_0if_f_id : + L22_0if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2733_Chain4ByteWrite_00000000_00000009_id : + S_2733_Chain4ByteWrite_00000000_00000009 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2733) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2713if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2713if_f_id : + L13_2713if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2734_Chain4ByteWrite_00000000_0000000e_id : + S_2734_Chain4ByteWrite_00000000_0000000e : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2734) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2714if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2714if_f_id : + L13_2714if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_1if_f; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + case L22_1if_f_id : + L22_1if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2735_Chain4ByteWrite_00000000_0000000f_id : + S_2735_Chain4ByteWrite_00000000_0000000f : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2735) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2715if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2715if_f_id : + L13_2715if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2736_Chain4ByteWrite_00000000_00000010_id : + S_2736_Chain4ByteWrite_00000000_00000010 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2736) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2716if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2716if_f_id : + L13_2716if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_2if_f; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + case L22_2if_f_id : + L22_2if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2737_Chain4ByteWrite_00000000_00000011_id : + S_2737_Chain4ByteWrite_00000000_00000011 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2737) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2717if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2717if_f_id : + L13_2717if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2738_Chain4ByteWrite_00000000_00000016_id : + S_2738_Chain4ByteWrite_00000000_00000016 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2738) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2718if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2718if_f_id : + L13_2718if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_3if_f; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + case L22_3if_f_id : + L22_3if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2739_Chain4ByteWrite_00000000_00000017_id : + S_2739_Chain4ByteWrite_00000000_00000017 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2739) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2719if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2719if_f_id : + L13_2719if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2740_Chain4ByteWrite_00000000_00000018_id : + S_2740_Chain4ByteWrite_00000000_00000018 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2740) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2720if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2720if_f_id : + L13_2720if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_4if_f; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + case L22_4if_f_id : + L22_4if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2741_Chain4ByteWrite_00000000_00000019_id : + S_2741_Chain4ByteWrite_00000000_00000019 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2741) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2721if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2721if_f_id : + L13_2721if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2742_Chain4ByteWrite_00000000_0000001e_id : + S_2742_Chain4ByteWrite_00000000_0000001e : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2742) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2722if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2722if_f_id : + L13_2722if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_5if_f; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + case L22_5if_f_id : + L22_5if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2743_Chain4ByteWrite_00000000_0000001f_id : + S_2743_Chain4ByteWrite_00000000_0000001f : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2743) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2723if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2723if_f_id : + L13_2723if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2744_Chain4ByteFill_00000000_00000008_id : + S_2744_Chain4ByteFill_00000000_00000008 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2744) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2724if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2724if_f_id : + L13_2724if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_6if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_6if_f_id : + L22_6if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_7if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_7if_f_id : + L22_7if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_8if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_8if_f_id : + L22_8if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_9if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_9if_f_id : + L22_9if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2745_Chain41PlaneByteFill_id : + S_2745_Chain41PlaneByteFill : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2745) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2725if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2725if_f_id : + L13_2725if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+4)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L22_11w_d; + case L22_10w_t_id : + L22_10w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+4)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+4)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+4)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L22_10w_t; + case L22_11w_d_id : + L22_11w_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2746_Chain4ByteFill_00000000_00000009_id : + S_2746_Chain4ByteFill_00000000_00000009 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2746) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2726if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2726if_f_id : + L13_2726if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16654) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2747_Chain44PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2747_Chain44PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16655) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2747_Chain44PlaneByteFill_id : + S_2747_Chain44PlaneByteFill : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2747) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2727if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2727if_f_id : + L13_2727if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+4)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L22_13w_d; + case L22_12w_t_id : + L22_12w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+4)) = *((IUH *)(LocalIUH+4)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+4)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+3) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L22_12w_t; + case L22_13w_d_id : + L22_13w_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2748_Chain4ByteFill_00000000_0000000e_id : + S_2748_Chain4ByteFill_00000000_0000000e : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2748) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2728if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2728if_f_id : + L13_2728if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_14if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_14if_f_id : + L22_14if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_15if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_15if_f_id : + L22_15if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_16if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_16if_f_id : + L22_16if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_17if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_17if_f_id : + L22_17if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2749_Chain4ByteFill_00000000_0000000f_id : + S_2749_Chain4ByteFill_00000000_0000000f : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2749) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2729if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2729if_f_id : + L13_2729if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16654) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2747_Chain44PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2747_Chain44PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16655) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2750_Chain4ByteFill_00000000_00000010_id : + S_2750_Chain4ByteFill_00000000_00000010 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2750) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2730if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2730if_f_id : + L13_2730if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_18if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_18if_f_id : + L22_18if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_19if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_19if_f_id : + L22_19if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_20if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_20if_f_id : + L22_20if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_21if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_21if_f_id : + L22_21if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2751_Chain4ByteFill_00000000_00000011_id : + S_2751_Chain4ByteFill_00000000_00000011 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2751) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2731if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2731if_f_id : + L13_2731if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16654) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2747_Chain44PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2747_Chain44PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16655) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2752_Chain4ByteFill_00000000_00000016_id : + S_2752_Chain4ByteFill_00000000_00000016 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2752) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2732if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2732if_f_id : + L13_2732if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_22if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_22if_f_id : + L22_22if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_23if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_23if_f_id : + L22_23if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_24if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_24if_f_id : + L22_24if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_25if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_25if_f_id : + L22_25if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2753_Chain4ByteFill_00000000_00000017_id : + S_2753_Chain4ByteFill_00000000_00000017 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2753) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2733if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2733if_f_id : + L13_2733if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16654) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2747_Chain44PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2747_Chain44PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16655) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2754_Chain4ByteFill_00000000_00000018_id : + S_2754_Chain4ByteFill_00000000_00000018 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2754) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2734if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2734if_f_id : + L13_2734if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_26if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_26if_f_id : + L22_26if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_27if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_27if_f_id : + L22_27if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_28if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_28if_f_id : + L22_28if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_29if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_29if_f_id : + L22_29if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2755_Chain4ByteFill_00000000_00000019_id : + S_2755_Chain4ByteFill_00000000_00000019 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2755) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2735if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2735if_f_id : + L13_2735if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16654) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2747_Chain44PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2747_Chain44PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16655) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2756_Chain4ByteFill_00000000_0000001e_id : + S_2756_Chain4ByteFill_00000000_0000001e : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2756) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2736if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2736if_f_id : + L13_2736if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_30if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_30if_f_id : + L22_30if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_31if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_31if_f_id : + L22_31if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_32if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_32if_f_id : + L22_32if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_33if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_33if_f_id : + L22_33if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2757_Chain4ByteFill_00000000_0000001f_id : + S_2757_Chain4ByteFill_00000000_0000001f : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2757) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2737if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2737if_f_id : + L13_2737if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16654) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2747_Chain44PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2747_Chain44PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16655) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid021.c b/private/mvdm/softpc.new/base/cvidc/sevid021.c new file mode 100644 index 000000000..83782c513 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid021.c @@ -0,0 +1,4413 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_2758_Chain4ByteMove_00000000_00000008_00000000_id, +L13_2738if_f_id, +L22_34if_f_id, +L22_35if_d_id, +S_2759_CopyBytePlnByPlnChain4_00000000_00000008_00000000_00000000_id, +L13_2739if_f_id, +L23_770w_t_id, +L23_772if_f_id, +L23_771w_d_id, +L23_768if_f_id, +L23_773w_t_id, +L23_775if_f_id, +L23_774w_d_id, +L23_769if_d_id, +S_2760_Chain4ByteMove_00000000_00000009_00000000_id, +L13_2740if_f_id, +L22_36if_f_id, +L22_37if_d_id, +S_2761_CopyByte4PlaneChain4_00000000_00000009_00000000_00000000_id, +L13_2741if_f_id, +L23_778w_t_id, +L23_779w_d_id, +L23_776if_f_id, +L23_780w_t_id, +L23_781w_d_id, +L23_777if_d_id, +S_2762_Chain4ByteMove_00000000_0000000e_00000000_id, +L13_2742if_f_id, +L22_38if_f_id, +L22_39if_d_id, +S_2763_CopyBytePlnByPlnChain4_00000000_0000000e_00000000_00000000_id, +L13_2743if_f_id, +L23_784w_t_id, +L23_786if_f_id, +L23_785w_d_id, +L23_782if_f_id, +L23_787w_t_id, +L23_789if_f_id, +L23_788w_d_id, +L23_783if_d_id, +S_2764_Chain4ByteMove_00000000_0000000f_00000000_id, +L13_2744if_f_id, +L22_40if_f_id, +L22_41if_d_id, +S_2765_CopyByte4PlaneChain4_00000000_0000000f_00000000_00000000_id, +L13_2745if_f_id, +L23_792w_t_id, +L23_793w_d_id, +L23_790if_f_id, +L23_794w_t_id, +L23_795w_d_id, +L23_791if_d_id, +S_2766_Chain4ByteMove_00000000_00000010_00000000_id, +L13_2746if_f_id, +L22_42if_f_id, +L22_43if_d_id, +S_2767_CopyBytePlnByPlnChain4_00000000_00000010_00000000_00000000_id, +L13_2747if_f_id, +L23_798w_t_id, +L23_800if_f_id, +L23_799w_d_id, +L23_796if_f_id, +L23_801w_t_id, +L23_803if_f_id, +L23_802w_d_id, +L23_797if_d_id, +S_2768_Chain4ByteMove_00000000_00000011_00000000_id, +L13_2748if_f_id, +L22_44if_f_id, +L22_45if_d_id, +S_2769_CopyByte4PlaneChain4_00000000_00000011_00000000_00000000_id, +L13_2749if_f_id, +L23_806w_t_id, +L23_807w_d_id, +L23_804if_f_id, +L23_808w_t_id, +L23_809w_d_id, +L23_805if_d_id, +S_2770_Chain4ByteMove_00000000_00000016_00000000_id, +L13_2750if_f_id, +L22_46if_f_id, +L22_47if_d_id, +S_2771_CopyBytePlnByPlnChain4_00000000_00000016_00000000_00000000_id, +L13_2751if_f_id, +L23_812w_t_id, +L23_814if_f_id, +L23_813w_d_id, +L23_810if_f_id, +L23_815w_t_id, +L23_817if_f_id, +L23_816w_d_id, +L23_811if_d_id, +S_2772_Chain4ByteMove_00000000_00000017_00000000_id, +L13_2752if_f_id, +L22_48if_f_id, +L22_49if_d_id, +S_2773_CopyByte4PlaneChain4_00000000_00000017_00000000_00000000_id, +L13_2753if_f_id, +L23_820w_t_id, +L23_821w_d_id, +L23_818if_f_id, +L23_822w_t_id, +L23_823w_d_id, +L23_819if_d_id, +S_2774_Chain4ByteMove_00000000_00000018_00000000_id, +L13_2754if_f_id, +L22_50if_f_id, +L22_51if_d_id, +S_2775_CopyBytePlnByPlnChain4_00000000_00000018_00000000_00000000_id, +L13_2755if_f_id, +L23_826w_t_id, +L23_828if_f_id, +L23_827w_d_id, +L23_824if_f_id, +L23_829w_t_id, +L23_831if_f_id, +L23_830w_d_id, +L23_825if_d_id, +S_2776_Chain4ByteMove_00000000_00000019_00000000_id, +L13_2756if_f_id, +L22_52if_f_id, +L22_53if_d_id, +S_2777_CopyByte4PlaneChain4_00000000_00000019_00000000_00000000_id, +L13_2757if_f_id, +L23_834w_t_id, +L23_835w_d_id, +L23_832if_f_id, +L23_836w_t_id, +L23_837w_d_id, +L23_833if_d_id, +S_2778_Chain4ByteMove_00000000_0000001e_00000000_id, +L13_2758if_f_id, +L22_54if_f_id, +L22_55if_d_id, +S_2779_CopyBytePlnByPlnChain4_00000000_0000001e_00000000_00000000_id, +L13_2759if_f_id, +L23_840w_t_id, +L23_842if_f_id, +L23_841w_d_id, +L23_838if_f_id, +L23_843w_t_id, +L23_845if_f_id, +L23_844w_d_id, +L23_839if_d_id, +S_2780_Chain4ByteMove_00000000_0000001f_00000000_id, +L13_2760if_f_id, +L22_56if_f_id, +L22_57if_d_id, +S_2781_CopyByte4PlaneChain4_00000000_0000001f_00000000_00000000_id, +L13_2761if_f_id, +L23_848w_t_id, +L23_849w_d_id, +L23_846if_f_id, +L23_850w_t_id, +L23_851w_d_id, +L23_847if_d_id, +S_2782_Chain4WordWrite_00000000_00000008_id, +L13_2762if_f_id, +L22_58if_f_id, +L22_59if_f_id, +S_2783_Chain4WordWrite_00000000_00000009_id, +L13_2763if_f_id, +S_2784_Chain4WordWrite_00000000_0000000e_id, +L13_2764if_f_id, +L22_60if_f_id, +L22_61if_f_id, +S_2785_Chain4WordWrite_00000000_0000000f_id, +L13_2765if_f_id, +S_2786_Chain4WordWrite_00000000_00000010_id, +L13_2766if_f_id, +L22_62if_f_id, +L22_63if_f_id, +S_2787_Chain4WordWrite_00000000_00000011_id, +L13_2767if_f_id, +S_2788_Chain4WordWrite_00000000_00000016_id, +L13_2768if_f_id, +L22_64if_f_id, +L22_65if_f_id, +S_2789_Chain4WordWrite_00000000_00000017_id, +L13_2769if_f_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_2758_Chain4ByteMove_00000000_00000008_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2758_Chain4ByteMove_00000000_00000008_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2758_Chain4ByteMove_00000000_00000008_00000000 = (IHPE)S_2758_Chain4ByteMove_00000000_00000008_00000000 ; +LOCAL IUH L13_2738if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2738if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2738if_f = (IHPE)L13_2738if_f ; +LOCAL IUH L22_34if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_34if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_34if_f = (IHPE)L22_34if_f ; +LOCAL IUH L22_35if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_35if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_35if_d = (IHPE)L22_35if_d ; +GLOBAL IUH S_2759_CopyBytePlnByPlnChain4_00000000_00000008_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2759_CopyBytePlnByPlnChain4_00000000_00000008_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2759_CopyBytePlnByPlnChain4_00000000_00000008_00000000_00000000 = (IHPE)S_2759_CopyBytePlnByPlnChain4_00000000_00000008_00000000_00000000 ; +LOCAL IUH L13_2739if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2739if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2739if_f = (IHPE)L13_2739if_f ; +LOCAL IUH L23_770w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_770w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_770w_t = (IHPE)L23_770w_t ; +LOCAL IUH L23_772if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_772if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_772if_f = (IHPE)L23_772if_f ; +LOCAL IUH L23_771w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_771w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_771w_d = (IHPE)L23_771w_d ; +LOCAL IUH L23_768if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_768if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_768if_f = (IHPE)L23_768if_f ; +LOCAL IUH L23_773w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_773w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_773w_t = (IHPE)L23_773w_t ; +LOCAL IUH L23_775if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_775if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_775if_f = (IHPE)L23_775if_f ; +LOCAL IUH L23_774w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_774w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_774w_d = (IHPE)L23_774w_d ; +LOCAL IUH L23_769if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_769if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_769if_d = (IHPE)L23_769if_d ; +GLOBAL IUH S_2760_Chain4ByteMove_00000000_00000009_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2760_Chain4ByteMove_00000000_00000009_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2760_Chain4ByteMove_00000000_00000009_00000000 = (IHPE)S_2760_Chain4ByteMove_00000000_00000009_00000000 ; +LOCAL IUH L13_2740if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2740if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2740if_f = (IHPE)L13_2740if_f ; +LOCAL IUH L22_36if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_36if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_36if_f = (IHPE)L22_36if_f ; +LOCAL IUH L22_37if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_37if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_37if_d = (IHPE)L22_37if_d ; +GLOBAL IUH S_2761_CopyByte4PlaneChain4_00000000_00000009_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2761_CopyByte4PlaneChain4_00000000_00000009_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2761_CopyByte4PlaneChain4_00000000_00000009_00000000_00000000 = (IHPE)S_2761_CopyByte4PlaneChain4_00000000_00000009_00000000_00000000 ; +LOCAL IUH L13_2741if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2741if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2741if_f = (IHPE)L13_2741if_f ; +LOCAL IUH L23_778w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_778w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_778w_t = (IHPE)L23_778w_t ; +LOCAL IUH L23_779w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_779w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_779w_d = (IHPE)L23_779w_d ; +LOCAL IUH L23_776if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_776if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_776if_f = (IHPE)L23_776if_f ; +LOCAL IUH L23_780w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_780w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_780w_t = (IHPE)L23_780w_t ; +LOCAL IUH L23_781w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_781w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_781w_d = (IHPE)L23_781w_d ; +LOCAL IUH L23_777if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_777if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_777if_d = (IHPE)L23_777if_d ; +GLOBAL IUH S_2762_Chain4ByteMove_00000000_0000000e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2762_Chain4ByteMove_00000000_0000000e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2762_Chain4ByteMove_00000000_0000000e_00000000 = (IHPE)S_2762_Chain4ByteMove_00000000_0000000e_00000000 ; +LOCAL IUH L13_2742if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2742if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2742if_f = (IHPE)L13_2742if_f ; +LOCAL IUH L22_38if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_38if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_38if_f = (IHPE)L22_38if_f ; +LOCAL IUH L22_39if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_39if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_39if_d = (IHPE)L22_39if_d ; +GLOBAL IUH S_2763_CopyBytePlnByPlnChain4_00000000_0000000e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2763_CopyBytePlnByPlnChain4_00000000_0000000e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2763_CopyBytePlnByPlnChain4_00000000_0000000e_00000000_00000000 = (IHPE)S_2763_CopyBytePlnByPlnChain4_00000000_0000000e_00000000_00000000 ; +LOCAL IUH L13_2743if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2743if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2743if_f = (IHPE)L13_2743if_f ; +LOCAL IUH L23_784w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_784w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_784w_t = (IHPE)L23_784w_t ; +LOCAL IUH L23_786if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_786if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_786if_f = (IHPE)L23_786if_f ; +LOCAL IUH L23_785w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_785w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_785w_d = (IHPE)L23_785w_d ; +LOCAL IUH L23_782if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_782if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_782if_f = (IHPE)L23_782if_f ; +LOCAL IUH L23_787w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_787w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_787w_t = (IHPE)L23_787w_t ; +LOCAL IUH L23_789if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_789if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_789if_f = (IHPE)L23_789if_f ; +LOCAL IUH L23_788w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_788w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_788w_d = (IHPE)L23_788w_d ; +LOCAL IUH L23_783if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_783if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_783if_d = (IHPE)L23_783if_d ; +GLOBAL IUH S_2764_Chain4ByteMove_00000000_0000000f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2764_Chain4ByteMove_00000000_0000000f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2764_Chain4ByteMove_00000000_0000000f_00000000 = (IHPE)S_2764_Chain4ByteMove_00000000_0000000f_00000000 ; +LOCAL IUH L13_2744if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2744if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2744if_f = (IHPE)L13_2744if_f ; +LOCAL IUH L22_40if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_40if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_40if_f = (IHPE)L22_40if_f ; +LOCAL IUH L22_41if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_41if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_41if_d = (IHPE)L22_41if_d ; +GLOBAL IUH S_2765_CopyByte4PlaneChain4_00000000_0000000f_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2765_CopyByte4PlaneChain4_00000000_0000000f_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2765_CopyByte4PlaneChain4_00000000_0000000f_00000000_00000000 = (IHPE)S_2765_CopyByte4PlaneChain4_00000000_0000000f_00000000_00000000 ; +LOCAL IUH L13_2745if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2745if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2745if_f = (IHPE)L13_2745if_f ; +LOCAL IUH L23_792w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_792w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_792w_t = (IHPE)L23_792w_t ; +LOCAL IUH L23_793w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_793w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_793w_d = (IHPE)L23_793w_d ; +LOCAL IUH L23_790if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_790if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_790if_f = (IHPE)L23_790if_f ; +LOCAL IUH L23_794w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_794w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_794w_t = (IHPE)L23_794w_t ; +LOCAL IUH L23_795w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_795w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_795w_d = (IHPE)L23_795w_d ; +LOCAL IUH L23_791if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_791if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_791if_d = (IHPE)L23_791if_d ; +GLOBAL IUH S_2766_Chain4ByteMove_00000000_00000010_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2766_Chain4ByteMove_00000000_00000010_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2766_Chain4ByteMove_00000000_00000010_00000000 = (IHPE)S_2766_Chain4ByteMove_00000000_00000010_00000000 ; +LOCAL IUH L13_2746if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2746if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2746if_f = (IHPE)L13_2746if_f ; +LOCAL IUH L22_42if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_42if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_42if_f = (IHPE)L22_42if_f ; +LOCAL IUH L22_43if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_43if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_43if_d = (IHPE)L22_43if_d ; +GLOBAL IUH S_2767_CopyBytePlnByPlnChain4_00000000_00000010_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2767_CopyBytePlnByPlnChain4_00000000_00000010_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2767_CopyBytePlnByPlnChain4_00000000_00000010_00000000_00000000 = (IHPE)S_2767_CopyBytePlnByPlnChain4_00000000_00000010_00000000_00000000 ; +LOCAL IUH L13_2747if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2747if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2747if_f = (IHPE)L13_2747if_f ; +LOCAL IUH L23_798w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_798w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_798w_t = (IHPE)L23_798w_t ; +LOCAL IUH L23_800if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_800if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_800if_f = (IHPE)L23_800if_f ; +LOCAL IUH L23_799w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_799w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_799w_d = (IHPE)L23_799w_d ; +LOCAL IUH L23_796if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_796if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_796if_f = (IHPE)L23_796if_f ; +LOCAL IUH L23_801w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_801w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_801w_t = (IHPE)L23_801w_t ; +LOCAL IUH L23_803if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_803if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_803if_f = (IHPE)L23_803if_f ; +LOCAL IUH L23_802w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_802w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_802w_d = (IHPE)L23_802w_d ; +LOCAL IUH L23_797if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_797if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_797if_d = (IHPE)L23_797if_d ; +GLOBAL IUH S_2768_Chain4ByteMove_00000000_00000011_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2768_Chain4ByteMove_00000000_00000011_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2768_Chain4ByteMove_00000000_00000011_00000000 = (IHPE)S_2768_Chain4ByteMove_00000000_00000011_00000000 ; +LOCAL IUH L13_2748if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2748if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2748if_f = (IHPE)L13_2748if_f ; +LOCAL IUH L22_44if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_44if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_44if_f = (IHPE)L22_44if_f ; +LOCAL IUH L22_45if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_45if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_45if_d = (IHPE)L22_45if_d ; +GLOBAL IUH S_2769_CopyByte4PlaneChain4_00000000_00000011_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2769_CopyByte4PlaneChain4_00000000_00000011_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2769_CopyByte4PlaneChain4_00000000_00000011_00000000_00000000 = (IHPE)S_2769_CopyByte4PlaneChain4_00000000_00000011_00000000_00000000 ; +LOCAL IUH L13_2749if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2749if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2749if_f = (IHPE)L13_2749if_f ; +LOCAL IUH L23_806w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_806w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_806w_t = (IHPE)L23_806w_t ; +LOCAL IUH L23_807w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_807w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_807w_d = (IHPE)L23_807w_d ; +LOCAL IUH L23_804if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_804if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_804if_f = (IHPE)L23_804if_f ; +LOCAL IUH L23_808w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_808w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_808w_t = (IHPE)L23_808w_t ; +LOCAL IUH L23_809w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_809w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_809w_d = (IHPE)L23_809w_d ; +LOCAL IUH L23_805if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_805if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_805if_d = (IHPE)L23_805if_d ; +GLOBAL IUH S_2770_Chain4ByteMove_00000000_00000016_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2770_Chain4ByteMove_00000000_00000016_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2770_Chain4ByteMove_00000000_00000016_00000000 = (IHPE)S_2770_Chain4ByteMove_00000000_00000016_00000000 ; +LOCAL IUH L13_2750if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2750if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2750if_f = (IHPE)L13_2750if_f ; +LOCAL IUH L22_46if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_46if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_46if_f = (IHPE)L22_46if_f ; +LOCAL IUH L22_47if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_47if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_47if_d = (IHPE)L22_47if_d ; +GLOBAL IUH S_2771_CopyBytePlnByPlnChain4_00000000_00000016_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2771_CopyBytePlnByPlnChain4_00000000_00000016_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2771_CopyBytePlnByPlnChain4_00000000_00000016_00000000_00000000 = (IHPE)S_2771_CopyBytePlnByPlnChain4_00000000_00000016_00000000_00000000 ; +LOCAL IUH L13_2751if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2751if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2751if_f = (IHPE)L13_2751if_f ; +LOCAL IUH L23_812w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_812w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_812w_t = (IHPE)L23_812w_t ; +LOCAL IUH L23_814if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_814if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_814if_f = (IHPE)L23_814if_f ; +LOCAL IUH L23_813w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_813w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_813w_d = (IHPE)L23_813w_d ; +LOCAL IUH L23_810if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_810if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_810if_f = (IHPE)L23_810if_f ; +LOCAL IUH L23_815w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_815w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_815w_t = (IHPE)L23_815w_t ; +LOCAL IUH L23_817if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_817if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_817if_f = (IHPE)L23_817if_f ; +LOCAL IUH L23_816w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_816w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_816w_d = (IHPE)L23_816w_d ; +LOCAL IUH L23_811if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_811if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_811if_d = (IHPE)L23_811if_d ; +GLOBAL IUH S_2772_Chain4ByteMove_00000000_00000017_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2772_Chain4ByteMove_00000000_00000017_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2772_Chain4ByteMove_00000000_00000017_00000000 = (IHPE)S_2772_Chain4ByteMove_00000000_00000017_00000000 ; +LOCAL IUH L13_2752if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2752if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2752if_f = (IHPE)L13_2752if_f ; +LOCAL IUH L22_48if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_48if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_48if_f = (IHPE)L22_48if_f ; +LOCAL IUH L22_49if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_49if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_49if_d = (IHPE)L22_49if_d ; +GLOBAL IUH S_2773_CopyByte4PlaneChain4_00000000_00000017_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2773_CopyByte4PlaneChain4_00000000_00000017_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2773_CopyByte4PlaneChain4_00000000_00000017_00000000_00000000 = (IHPE)S_2773_CopyByte4PlaneChain4_00000000_00000017_00000000_00000000 ; +LOCAL IUH L13_2753if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2753if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2753if_f = (IHPE)L13_2753if_f ; +LOCAL IUH L23_820w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_820w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_820w_t = (IHPE)L23_820w_t ; +LOCAL IUH L23_821w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_821w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_821w_d = (IHPE)L23_821w_d ; +LOCAL IUH L23_818if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_818if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_818if_f = (IHPE)L23_818if_f ; +LOCAL IUH L23_822w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_822w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_822w_t = (IHPE)L23_822w_t ; +LOCAL IUH L23_823w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_823w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_823w_d = (IHPE)L23_823w_d ; +LOCAL IUH L23_819if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_819if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_819if_d = (IHPE)L23_819if_d ; +GLOBAL IUH S_2774_Chain4ByteMove_00000000_00000018_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2774_Chain4ByteMove_00000000_00000018_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2774_Chain4ByteMove_00000000_00000018_00000000 = (IHPE)S_2774_Chain4ByteMove_00000000_00000018_00000000 ; +LOCAL IUH L13_2754if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2754if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2754if_f = (IHPE)L13_2754if_f ; +LOCAL IUH L22_50if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_50if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_50if_f = (IHPE)L22_50if_f ; +LOCAL IUH L22_51if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_51if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_51if_d = (IHPE)L22_51if_d ; +GLOBAL IUH S_2775_CopyBytePlnByPlnChain4_00000000_00000018_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2775_CopyBytePlnByPlnChain4_00000000_00000018_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2775_CopyBytePlnByPlnChain4_00000000_00000018_00000000_00000000 = (IHPE)S_2775_CopyBytePlnByPlnChain4_00000000_00000018_00000000_00000000 ; +LOCAL IUH L13_2755if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2755if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2755if_f = (IHPE)L13_2755if_f ; +LOCAL IUH L23_826w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_826w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_826w_t = (IHPE)L23_826w_t ; +LOCAL IUH L23_828if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_828if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_828if_f = (IHPE)L23_828if_f ; +LOCAL IUH L23_827w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_827w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_827w_d = (IHPE)L23_827w_d ; +LOCAL IUH L23_824if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_824if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_824if_f = (IHPE)L23_824if_f ; +LOCAL IUH L23_829w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_829w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_829w_t = (IHPE)L23_829w_t ; +LOCAL IUH L23_831if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_831if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_831if_f = (IHPE)L23_831if_f ; +LOCAL IUH L23_830w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_830w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_830w_d = (IHPE)L23_830w_d ; +LOCAL IUH L23_825if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_825if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_825if_d = (IHPE)L23_825if_d ; +GLOBAL IUH S_2776_Chain4ByteMove_00000000_00000019_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2776_Chain4ByteMove_00000000_00000019_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2776_Chain4ByteMove_00000000_00000019_00000000 = (IHPE)S_2776_Chain4ByteMove_00000000_00000019_00000000 ; +LOCAL IUH L13_2756if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2756if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2756if_f = (IHPE)L13_2756if_f ; +LOCAL IUH L22_52if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_52if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_52if_f = (IHPE)L22_52if_f ; +LOCAL IUH L22_53if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_53if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_53if_d = (IHPE)L22_53if_d ; +GLOBAL IUH S_2777_CopyByte4PlaneChain4_00000000_00000019_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2777_CopyByte4PlaneChain4_00000000_00000019_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2777_CopyByte4PlaneChain4_00000000_00000019_00000000_00000000 = (IHPE)S_2777_CopyByte4PlaneChain4_00000000_00000019_00000000_00000000 ; +LOCAL IUH L13_2757if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2757if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2757if_f = (IHPE)L13_2757if_f ; +LOCAL IUH L23_834w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_834w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_834w_t = (IHPE)L23_834w_t ; +LOCAL IUH L23_835w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_835w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_835w_d = (IHPE)L23_835w_d ; +LOCAL IUH L23_832if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_832if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_832if_f = (IHPE)L23_832if_f ; +LOCAL IUH L23_836w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_836w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_836w_t = (IHPE)L23_836w_t ; +LOCAL IUH L23_837w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_837w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_837w_d = (IHPE)L23_837w_d ; +LOCAL IUH L23_833if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_833if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_833if_d = (IHPE)L23_833if_d ; +GLOBAL IUH S_2778_Chain4ByteMove_00000000_0000001e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2778_Chain4ByteMove_00000000_0000001e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2778_Chain4ByteMove_00000000_0000001e_00000000 = (IHPE)S_2778_Chain4ByteMove_00000000_0000001e_00000000 ; +LOCAL IUH L13_2758if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2758if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2758if_f = (IHPE)L13_2758if_f ; +LOCAL IUH L22_54if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_54if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_54if_f = (IHPE)L22_54if_f ; +LOCAL IUH L22_55if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_55if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_55if_d = (IHPE)L22_55if_d ; +GLOBAL IUH S_2779_CopyBytePlnByPlnChain4_00000000_0000001e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2779_CopyBytePlnByPlnChain4_00000000_0000001e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2779_CopyBytePlnByPlnChain4_00000000_0000001e_00000000_00000000 = (IHPE)S_2779_CopyBytePlnByPlnChain4_00000000_0000001e_00000000_00000000 ; +LOCAL IUH L13_2759if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2759if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2759if_f = (IHPE)L13_2759if_f ; +LOCAL IUH L23_840w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_840w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_840w_t = (IHPE)L23_840w_t ; +LOCAL IUH L23_842if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_842if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_842if_f = (IHPE)L23_842if_f ; +LOCAL IUH L23_841w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_841w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_841w_d = (IHPE)L23_841w_d ; +LOCAL IUH L23_838if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_838if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_838if_f = (IHPE)L23_838if_f ; +LOCAL IUH L23_843w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_843w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_843w_t = (IHPE)L23_843w_t ; +LOCAL IUH L23_845if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_845if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_845if_f = (IHPE)L23_845if_f ; +LOCAL IUH L23_844w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_844w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_844w_d = (IHPE)L23_844w_d ; +LOCAL IUH L23_839if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_839if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_839if_d = (IHPE)L23_839if_d ; +GLOBAL IUH S_2780_Chain4ByteMove_00000000_0000001f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2780_Chain4ByteMove_00000000_0000001f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2780_Chain4ByteMove_00000000_0000001f_00000000 = (IHPE)S_2780_Chain4ByteMove_00000000_0000001f_00000000 ; +LOCAL IUH L13_2760if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2760if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2760if_f = (IHPE)L13_2760if_f ; +LOCAL IUH L22_56if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_56if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_56if_f = (IHPE)L22_56if_f ; +LOCAL IUH L22_57if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_57if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_57if_d = (IHPE)L22_57if_d ; +GLOBAL IUH S_2781_CopyByte4PlaneChain4_00000000_0000001f_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2781_CopyByte4PlaneChain4_00000000_0000001f_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2781_CopyByte4PlaneChain4_00000000_0000001f_00000000_00000000 = (IHPE)S_2781_CopyByte4PlaneChain4_00000000_0000001f_00000000_00000000 ; +LOCAL IUH L13_2761if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2761if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2761if_f = (IHPE)L13_2761if_f ; +LOCAL IUH L23_848w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_848w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_848w_t = (IHPE)L23_848w_t ; +LOCAL IUH L23_849w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_849w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_849w_d = (IHPE)L23_849w_d ; +LOCAL IUH L23_846if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_846if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_846if_f = (IHPE)L23_846if_f ; +LOCAL IUH L23_850w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_850w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_850w_t = (IHPE)L23_850w_t ; +LOCAL IUH L23_851w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_851w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_851w_d = (IHPE)L23_851w_d ; +LOCAL IUH L23_847if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_847if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_847if_d = (IHPE)L23_847if_d ; +GLOBAL IUH S_2782_Chain4WordWrite_00000000_00000008 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2782_Chain4WordWrite_00000000_00000008_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2782_Chain4WordWrite_00000000_00000008 = (IHPE)S_2782_Chain4WordWrite_00000000_00000008 ; +LOCAL IUH L13_2762if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2762if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2762if_f = (IHPE)L13_2762if_f ; +LOCAL IUH L22_58if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_58if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_58if_f = (IHPE)L22_58if_f ; +LOCAL IUH L22_59if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_59if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_59if_f = (IHPE)L22_59if_f ; +GLOBAL IUH S_2783_Chain4WordWrite_00000000_00000009 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2783_Chain4WordWrite_00000000_00000009_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2783_Chain4WordWrite_00000000_00000009 = (IHPE)S_2783_Chain4WordWrite_00000000_00000009 ; +LOCAL IUH L13_2763if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2763if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2763if_f = (IHPE)L13_2763if_f ; +GLOBAL IUH S_2784_Chain4WordWrite_00000000_0000000e IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2784_Chain4WordWrite_00000000_0000000e_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2784_Chain4WordWrite_00000000_0000000e = (IHPE)S_2784_Chain4WordWrite_00000000_0000000e ; +LOCAL IUH L13_2764if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2764if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2764if_f = (IHPE)L13_2764if_f ; +LOCAL IUH L22_60if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_60if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_60if_f = (IHPE)L22_60if_f ; +LOCAL IUH L22_61if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_61if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_61if_f = (IHPE)L22_61if_f ; +GLOBAL IUH S_2785_Chain4WordWrite_00000000_0000000f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2785_Chain4WordWrite_00000000_0000000f_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2785_Chain4WordWrite_00000000_0000000f = (IHPE)S_2785_Chain4WordWrite_00000000_0000000f ; +LOCAL IUH L13_2765if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2765if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2765if_f = (IHPE)L13_2765if_f ; +GLOBAL IUH S_2786_Chain4WordWrite_00000000_00000010 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2786_Chain4WordWrite_00000000_00000010_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2786_Chain4WordWrite_00000000_00000010 = (IHPE)S_2786_Chain4WordWrite_00000000_00000010 ; +LOCAL IUH L13_2766if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2766if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2766if_f = (IHPE)L13_2766if_f ; +LOCAL IUH L22_62if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_62if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_62if_f = (IHPE)L22_62if_f ; +LOCAL IUH L22_63if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_63if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_63if_f = (IHPE)L22_63if_f ; +GLOBAL IUH S_2787_Chain4WordWrite_00000000_00000011 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2787_Chain4WordWrite_00000000_00000011_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2787_Chain4WordWrite_00000000_00000011 = (IHPE)S_2787_Chain4WordWrite_00000000_00000011 ; +LOCAL IUH L13_2767if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2767if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2767if_f = (IHPE)L13_2767if_f ; +GLOBAL IUH S_2788_Chain4WordWrite_00000000_00000016 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2788_Chain4WordWrite_00000000_00000016_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2788_Chain4WordWrite_00000000_00000016 = (IHPE)S_2788_Chain4WordWrite_00000000_00000016 ; +LOCAL IUH L13_2768if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2768if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2768if_f = (IHPE)L13_2768if_f ; +LOCAL IUH L22_64if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_64if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_64if_f = (IHPE)L22_64if_f ; +LOCAL IUH L22_65if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_65if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_65if_f = (IHPE)L22_65if_f ; +GLOBAL IUH S_2789_Chain4WordWrite_00000000_00000017 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2789_Chain4WordWrite_00000000_00000017_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2789_Chain4WordWrite_00000000_00000017 = (IHPE)S_2789_Chain4WordWrite_00000000_00000017 ; +LOCAL IUH L13_2769if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2769if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2769if_f = (IHPE)L13_2769if_f ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2758_Chain4ByteMove_00000000_00000008_00000000_id : + S_2758_Chain4ByteMove_00000000_00000008_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2758) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2738if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2738if_f_id : + L13_2738if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_34if_f; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2759_CopyBytePlnByPlnChain4_00000000_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2759_CopyBytePlnByPlnChain4_00000000_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + { extern IUH L22_35if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_35if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_34if_f_id : + L22_34if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2759_CopyBytePlnByPlnChain4_00000000_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2759_CopyBytePlnByPlnChain4_00000000_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + case L22_35if_d_id : + L22_35if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2759_CopyBytePlnByPlnChain4_00000000_00000008_00000000_00000000_id : + S_2759_CopyBytePlnByPlnChain4_00000000_00000008_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2759) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2739if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2739if_f_id : + L13_2739if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_768if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_771w_d; + case L23_770w_t_id : + L23_770w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_772if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_772if_f_id : + L23_772if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_770w_t; + case L23_771w_d_id : + L23_771w_d: ; + { extern IUH L23_769if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_769if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_768if_f_id : + L23_768if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_774w_d; + case L23_773w_t_id : + L23_773w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_775if_f; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_775if_f_id : + L23_775if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_773w_t; + case L23_774w_d_id : + L23_774w_d: ; + case L23_769if_d_id : + L23_769if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2760_Chain4ByteMove_00000000_00000009_00000000_id : + S_2760_Chain4ByteMove_00000000_00000009_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2760) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2740if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2740if_f_id : + L13_2740if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_36if_f; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2761_CopyByte4PlaneChain4_00000000_00000009_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2761_CopyByte4PlaneChain4_00000000_00000009_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + { extern IUH L22_37if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_37if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_36if_f_id : + L22_36if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2761_CopyByte4PlaneChain4_00000000_00000009_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2761_CopyByte4PlaneChain4_00000000_00000009_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + case L22_37if_d_id : + L22_37if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2761_CopyByte4PlaneChain4_00000000_00000009_00000000_00000000_id : + S_2761_CopyByte4PlaneChain4_00000000_00000009_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2761) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2741if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2741if_f_id : + L13_2741if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_776if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_779w_d; + case L23_778w_t_id : + L23_778w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_778w_t; + case L23_779w_d_id : + L23_779w_d: ; + { extern IUH L23_777if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_777if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_776if_f_id : + L23_776if_f: ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_781w_d; + case L23_780w_t_id : + L23_780w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_780w_t; + case L23_781w_d_id : + L23_781w_d: ; + case L23_777if_d_id : + L23_777if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2762_Chain4ByteMove_00000000_0000000e_00000000_id : + S_2762_Chain4ByteMove_00000000_0000000e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2762) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2742if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2742if_f_id : + L13_2742if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_38if_f; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2763_CopyBytePlnByPlnChain4_00000000_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2763_CopyBytePlnByPlnChain4_00000000_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + { extern IUH L22_39if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_39if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_38if_f_id : + L22_38if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2763_CopyBytePlnByPlnChain4_00000000_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2763_CopyBytePlnByPlnChain4_00000000_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + case L22_39if_d_id : + L22_39if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2763_CopyBytePlnByPlnChain4_00000000_0000000e_00000000_00000000_id : + S_2763_CopyBytePlnByPlnChain4_00000000_0000000e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2763) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2743if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2743if_f_id : + L13_2743if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_782if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_785w_d; + case L23_784w_t_id : + L23_784w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_786if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_786if_f_id : + L23_786if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_784w_t; + case L23_785w_d_id : + L23_785w_d: ; + { extern IUH L23_783if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_783if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_782if_f_id : + L23_782if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_788w_d; + case L23_787w_t_id : + L23_787w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_789if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r24)) = (IS32)(1308) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)&(r23) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r24))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_789if_f_id : + L23_789if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_787w_t; + case L23_788w_d_id : + L23_788w_d: ; + case L23_783if_d_id : + L23_783if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2764_Chain4ByteMove_00000000_0000000f_00000000_id : + S_2764_Chain4ByteMove_00000000_0000000f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2764) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2744if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2744if_f_id : + L13_2744if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_40if_f; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2765_CopyByte4PlaneChain4_00000000_0000000f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2765_CopyByte4PlaneChain4_00000000_0000000f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + { extern IUH L22_41if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_41if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_40if_f_id : + L22_40if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2765_CopyByte4PlaneChain4_00000000_0000000f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2765_CopyByte4PlaneChain4_00000000_0000000f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + case L22_41if_d_id : + L22_41if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2765_CopyByte4PlaneChain4_00000000_0000000f_00000000_00000000_id : + S_2765_CopyByte4PlaneChain4_00000000_0000000f_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2765) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2745if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2745if_f_id : + L13_2745if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_790if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_793w_d; + case L23_792w_t_id : + L23_792w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_792w_t; + case L23_793w_d_id : + L23_793w_d: ; + { extern IUH L23_791if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_791if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_790if_f_id : + L23_790if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_795w_d; + case L23_794w_t_id : + L23_794w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r24)) = (IS32)(1308) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)&(r23) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r24))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_794w_t; + case L23_795w_d_id : + L23_795w_d: ; + case L23_791if_d_id : + L23_791if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2766_Chain4ByteMove_00000000_00000010_00000000_id : + S_2766_Chain4ByteMove_00000000_00000010_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2766) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2746if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2746if_f_id : + L13_2746if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_42if_f; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2767_CopyBytePlnByPlnChain4_00000000_00000010_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2767_CopyBytePlnByPlnChain4_00000000_00000010_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + { extern IUH L22_43if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_43if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_42if_f_id : + L22_42if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2767_CopyBytePlnByPlnChain4_00000000_00000010_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2767_CopyBytePlnByPlnChain4_00000000_00000010_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + case L22_43if_d_id : + L22_43if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2767_CopyBytePlnByPlnChain4_00000000_00000010_00000000_00000000_id : + S_2767_CopyBytePlnByPlnChain4_00000000_00000010_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2767) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2747if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2747if_f_id : + L13_2747if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_796if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_799w_d; + case L23_798w_t_id : + L23_798w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_800if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_800if_f_id : + L23_800if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_798w_t; + case L23_799w_d_id : + L23_799w_d: ; + { extern IUH L23_797if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_797if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_796if_f_id : + L23_796if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_802w_d; + case L23_801w_t_id : + L23_801w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_803if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_803if_f_id : + L23_803if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_801w_t; + case L23_802w_d_id : + L23_802w_d: ; + case L23_797if_d_id : + L23_797if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2768_Chain4ByteMove_00000000_00000011_00000000_id : + S_2768_Chain4ByteMove_00000000_00000011_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2768) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2748if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2748if_f_id : + L13_2748if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_44if_f; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2769_CopyByte4PlaneChain4_00000000_00000011_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2769_CopyByte4PlaneChain4_00000000_00000011_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + { extern IUH L22_45if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_45if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_44if_f_id : + L22_44if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2769_CopyByte4PlaneChain4_00000000_00000011_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2769_CopyByte4PlaneChain4_00000000_00000011_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + case L22_45if_d_id : + L22_45if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2769_CopyByte4PlaneChain4_00000000_00000011_00000000_00000000_id : + S_2769_CopyByte4PlaneChain4_00000000_00000011_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2769) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2749if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2749if_f_id : + L13_2749if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_804if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_807w_d; + case L23_806w_t_id : + L23_806w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_806w_t; + case L23_807w_d_id : + L23_807w_d: ; + { extern IUH L23_805if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_805if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_804if_f_id : + L23_804if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_809w_d; + case L23_808w_t_id : + L23_808w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_808w_t; + case L23_809w_d_id : + L23_809w_d: ; + case L23_805if_d_id : + L23_805if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2770_Chain4ByteMove_00000000_00000016_00000000_id : + S_2770_Chain4ByteMove_00000000_00000016_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2770) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2750if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2750if_f_id : + L13_2750if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_46if_f; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2771_CopyBytePlnByPlnChain4_00000000_00000016_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2771_CopyBytePlnByPlnChain4_00000000_00000016_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + { extern IUH L22_47if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_47if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_46if_f_id : + L22_46if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2771_CopyBytePlnByPlnChain4_00000000_00000016_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2771_CopyBytePlnByPlnChain4_00000000_00000016_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + case L22_47if_d_id : + L22_47if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2771_CopyBytePlnByPlnChain4_00000000_00000016_00000000_00000000_id : + S_2771_CopyBytePlnByPlnChain4_00000000_00000016_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2771) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2751if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2751if_f_id : + L13_2751if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_810if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_813w_d; + case L23_812w_t_id : + L23_812w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_814if_f; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_814if_f_id : + L23_814if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_812w_t; + case L23_813w_d_id : + L23_813w_d: ; + { extern IUH L23_811if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_811if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_810if_f_id : + L23_810if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_816w_d; + case L23_815w_t_id : + L23_815w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_817if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) ^ *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_817if_f_id : + L23_817if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_815w_t; + case L23_816w_d_id : + L23_816w_d: ; + case L23_811if_d_id : + L23_811if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2772_Chain4ByteMove_00000000_00000017_00000000_id : + S_2772_Chain4ByteMove_00000000_00000017_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2772) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2752if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2752if_f_id : + L13_2752if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_48if_f; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2773_CopyByte4PlaneChain4_00000000_00000017_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2773_CopyByte4PlaneChain4_00000000_00000017_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + { extern IUH L22_49if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_49if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_48if_f_id : + L22_48if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2773_CopyByte4PlaneChain4_00000000_00000017_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2773_CopyByte4PlaneChain4_00000000_00000017_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + case L22_49if_d_id : + L22_49if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2773_CopyByte4PlaneChain4_00000000_00000017_00000000_00000000_id : + S_2773_CopyByte4PlaneChain4_00000000_00000017_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2773) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2753if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2753if_f_id : + L13_2753if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_818if_f; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_821w_d; + case L23_820w_t_id : + L23_820w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_820w_t; + case L23_821w_d_id : + L23_821w_d: ; + { extern IUH L23_819if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_819if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_818if_f_id : + L23_818if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_823w_d; + case L23_822w_t_id : + L23_822w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) ^ *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_822w_t; + case L23_823w_d_id : + L23_823w_d: ; + case L23_819if_d_id : + L23_819if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2774_Chain4ByteMove_00000000_00000018_00000000_id : + S_2774_Chain4ByteMove_00000000_00000018_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2774) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2754if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2754if_f_id : + L13_2754if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_50if_f; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2775_CopyBytePlnByPlnChain4_00000000_00000018_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2775_CopyBytePlnByPlnChain4_00000000_00000018_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + { extern IUH L22_51if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_51if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_50if_f_id : + L22_50if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2775_CopyBytePlnByPlnChain4_00000000_00000018_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2775_CopyBytePlnByPlnChain4_00000000_00000018_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + case L22_51if_d_id : + L22_51if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2775_CopyBytePlnByPlnChain4_00000000_00000018_00000000_00000000_id : + S_2775_CopyBytePlnByPlnChain4_00000000_00000018_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2775) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2755if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2755if_f_id : + L13_2755if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_824if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_827w_d; + case L23_826w_t_id : + L23_826w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_828if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_828if_f_id : + L23_828if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_826w_t; + case L23_827w_d_id : + L23_827w_d: ; + { extern IUH L23_825if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_825if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_824if_f_id : + L23_824if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_830w_d; + case L23_829w_t_id : + L23_829w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_831if_f; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_831if_f_id : + L23_831if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_829w_t; + case L23_830w_d_id : + L23_830w_d: ; + case L23_825if_d_id : + L23_825if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2776_Chain4ByteMove_00000000_00000019_00000000_id : + S_2776_Chain4ByteMove_00000000_00000019_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2776) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2756if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2756if_f_id : + L13_2756if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_52if_f; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2777_CopyByte4PlaneChain4_00000000_00000019_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2777_CopyByte4PlaneChain4_00000000_00000019_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + { extern IUH L22_53if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_53if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_52if_f_id : + L22_52if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2777_CopyByte4PlaneChain4_00000000_00000019_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2777_CopyByte4PlaneChain4_00000000_00000019_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + case L22_53if_d_id : + L22_53if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2777_CopyByte4PlaneChain4_00000000_00000019_00000000_00000000_id : + S_2777_CopyByte4PlaneChain4_00000000_00000019_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2777) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2757if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2757if_f_id : + L13_2757if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_832if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_835w_d; + case L23_834w_t_id : + L23_834w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_834w_t; + case L23_835w_d_id : + L23_835w_d: ; + { extern IUH L23_833if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_833if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_832if_f_id : + L23_832if_f: ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_837w_d; + case L23_836w_t_id : + L23_836w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_836w_t; + case L23_837w_d_id : + L23_837w_d: ; + case L23_833if_d_id : + L23_833if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2778_Chain4ByteMove_00000000_0000001e_00000000_id : + S_2778_Chain4ByteMove_00000000_0000001e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2778) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2758if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2758if_f_id : + L13_2758if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_54if_f; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2779_CopyBytePlnByPlnChain4_00000000_0000001e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2779_CopyBytePlnByPlnChain4_00000000_0000001e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + { extern IUH L22_55if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_55if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_54if_f_id : + L22_54if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2779_CopyBytePlnByPlnChain4_00000000_0000001e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2779_CopyBytePlnByPlnChain4_00000000_0000001e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + case L22_55if_d_id : + L22_55if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2779_CopyBytePlnByPlnChain4_00000000_0000001e_00000000_00000000_id : + S_2779_CopyBytePlnByPlnChain4_00000000_0000001e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2779) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2759if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2759if_f_id : + L13_2759if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_838if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_841w_d; + case L23_840w_t_id : + L23_840w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_842if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_842if_f_id : + L23_842if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_840w_t; + case L23_841w_d_id : + L23_841w_d: ; + { extern IUH L23_839if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_839if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_838if_f_id : + L23_838if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_844w_d; + case L23_843w_t_id : + L23_843w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_845if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r24)) = (IS32)(1308) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)&(r23) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r24))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_845if_f_id : + L23_845if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_843w_t; + case L23_844w_d_id : + L23_844w_d: ; + case L23_839if_d_id : + L23_839if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2780_Chain4ByteMove_00000000_0000001f_00000000_id : + S_2780_Chain4ByteMove_00000000_0000001f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2780) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2760if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2760if_f_id : + L13_2760if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_56if_f; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2781_CopyByte4PlaneChain4_00000000_0000001f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2781_CopyByte4PlaneChain4_00000000_0000001f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + { extern IUH L22_57if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_57if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_56if_f_id : + L22_56if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2781_CopyByte4PlaneChain4_00000000_0000001f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2781_CopyByte4PlaneChain4_00000000_0000001f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + case L22_57if_d_id : + L22_57if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2781_CopyByte4PlaneChain4_00000000_0000001f_00000000_00000000_id : + S_2781_CopyByte4PlaneChain4_00000000_0000001f_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2781) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2761if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2761if_f_id : + L13_2761if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_846if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_849w_d; + case L23_848w_t_id : + L23_848w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_848w_t; + case L23_849w_d_id : + L23_849w_d: ; + { extern IUH L23_847if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_847if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_846if_f_id : + L23_846if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_851w_d; + case L23_850w_t_id : + L23_850w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r24)) = (IS32)(1308) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)&(r23) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r24))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_850w_t; + case L23_851w_d_id : + L23_851w_d: ; + case L23_847if_d_id : + L23_847if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2782_Chain4WordWrite_00000000_00000008_id : + S_2782_Chain4WordWrite_00000000_00000008 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2782) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2762if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2762if_f_id : + L13_2762if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_58if_f; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + case L22_58if_f_id : + L22_58if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_59if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + case L22_59if_f_id : + L22_59if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2783_Chain4WordWrite_00000000_00000009_id : + S_2783_Chain4WordWrite_00000000_00000009 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2783) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2763if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2763if_f_id : + L13_2763if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2784_Chain4WordWrite_00000000_0000000e_id : + S_2784_Chain4WordWrite_00000000_0000000e : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2784) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2764if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2764if_f_id : + L13_2764if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_60if_f; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + case L22_60if_f_id : + L22_60if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_61if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + case L22_61if_f_id : + L22_61if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2785_Chain4WordWrite_00000000_0000000f_id : + S_2785_Chain4WordWrite_00000000_0000000f : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2785) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2765if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2765if_f_id : + L13_2765if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2786_Chain4WordWrite_00000000_00000010_id : + S_2786_Chain4WordWrite_00000000_00000010 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2786) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2766if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2766if_f_id : + L13_2766if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_62if_f; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + case L22_62if_f_id : + L22_62if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_63if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + case L22_63if_f_id : + L22_63if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2787_Chain4WordWrite_00000000_00000011_id : + S_2787_Chain4WordWrite_00000000_00000011 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2787) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2767if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2767if_f_id : + L13_2767if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2788_Chain4WordWrite_00000000_00000016_id : + S_2788_Chain4WordWrite_00000000_00000016 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2788) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2768if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2768if_f_id : + L13_2768if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_64if_f; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + case L22_64if_f_id : + L22_64if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_65if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + case L22_65if_f_id : + L22_65if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2789_Chain4WordWrite_00000000_00000017_id : + S_2789_Chain4WordWrite_00000000_00000017 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2789) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2769if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2769if_f_id : + L13_2769if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid022.c b/private/mvdm/softpc.new/base/cvidc/sevid022.c new file mode 100644 index 000000000..5ebf5242f --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid022.c @@ -0,0 +1,4286 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_2790_Chain4WordWrite_00000000_00000018_id, +L13_2770if_f_id, +L22_66if_f_id, +L22_67if_f_id, +S_2791_Chain4WordWrite_00000000_00000019_id, +L13_2771if_f_id, +S_2792_Chain4WordWrite_00000000_0000001e_id, +L13_2772if_f_id, +L22_68if_f_id, +L22_69if_f_id, +S_2793_Chain4WordWrite_00000000_0000001f_id, +L13_2773if_f_id, +S_2794_Chain4WordFill_00000000_00000008_id, +L13_2774if_f_id, +L22_70if_f_id, +L22_71if_f_id, +L22_72if_f_id, +L22_73if_f_id, +S_2795_Chain4WordFill_00000000_00000009_id, +L13_2775if_f_id, +S_2796_Chain44PlaneWordFill_id, +L13_2776if_f_id, +L22_74w_t_id, +L22_75w_d_id, +S_2797_Chain4WordFill_00000000_0000000e_id, +L13_2777if_f_id, +L22_76if_f_id, +L22_77if_f_id, +L22_78if_f_id, +L22_79if_f_id, +S_2798_Chain4WordFill_00000000_0000000f_id, +L13_2778if_f_id, +S_2799_Chain4WordFill_00000000_00000010_id, +L13_2779if_f_id, +L22_80if_f_id, +L22_81if_f_id, +L22_82if_f_id, +L22_83if_f_id, +S_2800_Chain4WordFill_00000000_00000011_id, +L13_2780if_f_id, +S_2801_Chain4WordFill_00000000_00000016_id, +L13_2781if_f_id, +L22_84if_f_id, +L22_85if_f_id, +L22_86if_f_id, +L22_87if_f_id, +S_2802_Chain4WordFill_00000000_00000017_id, +L13_2782if_f_id, +S_2803_Chain4WordFill_00000000_00000018_id, +L13_2783if_f_id, +L22_88if_f_id, +L22_89if_f_id, +L22_90if_f_id, +L22_91if_f_id, +S_2804_Chain4WordFill_00000000_00000019_id, +L13_2784if_f_id, +S_2805_Chain4WordFill_00000000_0000001e_id, +L13_2785if_f_id, +L22_92if_f_id, +L22_93if_f_id, +L22_94if_f_id, +L22_95if_f_id, +S_2806_Chain4WordFill_00000000_0000001f_id, +L13_2786if_f_id, +S_2807_Chain4WordMove_00000000_00000008_00000000_id, +L13_2787if_f_id, +L22_96if_f_id, +L22_97if_d_id, +S_2808_CopyWordPlnByPlnChain4_00000000_00000008_00000000_00000000_id, +L13_2788if_f_id, +S_2809_Chain4WordMove_00000000_00000009_00000000_id, +L13_2789if_f_id, +L22_98if_f_id, +L22_99if_d_id, +S_2810_CopyWord4PlaneChain4_00000000_00000009_00000000_00000000_id, +L13_2790if_f_id, +L23_854w_t_id, +L23_855w_d_id, +L23_852if_f_id, +L23_856w_t_id, +L23_857w_d_id, +L23_853if_d_id, +S_2811_Chain4WordMove_00000000_0000000e_00000000_id, +L13_2791if_f_id, +L22_100if_f_id, +L22_101if_d_id, +S_2812_CopyWordPlnByPlnChain4_00000000_0000000e_00000000_00000000_id, +L13_2792if_f_id, +S_2813_Chain4WordMove_00000000_0000000f_00000000_id, +L13_2793if_f_id, +L22_102if_f_id, +L22_103if_d_id, +S_2814_CopyWord4PlaneChain4_00000000_0000000f_00000000_00000000_id, +L13_2794if_f_id, +L23_860w_t_id, +L23_861w_d_id, +L23_858if_f_id, +L23_862w_t_id, +L23_863w_d_id, +L23_859if_d_id, +S_2815_Chain4WordMove_00000000_00000010_00000000_id, +L13_2795if_f_id, +L22_104if_f_id, +L22_105if_d_id, +S_2816_CopyWordPlnByPlnChain4_00000000_00000010_00000000_00000000_id, +L13_2796if_f_id, +S_2817_Chain4WordMove_00000000_00000011_00000000_id, +L13_2797if_f_id, +L22_106if_f_id, +L22_107if_d_id, +S_2818_CopyWord4PlaneChain4_00000000_00000011_00000000_00000000_id, +L13_2798if_f_id, +L23_866w_t_id, +L23_867w_d_id, +L23_864if_f_id, +L23_868w_t_id, +L23_869w_d_id, +L23_865if_d_id, +S_2819_Chain4WordMove_00000000_00000016_00000000_id, +L13_2799if_f_id, +L22_108if_f_id, +L22_109if_d_id, +S_2820_CopyWordPlnByPlnChain4_00000000_00000016_00000000_00000000_id, +L13_2800if_f_id, +S_2821_Chain4WordMove_00000000_00000017_00000000_id, +L13_2801if_f_id, +L22_110if_f_id, +L22_111if_d_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_2790_Chain4WordWrite_00000000_00000018 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2790_Chain4WordWrite_00000000_00000018_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2790_Chain4WordWrite_00000000_00000018 = (IHPE)S_2790_Chain4WordWrite_00000000_00000018 ; +LOCAL IUH L13_2770if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2770if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2770if_f = (IHPE)L13_2770if_f ; +LOCAL IUH L22_66if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_66if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_66if_f = (IHPE)L22_66if_f ; +LOCAL IUH L22_67if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_67if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_67if_f = (IHPE)L22_67if_f ; +GLOBAL IUH S_2791_Chain4WordWrite_00000000_00000019 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2791_Chain4WordWrite_00000000_00000019_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2791_Chain4WordWrite_00000000_00000019 = (IHPE)S_2791_Chain4WordWrite_00000000_00000019 ; +LOCAL IUH L13_2771if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2771if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2771if_f = (IHPE)L13_2771if_f ; +GLOBAL IUH S_2792_Chain4WordWrite_00000000_0000001e IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2792_Chain4WordWrite_00000000_0000001e_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2792_Chain4WordWrite_00000000_0000001e = (IHPE)S_2792_Chain4WordWrite_00000000_0000001e ; +LOCAL IUH L13_2772if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2772if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2772if_f = (IHPE)L13_2772if_f ; +LOCAL IUH L22_68if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_68if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_68if_f = (IHPE)L22_68if_f ; +LOCAL IUH L22_69if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_69if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_69if_f = (IHPE)L22_69if_f ; +GLOBAL IUH S_2793_Chain4WordWrite_00000000_0000001f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2793_Chain4WordWrite_00000000_0000001f_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2793_Chain4WordWrite_00000000_0000001f = (IHPE)S_2793_Chain4WordWrite_00000000_0000001f ; +LOCAL IUH L13_2773if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2773if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2773if_f = (IHPE)L13_2773if_f ; +GLOBAL IUH S_2794_Chain4WordFill_00000000_00000008 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2794_Chain4WordFill_00000000_00000008_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2794_Chain4WordFill_00000000_00000008 = (IHPE)S_2794_Chain4WordFill_00000000_00000008 ; +LOCAL IUH L13_2774if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2774if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2774if_f = (IHPE)L13_2774if_f ; +LOCAL IUH L22_70if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_70if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_70if_f = (IHPE)L22_70if_f ; +LOCAL IUH L22_71if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_71if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_71if_f = (IHPE)L22_71if_f ; +LOCAL IUH L22_72if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_72if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_72if_f = (IHPE)L22_72if_f ; +LOCAL IUH L22_73if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_73if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_73if_f = (IHPE)L22_73if_f ; +GLOBAL IUH S_2795_Chain4WordFill_00000000_00000009 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2795_Chain4WordFill_00000000_00000009_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2795_Chain4WordFill_00000000_00000009 = (IHPE)S_2795_Chain4WordFill_00000000_00000009 ; +LOCAL IUH L13_2775if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2775if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2775if_f = (IHPE)L13_2775if_f ; +GLOBAL IUH S_2796_Chain44PlaneWordFill IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2796_Chain44PlaneWordFill_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2796_Chain44PlaneWordFill = (IHPE)S_2796_Chain44PlaneWordFill ; +LOCAL IUH L13_2776if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2776if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2776if_f = (IHPE)L13_2776if_f ; +LOCAL IUH L22_74w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_74w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_74w_t = (IHPE)L22_74w_t ; +LOCAL IUH L22_75w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_75w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_75w_d = (IHPE)L22_75w_d ; +GLOBAL IUH S_2797_Chain4WordFill_00000000_0000000e IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2797_Chain4WordFill_00000000_0000000e_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2797_Chain4WordFill_00000000_0000000e = (IHPE)S_2797_Chain4WordFill_00000000_0000000e ; +LOCAL IUH L13_2777if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2777if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2777if_f = (IHPE)L13_2777if_f ; +LOCAL IUH L22_76if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_76if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_76if_f = (IHPE)L22_76if_f ; +LOCAL IUH L22_77if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_77if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_77if_f = (IHPE)L22_77if_f ; +LOCAL IUH L22_78if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_78if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_78if_f = (IHPE)L22_78if_f ; +LOCAL IUH L22_79if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_79if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_79if_f = (IHPE)L22_79if_f ; +GLOBAL IUH S_2798_Chain4WordFill_00000000_0000000f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2798_Chain4WordFill_00000000_0000000f_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2798_Chain4WordFill_00000000_0000000f = (IHPE)S_2798_Chain4WordFill_00000000_0000000f ; +LOCAL IUH L13_2778if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2778if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2778if_f = (IHPE)L13_2778if_f ; +GLOBAL IUH S_2799_Chain4WordFill_00000000_00000010 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2799_Chain4WordFill_00000000_00000010_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2799_Chain4WordFill_00000000_00000010 = (IHPE)S_2799_Chain4WordFill_00000000_00000010 ; +LOCAL IUH L13_2779if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2779if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2779if_f = (IHPE)L13_2779if_f ; +LOCAL IUH L22_80if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_80if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_80if_f = (IHPE)L22_80if_f ; +LOCAL IUH L22_81if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_81if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_81if_f = (IHPE)L22_81if_f ; +LOCAL IUH L22_82if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_82if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_82if_f = (IHPE)L22_82if_f ; +LOCAL IUH L22_83if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_83if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_83if_f = (IHPE)L22_83if_f ; +GLOBAL IUH S_2800_Chain4WordFill_00000000_00000011 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2800_Chain4WordFill_00000000_00000011_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2800_Chain4WordFill_00000000_00000011 = (IHPE)S_2800_Chain4WordFill_00000000_00000011 ; +LOCAL IUH L13_2780if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2780if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2780if_f = (IHPE)L13_2780if_f ; +GLOBAL IUH S_2801_Chain4WordFill_00000000_00000016 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2801_Chain4WordFill_00000000_00000016_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2801_Chain4WordFill_00000000_00000016 = (IHPE)S_2801_Chain4WordFill_00000000_00000016 ; +LOCAL IUH L13_2781if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2781if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2781if_f = (IHPE)L13_2781if_f ; +LOCAL IUH L22_84if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_84if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_84if_f = (IHPE)L22_84if_f ; +LOCAL IUH L22_85if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_85if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_85if_f = (IHPE)L22_85if_f ; +LOCAL IUH L22_86if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_86if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_86if_f = (IHPE)L22_86if_f ; +LOCAL IUH L22_87if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_87if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_87if_f = (IHPE)L22_87if_f ; +GLOBAL IUH S_2802_Chain4WordFill_00000000_00000017 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2802_Chain4WordFill_00000000_00000017_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2802_Chain4WordFill_00000000_00000017 = (IHPE)S_2802_Chain4WordFill_00000000_00000017 ; +LOCAL IUH L13_2782if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2782if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2782if_f = (IHPE)L13_2782if_f ; +GLOBAL IUH S_2803_Chain4WordFill_00000000_00000018 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2803_Chain4WordFill_00000000_00000018_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2803_Chain4WordFill_00000000_00000018 = (IHPE)S_2803_Chain4WordFill_00000000_00000018 ; +LOCAL IUH L13_2783if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2783if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2783if_f = (IHPE)L13_2783if_f ; +LOCAL IUH L22_88if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_88if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_88if_f = (IHPE)L22_88if_f ; +LOCAL IUH L22_89if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_89if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_89if_f = (IHPE)L22_89if_f ; +LOCAL IUH L22_90if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_90if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_90if_f = (IHPE)L22_90if_f ; +LOCAL IUH L22_91if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_91if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_91if_f = (IHPE)L22_91if_f ; +GLOBAL IUH S_2804_Chain4WordFill_00000000_00000019 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2804_Chain4WordFill_00000000_00000019_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2804_Chain4WordFill_00000000_00000019 = (IHPE)S_2804_Chain4WordFill_00000000_00000019 ; +LOCAL IUH L13_2784if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2784if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2784if_f = (IHPE)L13_2784if_f ; +GLOBAL IUH S_2805_Chain4WordFill_00000000_0000001e IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2805_Chain4WordFill_00000000_0000001e_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2805_Chain4WordFill_00000000_0000001e = (IHPE)S_2805_Chain4WordFill_00000000_0000001e ; +LOCAL IUH L13_2785if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2785if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2785if_f = (IHPE)L13_2785if_f ; +LOCAL IUH L22_92if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_92if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_92if_f = (IHPE)L22_92if_f ; +LOCAL IUH L22_93if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_93if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_93if_f = (IHPE)L22_93if_f ; +LOCAL IUH L22_94if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_94if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_94if_f = (IHPE)L22_94if_f ; +LOCAL IUH L22_95if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_95if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_95if_f = (IHPE)L22_95if_f ; +GLOBAL IUH S_2806_Chain4WordFill_00000000_0000001f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2806_Chain4WordFill_00000000_0000001f_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2806_Chain4WordFill_00000000_0000001f = (IHPE)S_2806_Chain4WordFill_00000000_0000001f ; +LOCAL IUH L13_2786if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2786if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2786if_f = (IHPE)L13_2786if_f ; +GLOBAL IUH S_2807_Chain4WordMove_00000000_00000008_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2807_Chain4WordMove_00000000_00000008_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2807_Chain4WordMove_00000000_00000008_00000000 = (IHPE)S_2807_Chain4WordMove_00000000_00000008_00000000 ; +LOCAL IUH L13_2787if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2787if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2787if_f = (IHPE)L13_2787if_f ; +LOCAL IUH L22_96if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_96if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_96if_f = (IHPE)L22_96if_f ; +LOCAL IUH L22_97if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_97if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_97if_d = (IHPE)L22_97if_d ; +GLOBAL IUH S_2808_CopyWordPlnByPlnChain4_00000000_00000008_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2808_CopyWordPlnByPlnChain4_00000000_00000008_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2808_CopyWordPlnByPlnChain4_00000000_00000008_00000000_00000000 = (IHPE)S_2808_CopyWordPlnByPlnChain4_00000000_00000008_00000000_00000000 ; +LOCAL IUH L13_2788if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2788if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2788if_f = (IHPE)L13_2788if_f ; +GLOBAL IUH S_2809_Chain4WordMove_00000000_00000009_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2809_Chain4WordMove_00000000_00000009_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2809_Chain4WordMove_00000000_00000009_00000000 = (IHPE)S_2809_Chain4WordMove_00000000_00000009_00000000 ; +LOCAL IUH L13_2789if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2789if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2789if_f = (IHPE)L13_2789if_f ; +LOCAL IUH L22_98if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_98if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_98if_f = (IHPE)L22_98if_f ; +LOCAL IUH L22_99if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_99if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_99if_d = (IHPE)L22_99if_d ; +GLOBAL IUH S_2810_CopyWord4PlaneChain4_00000000_00000009_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2810_CopyWord4PlaneChain4_00000000_00000009_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2810_CopyWord4PlaneChain4_00000000_00000009_00000000_00000000 = (IHPE)S_2810_CopyWord4PlaneChain4_00000000_00000009_00000000_00000000 ; +LOCAL IUH L13_2790if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2790if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2790if_f = (IHPE)L13_2790if_f ; +LOCAL IUH L23_854w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_854w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_854w_t = (IHPE)L23_854w_t ; +LOCAL IUH L23_855w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_855w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_855w_d = (IHPE)L23_855w_d ; +LOCAL IUH L23_852if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_852if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_852if_f = (IHPE)L23_852if_f ; +LOCAL IUH L23_856w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_856w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_856w_t = (IHPE)L23_856w_t ; +LOCAL IUH L23_857w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_857w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_857w_d = (IHPE)L23_857w_d ; +LOCAL IUH L23_853if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_853if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_853if_d = (IHPE)L23_853if_d ; +GLOBAL IUH S_2811_Chain4WordMove_00000000_0000000e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2811_Chain4WordMove_00000000_0000000e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2811_Chain4WordMove_00000000_0000000e_00000000 = (IHPE)S_2811_Chain4WordMove_00000000_0000000e_00000000 ; +LOCAL IUH L13_2791if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2791if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2791if_f = (IHPE)L13_2791if_f ; +LOCAL IUH L22_100if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_100if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_100if_f = (IHPE)L22_100if_f ; +LOCAL IUH L22_101if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_101if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_101if_d = (IHPE)L22_101if_d ; +GLOBAL IUH S_2812_CopyWordPlnByPlnChain4_00000000_0000000e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2812_CopyWordPlnByPlnChain4_00000000_0000000e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2812_CopyWordPlnByPlnChain4_00000000_0000000e_00000000_00000000 = (IHPE)S_2812_CopyWordPlnByPlnChain4_00000000_0000000e_00000000_00000000 ; +LOCAL IUH L13_2792if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2792if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2792if_f = (IHPE)L13_2792if_f ; +GLOBAL IUH S_2813_Chain4WordMove_00000000_0000000f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2813_Chain4WordMove_00000000_0000000f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2813_Chain4WordMove_00000000_0000000f_00000000 = (IHPE)S_2813_Chain4WordMove_00000000_0000000f_00000000 ; +LOCAL IUH L13_2793if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2793if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2793if_f = (IHPE)L13_2793if_f ; +LOCAL IUH L22_102if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_102if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_102if_f = (IHPE)L22_102if_f ; +LOCAL IUH L22_103if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_103if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_103if_d = (IHPE)L22_103if_d ; +GLOBAL IUH S_2814_CopyWord4PlaneChain4_00000000_0000000f_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2814_CopyWord4PlaneChain4_00000000_0000000f_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2814_CopyWord4PlaneChain4_00000000_0000000f_00000000_00000000 = (IHPE)S_2814_CopyWord4PlaneChain4_00000000_0000000f_00000000_00000000 ; +LOCAL IUH L13_2794if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2794if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2794if_f = (IHPE)L13_2794if_f ; +LOCAL IUH L23_860w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_860w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_860w_t = (IHPE)L23_860w_t ; +LOCAL IUH L23_861w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_861w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_861w_d = (IHPE)L23_861w_d ; +LOCAL IUH L23_858if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_858if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_858if_f = (IHPE)L23_858if_f ; +LOCAL IUH L23_862w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_862w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_862w_t = (IHPE)L23_862w_t ; +LOCAL IUH L23_863w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_863w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_863w_d = (IHPE)L23_863w_d ; +LOCAL IUH L23_859if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_859if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_859if_d = (IHPE)L23_859if_d ; +GLOBAL IUH S_2815_Chain4WordMove_00000000_00000010_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2815_Chain4WordMove_00000000_00000010_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2815_Chain4WordMove_00000000_00000010_00000000 = (IHPE)S_2815_Chain4WordMove_00000000_00000010_00000000 ; +LOCAL IUH L13_2795if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2795if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2795if_f = (IHPE)L13_2795if_f ; +LOCAL IUH L22_104if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_104if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_104if_f = (IHPE)L22_104if_f ; +LOCAL IUH L22_105if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_105if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_105if_d = (IHPE)L22_105if_d ; +GLOBAL IUH S_2816_CopyWordPlnByPlnChain4_00000000_00000010_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2816_CopyWordPlnByPlnChain4_00000000_00000010_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2816_CopyWordPlnByPlnChain4_00000000_00000010_00000000_00000000 = (IHPE)S_2816_CopyWordPlnByPlnChain4_00000000_00000010_00000000_00000000 ; +LOCAL IUH L13_2796if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2796if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2796if_f = (IHPE)L13_2796if_f ; +GLOBAL IUH S_2817_Chain4WordMove_00000000_00000011_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2817_Chain4WordMove_00000000_00000011_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2817_Chain4WordMove_00000000_00000011_00000000 = (IHPE)S_2817_Chain4WordMove_00000000_00000011_00000000 ; +LOCAL IUH L13_2797if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2797if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2797if_f = (IHPE)L13_2797if_f ; +LOCAL IUH L22_106if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_106if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_106if_f = (IHPE)L22_106if_f ; +LOCAL IUH L22_107if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_107if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_107if_d = (IHPE)L22_107if_d ; +GLOBAL IUH S_2818_CopyWord4PlaneChain4_00000000_00000011_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2818_CopyWord4PlaneChain4_00000000_00000011_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2818_CopyWord4PlaneChain4_00000000_00000011_00000000_00000000 = (IHPE)S_2818_CopyWord4PlaneChain4_00000000_00000011_00000000_00000000 ; +LOCAL IUH L13_2798if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2798if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2798if_f = (IHPE)L13_2798if_f ; +LOCAL IUH L23_866w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_866w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_866w_t = (IHPE)L23_866w_t ; +LOCAL IUH L23_867w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_867w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_867w_d = (IHPE)L23_867w_d ; +LOCAL IUH L23_864if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_864if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_864if_f = (IHPE)L23_864if_f ; +LOCAL IUH L23_868w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_868w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_868w_t = (IHPE)L23_868w_t ; +LOCAL IUH L23_869w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_869w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_869w_d = (IHPE)L23_869w_d ; +LOCAL IUH L23_865if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_865if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_865if_d = (IHPE)L23_865if_d ; +GLOBAL IUH S_2819_Chain4WordMove_00000000_00000016_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2819_Chain4WordMove_00000000_00000016_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2819_Chain4WordMove_00000000_00000016_00000000 = (IHPE)S_2819_Chain4WordMove_00000000_00000016_00000000 ; +LOCAL IUH L13_2799if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2799if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2799if_f = (IHPE)L13_2799if_f ; +LOCAL IUH L22_108if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_108if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_108if_f = (IHPE)L22_108if_f ; +LOCAL IUH L22_109if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_109if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_109if_d = (IHPE)L22_109if_d ; +GLOBAL IUH S_2820_CopyWordPlnByPlnChain4_00000000_00000016_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2820_CopyWordPlnByPlnChain4_00000000_00000016_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2820_CopyWordPlnByPlnChain4_00000000_00000016_00000000_00000000 = (IHPE)S_2820_CopyWordPlnByPlnChain4_00000000_00000016_00000000_00000000 ; +LOCAL IUH L13_2800if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2800if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2800if_f = (IHPE)L13_2800if_f ; +GLOBAL IUH S_2821_Chain4WordMove_00000000_00000017_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2821_Chain4WordMove_00000000_00000017_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2821_Chain4WordMove_00000000_00000017_00000000 = (IHPE)S_2821_Chain4WordMove_00000000_00000017_00000000 ; +LOCAL IUH L13_2801if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2801if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2801if_f = (IHPE)L13_2801if_f ; +LOCAL IUH L22_110if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_110if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_110if_f = (IHPE)L22_110if_f ; +LOCAL IUH L22_111if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_111if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_111if_d = (IHPE)L22_111if_d ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2790_Chain4WordWrite_00000000_00000018_id : + S_2790_Chain4WordWrite_00000000_00000018 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2790) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2770if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2770if_f_id : + L13_2770if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_66if_f; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + case L22_66if_f_id : + L22_66if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_67if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + case L22_67if_f_id : + L22_67if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2791_Chain4WordWrite_00000000_00000019_id : + S_2791_Chain4WordWrite_00000000_00000019 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2791) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2771if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2771if_f_id : + L13_2771if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2792_Chain4WordWrite_00000000_0000001e_id : + S_2792_Chain4WordWrite_00000000_0000001e : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2792) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2772if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2772if_f_id : + L13_2772if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_68if_f; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + case L22_68if_f_id : + L22_68if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_69if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + case L22_69if_f_id : + L22_69if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2793_Chain4WordWrite_00000000_0000001f_id : + S_2793_Chain4WordWrite_00000000_0000001f : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2793) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2773if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2773if_f_id : + L13_2773if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2794_Chain4WordFill_00000000_00000008_id : + S_2794_Chain4WordFill_00000000_00000008 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2794) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2774if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2774if_f_id : + L13_2774if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_70if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_70if_f_id : + L22_70if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_71if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_71if_f_id : + L22_71if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_72if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_72if_f_id : + L22_72if_f: ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_73if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_73if_f_id : + L22_73if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2795_Chain4WordFill_00000000_00000009_id : + S_2795_Chain4WordFill_00000000_00000009 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2795) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2775if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2775if_f_id : + L13_2775if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16666) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2796_Chain44PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2796_Chain44PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16667) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2796_Chain44PlaneWordFill_id : + S_2796_Chain44PlaneWordFill : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2796) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2776if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2776if_f_id : + L13_2776if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU8 *)(LocalIUH+2) + REGBYTE) = *((IU8 *)&(r4) + REGBYTE) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L22_75w_d; + case L22_74w_t_id : + L22_74w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+5)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+1) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)(LocalIUH+5)) = *((IUH *)(LocalIUH+5)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+5)) ; + *((IUH *)&(r22)) = (IS32)(-1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+4) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L22_74w_t; + case L22_75w_d_id : + L22_75w_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2797_Chain4WordFill_00000000_0000000e_id : + S_2797_Chain4WordFill_00000000_0000000e : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2797) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2777if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2777if_f_id : + L13_2777if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_76if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_76if_f_id : + L22_76if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_77if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_77if_f_id : + L22_77if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_78if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_78if_f_id : + L22_78if_f: ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_79if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_79if_f_id : + L22_79if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2798_Chain4WordFill_00000000_0000000f_id : + S_2798_Chain4WordFill_00000000_0000000f : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2798) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2778if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2778if_f_id : + L13_2778if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16666) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2796_Chain44PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2796_Chain44PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16667) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2799_Chain4WordFill_00000000_00000010_id : + S_2799_Chain4WordFill_00000000_00000010 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2799) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2779if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2779if_f_id : + L13_2779if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_80if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_80if_f_id : + L22_80if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_81if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_81if_f_id : + L22_81if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_82if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_82if_f_id : + L22_82if_f: ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_83if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_83if_f_id : + L22_83if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2800_Chain4WordFill_00000000_00000011_id : + S_2800_Chain4WordFill_00000000_00000011 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2800) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2780if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2780if_f_id : + L13_2780if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16666) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2796_Chain44PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2796_Chain44PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16667) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2801_Chain4WordFill_00000000_00000016_id : + S_2801_Chain4WordFill_00000000_00000016 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2801) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2781if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2781if_f_id : + L13_2781if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_84if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_84if_f_id : + L22_84if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_85if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_85if_f_id : + L22_85if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_86if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_86if_f_id : + L22_86if_f: ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_87if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_87if_f_id : + L22_87if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2802_Chain4WordFill_00000000_00000017_id : + S_2802_Chain4WordFill_00000000_00000017 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2802) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2782if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2782if_f_id : + L13_2782if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16666) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2796_Chain44PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2796_Chain44PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16667) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2803_Chain4WordFill_00000000_00000018_id : + S_2803_Chain4WordFill_00000000_00000018 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2803) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2783if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2783if_f_id : + L13_2783if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_88if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_88if_f_id : + L22_88if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_89if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_89if_f_id : + L22_89if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_90if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_90if_f_id : + L22_90if_f: ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_91if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_91if_f_id : + L22_91if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2804_Chain4WordFill_00000000_00000019_id : + S_2804_Chain4WordFill_00000000_00000019 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2804) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2784if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2784if_f_id : + L13_2784if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16666) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2796_Chain44PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2796_Chain44PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16667) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2805_Chain4WordFill_00000000_0000001e_id : + S_2805_Chain4WordFill_00000000_0000001e : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2805) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2785if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2785if_f_id : + L13_2785if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_92if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_92if_f_id : + L22_92if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_93if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_93if_f_id : + L22_93if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_94if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_94if_f_id : + L22_94if_f: ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_95if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_95if_f_id : + L22_95if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2806_Chain4WordFill_00000000_0000001f_id : + S_2806_Chain4WordFill_00000000_0000001f : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2806) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2786if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2786if_f_id : + L13_2786if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16666) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2796_Chain44PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2796_Chain44PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16667) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2807_Chain4WordMove_00000000_00000008_00000000_id : + S_2807_Chain4WordMove_00000000_00000008_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2807) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2787if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2787if_f_id : + L13_2787if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_96if_f; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2808_CopyWordPlnByPlnChain4_00000000_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2808_CopyWordPlnByPlnChain4_00000000_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + { extern IUH L22_97if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_97if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_96if_f_id : + L22_96if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2808_CopyWordPlnByPlnChain4_00000000_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2808_CopyWordPlnByPlnChain4_00000000_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + case L22_97if_d_id : + L22_97if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2808_CopyWordPlnByPlnChain4_00000000_00000008_00000000_00000000_id : + S_2808_CopyWordPlnByPlnChain4_00000000_00000008_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2808) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2788if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2788if_f_id : + L13_2788if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2759_CopyBytePlnByPlnChain4_00000000_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2759_CopyBytePlnByPlnChain4_00000000_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2809_Chain4WordMove_00000000_00000009_00000000_id : + S_2809_Chain4WordMove_00000000_00000009_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2809) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2789if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2789if_f_id : + L13_2789if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_98if_f; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2810_CopyWord4PlaneChain4_00000000_00000009_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2810_CopyWord4PlaneChain4_00000000_00000009_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + { extern IUH L22_99if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_99if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_98if_f_id : + L22_98if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2810_CopyWord4PlaneChain4_00000000_00000009_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2810_CopyWord4PlaneChain4_00000000_00000009_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + case L22_99if_d_id : + L22_99if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2810_CopyWord4PlaneChain4_00000000_00000009_00000000_00000000_id : + S_2810_CopyWord4PlaneChain4_00000000_00000009_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2810) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2790if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2790if_f_id : + L13_2790if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_852if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_855w_d; + case L23_854w_t_id : + L23_854w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_854w_t; + case L23_855w_d_id : + L23_855w_d: ; + { extern IUH L23_853if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_853if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_852if_f_id : + L23_852if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_857w_d; + case L23_856w_t_id : + L23_856w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_856w_t; + case L23_857w_d_id : + L23_857w_d: ; + case L23_853if_d_id : + L23_853if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2811_Chain4WordMove_00000000_0000000e_00000000_id : + S_2811_Chain4WordMove_00000000_0000000e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2811) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2791if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2791if_f_id : + L13_2791if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_100if_f; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2812_CopyWordPlnByPlnChain4_00000000_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2812_CopyWordPlnByPlnChain4_00000000_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + { extern IUH L22_101if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_101if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_100if_f_id : + L22_100if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2812_CopyWordPlnByPlnChain4_00000000_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2812_CopyWordPlnByPlnChain4_00000000_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + case L22_101if_d_id : + L22_101if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2812_CopyWordPlnByPlnChain4_00000000_0000000e_00000000_00000000_id : + S_2812_CopyWordPlnByPlnChain4_00000000_0000000e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2812) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2792if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2792if_f_id : + L13_2792if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2763_CopyBytePlnByPlnChain4_00000000_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2763_CopyBytePlnByPlnChain4_00000000_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2813_Chain4WordMove_00000000_0000000f_00000000_id : + S_2813_Chain4WordMove_00000000_0000000f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2813) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2793if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2793if_f_id : + L13_2793if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_102if_f; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2814_CopyWord4PlaneChain4_00000000_0000000f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2814_CopyWord4PlaneChain4_00000000_0000000f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + { extern IUH L22_103if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_103if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_102if_f_id : + L22_102if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2814_CopyWord4PlaneChain4_00000000_0000000f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2814_CopyWord4PlaneChain4_00000000_0000000f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + case L22_103if_d_id : + L22_103if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2814_CopyWord4PlaneChain4_00000000_0000000f_00000000_00000000_id : + S_2814_CopyWord4PlaneChain4_00000000_0000000f_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2814) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2794if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2794if_f_id : + L13_2794if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_858if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_861w_d; + case L23_860w_t_id : + L23_860w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_860w_t; + case L23_861w_d_id : + L23_861w_d: ; + { extern IUH L23_859if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_859if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_858if_f_id : + L23_858if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_863w_d; + case L23_862w_t_id : + L23_862w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r24)) = (IS32)(1308) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)&(r23) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r24))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r24)) = (IS32)(1308) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)&(r23) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r24))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_862w_t; + case L23_863w_d_id : + L23_863w_d: ; + case L23_859if_d_id : + L23_859if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2815_Chain4WordMove_00000000_00000010_00000000_id : + S_2815_Chain4WordMove_00000000_00000010_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2815) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2795if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2795if_f_id : + L13_2795if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_104if_f; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2816_CopyWordPlnByPlnChain4_00000000_00000010_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2816_CopyWordPlnByPlnChain4_00000000_00000010_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + { extern IUH L22_105if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_105if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_104if_f_id : + L22_104if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2816_CopyWordPlnByPlnChain4_00000000_00000010_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2816_CopyWordPlnByPlnChain4_00000000_00000010_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + case L22_105if_d_id : + L22_105if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2816_CopyWordPlnByPlnChain4_00000000_00000010_00000000_00000000_id : + S_2816_CopyWordPlnByPlnChain4_00000000_00000010_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2816) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2796if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2796if_f_id : + L13_2796if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2767_CopyBytePlnByPlnChain4_00000000_00000010_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2767_CopyBytePlnByPlnChain4_00000000_00000010_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2817_Chain4WordMove_00000000_00000011_00000000_id : + S_2817_Chain4WordMove_00000000_00000011_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2817) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2797if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2797if_f_id : + L13_2797if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_106if_f; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2818_CopyWord4PlaneChain4_00000000_00000011_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2818_CopyWord4PlaneChain4_00000000_00000011_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + { extern IUH L22_107if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_107if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_106if_f_id : + L22_106if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2818_CopyWord4PlaneChain4_00000000_00000011_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2818_CopyWord4PlaneChain4_00000000_00000011_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + case L22_107if_d_id : + L22_107if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2818_CopyWord4PlaneChain4_00000000_00000011_00000000_00000000_id : + S_2818_CopyWord4PlaneChain4_00000000_00000011_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2818) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2798if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2798if_f_id : + L13_2798if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_864if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_867w_d; + case L23_866w_t_id : + L23_866w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_866w_t; + case L23_867w_d_id : + L23_867w_d: ; + { extern IUH L23_865if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_865if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_864if_f_id : + L23_864if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_869w_d; + case L23_868w_t_id : + L23_868w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_868w_t; + case L23_869w_d_id : + L23_869w_d: ; + case L23_865if_d_id : + L23_865if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2819_Chain4WordMove_00000000_00000016_00000000_id : + S_2819_Chain4WordMove_00000000_00000016_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2819) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2799if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2799if_f_id : + L13_2799if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_108if_f; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2820_CopyWordPlnByPlnChain4_00000000_00000016_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2820_CopyWordPlnByPlnChain4_00000000_00000016_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + { extern IUH L22_109if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_109if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_108if_f_id : + L22_108if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2820_CopyWordPlnByPlnChain4_00000000_00000016_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2820_CopyWordPlnByPlnChain4_00000000_00000016_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + case L22_109if_d_id : + L22_109if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2820_CopyWordPlnByPlnChain4_00000000_00000016_00000000_00000000_id : + S_2820_CopyWordPlnByPlnChain4_00000000_00000016_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2820) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2800if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2800if_f_id : + L13_2800if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2771_CopyBytePlnByPlnChain4_00000000_00000016_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2771_CopyBytePlnByPlnChain4_00000000_00000016_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2821_Chain4WordMove_00000000_00000017_00000000_id : + S_2821_Chain4WordMove_00000000_00000017_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2821) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2801if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2801if_f_id : + L13_2801if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_110if_f; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2822_CopyWord4PlaneChain4_00000000_00000017_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2822_CopyWord4PlaneChain4_00000000_00000017_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + { extern IUH L22_111if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_111if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_110if_f_id : + L22_110if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2822_CopyWord4PlaneChain4_00000000_00000017_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2822_CopyWord4PlaneChain4_00000000_00000017_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + case L22_111if_d_id : + L22_111if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid023.c b/private/mvdm/softpc.new/base/cvidc/sevid023.c new file mode 100644 index 000000000..d13574e91 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid023.c @@ -0,0 +1,2875 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_2822_CopyWord4PlaneChain4_00000000_00000017_00000000_00000000_id, +L13_2802if_f_id, +L23_872w_t_id, +L23_873w_d_id, +L23_870if_f_id, +L23_874w_t_id, +L23_875w_d_id, +L23_871if_d_id, +S_2823_Chain4WordMove_00000000_00000018_00000000_id, +L13_2803if_f_id, +L22_112if_f_id, +L22_113if_d_id, +S_2824_CopyWordPlnByPlnChain4_00000000_00000018_00000000_00000000_id, +L13_2804if_f_id, +S_2825_Chain4WordMove_00000000_00000019_00000000_id, +L13_2805if_f_id, +L22_114if_f_id, +L22_115if_d_id, +S_2826_CopyWord4PlaneChain4_00000000_00000019_00000000_00000000_id, +L13_2806if_f_id, +L23_878w_t_id, +L23_879w_d_id, +L23_876if_f_id, +L23_880w_t_id, +L23_881w_d_id, +L23_877if_d_id, +S_2827_Chain4WordMove_00000000_0000001e_00000000_id, +L13_2807if_f_id, +L22_116if_f_id, +L22_117if_d_id, +S_2828_CopyWordPlnByPlnChain4_00000000_0000001e_00000000_00000000_id, +L13_2808if_f_id, +S_2829_Chain4WordMove_00000000_0000001f_00000000_id, +L13_2809if_f_id, +L22_118if_f_id, +L22_119if_d_id, +S_2830_CopyWord4PlaneChain4_00000000_0000001f_00000000_00000000_id, +L13_2810if_f_id, +L23_884w_t_id, +L23_885w_d_id, +L23_882if_f_id, +L23_886w_t_id, +L23_887w_d_id, +L23_883if_d_id, +S_2831_Chain4DwordWrite_00000000_00000008_id, +L13_2811if_f_id, +S_2832_Chain4DwordWrite_00000000_00000009_id, +L13_2812if_f_id, +S_2833_Chain4DwordWrite_00000000_0000000e_id, +L13_2813if_f_id, +S_2834_Chain4DwordWrite_00000000_0000000f_id, +L13_2814if_f_id, +S_2835_Chain4DwordWrite_00000000_00000010_id, +L13_2815if_f_id, +S_2836_Chain4DwordWrite_00000000_00000011_id, +L13_2816if_f_id, +S_2837_Chain4DwordWrite_00000000_00000016_id, +L13_2817if_f_id, +S_2838_Chain4DwordWrite_00000000_00000017_id, +L13_2818if_f_id, +S_2839_Chain4DwordWrite_00000000_00000018_id, +L13_2819if_f_id, +S_2840_Chain4DwordWrite_00000000_00000019_id, +L13_2820if_f_id, +S_2841_Chain4DwordWrite_00000000_0000001e_id, +L13_2821if_f_id, +S_2842_Chain4DwordWrite_00000000_0000001f_id, +L13_2822if_f_id, +S_2843_Chain4DwordFill_00000000_00000008_id, +L13_2823if_f_id, +S_2844_Chain4DwordFill_00000000_00000009_id, +L13_2824if_f_id, +S_2845_Chain4DwordFill_00000000_0000000e_id, +L13_2825if_f_id, +S_2846_Chain4DwordFill_00000000_0000000f_id, +L13_2826if_f_id, +S_2847_Chain4DwordFill_00000000_00000010_id, +L13_2827if_f_id, +S_2848_Chain4DwordFill_00000000_00000011_id, +L13_2828if_f_id, +S_2849_Chain4DwordFill_00000000_00000016_id, +L13_2829if_f_id, +S_2850_Chain4DwordFill_00000000_00000017_id, +L13_2830if_f_id, +S_2851_Chain4DwordFill_00000000_00000018_id, +L13_2831if_f_id, +S_2852_Chain4DwordFill_00000000_00000019_id, +L13_2832if_f_id, +S_2853_Chain4DwordFill_00000000_0000001e_id, +L13_2833if_f_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_2822_CopyWord4PlaneChain4_00000000_00000017_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2822_CopyWord4PlaneChain4_00000000_00000017_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2822_CopyWord4PlaneChain4_00000000_00000017_00000000_00000000 = (IHPE)S_2822_CopyWord4PlaneChain4_00000000_00000017_00000000_00000000 ; +LOCAL IUH L13_2802if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2802if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2802if_f = (IHPE)L13_2802if_f ; +LOCAL IUH L23_872w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_872w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_872w_t = (IHPE)L23_872w_t ; +LOCAL IUH L23_873w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_873w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_873w_d = (IHPE)L23_873w_d ; +LOCAL IUH L23_870if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_870if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_870if_f = (IHPE)L23_870if_f ; +LOCAL IUH L23_874w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_874w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_874w_t = (IHPE)L23_874w_t ; +LOCAL IUH L23_875w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_875w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_875w_d = (IHPE)L23_875w_d ; +LOCAL IUH L23_871if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_871if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_871if_d = (IHPE)L23_871if_d ; +GLOBAL IUH S_2823_Chain4WordMove_00000000_00000018_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2823_Chain4WordMove_00000000_00000018_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2823_Chain4WordMove_00000000_00000018_00000000 = (IHPE)S_2823_Chain4WordMove_00000000_00000018_00000000 ; +LOCAL IUH L13_2803if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2803if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2803if_f = (IHPE)L13_2803if_f ; +LOCAL IUH L22_112if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_112if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_112if_f = (IHPE)L22_112if_f ; +LOCAL IUH L22_113if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_113if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_113if_d = (IHPE)L22_113if_d ; +GLOBAL IUH S_2824_CopyWordPlnByPlnChain4_00000000_00000018_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2824_CopyWordPlnByPlnChain4_00000000_00000018_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2824_CopyWordPlnByPlnChain4_00000000_00000018_00000000_00000000 = (IHPE)S_2824_CopyWordPlnByPlnChain4_00000000_00000018_00000000_00000000 ; +LOCAL IUH L13_2804if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2804if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2804if_f = (IHPE)L13_2804if_f ; +GLOBAL IUH S_2825_Chain4WordMove_00000000_00000019_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2825_Chain4WordMove_00000000_00000019_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2825_Chain4WordMove_00000000_00000019_00000000 = (IHPE)S_2825_Chain4WordMove_00000000_00000019_00000000 ; +LOCAL IUH L13_2805if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2805if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2805if_f = (IHPE)L13_2805if_f ; +LOCAL IUH L22_114if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_114if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_114if_f = (IHPE)L22_114if_f ; +LOCAL IUH L22_115if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_115if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_115if_d = (IHPE)L22_115if_d ; +GLOBAL IUH S_2826_CopyWord4PlaneChain4_00000000_00000019_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2826_CopyWord4PlaneChain4_00000000_00000019_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2826_CopyWord4PlaneChain4_00000000_00000019_00000000_00000000 = (IHPE)S_2826_CopyWord4PlaneChain4_00000000_00000019_00000000_00000000 ; +LOCAL IUH L13_2806if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2806if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2806if_f = (IHPE)L13_2806if_f ; +LOCAL IUH L23_878w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_878w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_878w_t = (IHPE)L23_878w_t ; +LOCAL IUH L23_879w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_879w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_879w_d = (IHPE)L23_879w_d ; +LOCAL IUH L23_876if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_876if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_876if_f = (IHPE)L23_876if_f ; +LOCAL IUH L23_880w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_880w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_880w_t = (IHPE)L23_880w_t ; +LOCAL IUH L23_881w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_881w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_881w_d = (IHPE)L23_881w_d ; +LOCAL IUH L23_877if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_877if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_877if_d = (IHPE)L23_877if_d ; +GLOBAL IUH S_2827_Chain4WordMove_00000000_0000001e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2827_Chain4WordMove_00000000_0000001e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2827_Chain4WordMove_00000000_0000001e_00000000 = (IHPE)S_2827_Chain4WordMove_00000000_0000001e_00000000 ; +LOCAL IUH L13_2807if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2807if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2807if_f = (IHPE)L13_2807if_f ; +LOCAL IUH L22_116if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_116if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_116if_f = (IHPE)L22_116if_f ; +LOCAL IUH L22_117if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_117if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_117if_d = (IHPE)L22_117if_d ; +GLOBAL IUH S_2828_CopyWordPlnByPlnChain4_00000000_0000001e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2828_CopyWordPlnByPlnChain4_00000000_0000001e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2828_CopyWordPlnByPlnChain4_00000000_0000001e_00000000_00000000 = (IHPE)S_2828_CopyWordPlnByPlnChain4_00000000_0000001e_00000000_00000000 ; +LOCAL IUH L13_2808if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2808if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2808if_f = (IHPE)L13_2808if_f ; +GLOBAL IUH S_2829_Chain4WordMove_00000000_0000001f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2829_Chain4WordMove_00000000_0000001f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2829_Chain4WordMove_00000000_0000001f_00000000 = (IHPE)S_2829_Chain4WordMove_00000000_0000001f_00000000 ; +LOCAL IUH L13_2809if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2809if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2809if_f = (IHPE)L13_2809if_f ; +LOCAL IUH L22_118if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_118if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_118if_f = (IHPE)L22_118if_f ; +LOCAL IUH L22_119if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_119if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_119if_d = (IHPE)L22_119if_d ; +GLOBAL IUH S_2830_CopyWord4PlaneChain4_00000000_0000001f_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2830_CopyWord4PlaneChain4_00000000_0000001f_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2830_CopyWord4PlaneChain4_00000000_0000001f_00000000_00000000 = (IHPE)S_2830_CopyWord4PlaneChain4_00000000_0000001f_00000000_00000000 ; +LOCAL IUH L13_2810if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2810if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2810if_f = (IHPE)L13_2810if_f ; +LOCAL IUH L23_884w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_884w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_884w_t = (IHPE)L23_884w_t ; +LOCAL IUH L23_885w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_885w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_885w_d = (IHPE)L23_885w_d ; +LOCAL IUH L23_882if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_882if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_882if_f = (IHPE)L23_882if_f ; +LOCAL IUH L23_886w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_886w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_886w_t = (IHPE)L23_886w_t ; +LOCAL IUH L23_887w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_887w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_887w_d = (IHPE)L23_887w_d ; +LOCAL IUH L23_883if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_883if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_883if_d = (IHPE)L23_883if_d ; +GLOBAL IUH S_2831_Chain4DwordWrite_00000000_00000008 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2831_Chain4DwordWrite_00000000_00000008_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2831_Chain4DwordWrite_00000000_00000008 = (IHPE)S_2831_Chain4DwordWrite_00000000_00000008 ; +LOCAL IUH L13_2811if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2811if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2811if_f = (IHPE)L13_2811if_f ; +GLOBAL IUH S_2832_Chain4DwordWrite_00000000_00000009 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2832_Chain4DwordWrite_00000000_00000009_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2832_Chain4DwordWrite_00000000_00000009 = (IHPE)S_2832_Chain4DwordWrite_00000000_00000009 ; +LOCAL IUH L13_2812if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2812if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2812if_f = (IHPE)L13_2812if_f ; +GLOBAL IUH S_2833_Chain4DwordWrite_00000000_0000000e IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2833_Chain4DwordWrite_00000000_0000000e_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2833_Chain4DwordWrite_00000000_0000000e = (IHPE)S_2833_Chain4DwordWrite_00000000_0000000e ; +LOCAL IUH L13_2813if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2813if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2813if_f = (IHPE)L13_2813if_f ; +GLOBAL IUH S_2834_Chain4DwordWrite_00000000_0000000f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2834_Chain4DwordWrite_00000000_0000000f_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2834_Chain4DwordWrite_00000000_0000000f = (IHPE)S_2834_Chain4DwordWrite_00000000_0000000f ; +LOCAL IUH L13_2814if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2814if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2814if_f = (IHPE)L13_2814if_f ; +GLOBAL IUH S_2835_Chain4DwordWrite_00000000_00000010 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2835_Chain4DwordWrite_00000000_00000010_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2835_Chain4DwordWrite_00000000_00000010 = (IHPE)S_2835_Chain4DwordWrite_00000000_00000010 ; +LOCAL IUH L13_2815if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2815if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2815if_f = (IHPE)L13_2815if_f ; +GLOBAL IUH S_2836_Chain4DwordWrite_00000000_00000011 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2836_Chain4DwordWrite_00000000_00000011_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2836_Chain4DwordWrite_00000000_00000011 = (IHPE)S_2836_Chain4DwordWrite_00000000_00000011 ; +LOCAL IUH L13_2816if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2816if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2816if_f = (IHPE)L13_2816if_f ; +GLOBAL IUH S_2837_Chain4DwordWrite_00000000_00000016 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2837_Chain4DwordWrite_00000000_00000016_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2837_Chain4DwordWrite_00000000_00000016 = (IHPE)S_2837_Chain4DwordWrite_00000000_00000016 ; +LOCAL IUH L13_2817if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2817if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2817if_f = (IHPE)L13_2817if_f ; +GLOBAL IUH S_2838_Chain4DwordWrite_00000000_00000017 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2838_Chain4DwordWrite_00000000_00000017_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2838_Chain4DwordWrite_00000000_00000017 = (IHPE)S_2838_Chain4DwordWrite_00000000_00000017 ; +LOCAL IUH L13_2818if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2818if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2818if_f = (IHPE)L13_2818if_f ; +GLOBAL IUH S_2839_Chain4DwordWrite_00000000_00000018 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2839_Chain4DwordWrite_00000000_00000018_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2839_Chain4DwordWrite_00000000_00000018 = (IHPE)S_2839_Chain4DwordWrite_00000000_00000018 ; +LOCAL IUH L13_2819if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2819if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2819if_f = (IHPE)L13_2819if_f ; +GLOBAL IUH S_2840_Chain4DwordWrite_00000000_00000019 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2840_Chain4DwordWrite_00000000_00000019_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2840_Chain4DwordWrite_00000000_00000019 = (IHPE)S_2840_Chain4DwordWrite_00000000_00000019 ; +LOCAL IUH L13_2820if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2820if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2820if_f = (IHPE)L13_2820if_f ; +GLOBAL IUH S_2841_Chain4DwordWrite_00000000_0000001e IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2841_Chain4DwordWrite_00000000_0000001e_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2841_Chain4DwordWrite_00000000_0000001e = (IHPE)S_2841_Chain4DwordWrite_00000000_0000001e ; +LOCAL IUH L13_2821if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2821if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2821if_f = (IHPE)L13_2821if_f ; +GLOBAL IUH S_2842_Chain4DwordWrite_00000000_0000001f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2842_Chain4DwordWrite_00000000_0000001f_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2842_Chain4DwordWrite_00000000_0000001f = (IHPE)S_2842_Chain4DwordWrite_00000000_0000001f ; +LOCAL IUH L13_2822if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2822if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2822if_f = (IHPE)L13_2822if_f ; +GLOBAL IUH S_2843_Chain4DwordFill_00000000_00000008 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2843_Chain4DwordFill_00000000_00000008_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2843_Chain4DwordFill_00000000_00000008 = (IHPE)S_2843_Chain4DwordFill_00000000_00000008 ; +LOCAL IUH L13_2823if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2823if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2823if_f = (IHPE)L13_2823if_f ; +GLOBAL IUH S_2844_Chain4DwordFill_00000000_00000009 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2844_Chain4DwordFill_00000000_00000009_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2844_Chain4DwordFill_00000000_00000009 = (IHPE)S_2844_Chain4DwordFill_00000000_00000009 ; +LOCAL IUH L13_2824if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2824if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2824if_f = (IHPE)L13_2824if_f ; +GLOBAL IUH S_2845_Chain4DwordFill_00000000_0000000e IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2845_Chain4DwordFill_00000000_0000000e_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2845_Chain4DwordFill_00000000_0000000e = (IHPE)S_2845_Chain4DwordFill_00000000_0000000e ; +LOCAL IUH L13_2825if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2825if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2825if_f = (IHPE)L13_2825if_f ; +GLOBAL IUH S_2846_Chain4DwordFill_00000000_0000000f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2846_Chain4DwordFill_00000000_0000000f_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2846_Chain4DwordFill_00000000_0000000f = (IHPE)S_2846_Chain4DwordFill_00000000_0000000f ; +LOCAL IUH L13_2826if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2826if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2826if_f = (IHPE)L13_2826if_f ; +GLOBAL IUH S_2847_Chain4DwordFill_00000000_00000010 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2847_Chain4DwordFill_00000000_00000010_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2847_Chain4DwordFill_00000000_00000010 = (IHPE)S_2847_Chain4DwordFill_00000000_00000010 ; +LOCAL IUH L13_2827if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2827if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2827if_f = (IHPE)L13_2827if_f ; +GLOBAL IUH S_2848_Chain4DwordFill_00000000_00000011 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2848_Chain4DwordFill_00000000_00000011_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2848_Chain4DwordFill_00000000_00000011 = (IHPE)S_2848_Chain4DwordFill_00000000_00000011 ; +LOCAL IUH L13_2828if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2828if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2828if_f = (IHPE)L13_2828if_f ; +GLOBAL IUH S_2849_Chain4DwordFill_00000000_00000016 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2849_Chain4DwordFill_00000000_00000016_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2849_Chain4DwordFill_00000000_00000016 = (IHPE)S_2849_Chain4DwordFill_00000000_00000016 ; +LOCAL IUH L13_2829if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2829if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2829if_f = (IHPE)L13_2829if_f ; +GLOBAL IUH S_2850_Chain4DwordFill_00000000_00000017 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2850_Chain4DwordFill_00000000_00000017_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2850_Chain4DwordFill_00000000_00000017 = (IHPE)S_2850_Chain4DwordFill_00000000_00000017 ; +LOCAL IUH L13_2830if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2830if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2830if_f = (IHPE)L13_2830if_f ; +GLOBAL IUH S_2851_Chain4DwordFill_00000000_00000018 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2851_Chain4DwordFill_00000000_00000018_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2851_Chain4DwordFill_00000000_00000018 = (IHPE)S_2851_Chain4DwordFill_00000000_00000018 ; +LOCAL IUH L13_2831if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2831if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2831if_f = (IHPE)L13_2831if_f ; +GLOBAL IUH S_2852_Chain4DwordFill_00000000_00000019 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2852_Chain4DwordFill_00000000_00000019_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2852_Chain4DwordFill_00000000_00000019 = (IHPE)S_2852_Chain4DwordFill_00000000_00000019 ; +LOCAL IUH L13_2832if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2832if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2832if_f = (IHPE)L13_2832if_f ; +GLOBAL IUH S_2853_Chain4DwordFill_00000000_0000001e IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2853_Chain4DwordFill_00000000_0000001e_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2853_Chain4DwordFill_00000000_0000001e = (IHPE)S_2853_Chain4DwordFill_00000000_0000001e ; +LOCAL IUH L13_2833if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2833if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2833if_f = (IHPE)L13_2833if_f ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + case S_2822_CopyWord4PlaneChain4_00000000_00000017_00000000_00000000_id : + S_2822_CopyWord4PlaneChain4_00000000_00000017_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2822) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2802if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2802if_f_id : + L13_2802if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_870if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_873w_d; + case L23_872w_t_id : + L23_872w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_872w_t; + case L23_873w_d_id : + L23_873w_d: ; + { extern IUH L23_871if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_871if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_870if_f_id : + L23_870if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_875w_d; + case L23_874w_t_id : + L23_874w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) ^ *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) ^ *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_874w_t; + case L23_875w_d_id : + L23_875w_d: ; + case L23_871if_d_id : + L23_871if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2823_Chain4WordMove_00000000_00000018_00000000_id : + S_2823_Chain4WordMove_00000000_00000018_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2823) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2803if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2803if_f_id : + L13_2803if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_112if_f; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2824_CopyWordPlnByPlnChain4_00000000_00000018_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2824_CopyWordPlnByPlnChain4_00000000_00000018_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + { extern IUH L22_113if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_113if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_112if_f_id : + L22_112if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2824_CopyWordPlnByPlnChain4_00000000_00000018_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2824_CopyWordPlnByPlnChain4_00000000_00000018_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + case L22_113if_d_id : + L22_113if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2824_CopyWordPlnByPlnChain4_00000000_00000018_00000000_00000000_id : + S_2824_CopyWordPlnByPlnChain4_00000000_00000018_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2824) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2804if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2804if_f_id : + L13_2804if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2775_CopyBytePlnByPlnChain4_00000000_00000018_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2775_CopyBytePlnByPlnChain4_00000000_00000018_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2825_Chain4WordMove_00000000_00000019_00000000_id : + S_2825_Chain4WordMove_00000000_00000019_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2825) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2805if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2805if_f_id : + L13_2805if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_114if_f; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2826_CopyWord4PlaneChain4_00000000_00000019_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2826_CopyWord4PlaneChain4_00000000_00000019_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + { extern IUH L22_115if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_115if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_114if_f_id : + L22_114if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2826_CopyWord4PlaneChain4_00000000_00000019_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2826_CopyWord4PlaneChain4_00000000_00000019_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + case L22_115if_d_id : + L22_115if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2826_CopyWord4PlaneChain4_00000000_00000019_00000000_00000000_id : + S_2826_CopyWord4PlaneChain4_00000000_00000019_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2826) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2806if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2806if_f_id : + L13_2806if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_876if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_879w_d; + case L23_878w_t_id : + L23_878w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_878w_t; + case L23_879w_d_id : + L23_879w_d: ; + { extern IUH L23_877if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_877if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_876if_f_id : + L23_876if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_881w_d; + case L23_880w_t_id : + L23_880w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_880w_t; + case L23_881w_d_id : + L23_881w_d: ; + case L23_877if_d_id : + L23_877if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2827_Chain4WordMove_00000000_0000001e_00000000_id : + S_2827_Chain4WordMove_00000000_0000001e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2827) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2807if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2807if_f_id : + L13_2807if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_116if_f; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2828_CopyWordPlnByPlnChain4_00000000_0000001e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2828_CopyWordPlnByPlnChain4_00000000_0000001e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + { extern IUH L22_117if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_117if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_116if_f_id : + L22_116if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2828_CopyWordPlnByPlnChain4_00000000_0000001e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2828_CopyWordPlnByPlnChain4_00000000_0000001e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + case L22_117if_d_id : + L22_117if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2828_CopyWordPlnByPlnChain4_00000000_0000001e_00000000_00000000_id : + S_2828_CopyWordPlnByPlnChain4_00000000_0000001e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2828) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2808if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2808if_f_id : + L13_2808if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2779_CopyBytePlnByPlnChain4_00000000_0000001e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2779_CopyBytePlnByPlnChain4_00000000_0000001e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2829_Chain4WordMove_00000000_0000001f_00000000_id : + S_2829_Chain4WordMove_00000000_0000001f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2829) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2809if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2809if_f_id : + L13_2809if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_118if_f; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2830_CopyWord4PlaneChain4_00000000_0000001f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2830_CopyWord4PlaneChain4_00000000_0000001f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + { extern IUH L22_119if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_119if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_118if_f_id : + L22_118if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2830_CopyWord4PlaneChain4_00000000_0000001f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2830_CopyWord4PlaneChain4_00000000_0000001f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + case L22_119if_d_id : + L22_119if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2830_CopyWord4PlaneChain4_00000000_0000001f_00000000_00000000_id : + S_2830_CopyWord4PlaneChain4_00000000_0000001f_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2830) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2810if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2810if_f_id : + L13_2810if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_882if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_885w_d; + case L23_884w_t_id : + L23_884w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_884w_t; + case L23_885w_d_id : + L23_885w_d: ; + { extern IUH L23_883if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_883if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_882if_f_id : + L23_882if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_887w_d; + case L23_886w_t_id : + L23_886w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r24)) = (IS32)(1308) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)&(r23) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r24))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r24)) = (IS32)(1308) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)&(r23) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r24))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_886w_t; + case L23_887w_d_id : + L23_887w_d: ; + case L23_883if_d_id : + L23_883if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2831_Chain4DwordWrite_00000000_00000008_id : + S_2831_Chain4DwordWrite_00000000_00000008 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2831) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2811if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2811if_f_id : + L13_2811if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2782_Chain4WordWrite_00000000_00000008() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2782_Chain4WordWrite_00000000_00000008(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2782_Chain4WordWrite_00000000_00000008() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2782_Chain4WordWrite_00000000_00000008(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2832_Chain4DwordWrite_00000000_00000009_id : + S_2832_Chain4DwordWrite_00000000_00000009 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2832) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2812if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2812if_f_id : + L13_2812if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2783_Chain4WordWrite_00000000_00000009() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2783_Chain4WordWrite_00000000_00000009(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2783_Chain4WordWrite_00000000_00000009() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2783_Chain4WordWrite_00000000_00000009(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2833_Chain4DwordWrite_00000000_0000000e_id : + S_2833_Chain4DwordWrite_00000000_0000000e : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2833) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2813if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2813if_f_id : + L13_2813if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2784_Chain4WordWrite_00000000_0000000e() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2784_Chain4WordWrite_00000000_0000000e(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2784_Chain4WordWrite_00000000_0000000e() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2784_Chain4WordWrite_00000000_0000000e(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2834_Chain4DwordWrite_00000000_0000000f_id : + S_2834_Chain4DwordWrite_00000000_0000000f : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2834) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2814if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2814if_f_id : + L13_2814if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2785_Chain4WordWrite_00000000_0000000f() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2785_Chain4WordWrite_00000000_0000000f(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2785_Chain4WordWrite_00000000_0000000f() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2785_Chain4WordWrite_00000000_0000000f(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2835_Chain4DwordWrite_00000000_00000010_id : + S_2835_Chain4DwordWrite_00000000_00000010 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2835) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2815if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2815if_f_id : + L13_2815if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2786_Chain4WordWrite_00000000_00000010() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2786_Chain4WordWrite_00000000_00000010(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2786_Chain4WordWrite_00000000_00000010() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2786_Chain4WordWrite_00000000_00000010(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2836_Chain4DwordWrite_00000000_00000011_id : + S_2836_Chain4DwordWrite_00000000_00000011 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2836) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2816if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2816if_f_id : + L13_2816if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2787_Chain4WordWrite_00000000_00000011() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2787_Chain4WordWrite_00000000_00000011(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2787_Chain4WordWrite_00000000_00000011() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2787_Chain4WordWrite_00000000_00000011(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2837_Chain4DwordWrite_00000000_00000016_id : + S_2837_Chain4DwordWrite_00000000_00000016 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2837) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2817if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2817if_f_id : + L13_2817if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2788_Chain4WordWrite_00000000_00000016() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2788_Chain4WordWrite_00000000_00000016(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2788_Chain4WordWrite_00000000_00000016() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2788_Chain4WordWrite_00000000_00000016(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2838_Chain4DwordWrite_00000000_00000017_id : + S_2838_Chain4DwordWrite_00000000_00000017 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2838) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2818if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2818if_f_id : + L13_2818if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2789_Chain4WordWrite_00000000_00000017() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2789_Chain4WordWrite_00000000_00000017(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2789_Chain4WordWrite_00000000_00000017() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2789_Chain4WordWrite_00000000_00000017(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2839_Chain4DwordWrite_00000000_00000018_id : + S_2839_Chain4DwordWrite_00000000_00000018 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2839) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2819if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2819if_f_id : + L13_2819if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2790_Chain4WordWrite_00000000_00000018() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2790_Chain4WordWrite_00000000_00000018(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2790_Chain4WordWrite_00000000_00000018() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2790_Chain4WordWrite_00000000_00000018(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2840_Chain4DwordWrite_00000000_00000019_id : + S_2840_Chain4DwordWrite_00000000_00000019 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2840) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2820if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2820if_f_id : + L13_2820if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2791_Chain4WordWrite_00000000_00000019() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2791_Chain4WordWrite_00000000_00000019(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2791_Chain4WordWrite_00000000_00000019() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2791_Chain4WordWrite_00000000_00000019(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2841_Chain4DwordWrite_00000000_0000001e_id : + S_2841_Chain4DwordWrite_00000000_0000001e : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2841) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2821if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2821if_f_id : + L13_2821if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2792_Chain4WordWrite_00000000_0000001e() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2792_Chain4WordWrite_00000000_0000001e(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2792_Chain4WordWrite_00000000_0000001e() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2792_Chain4WordWrite_00000000_0000001e(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2842_Chain4DwordWrite_00000000_0000001f_id : + S_2842_Chain4DwordWrite_00000000_0000001f : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2842) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2822if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2822if_f_id : + L13_2822if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2793_Chain4WordWrite_00000000_0000001f() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2793_Chain4WordWrite_00000000_0000001f(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2793_Chain4WordWrite_00000000_0000001f() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2793_Chain4WordWrite_00000000_0000001f(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2843_Chain4DwordFill_00000000_00000008_id : + S_2843_Chain4DwordFill_00000000_00000008 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2843) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2823if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2823if_f_id : + L13_2823if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2794_Chain4WordFill_00000000_00000008() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2794_Chain4WordFill_00000000_00000008(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2794_Chain4WordFill_00000000_00000008() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2794_Chain4WordFill_00000000_00000008(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2844_Chain4DwordFill_00000000_00000009_id : + S_2844_Chain4DwordFill_00000000_00000009 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2844) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2824if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2824if_f_id : + L13_2824if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2795_Chain4WordFill_00000000_00000009() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2795_Chain4WordFill_00000000_00000009(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2795_Chain4WordFill_00000000_00000009() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2795_Chain4WordFill_00000000_00000009(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2845_Chain4DwordFill_00000000_0000000e_id : + S_2845_Chain4DwordFill_00000000_0000000e : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2845) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2825if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2825if_f_id : + L13_2825if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2797_Chain4WordFill_00000000_0000000e() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2797_Chain4WordFill_00000000_0000000e(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2797_Chain4WordFill_00000000_0000000e() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2797_Chain4WordFill_00000000_0000000e(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2846_Chain4DwordFill_00000000_0000000f_id : + S_2846_Chain4DwordFill_00000000_0000000f : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2846) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2826if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2826if_f_id : + L13_2826if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2798_Chain4WordFill_00000000_0000000f() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2798_Chain4WordFill_00000000_0000000f(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2798_Chain4WordFill_00000000_0000000f() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2798_Chain4WordFill_00000000_0000000f(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2847_Chain4DwordFill_00000000_00000010_id : + S_2847_Chain4DwordFill_00000000_00000010 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2847) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2827if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2827if_f_id : + L13_2827if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2799_Chain4WordFill_00000000_00000010() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2799_Chain4WordFill_00000000_00000010(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2799_Chain4WordFill_00000000_00000010() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2799_Chain4WordFill_00000000_00000010(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2848_Chain4DwordFill_00000000_00000011_id : + S_2848_Chain4DwordFill_00000000_00000011 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2848) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2828if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2828if_f_id : + L13_2828if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2800_Chain4WordFill_00000000_00000011() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2800_Chain4WordFill_00000000_00000011(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2800_Chain4WordFill_00000000_00000011() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2800_Chain4WordFill_00000000_00000011(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2849_Chain4DwordFill_00000000_00000016_id : + S_2849_Chain4DwordFill_00000000_00000016 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2849) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2829if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2829if_f_id : + L13_2829if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2801_Chain4WordFill_00000000_00000016() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2801_Chain4WordFill_00000000_00000016(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2801_Chain4WordFill_00000000_00000016() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2801_Chain4WordFill_00000000_00000016(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2850_Chain4DwordFill_00000000_00000017_id : + S_2850_Chain4DwordFill_00000000_00000017 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2850) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2830if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2830if_f_id : + L13_2830if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2802_Chain4WordFill_00000000_00000017() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2802_Chain4WordFill_00000000_00000017(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2802_Chain4WordFill_00000000_00000017() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2802_Chain4WordFill_00000000_00000017(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2851_Chain4DwordFill_00000000_00000018_id : + S_2851_Chain4DwordFill_00000000_00000018 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2851) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2831if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2831if_f_id : + L13_2831if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2803_Chain4WordFill_00000000_00000018() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2803_Chain4WordFill_00000000_00000018(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2803_Chain4WordFill_00000000_00000018() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2803_Chain4WordFill_00000000_00000018(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2852_Chain4DwordFill_00000000_00000019_id : + S_2852_Chain4DwordFill_00000000_00000019 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2852) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2832if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2832if_f_id : + L13_2832if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2804_Chain4WordFill_00000000_00000019() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2804_Chain4WordFill_00000000_00000019(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2804_Chain4WordFill_00000000_00000019() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2804_Chain4WordFill_00000000_00000019(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2853_Chain4DwordFill_00000000_0000001e_id : + S_2853_Chain4DwordFill_00000000_0000001e : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2853) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2833if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2833if_f_id : + L13_2833if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2805_Chain4WordFill_00000000_0000001e() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2805_Chain4WordFill_00000000_0000001e(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2805_Chain4WordFill_00000000_0000001e() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2805_Chain4WordFill_00000000_0000001e(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid024.c b/private/mvdm/softpc.new/base/cvidc/sevid024.c new file mode 100644 index 000000000..aa8ec217e --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid024.c @@ -0,0 +1,3181 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_2854_Chain4DwordFill_00000000_0000001f_id, +L13_2834if_f_id, +S_2855_Chain4DwordMove_00000000_00000008_00000000_id, +L13_2835if_f_id, +S_2856_Chain4DwordMove_00000000_00000009_00000000_id, +L13_2836if_f_id, +S_2857_Chain4DwordMove_00000000_0000000e_00000000_id, +L13_2837if_f_id, +S_2858_Chain4DwordMove_00000000_0000000f_00000000_id, +L13_2838if_f_id, +S_2859_Chain4DwordMove_00000000_00000010_00000000_id, +L13_2839if_f_id, +S_2860_Chain4DwordMove_00000000_00000011_00000000_id, +L13_2840if_f_id, +S_2861_Chain4DwordMove_00000000_00000016_00000000_id, +L13_2841if_f_id, +S_2862_Chain4DwordMove_00000000_00000017_00000000_id, +L13_2842if_f_id, +S_2863_Chain4DwordMove_00000000_00000018_00000000_id, +L13_2843if_f_id, +S_2864_Chain4DwordMove_00000000_00000019_00000000_id, +L13_2844if_f_id, +S_2865_Chain4DwordMove_00000000_0000001e_00000000_id, +L13_2845if_f_id, +S_2866_Chain4DwordMove_00000000_0000001f_00000000_id, +L13_2846if_f_id, +S_2867_Chain4ByteWrite_00000001_00000000_id, +L13_2847if_f_id, +L22_120if_f_id, +S_2868_Chain4ByteFill_00000001_00000000_id, +L13_2848if_f_id, +L22_121if_f_id, +L22_122if_f_id, +L22_123if_f_id, +L22_124if_f_id, +S_2869_Chain4ByteMove_00000001_00000000_00000000_id, +L13_2849if_f_id, +L22_125if_f_id, +L22_126if_d_id, +S_2870_CopyBytePlnByPlnChain4_00000001_00000000_00000000_00000000_id, +L13_2850if_f_id, +L23_890w_t_id, +L23_892if_f_id, +L23_891w_d_id, +L23_888if_f_id, +L23_893w_t_id, +L23_895if_f_id, +L23_894w_d_id, +L23_889if_d_id, +S_2871_Chain4WordWrite_00000001_00000000_id, +L13_2851if_f_id, +L22_127if_f_id, +L22_128if_f_id, +S_2872_Chain4WordFill_00000001_00000000_id, +L13_2852if_f_id, +L22_129if_f_id, +L22_130if_f_id, +L22_131if_f_id, +L22_132if_f_id, +S_2873_Chain4WordMove_00000001_00000000_00000000_id, +L13_2853if_f_id, +L22_133if_f_id, +L22_135if_f_id, +L22_136if_f_id, +L22_137if_f_id, +L22_138if_f_id, +L22_134if_d_id, +S_2874_Chain4DwordWrite_00000001_00000000_id, +L13_2854if_f_id, +S_2875_Chain4DwordFill_00000001_00000000_id, +L13_2855if_f_id, +S_2876_Chain4DwordMove_00000001_00000000_00000000_id, +L13_2856if_f_id, +S_2877_Chain4ByteWrite_00000002_00000008_id, +L13_2857if_f_id, +L22_139if_f_id, +S_2878_Chain4ByteWrite_00000002_00000009_id, +L13_2858if_f_id, +S_2879_Chain4ByteWrite_00000002_0000000e_id, +L13_2859if_f_id, +L22_140if_f_id, +S_2880_Chain4ByteWrite_00000002_0000000f_id, +L13_2860if_f_id, +S_2881_Chain4ByteFill_00000002_00000008_id, +L13_2861if_f_id, +L22_141if_f_id, +L22_142if_f_id, +L22_143if_f_id, +L22_144if_f_id, +S_2882_Chain4ByteFill_00000002_00000009_id, +L13_2862if_f_id, +S_2883_Chain4ByteFill_00000002_0000000e_id, +L13_2863if_f_id, +L22_145if_f_id, +L22_146if_f_id, +L22_147if_f_id, +L22_148if_f_id, +S_2884_Chain4ByteFill_00000002_0000000f_id, +L13_2864if_f_id, +S_2885_Chain4ByteMove_00000002_00000008_00000000_id, +L13_2865if_f_id, +L22_149if_f_id, +L22_150if_d_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_2854_Chain4DwordFill_00000000_0000001f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2854_Chain4DwordFill_00000000_0000001f_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2854_Chain4DwordFill_00000000_0000001f = (IHPE)S_2854_Chain4DwordFill_00000000_0000001f ; +LOCAL IUH L13_2834if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2834if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2834if_f = (IHPE)L13_2834if_f ; +GLOBAL IUH S_2855_Chain4DwordMove_00000000_00000008_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2855_Chain4DwordMove_00000000_00000008_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2855_Chain4DwordMove_00000000_00000008_00000000 = (IHPE)S_2855_Chain4DwordMove_00000000_00000008_00000000 ; +LOCAL IUH L13_2835if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2835if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2835if_f = (IHPE)L13_2835if_f ; +GLOBAL IUH S_2856_Chain4DwordMove_00000000_00000009_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2856_Chain4DwordMove_00000000_00000009_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2856_Chain4DwordMove_00000000_00000009_00000000 = (IHPE)S_2856_Chain4DwordMove_00000000_00000009_00000000 ; +LOCAL IUH L13_2836if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2836if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2836if_f = (IHPE)L13_2836if_f ; +GLOBAL IUH S_2857_Chain4DwordMove_00000000_0000000e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2857_Chain4DwordMove_00000000_0000000e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2857_Chain4DwordMove_00000000_0000000e_00000000 = (IHPE)S_2857_Chain4DwordMove_00000000_0000000e_00000000 ; +LOCAL IUH L13_2837if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2837if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2837if_f = (IHPE)L13_2837if_f ; +GLOBAL IUH S_2858_Chain4DwordMove_00000000_0000000f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2858_Chain4DwordMove_00000000_0000000f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2858_Chain4DwordMove_00000000_0000000f_00000000 = (IHPE)S_2858_Chain4DwordMove_00000000_0000000f_00000000 ; +LOCAL IUH L13_2838if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2838if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2838if_f = (IHPE)L13_2838if_f ; +GLOBAL IUH S_2859_Chain4DwordMove_00000000_00000010_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2859_Chain4DwordMove_00000000_00000010_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2859_Chain4DwordMove_00000000_00000010_00000000 = (IHPE)S_2859_Chain4DwordMove_00000000_00000010_00000000 ; +LOCAL IUH L13_2839if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2839if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2839if_f = (IHPE)L13_2839if_f ; +GLOBAL IUH S_2860_Chain4DwordMove_00000000_00000011_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2860_Chain4DwordMove_00000000_00000011_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2860_Chain4DwordMove_00000000_00000011_00000000 = (IHPE)S_2860_Chain4DwordMove_00000000_00000011_00000000 ; +LOCAL IUH L13_2840if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2840if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2840if_f = (IHPE)L13_2840if_f ; +GLOBAL IUH S_2861_Chain4DwordMove_00000000_00000016_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2861_Chain4DwordMove_00000000_00000016_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2861_Chain4DwordMove_00000000_00000016_00000000 = (IHPE)S_2861_Chain4DwordMove_00000000_00000016_00000000 ; +LOCAL IUH L13_2841if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2841if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2841if_f = (IHPE)L13_2841if_f ; +GLOBAL IUH S_2862_Chain4DwordMove_00000000_00000017_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2862_Chain4DwordMove_00000000_00000017_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2862_Chain4DwordMove_00000000_00000017_00000000 = (IHPE)S_2862_Chain4DwordMove_00000000_00000017_00000000 ; +LOCAL IUH L13_2842if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2842if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2842if_f = (IHPE)L13_2842if_f ; +GLOBAL IUH S_2863_Chain4DwordMove_00000000_00000018_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2863_Chain4DwordMove_00000000_00000018_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2863_Chain4DwordMove_00000000_00000018_00000000 = (IHPE)S_2863_Chain4DwordMove_00000000_00000018_00000000 ; +LOCAL IUH L13_2843if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2843if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2843if_f = (IHPE)L13_2843if_f ; +GLOBAL IUH S_2864_Chain4DwordMove_00000000_00000019_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2864_Chain4DwordMove_00000000_00000019_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2864_Chain4DwordMove_00000000_00000019_00000000 = (IHPE)S_2864_Chain4DwordMove_00000000_00000019_00000000 ; +LOCAL IUH L13_2844if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2844if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2844if_f = (IHPE)L13_2844if_f ; +GLOBAL IUH S_2865_Chain4DwordMove_00000000_0000001e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2865_Chain4DwordMove_00000000_0000001e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2865_Chain4DwordMove_00000000_0000001e_00000000 = (IHPE)S_2865_Chain4DwordMove_00000000_0000001e_00000000 ; +LOCAL IUH L13_2845if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2845if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2845if_f = (IHPE)L13_2845if_f ; +GLOBAL IUH S_2866_Chain4DwordMove_00000000_0000001f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2866_Chain4DwordMove_00000000_0000001f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2866_Chain4DwordMove_00000000_0000001f_00000000 = (IHPE)S_2866_Chain4DwordMove_00000000_0000001f_00000000 ; +LOCAL IUH L13_2846if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2846if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2846if_f = (IHPE)L13_2846if_f ; +GLOBAL IUH S_2867_Chain4ByteWrite_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2867_Chain4ByteWrite_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2867_Chain4ByteWrite_00000001_00000000 = (IHPE)S_2867_Chain4ByteWrite_00000001_00000000 ; +LOCAL IUH L13_2847if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2847if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2847if_f = (IHPE)L13_2847if_f ; +LOCAL IUH L22_120if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_120if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_120if_f = (IHPE)L22_120if_f ; +GLOBAL IUH S_2868_Chain4ByteFill_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2868_Chain4ByteFill_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2868_Chain4ByteFill_00000001_00000000 = (IHPE)S_2868_Chain4ByteFill_00000001_00000000 ; +LOCAL IUH L13_2848if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2848if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2848if_f = (IHPE)L13_2848if_f ; +LOCAL IUH L22_121if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_121if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_121if_f = (IHPE)L22_121if_f ; +LOCAL IUH L22_122if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_122if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_122if_f = (IHPE)L22_122if_f ; +LOCAL IUH L22_123if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_123if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_123if_f = (IHPE)L22_123if_f ; +LOCAL IUH L22_124if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_124if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_124if_f = (IHPE)L22_124if_f ; +GLOBAL IUH S_2869_Chain4ByteMove_00000001_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2869_Chain4ByteMove_00000001_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2869_Chain4ByteMove_00000001_00000000_00000000 = (IHPE)S_2869_Chain4ByteMove_00000001_00000000_00000000 ; +LOCAL IUH L13_2849if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2849if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2849if_f = (IHPE)L13_2849if_f ; +LOCAL IUH L22_125if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_125if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_125if_f = (IHPE)L22_125if_f ; +LOCAL IUH L22_126if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_126if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_126if_d = (IHPE)L22_126if_d ; +GLOBAL IUH S_2870_CopyBytePlnByPlnChain4_00000001_00000000_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2870_CopyBytePlnByPlnChain4_00000001_00000000_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2870_CopyBytePlnByPlnChain4_00000001_00000000_00000000_00000000 = (IHPE)S_2870_CopyBytePlnByPlnChain4_00000001_00000000_00000000_00000000 ; +LOCAL IUH L13_2850if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2850if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2850if_f = (IHPE)L13_2850if_f ; +LOCAL IUH L23_890w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_890w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_890w_t = (IHPE)L23_890w_t ; +LOCAL IUH L23_892if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_892if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_892if_f = (IHPE)L23_892if_f ; +LOCAL IUH L23_891w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_891w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_891w_d = (IHPE)L23_891w_d ; +LOCAL IUH L23_888if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_888if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_888if_f = (IHPE)L23_888if_f ; +LOCAL IUH L23_893w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_893w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_893w_t = (IHPE)L23_893w_t ; +LOCAL IUH L23_895if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_895if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_895if_f = (IHPE)L23_895if_f ; +LOCAL IUH L23_894w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_894w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_894w_d = (IHPE)L23_894w_d ; +LOCAL IUH L23_889if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_889if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_889if_d = (IHPE)L23_889if_d ; +GLOBAL IUH S_2871_Chain4WordWrite_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2871_Chain4WordWrite_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2871_Chain4WordWrite_00000001_00000000 = (IHPE)S_2871_Chain4WordWrite_00000001_00000000 ; +LOCAL IUH L13_2851if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2851if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2851if_f = (IHPE)L13_2851if_f ; +LOCAL IUH L22_127if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_127if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_127if_f = (IHPE)L22_127if_f ; +LOCAL IUH L22_128if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_128if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_128if_f = (IHPE)L22_128if_f ; +GLOBAL IUH S_2872_Chain4WordFill_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2872_Chain4WordFill_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2872_Chain4WordFill_00000001_00000000 = (IHPE)S_2872_Chain4WordFill_00000001_00000000 ; +LOCAL IUH L13_2852if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2852if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2852if_f = (IHPE)L13_2852if_f ; +LOCAL IUH L22_129if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_129if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_129if_f = (IHPE)L22_129if_f ; +LOCAL IUH L22_130if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_130if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_130if_f = (IHPE)L22_130if_f ; +LOCAL IUH L22_131if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_131if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_131if_f = (IHPE)L22_131if_f ; +LOCAL IUH L22_132if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_132if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_132if_f = (IHPE)L22_132if_f ; +GLOBAL IUH S_2873_Chain4WordMove_00000001_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2873_Chain4WordMove_00000001_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2873_Chain4WordMove_00000001_00000000_00000000 = (IHPE)S_2873_Chain4WordMove_00000001_00000000_00000000 ; +LOCAL IUH L13_2853if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2853if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2853if_f = (IHPE)L13_2853if_f ; +LOCAL IUH L22_133if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_133if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_133if_f = (IHPE)L22_133if_f ; +LOCAL IUH L22_135if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_135if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_135if_f = (IHPE)L22_135if_f ; +LOCAL IUH L22_136if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_136if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_136if_f = (IHPE)L22_136if_f ; +LOCAL IUH L22_137if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_137if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_137if_f = (IHPE)L22_137if_f ; +LOCAL IUH L22_138if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_138if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_138if_f = (IHPE)L22_138if_f ; +LOCAL IUH L22_134if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_134if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_134if_d = (IHPE)L22_134if_d ; +GLOBAL IUH S_2874_Chain4DwordWrite_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2874_Chain4DwordWrite_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2874_Chain4DwordWrite_00000001_00000000 = (IHPE)S_2874_Chain4DwordWrite_00000001_00000000 ; +LOCAL IUH L13_2854if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2854if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2854if_f = (IHPE)L13_2854if_f ; +GLOBAL IUH S_2875_Chain4DwordFill_00000001_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2875_Chain4DwordFill_00000001_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2875_Chain4DwordFill_00000001_00000000 = (IHPE)S_2875_Chain4DwordFill_00000001_00000000 ; +LOCAL IUH L13_2855if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2855if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2855if_f = (IHPE)L13_2855if_f ; +GLOBAL IUH S_2876_Chain4DwordMove_00000001_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2876_Chain4DwordMove_00000001_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2876_Chain4DwordMove_00000001_00000000_00000000 = (IHPE)S_2876_Chain4DwordMove_00000001_00000000_00000000 ; +LOCAL IUH L13_2856if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2856if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2856if_f = (IHPE)L13_2856if_f ; +GLOBAL IUH S_2877_Chain4ByteWrite_00000002_00000008 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2877_Chain4ByteWrite_00000002_00000008_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2877_Chain4ByteWrite_00000002_00000008 = (IHPE)S_2877_Chain4ByteWrite_00000002_00000008 ; +LOCAL IUH L13_2857if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2857if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2857if_f = (IHPE)L13_2857if_f ; +LOCAL IUH L22_139if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_139if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_139if_f = (IHPE)L22_139if_f ; +GLOBAL IUH S_2878_Chain4ByteWrite_00000002_00000009 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2878_Chain4ByteWrite_00000002_00000009_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2878_Chain4ByteWrite_00000002_00000009 = (IHPE)S_2878_Chain4ByteWrite_00000002_00000009 ; +LOCAL IUH L13_2858if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2858if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2858if_f = (IHPE)L13_2858if_f ; +GLOBAL IUH S_2879_Chain4ByteWrite_00000002_0000000e IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2879_Chain4ByteWrite_00000002_0000000e_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2879_Chain4ByteWrite_00000002_0000000e = (IHPE)S_2879_Chain4ByteWrite_00000002_0000000e ; +LOCAL IUH L13_2859if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2859if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2859if_f = (IHPE)L13_2859if_f ; +LOCAL IUH L22_140if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_140if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_140if_f = (IHPE)L22_140if_f ; +GLOBAL IUH S_2880_Chain4ByteWrite_00000002_0000000f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2880_Chain4ByteWrite_00000002_0000000f_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2880_Chain4ByteWrite_00000002_0000000f = (IHPE)S_2880_Chain4ByteWrite_00000002_0000000f ; +LOCAL IUH L13_2860if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2860if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2860if_f = (IHPE)L13_2860if_f ; +GLOBAL IUH S_2881_Chain4ByteFill_00000002_00000008 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2881_Chain4ByteFill_00000002_00000008_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2881_Chain4ByteFill_00000002_00000008 = (IHPE)S_2881_Chain4ByteFill_00000002_00000008 ; +LOCAL IUH L13_2861if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2861if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2861if_f = (IHPE)L13_2861if_f ; +LOCAL IUH L22_141if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_141if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_141if_f = (IHPE)L22_141if_f ; +LOCAL IUH L22_142if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_142if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_142if_f = (IHPE)L22_142if_f ; +LOCAL IUH L22_143if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_143if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_143if_f = (IHPE)L22_143if_f ; +LOCAL IUH L22_144if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_144if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_144if_f = (IHPE)L22_144if_f ; +GLOBAL IUH S_2882_Chain4ByteFill_00000002_00000009 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2882_Chain4ByteFill_00000002_00000009_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2882_Chain4ByteFill_00000002_00000009 = (IHPE)S_2882_Chain4ByteFill_00000002_00000009 ; +LOCAL IUH L13_2862if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2862if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2862if_f = (IHPE)L13_2862if_f ; +GLOBAL IUH S_2883_Chain4ByteFill_00000002_0000000e IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2883_Chain4ByteFill_00000002_0000000e_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2883_Chain4ByteFill_00000002_0000000e = (IHPE)S_2883_Chain4ByteFill_00000002_0000000e ; +LOCAL IUH L13_2863if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2863if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2863if_f = (IHPE)L13_2863if_f ; +LOCAL IUH L22_145if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_145if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_145if_f = (IHPE)L22_145if_f ; +LOCAL IUH L22_146if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_146if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_146if_f = (IHPE)L22_146if_f ; +LOCAL IUH L22_147if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_147if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_147if_f = (IHPE)L22_147if_f ; +LOCAL IUH L22_148if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_148if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_148if_f = (IHPE)L22_148if_f ; +GLOBAL IUH S_2884_Chain4ByteFill_00000002_0000000f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2884_Chain4ByteFill_00000002_0000000f_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2884_Chain4ByteFill_00000002_0000000f = (IHPE)S_2884_Chain4ByteFill_00000002_0000000f ; +LOCAL IUH L13_2864if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2864if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2864if_f = (IHPE)L13_2864if_f ; +GLOBAL IUH S_2885_Chain4ByteMove_00000002_00000008_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2885_Chain4ByteMove_00000002_00000008_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2885_Chain4ByteMove_00000002_00000008_00000000 = (IHPE)S_2885_Chain4ByteMove_00000002_00000008_00000000 ; +LOCAL IUH L13_2865if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2865if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2865if_f = (IHPE)L13_2865if_f ; +LOCAL IUH L22_149if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_149if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_149if_f = (IHPE)L22_149if_f ; +LOCAL IUH L22_150if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_150if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_150if_d = (IHPE)L22_150if_d ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2854_Chain4DwordFill_00000000_0000001f_id : + S_2854_Chain4DwordFill_00000000_0000001f : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2854) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2834if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2834if_f_id : + L13_2834if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2806_Chain4WordFill_00000000_0000001f() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2806_Chain4WordFill_00000000_0000001f(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2806_Chain4WordFill_00000000_0000001f() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2806_Chain4WordFill_00000000_0000001f(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2855_Chain4DwordMove_00000000_00000008_00000000_id : + S_2855_Chain4DwordMove_00000000_00000008_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2855) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2835if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2835if_f_id : + L13_2835if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2807_Chain4WordMove_00000000_00000008_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2807_Chain4WordMove_00000000_00000008_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2856_Chain4DwordMove_00000000_00000009_00000000_id : + S_2856_Chain4DwordMove_00000000_00000009_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2856) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2836if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2836if_f_id : + L13_2836if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2809_Chain4WordMove_00000000_00000009_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2809_Chain4WordMove_00000000_00000009_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2857_Chain4DwordMove_00000000_0000000e_00000000_id : + S_2857_Chain4DwordMove_00000000_0000000e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2857) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2837if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2837if_f_id : + L13_2837if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2811_Chain4WordMove_00000000_0000000e_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2811_Chain4WordMove_00000000_0000000e_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2858_Chain4DwordMove_00000000_0000000f_00000000_id : + S_2858_Chain4DwordMove_00000000_0000000f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2858) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2838if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2838if_f_id : + L13_2838if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2813_Chain4WordMove_00000000_0000000f_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2813_Chain4WordMove_00000000_0000000f_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2859_Chain4DwordMove_00000000_00000010_00000000_id : + S_2859_Chain4DwordMove_00000000_00000010_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2859) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2839if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2839if_f_id : + L13_2839if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2815_Chain4WordMove_00000000_00000010_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2815_Chain4WordMove_00000000_00000010_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2860_Chain4DwordMove_00000000_00000011_00000000_id : + S_2860_Chain4DwordMove_00000000_00000011_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2860) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2840if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2840if_f_id : + L13_2840if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2817_Chain4WordMove_00000000_00000011_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2817_Chain4WordMove_00000000_00000011_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2861_Chain4DwordMove_00000000_00000016_00000000_id : + S_2861_Chain4DwordMove_00000000_00000016_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2861) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2841if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2841if_f_id : + L13_2841if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2819_Chain4WordMove_00000000_00000016_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2819_Chain4WordMove_00000000_00000016_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2862_Chain4DwordMove_00000000_00000017_00000000_id : + S_2862_Chain4DwordMove_00000000_00000017_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2862) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2842if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2842if_f_id : + L13_2842if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2821_Chain4WordMove_00000000_00000017_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2821_Chain4WordMove_00000000_00000017_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2863_Chain4DwordMove_00000000_00000018_00000000_id : + S_2863_Chain4DwordMove_00000000_00000018_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2863) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2843if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2843if_f_id : + L13_2843if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2823_Chain4WordMove_00000000_00000018_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2823_Chain4WordMove_00000000_00000018_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2864_Chain4DwordMove_00000000_00000019_00000000_id : + S_2864_Chain4DwordMove_00000000_00000019_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2864) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2844if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2844if_f_id : + L13_2844if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2825_Chain4WordMove_00000000_00000019_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2825_Chain4WordMove_00000000_00000019_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2865_Chain4DwordMove_00000000_0000001e_00000000_id : + S_2865_Chain4DwordMove_00000000_0000001e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2865) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2845if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2845if_f_id : + L13_2845if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2827_Chain4WordMove_00000000_0000001e_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2827_Chain4WordMove_00000000_0000001e_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2866_Chain4DwordMove_00000000_0000001f_00000000_id : + S_2866_Chain4DwordMove_00000000_0000001f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2866) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2846if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2846if_f_id : + L13_2846if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2829_Chain4WordMove_00000000_0000001f_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2829_Chain4WordMove_00000000_0000001f_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2867_Chain4ByteWrite_00000001_00000000_id : + S_2867_Chain4ByteWrite_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2867) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2847if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2847if_f_id : + L13_2847if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_120if_f; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + case L22_120if_f_id : + L22_120if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2868_Chain4ByteFill_00000001_00000000_id : + S_2868_Chain4ByteFill_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2868) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2848if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2848if_f_id : + L13_2848if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_121if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_121if_f_id : + L22_121if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_122if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_122if_f_id : + L22_122if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_123if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_123if_f_id : + L22_123if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_124if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_124if_f_id : + L22_124if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2869_Chain4ByteMove_00000001_00000000_00000000_id : + S_2869_Chain4ByteMove_00000001_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2869) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2849if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2849if_f_id : + L13_2849if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_125if_f; + *((IUH *)(r1+0)) = (IS32)(16686) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = (IS32)(-1) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2868_Chain4ByteFill_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2868_Chain4ByteFill_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16687) ; + { extern IUH L22_126if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_126if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_125if_f_id : + L22_125if_f: ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r3)) = *((IUH *)&(r20)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2870_CopyBytePlnByPlnChain4_00000001_00000000_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2870_CopyBytePlnByPlnChain4_00000001_00000000_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + case L22_126if_d_id : + L22_126if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2870_CopyBytePlnByPlnChain4_00000001_00000000_00000000_00000000_id : + S_2870_CopyBytePlnByPlnChain4_00000001_00000000_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2870) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2850if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2850if_f_id : + L13_2850if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_888if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_891w_d; + case L23_890w_t_id : + L23_890w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_892if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_892if_f_id : + L23_892if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_890w_t; + case L23_891w_d_id : + L23_891w_d: ; + { extern IUH L23_889if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_889if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_888if_f_id : + L23_888if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_894w_d; + case L23_893w_t_id : + L23_893w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_895if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_895if_f_id : + L23_895if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_893w_t; + case L23_894w_d_id : + L23_894w_d: ; + case L23_889if_d_id : + L23_889if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2871_Chain4WordWrite_00000001_00000000_id : + S_2871_Chain4WordWrite_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2871) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2851if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2851if_f_id : + L13_2851if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_127if_f; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + case L22_127if_f_id : + L22_127if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_128if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + case L22_128if_f_id : + L22_128if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2872_Chain4WordFill_00000001_00000000_id : + S_2872_Chain4WordFill_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2872) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2852if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2852if_f_id : + L13_2852if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_129if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_129if_f_id : + L22_129if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_130if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_130if_f_id : + L22_130if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_131if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_131if_f_id : + L22_131if_f: ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_132if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_132if_f_id : + L22_132if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2873_Chain4WordMove_00000001_00000000_00000000_id : + S_2873_Chain4WordMove_00000001_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2873) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2853if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2853if_f_id : + L13_2853if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_133if_f; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = (IS32)(-1) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2872_Chain4WordFill_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2872_Chain4WordFill_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; + { extern IUH L22_134if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_134if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_133if_f_id : + L22_133if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L22_135if_f; + *((IUH *)(r1+0)) = (IS32)(16404) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r2)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2174_CopyDirWord1Plane_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2174_CopyDirWord1Plane_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16405) ; + case L22_135if_f_id : + L22_135if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L22_136if_f; + *((IUH *)(r1+0)) = (IS32)(16404) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r2)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r3)) = *((IUH *)&(r20)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2174_CopyDirWord1Plane_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2174_CopyDirWord1Plane_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16405) ; + case L22_136if_f_id : + L22_136if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L22_137if_f; + *((IUH *)(r1+0)) = (IS32)(16404) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r2)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2174_CopyDirWord1Plane_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2174_CopyDirWord1Plane_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16405) ; + case L22_137if_f_id : + L22_137if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L22_138if_f; + *((IUH *)(r1+0)) = (IS32)(16404) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r2)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r3)) = *((IUH *)&(r20)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2174_CopyDirWord1Plane_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2174_CopyDirWord1Plane_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16405) ; + case L22_138if_f_id : + L22_138if_f: ; + case L22_134if_d_id : + L22_134if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2874_Chain4DwordWrite_00000001_00000000_id : + S_2874_Chain4DwordWrite_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2874) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2854if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2854if_f_id : + L13_2854if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2871_Chain4WordWrite_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2871_Chain4WordWrite_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2871_Chain4WordWrite_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2871_Chain4WordWrite_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2875_Chain4DwordFill_00000001_00000000_id : + S_2875_Chain4DwordFill_00000001_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2875) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2855if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2855if_f_id : + L13_2855if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2872_Chain4WordFill_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2872_Chain4WordFill_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2872_Chain4WordFill_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2872_Chain4WordFill_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2876_Chain4DwordMove_00000001_00000000_00000000_id : + S_2876_Chain4DwordMove_00000001_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2876) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2856if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2856if_f_id : + L13_2856if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2873_Chain4WordMove_00000001_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2873_Chain4WordMove_00000001_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2877_Chain4ByteWrite_00000002_00000008_id : + S_2877_Chain4ByteWrite_00000002_00000008 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2877) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2857if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2857if_f_id : + L13_2857if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+2) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_139if_f; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + case L22_139if_f_id : + L22_139if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2878_Chain4ByteWrite_00000002_00000009_id : + S_2878_Chain4ByteWrite_00000002_00000009 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2878) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2858if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2858if_f_id : + L13_2858if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+2) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2879_Chain4ByteWrite_00000002_0000000e_id : + S_2879_Chain4ByteWrite_00000002_0000000e : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2879) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2859if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2859if_f_id : + L13_2859if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+2) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_140if_f; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + case L22_140if_f_id : + L22_140if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2880_Chain4ByteWrite_00000002_0000000f_id : + S_2880_Chain4ByteWrite_00000002_0000000f : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2880) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2860if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2860if_f_id : + L13_2860if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+2) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2881_Chain4ByteFill_00000002_00000008_id : + S_2881_Chain4ByteFill_00000002_00000008 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2881) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2861if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2861if_f_id : + L13_2861if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_141if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_141if_f_id : + L22_141if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_142if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_142if_f_id : + L22_142if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_143if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_143if_f_id : + L22_143if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_144if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_144if_f_id : + L22_144if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2882_Chain4ByteFill_00000002_00000009_id : + S_2882_Chain4ByteFill_00000002_00000009 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2882) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2862if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2862if_f_id : + L13_2862if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16654) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2747_Chain44PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2747_Chain44PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16655) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2883_Chain4ByteFill_00000002_0000000e_id : + S_2883_Chain4ByteFill_00000002_0000000e : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2883) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2863if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2863if_f_id : + L13_2863if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_145if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_145if_f_id : + L22_145if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_146if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_146if_f_id : + L22_146if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_147if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_147if_f_id : + L22_147if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_148if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_148if_f_id : + L22_148if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2884_Chain4ByteFill_00000002_0000000f_id : + S_2884_Chain4ByteFill_00000002_0000000f : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2884) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2864if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2864if_f_id : + L13_2864if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16654) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2747_Chain44PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2747_Chain44PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16655) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2885_Chain4ByteMove_00000002_00000008_00000000_id : + S_2885_Chain4ByteMove_00000002_00000008_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2885) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2865if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2865if_f_id : + L13_2865if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_149if_f; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2886_CopyBytePlnByPlnChain4_00000002_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2886_CopyBytePlnByPlnChain4_00000002_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + { extern IUH L22_150if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_150if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_149if_f_id : + L22_149if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2886_CopyBytePlnByPlnChain4_00000002_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2886_CopyBytePlnByPlnChain4_00000002_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + case L22_150if_d_id : + L22_150if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid025.c b/private/mvdm/softpc.new/base/cvidc/sevid025.c new file mode 100644 index 000000000..c1f009f4e --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid025.c @@ -0,0 +1,4209 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_2886_CopyBytePlnByPlnChain4_00000002_00000008_00000000_00000000_id, +L13_2866if_f_id, +L23_898w_t_id, +L23_900if_f_id, +L23_899w_d_id, +L23_896if_f_id, +L23_901w_t_id, +L23_903if_f_id, +L23_902w_d_id, +L23_897if_d_id, +S_2887_Chain4ByteMove_00000002_00000009_00000000_id, +L13_2867if_f_id, +L22_151if_f_id, +L22_152if_d_id, +S_2888_CopyByte4PlaneChain4_00000002_00000009_00000000_00000000_id, +L13_2868if_f_id, +L23_906w_t_id, +L23_907w_d_id, +L23_904if_f_id, +L23_908w_t_id, +L23_909w_d_id, +L23_905if_d_id, +S_2889_Chain4ByteMove_00000002_0000000e_00000000_id, +L13_2869if_f_id, +L22_153if_f_id, +L22_154if_d_id, +S_2890_CopyBytePlnByPlnChain4_00000002_0000000e_00000000_00000000_id, +L13_2870if_f_id, +L23_912w_t_id, +L23_914if_f_id, +L23_913w_d_id, +L23_910if_f_id, +L23_915w_t_id, +L23_917if_f_id, +L23_916w_d_id, +L23_911if_d_id, +S_2891_Chain4ByteMove_00000002_0000000f_00000000_id, +L13_2871if_f_id, +L22_155if_f_id, +L22_156if_d_id, +S_2892_CopyByte4PlaneChain4_00000002_0000000f_00000000_00000000_id, +L13_2872if_f_id, +L23_920w_t_id, +L23_921w_d_id, +L23_918if_f_id, +L23_922w_t_id, +L23_923w_d_id, +L23_919if_d_id, +S_2893_Chain4WordWrite_00000002_00000008_id, +L13_2873if_f_id, +L22_157if_f_id, +L22_158if_f_id, +S_2894_Chain4WordWrite_00000002_00000009_id, +L13_2874if_f_id, +S_2895_Chain4WordWrite_00000002_0000000e_id, +L13_2875if_f_id, +L22_159if_f_id, +L22_160if_f_id, +S_2896_Chain4WordWrite_00000002_0000000f_id, +L13_2876if_f_id, +S_2897_Chain4WordFill_00000002_00000008_id, +L13_2877if_f_id, +L22_161if_f_id, +L22_162if_f_id, +L22_163if_f_id, +L22_164if_f_id, +S_2898_Chain4WordFill_00000002_00000009_id, +L13_2878if_f_id, +S_2899_Chain4WordFill_00000002_0000000e_id, +L13_2879if_f_id, +L22_165if_f_id, +L22_166if_f_id, +L22_167if_f_id, +L22_168if_f_id, +S_2900_Chain4WordFill_00000002_0000000f_id, +L13_2880if_f_id, +S_2901_Chain4WordMove_00000002_00000008_00000000_id, +L13_2881if_f_id, +L22_169if_f_id, +L22_170if_d_id, +S_2902_CopyWordPlnByPlnChain4_00000002_00000008_00000000_00000000_id, +L13_2882if_f_id, +S_2903_Chain4WordMove_00000002_00000009_00000000_id, +L13_2883if_f_id, +L22_171if_f_id, +L22_172if_d_id, +S_2904_CopyWord4PlaneChain4_00000002_00000009_00000000_00000000_id, +L13_2884if_f_id, +L23_926w_t_id, +L23_927w_d_id, +L23_924if_f_id, +L23_928w_t_id, +L23_929w_d_id, +L23_925if_d_id, +S_2905_Chain4WordMove_00000002_0000000e_00000000_id, +L13_2885if_f_id, +L22_173if_f_id, +L22_174if_d_id, +S_2906_CopyWordPlnByPlnChain4_00000002_0000000e_00000000_00000000_id, +L13_2886if_f_id, +S_2907_Chain4WordMove_00000002_0000000f_00000000_id, +L13_2887if_f_id, +L22_175if_f_id, +L22_176if_d_id, +S_2908_CopyWord4PlaneChain4_00000002_0000000f_00000000_00000000_id, +L13_2888if_f_id, +L23_932w_t_id, +L23_933w_d_id, +L23_930if_f_id, +L23_934w_t_id, +L23_935w_d_id, +L23_931if_d_id, +S_2909_Chain4DwordWrite_00000002_00000008_id, +L13_2889if_f_id, +S_2910_Chain4DwordWrite_00000002_00000009_id, +L13_2890if_f_id, +S_2911_Chain4DwordWrite_00000002_0000000e_id, +L13_2891if_f_id, +S_2912_Chain4DwordWrite_00000002_0000000f_id, +L13_2892if_f_id, +S_2913_Chain4DwordFill_00000002_00000008_id, +L13_2893if_f_id, +S_2914_Chain4DwordFill_00000002_00000009_id, +L13_2894if_f_id, +S_2915_Chain4DwordFill_00000002_0000000e_id, +L13_2895if_f_id, +S_2916_Chain4DwordFill_00000002_0000000f_id, +L13_2896if_f_id, +S_2917_Chain4DwordMove_00000002_00000008_00000000_id, +L13_2897if_f_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_2886_CopyBytePlnByPlnChain4_00000002_00000008_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2886_CopyBytePlnByPlnChain4_00000002_00000008_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2886_CopyBytePlnByPlnChain4_00000002_00000008_00000000_00000000 = (IHPE)S_2886_CopyBytePlnByPlnChain4_00000002_00000008_00000000_00000000 ; +LOCAL IUH L13_2866if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2866if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2866if_f = (IHPE)L13_2866if_f ; +LOCAL IUH L23_898w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_898w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_898w_t = (IHPE)L23_898w_t ; +LOCAL IUH L23_900if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_900if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_900if_f = (IHPE)L23_900if_f ; +LOCAL IUH L23_899w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_899w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_899w_d = (IHPE)L23_899w_d ; +LOCAL IUH L23_896if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_896if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_896if_f = (IHPE)L23_896if_f ; +LOCAL IUH L23_901w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_901w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_901w_t = (IHPE)L23_901w_t ; +LOCAL IUH L23_903if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_903if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_903if_f = (IHPE)L23_903if_f ; +LOCAL IUH L23_902w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_902w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_902w_d = (IHPE)L23_902w_d ; +LOCAL IUH L23_897if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_897if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_897if_d = (IHPE)L23_897if_d ; +GLOBAL IUH S_2887_Chain4ByteMove_00000002_00000009_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2887_Chain4ByteMove_00000002_00000009_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2887_Chain4ByteMove_00000002_00000009_00000000 = (IHPE)S_2887_Chain4ByteMove_00000002_00000009_00000000 ; +LOCAL IUH L13_2867if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2867if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2867if_f = (IHPE)L13_2867if_f ; +LOCAL IUH L22_151if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_151if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_151if_f = (IHPE)L22_151if_f ; +LOCAL IUH L22_152if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_152if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_152if_d = (IHPE)L22_152if_d ; +GLOBAL IUH S_2888_CopyByte4PlaneChain4_00000002_00000009_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2888_CopyByte4PlaneChain4_00000002_00000009_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2888_CopyByte4PlaneChain4_00000002_00000009_00000000_00000000 = (IHPE)S_2888_CopyByte4PlaneChain4_00000002_00000009_00000000_00000000 ; +LOCAL IUH L13_2868if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2868if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2868if_f = (IHPE)L13_2868if_f ; +LOCAL IUH L23_906w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_906w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_906w_t = (IHPE)L23_906w_t ; +LOCAL IUH L23_907w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_907w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_907w_d = (IHPE)L23_907w_d ; +LOCAL IUH L23_904if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_904if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_904if_f = (IHPE)L23_904if_f ; +LOCAL IUH L23_908w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_908w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_908w_t = (IHPE)L23_908w_t ; +LOCAL IUH L23_909w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_909w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_909w_d = (IHPE)L23_909w_d ; +LOCAL IUH L23_905if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_905if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_905if_d = (IHPE)L23_905if_d ; +GLOBAL IUH S_2889_Chain4ByteMove_00000002_0000000e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2889_Chain4ByteMove_00000002_0000000e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2889_Chain4ByteMove_00000002_0000000e_00000000 = (IHPE)S_2889_Chain4ByteMove_00000002_0000000e_00000000 ; +LOCAL IUH L13_2869if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2869if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2869if_f = (IHPE)L13_2869if_f ; +LOCAL IUH L22_153if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_153if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_153if_f = (IHPE)L22_153if_f ; +LOCAL IUH L22_154if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_154if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_154if_d = (IHPE)L22_154if_d ; +GLOBAL IUH S_2890_CopyBytePlnByPlnChain4_00000002_0000000e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2890_CopyBytePlnByPlnChain4_00000002_0000000e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2890_CopyBytePlnByPlnChain4_00000002_0000000e_00000000_00000000 = (IHPE)S_2890_CopyBytePlnByPlnChain4_00000002_0000000e_00000000_00000000 ; +LOCAL IUH L13_2870if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2870if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2870if_f = (IHPE)L13_2870if_f ; +LOCAL IUH L23_912w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_912w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_912w_t = (IHPE)L23_912w_t ; +LOCAL IUH L23_914if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_914if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_914if_f = (IHPE)L23_914if_f ; +LOCAL IUH L23_913w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_913w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_913w_d = (IHPE)L23_913w_d ; +LOCAL IUH L23_910if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_910if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_910if_f = (IHPE)L23_910if_f ; +LOCAL IUH L23_915w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_915w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_915w_t = (IHPE)L23_915w_t ; +LOCAL IUH L23_917if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_917if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_917if_f = (IHPE)L23_917if_f ; +LOCAL IUH L23_916w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_916w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_916w_d = (IHPE)L23_916w_d ; +LOCAL IUH L23_911if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_911if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_911if_d = (IHPE)L23_911if_d ; +GLOBAL IUH S_2891_Chain4ByteMove_00000002_0000000f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2891_Chain4ByteMove_00000002_0000000f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2891_Chain4ByteMove_00000002_0000000f_00000000 = (IHPE)S_2891_Chain4ByteMove_00000002_0000000f_00000000 ; +LOCAL IUH L13_2871if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2871if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2871if_f = (IHPE)L13_2871if_f ; +LOCAL IUH L22_155if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_155if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_155if_f = (IHPE)L22_155if_f ; +LOCAL IUH L22_156if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_156if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_156if_d = (IHPE)L22_156if_d ; +GLOBAL IUH S_2892_CopyByte4PlaneChain4_00000002_0000000f_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2892_CopyByte4PlaneChain4_00000002_0000000f_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2892_CopyByte4PlaneChain4_00000002_0000000f_00000000_00000000 = (IHPE)S_2892_CopyByte4PlaneChain4_00000002_0000000f_00000000_00000000 ; +LOCAL IUH L13_2872if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2872if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2872if_f = (IHPE)L13_2872if_f ; +LOCAL IUH L23_920w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_920w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_920w_t = (IHPE)L23_920w_t ; +LOCAL IUH L23_921w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_921w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_921w_d = (IHPE)L23_921w_d ; +LOCAL IUH L23_918if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_918if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_918if_f = (IHPE)L23_918if_f ; +LOCAL IUH L23_922w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_922w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_922w_t = (IHPE)L23_922w_t ; +LOCAL IUH L23_923w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_923w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_923w_d = (IHPE)L23_923w_d ; +LOCAL IUH L23_919if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_919if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_919if_d = (IHPE)L23_919if_d ; +GLOBAL IUH S_2893_Chain4WordWrite_00000002_00000008 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2893_Chain4WordWrite_00000002_00000008_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2893_Chain4WordWrite_00000002_00000008 = (IHPE)S_2893_Chain4WordWrite_00000002_00000008 ; +LOCAL IUH L13_2873if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2873if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2873if_f = (IHPE)L13_2873if_f ; +LOCAL IUH L22_157if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_157if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_157if_f = (IHPE)L22_157if_f ; +LOCAL IUH L22_158if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_158if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_158if_f = (IHPE)L22_158if_f ; +GLOBAL IUH S_2894_Chain4WordWrite_00000002_00000009 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2894_Chain4WordWrite_00000002_00000009_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2894_Chain4WordWrite_00000002_00000009 = (IHPE)S_2894_Chain4WordWrite_00000002_00000009 ; +LOCAL IUH L13_2874if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2874if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2874if_f = (IHPE)L13_2874if_f ; +GLOBAL IUH S_2895_Chain4WordWrite_00000002_0000000e IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2895_Chain4WordWrite_00000002_0000000e_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2895_Chain4WordWrite_00000002_0000000e = (IHPE)S_2895_Chain4WordWrite_00000002_0000000e ; +LOCAL IUH L13_2875if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2875if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2875if_f = (IHPE)L13_2875if_f ; +LOCAL IUH L22_159if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_159if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_159if_f = (IHPE)L22_159if_f ; +LOCAL IUH L22_160if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_160if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_160if_f = (IHPE)L22_160if_f ; +GLOBAL IUH S_2896_Chain4WordWrite_00000002_0000000f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2896_Chain4WordWrite_00000002_0000000f_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2896_Chain4WordWrite_00000002_0000000f = (IHPE)S_2896_Chain4WordWrite_00000002_0000000f ; +LOCAL IUH L13_2876if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2876if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2876if_f = (IHPE)L13_2876if_f ; +GLOBAL IUH S_2897_Chain4WordFill_00000002_00000008 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2897_Chain4WordFill_00000002_00000008_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2897_Chain4WordFill_00000002_00000008 = (IHPE)S_2897_Chain4WordFill_00000002_00000008 ; +LOCAL IUH L13_2877if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2877if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2877if_f = (IHPE)L13_2877if_f ; +LOCAL IUH L22_161if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_161if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_161if_f = (IHPE)L22_161if_f ; +LOCAL IUH L22_162if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_162if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_162if_f = (IHPE)L22_162if_f ; +LOCAL IUH L22_163if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_163if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_163if_f = (IHPE)L22_163if_f ; +LOCAL IUH L22_164if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_164if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_164if_f = (IHPE)L22_164if_f ; +GLOBAL IUH S_2898_Chain4WordFill_00000002_00000009 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2898_Chain4WordFill_00000002_00000009_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2898_Chain4WordFill_00000002_00000009 = (IHPE)S_2898_Chain4WordFill_00000002_00000009 ; +LOCAL IUH L13_2878if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2878if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2878if_f = (IHPE)L13_2878if_f ; +GLOBAL IUH S_2899_Chain4WordFill_00000002_0000000e IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2899_Chain4WordFill_00000002_0000000e_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2899_Chain4WordFill_00000002_0000000e = (IHPE)S_2899_Chain4WordFill_00000002_0000000e ; +LOCAL IUH L13_2879if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2879if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2879if_f = (IHPE)L13_2879if_f ; +LOCAL IUH L22_165if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_165if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_165if_f = (IHPE)L22_165if_f ; +LOCAL IUH L22_166if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_166if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_166if_f = (IHPE)L22_166if_f ; +LOCAL IUH L22_167if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_167if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_167if_f = (IHPE)L22_167if_f ; +LOCAL IUH L22_168if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_168if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_168if_f = (IHPE)L22_168if_f ; +GLOBAL IUH S_2900_Chain4WordFill_00000002_0000000f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2900_Chain4WordFill_00000002_0000000f_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2900_Chain4WordFill_00000002_0000000f = (IHPE)S_2900_Chain4WordFill_00000002_0000000f ; +LOCAL IUH L13_2880if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2880if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2880if_f = (IHPE)L13_2880if_f ; +GLOBAL IUH S_2901_Chain4WordMove_00000002_00000008_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2901_Chain4WordMove_00000002_00000008_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2901_Chain4WordMove_00000002_00000008_00000000 = (IHPE)S_2901_Chain4WordMove_00000002_00000008_00000000 ; +LOCAL IUH L13_2881if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2881if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2881if_f = (IHPE)L13_2881if_f ; +LOCAL IUH L22_169if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_169if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_169if_f = (IHPE)L22_169if_f ; +LOCAL IUH L22_170if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_170if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_170if_d = (IHPE)L22_170if_d ; +GLOBAL IUH S_2902_CopyWordPlnByPlnChain4_00000002_00000008_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2902_CopyWordPlnByPlnChain4_00000002_00000008_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2902_CopyWordPlnByPlnChain4_00000002_00000008_00000000_00000000 = (IHPE)S_2902_CopyWordPlnByPlnChain4_00000002_00000008_00000000_00000000 ; +LOCAL IUH L13_2882if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2882if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2882if_f = (IHPE)L13_2882if_f ; +GLOBAL IUH S_2903_Chain4WordMove_00000002_00000009_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2903_Chain4WordMove_00000002_00000009_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2903_Chain4WordMove_00000002_00000009_00000000 = (IHPE)S_2903_Chain4WordMove_00000002_00000009_00000000 ; +LOCAL IUH L13_2883if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2883if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2883if_f = (IHPE)L13_2883if_f ; +LOCAL IUH L22_171if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_171if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_171if_f = (IHPE)L22_171if_f ; +LOCAL IUH L22_172if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_172if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_172if_d = (IHPE)L22_172if_d ; +GLOBAL IUH S_2904_CopyWord4PlaneChain4_00000002_00000009_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2904_CopyWord4PlaneChain4_00000002_00000009_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2904_CopyWord4PlaneChain4_00000002_00000009_00000000_00000000 = (IHPE)S_2904_CopyWord4PlaneChain4_00000002_00000009_00000000_00000000 ; +LOCAL IUH L13_2884if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2884if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2884if_f = (IHPE)L13_2884if_f ; +LOCAL IUH L23_926w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_926w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_926w_t = (IHPE)L23_926w_t ; +LOCAL IUH L23_927w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_927w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_927w_d = (IHPE)L23_927w_d ; +LOCAL IUH L23_924if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_924if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_924if_f = (IHPE)L23_924if_f ; +LOCAL IUH L23_928w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_928w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_928w_t = (IHPE)L23_928w_t ; +LOCAL IUH L23_929w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_929w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_929w_d = (IHPE)L23_929w_d ; +LOCAL IUH L23_925if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_925if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_925if_d = (IHPE)L23_925if_d ; +GLOBAL IUH S_2905_Chain4WordMove_00000002_0000000e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2905_Chain4WordMove_00000002_0000000e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2905_Chain4WordMove_00000002_0000000e_00000000 = (IHPE)S_2905_Chain4WordMove_00000002_0000000e_00000000 ; +LOCAL IUH L13_2885if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2885if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2885if_f = (IHPE)L13_2885if_f ; +LOCAL IUH L22_173if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_173if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_173if_f = (IHPE)L22_173if_f ; +LOCAL IUH L22_174if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_174if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_174if_d = (IHPE)L22_174if_d ; +GLOBAL IUH S_2906_CopyWordPlnByPlnChain4_00000002_0000000e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2906_CopyWordPlnByPlnChain4_00000002_0000000e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2906_CopyWordPlnByPlnChain4_00000002_0000000e_00000000_00000000 = (IHPE)S_2906_CopyWordPlnByPlnChain4_00000002_0000000e_00000000_00000000 ; +LOCAL IUH L13_2886if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2886if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2886if_f = (IHPE)L13_2886if_f ; +GLOBAL IUH S_2907_Chain4WordMove_00000002_0000000f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2907_Chain4WordMove_00000002_0000000f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2907_Chain4WordMove_00000002_0000000f_00000000 = (IHPE)S_2907_Chain4WordMove_00000002_0000000f_00000000 ; +LOCAL IUH L13_2887if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2887if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2887if_f = (IHPE)L13_2887if_f ; +LOCAL IUH L22_175if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_175if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_175if_f = (IHPE)L22_175if_f ; +LOCAL IUH L22_176if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_176if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_176if_d = (IHPE)L22_176if_d ; +GLOBAL IUH S_2908_CopyWord4PlaneChain4_00000002_0000000f_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2908_CopyWord4PlaneChain4_00000002_0000000f_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2908_CopyWord4PlaneChain4_00000002_0000000f_00000000_00000000 = (IHPE)S_2908_CopyWord4PlaneChain4_00000002_0000000f_00000000_00000000 ; +LOCAL IUH L13_2888if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2888if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2888if_f = (IHPE)L13_2888if_f ; +LOCAL IUH L23_932w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_932w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_932w_t = (IHPE)L23_932w_t ; +LOCAL IUH L23_933w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_933w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_933w_d = (IHPE)L23_933w_d ; +LOCAL IUH L23_930if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_930if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_930if_f = (IHPE)L23_930if_f ; +LOCAL IUH L23_934w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_934w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_934w_t = (IHPE)L23_934w_t ; +LOCAL IUH L23_935w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_935w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_935w_d = (IHPE)L23_935w_d ; +LOCAL IUH L23_931if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_931if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_931if_d = (IHPE)L23_931if_d ; +GLOBAL IUH S_2909_Chain4DwordWrite_00000002_00000008 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2909_Chain4DwordWrite_00000002_00000008_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2909_Chain4DwordWrite_00000002_00000008 = (IHPE)S_2909_Chain4DwordWrite_00000002_00000008 ; +LOCAL IUH L13_2889if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2889if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2889if_f = (IHPE)L13_2889if_f ; +GLOBAL IUH S_2910_Chain4DwordWrite_00000002_00000009 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2910_Chain4DwordWrite_00000002_00000009_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2910_Chain4DwordWrite_00000002_00000009 = (IHPE)S_2910_Chain4DwordWrite_00000002_00000009 ; +LOCAL IUH L13_2890if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2890if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2890if_f = (IHPE)L13_2890if_f ; +GLOBAL IUH S_2911_Chain4DwordWrite_00000002_0000000e IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2911_Chain4DwordWrite_00000002_0000000e_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2911_Chain4DwordWrite_00000002_0000000e = (IHPE)S_2911_Chain4DwordWrite_00000002_0000000e ; +LOCAL IUH L13_2891if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2891if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2891if_f = (IHPE)L13_2891if_f ; +GLOBAL IUH S_2912_Chain4DwordWrite_00000002_0000000f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2912_Chain4DwordWrite_00000002_0000000f_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2912_Chain4DwordWrite_00000002_0000000f = (IHPE)S_2912_Chain4DwordWrite_00000002_0000000f ; +LOCAL IUH L13_2892if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2892if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2892if_f = (IHPE)L13_2892if_f ; +GLOBAL IUH S_2913_Chain4DwordFill_00000002_00000008 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2913_Chain4DwordFill_00000002_00000008_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2913_Chain4DwordFill_00000002_00000008 = (IHPE)S_2913_Chain4DwordFill_00000002_00000008 ; +LOCAL IUH L13_2893if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2893if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2893if_f = (IHPE)L13_2893if_f ; +GLOBAL IUH S_2914_Chain4DwordFill_00000002_00000009 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2914_Chain4DwordFill_00000002_00000009_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2914_Chain4DwordFill_00000002_00000009 = (IHPE)S_2914_Chain4DwordFill_00000002_00000009 ; +LOCAL IUH L13_2894if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2894if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2894if_f = (IHPE)L13_2894if_f ; +GLOBAL IUH S_2915_Chain4DwordFill_00000002_0000000e IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2915_Chain4DwordFill_00000002_0000000e_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2915_Chain4DwordFill_00000002_0000000e = (IHPE)S_2915_Chain4DwordFill_00000002_0000000e ; +LOCAL IUH L13_2895if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2895if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2895if_f = (IHPE)L13_2895if_f ; +GLOBAL IUH S_2916_Chain4DwordFill_00000002_0000000f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2916_Chain4DwordFill_00000002_0000000f_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2916_Chain4DwordFill_00000002_0000000f = (IHPE)S_2916_Chain4DwordFill_00000002_0000000f ; +LOCAL IUH L13_2896if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2896if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2896if_f = (IHPE)L13_2896if_f ; +GLOBAL IUH S_2917_Chain4DwordMove_00000002_00000008_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2917_Chain4DwordMove_00000002_00000008_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2917_Chain4DwordMove_00000002_00000008_00000000 = (IHPE)S_2917_Chain4DwordMove_00000002_00000008_00000000 ; +LOCAL IUH L13_2897if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2897if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2897if_f = (IHPE)L13_2897if_f ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + case S_2886_CopyBytePlnByPlnChain4_00000002_00000008_00000000_00000000_id : + S_2886_CopyBytePlnByPlnChain4_00000002_00000008_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2886) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2866if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2866if_f_id : + L13_2866if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_896if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_899w_d; + case L23_898w_t_id : + L23_898w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_900if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_900if_f_id : + L23_900if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_898w_t; + case L23_899w_d_id : + L23_899w_d: ; + { extern IUH L23_897if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_897if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_896if_f_id : + L23_896if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_902w_d; + case L23_901w_t_id : + L23_901w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_903if_f; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_903if_f_id : + L23_903if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_901w_t; + case L23_902w_d_id : + L23_902w_d: ; + case L23_897if_d_id : + L23_897if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2887_Chain4ByteMove_00000002_00000009_00000000_id : + S_2887_Chain4ByteMove_00000002_00000009_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2887) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2867if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2867if_f_id : + L13_2867if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_151if_f; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2888_CopyByte4PlaneChain4_00000002_00000009_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2888_CopyByte4PlaneChain4_00000002_00000009_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + { extern IUH L22_152if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_152if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_151if_f_id : + L22_151if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2888_CopyByte4PlaneChain4_00000002_00000009_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2888_CopyByte4PlaneChain4_00000002_00000009_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + case L22_152if_d_id : + L22_152if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2888_CopyByte4PlaneChain4_00000002_00000009_00000000_00000000_id : + S_2888_CopyByte4PlaneChain4_00000002_00000009_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2888) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2868if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2868if_f_id : + L13_2868if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_904if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_907w_d; + case L23_906w_t_id : + L23_906w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_906w_t; + case L23_907w_d_id : + L23_907w_d: ; + { extern IUH L23_905if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_905if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_904if_f_id : + L23_904if_f: ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_909w_d; + case L23_908w_t_id : + L23_908w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_908w_t; + case L23_909w_d_id : + L23_909w_d: ; + case L23_905if_d_id : + L23_905if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2889_Chain4ByteMove_00000002_0000000e_00000000_id : + S_2889_Chain4ByteMove_00000002_0000000e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2889) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2869if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2869if_f_id : + L13_2869if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_153if_f; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2890_CopyBytePlnByPlnChain4_00000002_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2890_CopyBytePlnByPlnChain4_00000002_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + { extern IUH L22_154if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_154if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_153if_f_id : + L22_153if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2890_CopyBytePlnByPlnChain4_00000002_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2890_CopyBytePlnByPlnChain4_00000002_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + case L22_154if_d_id : + L22_154if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2890_CopyBytePlnByPlnChain4_00000002_0000000e_00000000_00000000_id : + S_2890_CopyBytePlnByPlnChain4_00000002_0000000e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2890) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2870if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2870if_f_id : + L13_2870if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_910if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_913w_d; + case L23_912w_t_id : + L23_912w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_914if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_914if_f_id : + L23_914if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_912w_t; + case L23_913w_d_id : + L23_913w_d: ; + { extern IUH L23_911if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_911if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_910if_f_id : + L23_910if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_916w_d; + case L23_915w_t_id : + L23_915w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_917if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r24)) = (IS32)(1308) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)&(r23) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r24))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_917if_f_id : + L23_917if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_915w_t; + case L23_916w_d_id : + L23_916w_d: ; + case L23_911if_d_id : + L23_911if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2891_Chain4ByteMove_00000002_0000000f_00000000_id : + S_2891_Chain4ByteMove_00000002_0000000f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2891) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2871if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2871if_f_id : + L13_2871if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_155if_f; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2892_CopyByte4PlaneChain4_00000002_0000000f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2892_CopyByte4PlaneChain4_00000002_0000000f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + { extern IUH L22_156if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_156if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_155if_f_id : + L22_155if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2892_CopyByte4PlaneChain4_00000002_0000000f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2892_CopyByte4PlaneChain4_00000002_0000000f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + case L22_156if_d_id : + L22_156if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2892_CopyByte4PlaneChain4_00000002_0000000f_00000000_00000000_id : + S_2892_CopyByte4PlaneChain4_00000002_0000000f_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2892) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2872if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2872if_f_id : + L13_2872if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_918if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_921w_d; + case L23_920w_t_id : + L23_920w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_920w_t; + case L23_921w_d_id : + L23_921w_d: ; + { extern IUH L23_919if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_919if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_918if_f_id : + L23_918if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_923w_d; + case L23_922w_t_id : + L23_922w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r24)) = (IS32)(1308) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)&(r23) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r24))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_922w_t; + case L23_923w_d_id : + L23_923w_d: ; + case L23_919if_d_id : + L23_919if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2893_Chain4WordWrite_00000002_00000008_id : + S_2893_Chain4WordWrite_00000002_00000008 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2893) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2873if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2873if_f_id : + L13_2873if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+2) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+3) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_157if_f; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + case L22_157if_f_id : + L22_157if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_158if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + case L22_158if_f_id : + L22_158if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2894_Chain4WordWrite_00000002_00000009_id : + S_2894_Chain4WordWrite_00000002_00000009 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2894) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2874if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2874if_f_id : + L13_2874if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+2) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+3) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2895_Chain4WordWrite_00000002_0000000e_id : + S_2895_Chain4WordWrite_00000002_0000000e : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2895) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2875if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2875if_f_id : + L13_2875if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+2) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+3) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_159if_f; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + case L22_159if_f_id : + L22_159if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_160if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + case L22_160if_f_id : + L22_160if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2896_Chain4WordWrite_00000002_0000000f_id : + S_2896_Chain4WordWrite_00000002_0000000f : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2896) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2876if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2876if_f_id : + L13_2876if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+2) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+3) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2897_Chain4WordFill_00000002_00000008_id : + S_2897_Chain4WordFill_00000002_00000008 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2897) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2877if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2877if_f_id : + L13_2877if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_161if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_161if_f_id : + L22_161if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_162if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_162if_f_id : + L22_162if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_163if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_163if_f_id : + L22_163if_f: ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_164if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_164if_f_id : + L22_164if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2898_Chain4WordFill_00000002_00000009_id : + S_2898_Chain4WordFill_00000002_00000009 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2898) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2878if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2878if_f_id : + L13_2878if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16666) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2796_Chain44PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2796_Chain44PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16667) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2899_Chain4WordFill_00000002_0000000e_id : + S_2899_Chain4WordFill_00000002_0000000e : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2899) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2879if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2879if_f_id : + L13_2879if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_165if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_165if_f_id : + L22_165if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_166if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_166if_f_id : + L22_166if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_167if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_167if_f_id : + L22_167if_f: ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_168if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_168if_f_id : + L22_168if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2900_Chain4WordFill_00000002_0000000f_id : + S_2900_Chain4WordFill_00000002_0000000f : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2900) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2880if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2880if_f_id : + L13_2880if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+4) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+5) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16666) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2796_Chain44PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2796_Chain44PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16667) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2901_Chain4WordMove_00000002_00000008_00000000_id : + S_2901_Chain4WordMove_00000002_00000008_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2901) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2881if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2881if_f_id : + L13_2881if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_169if_f; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2902_CopyWordPlnByPlnChain4_00000002_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2902_CopyWordPlnByPlnChain4_00000002_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + { extern IUH L22_170if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_170if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_169if_f_id : + L22_169if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2902_CopyWordPlnByPlnChain4_00000002_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2902_CopyWordPlnByPlnChain4_00000002_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + case L22_170if_d_id : + L22_170if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2902_CopyWordPlnByPlnChain4_00000002_00000008_00000000_00000000_id : + S_2902_CopyWordPlnByPlnChain4_00000002_00000008_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2902) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2882if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2882if_f_id : + L13_2882if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2886_CopyBytePlnByPlnChain4_00000002_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2886_CopyBytePlnByPlnChain4_00000002_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2903_Chain4WordMove_00000002_00000009_00000000_id : + S_2903_Chain4WordMove_00000002_00000009_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2903) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2883if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2883if_f_id : + L13_2883if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_171if_f; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2904_CopyWord4PlaneChain4_00000002_00000009_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2904_CopyWord4PlaneChain4_00000002_00000009_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + { extern IUH L22_172if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_172if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_171if_f_id : + L22_171if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2904_CopyWord4PlaneChain4_00000002_00000009_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2904_CopyWord4PlaneChain4_00000002_00000009_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + case L22_172if_d_id : + L22_172if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2904_CopyWord4PlaneChain4_00000002_00000009_00000000_00000000_id : + S_2904_CopyWord4PlaneChain4_00000002_00000009_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2904) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2884if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2884if_f_id : + L13_2884if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_924if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_927w_d; + case L23_926w_t_id : + L23_926w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_926w_t; + case L23_927w_d_id : + L23_927w_d: ; + { extern IUH L23_925if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_925if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_924if_f_id : + L23_924if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_929w_d; + case L23_928w_t_id : + L23_928w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_928w_t; + case L23_929w_d_id : + L23_929w_d: ; + case L23_925if_d_id : + L23_925if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2905_Chain4WordMove_00000002_0000000e_00000000_id : + S_2905_Chain4WordMove_00000002_0000000e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2905) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2885if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2885if_f_id : + L13_2885if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_173if_f; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2906_CopyWordPlnByPlnChain4_00000002_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2906_CopyWordPlnByPlnChain4_00000002_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + { extern IUH L22_174if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_174if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_173if_f_id : + L22_173if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2906_CopyWordPlnByPlnChain4_00000002_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2906_CopyWordPlnByPlnChain4_00000002_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + case L22_174if_d_id : + L22_174if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2906_CopyWordPlnByPlnChain4_00000002_0000000e_00000000_00000000_id : + S_2906_CopyWordPlnByPlnChain4_00000002_0000000e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2906) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2886if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2886if_f_id : + L13_2886if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2890_CopyBytePlnByPlnChain4_00000002_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2890_CopyBytePlnByPlnChain4_00000002_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2907_Chain4WordMove_00000002_0000000f_00000000_id : + S_2907_Chain4WordMove_00000002_0000000f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2907) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2887if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2887if_f_id : + L13_2887if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_175if_f; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2908_CopyWord4PlaneChain4_00000002_0000000f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2908_CopyWord4PlaneChain4_00000002_0000000f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + { extern IUH L22_176if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_176if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_175if_f_id : + L22_175if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2908_CopyWord4PlaneChain4_00000002_0000000f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2908_CopyWord4PlaneChain4_00000002_0000000f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + case L22_176if_d_id : + L22_176if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2908_CopyWord4PlaneChain4_00000002_0000000f_00000000_00000000_id : + S_2908_CopyWord4PlaneChain4_00000002_0000000f_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2908) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2888if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2888if_f_id : + L13_2888if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_930if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_933w_d; + case L23_932w_t_id : + L23_932w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_932w_t; + case L23_933w_d_id : + L23_933w_d: ; + { extern IUH L23_931if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_931if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_930if_f_id : + L23_930if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_935w_d; + case L23_934w_t_id : + L23_934w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r24)) = (IS32)(1308) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)&(r23) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r24))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r24)) = (IS32)(1308) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)&(r23) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r24))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_934w_t; + case L23_935w_d_id : + L23_935w_d: ; + case L23_931if_d_id : + L23_931if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2909_Chain4DwordWrite_00000002_00000008_id : + S_2909_Chain4DwordWrite_00000002_00000008 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2909) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2889if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2889if_f_id : + L13_2889if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2893_Chain4WordWrite_00000002_00000008() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2893_Chain4WordWrite_00000002_00000008(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2893_Chain4WordWrite_00000002_00000008() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2893_Chain4WordWrite_00000002_00000008(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2910_Chain4DwordWrite_00000002_00000009_id : + S_2910_Chain4DwordWrite_00000002_00000009 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2910) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2890if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2890if_f_id : + L13_2890if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2894_Chain4WordWrite_00000002_00000009() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2894_Chain4WordWrite_00000002_00000009(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2894_Chain4WordWrite_00000002_00000009() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2894_Chain4WordWrite_00000002_00000009(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2911_Chain4DwordWrite_00000002_0000000e_id : + S_2911_Chain4DwordWrite_00000002_0000000e : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2911) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2891if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2891if_f_id : + L13_2891if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2895_Chain4WordWrite_00000002_0000000e() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2895_Chain4WordWrite_00000002_0000000e(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2895_Chain4WordWrite_00000002_0000000e() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2895_Chain4WordWrite_00000002_0000000e(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2912_Chain4DwordWrite_00000002_0000000f_id : + S_2912_Chain4DwordWrite_00000002_0000000f : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2912) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2892if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2892if_f_id : + L13_2892if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2896_Chain4WordWrite_00000002_0000000f() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2896_Chain4WordWrite_00000002_0000000f(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2896_Chain4WordWrite_00000002_0000000f() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2896_Chain4WordWrite_00000002_0000000f(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2913_Chain4DwordFill_00000002_00000008_id : + S_2913_Chain4DwordFill_00000002_00000008 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2913) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2893if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2893if_f_id : + L13_2893if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2897_Chain4WordFill_00000002_00000008() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2897_Chain4WordFill_00000002_00000008(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2897_Chain4WordFill_00000002_00000008() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2897_Chain4WordFill_00000002_00000008(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2914_Chain4DwordFill_00000002_00000009_id : + S_2914_Chain4DwordFill_00000002_00000009 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2914) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2894if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2894if_f_id : + L13_2894if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2898_Chain4WordFill_00000002_00000009() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2898_Chain4WordFill_00000002_00000009(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2898_Chain4WordFill_00000002_00000009() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2898_Chain4WordFill_00000002_00000009(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2915_Chain4DwordFill_00000002_0000000e_id : + S_2915_Chain4DwordFill_00000002_0000000e : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2915) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2895if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2895if_f_id : + L13_2895if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2899_Chain4WordFill_00000002_0000000e() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2899_Chain4WordFill_00000002_0000000e(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2899_Chain4WordFill_00000002_0000000e() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2899_Chain4WordFill_00000002_0000000e(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2916_Chain4DwordFill_00000002_0000000f_id : + S_2916_Chain4DwordFill_00000002_0000000f : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2916) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2896if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2896if_f_id : + L13_2896if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2900_Chain4WordFill_00000002_0000000f() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2900_Chain4WordFill_00000002_0000000f(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2900_Chain4WordFill_00000002_0000000f() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2900_Chain4WordFill_00000002_0000000f(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2917_Chain4DwordMove_00000002_00000008_00000000_id : + S_2917_Chain4DwordMove_00000002_00000008_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2917) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2897if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2897if_f_id : + L13_2897if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2901_Chain4WordMove_00000002_00000008_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2901_Chain4WordMove_00000002_00000008_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid026.c b/private/mvdm/softpc.new/base/cvidc/sevid026.c new file mode 100644 index 000000000..6be1eb479 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid026.c @@ -0,0 +1,3936 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_2918_Chain4DwordMove_00000002_00000009_00000000_id, +L13_2898if_f_id, +S_2919_Chain4DwordMove_00000002_0000000e_00000000_id, +L13_2899if_f_id, +S_2920_Chain4DwordMove_00000002_0000000f_00000000_id, +L13_2900if_f_id, +S_2921_Chain4ByteWrite_00000003_00000008_id, +L13_2901if_f_id, +L22_177if_f_id, +S_2922_Chain4ByteWrite_00000003_00000009_id, +L13_2902if_f_id, +S_2923_Chain4ByteWrite_00000003_0000000e_id, +L13_2903if_f_id, +L22_178if_f_id, +S_2924_Chain4ByteWrite_00000003_0000000f_id, +L13_2904if_f_id, +S_2925_Chain4ByteFill_00000003_00000008_id, +L13_2905if_f_id, +L22_179if_f_id, +L22_180if_f_id, +L22_181if_f_id, +L22_182if_f_id, +S_2926_Chain4ByteFill_00000003_00000009_id, +L13_2906if_f_id, +S_2927_Chain4ByteFill_00000003_0000000e_id, +L13_2907if_f_id, +L22_183if_f_id, +L22_184if_f_id, +L22_185if_f_id, +L22_186if_f_id, +S_2928_Chain4ByteFill_00000003_0000000f_id, +L13_2908if_f_id, +S_2929_Chain4ByteMove_00000003_00000008_00000000_id, +L13_2909if_f_id, +L22_187if_f_id, +L22_188if_d_id, +S_2930_CopyBytePlnByPlnChain4_00000003_00000008_00000000_00000000_id, +L13_2910if_f_id, +L23_938w_t_id, +L23_940if_f_id, +L23_939w_d_id, +L23_936if_f_id, +L23_941w_t_id, +L23_943if_f_id, +L23_942w_d_id, +L23_937if_d_id, +S_2931_Chain4ByteMove_00000003_00000009_00000000_id, +L13_2911if_f_id, +L22_189if_f_id, +L22_190if_d_id, +S_2932_CopyByte4PlaneChain4_00000003_00000009_00000000_00000000_id, +L13_2912if_f_id, +L23_946w_t_id, +L23_947w_d_id, +L23_944if_f_id, +L23_948w_t_id, +L23_949w_d_id, +L23_945if_d_id, +S_2933_Chain4ByteMove_00000003_0000000e_00000000_id, +L13_2913if_f_id, +L22_191if_f_id, +L22_192if_d_id, +S_2934_CopyBytePlnByPlnChain4_00000003_0000000e_00000000_00000000_id, +L13_2914if_f_id, +L23_952w_t_id, +L23_954if_f_id, +L23_953w_d_id, +L23_950if_f_id, +L23_955w_t_id, +L23_957if_f_id, +L23_956w_d_id, +L23_951if_d_id, +S_2935_Chain4ByteMove_00000003_0000000f_00000000_id, +L13_2915if_f_id, +L22_193if_f_id, +L22_194if_d_id, +S_2936_CopyByte4PlaneChain4_00000003_0000000f_00000000_00000000_id, +L13_2916if_f_id, +L23_960w_t_id, +L23_961w_d_id, +L23_958if_f_id, +L23_962w_t_id, +L23_963w_d_id, +L23_959if_d_id, +S_2937_Chain4WordWrite_00000003_00000008_id, +L13_2917if_f_id, +L22_195if_f_id, +L22_196if_f_id, +S_2938_Chain4WordWrite_00000003_00000009_id, +L13_2918if_f_id, +S_2939_Chain4WordWrite_00000003_0000000e_id, +L13_2919if_f_id, +L22_197if_f_id, +L22_198if_f_id, +S_2940_Chain4WordWrite_00000003_0000000f_id, +L13_2920if_f_id, +S_2941_Chain4WordFill_00000003_00000008_id, +L13_2921if_f_id, +L22_199if_f_id, +L22_200if_f_id, +L22_201if_f_id, +L22_202if_f_id, +S_2942_Chain4WordFill_00000003_00000009_id, +L13_2922if_f_id, +S_2943_Chain4WordFill_00000003_0000000e_id, +L13_2923if_f_id, +L22_203if_f_id, +L22_204if_f_id, +L22_205if_f_id, +L22_206if_f_id, +S_2944_Chain4WordFill_00000003_0000000f_id, +L13_2924if_f_id, +S_2945_Chain4WordMove_00000003_00000008_00000000_id, +L13_2925if_f_id, +L22_207if_f_id, +L22_208if_d_id, +S_2946_CopyWordPlnByPlnChain4_00000003_00000008_00000000_00000000_id, +L13_2926if_f_id, +S_2947_Chain4WordMove_00000003_00000009_00000000_id, +L13_2927if_f_id, +L22_209if_f_id, +L22_210if_d_id, +S_2948_CopyWord4PlaneChain4_00000003_00000009_00000000_00000000_id, +L13_2928if_f_id, +L23_966w_t_id, +L23_967w_d_id, +L23_964if_f_id, +L23_968w_t_id, +L23_969w_d_id, +L23_965if_d_id, +S_2949_Chain4WordMove_00000003_0000000e_00000000_id, +L13_2929if_f_id, +L22_211if_f_id, +L22_212if_d_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_2918_Chain4DwordMove_00000002_00000009_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2918_Chain4DwordMove_00000002_00000009_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2918_Chain4DwordMove_00000002_00000009_00000000 = (IHPE)S_2918_Chain4DwordMove_00000002_00000009_00000000 ; +LOCAL IUH L13_2898if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2898if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2898if_f = (IHPE)L13_2898if_f ; +GLOBAL IUH S_2919_Chain4DwordMove_00000002_0000000e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2919_Chain4DwordMove_00000002_0000000e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2919_Chain4DwordMove_00000002_0000000e_00000000 = (IHPE)S_2919_Chain4DwordMove_00000002_0000000e_00000000 ; +LOCAL IUH L13_2899if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2899if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2899if_f = (IHPE)L13_2899if_f ; +GLOBAL IUH S_2920_Chain4DwordMove_00000002_0000000f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2920_Chain4DwordMove_00000002_0000000f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2920_Chain4DwordMove_00000002_0000000f_00000000 = (IHPE)S_2920_Chain4DwordMove_00000002_0000000f_00000000 ; +LOCAL IUH L13_2900if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2900if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2900if_f = (IHPE)L13_2900if_f ; +GLOBAL IUH S_2921_Chain4ByteWrite_00000003_00000008 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2921_Chain4ByteWrite_00000003_00000008_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2921_Chain4ByteWrite_00000003_00000008 = (IHPE)S_2921_Chain4ByteWrite_00000003_00000008 ; +LOCAL IUH L13_2901if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2901if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2901if_f = (IHPE)L13_2901if_f ; +LOCAL IUH L22_177if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_177if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_177if_f = (IHPE)L22_177if_f ; +GLOBAL IUH S_2922_Chain4ByteWrite_00000003_00000009 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2922_Chain4ByteWrite_00000003_00000009_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2922_Chain4ByteWrite_00000003_00000009 = (IHPE)S_2922_Chain4ByteWrite_00000003_00000009 ; +LOCAL IUH L13_2902if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2902if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2902if_f = (IHPE)L13_2902if_f ; +GLOBAL IUH S_2923_Chain4ByteWrite_00000003_0000000e IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2923_Chain4ByteWrite_00000003_0000000e_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2923_Chain4ByteWrite_00000003_0000000e = (IHPE)S_2923_Chain4ByteWrite_00000003_0000000e ; +LOCAL IUH L13_2903if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2903if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2903if_f = (IHPE)L13_2903if_f ; +LOCAL IUH L22_178if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_178if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_178if_f = (IHPE)L22_178if_f ; +GLOBAL IUH S_2924_Chain4ByteWrite_00000003_0000000f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2924_Chain4ByteWrite_00000003_0000000f_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2924_Chain4ByteWrite_00000003_0000000f = (IHPE)S_2924_Chain4ByteWrite_00000003_0000000f ; +LOCAL IUH L13_2904if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2904if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2904if_f = (IHPE)L13_2904if_f ; +GLOBAL IUH S_2925_Chain4ByteFill_00000003_00000008 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2925_Chain4ByteFill_00000003_00000008_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2925_Chain4ByteFill_00000003_00000008 = (IHPE)S_2925_Chain4ByteFill_00000003_00000008 ; +LOCAL IUH L13_2905if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2905if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2905if_f = (IHPE)L13_2905if_f ; +LOCAL IUH L22_179if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_179if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_179if_f = (IHPE)L22_179if_f ; +LOCAL IUH L22_180if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_180if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_180if_f = (IHPE)L22_180if_f ; +LOCAL IUH L22_181if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_181if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_181if_f = (IHPE)L22_181if_f ; +LOCAL IUH L22_182if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_182if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_182if_f = (IHPE)L22_182if_f ; +GLOBAL IUH S_2926_Chain4ByteFill_00000003_00000009 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2926_Chain4ByteFill_00000003_00000009_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2926_Chain4ByteFill_00000003_00000009 = (IHPE)S_2926_Chain4ByteFill_00000003_00000009 ; +LOCAL IUH L13_2906if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2906if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2906if_f = (IHPE)L13_2906if_f ; +GLOBAL IUH S_2927_Chain4ByteFill_00000003_0000000e IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2927_Chain4ByteFill_00000003_0000000e_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2927_Chain4ByteFill_00000003_0000000e = (IHPE)S_2927_Chain4ByteFill_00000003_0000000e ; +LOCAL IUH L13_2907if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2907if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2907if_f = (IHPE)L13_2907if_f ; +LOCAL IUH L22_183if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_183if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_183if_f = (IHPE)L22_183if_f ; +LOCAL IUH L22_184if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_184if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_184if_f = (IHPE)L22_184if_f ; +LOCAL IUH L22_185if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_185if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_185if_f = (IHPE)L22_185if_f ; +LOCAL IUH L22_186if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_186if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_186if_f = (IHPE)L22_186if_f ; +GLOBAL IUH S_2928_Chain4ByteFill_00000003_0000000f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2928_Chain4ByteFill_00000003_0000000f_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2928_Chain4ByteFill_00000003_0000000f = (IHPE)S_2928_Chain4ByteFill_00000003_0000000f ; +LOCAL IUH L13_2908if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2908if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2908if_f = (IHPE)L13_2908if_f ; +GLOBAL IUH S_2929_Chain4ByteMove_00000003_00000008_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2929_Chain4ByteMove_00000003_00000008_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2929_Chain4ByteMove_00000003_00000008_00000000 = (IHPE)S_2929_Chain4ByteMove_00000003_00000008_00000000 ; +LOCAL IUH L13_2909if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2909if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2909if_f = (IHPE)L13_2909if_f ; +LOCAL IUH L22_187if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_187if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_187if_f = (IHPE)L22_187if_f ; +LOCAL IUH L22_188if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_188if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_188if_d = (IHPE)L22_188if_d ; +GLOBAL IUH S_2930_CopyBytePlnByPlnChain4_00000003_00000008_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2930_CopyBytePlnByPlnChain4_00000003_00000008_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2930_CopyBytePlnByPlnChain4_00000003_00000008_00000000_00000000 = (IHPE)S_2930_CopyBytePlnByPlnChain4_00000003_00000008_00000000_00000000 ; +LOCAL IUH L13_2910if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2910if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2910if_f = (IHPE)L13_2910if_f ; +LOCAL IUH L23_938w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_938w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_938w_t = (IHPE)L23_938w_t ; +LOCAL IUH L23_940if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_940if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_940if_f = (IHPE)L23_940if_f ; +LOCAL IUH L23_939w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_939w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_939w_d = (IHPE)L23_939w_d ; +LOCAL IUH L23_936if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_936if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_936if_f = (IHPE)L23_936if_f ; +LOCAL IUH L23_941w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_941w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_941w_t = (IHPE)L23_941w_t ; +LOCAL IUH L23_943if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_943if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_943if_f = (IHPE)L23_943if_f ; +LOCAL IUH L23_942w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_942w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_942w_d = (IHPE)L23_942w_d ; +LOCAL IUH L23_937if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_937if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_937if_d = (IHPE)L23_937if_d ; +GLOBAL IUH S_2931_Chain4ByteMove_00000003_00000009_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2931_Chain4ByteMove_00000003_00000009_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2931_Chain4ByteMove_00000003_00000009_00000000 = (IHPE)S_2931_Chain4ByteMove_00000003_00000009_00000000 ; +LOCAL IUH L13_2911if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2911if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2911if_f = (IHPE)L13_2911if_f ; +LOCAL IUH L22_189if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_189if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_189if_f = (IHPE)L22_189if_f ; +LOCAL IUH L22_190if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_190if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_190if_d = (IHPE)L22_190if_d ; +GLOBAL IUH S_2932_CopyByte4PlaneChain4_00000003_00000009_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2932_CopyByte4PlaneChain4_00000003_00000009_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2932_CopyByte4PlaneChain4_00000003_00000009_00000000_00000000 = (IHPE)S_2932_CopyByte4PlaneChain4_00000003_00000009_00000000_00000000 ; +LOCAL IUH L13_2912if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2912if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2912if_f = (IHPE)L13_2912if_f ; +LOCAL IUH L23_946w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_946w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_946w_t = (IHPE)L23_946w_t ; +LOCAL IUH L23_947w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_947w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_947w_d = (IHPE)L23_947w_d ; +LOCAL IUH L23_944if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_944if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_944if_f = (IHPE)L23_944if_f ; +LOCAL IUH L23_948w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_948w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_948w_t = (IHPE)L23_948w_t ; +LOCAL IUH L23_949w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_949w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_949w_d = (IHPE)L23_949w_d ; +LOCAL IUH L23_945if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_945if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_945if_d = (IHPE)L23_945if_d ; +GLOBAL IUH S_2933_Chain4ByteMove_00000003_0000000e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2933_Chain4ByteMove_00000003_0000000e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2933_Chain4ByteMove_00000003_0000000e_00000000 = (IHPE)S_2933_Chain4ByteMove_00000003_0000000e_00000000 ; +LOCAL IUH L13_2913if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2913if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2913if_f = (IHPE)L13_2913if_f ; +LOCAL IUH L22_191if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_191if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_191if_f = (IHPE)L22_191if_f ; +LOCAL IUH L22_192if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_192if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_192if_d = (IHPE)L22_192if_d ; +GLOBAL IUH S_2934_CopyBytePlnByPlnChain4_00000003_0000000e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2934_CopyBytePlnByPlnChain4_00000003_0000000e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2934_CopyBytePlnByPlnChain4_00000003_0000000e_00000000_00000000 = (IHPE)S_2934_CopyBytePlnByPlnChain4_00000003_0000000e_00000000_00000000 ; +LOCAL IUH L13_2914if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2914if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2914if_f = (IHPE)L13_2914if_f ; +LOCAL IUH L23_952w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_952w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_952w_t = (IHPE)L23_952w_t ; +LOCAL IUH L23_954if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_954if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_954if_f = (IHPE)L23_954if_f ; +LOCAL IUH L23_953w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_953w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_953w_d = (IHPE)L23_953w_d ; +LOCAL IUH L23_950if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_950if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_950if_f = (IHPE)L23_950if_f ; +LOCAL IUH L23_955w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_955w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_955w_t = (IHPE)L23_955w_t ; +LOCAL IUH L23_957if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_957if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_957if_f = (IHPE)L23_957if_f ; +LOCAL IUH L23_956w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_956w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_956w_d = (IHPE)L23_956w_d ; +LOCAL IUH L23_951if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_951if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_951if_d = (IHPE)L23_951if_d ; +GLOBAL IUH S_2935_Chain4ByteMove_00000003_0000000f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2935_Chain4ByteMove_00000003_0000000f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2935_Chain4ByteMove_00000003_0000000f_00000000 = (IHPE)S_2935_Chain4ByteMove_00000003_0000000f_00000000 ; +LOCAL IUH L13_2915if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2915if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2915if_f = (IHPE)L13_2915if_f ; +LOCAL IUH L22_193if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_193if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_193if_f = (IHPE)L22_193if_f ; +LOCAL IUH L22_194if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_194if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_194if_d = (IHPE)L22_194if_d ; +GLOBAL IUH S_2936_CopyByte4PlaneChain4_00000003_0000000f_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2936_CopyByte4PlaneChain4_00000003_0000000f_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2936_CopyByte4PlaneChain4_00000003_0000000f_00000000_00000000 = (IHPE)S_2936_CopyByte4PlaneChain4_00000003_0000000f_00000000_00000000 ; +LOCAL IUH L13_2916if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2916if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2916if_f = (IHPE)L13_2916if_f ; +LOCAL IUH L23_960w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_960w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_960w_t = (IHPE)L23_960w_t ; +LOCAL IUH L23_961w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_961w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_961w_d = (IHPE)L23_961w_d ; +LOCAL IUH L23_958if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_958if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_958if_f = (IHPE)L23_958if_f ; +LOCAL IUH L23_962w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_962w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_962w_t = (IHPE)L23_962w_t ; +LOCAL IUH L23_963w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_963w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_963w_d = (IHPE)L23_963w_d ; +LOCAL IUH L23_959if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_959if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_959if_d = (IHPE)L23_959if_d ; +GLOBAL IUH S_2937_Chain4WordWrite_00000003_00000008 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2937_Chain4WordWrite_00000003_00000008_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2937_Chain4WordWrite_00000003_00000008 = (IHPE)S_2937_Chain4WordWrite_00000003_00000008 ; +LOCAL IUH L13_2917if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2917if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2917if_f = (IHPE)L13_2917if_f ; +LOCAL IUH L22_195if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_195if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_195if_f = (IHPE)L22_195if_f ; +LOCAL IUH L22_196if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_196if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_196if_f = (IHPE)L22_196if_f ; +GLOBAL IUH S_2938_Chain4WordWrite_00000003_00000009 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2938_Chain4WordWrite_00000003_00000009_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2938_Chain4WordWrite_00000003_00000009 = (IHPE)S_2938_Chain4WordWrite_00000003_00000009 ; +LOCAL IUH L13_2918if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2918if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2918if_f = (IHPE)L13_2918if_f ; +GLOBAL IUH S_2939_Chain4WordWrite_00000003_0000000e IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2939_Chain4WordWrite_00000003_0000000e_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2939_Chain4WordWrite_00000003_0000000e = (IHPE)S_2939_Chain4WordWrite_00000003_0000000e ; +LOCAL IUH L13_2919if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2919if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2919if_f = (IHPE)L13_2919if_f ; +LOCAL IUH L22_197if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_197if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_197if_f = (IHPE)L22_197if_f ; +LOCAL IUH L22_198if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_198if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_198if_f = (IHPE)L22_198if_f ; +GLOBAL IUH S_2940_Chain4WordWrite_00000003_0000000f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2940_Chain4WordWrite_00000003_0000000f_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2940_Chain4WordWrite_00000003_0000000f = (IHPE)S_2940_Chain4WordWrite_00000003_0000000f ; +LOCAL IUH L13_2920if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2920if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2920if_f = (IHPE)L13_2920if_f ; +GLOBAL IUH S_2941_Chain4WordFill_00000003_00000008 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2941_Chain4WordFill_00000003_00000008_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2941_Chain4WordFill_00000003_00000008 = (IHPE)S_2941_Chain4WordFill_00000003_00000008 ; +LOCAL IUH L13_2921if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2921if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2921if_f = (IHPE)L13_2921if_f ; +LOCAL IUH L22_199if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_199if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_199if_f = (IHPE)L22_199if_f ; +LOCAL IUH L22_200if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_200if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_200if_f = (IHPE)L22_200if_f ; +LOCAL IUH L22_201if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_201if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_201if_f = (IHPE)L22_201if_f ; +LOCAL IUH L22_202if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_202if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_202if_f = (IHPE)L22_202if_f ; +GLOBAL IUH S_2942_Chain4WordFill_00000003_00000009 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2942_Chain4WordFill_00000003_00000009_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2942_Chain4WordFill_00000003_00000009 = (IHPE)S_2942_Chain4WordFill_00000003_00000009 ; +LOCAL IUH L13_2922if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2922if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2922if_f = (IHPE)L13_2922if_f ; +GLOBAL IUH S_2943_Chain4WordFill_00000003_0000000e IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2943_Chain4WordFill_00000003_0000000e_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2943_Chain4WordFill_00000003_0000000e = (IHPE)S_2943_Chain4WordFill_00000003_0000000e ; +LOCAL IUH L13_2923if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2923if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2923if_f = (IHPE)L13_2923if_f ; +LOCAL IUH L22_203if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_203if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_203if_f = (IHPE)L22_203if_f ; +LOCAL IUH L22_204if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_204if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_204if_f = (IHPE)L22_204if_f ; +LOCAL IUH L22_205if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_205if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_205if_f = (IHPE)L22_205if_f ; +LOCAL IUH L22_206if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_206if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_206if_f = (IHPE)L22_206if_f ; +GLOBAL IUH S_2944_Chain4WordFill_00000003_0000000f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2944_Chain4WordFill_00000003_0000000f_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2944_Chain4WordFill_00000003_0000000f = (IHPE)S_2944_Chain4WordFill_00000003_0000000f ; +LOCAL IUH L13_2924if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2924if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2924if_f = (IHPE)L13_2924if_f ; +GLOBAL IUH S_2945_Chain4WordMove_00000003_00000008_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2945_Chain4WordMove_00000003_00000008_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2945_Chain4WordMove_00000003_00000008_00000000 = (IHPE)S_2945_Chain4WordMove_00000003_00000008_00000000 ; +LOCAL IUH L13_2925if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2925if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2925if_f = (IHPE)L13_2925if_f ; +LOCAL IUH L22_207if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_207if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_207if_f = (IHPE)L22_207if_f ; +LOCAL IUH L22_208if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_208if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_208if_d = (IHPE)L22_208if_d ; +GLOBAL IUH S_2946_CopyWordPlnByPlnChain4_00000003_00000008_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2946_CopyWordPlnByPlnChain4_00000003_00000008_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2946_CopyWordPlnByPlnChain4_00000003_00000008_00000000_00000000 = (IHPE)S_2946_CopyWordPlnByPlnChain4_00000003_00000008_00000000_00000000 ; +LOCAL IUH L13_2926if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2926if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2926if_f = (IHPE)L13_2926if_f ; +GLOBAL IUH S_2947_Chain4WordMove_00000003_00000009_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2947_Chain4WordMove_00000003_00000009_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2947_Chain4WordMove_00000003_00000009_00000000 = (IHPE)S_2947_Chain4WordMove_00000003_00000009_00000000 ; +LOCAL IUH L13_2927if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2927if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2927if_f = (IHPE)L13_2927if_f ; +LOCAL IUH L22_209if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_209if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_209if_f = (IHPE)L22_209if_f ; +LOCAL IUH L22_210if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_210if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_210if_d = (IHPE)L22_210if_d ; +GLOBAL IUH S_2948_CopyWord4PlaneChain4_00000003_00000009_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2948_CopyWord4PlaneChain4_00000003_00000009_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2948_CopyWord4PlaneChain4_00000003_00000009_00000000_00000000 = (IHPE)S_2948_CopyWord4PlaneChain4_00000003_00000009_00000000_00000000 ; +LOCAL IUH L13_2928if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2928if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2928if_f = (IHPE)L13_2928if_f ; +LOCAL IUH L23_966w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_966w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_966w_t = (IHPE)L23_966w_t ; +LOCAL IUH L23_967w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_967w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_967w_d = (IHPE)L23_967w_d ; +LOCAL IUH L23_964if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_964if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_964if_f = (IHPE)L23_964if_f ; +LOCAL IUH L23_968w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_968w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_968w_t = (IHPE)L23_968w_t ; +LOCAL IUH L23_969w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_969w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_969w_d = (IHPE)L23_969w_d ; +LOCAL IUH L23_965if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_965if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_965if_d = (IHPE)L23_965if_d ; +GLOBAL IUH S_2949_Chain4WordMove_00000003_0000000e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2949_Chain4WordMove_00000003_0000000e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2949_Chain4WordMove_00000003_0000000e_00000000 = (IHPE)S_2949_Chain4WordMove_00000003_0000000e_00000000 ; +LOCAL IUH L13_2929if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2929if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2929if_f = (IHPE)L13_2929if_f ; +LOCAL IUH L22_211if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_211if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_211if_f = (IHPE)L22_211if_f ; +LOCAL IUH L22_212if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_212if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_212if_d = (IHPE)L22_212if_d ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2918_Chain4DwordMove_00000002_00000009_00000000_id : + S_2918_Chain4DwordMove_00000002_00000009_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2918) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2898if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2898if_f_id : + L13_2898if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2903_Chain4WordMove_00000002_00000009_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2903_Chain4WordMove_00000002_00000009_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2919_Chain4DwordMove_00000002_0000000e_00000000_id : + S_2919_Chain4DwordMove_00000002_0000000e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2919) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2899if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2899if_f_id : + L13_2899if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2905_Chain4WordMove_00000002_0000000e_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2905_Chain4WordMove_00000002_0000000e_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2920_Chain4DwordMove_00000002_0000000f_00000000_id : + S_2920_Chain4DwordMove_00000002_0000000f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2920) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2900if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2900if_f_id : + L13_2900if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2907_Chain4WordMove_00000002_0000000f_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2907_Chain4WordMove_00000002_0000000f_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2921_Chain4ByteWrite_00000003_00000008_id : + S_2921_Chain4ByteWrite_00000003_00000008 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2921) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2901if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2901if_f_id : + L13_2901if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+2) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_177if_f; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + case L22_177if_f_id : + L22_177if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2922_Chain4ByteWrite_00000003_00000009_id : + S_2922_Chain4ByteWrite_00000003_00000009 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2922) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2902if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2902if_f_id : + L13_2902if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+2) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2923_Chain4ByteWrite_00000003_0000000e_id : + S_2923_Chain4ByteWrite_00000003_0000000e : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2923) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2903if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2903if_f_id : + L13_2903if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+2) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_178if_f; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + case L22_178if_f_id : + L22_178if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2924_Chain4ByteWrite_00000003_0000000f_id : + S_2924_Chain4ByteWrite_00000003_0000000f : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2924) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2904if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2904if_f_id : + L13_2904if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+2) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1356) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2925_Chain4ByteFill_00000003_00000008_id : + S_2925_Chain4ByteFill_00000003_00000008 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2925) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2905if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2905if_f_id : + L13_2905if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+4) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_179if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_179if_f_id : + L22_179if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_180if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_180if_f_id : + L22_180if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_181if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_181if_f_id : + L22_181if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_182if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_182if_f_id : + L22_182if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2926_Chain4ByteFill_00000003_00000009_id : + S_2926_Chain4ByteFill_00000003_00000009 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2926) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2906if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2906if_f_id : + L13_2906if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+4) + REGLONG)); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1296) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)(r1+0)) = (IS32)(16654) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2747_Chain44PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2747_Chain44PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16655) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2927_Chain4ByteFill_00000003_0000000e_id : + S_2927_Chain4ByteFill_00000003_0000000e : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2927) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2907if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2907if_f_id : + L13_2907if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+4) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_183if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_183if_f_id : + L22_183if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_184if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_184if_f_id : + L22_184if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_185if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_185if_f_id : + L22_185if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_186if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_186if_f_id : + L22_186if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2928_Chain4ByteFill_00000003_0000000f_id : + S_2928_Chain4ByteFill_00000003_0000000f : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2928) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2908if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2908if_f_id : + L13_2908if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU8 *)(LocalIUH+1) + REGBYTE) = *((IU8 *)&(r3) + REGBYTE) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)(LocalIUH+4) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)(r1+0)) = (IS32)(16654) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2747_Chain44PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2747_Chain44PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16655) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2929_Chain4ByteMove_00000003_00000008_00000000_id : + S_2929_Chain4ByteMove_00000003_00000008_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2929) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2909if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2909if_f_id : + L13_2909if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_187if_f; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2930_CopyBytePlnByPlnChain4_00000003_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2930_CopyBytePlnByPlnChain4_00000003_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + { extern IUH L22_188if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_188if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_187if_f_id : + L22_187if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2930_CopyBytePlnByPlnChain4_00000003_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2930_CopyBytePlnByPlnChain4_00000003_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + case L22_188if_d_id : + L22_188if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2930_CopyBytePlnByPlnChain4_00000003_00000008_00000000_00000000_id : + S_2930_CopyBytePlnByPlnChain4_00000003_00000008_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2930) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2910if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2910if_f_id : + L13_2910if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_936if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_939w_d; + case L23_938w_t_id : + L23_938w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_940if_f; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_940if_f_id : + L23_940if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_938w_t; + case L23_939w_d_id : + L23_939w_d: ; + { extern IUH L23_937if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_937if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_936if_f_id : + L23_936if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_942w_d; + case L23_941w_t_id : + L23_941w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_943if_f; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_943if_f_id : + L23_943if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_941w_t; + case L23_942w_d_id : + L23_942w_d: ; + case L23_937if_d_id : + L23_937if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2931_Chain4ByteMove_00000003_00000009_00000000_id : + S_2931_Chain4ByteMove_00000003_00000009_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2931) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2911if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2911if_f_id : + L13_2911if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_189if_f; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2932_CopyByte4PlaneChain4_00000003_00000009_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2932_CopyByte4PlaneChain4_00000003_00000009_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + { extern IUH L22_190if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_190if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_189if_f_id : + L22_189if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2932_CopyByte4PlaneChain4_00000003_00000009_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2932_CopyByte4PlaneChain4_00000003_00000009_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + case L22_190if_d_id : + L22_190if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2932_CopyByte4PlaneChain4_00000003_00000009_00000000_00000000_id : + S_2932_CopyByte4PlaneChain4_00000003_00000009_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2932) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2912if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2912if_f_id : + L13_2912if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_944if_f; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_947w_d; + case L23_946w_t_id : + L23_946w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_946w_t; + case L23_947w_d_id : + L23_947w_d: ; + { extern IUH L23_945if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_945if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_944if_f_id : + L23_944if_f: ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_949w_d; + case L23_948w_t_id : + L23_948w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_948w_t; + case L23_949w_d_id : + L23_949w_d: ; + case L23_945if_d_id : + L23_945if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2933_Chain4ByteMove_00000003_0000000e_00000000_id : + S_2933_Chain4ByteMove_00000003_0000000e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2933) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2913if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2913if_f_id : + L13_2913if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_191if_f; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2934_CopyBytePlnByPlnChain4_00000003_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2934_CopyBytePlnByPlnChain4_00000003_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + { extern IUH L22_192if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_192if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_191if_f_id : + L22_191if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2934_CopyBytePlnByPlnChain4_00000003_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2934_CopyBytePlnByPlnChain4_00000003_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + case L22_192if_d_id : + L22_192if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2934_CopyBytePlnByPlnChain4_00000003_0000000e_00000000_00000000_id : + S_2934_CopyBytePlnByPlnChain4_00000003_0000000e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2934) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2914if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2914if_f_id : + L13_2914if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_950if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_953w_d; + case L23_952w_t_id : + L23_952w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_954if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_954if_f_id : + L23_954if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_952w_t; + case L23_953w_d_id : + L23_953w_d: ; + { extern IUH L23_951if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_951if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_950if_f_id : + L23_950if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_956w_d; + case L23_955w_t_id : + L23_955w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_957if_f; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(1296) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)&(r23) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_957if_f_id : + L23_957if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_955w_t; + case L23_956w_d_id : + L23_956w_d: ; + case L23_951if_d_id : + L23_951if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2935_Chain4ByteMove_00000003_0000000f_00000000_id : + S_2935_Chain4ByteMove_00000003_0000000f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2935) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2915if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2915if_f_id : + L13_2915if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_193if_f; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2936_CopyByte4PlaneChain4_00000003_0000000f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2936_CopyByte4PlaneChain4_00000003_0000000f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + { extern IUH L22_194if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_194if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_193if_f_id : + L22_193if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2936_CopyByte4PlaneChain4_00000003_0000000f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2936_CopyByte4PlaneChain4_00000003_0000000f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + case L22_194if_d_id : + L22_194if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2936_CopyByte4PlaneChain4_00000003_0000000f_00000000_00000000_id : + S_2936_CopyByte4PlaneChain4_00000003_0000000f_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2936) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2916if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2916if_f_id : + L13_2916if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_958if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_961w_d; + case L23_960w_t_id : + L23_960w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_960w_t; + case L23_961w_d_id : + L23_961w_d: ; + { extern IUH L23_959if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_959if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_958if_f_id : + L23_958if_f: ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_963w_d; + case L23_962w_t_id : + L23_962w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(1296) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)&(r23) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_962w_t; + case L23_963w_d_id : + L23_963w_d: ; + case L23_959if_d_id : + L23_959if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2937_Chain4WordWrite_00000003_00000008_id : + S_2937_Chain4WordWrite_00000003_00000008 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2937) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2917if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2917if_f_id : + L13_2917if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+2) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+3) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_195if_f; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + case L22_195if_f_id : + L22_195if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_196if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + case L22_196if_f_id : + L22_196if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2938_Chain4WordWrite_00000003_00000009_id : + S_2938_Chain4WordWrite_00000003_00000009 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2938) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2918if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2918if_f_id : + L13_2918if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+2) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+3) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2939_Chain4WordWrite_00000003_0000000e_id : + S_2939_Chain4WordWrite_00000003_0000000e : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2939) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2919if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2919if_f_id : + L13_2919if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+2) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+3) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_197if_f; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + case L22_197if_f_id : + L22_197if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_198if_f; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + case L22_198if_f_id : + L22_198if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2940_Chain4WordWrite_00000003_0000000f_id : + S_2940_Chain4WordWrite_00000003_0000000f : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2940) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2920if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2920if_f_id : + L13_2920if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+2) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+2) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+3) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+3) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+2) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1360) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004281), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2941_Chain4WordFill_00000003_00000008_id : + S_2941_Chain4WordFill_00000003_00000008 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2941) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2921if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2921if_f_id : + L13_2921if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+4) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+5) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_199if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_199if_f_id : + L22_199if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_200if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_200if_f_id : + L22_200if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_201if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_201if_f_id : + L22_201if_f: ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_202if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_202if_f_id : + L22_202if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2942_Chain4WordFill_00000003_00000009_id : + S_2942_Chain4WordFill_00000003_00000009 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2942) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2922if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2922if_f_id : + L13_2922if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+4) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+5) + REGLONG)); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1296) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)(r1+0)) = (IS32)(16666) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2796_Chain44PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2796_Chain44PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16667) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2943_Chain4WordFill_00000003_0000000e_id : + S_2943_Chain4WordFill_00000003_0000000e : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2943) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2923if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2923if_f_id : + L13_2923if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+4) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+5) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_203if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_203if_f_id : + L22_203if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_204if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_204if_f_id : + L22_204if_f: ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_205if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_205if_f_id : + L22_205if_f: ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L22_206if_f; + *((IUH *)(r1+0)) = (IS32)(16652) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) >> *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2745_Chain41PlaneByteFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2745_Chain41PlaneByteFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16653) ; + case L22_206if_f_id : + L22_206if_f: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2944_Chain4WordFill_00000003_0000000f_id : + S_2944_Chain4WordFill_00000003_0000000f : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2944) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2924if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2924if_f_id : + L13_2924if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU16 *)(LocalIUH+1) + REGWORD) = *((IU16 *)&(r3) + REGWORD ) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+1) + REGBYTE); + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *(UOFF_15_8( (LocalIUH+1) )); + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)(LocalIUH+4) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+4) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+4) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+4) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+5) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)(LocalIUH+5) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)(r1+0)) = (IS32)(16666) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; + *((IU8 *)&(r4) + REGBYTE) = *((IU8 *)(LocalIUH+5) + REGBYTE) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2796_Chain44PlaneWordFill() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2796_Chain44PlaneWordFill(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16667) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2945_Chain4WordMove_00000003_00000008_00000000_id : + S_2945_Chain4WordMove_00000003_00000008_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2945) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2925if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2925if_f_id : + L13_2925if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_207if_f; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2946_CopyWordPlnByPlnChain4_00000003_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2946_CopyWordPlnByPlnChain4_00000003_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + { extern IUH L22_208if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_208if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_207if_f_id : + L22_207if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2946_CopyWordPlnByPlnChain4_00000003_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2946_CopyWordPlnByPlnChain4_00000003_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + case L22_208if_d_id : + L22_208if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2946_CopyWordPlnByPlnChain4_00000003_00000008_00000000_00000000_id : + S_2946_CopyWordPlnByPlnChain4_00000003_00000008_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2946) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2926if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2926if_f_id : + L13_2926if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2930_CopyBytePlnByPlnChain4_00000003_00000008_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2930_CopyBytePlnByPlnChain4_00000003_00000008_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2947_Chain4WordMove_00000003_00000009_00000000_id : + S_2947_Chain4WordMove_00000003_00000009_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2947) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2927if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2927if_f_id : + L13_2927if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_209if_f; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2948_CopyWord4PlaneChain4_00000003_00000009_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2948_CopyWord4PlaneChain4_00000003_00000009_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + { extern IUH L22_210if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_210if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_209if_f_id : + L22_209if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2948_CopyWord4PlaneChain4_00000003_00000009_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2948_CopyWord4PlaneChain4_00000003_00000009_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + case L22_210if_d_id : + L22_210if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2948_CopyWord4PlaneChain4_00000003_00000009_00000000_00000000_id : + S_2948_CopyWord4PlaneChain4_00000003_00000009_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2948) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2928if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2928if_f_id : + L13_2928if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_964if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_967w_d; + case L23_966w_t_id : + L23_966w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_966w_t; + case L23_967w_d_id : + L23_967w_d: ; + { extern IUH L23_965if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_965if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_964if_f_id : + L23_964if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_969w_d; + case L23_968w_t_id : + L23_968w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_968w_t; + case L23_969w_d_id : + L23_969w_d: ; + case L23_965if_d_id : + L23_965if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2949_Chain4WordMove_00000003_0000000e_00000000_id : + S_2949_Chain4WordMove_00000003_0000000e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2949) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2929if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2929if_f_id : + L13_2929if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_211if_f; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2950_CopyWordPlnByPlnChain4_00000003_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2950_CopyWordPlnByPlnChain4_00000003_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + { extern IUH L22_212if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_212if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_211if_f_id : + L22_211if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2950_CopyWordPlnByPlnChain4_00000003_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2950_CopyWordPlnByPlnChain4_00000003_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + case L22_212if_d_id : + L22_212if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid027.c b/private/mvdm/softpc.new/base/cvidc/sevid027.c new file mode 100644 index 000000000..4e1203745 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid027.c @@ -0,0 +1,3725 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_2950_CopyWordPlnByPlnChain4_00000003_0000000e_00000000_00000000_id, +L13_2930if_f_id, +S_2951_Chain4WordMove_00000003_0000000f_00000000_id, +L13_2931if_f_id, +L22_213if_f_id, +L22_214if_d_id, +S_2952_CopyWord4PlaneChain4_00000003_0000000f_00000000_00000000_id, +L13_2932if_f_id, +L23_972w_t_id, +L23_973w_d_id, +L23_970if_f_id, +L23_974w_t_id, +L23_975w_d_id, +L23_971if_d_id, +S_2953_Chain4DwordWrite_00000003_00000008_id, +L13_2933if_f_id, +S_2954_Chain4DwordWrite_00000003_00000009_id, +L13_2934if_f_id, +S_2955_Chain4DwordWrite_00000003_0000000e_id, +L13_2935if_f_id, +S_2956_Chain4DwordWrite_00000003_0000000f_id, +L13_2936if_f_id, +S_2957_Chain4DwordFill_00000003_00000008_id, +L13_2937if_f_id, +S_2958_Chain4DwordFill_00000003_00000009_id, +L13_2938if_f_id, +S_2959_Chain4DwordFill_00000003_0000000e_id, +L13_2939if_f_id, +S_2960_Chain4DwordFill_00000003_0000000f_id, +L13_2940if_f_id, +S_2961_Chain4DwordMove_00000003_00000008_00000000_id, +L13_2941if_f_id, +S_2962_Chain4DwordMove_00000003_00000009_00000000_id, +L13_2942if_f_id, +S_2963_Chain4DwordMove_00000003_0000000e_00000000_id, +L13_2943if_f_id, +S_2964_Chain4DwordMove_00000003_0000000f_00000000_id, +L13_2944if_f_id, +S_2965_Chain4ByteMove_00000000_00000008_00000001_id, +L13_2945if_f_id, +L22_215if_f_id, +L22_216if_d_id, +S_2966_CopyBytePlnByPlnChain4_00000000_00000008_00000000_00000001_id, +L13_2946if_f_id, +L23_978w_t_id, +L23_980if_f_id, +L23_979w_d_id, +L23_976if_f_id, +L23_981w_t_id, +L23_983if_f_id, +L23_982w_d_id, +L23_977if_d_id, +S_2967_Chain4ByteMove_00000000_00000009_00000001_id, +L13_2947if_f_id, +L22_217if_f_id, +L22_218if_d_id, +S_2968_CopyByte4PlaneChain4_00000000_00000009_00000000_00000001_id, +L13_2948if_f_id, +L23_986w_t_id, +L23_987w_d_id, +L23_984if_f_id, +L23_988w_t_id, +L23_989w_d_id, +L23_985if_d_id, +S_2969_Chain4ByteMove_00000000_0000000e_00000001_id, +L13_2949if_f_id, +L22_219if_f_id, +L22_220if_d_id, +S_2970_CopyBytePlnByPlnChain4_00000000_0000000e_00000000_00000001_id, +L13_2950if_f_id, +L23_992w_t_id, +L23_994if_f_id, +L23_993w_d_id, +L23_990if_f_id, +L23_995w_t_id, +L23_997if_f_id, +L23_996w_d_id, +L23_991if_d_id, +S_2971_Chain4ByteMove_00000000_0000000f_00000001_id, +L13_2951if_f_id, +L22_221if_f_id, +L22_222if_d_id, +S_2972_CopyByte4PlaneChain4_00000000_0000000f_00000000_00000001_id, +L13_2952if_f_id, +L23_1000w_t_id, +L23_1001w_d_id, +L23_998if_f_id, +L23_1002w_t_id, +L23_1003w_d_id, +L23_999if_d_id, +S_2973_Chain4ByteMove_00000000_00000010_00000001_id, +L13_2953if_f_id, +L22_223if_f_id, +L22_224if_d_id, +S_2974_CopyBytePlnByPlnChain4_00000000_00000010_00000000_00000001_id, +L13_2954if_f_id, +L23_1006w_t_id, +L23_1008if_f_id, +L23_1007w_d_id, +L23_1004if_f_id, +L23_1009w_t_id, +L23_1011if_f_id, +L23_1010w_d_id, +L23_1005if_d_id, +S_2975_Chain4ByteMove_00000000_00000011_00000001_id, +L13_2955if_f_id, +L22_225if_f_id, +L22_226if_d_id, +S_2976_CopyByte4PlaneChain4_00000000_00000011_00000000_00000001_id, +L13_2956if_f_id, +L23_1014w_t_id, +L23_1015w_d_id, +L23_1012if_f_id, +L23_1016w_t_id, +L23_1017w_d_id, +L23_1013if_d_id, +S_2977_Chain4ByteMove_00000000_00000016_00000001_id, +L13_2957if_f_id, +L22_227if_f_id, +L22_228if_d_id, +S_2978_CopyBytePlnByPlnChain4_00000000_00000016_00000000_00000001_id, +L13_2958if_f_id, +L23_1020w_t_id, +L23_1022if_f_id, +L23_1021w_d_id, +L23_1018if_f_id, +L23_1023w_t_id, +L23_1025if_f_id, +L23_1024w_d_id, +L23_1019if_d_id, +S_2979_Chain4ByteMove_00000000_00000017_00000001_id, +L13_2959if_f_id, +L22_229if_f_id, +L22_230if_d_id, +S_2980_CopyByte4PlaneChain4_00000000_00000017_00000000_00000001_id, +L13_2960if_f_id, +L23_1028w_t_id, +L23_1029w_d_id, +L23_1026if_f_id, +L23_1030w_t_id, +L23_1031w_d_id, +L23_1027if_d_id, +S_2981_Chain4ByteMove_00000000_00000018_00000001_id, +L13_2961if_f_id, +L22_231if_f_id, +L22_232if_d_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_2950_CopyWordPlnByPlnChain4_00000003_0000000e_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2950_CopyWordPlnByPlnChain4_00000003_0000000e_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2950_CopyWordPlnByPlnChain4_00000003_0000000e_00000000_00000000 = (IHPE)S_2950_CopyWordPlnByPlnChain4_00000003_0000000e_00000000_00000000 ; +LOCAL IUH L13_2930if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2930if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2930if_f = (IHPE)L13_2930if_f ; +GLOBAL IUH S_2951_Chain4WordMove_00000003_0000000f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2951_Chain4WordMove_00000003_0000000f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2951_Chain4WordMove_00000003_0000000f_00000000 = (IHPE)S_2951_Chain4WordMove_00000003_0000000f_00000000 ; +LOCAL IUH L13_2931if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2931if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2931if_f = (IHPE)L13_2931if_f ; +LOCAL IUH L22_213if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_213if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_213if_f = (IHPE)L22_213if_f ; +LOCAL IUH L22_214if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_214if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_214if_d = (IHPE)L22_214if_d ; +GLOBAL IUH S_2952_CopyWord4PlaneChain4_00000003_0000000f_00000000_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2952_CopyWord4PlaneChain4_00000003_0000000f_00000000_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2952_CopyWord4PlaneChain4_00000003_0000000f_00000000_00000000 = (IHPE)S_2952_CopyWord4PlaneChain4_00000003_0000000f_00000000_00000000 ; +LOCAL IUH L13_2932if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2932if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2932if_f = (IHPE)L13_2932if_f ; +LOCAL IUH L23_972w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_972w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_972w_t = (IHPE)L23_972w_t ; +LOCAL IUH L23_973w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_973w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_973w_d = (IHPE)L23_973w_d ; +LOCAL IUH L23_970if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_970if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_970if_f = (IHPE)L23_970if_f ; +LOCAL IUH L23_974w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_974w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_974w_t = (IHPE)L23_974w_t ; +LOCAL IUH L23_975w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_975w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_975w_d = (IHPE)L23_975w_d ; +LOCAL IUH L23_971if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_971if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_971if_d = (IHPE)L23_971if_d ; +GLOBAL IUH S_2953_Chain4DwordWrite_00000003_00000008 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2953_Chain4DwordWrite_00000003_00000008_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2953_Chain4DwordWrite_00000003_00000008 = (IHPE)S_2953_Chain4DwordWrite_00000003_00000008 ; +LOCAL IUH L13_2933if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2933if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2933if_f = (IHPE)L13_2933if_f ; +GLOBAL IUH S_2954_Chain4DwordWrite_00000003_00000009 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2954_Chain4DwordWrite_00000003_00000009_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2954_Chain4DwordWrite_00000003_00000009 = (IHPE)S_2954_Chain4DwordWrite_00000003_00000009 ; +LOCAL IUH L13_2934if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2934if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2934if_f = (IHPE)L13_2934if_f ; +GLOBAL IUH S_2955_Chain4DwordWrite_00000003_0000000e IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2955_Chain4DwordWrite_00000003_0000000e_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2955_Chain4DwordWrite_00000003_0000000e = (IHPE)S_2955_Chain4DwordWrite_00000003_0000000e ; +LOCAL IUH L13_2935if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2935if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2935if_f = (IHPE)L13_2935if_f ; +GLOBAL IUH S_2956_Chain4DwordWrite_00000003_0000000f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2956_Chain4DwordWrite_00000003_0000000f_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2956_Chain4DwordWrite_00000003_0000000f = (IHPE)S_2956_Chain4DwordWrite_00000003_0000000f ; +LOCAL IUH L13_2936if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2936if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2936if_f = (IHPE)L13_2936if_f ; +GLOBAL IUH S_2957_Chain4DwordFill_00000003_00000008 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2957_Chain4DwordFill_00000003_00000008_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2957_Chain4DwordFill_00000003_00000008 = (IHPE)S_2957_Chain4DwordFill_00000003_00000008 ; +LOCAL IUH L13_2937if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2937if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2937if_f = (IHPE)L13_2937if_f ; +GLOBAL IUH S_2958_Chain4DwordFill_00000003_00000009 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2958_Chain4DwordFill_00000003_00000009_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2958_Chain4DwordFill_00000003_00000009 = (IHPE)S_2958_Chain4DwordFill_00000003_00000009 ; +LOCAL IUH L13_2938if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2938if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2938if_f = (IHPE)L13_2938if_f ; +GLOBAL IUH S_2959_Chain4DwordFill_00000003_0000000e IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2959_Chain4DwordFill_00000003_0000000e_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2959_Chain4DwordFill_00000003_0000000e = (IHPE)S_2959_Chain4DwordFill_00000003_0000000e ; +LOCAL IUH L13_2939if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2939if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2939if_f = (IHPE)L13_2939if_f ; +GLOBAL IUH S_2960_Chain4DwordFill_00000003_0000000f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2960_Chain4DwordFill_00000003_0000000f_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2960_Chain4DwordFill_00000003_0000000f = (IHPE)S_2960_Chain4DwordFill_00000003_0000000f ; +LOCAL IUH L13_2940if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2940if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2940if_f = (IHPE)L13_2940if_f ; +GLOBAL IUH S_2961_Chain4DwordMove_00000003_00000008_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2961_Chain4DwordMove_00000003_00000008_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2961_Chain4DwordMove_00000003_00000008_00000000 = (IHPE)S_2961_Chain4DwordMove_00000003_00000008_00000000 ; +LOCAL IUH L13_2941if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2941if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2941if_f = (IHPE)L13_2941if_f ; +GLOBAL IUH S_2962_Chain4DwordMove_00000003_00000009_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2962_Chain4DwordMove_00000003_00000009_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2962_Chain4DwordMove_00000003_00000009_00000000 = (IHPE)S_2962_Chain4DwordMove_00000003_00000009_00000000 ; +LOCAL IUH L13_2942if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2942if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2942if_f = (IHPE)L13_2942if_f ; +GLOBAL IUH S_2963_Chain4DwordMove_00000003_0000000e_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2963_Chain4DwordMove_00000003_0000000e_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2963_Chain4DwordMove_00000003_0000000e_00000000 = (IHPE)S_2963_Chain4DwordMove_00000003_0000000e_00000000 ; +LOCAL IUH L13_2943if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2943if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2943if_f = (IHPE)L13_2943if_f ; +GLOBAL IUH S_2964_Chain4DwordMove_00000003_0000000f_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2964_Chain4DwordMove_00000003_0000000f_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2964_Chain4DwordMove_00000003_0000000f_00000000 = (IHPE)S_2964_Chain4DwordMove_00000003_0000000f_00000000 ; +LOCAL IUH L13_2944if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2944if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2944if_f = (IHPE)L13_2944if_f ; +GLOBAL IUH S_2965_Chain4ByteMove_00000000_00000008_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2965_Chain4ByteMove_00000000_00000008_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2965_Chain4ByteMove_00000000_00000008_00000001 = (IHPE)S_2965_Chain4ByteMove_00000000_00000008_00000001 ; +LOCAL IUH L13_2945if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2945if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2945if_f = (IHPE)L13_2945if_f ; +LOCAL IUH L22_215if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_215if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_215if_f = (IHPE)L22_215if_f ; +LOCAL IUH L22_216if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_216if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_216if_d = (IHPE)L22_216if_d ; +GLOBAL IUH S_2966_CopyBytePlnByPlnChain4_00000000_00000008_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2966_CopyBytePlnByPlnChain4_00000000_00000008_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2966_CopyBytePlnByPlnChain4_00000000_00000008_00000000_00000001 = (IHPE)S_2966_CopyBytePlnByPlnChain4_00000000_00000008_00000000_00000001 ; +LOCAL IUH L13_2946if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2946if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2946if_f = (IHPE)L13_2946if_f ; +LOCAL IUH L23_978w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_978w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_978w_t = (IHPE)L23_978w_t ; +LOCAL IUH L23_980if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_980if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_980if_f = (IHPE)L23_980if_f ; +LOCAL IUH L23_979w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_979w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_979w_d = (IHPE)L23_979w_d ; +LOCAL IUH L23_976if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_976if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_976if_f = (IHPE)L23_976if_f ; +LOCAL IUH L23_981w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_981w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_981w_t = (IHPE)L23_981w_t ; +LOCAL IUH L23_983if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_983if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_983if_f = (IHPE)L23_983if_f ; +LOCAL IUH L23_982w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_982w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_982w_d = (IHPE)L23_982w_d ; +LOCAL IUH L23_977if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_977if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_977if_d = (IHPE)L23_977if_d ; +GLOBAL IUH S_2967_Chain4ByteMove_00000000_00000009_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2967_Chain4ByteMove_00000000_00000009_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2967_Chain4ByteMove_00000000_00000009_00000001 = (IHPE)S_2967_Chain4ByteMove_00000000_00000009_00000001 ; +LOCAL IUH L13_2947if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2947if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2947if_f = (IHPE)L13_2947if_f ; +LOCAL IUH L22_217if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_217if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_217if_f = (IHPE)L22_217if_f ; +LOCAL IUH L22_218if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_218if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_218if_d = (IHPE)L22_218if_d ; +GLOBAL IUH S_2968_CopyByte4PlaneChain4_00000000_00000009_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2968_CopyByte4PlaneChain4_00000000_00000009_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2968_CopyByte4PlaneChain4_00000000_00000009_00000000_00000001 = (IHPE)S_2968_CopyByte4PlaneChain4_00000000_00000009_00000000_00000001 ; +LOCAL IUH L13_2948if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2948if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2948if_f = (IHPE)L13_2948if_f ; +LOCAL IUH L23_986w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_986w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_986w_t = (IHPE)L23_986w_t ; +LOCAL IUH L23_987w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_987w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_987w_d = (IHPE)L23_987w_d ; +LOCAL IUH L23_984if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_984if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_984if_f = (IHPE)L23_984if_f ; +LOCAL IUH L23_988w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_988w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_988w_t = (IHPE)L23_988w_t ; +LOCAL IUH L23_989w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_989w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_989w_d = (IHPE)L23_989w_d ; +LOCAL IUH L23_985if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_985if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_985if_d = (IHPE)L23_985if_d ; +GLOBAL IUH S_2969_Chain4ByteMove_00000000_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2969_Chain4ByteMove_00000000_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2969_Chain4ByteMove_00000000_0000000e_00000001 = (IHPE)S_2969_Chain4ByteMove_00000000_0000000e_00000001 ; +LOCAL IUH L13_2949if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2949if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2949if_f = (IHPE)L13_2949if_f ; +LOCAL IUH L22_219if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_219if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_219if_f = (IHPE)L22_219if_f ; +LOCAL IUH L22_220if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_220if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_220if_d = (IHPE)L22_220if_d ; +GLOBAL IUH S_2970_CopyBytePlnByPlnChain4_00000000_0000000e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2970_CopyBytePlnByPlnChain4_00000000_0000000e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2970_CopyBytePlnByPlnChain4_00000000_0000000e_00000000_00000001 = (IHPE)S_2970_CopyBytePlnByPlnChain4_00000000_0000000e_00000000_00000001 ; +LOCAL IUH L13_2950if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2950if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2950if_f = (IHPE)L13_2950if_f ; +LOCAL IUH L23_992w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_992w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_992w_t = (IHPE)L23_992w_t ; +LOCAL IUH L23_994if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_994if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_994if_f = (IHPE)L23_994if_f ; +LOCAL IUH L23_993w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_993w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_993w_d = (IHPE)L23_993w_d ; +LOCAL IUH L23_990if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_990if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_990if_f = (IHPE)L23_990if_f ; +LOCAL IUH L23_995w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_995w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_995w_t = (IHPE)L23_995w_t ; +LOCAL IUH L23_997if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_997if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_997if_f = (IHPE)L23_997if_f ; +LOCAL IUH L23_996w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_996w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_996w_d = (IHPE)L23_996w_d ; +LOCAL IUH L23_991if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_991if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_991if_d = (IHPE)L23_991if_d ; +GLOBAL IUH S_2971_Chain4ByteMove_00000000_0000000f_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2971_Chain4ByteMove_00000000_0000000f_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2971_Chain4ByteMove_00000000_0000000f_00000001 = (IHPE)S_2971_Chain4ByteMove_00000000_0000000f_00000001 ; +LOCAL IUH L13_2951if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2951if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2951if_f = (IHPE)L13_2951if_f ; +LOCAL IUH L22_221if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_221if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_221if_f = (IHPE)L22_221if_f ; +LOCAL IUH L22_222if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_222if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_222if_d = (IHPE)L22_222if_d ; +GLOBAL IUH S_2972_CopyByte4PlaneChain4_00000000_0000000f_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2972_CopyByte4PlaneChain4_00000000_0000000f_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2972_CopyByte4PlaneChain4_00000000_0000000f_00000000_00000001 = (IHPE)S_2972_CopyByte4PlaneChain4_00000000_0000000f_00000000_00000001 ; +LOCAL IUH L13_2952if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2952if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2952if_f = (IHPE)L13_2952if_f ; +LOCAL IUH L23_1000w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1000w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1000w_t = (IHPE)L23_1000w_t ; +LOCAL IUH L23_1001w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1001w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1001w_d = (IHPE)L23_1001w_d ; +LOCAL IUH L23_998if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_998if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_998if_f = (IHPE)L23_998if_f ; +LOCAL IUH L23_1002w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1002w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1002w_t = (IHPE)L23_1002w_t ; +LOCAL IUH L23_1003w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1003w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1003w_d = (IHPE)L23_1003w_d ; +LOCAL IUH L23_999if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_999if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_999if_d = (IHPE)L23_999if_d ; +GLOBAL IUH S_2973_Chain4ByteMove_00000000_00000010_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2973_Chain4ByteMove_00000000_00000010_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2973_Chain4ByteMove_00000000_00000010_00000001 = (IHPE)S_2973_Chain4ByteMove_00000000_00000010_00000001 ; +LOCAL IUH L13_2953if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2953if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2953if_f = (IHPE)L13_2953if_f ; +LOCAL IUH L22_223if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_223if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_223if_f = (IHPE)L22_223if_f ; +LOCAL IUH L22_224if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_224if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_224if_d = (IHPE)L22_224if_d ; +GLOBAL IUH S_2974_CopyBytePlnByPlnChain4_00000000_00000010_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2974_CopyBytePlnByPlnChain4_00000000_00000010_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2974_CopyBytePlnByPlnChain4_00000000_00000010_00000000_00000001 = (IHPE)S_2974_CopyBytePlnByPlnChain4_00000000_00000010_00000000_00000001 ; +LOCAL IUH L13_2954if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2954if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2954if_f = (IHPE)L13_2954if_f ; +LOCAL IUH L23_1006w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1006w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1006w_t = (IHPE)L23_1006w_t ; +LOCAL IUH L23_1008if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1008if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1008if_f = (IHPE)L23_1008if_f ; +LOCAL IUH L23_1007w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1007w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1007w_d = (IHPE)L23_1007w_d ; +LOCAL IUH L23_1004if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1004if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1004if_f = (IHPE)L23_1004if_f ; +LOCAL IUH L23_1009w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1009w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1009w_t = (IHPE)L23_1009w_t ; +LOCAL IUH L23_1011if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1011if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1011if_f = (IHPE)L23_1011if_f ; +LOCAL IUH L23_1010w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1010w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1010w_d = (IHPE)L23_1010w_d ; +LOCAL IUH L23_1005if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1005if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1005if_d = (IHPE)L23_1005if_d ; +GLOBAL IUH S_2975_Chain4ByteMove_00000000_00000011_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2975_Chain4ByteMove_00000000_00000011_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2975_Chain4ByteMove_00000000_00000011_00000001 = (IHPE)S_2975_Chain4ByteMove_00000000_00000011_00000001 ; +LOCAL IUH L13_2955if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2955if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2955if_f = (IHPE)L13_2955if_f ; +LOCAL IUH L22_225if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_225if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_225if_f = (IHPE)L22_225if_f ; +LOCAL IUH L22_226if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_226if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_226if_d = (IHPE)L22_226if_d ; +GLOBAL IUH S_2976_CopyByte4PlaneChain4_00000000_00000011_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2976_CopyByte4PlaneChain4_00000000_00000011_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2976_CopyByte4PlaneChain4_00000000_00000011_00000000_00000001 = (IHPE)S_2976_CopyByte4PlaneChain4_00000000_00000011_00000000_00000001 ; +LOCAL IUH L13_2956if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2956if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2956if_f = (IHPE)L13_2956if_f ; +LOCAL IUH L23_1014w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1014w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1014w_t = (IHPE)L23_1014w_t ; +LOCAL IUH L23_1015w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1015w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1015w_d = (IHPE)L23_1015w_d ; +LOCAL IUH L23_1012if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1012if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1012if_f = (IHPE)L23_1012if_f ; +LOCAL IUH L23_1016w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1016w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1016w_t = (IHPE)L23_1016w_t ; +LOCAL IUH L23_1017w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1017w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1017w_d = (IHPE)L23_1017w_d ; +LOCAL IUH L23_1013if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1013if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1013if_d = (IHPE)L23_1013if_d ; +GLOBAL IUH S_2977_Chain4ByteMove_00000000_00000016_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2977_Chain4ByteMove_00000000_00000016_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2977_Chain4ByteMove_00000000_00000016_00000001 = (IHPE)S_2977_Chain4ByteMove_00000000_00000016_00000001 ; +LOCAL IUH L13_2957if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2957if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2957if_f = (IHPE)L13_2957if_f ; +LOCAL IUH L22_227if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_227if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_227if_f = (IHPE)L22_227if_f ; +LOCAL IUH L22_228if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_228if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_228if_d = (IHPE)L22_228if_d ; +GLOBAL IUH S_2978_CopyBytePlnByPlnChain4_00000000_00000016_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2978_CopyBytePlnByPlnChain4_00000000_00000016_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2978_CopyBytePlnByPlnChain4_00000000_00000016_00000000_00000001 = (IHPE)S_2978_CopyBytePlnByPlnChain4_00000000_00000016_00000000_00000001 ; +LOCAL IUH L13_2958if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2958if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2958if_f = (IHPE)L13_2958if_f ; +LOCAL IUH L23_1020w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1020w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1020w_t = (IHPE)L23_1020w_t ; +LOCAL IUH L23_1022if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1022if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1022if_f = (IHPE)L23_1022if_f ; +LOCAL IUH L23_1021w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1021w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1021w_d = (IHPE)L23_1021w_d ; +LOCAL IUH L23_1018if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1018if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1018if_f = (IHPE)L23_1018if_f ; +LOCAL IUH L23_1023w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1023w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1023w_t = (IHPE)L23_1023w_t ; +LOCAL IUH L23_1025if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1025if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1025if_f = (IHPE)L23_1025if_f ; +LOCAL IUH L23_1024w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1024w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1024w_d = (IHPE)L23_1024w_d ; +LOCAL IUH L23_1019if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1019if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1019if_d = (IHPE)L23_1019if_d ; +GLOBAL IUH S_2979_Chain4ByteMove_00000000_00000017_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2979_Chain4ByteMove_00000000_00000017_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2979_Chain4ByteMove_00000000_00000017_00000001 = (IHPE)S_2979_Chain4ByteMove_00000000_00000017_00000001 ; +LOCAL IUH L13_2959if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2959if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2959if_f = (IHPE)L13_2959if_f ; +LOCAL IUH L22_229if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_229if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_229if_f = (IHPE)L22_229if_f ; +LOCAL IUH L22_230if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_230if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_230if_d = (IHPE)L22_230if_d ; +GLOBAL IUH S_2980_CopyByte4PlaneChain4_00000000_00000017_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2980_CopyByte4PlaneChain4_00000000_00000017_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2980_CopyByte4PlaneChain4_00000000_00000017_00000000_00000001 = (IHPE)S_2980_CopyByte4PlaneChain4_00000000_00000017_00000000_00000001 ; +LOCAL IUH L13_2960if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2960if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2960if_f = (IHPE)L13_2960if_f ; +LOCAL IUH L23_1028w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1028w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1028w_t = (IHPE)L23_1028w_t ; +LOCAL IUH L23_1029w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1029w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1029w_d = (IHPE)L23_1029w_d ; +LOCAL IUH L23_1026if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1026if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1026if_f = (IHPE)L23_1026if_f ; +LOCAL IUH L23_1030w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1030w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1030w_t = (IHPE)L23_1030w_t ; +LOCAL IUH L23_1031w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1031w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1031w_d = (IHPE)L23_1031w_d ; +LOCAL IUH L23_1027if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1027if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1027if_d = (IHPE)L23_1027if_d ; +GLOBAL IUH S_2981_Chain4ByteMove_00000000_00000018_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2981_Chain4ByteMove_00000000_00000018_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2981_Chain4ByteMove_00000000_00000018_00000001 = (IHPE)S_2981_Chain4ByteMove_00000000_00000018_00000001 ; +LOCAL IUH L13_2961if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2961if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2961if_f = (IHPE)L13_2961if_f ; +LOCAL IUH L22_231if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_231if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_231if_f = (IHPE)L22_231if_f ; +LOCAL IUH L22_232if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_232if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_232if_d = (IHPE)L22_232if_d ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + case S_2950_CopyWordPlnByPlnChain4_00000003_0000000e_00000000_00000000_id : + S_2950_CopyWordPlnByPlnChain4_00000003_0000000e_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2950) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2930if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2930if_f_id : + L13_2930if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2934_CopyBytePlnByPlnChain4_00000003_0000000e_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2934_CopyBytePlnByPlnChain4_00000003_0000000e_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2951_Chain4WordMove_00000003_0000000f_00000000_id : + S_2951_Chain4WordMove_00000003_0000000f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2951) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2931if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2931if_f_id : + L13_2931if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_213if_f; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2952_CopyWord4PlaneChain4_00000003_0000000f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2952_CopyWord4PlaneChain4_00000003_0000000f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + { extern IUH L22_214if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_214if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_213if_f_id : + L22_213if_f: ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1332) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2952_CopyWord4PlaneChain4_00000003_0000000f_00000000_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2952_CopyWord4PlaneChain4_00000003_0000000f_00000000_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + case L22_214if_d_id : + L22_214if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2952_CopyWord4PlaneChain4_00000003_0000000f_00000000_00000000_id : + S_2952_CopyWord4PlaneChain4_00000003_0000000f_00000000_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2952) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2932if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2932if_f_id : + L13_2932if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_970if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_973w_d; + case L23_972w_t_id : + L23_972w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_972w_t; + case L23_973w_d_id : + L23_973w_d: ; + { extern IUH L23_971if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_971if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_970if_f_id : + L23_970if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_975w_d; + case L23_974w_t_id : + L23_974w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(1296) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)&(r23) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(1296) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)&(r23) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_974w_t; + case L23_975w_d_id : + L23_975w_d: ; + case L23_971if_d_id : + L23_971if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2953_Chain4DwordWrite_00000003_00000008_id : + S_2953_Chain4DwordWrite_00000003_00000008 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2953) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2933if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2933if_f_id : + L13_2933if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2937_Chain4WordWrite_00000003_00000008() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2937_Chain4WordWrite_00000003_00000008(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2937_Chain4WordWrite_00000003_00000008() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2937_Chain4WordWrite_00000003_00000008(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2954_Chain4DwordWrite_00000003_00000009_id : + S_2954_Chain4DwordWrite_00000003_00000009 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2954) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2934if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2934if_f_id : + L13_2934if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2938_Chain4WordWrite_00000003_00000009() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2938_Chain4WordWrite_00000003_00000009(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2938_Chain4WordWrite_00000003_00000009() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2938_Chain4WordWrite_00000003_00000009(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2955_Chain4DwordWrite_00000003_0000000e_id : + S_2955_Chain4DwordWrite_00000003_0000000e : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2955) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2935if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2935if_f_id : + L13_2935if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2939_Chain4WordWrite_00000003_0000000e() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2939_Chain4WordWrite_00000003_0000000e(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2939_Chain4WordWrite_00000003_0000000e() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2939_Chain4WordWrite_00000003_0000000e(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2956_Chain4DwordWrite_00000003_0000000f_id : + S_2956_Chain4DwordWrite_00000003_0000000f : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 12 > 0 ) LocalIUH = (IUH *)malloc ( 12 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2956) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2936if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2936if_f_id : + L13_2936if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2940_Chain4WordWrite_00000003_0000000f() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2940_Chain4WordWrite_00000003_0000000f(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; + *((IUH *)(r1+0)) = (IS32)(16676) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2940_Chain4WordWrite_00000003_0000000f() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2940_Chain4WordWrite_00000003_0000000f(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16677) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2957_Chain4DwordFill_00000003_00000008_id : + S_2957_Chain4DwordFill_00000003_00000008 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2957) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2937if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2937if_f_id : + L13_2937if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2941_Chain4WordFill_00000003_00000008() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2941_Chain4WordFill_00000003_00000008(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2941_Chain4WordFill_00000003_00000008() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2941_Chain4WordFill_00000003_00000008(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2958_Chain4DwordFill_00000003_00000009_id : + S_2958_Chain4DwordFill_00000003_00000009 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2958) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2938if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2938if_f_id : + L13_2938if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2942_Chain4WordFill_00000003_00000009() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2942_Chain4WordFill_00000003_00000009(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2942_Chain4WordFill_00000003_00000009() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2942_Chain4WordFill_00000003_00000009(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2959_Chain4DwordFill_00000003_0000000e_id : + S_2959_Chain4DwordFill_00000003_0000000e : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2959) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2939if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2939if_f_id : + L13_2939if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2943_Chain4WordFill_00000003_0000000e() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2943_Chain4WordFill_00000003_0000000e(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2943_Chain4WordFill_00000003_0000000e() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2943_Chain4WordFill_00000003_0000000e(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2960_Chain4DwordFill_00000003_0000000f_id : + S_2960_Chain4DwordFill_00000003_0000000f : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 16 > 0 ) LocalIUH = (IUH *)malloc ( 16 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2960) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2940if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2940if_f_id : + L13_2940if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IU32 *)(LocalIUH+1) + REGLONG) = *((IU32 *)&(r3) + REGLONG) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)(LocalIUH+1) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2944_Chain4WordFill_00000003_0000000f() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2944_Chain4WordFill_00000003_0000000f(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r22)) = (IS32)(16) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+1) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IU16 *)&(r3) + REGWORD ) = *((IU16 *)&(r20) + REGWORD) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2944_Chain4WordFill_00000003_0000000f() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2944_Chain4WordFill_00000003_0000000f(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2961_Chain4DwordMove_00000003_00000008_00000000_id : + S_2961_Chain4DwordMove_00000003_00000008_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2961) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2941if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2941if_f_id : + L13_2941if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2945_Chain4WordMove_00000003_00000008_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2945_Chain4WordMove_00000003_00000008_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2962_Chain4DwordMove_00000003_00000009_00000000_id : + S_2962_Chain4DwordMove_00000003_00000009_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2962) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2942if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2942if_f_id : + L13_2942if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2947_Chain4WordMove_00000003_00000009_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2947_Chain4WordMove_00000003_00000009_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2963_Chain4DwordMove_00000003_0000000e_00000000_id : + S_2963_Chain4DwordMove_00000003_0000000e_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2963) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2943if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2943if_f_id : + L13_2943if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2949_Chain4WordMove_00000003_0000000e_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2949_Chain4WordMove_00000003_0000000e_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2964_Chain4DwordMove_00000003_0000000f_00000000_id : + S_2964_Chain4DwordMove_00000003_0000000f_00000000 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2964) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2944if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2944if_f_id : + L13_2944if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2951_Chain4WordMove_00000003_0000000f_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2951_Chain4WordMove_00000003_0000000f_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2965_Chain4ByteMove_00000000_00000008_00000001_id : + S_2965_Chain4ByteMove_00000000_00000008_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2965) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2945if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2945if_f_id : + L13_2945if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_215if_f; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2966_CopyBytePlnByPlnChain4_00000000_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2966_CopyBytePlnByPlnChain4_00000000_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + { extern IUH L22_216if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_216if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_215if_f_id : + L22_215if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2966_CopyBytePlnByPlnChain4_00000000_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2966_CopyBytePlnByPlnChain4_00000000_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + case L22_216if_d_id : + L22_216if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2966_CopyBytePlnByPlnChain4_00000000_00000008_00000000_00000001_id : + S_2966_CopyBytePlnByPlnChain4_00000000_00000008_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2966) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2946if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2946if_f_id : + L13_2946if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_976if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_979w_d; + case L23_978w_t_id : + L23_978w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_980if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_980if_f_id : + L23_980if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_978w_t; + case L23_979w_d_id : + L23_979w_d: ; + { extern IUH L23_977if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_977if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_976if_f_id : + L23_976if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_982w_d; + case L23_981w_t_id : + L23_981w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_983if_f; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_983if_f_id : + L23_983if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_981w_t; + case L23_982w_d_id : + L23_982w_d: ; + case L23_977if_d_id : + L23_977if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2967_Chain4ByteMove_00000000_00000009_00000001_id : + S_2967_Chain4ByteMove_00000000_00000009_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2967) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2947if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2947if_f_id : + L13_2947if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_217if_f; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2968_CopyByte4PlaneChain4_00000000_00000009_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2968_CopyByte4PlaneChain4_00000000_00000009_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + { extern IUH L22_218if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_218if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_217if_f_id : + L22_217if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2968_CopyByte4PlaneChain4_00000000_00000009_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2968_CopyByte4PlaneChain4_00000000_00000009_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + case L22_218if_d_id : + L22_218if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2968_CopyByte4PlaneChain4_00000000_00000009_00000000_00000001_id : + S_2968_CopyByte4PlaneChain4_00000000_00000009_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2968) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2948if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2948if_f_id : + L13_2948if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_984if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_987w_d; + case L23_986w_t_id : + L23_986w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_986w_t; + case L23_987w_d_id : + L23_987w_d: ; + { extern IUH L23_985if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_985if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_984if_f_id : + L23_984if_f: ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_989w_d; + case L23_988w_t_id : + L23_988w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_988w_t; + case L23_989w_d_id : + L23_989w_d: ; + case L23_985if_d_id : + L23_985if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2969_Chain4ByteMove_00000000_0000000e_00000001_id : + S_2969_Chain4ByteMove_00000000_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2969) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2949if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2949if_f_id : + L13_2949if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_219if_f; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2970_CopyBytePlnByPlnChain4_00000000_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2970_CopyBytePlnByPlnChain4_00000000_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + { extern IUH L22_220if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_220if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_219if_f_id : + L22_219if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2970_CopyBytePlnByPlnChain4_00000000_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2970_CopyBytePlnByPlnChain4_00000000_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + case L22_220if_d_id : + L22_220if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2970_CopyBytePlnByPlnChain4_00000000_0000000e_00000000_00000001_id : + S_2970_CopyBytePlnByPlnChain4_00000000_0000000e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2970) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2950if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2950if_f_id : + L13_2950if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_990if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_993w_d; + case L23_992w_t_id : + L23_992w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_994if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_994if_f_id : + L23_994if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_992w_t; + case L23_993w_d_id : + L23_993w_d: ; + { extern IUH L23_991if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_991if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_990if_f_id : + L23_990if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_996w_d; + case L23_995w_t_id : + L23_995w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_997if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r24)) = (IS32)(1308) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)&(r23) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r24))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_997if_f_id : + L23_997if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_995w_t; + case L23_996w_d_id : + L23_996w_d: ; + case L23_991if_d_id : + L23_991if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2971_Chain4ByteMove_00000000_0000000f_00000001_id : + S_2971_Chain4ByteMove_00000000_0000000f_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2971) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2951if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2951if_f_id : + L13_2951if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_221if_f; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2972_CopyByte4PlaneChain4_00000000_0000000f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2972_CopyByte4PlaneChain4_00000000_0000000f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + { extern IUH L22_222if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_222if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_221if_f_id : + L22_221if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2972_CopyByte4PlaneChain4_00000000_0000000f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2972_CopyByte4PlaneChain4_00000000_0000000f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + case L22_222if_d_id : + L22_222if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2972_CopyByte4PlaneChain4_00000000_0000000f_00000000_00000001_id : + S_2972_CopyByte4PlaneChain4_00000000_0000000f_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2972) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2952if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2952if_f_id : + L13_2952if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_998if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_1001w_d; + case L23_1000w_t_id : + L23_1000w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1000w_t; + case L23_1001w_d_id : + L23_1001w_d: ; + { extern IUH L23_999if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_999if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_998if_f_id : + L23_998if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_1003w_d; + case L23_1002w_t_id : + L23_1002w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r24)) = (IS32)(1308) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)&(r23) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r24))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1002w_t; + case L23_1003w_d_id : + L23_1003w_d: ; + case L23_999if_d_id : + L23_999if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2973_Chain4ByteMove_00000000_00000010_00000001_id : + S_2973_Chain4ByteMove_00000000_00000010_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2973) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2953if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2953if_f_id : + L13_2953if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_223if_f; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2974_CopyBytePlnByPlnChain4_00000000_00000010_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2974_CopyBytePlnByPlnChain4_00000000_00000010_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + { extern IUH L22_224if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_224if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_223if_f_id : + L22_223if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2974_CopyBytePlnByPlnChain4_00000000_00000010_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2974_CopyBytePlnByPlnChain4_00000000_00000010_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + case L22_224if_d_id : + L22_224if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2974_CopyBytePlnByPlnChain4_00000000_00000010_00000000_00000001_id : + S_2974_CopyBytePlnByPlnChain4_00000000_00000010_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2974) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2954if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2954if_f_id : + L13_2954if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_1004if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1007w_d; + case L23_1006w_t_id : + L23_1006w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_1008if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_1008if_f_id : + L23_1008if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1006w_t; + case L23_1007w_d_id : + L23_1007w_d: ; + { extern IUH L23_1005if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_1005if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_1004if_f_id : + L23_1004if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1010w_d; + case L23_1009w_t_id : + L23_1009w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_1011if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_1011if_f_id : + L23_1011if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1009w_t; + case L23_1010w_d_id : + L23_1010w_d: ; + case L23_1005if_d_id : + L23_1005if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2975_Chain4ByteMove_00000000_00000011_00000001_id : + S_2975_Chain4ByteMove_00000000_00000011_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2975) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2955if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2955if_f_id : + L13_2955if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_225if_f; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2976_CopyByte4PlaneChain4_00000000_00000011_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2976_CopyByte4PlaneChain4_00000000_00000011_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + { extern IUH L22_226if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_226if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_225if_f_id : + L22_225if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2976_CopyByte4PlaneChain4_00000000_00000011_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2976_CopyByte4PlaneChain4_00000000_00000011_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + case L22_226if_d_id : + L22_226if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2976_CopyByte4PlaneChain4_00000000_00000011_00000000_00000001_id : + S_2976_CopyByte4PlaneChain4_00000000_00000011_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2976) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2956if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2956if_f_id : + L13_2956if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_1012if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_1015w_d; + case L23_1014w_t_id : + L23_1014w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1014w_t; + case L23_1015w_d_id : + L23_1015w_d: ; + { extern IUH L23_1013if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_1013if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_1012if_f_id : + L23_1012if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_1017w_d; + case L23_1016w_t_id : + L23_1016w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1016w_t; + case L23_1017w_d_id : + L23_1017w_d: ; + case L23_1013if_d_id : + L23_1013if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2977_Chain4ByteMove_00000000_00000016_00000001_id : + S_2977_Chain4ByteMove_00000000_00000016_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2977) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2957if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2957if_f_id : + L13_2957if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_227if_f; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2978_CopyBytePlnByPlnChain4_00000000_00000016_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2978_CopyBytePlnByPlnChain4_00000000_00000016_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + { extern IUH L22_228if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_228if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_227if_f_id : + L22_227if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2978_CopyBytePlnByPlnChain4_00000000_00000016_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2978_CopyBytePlnByPlnChain4_00000000_00000016_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + case L22_228if_d_id : + L22_228if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2978_CopyBytePlnByPlnChain4_00000000_00000016_00000000_00000001_id : + S_2978_CopyBytePlnByPlnChain4_00000000_00000016_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2978) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2958if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2958if_f_id : + L13_2958if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_1018if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_1021w_d; + case L23_1020w_t_id : + L23_1020w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_1022if_f; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_1022if_f_id : + L23_1022if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1020w_t; + case L23_1021w_d_id : + L23_1021w_d: ; + { extern IUH L23_1019if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_1019if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_1018if_f_id : + L23_1018if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1024w_d; + case L23_1023w_t_id : + L23_1023w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_1025if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) ^ *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_1025if_f_id : + L23_1025if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1023w_t; + case L23_1024w_d_id : + L23_1024w_d: ; + case L23_1019if_d_id : + L23_1019if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2979_Chain4ByteMove_00000000_00000017_00000001_id : + S_2979_Chain4ByteMove_00000000_00000017_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2979) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2959if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2959if_f_id : + L13_2959if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_229if_f; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2980_CopyByte4PlaneChain4_00000000_00000017_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2980_CopyByte4PlaneChain4_00000000_00000017_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + { extern IUH L22_230if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_230if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_229if_f_id : + L22_229if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2980_CopyByte4PlaneChain4_00000000_00000017_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2980_CopyByte4PlaneChain4_00000000_00000017_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + case L22_230if_d_id : + L22_230if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2980_CopyByte4PlaneChain4_00000000_00000017_00000000_00000001_id : + S_2980_CopyByte4PlaneChain4_00000000_00000017_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2980) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2960if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2960if_f_id : + L13_2960if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_1026if_f; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1029w_d; + case L23_1028w_t_id : + L23_1028w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1028w_t; + case L23_1029w_d_id : + L23_1029w_d: ; + { extern IUH L23_1027if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_1027if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_1026if_f_id : + L23_1026if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_1031w_d; + case L23_1030w_t_id : + L23_1030w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) ^ *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1030w_t; + case L23_1031w_d_id : + L23_1031w_d: ; + case L23_1027if_d_id : + L23_1027if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2981_Chain4ByteMove_00000000_00000018_00000001_id : + S_2981_Chain4ByteMove_00000000_00000018_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2981) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2961if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2961if_f_id : + L13_2961if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_231if_f; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2982_CopyBytePlnByPlnChain4_00000000_00000018_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2982_CopyBytePlnByPlnChain4_00000000_00000018_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + { extern IUH L22_232if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_232if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_231if_f_id : + L22_231if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2982_CopyBytePlnByPlnChain4_00000000_00000018_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2982_CopyBytePlnByPlnChain4_00000000_00000018_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + case L22_232if_d_id : + L22_232if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid028.c b/private/mvdm/softpc.new/base/cvidc/sevid028.c new file mode 100644 index 000000000..2e090c8bb --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid028.c @@ -0,0 +1,4360 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_2982_CopyBytePlnByPlnChain4_00000000_00000018_00000000_00000001_id, +L13_2962if_f_id, +L23_1034w_t_id, +L23_1036if_f_id, +L23_1035w_d_id, +L23_1032if_f_id, +L23_1037w_t_id, +L23_1039if_f_id, +L23_1038w_d_id, +L23_1033if_d_id, +S_2983_Chain4ByteMove_00000000_00000019_00000001_id, +L13_2963if_f_id, +L22_233if_f_id, +L22_234if_d_id, +S_2984_CopyByte4PlaneChain4_00000000_00000019_00000000_00000001_id, +L13_2964if_f_id, +L23_1042w_t_id, +L23_1043w_d_id, +L23_1040if_f_id, +L23_1044w_t_id, +L23_1045w_d_id, +L23_1041if_d_id, +S_2985_Chain4ByteMove_00000000_0000001e_00000001_id, +L13_2965if_f_id, +L22_235if_f_id, +L22_236if_d_id, +S_2986_CopyBytePlnByPlnChain4_00000000_0000001e_00000000_00000001_id, +L13_2966if_f_id, +L23_1048w_t_id, +L23_1050if_f_id, +L23_1049w_d_id, +L23_1046if_f_id, +L23_1051w_t_id, +L23_1053if_f_id, +L23_1052w_d_id, +L23_1047if_d_id, +S_2987_Chain4ByteMove_00000000_0000001f_00000001_id, +L13_2967if_f_id, +L22_237if_f_id, +L22_238if_d_id, +S_2988_CopyByte4PlaneChain4_00000000_0000001f_00000000_00000001_id, +L13_2968if_f_id, +L23_1056w_t_id, +L23_1057w_d_id, +L23_1054if_f_id, +L23_1058w_t_id, +L23_1059w_d_id, +L23_1055if_d_id, +S_2989_Chain4WordMove_00000000_00000008_00000001_id, +L13_2969if_f_id, +L22_239if_f_id, +L22_240if_d_id, +S_2990_CopyWordPlnByPlnChain4_00000000_00000008_00000000_00000001_id, +L13_2970if_f_id, +S_2991_Chain4WordMove_00000000_00000009_00000001_id, +L13_2971if_f_id, +L22_241if_f_id, +L22_242if_d_id, +S_2992_CopyWord4PlaneChain4_00000000_00000009_00000000_00000001_id, +L13_2972if_f_id, +L23_1062w_t_id, +L23_1063w_d_id, +L23_1060if_f_id, +L23_1064w_t_id, +L23_1065w_d_id, +L23_1061if_d_id, +S_2993_Chain4WordMove_00000000_0000000e_00000001_id, +L13_2973if_f_id, +L22_243if_f_id, +L22_244if_d_id, +S_2994_CopyWordPlnByPlnChain4_00000000_0000000e_00000000_00000001_id, +L13_2974if_f_id, +S_2995_Chain4WordMove_00000000_0000000f_00000001_id, +L13_2975if_f_id, +L22_245if_f_id, +L22_246if_d_id, +S_2996_CopyWord4PlaneChain4_00000000_0000000f_00000000_00000001_id, +L13_2976if_f_id, +L23_1068w_t_id, +L23_1069w_d_id, +L23_1066if_f_id, +L23_1070w_t_id, +L23_1071w_d_id, +L23_1067if_d_id, +S_2997_Chain4WordMove_00000000_00000010_00000001_id, +L13_2977if_f_id, +L22_247if_f_id, +L22_248if_d_id, +S_2998_CopyWordPlnByPlnChain4_00000000_00000010_00000000_00000001_id, +L13_2978if_f_id, +S_2999_Chain4WordMove_00000000_00000011_00000001_id, +L13_2979if_f_id, +L22_249if_f_id, +L22_250if_d_id, +S_3000_CopyWord4PlaneChain4_00000000_00000011_00000000_00000001_id, +L13_2980if_f_id, +L23_1074w_t_id, +L23_1075w_d_id, +L23_1072if_f_id, +L23_1076w_t_id, +L23_1077w_d_id, +L23_1073if_d_id, +S_3001_Chain4WordMove_00000000_00000016_00000001_id, +L13_2981if_f_id, +L22_251if_f_id, +L22_252if_d_id, +S_3002_CopyWordPlnByPlnChain4_00000000_00000016_00000000_00000001_id, +L13_2982if_f_id, +S_3003_Chain4WordMove_00000000_00000017_00000001_id, +L13_2983if_f_id, +L22_253if_f_id, +L22_254if_d_id, +S_3004_CopyWord4PlaneChain4_00000000_00000017_00000000_00000001_id, +L13_2984if_f_id, +L23_1080w_t_id, +L23_1081w_d_id, +L23_1078if_f_id, +L23_1082w_t_id, +L23_1083w_d_id, +L23_1079if_d_id, +S_3005_Chain4WordMove_00000000_00000018_00000001_id, +L13_2985if_f_id, +L22_255if_f_id, +L22_256if_d_id, +S_3006_CopyWordPlnByPlnChain4_00000000_00000018_00000000_00000001_id, +L13_2986if_f_id, +S_3007_Chain4WordMove_00000000_00000019_00000001_id, +L13_2987if_f_id, +L22_257if_f_id, +L22_258if_d_id, +S_3008_CopyWord4PlaneChain4_00000000_00000019_00000000_00000001_id, +L13_2988if_f_id, +L23_1086w_t_id, +L23_1087w_d_id, +L23_1084if_f_id, +L23_1088w_t_id, +L23_1089w_d_id, +L23_1085if_d_id, +S_3009_Chain4WordMove_00000000_0000001e_00000001_id, +L13_2989if_f_id, +L22_259if_f_id, +L22_260if_d_id, +S_3010_CopyWordPlnByPlnChain4_00000000_0000001e_00000000_00000001_id, +L13_2990if_f_id, +S_3011_Chain4WordMove_00000000_0000001f_00000001_id, +L13_2991if_f_id, +L22_261if_f_id, +L22_262if_d_id, +S_3012_CopyWord4PlaneChain4_00000000_0000001f_00000000_00000001_id, +L13_2992if_f_id, +L23_1092w_t_id, +L23_1093w_d_id, +L23_1090if_f_id, +L23_1094w_t_id, +L23_1095w_d_id, +L23_1091if_d_id, +S_3013_Chain4DwordMove_00000000_00000008_00000001_id, +L13_2993if_f_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_2982_CopyBytePlnByPlnChain4_00000000_00000018_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2982_CopyBytePlnByPlnChain4_00000000_00000018_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2982_CopyBytePlnByPlnChain4_00000000_00000018_00000000_00000001 = (IHPE)S_2982_CopyBytePlnByPlnChain4_00000000_00000018_00000000_00000001 ; +LOCAL IUH L13_2962if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2962if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2962if_f = (IHPE)L13_2962if_f ; +LOCAL IUH L23_1034w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1034w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1034w_t = (IHPE)L23_1034w_t ; +LOCAL IUH L23_1036if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1036if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1036if_f = (IHPE)L23_1036if_f ; +LOCAL IUH L23_1035w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1035w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1035w_d = (IHPE)L23_1035w_d ; +LOCAL IUH L23_1032if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1032if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1032if_f = (IHPE)L23_1032if_f ; +LOCAL IUH L23_1037w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1037w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1037w_t = (IHPE)L23_1037w_t ; +LOCAL IUH L23_1039if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1039if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1039if_f = (IHPE)L23_1039if_f ; +LOCAL IUH L23_1038w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1038w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1038w_d = (IHPE)L23_1038w_d ; +LOCAL IUH L23_1033if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1033if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1033if_d = (IHPE)L23_1033if_d ; +GLOBAL IUH S_2983_Chain4ByteMove_00000000_00000019_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2983_Chain4ByteMove_00000000_00000019_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2983_Chain4ByteMove_00000000_00000019_00000001 = (IHPE)S_2983_Chain4ByteMove_00000000_00000019_00000001 ; +LOCAL IUH L13_2963if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2963if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2963if_f = (IHPE)L13_2963if_f ; +LOCAL IUH L22_233if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_233if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_233if_f = (IHPE)L22_233if_f ; +LOCAL IUH L22_234if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_234if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_234if_d = (IHPE)L22_234if_d ; +GLOBAL IUH S_2984_CopyByte4PlaneChain4_00000000_00000019_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2984_CopyByte4PlaneChain4_00000000_00000019_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2984_CopyByte4PlaneChain4_00000000_00000019_00000000_00000001 = (IHPE)S_2984_CopyByte4PlaneChain4_00000000_00000019_00000000_00000001 ; +LOCAL IUH L13_2964if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2964if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2964if_f = (IHPE)L13_2964if_f ; +LOCAL IUH L23_1042w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1042w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1042w_t = (IHPE)L23_1042w_t ; +LOCAL IUH L23_1043w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1043w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1043w_d = (IHPE)L23_1043w_d ; +LOCAL IUH L23_1040if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1040if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1040if_f = (IHPE)L23_1040if_f ; +LOCAL IUH L23_1044w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1044w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1044w_t = (IHPE)L23_1044w_t ; +LOCAL IUH L23_1045w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1045w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1045w_d = (IHPE)L23_1045w_d ; +LOCAL IUH L23_1041if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1041if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1041if_d = (IHPE)L23_1041if_d ; +GLOBAL IUH S_2985_Chain4ByteMove_00000000_0000001e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2985_Chain4ByteMove_00000000_0000001e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2985_Chain4ByteMove_00000000_0000001e_00000001 = (IHPE)S_2985_Chain4ByteMove_00000000_0000001e_00000001 ; +LOCAL IUH L13_2965if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2965if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2965if_f = (IHPE)L13_2965if_f ; +LOCAL IUH L22_235if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_235if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_235if_f = (IHPE)L22_235if_f ; +LOCAL IUH L22_236if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_236if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_236if_d = (IHPE)L22_236if_d ; +GLOBAL IUH S_2986_CopyBytePlnByPlnChain4_00000000_0000001e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2986_CopyBytePlnByPlnChain4_00000000_0000001e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2986_CopyBytePlnByPlnChain4_00000000_0000001e_00000000_00000001 = (IHPE)S_2986_CopyBytePlnByPlnChain4_00000000_0000001e_00000000_00000001 ; +LOCAL IUH L13_2966if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2966if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2966if_f = (IHPE)L13_2966if_f ; +LOCAL IUH L23_1048w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1048w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1048w_t = (IHPE)L23_1048w_t ; +LOCAL IUH L23_1050if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1050if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1050if_f = (IHPE)L23_1050if_f ; +LOCAL IUH L23_1049w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1049w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1049w_d = (IHPE)L23_1049w_d ; +LOCAL IUH L23_1046if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1046if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1046if_f = (IHPE)L23_1046if_f ; +LOCAL IUH L23_1051w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1051w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1051w_t = (IHPE)L23_1051w_t ; +LOCAL IUH L23_1053if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1053if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1053if_f = (IHPE)L23_1053if_f ; +LOCAL IUH L23_1052w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1052w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1052w_d = (IHPE)L23_1052w_d ; +LOCAL IUH L23_1047if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1047if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1047if_d = (IHPE)L23_1047if_d ; +GLOBAL IUH S_2987_Chain4ByteMove_00000000_0000001f_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2987_Chain4ByteMove_00000000_0000001f_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2987_Chain4ByteMove_00000000_0000001f_00000001 = (IHPE)S_2987_Chain4ByteMove_00000000_0000001f_00000001 ; +LOCAL IUH L13_2967if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2967if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2967if_f = (IHPE)L13_2967if_f ; +LOCAL IUH L22_237if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_237if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_237if_f = (IHPE)L22_237if_f ; +LOCAL IUH L22_238if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_238if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_238if_d = (IHPE)L22_238if_d ; +GLOBAL IUH S_2988_CopyByte4PlaneChain4_00000000_0000001f_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2988_CopyByte4PlaneChain4_00000000_0000001f_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2988_CopyByte4PlaneChain4_00000000_0000001f_00000000_00000001 = (IHPE)S_2988_CopyByte4PlaneChain4_00000000_0000001f_00000000_00000001 ; +LOCAL IUH L13_2968if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2968if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2968if_f = (IHPE)L13_2968if_f ; +LOCAL IUH L23_1056w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1056w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1056w_t = (IHPE)L23_1056w_t ; +LOCAL IUH L23_1057w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1057w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1057w_d = (IHPE)L23_1057w_d ; +LOCAL IUH L23_1054if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1054if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1054if_f = (IHPE)L23_1054if_f ; +LOCAL IUH L23_1058w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1058w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1058w_t = (IHPE)L23_1058w_t ; +LOCAL IUH L23_1059w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1059w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1059w_d = (IHPE)L23_1059w_d ; +LOCAL IUH L23_1055if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1055if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1055if_d = (IHPE)L23_1055if_d ; +GLOBAL IUH S_2989_Chain4WordMove_00000000_00000008_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2989_Chain4WordMove_00000000_00000008_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2989_Chain4WordMove_00000000_00000008_00000001 = (IHPE)S_2989_Chain4WordMove_00000000_00000008_00000001 ; +LOCAL IUH L13_2969if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2969if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2969if_f = (IHPE)L13_2969if_f ; +LOCAL IUH L22_239if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_239if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_239if_f = (IHPE)L22_239if_f ; +LOCAL IUH L22_240if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_240if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_240if_d = (IHPE)L22_240if_d ; +GLOBAL IUH S_2990_CopyWordPlnByPlnChain4_00000000_00000008_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2990_CopyWordPlnByPlnChain4_00000000_00000008_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2990_CopyWordPlnByPlnChain4_00000000_00000008_00000000_00000001 = (IHPE)S_2990_CopyWordPlnByPlnChain4_00000000_00000008_00000000_00000001 ; +LOCAL IUH L13_2970if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2970if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2970if_f = (IHPE)L13_2970if_f ; +GLOBAL IUH S_2991_Chain4WordMove_00000000_00000009_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2991_Chain4WordMove_00000000_00000009_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2991_Chain4WordMove_00000000_00000009_00000001 = (IHPE)S_2991_Chain4WordMove_00000000_00000009_00000001 ; +LOCAL IUH L13_2971if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2971if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2971if_f = (IHPE)L13_2971if_f ; +LOCAL IUH L22_241if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_241if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_241if_f = (IHPE)L22_241if_f ; +LOCAL IUH L22_242if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_242if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_242if_d = (IHPE)L22_242if_d ; +GLOBAL IUH S_2992_CopyWord4PlaneChain4_00000000_00000009_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2992_CopyWord4PlaneChain4_00000000_00000009_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2992_CopyWord4PlaneChain4_00000000_00000009_00000000_00000001 = (IHPE)S_2992_CopyWord4PlaneChain4_00000000_00000009_00000000_00000001 ; +LOCAL IUH L13_2972if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2972if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2972if_f = (IHPE)L13_2972if_f ; +LOCAL IUH L23_1062w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1062w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1062w_t = (IHPE)L23_1062w_t ; +LOCAL IUH L23_1063w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1063w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1063w_d = (IHPE)L23_1063w_d ; +LOCAL IUH L23_1060if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1060if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1060if_f = (IHPE)L23_1060if_f ; +LOCAL IUH L23_1064w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1064w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1064w_t = (IHPE)L23_1064w_t ; +LOCAL IUH L23_1065w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1065w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1065w_d = (IHPE)L23_1065w_d ; +LOCAL IUH L23_1061if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1061if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1061if_d = (IHPE)L23_1061if_d ; +GLOBAL IUH S_2993_Chain4WordMove_00000000_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2993_Chain4WordMove_00000000_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2993_Chain4WordMove_00000000_0000000e_00000001 = (IHPE)S_2993_Chain4WordMove_00000000_0000000e_00000001 ; +LOCAL IUH L13_2973if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2973if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2973if_f = (IHPE)L13_2973if_f ; +LOCAL IUH L22_243if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_243if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_243if_f = (IHPE)L22_243if_f ; +LOCAL IUH L22_244if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_244if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_244if_d = (IHPE)L22_244if_d ; +GLOBAL IUH S_2994_CopyWordPlnByPlnChain4_00000000_0000000e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2994_CopyWordPlnByPlnChain4_00000000_0000000e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2994_CopyWordPlnByPlnChain4_00000000_0000000e_00000000_00000001 = (IHPE)S_2994_CopyWordPlnByPlnChain4_00000000_0000000e_00000000_00000001 ; +LOCAL IUH L13_2974if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2974if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2974if_f = (IHPE)L13_2974if_f ; +GLOBAL IUH S_2995_Chain4WordMove_00000000_0000000f_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2995_Chain4WordMove_00000000_0000000f_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2995_Chain4WordMove_00000000_0000000f_00000001 = (IHPE)S_2995_Chain4WordMove_00000000_0000000f_00000001 ; +LOCAL IUH L13_2975if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2975if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2975if_f = (IHPE)L13_2975if_f ; +LOCAL IUH L22_245if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_245if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_245if_f = (IHPE)L22_245if_f ; +LOCAL IUH L22_246if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_246if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_246if_d = (IHPE)L22_246if_d ; +GLOBAL IUH S_2996_CopyWord4PlaneChain4_00000000_0000000f_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2996_CopyWord4PlaneChain4_00000000_0000000f_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2996_CopyWord4PlaneChain4_00000000_0000000f_00000000_00000001 = (IHPE)S_2996_CopyWord4PlaneChain4_00000000_0000000f_00000000_00000001 ; +LOCAL IUH L13_2976if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2976if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2976if_f = (IHPE)L13_2976if_f ; +LOCAL IUH L23_1068w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1068w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1068w_t = (IHPE)L23_1068w_t ; +LOCAL IUH L23_1069w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1069w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1069w_d = (IHPE)L23_1069w_d ; +LOCAL IUH L23_1066if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1066if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1066if_f = (IHPE)L23_1066if_f ; +LOCAL IUH L23_1070w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1070w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1070w_t = (IHPE)L23_1070w_t ; +LOCAL IUH L23_1071w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1071w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1071w_d = (IHPE)L23_1071w_d ; +LOCAL IUH L23_1067if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1067if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1067if_d = (IHPE)L23_1067if_d ; +GLOBAL IUH S_2997_Chain4WordMove_00000000_00000010_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2997_Chain4WordMove_00000000_00000010_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2997_Chain4WordMove_00000000_00000010_00000001 = (IHPE)S_2997_Chain4WordMove_00000000_00000010_00000001 ; +LOCAL IUH L13_2977if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2977if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2977if_f = (IHPE)L13_2977if_f ; +LOCAL IUH L22_247if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_247if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_247if_f = (IHPE)L22_247if_f ; +LOCAL IUH L22_248if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_248if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_248if_d = (IHPE)L22_248if_d ; +GLOBAL IUH S_2998_CopyWordPlnByPlnChain4_00000000_00000010_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2998_CopyWordPlnByPlnChain4_00000000_00000010_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2998_CopyWordPlnByPlnChain4_00000000_00000010_00000000_00000001 = (IHPE)S_2998_CopyWordPlnByPlnChain4_00000000_00000010_00000000_00000001 ; +LOCAL IUH L13_2978if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2978if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2978if_f = (IHPE)L13_2978if_f ; +GLOBAL IUH S_2999_Chain4WordMove_00000000_00000011_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_2999_Chain4WordMove_00000000_00000011_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_2999_Chain4WordMove_00000000_00000011_00000001 = (IHPE)S_2999_Chain4WordMove_00000000_00000011_00000001 ; +LOCAL IUH L13_2979if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2979if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2979if_f = (IHPE)L13_2979if_f ; +LOCAL IUH L22_249if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_249if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_249if_f = (IHPE)L22_249if_f ; +LOCAL IUH L22_250if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_250if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_250if_d = (IHPE)L22_250if_d ; +GLOBAL IUH S_3000_CopyWord4PlaneChain4_00000000_00000011_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3000_CopyWord4PlaneChain4_00000000_00000011_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3000_CopyWord4PlaneChain4_00000000_00000011_00000000_00000001 = (IHPE)S_3000_CopyWord4PlaneChain4_00000000_00000011_00000000_00000001 ; +LOCAL IUH L13_2980if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2980if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2980if_f = (IHPE)L13_2980if_f ; +LOCAL IUH L23_1074w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1074w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1074w_t = (IHPE)L23_1074w_t ; +LOCAL IUH L23_1075w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1075w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1075w_d = (IHPE)L23_1075w_d ; +LOCAL IUH L23_1072if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1072if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1072if_f = (IHPE)L23_1072if_f ; +LOCAL IUH L23_1076w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1076w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1076w_t = (IHPE)L23_1076w_t ; +LOCAL IUH L23_1077w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1077w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1077w_d = (IHPE)L23_1077w_d ; +LOCAL IUH L23_1073if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1073if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1073if_d = (IHPE)L23_1073if_d ; +GLOBAL IUH S_3001_Chain4WordMove_00000000_00000016_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3001_Chain4WordMove_00000000_00000016_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3001_Chain4WordMove_00000000_00000016_00000001 = (IHPE)S_3001_Chain4WordMove_00000000_00000016_00000001 ; +LOCAL IUH L13_2981if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2981if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2981if_f = (IHPE)L13_2981if_f ; +LOCAL IUH L22_251if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_251if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_251if_f = (IHPE)L22_251if_f ; +LOCAL IUH L22_252if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_252if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_252if_d = (IHPE)L22_252if_d ; +GLOBAL IUH S_3002_CopyWordPlnByPlnChain4_00000000_00000016_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3002_CopyWordPlnByPlnChain4_00000000_00000016_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3002_CopyWordPlnByPlnChain4_00000000_00000016_00000000_00000001 = (IHPE)S_3002_CopyWordPlnByPlnChain4_00000000_00000016_00000000_00000001 ; +LOCAL IUH L13_2982if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2982if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2982if_f = (IHPE)L13_2982if_f ; +GLOBAL IUH S_3003_Chain4WordMove_00000000_00000017_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3003_Chain4WordMove_00000000_00000017_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3003_Chain4WordMove_00000000_00000017_00000001 = (IHPE)S_3003_Chain4WordMove_00000000_00000017_00000001 ; +LOCAL IUH L13_2983if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2983if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2983if_f = (IHPE)L13_2983if_f ; +LOCAL IUH L22_253if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_253if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_253if_f = (IHPE)L22_253if_f ; +LOCAL IUH L22_254if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_254if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_254if_d = (IHPE)L22_254if_d ; +GLOBAL IUH S_3004_CopyWord4PlaneChain4_00000000_00000017_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3004_CopyWord4PlaneChain4_00000000_00000017_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3004_CopyWord4PlaneChain4_00000000_00000017_00000000_00000001 = (IHPE)S_3004_CopyWord4PlaneChain4_00000000_00000017_00000000_00000001 ; +LOCAL IUH L13_2984if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2984if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2984if_f = (IHPE)L13_2984if_f ; +LOCAL IUH L23_1080w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1080w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1080w_t = (IHPE)L23_1080w_t ; +LOCAL IUH L23_1081w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1081w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1081w_d = (IHPE)L23_1081w_d ; +LOCAL IUH L23_1078if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1078if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1078if_f = (IHPE)L23_1078if_f ; +LOCAL IUH L23_1082w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1082w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1082w_t = (IHPE)L23_1082w_t ; +LOCAL IUH L23_1083w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1083w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1083w_d = (IHPE)L23_1083w_d ; +LOCAL IUH L23_1079if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1079if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1079if_d = (IHPE)L23_1079if_d ; +GLOBAL IUH S_3005_Chain4WordMove_00000000_00000018_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3005_Chain4WordMove_00000000_00000018_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3005_Chain4WordMove_00000000_00000018_00000001 = (IHPE)S_3005_Chain4WordMove_00000000_00000018_00000001 ; +LOCAL IUH L13_2985if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2985if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2985if_f = (IHPE)L13_2985if_f ; +LOCAL IUH L22_255if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_255if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_255if_f = (IHPE)L22_255if_f ; +LOCAL IUH L22_256if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_256if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_256if_d = (IHPE)L22_256if_d ; +GLOBAL IUH S_3006_CopyWordPlnByPlnChain4_00000000_00000018_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3006_CopyWordPlnByPlnChain4_00000000_00000018_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3006_CopyWordPlnByPlnChain4_00000000_00000018_00000000_00000001 = (IHPE)S_3006_CopyWordPlnByPlnChain4_00000000_00000018_00000000_00000001 ; +LOCAL IUH L13_2986if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2986if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2986if_f = (IHPE)L13_2986if_f ; +GLOBAL IUH S_3007_Chain4WordMove_00000000_00000019_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3007_Chain4WordMove_00000000_00000019_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3007_Chain4WordMove_00000000_00000019_00000001 = (IHPE)S_3007_Chain4WordMove_00000000_00000019_00000001 ; +LOCAL IUH L13_2987if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2987if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2987if_f = (IHPE)L13_2987if_f ; +LOCAL IUH L22_257if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_257if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_257if_f = (IHPE)L22_257if_f ; +LOCAL IUH L22_258if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_258if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_258if_d = (IHPE)L22_258if_d ; +GLOBAL IUH S_3008_CopyWord4PlaneChain4_00000000_00000019_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3008_CopyWord4PlaneChain4_00000000_00000019_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3008_CopyWord4PlaneChain4_00000000_00000019_00000000_00000001 = (IHPE)S_3008_CopyWord4PlaneChain4_00000000_00000019_00000000_00000001 ; +LOCAL IUH L13_2988if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2988if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2988if_f = (IHPE)L13_2988if_f ; +LOCAL IUH L23_1086w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1086w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1086w_t = (IHPE)L23_1086w_t ; +LOCAL IUH L23_1087w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1087w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1087w_d = (IHPE)L23_1087w_d ; +LOCAL IUH L23_1084if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1084if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1084if_f = (IHPE)L23_1084if_f ; +LOCAL IUH L23_1088w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1088w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1088w_t = (IHPE)L23_1088w_t ; +LOCAL IUH L23_1089w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1089w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1089w_d = (IHPE)L23_1089w_d ; +LOCAL IUH L23_1085if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1085if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1085if_d = (IHPE)L23_1085if_d ; +GLOBAL IUH S_3009_Chain4WordMove_00000000_0000001e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3009_Chain4WordMove_00000000_0000001e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3009_Chain4WordMove_00000000_0000001e_00000001 = (IHPE)S_3009_Chain4WordMove_00000000_0000001e_00000001 ; +LOCAL IUH L13_2989if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2989if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2989if_f = (IHPE)L13_2989if_f ; +LOCAL IUH L22_259if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_259if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_259if_f = (IHPE)L22_259if_f ; +LOCAL IUH L22_260if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_260if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_260if_d = (IHPE)L22_260if_d ; +GLOBAL IUH S_3010_CopyWordPlnByPlnChain4_00000000_0000001e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3010_CopyWordPlnByPlnChain4_00000000_0000001e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3010_CopyWordPlnByPlnChain4_00000000_0000001e_00000000_00000001 = (IHPE)S_3010_CopyWordPlnByPlnChain4_00000000_0000001e_00000000_00000001 ; +LOCAL IUH L13_2990if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2990if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2990if_f = (IHPE)L13_2990if_f ; +GLOBAL IUH S_3011_Chain4WordMove_00000000_0000001f_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3011_Chain4WordMove_00000000_0000001f_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3011_Chain4WordMove_00000000_0000001f_00000001 = (IHPE)S_3011_Chain4WordMove_00000000_0000001f_00000001 ; +LOCAL IUH L13_2991if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2991if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2991if_f = (IHPE)L13_2991if_f ; +LOCAL IUH L22_261if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_261if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_261if_f = (IHPE)L22_261if_f ; +LOCAL IUH L22_262if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_262if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_262if_d = (IHPE)L22_262if_d ; +GLOBAL IUH S_3012_CopyWord4PlaneChain4_00000000_0000001f_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3012_CopyWord4PlaneChain4_00000000_0000001f_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3012_CopyWord4PlaneChain4_00000000_0000001f_00000000_00000001 = (IHPE)S_3012_CopyWord4PlaneChain4_00000000_0000001f_00000000_00000001 ; +LOCAL IUH L13_2992if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2992if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2992if_f = (IHPE)L13_2992if_f ; +LOCAL IUH L23_1092w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1092w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1092w_t = (IHPE)L23_1092w_t ; +LOCAL IUH L23_1093w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1093w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1093w_d = (IHPE)L23_1093w_d ; +LOCAL IUH L23_1090if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1090if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1090if_f = (IHPE)L23_1090if_f ; +LOCAL IUH L23_1094w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1094w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1094w_t = (IHPE)L23_1094w_t ; +LOCAL IUH L23_1095w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1095w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1095w_d = (IHPE)L23_1095w_d ; +LOCAL IUH L23_1091if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1091if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1091if_d = (IHPE)L23_1091if_d ; +GLOBAL IUH S_3013_Chain4DwordMove_00000000_00000008_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3013_Chain4DwordMove_00000000_00000008_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3013_Chain4DwordMove_00000000_00000008_00000001 = (IHPE)S_3013_Chain4DwordMove_00000000_00000008_00000001 ; +LOCAL IUH L13_2993if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2993if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2993if_f = (IHPE)L13_2993if_f ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + case S_2982_CopyBytePlnByPlnChain4_00000000_00000018_00000000_00000001_id : + S_2982_CopyBytePlnByPlnChain4_00000000_00000018_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2982) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2962if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2962if_f_id : + L13_2962if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_1032if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1035w_d; + case L23_1034w_t_id : + L23_1034w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_1036if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_1036if_f_id : + L23_1036if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_1034w_t; + case L23_1035w_d_id : + L23_1035w_d: ; + { extern IUH L23_1033if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_1033if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_1032if_f_id : + L23_1032if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_1038w_d; + case L23_1037w_t_id : + L23_1037w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_1039if_f; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_1039if_f_id : + L23_1039if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1037w_t; + case L23_1038w_d_id : + L23_1038w_d: ; + case L23_1033if_d_id : + L23_1033if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2983_Chain4ByteMove_00000000_00000019_00000001_id : + S_2983_Chain4ByteMove_00000000_00000019_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2983) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2963if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2963if_f_id : + L13_2963if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_233if_f; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2984_CopyByte4PlaneChain4_00000000_00000019_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2984_CopyByte4PlaneChain4_00000000_00000019_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + { extern IUH L22_234if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_234if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_233if_f_id : + L22_233if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2984_CopyByte4PlaneChain4_00000000_00000019_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2984_CopyByte4PlaneChain4_00000000_00000019_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + case L22_234if_d_id : + L22_234if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2984_CopyByte4PlaneChain4_00000000_00000019_00000000_00000001_id : + S_2984_CopyByte4PlaneChain4_00000000_00000019_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2984) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2964if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2964if_f_id : + L13_2964if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_1040if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_1043w_d; + case L23_1042w_t_id : + L23_1042w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_1042w_t; + case L23_1043w_d_id : + L23_1043w_d: ; + { extern IUH L23_1041if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_1041if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_1040if_f_id : + L23_1040if_f: ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1045w_d; + case L23_1044w_t_id : + L23_1044w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1044w_t; + case L23_1045w_d_id : + L23_1045w_d: ; + case L23_1041if_d_id : + L23_1041if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2985_Chain4ByteMove_00000000_0000001e_00000001_id : + S_2985_Chain4ByteMove_00000000_0000001e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2985) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2965if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2965if_f_id : + L13_2965if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_235if_f; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2986_CopyBytePlnByPlnChain4_00000000_0000001e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2986_CopyBytePlnByPlnChain4_00000000_0000001e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + { extern IUH L22_236if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_236if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_235if_f_id : + L22_235if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2986_CopyBytePlnByPlnChain4_00000000_0000001e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2986_CopyBytePlnByPlnChain4_00000000_0000001e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + case L22_236if_d_id : + L22_236if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2986_CopyBytePlnByPlnChain4_00000000_0000001e_00000000_00000001_id : + S_2986_CopyBytePlnByPlnChain4_00000000_0000001e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2986) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2966if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2966if_f_id : + L13_2966if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_1046if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1049w_d; + case L23_1048w_t_id : + L23_1048w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_1050if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_1050if_f_id : + L23_1050if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1048w_t; + case L23_1049w_d_id : + L23_1049w_d: ; + { extern IUH L23_1047if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_1047if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_1046if_f_id : + L23_1046if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1052w_d; + case L23_1051w_t_id : + L23_1051w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_1053if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r24)) = (IS32)(1308) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)&(r23) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r24))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_1053if_f_id : + L23_1053if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1051w_t; + case L23_1052w_d_id : + L23_1052w_d: ; + case L23_1047if_d_id : + L23_1047if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2987_Chain4ByteMove_00000000_0000001f_00000001_id : + S_2987_Chain4ByteMove_00000000_0000001f_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2987) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2967if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2967if_f_id : + L13_2967if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_237if_f; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2988_CopyByte4PlaneChain4_00000000_0000001f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2988_CopyByte4PlaneChain4_00000000_0000001f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + { extern IUH L22_238if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_238if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_237if_f_id : + L22_237if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2988_CopyByte4PlaneChain4_00000000_0000001f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2988_CopyByte4PlaneChain4_00000000_0000001f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + case L22_238if_d_id : + L22_238if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2988_CopyByte4PlaneChain4_00000000_0000001f_00000000_00000001_id : + S_2988_CopyByte4PlaneChain4_00000000_0000001f_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2988) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2968if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2968if_f_id : + L13_2968if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_1054if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_1057w_d; + case L23_1056w_t_id : + L23_1056w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1056w_t; + case L23_1057w_d_id : + L23_1057w_d: ; + { extern IUH L23_1055if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_1055if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_1054if_f_id : + L23_1054if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_1059w_d; + case L23_1058w_t_id : + L23_1058w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r24)) = (IS32)(1308) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)&(r23) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r24))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1058w_t; + case L23_1059w_d_id : + L23_1059w_d: ; + case L23_1055if_d_id : + L23_1055if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2989_Chain4WordMove_00000000_00000008_00000001_id : + S_2989_Chain4WordMove_00000000_00000008_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2989) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2969if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2969if_f_id : + L13_2969if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_239if_f; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2990_CopyWordPlnByPlnChain4_00000000_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2990_CopyWordPlnByPlnChain4_00000000_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + { extern IUH L22_240if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_240if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_239if_f_id : + L22_239if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2990_CopyWordPlnByPlnChain4_00000000_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2990_CopyWordPlnByPlnChain4_00000000_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + case L22_240if_d_id : + L22_240if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2990_CopyWordPlnByPlnChain4_00000000_00000008_00000000_00000001_id : + S_2990_CopyWordPlnByPlnChain4_00000000_00000008_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2990) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2970if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2970if_f_id : + L13_2970if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2966_CopyBytePlnByPlnChain4_00000000_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2966_CopyBytePlnByPlnChain4_00000000_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2991_Chain4WordMove_00000000_00000009_00000001_id : + S_2991_Chain4WordMove_00000000_00000009_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2991) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2971if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2971if_f_id : + L13_2971if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_241if_f; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2992_CopyWord4PlaneChain4_00000000_00000009_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2992_CopyWord4PlaneChain4_00000000_00000009_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + { extern IUH L22_242if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_242if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_241if_f_id : + L22_241if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2992_CopyWord4PlaneChain4_00000000_00000009_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2992_CopyWord4PlaneChain4_00000000_00000009_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + case L22_242if_d_id : + L22_242if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2992_CopyWord4PlaneChain4_00000000_00000009_00000000_00000001_id : + S_2992_CopyWord4PlaneChain4_00000000_00000009_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2992) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2972if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2972if_f_id : + L13_2972if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_1060if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1063w_d; + case L23_1062w_t_id : + L23_1062w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_1062w_t; + case L23_1063w_d_id : + L23_1063w_d: ; + { extern IUH L23_1061if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_1061if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_1060if_f_id : + L23_1060if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1065w_d; + case L23_1064w_t_id : + L23_1064w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1064w_t; + case L23_1065w_d_id : + L23_1065w_d: ; + case L23_1061if_d_id : + L23_1061if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2993_Chain4WordMove_00000000_0000000e_00000001_id : + S_2993_Chain4WordMove_00000000_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2993) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2973if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2973if_f_id : + L13_2973if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_243if_f; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2994_CopyWordPlnByPlnChain4_00000000_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2994_CopyWordPlnByPlnChain4_00000000_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + { extern IUH L22_244if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_244if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_243if_f_id : + L22_243if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2994_CopyWordPlnByPlnChain4_00000000_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2994_CopyWordPlnByPlnChain4_00000000_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + case L22_244if_d_id : + L22_244if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2994_CopyWordPlnByPlnChain4_00000000_0000000e_00000000_00000001_id : + S_2994_CopyWordPlnByPlnChain4_00000000_0000000e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2994) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2974if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2974if_f_id : + L13_2974if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2970_CopyBytePlnByPlnChain4_00000000_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2970_CopyBytePlnByPlnChain4_00000000_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2995_Chain4WordMove_00000000_0000000f_00000001_id : + S_2995_Chain4WordMove_00000000_0000000f_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2995) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2975if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2975if_f_id : + L13_2975if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_245if_f; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2996_CopyWord4PlaneChain4_00000000_0000000f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2996_CopyWord4PlaneChain4_00000000_0000000f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + { extern IUH L22_246if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_246if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_245if_f_id : + L22_245if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2996_CopyWord4PlaneChain4_00000000_0000000f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2996_CopyWord4PlaneChain4_00000000_0000000f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + case L22_246if_d_id : + L22_246if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2996_CopyWord4PlaneChain4_00000000_0000000f_00000000_00000001_id : + S_2996_CopyWord4PlaneChain4_00000000_0000000f_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(2996) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2976if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2976if_f_id : + L13_2976if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_1066if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1069w_d; + case L23_1068w_t_id : + L23_1068w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_1068w_t; + case L23_1069w_d_id : + L23_1069w_d: ; + { extern IUH L23_1067if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_1067if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_1066if_f_id : + L23_1066if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1071w_d; + case L23_1070w_t_id : + L23_1070w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r24)) = (IS32)(1308) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)&(r23) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r24))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r24)) = (IS32)(1308) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)&(r23) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r24))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1070w_t; + case L23_1071w_d_id : + L23_1071w_d: ; + case L23_1067if_d_id : + L23_1067if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2997_Chain4WordMove_00000000_00000010_00000001_id : + S_2997_Chain4WordMove_00000000_00000010_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2997) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2977if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2977if_f_id : + L13_2977if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_247if_f; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2998_CopyWordPlnByPlnChain4_00000000_00000010_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2998_CopyWordPlnByPlnChain4_00000000_00000010_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + { extern IUH L22_248if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_248if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_247if_f_id : + L22_247if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2998_CopyWordPlnByPlnChain4_00000000_00000010_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2998_CopyWordPlnByPlnChain4_00000000_00000010_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + case L22_248if_d_id : + L22_248if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_2998_CopyWordPlnByPlnChain4_00000000_00000010_00000000_00000001_id : + S_2998_CopyWordPlnByPlnChain4_00000000_00000010_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2998) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2978if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2978if_f_id : + L13_2978if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2974_CopyBytePlnByPlnChain4_00000000_00000010_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2974_CopyBytePlnByPlnChain4_00000000_00000010_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_2999_Chain4WordMove_00000000_00000011_00000001_id : + S_2999_Chain4WordMove_00000000_00000011_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(2999) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2979if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2979if_f_id : + L13_2979if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_249if_f; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3000_CopyWord4PlaneChain4_00000000_00000011_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3000_CopyWord4PlaneChain4_00000000_00000011_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + { extern IUH L22_250if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_250if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_249if_f_id : + L22_249if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3000_CopyWord4PlaneChain4_00000000_00000011_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3000_CopyWord4PlaneChain4_00000000_00000011_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + case L22_250if_d_id : + L22_250if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_3000_CopyWord4PlaneChain4_00000000_00000011_00000000_00000001_id : + S_3000_CopyWord4PlaneChain4_00000000_00000011_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(3000) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2980if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2980if_f_id : + L13_2980if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_1072if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1075w_d; + case L23_1074w_t_id : + L23_1074w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_1074w_t; + case L23_1075w_d_id : + L23_1075w_d: ; + { extern IUH L23_1073if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_1073if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_1072if_f_id : + L23_1072if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1077w_d; + case L23_1076w_t_id : + L23_1076w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1076w_t; + case L23_1077w_d_id : + L23_1077w_d: ; + case L23_1073if_d_id : + L23_1073if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3001_Chain4WordMove_00000000_00000016_00000001_id : + S_3001_Chain4WordMove_00000000_00000016_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3001) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2981if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2981if_f_id : + L13_2981if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_251if_f; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3002_CopyWordPlnByPlnChain4_00000000_00000016_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3002_CopyWordPlnByPlnChain4_00000000_00000016_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + { extern IUH L22_252if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_252if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_251if_f_id : + L22_251if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3002_CopyWordPlnByPlnChain4_00000000_00000016_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3002_CopyWordPlnByPlnChain4_00000000_00000016_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + case L22_252if_d_id : + L22_252if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_3002_CopyWordPlnByPlnChain4_00000000_00000016_00000000_00000001_id : + S_3002_CopyWordPlnByPlnChain4_00000000_00000016_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3002) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2982if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2982if_f_id : + L13_2982if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2978_CopyBytePlnByPlnChain4_00000000_00000016_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2978_CopyBytePlnByPlnChain4_00000000_00000016_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3003_Chain4WordMove_00000000_00000017_00000001_id : + S_3003_Chain4WordMove_00000000_00000017_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3003) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2983if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2983if_f_id : + L13_2983if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_253if_f; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3004_CopyWord4PlaneChain4_00000000_00000017_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3004_CopyWord4PlaneChain4_00000000_00000017_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + { extern IUH L22_254if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_254if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_253if_f_id : + L22_253if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3004_CopyWord4PlaneChain4_00000000_00000017_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3004_CopyWord4PlaneChain4_00000000_00000017_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + case L22_254if_d_id : + L22_254if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_3004_CopyWord4PlaneChain4_00000000_00000017_00000000_00000001_id : + S_3004_CopyWord4PlaneChain4_00000000_00000017_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(3004) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2984if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2984if_f_id : + L13_2984if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_1078if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1081w_d; + case L23_1080w_t_id : + L23_1080w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_1080w_t; + case L23_1081w_d_id : + L23_1081w_d: ; + { extern IUH L23_1079if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_1079if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_1078if_f_id : + L23_1078if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1083w_d; + case L23_1082w_t_id : + L23_1082w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) ^ *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) ^ *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1082w_t; + case L23_1083w_d_id : + L23_1083w_d: ; + case L23_1079if_d_id : + L23_1079if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3005_Chain4WordMove_00000000_00000018_00000001_id : + S_3005_Chain4WordMove_00000000_00000018_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3005) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2985if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2985if_f_id : + L13_2985if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_255if_f; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3006_CopyWordPlnByPlnChain4_00000000_00000018_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3006_CopyWordPlnByPlnChain4_00000000_00000018_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + { extern IUH L22_256if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_256if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_255if_f_id : + L22_255if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3006_CopyWordPlnByPlnChain4_00000000_00000018_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3006_CopyWordPlnByPlnChain4_00000000_00000018_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + case L22_256if_d_id : + L22_256if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_3006_CopyWordPlnByPlnChain4_00000000_00000018_00000000_00000001_id : + S_3006_CopyWordPlnByPlnChain4_00000000_00000018_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3006) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2986if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2986if_f_id : + L13_2986if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2982_CopyBytePlnByPlnChain4_00000000_00000018_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2982_CopyBytePlnByPlnChain4_00000000_00000018_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3007_Chain4WordMove_00000000_00000019_00000001_id : + S_3007_Chain4WordMove_00000000_00000019_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3007) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2987if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2987if_f_id : + L13_2987if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_257if_f; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3008_CopyWord4PlaneChain4_00000000_00000019_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3008_CopyWord4PlaneChain4_00000000_00000019_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + { extern IUH L22_258if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_258if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_257if_f_id : + L22_257if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3008_CopyWord4PlaneChain4_00000000_00000019_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3008_CopyWord4PlaneChain4_00000000_00000019_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + case L22_258if_d_id : + L22_258if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_3008_CopyWord4PlaneChain4_00000000_00000019_00000000_00000001_id : + S_3008_CopyWord4PlaneChain4_00000000_00000019_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(3008) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2988if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2988if_f_id : + L13_2988if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_1084if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1087w_d; + case L23_1086w_t_id : + L23_1086w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_1086w_t; + case L23_1087w_d_id : + L23_1087w_d: ; + { extern IUH L23_1085if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_1085if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_1084if_f_id : + L23_1084if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1089w_d; + case L23_1088w_t_id : + L23_1088w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1088w_t; + case L23_1089w_d_id : + L23_1089w_d: ; + case L23_1085if_d_id : + L23_1085if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3009_Chain4WordMove_00000000_0000001e_00000001_id : + S_3009_Chain4WordMove_00000000_0000001e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3009) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2989if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2989if_f_id : + L13_2989if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_259if_f; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3010_CopyWordPlnByPlnChain4_00000000_0000001e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3010_CopyWordPlnByPlnChain4_00000000_0000001e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + { extern IUH L22_260if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_260if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_259if_f_id : + L22_259if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3010_CopyWordPlnByPlnChain4_00000000_0000001e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3010_CopyWordPlnByPlnChain4_00000000_0000001e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + case L22_260if_d_id : + L22_260if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_3010_CopyWordPlnByPlnChain4_00000000_0000001e_00000000_00000001_id : + S_3010_CopyWordPlnByPlnChain4_00000000_0000001e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3010) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2990if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2990if_f_id : + L13_2990if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2986_CopyBytePlnByPlnChain4_00000000_0000001e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2986_CopyBytePlnByPlnChain4_00000000_0000001e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3011_Chain4WordMove_00000000_0000001f_00000001_id : + S_3011_Chain4WordMove_00000000_0000001f_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3011) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2991if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2991if_f_id : + L13_2991if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_261if_f; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3012_CopyWord4PlaneChain4_00000000_0000001f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3012_CopyWord4PlaneChain4_00000000_0000001f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + { extern IUH L22_262if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_262if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_261if_f_id : + L22_261if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3012_CopyWord4PlaneChain4_00000000_0000001f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3012_CopyWord4PlaneChain4_00000000_0000001f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + case L22_262if_d_id : + L22_262if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_3012_CopyWord4PlaneChain4_00000000_0000001f_00000000_00000001_id : + S_3012_CopyWord4PlaneChain4_00000000_0000001f_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(3012) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2992if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2992if_f_id : + L13_2992if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_1090if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1093w_d; + case L23_1092w_t_id : + L23_1092w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_1092w_t; + case L23_1093w_d_id : + L23_1093w_d: ; + { extern IUH L23_1091if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_1091if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_1090if_f_id : + L23_1090if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1095w_d; + case L23_1094w_t_id : + L23_1094w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r24)) = (IS32)(1308) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)&(r23) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r24))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r24)) = (IS32)(1308) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)&(r23) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r24))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1094w_t; + case L23_1095w_d_id : + L23_1095w_d: ; + case L23_1091if_d_id : + L23_1091if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3013_Chain4DwordMove_00000000_00000008_00000001_id : + S_3013_Chain4DwordMove_00000000_00000008_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3013) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2993if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2993if_f_id : + L13_2993if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2989_Chain4WordMove_00000000_00000008_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2989_Chain4WordMove_00000000_00000008_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid029.c b/private/mvdm/softpc.new/base/cvidc/sevid029.c new file mode 100644 index 000000000..5ecedd49c --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid029.c @@ -0,0 +1,3784 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_3014_Chain4DwordMove_00000000_00000009_00000001_id, +L13_2994if_f_id, +S_3015_Chain4DwordMove_00000000_0000000e_00000001_id, +L13_2995if_f_id, +S_3016_Chain4DwordMove_00000000_0000000f_00000001_id, +L13_2996if_f_id, +S_3017_Chain4DwordMove_00000000_00000010_00000001_id, +L13_2997if_f_id, +S_3018_Chain4DwordMove_00000000_00000011_00000001_id, +L13_2998if_f_id, +S_3019_Chain4DwordMove_00000000_00000016_00000001_id, +L13_2999if_f_id, +S_3020_Chain4DwordMove_00000000_00000017_00000001_id, +L13_3000if_f_id, +S_3021_Chain4DwordMove_00000000_00000018_00000001_id, +L13_3001if_f_id, +S_3022_Chain4DwordMove_00000000_00000019_00000001_id, +L13_3002if_f_id, +S_3023_Chain4DwordMove_00000000_0000001e_00000001_id, +L13_3003if_f_id, +S_3024_Chain4DwordMove_00000000_0000001f_00000001_id, +L13_3004if_f_id, +S_3025_Chain4ByteMove_00000001_00000000_00000001_id, +L13_3005if_f_id, +L22_263if_f_id, +L22_264if_d_id, +S_3026_CopyBytePlnByPlnChain4_00000001_00000000_00000000_00000001_id, +L13_3006if_f_id, +L23_1098w_t_id, +L23_1100if_f_id, +L23_1099w_d_id, +L23_1096if_f_id, +L23_1101w_t_id, +L23_1103if_f_id, +L23_1102w_d_id, +L23_1097if_d_id, +S_3027_Chain4WordMove_00000001_00000000_00000001_id, +L13_3007if_f_id, +L22_265if_f_id, +L22_267if_f_id, +L22_268if_f_id, +L22_269if_f_id, +L22_270if_f_id, +L22_266if_d_id, +S_3028_Chain4DwordMove_00000001_00000000_00000001_id, +L13_3008if_f_id, +S_3029_Chain4ByteMove_00000002_00000008_00000001_id, +L13_3009if_f_id, +L22_271if_f_id, +L22_272if_d_id, +S_3030_CopyBytePlnByPlnChain4_00000002_00000008_00000000_00000001_id, +L13_3010if_f_id, +L23_1106w_t_id, +L23_1108if_f_id, +L23_1107w_d_id, +L23_1104if_f_id, +L23_1109w_t_id, +L23_1111if_f_id, +L23_1110w_d_id, +L23_1105if_d_id, +S_3031_Chain4ByteMove_00000002_00000009_00000001_id, +L13_3011if_f_id, +L22_273if_f_id, +L22_274if_d_id, +S_3032_CopyByte4PlaneChain4_00000002_00000009_00000000_00000001_id, +L13_3012if_f_id, +L23_1114w_t_id, +L23_1115w_d_id, +L23_1112if_f_id, +L23_1116w_t_id, +L23_1117w_d_id, +L23_1113if_d_id, +S_3033_Chain4ByteMove_00000002_0000000e_00000001_id, +L13_3013if_f_id, +L22_275if_f_id, +L22_276if_d_id, +S_3034_CopyBytePlnByPlnChain4_00000002_0000000e_00000000_00000001_id, +L13_3014if_f_id, +L23_1120w_t_id, +L23_1122if_f_id, +L23_1121w_d_id, +L23_1118if_f_id, +L23_1123w_t_id, +L23_1125if_f_id, +L23_1124w_d_id, +L23_1119if_d_id, +S_3035_Chain4ByteMove_00000002_0000000f_00000001_id, +L13_3015if_f_id, +L22_277if_f_id, +L22_278if_d_id, +S_3036_CopyByte4PlaneChain4_00000002_0000000f_00000000_00000001_id, +L13_3016if_f_id, +L23_1128w_t_id, +L23_1129w_d_id, +L23_1126if_f_id, +L23_1130w_t_id, +L23_1131w_d_id, +L23_1127if_d_id, +S_3037_Chain4WordMove_00000002_00000008_00000001_id, +L13_3017if_f_id, +L22_279if_f_id, +L22_280if_d_id, +S_3038_CopyWordPlnByPlnChain4_00000002_00000008_00000000_00000001_id, +L13_3018if_f_id, +S_3039_Chain4WordMove_00000002_00000009_00000001_id, +L13_3019if_f_id, +L22_281if_f_id, +L22_282if_d_id, +S_3040_CopyWord4PlaneChain4_00000002_00000009_00000000_00000001_id, +L13_3020if_f_id, +L23_1134w_t_id, +L23_1135w_d_id, +L23_1132if_f_id, +L23_1136w_t_id, +L23_1137w_d_id, +L23_1133if_d_id, +S_3041_Chain4WordMove_00000002_0000000e_00000001_id, +L13_3021if_f_id, +L22_283if_f_id, +L22_284if_d_id, +S_3042_CopyWordPlnByPlnChain4_00000002_0000000e_00000000_00000001_id, +L13_3022if_f_id, +S_3043_Chain4WordMove_00000002_0000000f_00000001_id, +L13_3023if_f_id, +L22_285if_f_id, +L22_286if_d_id, +S_3044_CopyWord4PlaneChain4_00000002_0000000f_00000000_00000001_id, +L13_3024if_f_id, +L23_1140w_t_id, +L23_1141w_d_id, +L23_1138if_f_id, +L23_1142w_t_id, +L23_1143w_d_id, +L23_1139if_d_id, +S_3045_Chain4DwordMove_00000002_00000008_00000001_id, +L13_3025if_f_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_3014_Chain4DwordMove_00000000_00000009_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3014_Chain4DwordMove_00000000_00000009_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3014_Chain4DwordMove_00000000_00000009_00000001 = (IHPE)S_3014_Chain4DwordMove_00000000_00000009_00000001 ; +LOCAL IUH L13_2994if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2994if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2994if_f = (IHPE)L13_2994if_f ; +GLOBAL IUH S_3015_Chain4DwordMove_00000000_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3015_Chain4DwordMove_00000000_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3015_Chain4DwordMove_00000000_0000000e_00000001 = (IHPE)S_3015_Chain4DwordMove_00000000_0000000e_00000001 ; +LOCAL IUH L13_2995if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2995if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2995if_f = (IHPE)L13_2995if_f ; +GLOBAL IUH S_3016_Chain4DwordMove_00000000_0000000f_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3016_Chain4DwordMove_00000000_0000000f_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3016_Chain4DwordMove_00000000_0000000f_00000001 = (IHPE)S_3016_Chain4DwordMove_00000000_0000000f_00000001 ; +LOCAL IUH L13_2996if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2996if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2996if_f = (IHPE)L13_2996if_f ; +GLOBAL IUH S_3017_Chain4DwordMove_00000000_00000010_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3017_Chain4DwordMove_00000000_00000010_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3017_Chain4DwordMove_00000000_00000010_00000001 = (IHPE)S_3017_Chain4DwordMove_00000000_00000010_00000001 ; +LOCAL IUH L13_2997if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2997if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2997if_f = (IHPE)L13_2997if_f ; +GLOBAL IUH S_3018_Chain4DwordMove_00000000_00000011_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3018_Chain4DwordMove_00000000_00000011_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3018_Chain4DwordMove_00000000_00000011_00000001 = (IHPE)S_3018_Chain4DwordMove_00000000_00000011_00000001 ; +LOCAL IUH L13_2998if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2998if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2998if_f = (IHPE)L13_2998if_f ; +GLOBAL IUH S_3019_Chain4DwordMove_00000000_00000016_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3019_Chain4DwordMove_00000000_00000016_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3019_Chain4DwordMove_00000000_00000016_00000001 = (IHPE)S_3019_Chain4DwordMove_00000000_00000016_00000001 ; +LOCAL IUH L13_2999if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_2999if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_2999if_f = (IHPE)L13_2999if_f ; +GLOBAL IUH S_3020_Chain4DwordMove_00000000_00000017_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3020_Chain4DwordMove_00000000_00000017_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3020_Chain4DwordMove_00000000_00000017_00000001 = (IHPE)S_3020_Chain4DwordMove_00000000_00000017_00000001 ; +LOCAL IUH L13_3000if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3000if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3000if_f = (IHPE)L13_3000if_f ; +GLOBAL IUH S_3021_Chain4DwordMove_00000000_00000018_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3021_Chain4DwordMove_00000000_00000018_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3021_Chain4DwordMove_00000000_00000018_00000001 = (IHPE)S_3021_Chain4DwordMove_00000000_00000018_00000001 ; +LOCAL IUH L13_3001if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3001if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3001if_f = (IHPE)L13_3001if_f ; +GLOBAL IUH S_3022_Chain4DwordMove_00000000_00000019_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3022_Chain4DwordMove_00000000_00000019_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3022_Chain4DwordMove_00000000_00000019_00000001 = (IHPE)S_3022_Chain4DwordMove_00000000_00000019_00000001 ; +LOCAL IUH L13_3002if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3002if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3002if_f = (IHPE)L13_3002if_f ; +GLOBAL IUH S_3023_Chain4DwordMove_00000000_0000001e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3023_Chain4DwordMove_00000000_0000001e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3023_Chain4DwordMove_00000000_0000001e_00000001 = (IHPE)S_3023_Chain4DwordMove_00000000_0000001e_00000001 ; +LOCAL IUH L13_3003if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3003if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3003if_f = (IHPE)L13_3003if_f ; +GLOBAL IUH S_3024_Chain4DwordMove_00000000_0000001f_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3024_Chain4DwordMove_00000000_0000001f_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3024_Chain4DwordMove_00000000_0000001f_00000001 = (IHPE)S_3024_Chain4DwordMove_00000000_0000001f_00000001 ; +LOCAL IUH L13_3004if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3004if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3004if_f = (IHPE)L13_3004if_f ; +GLOBAL IUH S_3025_Chain4ByteMove_00000001_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3025_Chain4ByteMove_00000001_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3025_Chain4ByteMove_00000001_00000000_00000001 = (IHPE)S_3025_Chain4ByteMove_00000001_00000000_00000001 ; +LOCAL IUH L13_3005if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3005if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3005if_f = (IHPE)L13_3005if_f ; +LOCAL IUH L22_263if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_263if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_263if_f = (IHPE)L22_263if_f ; +LOCAL IUH L22_264if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_264if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_264if_d = (IHPE)L22_264if_d ; +GLOBAL IUH S_3026_CopyBytePlnByPlnChain4_00000001_00000000_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3026_CopyBytePlnByPlnChain4_00000001_00000000_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3026_CopyBytePlnByPlnChain4_00000001_00000000_00000000_00000001 = (IHPE)S_3026_CopyBytePlnByPlnChain4_00000001_00000000_00000000_00000001 ; +LOCAL IUH L13_3006if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3006if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3006if_f = (IHPE)L13_3006if_f ; +LOCAL IUH L23_1098w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1098w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1098w_t = (IHPE)L23_1098w_t ; +LOCAL IUH L23_1100if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1100if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1100if_f = (IHPE)L23_1100if_f ; +LOCAL IUH L23_1099w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1099w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1099w_d = (IHPE)L23_1099w_d ; +LOCAL IUH L23_1096if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1096if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1096if_f = (IHPE)L23_1096if_f ; +LOCAL IUH L23_1101w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1101w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1101w_t = (IHPE)L23_1101w_t ; +LOCAL IUH L23_1103if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1103if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1103if_f = (IHPE)L23_1103if_f ; +LOCAL IUH L23_1102w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1102w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1102w_d = (IHPE)L23_1102w_d ; +LOCAL IUH L23_1097if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1097if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1097if_d = (IHPE)L23_1097if_d ; +GLOBAL IUH S_3027_Chain4WordMove_00000001_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3027_Chain4WordMove_00000001_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3027_Chain4WordMove_00000001_00000000_00000001 = (IHPE)S_3027_Chain4WordMove_00000001_00000000_00000001 ; +LOCAL IUH L13_3007if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3007if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3007if_f = (IHPE)L13_3007if_f ; +LOCAL IUH L22_265if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_265if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_265if_f = (IHPE)L22_265if_f ; +LOCAL IUH L22_267if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_267if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_267if_f = (IHPE)L22_267if_f ; +LOCAL IUH L22_268if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_268if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_268if_f = (IHPE)L22_268if_f ; +LOCAL IUH L22_269if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_269if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_269if_f = (IHPE)L22_269if_f ; +LOCAL IUH L22_270if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_270if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_270if_f = (IHPE)L22_270if_f ; +LOCAL IUH L22_266if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_266if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_266if_d = (IHPE)L22_266if_d ; +GLOBAL IUH S_3028_Chain4DwordMove_00000001_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3028_Chain4DwordMove_00000001_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3028_Chain4DwordMove_00000001_00000000_00000001 = (IHPE)S_3028_Chain4DwordMove_00000001_00000000_00000001 ; +LOCAL IUH L13_3008if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3008if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3008if_f = (IHPE)L13_3008if_f ; +GLOBAL IUH S_3029_Chain4ByteMove_00000002_00000008_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3029_Chain4ByteMove_00000002_00000008_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3029_Chain4ByteMove_00000002_00000008_00000001 = (IHPE)S_3029_Chain4ByteMove_00000002_00000008_00000001 ; +LOCAL IUH L13_3009if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3009if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3009if_f = (IHPE)L13_3009if_f ; +LOCAL IUH L22_271if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_271if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_271if_f = (IHPE)L22_271if_f ; +LOCAL IUH L22_272if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_272if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_272if_d = (IHPE)L22_272if_d ; +GLOBAL IUH S_3030_CopyBytePlnByPlnChain4_00000002_00000008_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3030_CopyBytePlnByPlnChain4_00000002_00000008_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3030_CopyBytePlnByPlnChain4_00000002_00000008_00000000_00000001 = (IHPE)S_3030_CopyBytePlnByPlnChain4_00000002_00000008_00000000_00000001 ; +LOCAL IUH L13_3010if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3010if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3010if_f = (IHPE)L13_3010if_f ; +LOCAL IUH L23_1106w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1106w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1106w_t = (IHPE)L23_1106w_t ; +LOCAL IUH L23_1108if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1108if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1108if_f = (IHPE)L23_1108if_f ; +LOCAL IUH L23_1107w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1107w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1107w_d = (IHPE)L23_1107w_d ; +LOCAL IUH L23_1104if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1104if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1104if_f = (IHPE)L23_1104if_f ; +LOCAL IUH L23_1109w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1109w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1109w_t = (IHPE)L23_1109w_t ; +LOCAL IUH L23_1111if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1111if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1111if_f = (IHPE)L23_1111if_f ; +LOCAL IUH L23_1110w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1110w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1110w_d = (IHPE)L23_1110w_d ; +LOCAL IUH L23_1105if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1105if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1105if_d = (IHPE)L23_1105if_d ; +GLOBAL IUH S_3031_Chain4ByteMove_00000002_00000009_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3031_Chain4ByteMove_00000002_00000009_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3031_Chain4ByteMove_00000002_00000009_00000001 = (IHPE)S_3031_Chain4ByteMove_00000002_00000009_00000001 ; +LOCAL IUH L13_3011if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3011if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3011if_f = (IHPE)L13_3011if_f ; +LOCAL IUH L22_273if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_273if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_273if_f = (IHPE)L22_273if_f ; +LOCAL IUH L22_274if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_274if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_274if_d = (IHPE)L22_274if_d ; +GLOBAL IUH S_3032_CopyByte4PlaneChain4_00000002_00000009_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3032_CopyByte4PlaneChain4_00000002_00000009_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3032_CopyByte4PlaneChain4_00000002_00000009_00000000_00000001 = (IHPE)S_3032_CopyByte4PlaneChain4_00000002_00000009_00000000_00000001 ; +LOCAL IUH L13_3012if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3012if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3012if_f = (IHPE)L13_3012if_f ; +LOCAL IUH L23_1114w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1114w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1114w_t = (IHPE)L23_1114w_t ; +LOCAL IUH L23_1115w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1115w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1115w_d = (IHPE)L23_1115w_d ; +LOCAL IUH L23_1112if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1112if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1112if_f = (IHPE)L23_1112if_f ; +LOCAL IUH L23_1116w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1116w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1116w_t = (IHPE)L23_1116w_t ; +LOCAL IUH L23_1117w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1117w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1117w_d = (IHPE)L23_1117w_d ; +LOCAL IUH L23_1113if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1113if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1113if_d = (IHPE)L23_1113if_d ; +GLOBAL IUH S_3033_Chain4ByteMove_00000002_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3033_Chain4ByteMove_00000002_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3033_Chain4ByteMove_00000002_0000000e_00000001 = (IHPE)S_3033_Chain4ByteMove_00000002_0000000e_00000001 ; +LOCAL IUH L13_3013if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3013if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3013if_f = (IHPE)L13_3013if_f ; +LOCAL IUH L22_275if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_275if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_275if_f = (IHPE)L22_275if_f ; +LOCAL IUH L22_276if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_276if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_276if_d = (IHPE)L22_276if_d ; +GLOBAL IUH S_3034_CopyBytePlnByPlnChain4_00000002_0000000e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3034_CopyBytePlnByPlnChain4_00000002_0000000e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3034_CopyBytePlnByPlnChain4_00000002_0000000e_00000000_00000001 = (IHPE)S_3034_CopyBytePlnByPlnChain4_00000002_0000000e_00000000_00000001 ; +LOCAL IUH L13_3014if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3014if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3014if_f = (IHPE)L13_3014if_f ; +LOCAL IUH L23_1120w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1120w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1120w_t = (IHPE)L23_1120w_t ; +LOCAL IUH L23_1122if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1122if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1122if_f = (IHPE)L23_1122if_f ; +LOCAL IUH L23_1121w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1121w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1121w_d = (IHPE)L23_1121w_d ; +LOCAL IUH L23_1118if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1118if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1118if_f = (IHPE)L23_1118if_f ; +LOCAL IUH L23_1123w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1123w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1123w_t = (IHPE)L23_1123w_t ; +LOCAL IUH L23_1125if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1125if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1125if_f = (IHPE)L23_1125if_f ; +LOCAL IUH L23_1124w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1124w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1124w_d = (IHPE)L23_1124w_d ; +LOCAL IUH L23_1119if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1119if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1119if_d = (IHPE)L23_1119if_d ; +GLOBAL IUH S_3035_Chain4ByteMove_00000002_0000000f_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3035_Chain4ByteMove_00000002_0000000f_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3035_Chain4ByteMove_00000002_0000000f_00000001 = (IHPE)S_3035_Chain4ByteMove_00000002_0000000f_00000001 ; +LOCAL IUH L13_3015if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3015if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3015if_f = (IHPE)L13_3015if_f ; +LOCAL IUH L22_277if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_277if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_277if_f = (IHPE)L22_277if_f ; +LOCAL IUH L22_278if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_278if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_278if_d = (IHPE)L22_278if_d ; +GLOBAL IUH S_3036_CopyByte4PlaneChain4_00000002_0000000f_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3036_CopyByte4PlaneChain4_00000002_0000000f_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3036_CopyByte4PlaneChain4_00000002_0000000f_00000000_00000001 = (IHPE)S_3036_CopyByte4PlaneChain4_00000002_0000000f_00000000_00000001 ; +LOCAL IUH L13_3016if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3016if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3016if_f = (IHPE)L13_3016if_f ; +LOCAL IUH L23_1128w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1128w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1128w_t = (IHPE)L23_1128w_t ; +LOCAL IUH L23_1129w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1129w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1129w_d = (IHPE)L23_1129w_d ; +LOCAL IUH L23_1126if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1126if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1126if_f = (IHPE)L23_1126if_f ; +LOCAL IUH L23_1130w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1130w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1130w_t = (IHPE)L23_1130w_t ; +LOCAL IUH L23_1131w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1131w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1131w_d = (IHPE)L23_1131w_d ; +LOCAL IUH L23_1127if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1127if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1127if_d = (IHPE)L23_1127if_d ; +GLOBAL IUH S_3037_Chain4WordMove_00000002_00000008_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3037_Chain4WordMove_00000002_00000008_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3037_Chain4WordMove_00000002_00000008_00000001 = (IHPE)S_3037_Chain4WordMove_00000002_00000008_00000001 ; +LOCAL IUH L13_3017if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3017if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3017if_f = (IHPE)L13_3017if_f ; +LOCAL IUH L22_279if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_279if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_279if_f = (IHPE)L22_279if_f ; +LOCAL IUH L22_280if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_280if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_280if_d = (IHPE)L22_280if_d ; +GLOBAL IUH S_3038_CopyWordPlnByPlnChain4_00000002_00000008_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3038_CopyWordPlnByPlnChain4_00000002_00000008_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3038_CopyWordPlnByPlnChain4_00000002_00000008_00000000_00000001 = (IHPE)S_3038_CopyWordPlnByPlnChain4_00000002_00000008_00000000_00000001 ; +LOCAL IUH L13_3018if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3018if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3018if_f = (IHPE)L13_3018if_f ; +GLOBAL IUH S_3039_Chain4WordMove_00000002_00000009_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3039_Chain4WordMove_00000002_00000009_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3039_Chain4WordMove_00000002_00000009_00000001 = (IHPE)S_3039_Chain4WordMove_00000002_00000009_00000001 ; +LOCAL IUH L13_3019if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3019if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3019if_f = (IHPE)L13_3019if_f ; +LOCAL IUH L22_281if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_281if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_281if_f = (IHPE)L22_281if_f ; +LOCAL IUH L22_282if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_282if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_282if_d = (IHPE)L22_282if_d ; +GLOBAL IUH S_3040_CopyWord4PlaneChain4_00000002_00000009_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3040_CopyWord4PlaneChain4_00000002_00000009_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3040_CopyWord4PlaneChain4_00000002_00000009_00000000_00000001 = (IHPE)S_3040_CopyWord4PlaneChain4_00000002_00000009_00000000_00000001 ; +LOCAL IUH L13_3020if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3020if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3020if_f = (IHPE)L13_3020if_f ; +LOCAL IUH L23_1134w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1134w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1134w_t = (IHPE)L23_1134w_t ; +LOCAL IUH L23_1135w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1135w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1135w_d = (IHPE)L23_1135w_d ; +LOCAL IUH L23_1132if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1132if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1132if_f = (IHPE)L23_1132if_f ; +LOCAL IUH L23_1136w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1136w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1136w_t = (IHPE)L23_1136w_t ; +LOCAL IUH L23_1137w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1137w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1137w_d = (IHPE)L23_1137w_d ; +LOCAL IUH L23_1133if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1133if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1133if_d = (IHPE)L23_1133if_d ; +GLOBAL IUH S_3041_Chain4WordMove_00000002_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3041_Chain4WordMove_00000002_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3041_Chain4WordMove_00000002_0000000e_00000001 = (IHPE)S_3041_Chain4WordMove_00000002_0000000e_00000001 ; +LOCAL IUH L13_3021if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3021if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3021if_f = (IHPE)L13_3021if_f ; +LOCAL IUH L22_283if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_283if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_283if_f = (IHPE)L22_283if_f ; +LOCAL IUH L22_284if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_284if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_284if_d = (IHPE)L22_284if_d ; +GLOBAL IUH S_3042_CopyWordPlnByPlnChain4_00000002_0000000e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3042_CopyWordPlnByPlnChain4_00000002_0000000e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3042_CopyWordPlnByPlnChain4_00000002_0000000e_00000000_00000001 = (IHPE)S_3042_CopyWordPlnByPlnChain4_00000002_0000000e_00000000_00000001 ; +LOCAL IUH L13_3022if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3022if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3022if_f = (IHPE)L13_3022if_f ; +GLOBAL IUH S_3043_Chain4WordMove_00000002_0000000f_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3043_Chain4WordMove_00000002_0000000f_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3043_Chain4WordMove_00000002_0000000f_00000001 = (IHPE)S_3043_Chain4WordMove_00000002_0000000f_00000001 ; +LOCAL IUH L13_3023if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3023if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3023if_f = (IHPE)L13_3023if_f ; +LOCAL IUH L22_285if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_285if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_285if_f = (IHPE)L22_285if_f ; +LOCAL IUH L22_286if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_286if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_286if_d = (IHPE)L22_286if_d ; +GLOBAL IUH S_3044_CopyWord4PlaneChain4_00000002_0000000f_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3044_CopyWord4PlaneChain4_00000002_0000000f_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3044_CopyWord4PlaneChain4_00000002_0000000f_00000000_00000001 = (IHPE)S_3044_CopyWord4PlaneChain4_00000002_0000000f_00000000_00000001 ; +LOCAL IUH L13_3024if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3024if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3024if_f = (IHPE)L13_3024if_f ; +LOCAL IUH L23_1140w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1140w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1140w_t = (IHPE)L23_1140w_t ; +LOCAL IUH L23_1141w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1141w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1141w_d = (IHPE)L23_1141w_d ; +LOCAL IUH L23_1138if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1138if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1138if_f = (IHPE)L23_1138if_f ; +LOCAL IUH L23_1142w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1142w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1142w_t = (IHPE)L23_1142w_t ; +LOCAL IUH L23_1143w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1143w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1143w_d = (IHPE)L23_1143w_d ; +LOCAL IUH L23_1139if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1139if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1139if_d = (IHPE)L23_1139if_d ; +GLOBAL IUH S_3045_Chain4DwordMove_00000002_00000008_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3045_Chain4DwordMove_00000002_00000008_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3045_Chain4DwordMove_00000002_00000008_00000001 = (IHPE)S_3045_Chain4DwordMove_00000002_00000008_00000001 ; +LOCAL IUH L13_3025if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3025if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3025if_f = (IHPE)L13_3025if_f ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3014_Chain4DwordMove_00000000_00000009_00000001_id : + S_3014_Chain4DwordMove_00000000_00000009_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3014) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2994if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2994if_f_id : + L13_2994if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2991_Chain4WordMove_00000000_00000009_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2991_Chain4WordMove_00000000_00000009_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3015_Chain4DwordMove_00000000_0000000e_00000001_id : + S_3015_Chain4DwordMove_00000000_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3015) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2995if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2995if_f_id : + L13_2995if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2993_Chain4WordMove_00000000_0000000e_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2993_Chain4WordMove_00000000_0000000e_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3016_Chain4DwordMove_00000000_0000000f_00000001_id : + S_3016_Chain4DwordMove_00000000_0000000f_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3016) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2996if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2996if_f_id : + L13_2996if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2995_Chain4WordMove_00000000_0000000f_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2995_Chain4WordMove_00000000_0000000f_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3017_Chain4DwordMove_00000000_00000010_00000001_id : + S_3017_Chain4DwordMove_00000000_00000010_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3017) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2997if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2997if_f_id : + L13_2997if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2997_Chain4WordMove_00000000_00000010_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2997_Chain4WordMove_00000000_00000010_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3018_Chain4DwordMove_00000000_00000011_00000001_id : + S_3018_Chain4DwordMove_00000000_00000011_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3018) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2998if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2998if_f_id : + L13_2998if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2999_Chain4WordMove_00000000_00000011_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2999_Chain4WordMove_00000000_00000011_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3019_Chain4DwordMove_00000000_00000016_00000001_id : + S_3019_Chain4DwordMove_00000000_00000016_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3019) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_2999if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_2999if_f_id : + L13_2999if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3001_Chain4WordMove_00000000_00000016_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3001_Chain4WordMove_00000000_00000016_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3020_Chain4DwordMove_00000000_00000017_00000001_id : + S_3020_Chain4DwordMove_00000000_00000017_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3020) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3000if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3000if_f_id : + L13_3000if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3003_Chain4WordMove_00000000_00000017_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3003_Chain4WordMove_00000000_00000017_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3021_Chain4DwordMove_00000000_00000018_00000001_id : + S_3021_Chain4DwordMove_00000000_00000018_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3021) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3001if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3001if_f_id : + L13_3001if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3005_Chain4WordMove_00000000_00000018_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3005_Chain4WordMove_00000000_00000018_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3022_Chain4DwordMove_00000000_00000019_00000001_id : + S_3022_Chain4DwordMove_00000000_00000019_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3022) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3002if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3002if_f_id : + L13_3002if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3007_Chain4WordMove_00000000_00000019_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3007_Chain4WordMove_00000000_00000019_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3023_Chain4DwordMove_00000000_0000001e_00000001_id : + S_3023_Chain4DwordMove_00000000_0000001e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3023) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3003if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3003if_f_id : + L13_3003if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3009_Chain4WordMove_00000000_0000001e_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3009_Chain4WordMove_00000000_0000001e_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3024_Chain4DwordMove_00000000_0000001f_00000001_id : + S_3024_Chain4DwordMove_00000000_0000001f_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3024) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3004if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3004if_f_id : + L13_3004if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3011_Chain4WordMove_00000000_0000001f_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3011_Chain4WordMove_00000000_0000001f_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3025_Chain4ByteMove_00000001_00000000_00000001_id : + S_3025_Chain4ByteMove_00000001_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3025) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3005if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3005if_f_id : + L13_3005if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_263if_f; + *((IUH *)(r1+0)) = (IS32)(16686) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r3) + REGBYTE) = (IS32)(-1) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2868_Chain4ByteFill_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2868_Chain4ByteFill_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16687) ; + { extern IUH L22_264if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_264if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_263if_f_id : + L22_263if_f: ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r3)) = *((IUH *)&(r20)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3026_CopyBytePlnByPlnChain4_00000001_00000000_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3026_CopyBytePlnByPlnChain4_00000001_00000000_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + case L22_264if_d_id : + L22_264if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_3026_CopyBytePlnByPlnChain4_00000001_00000000_00000000_00000001_id : + S_3026_CopyBytePlnByPlnChain4_00000001_00000000_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3026) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3006if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3006if_f_id : + L13_3006if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_1096if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1099w_d; + case L23_1098w_t_id : + L23_1098w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_1100if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_1100if_f_id : + L23_1100if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1098w_t; + case L23_1099w_d_id : + L23_1099w_d: ; + { extern IUH L23_1097if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_1097if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_1096if_f_id : + L23_1096if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1102w_d; + case L23_1101w_t_id : + L23_1101w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_1103if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_1103if_f_id : + L23_1103if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1101w_t; + case L23_1102w_d_id : + L23_1102w_d: ; + case L23_1097if_d_id : + L23_1097if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3027_Chain4WordMove_00000001_00000000_00000001_id : + S_3027_Chain4WordMove_00000001_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(3027) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3007if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3007if_f_id : + L13_3007if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L22_265if_f; + *((IUH *)(r1+0)) = (IS32)(16680) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IU16 *)&(r3) + REGWORD ) = (IS32)(-1) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2872_Chain4WordFill_00000001_00000000() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2872_Chain4WordFill_00000001_00000000(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16681) ; + { extern IUH L22_266if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_266if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_265if_f_id : + L22_265if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L22_267if_f; + *((IUH *)(r1+0)) = (IS32)(16404) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r2)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) + *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2216_CopyDirWord1Plane_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2216_CopyDirWord1Plane_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16405) ; + case L22_267if_f_id : + L22_267if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L22_268if_f; + *((IUH *)(r1+0)) = (IS32)(16404) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r2)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r3)) = *((IUH *)&(r20)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2216_CopyDirWord1Plane_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2216_CopyDirWord1Plane_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16405) ; + case L22_268if_f_id : + L22_268if_f: ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L22_269if_f; + *((IUH *)(r1+0)) = (IS32)(16404) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r2)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2216_CopyDirWord1Plane_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2216_CopyDirWord1Plane_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16405) ; + case L22_269if_f_id : + L22_269if_f: ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IUH *)&(r22)) = (IS32)(3) ; + if(*((IU32 *)&(r22) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + if ((*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & (1 << *((IU32 *)&(r22) + REGLONG))) == 0) goto L22_270if_f; + *((IUH *)(r1+0)) = (IS32)(16404) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) + *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r2)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) + *((IUH *)&(r20)) ; + *((IUH *)&(r3)) = *((IUH *)&(r20)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_2216_CopyDirWord1Plane_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_2216_CopyDirWord1Plane_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004257), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16405) ; + case L22_270if_f_id : + L22_270if_f: ; + case L22_266if_d_id : + L22_266if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3028_Chain4DwordMove_00000001_00000000_00000001_id : + S_3028_Chain4DwordMove_00000001_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3028) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3008if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3008if_f_id : + L13_3008if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3027_Chain4WordMove_00000001_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3027_Chain4WordMove_00000001_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3029_Chain4ByteMove_00000002_00000008_00000001_id : + S_3029_Chain4ByteMove_00000002_00000008_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3029) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3009if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3009if_f_id : + L13_3009if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_271if_f; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3030_CopyBytePlnByPlnChain4_00000002_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3030_CopyBytePlnByPlnChain4_00000002_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + { extern IUH L22_272if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_272if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_271if_f_id : + L22_271if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3030_CopyBytePlnByPlnChain4_00000002_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3030_CopyBytePlnByPlnChain4_00000002_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + case L22_272if_d_id : + L22_272if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_3030_CopyBytePlnByPlnChain4_00000002_00000008_00000000_00000001_id : + S_3030_CopyBytePlnByPlnChain4_00000002_00000008_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3030) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3010if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3010if_f_id : + L13_3010if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_1104if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1107w_d; + case L23_1106w_t_id : + L23_1106w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_1108if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_1108if_f_id : + L23_1108if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_1106w_t; + case L23_1107w_d_id : + L23_1107w_d: ; + { extern IUH L23_1105if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_1105if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_1104if_f_id : + L23_1104if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_1110w_d; + case L23_1109w_t_id : + L23_1109w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_1111if_f; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_1111if_f_id : + L23_1111if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1109w_t; + case L23_1110w_d_id : + L23_1110w_d: ; + case L23_1105if_d_id : + L23_1105if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3031_Chain4ByteMove_00000002_00000009_00000001_id : + S_3031_Chain4ByteMove_00000002_00000009_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3031) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3011if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3011if_f_id : + L13_3011if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_273if_f; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3032_CopyByte4PlaneChain4_00000002_00000009_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3032_CopyByte4PlaneChain4_00000002_00000009_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + { extern IUH L22_274if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_274if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_273if_f_id : + L22_273if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3032_CopyByte4PlaneChain4_00000002_00000009_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3032_CopyByte4PlaneChain4_00000002_00000009_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + case L22_274if_d_id : + L22_274if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_3032_CopyByte4PlaneChain4_00000002_00000009_00000000_00000001_id : + S_3032_CopyByte4PlaneChain4_00000002_00000009_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3032) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3012if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3012if_f_id : + L13_3012if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_1112if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_1115w_d; + case L23_1114w_t_id : + L23_1114w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_1114w_t; + case L23_1115w_d_id : + L23_1115w_d: ; + { extern IUH L23_1113if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_1113if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_1112if_f_id : + L23_1112if_f: ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1117w_d; + case L23_1116w_t_id : + L23_1116w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1116w_t; + case L23_1117w_d_id : + L23_1117w_d: ; + case L23_1113if_d_id : + L23_1113if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3033_Chain4ByteMove_00000002_0000000e_00000001_id : + S_3033_Chain4ByteMove_00000002_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3033) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3013if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3013if_f_id : + L13_3013if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_275if_f; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3034_CopyBytePlnByPlnChain4_00000002_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3034_CopyBytePlnByPlnChain4_00000002_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + { extern IUH L22_276if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_276if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_275if_f_id : + L22_275if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3034_CopyBytePlnByPlnChain4_00000002_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3034_CopyBytePlnByPlnChain4_00000002_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + case L22_276if_d_id : + L22_276if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_3034_CopyBytePlnByPlnChain4_00000002_0000000e_00000000_00000001_id : + S_3034_CopyBytePlnByPlnChain4_00000002_0000000e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3034) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3014if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3014if_f_id : + L13_3014if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_1118if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1121w_d; + case L23_1120w_t_id : + L23_1120w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_1122if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_1122if_f_id : + L23_1122if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1120w_t; + case L23_1121w_d_id : + L23_1121w_d: ; + { extern IUH L23_1119if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_1119if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_1118if_f_id : + L23_1118if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1124w_d; + case L23_1123w_t_id : + L23_1123w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_1125if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r24)) = (IS32)(1308) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)&(r23) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r24))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_1125if_f_id : + L23_1125if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1123w_t; + case L23_1124w_d_id : + L23_1124w_d: ; + case L23_1119if_d_id : + L23_1119if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3035_Chain4ByteMove_00000002_0000000f_00000001_id : + S_3035_Chain4ByteMove_00000002_0000000f_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3035) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3015if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3015if_f_id : + L13_3015if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_277if_f; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3036_CopyByte4PlaneChain4_00000002_0000000f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3036_CopyByte4PlaneChain4_00000002_0000000f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + { extern IUH L22_278if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_278if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_277if_f_id : + L22_277if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3036_CopyByte4PlaneChain4_00000002_0000000f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3036_CopyByte4PlaneChain4_00000002_0000000f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + case L22_278if_d_id : + L22_278if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_3036_CopyByte4PlaneChain4_00000002_0000000f_00000000_00000001_id : + S_3036_CopyByte4PlaneChain4_00000002_0000000f_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3036) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3016if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3016if_f_id : + L13_3016if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_1126if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_1129w_d; + case L23_1128w_t_id : + L23_1128w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1308) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r21)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1128w_t; + case L23_1129w_d_id : + L23_1129w_d: ; + { extern IUH L23_1127if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_1127if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_1126if_f_id : + L23_1126if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_1131w_d; + case L23_1130w_t_id : + L23_1130w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r24)) = (IS32)(1308) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)&(r23) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r24))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1130w_t; + case L23_1131w_d_id : + L23_1131w_d: ; + case L23_1127if_d_id : + L23_1127if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3037_Chain4WordMove_00000002_00000008_00000001_id : + S_3037_Chain4WordMove_00000002_00000008_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3037) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3017if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3017if_f_id : + L13_3017if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_279if_f; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3038_CopyWordPlnByPlnChain4_00000002_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3038_CopyWordPlnByPlnChain4_00000002_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + { extern IUH L22_280if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_280if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_279if_f_id : + L22_279if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3038_CopyWordPlnByPlnChain4_00000002_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3038_CopyWordPlnByPlnChain4_00000002_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + case L22_280if_d_id : + L22_280if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_3038_CopyWordPlnByPlnChain4_00000002_00000008_00000000_00000001_id : + S_3038_CopyWordPlnByPlnChain4_00000002_00000008_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3038) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3018if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3018if_f_id : + L13_3018if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3030_CopyBytePlnByPlnChain4_00000002_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3030_CopyBytePlnByPlnChain4_00000002_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3039_Chain4WordMove_00000002_00000009_00000001_id : + S_3039_Chain4WordMove_00000002_00000009_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3039) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3019if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3019if_f_id : + L13_3019if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_281if_f; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3040_CopyWord4PlaneChain4_00000002_00000009_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3040_CopyWord4PlaneChain4_00000002_00000009_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + { extern IUH L22_282if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_282if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_281if_f_id : + L22_281if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3040_CopyWord4PlaneChain4_00000002_00000009_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3040_CopyWord4PlaneChain4_00000002_00000009_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + case L22_282if_d_id : + L22_282if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_3040_CopyWord4PlaneChain4_00000002_00000009_00000000_00000001_id : + S_3040_CopyWord4PlaneChain4_00000002_00000009_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(3040) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3020if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3020if_f_id : + L13_3020if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_1132if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1135w_d; + case L23_1134w_t_id : + L23_1134w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) )); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_1134w_t; + case L23_1135w_d_id : + L23_1135w_d: ; + { extern IUH L23_1133if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_1133if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_1132if_f_id : + L23_1132if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1137w_d; + case L23_1136w_t_id : + L23_1136w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) )); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) | *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1136w_t; + case L23_1137w_d_id : + L23_1137w_d: ; + case L23_1133if_d_id : + L23_1133if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3041_Chain4WordMove_00000002_0000000e_00000001_id : + S_3041_Chain4WordMove_00000002_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3041) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3021if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3021if_f_id : + L13_3021if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_283if_f; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3042_CopyWordPlnByPlnChain4_00000002_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3042_CopyWordPlnByPlnChain4_00000002_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + { extern IUH L22_284if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_284if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_283if_f_id : + L22_283if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3042_CopyWordPlnByPlnChain4_00000002_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3042_CopyWordPlnByPlnChain4_00000002_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + case L22_284if_d_id : + L22_284if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_3042_CopyWordPlnByPlnChain4_00000002_0000000e_00000000_00000001_id : + S_3042_CopyWordPlnByPlnChain4_00000002_0000000e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3042) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3022if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3022if_f_id : + L13_3022if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3034_CopyBytePlnByPlnChain4_00000002_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3034_CopyBytePlnByPlnChain4_00000002_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3043_Chain4WordMove_00000002_0000000f_00000001_id : + S_3043_Chain4WordMove_00000002_0000000f_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3043) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3023if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3023if_f_id : + L13_3023if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_285if_f; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3044_CopyWord4PlaneChain4_00000002_0000000f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3044_CopyWord4PlaneChain4_00000002_0000000f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + { extern IUH L22_286if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_286if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_285if_f_id : + L22_285if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3044_CopyWord4PlaneChain4_00000002_0000000f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3044_CopyWord4PlaneChain4_00000002_0000000f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + case L22_286if_d_id : + L22_286if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_3044_CopyWord4PlaneChain4_00000002_0000000f_00000000_00000001_id : + S_3044_CopyWord4PlaneChain4_00000002_0000000f_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(3044) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3024if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3024if_f_id : + L13_3024if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_1138if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1141w_d; + case L23_1140w_t_id : + L23_1140w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IUH *)&(r23)) = (IS32)(1312) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_1140w_t; + case L23_1141w_d_id : + L23_1141w_d: ; + { extern IUH L23_1139if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_1139if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_1138if_f_id : + L23_1138if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1143w_d; + case L23_1142w_t_id : + L23_1142w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r20) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r21) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r20) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r21)) = *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r24)) = (IS32)(1308) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)&(r23) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r24))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(0) ; + *((IUH *)&(r22)) = (IS32)(4) ; + if (*((IU32 *)&(r22) + REGLONG) + *((IU32 *)&(r21) + REGLONG) > 32 || *((IU32 *)&(r22) + REGLONG) == 0) + CrulesRuntimeError("Bad long bitfield"); + else + *((IU32 *)&(r20) + REGLONG) = (IU32)((*((IU32 *)(LocalIUH+8) + REGLONG) << (32-(*((IU32 *)&(r21) + REGLONG) + *((IU32 *)&(r22) + REGLONG))))) >> (32 - *((IU32 *)&(r22) + REGLONG)); + *((IUH *)&(r20)) = *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(1328) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(*((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(16361) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(1312) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r21)) = (IS32)(1304) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r24)) = (IS32)(1308) ; + *((IU32 *)&(r23) + REGLONG) = *((IU32 *)&(r23) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r24))) ) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16362) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1142w_t; + case L23_1143w_d_id : + L23_1143w_d: ; + case L23_1139if_d_id : + L23_1139if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3045_Chain4DwordMove_00000002_00000008_00000001_id : + S_3045_Chain4DwordMove_00000002_00000008_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3045) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3025if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3025if_f_id : + L13_3025if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3037_Chain4WordMove_00000002_00000008_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3037_Chain4WordMove_00000002_00000008_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sevid030.c b/private/mvdm/softpc.new/base/cvidc/sevid030.c new file mode 100644 index 000000000..c41864061 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sevid030.c @@ -0,0 +1,2695 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_3046_Chain4DwordMove_00000002_00000009_00000001_id, +L13_3026if_f_id, +S_3047_Chain4DwordMove_00000002_0000000e_00000001_id, +L13_3027if_f_id, +S_3048_Chain4DwordMove_00000002_0000000f_00000001_id, +L13_3028if_f_id, +S_3049_Chain4ByteMove_00000003_00000008_00000001_id, +L13_3029if_f_id, +L22_287if_f_id, +L22_288if_d_id, +S_3050_CopyBytePlnByPlnChain4_00000003_00000008_00000000_00000001_id, +L13_3030if_f_id, +L23_1146w_t_id, +L23_1148if_f_id, +L23_1147w_d_id, +L23_1144if_f_id, +L23_1149w_t_id, +L23_1151if_f_id, +L23_1150w_d_id, +L23_1145if_d_id, +S_3051_Chain4ByteMove_00000003_00000009_00000001_id, +L13_3031if_f_id, +L22_289if_f_id, +L22_290if_d_id, +S_3052_CopyByte4PlaneChain4_00000003_00000009_00000000_00000001_id, +L13_3032if_f_id, +L23_1154w_t_id, +L23_1155w_d_id, +L23_1152if_f_id, +L23_1156w_t_id, +L23_1157w_d_id, +L23_1153if_d_id, +S_3053_Chain4ByteMove_00000003_0000000e_00000001_id, +L13_3033if_f_id, +L22_291if_f_id, +L22_292if_d_id, +S_3054_CopyBytePlnByPlnChain4_00000003_0000000e_00000000_00000001_id, +L13_3034if_f_id, +L23_1160w_t_id, +L23_1162if_f_id, +L23_1161w_d_id, +L23_1158if_f_id, +L23_1163w_t_id, +L23_1165if_f_id, +L23_1164w_d_id, +L23_1159if_d_id, +S_3055_Chain4ByteMove_00000003_0000000f_00000001_id, +L13_3035if_f_id, +L22_293if_f_id, +L22_294if_d_id, +S_3056_CopyByte4PlaneChain4_00000003_0000000f_00000000_00000001_id, +L13_3036if_f_id, +L23_1168w_t_id, +L23_1169w_d_id, +L23_1166if_f_id, +L23_1170w_t_id, +L23_1171w_d_id, +L23_1167if_d_id, +S_3057_Chain4WordMove_00000003_00000008_00000001_id, +L13_3037if_f_id, +L22_295if_f_id, +L22_296if_d_id, +S_3058_CopyWordPlnByPlnChain4_00000003_00000008_00000000_00000001_id, +L13_3038if_f_id, +S_3059_Chain4WordMove_00000003_00000009_00000001_id, +L13_3039if_f_id, +L22_297if_f_id, +L22_298if_d_id, +S_3060_CopyWord4PlaneChain4_00000003_00000009_00000000_00000001_id, +L13_3040if_f_id, +L23_1174w_t_id, +L23_1175w_d_id, +L23_1172if_f_id, +L23_1176w_t_id, +L23_1177w_d_id, +L23_1173if_d_id, +S_3061_Chain4WordMove_00000003_0000000e_00000001_id, +L13_3041if_f_id, +L22_299if_f_id, +L22_300if_d_id, +S_3062_CopyWordPlnByPlnChain4_00000003_0000000e_00000000_00000001_id, +L13_3042if_f_id, +S_3063_Chain4WordMove_00000003_0000000f_00000001_id, +L13_3043if_f_id, +L22_301if_f_id, +L22_302if_d_id, +S_3064_CopyWord4PlaneChain4_00000003_0000000f_00000000_00000001_id, +L13_3044if_f_id, +L23_1180w_t_id, +L23_1181w_d_id, +L23_1178if_f_id, +L23_1182w_t_id, +L23_1183w_d_id, +L23_1179if_d_id, +S_3065_Chain4DwordMove_00000003_00000008_00000001_id, +L13_3045if_f_id, +S_3066_Chain4DwordMove_00000003_00000009_00000001_id, +L13_3046if_f_id, +S_3067_Chain4DwordMove_00000003_0000000e_00000001_id, +L13_3047if_f_id, +S_3068_Chain4DwordMove_00000003_0000000f_00000001_id, +L13_3048if_f_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_3046_Chain4DwordMove_00000002_00000009_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3046_Chain4DwordMove_00000002_00000009_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3046_Chain4DwordMove_00000002_00000009_00000001 = (IHPE)S_3046_Chain4DwordMove_00000002_00000009_00000001 ; +LOCAL IUH L13_3026if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3026if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3026if_f = (IHPE)L13_3026if_f ; +GLOBAL IUH S_3047_Chain4DwordMove_00000002_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3047_Chain4DwordMove_00000002_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3047_Chain4DwordMove_00000002_0000000e_00000001 = (IHPE)S_3047_Chain4DwordMove_00000002_0000000e_00000001 ; +LOCAL IUH L13_3027if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3027if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3027if_f = (IHPE)L13_3027if_f ; +GLOBAL IUH S_3048_Chain4DwordMove_00000002_0000000f_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3048_Chain4DwordMove_00000002_0000000f_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3048_Chain4DwordMove_00000002_0000000f_00000001 = (IHPE)S_3048_Chain4DwordMove_00000002_0000000f_00000001 ; +LOCAL IUH L13_3028if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3028if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3028if_f = (IHPE)L13_3028if_f ; +GLOBAL IUH S_3049_Chain4ByteMove_00000003_00000008_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3049_Chain4ByteMove_00000003_00000008_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3049_Chain4ByteMove_00000003_00000008_00000001 = (IHPE)S_3049_Chain4ByteMove_00000003_00000008_00000001 ; +LOCAL IUH L13_3029if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3029if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3029if_f = (IHPE)L13_3029if_f ; +LOCAL IUH L22_287if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_287if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_287if_f = (IHPE)L22_287if_f ; +LOCAL IUH L22_288if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_288if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_288if_d = (IHPE)L22_288if_d ; +GLOBAL IUH S_3050_CopyBytePlnByPlnChain4_00000003_00000008_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3050_CopyBytePlnByPlnChain4_00000003_00000008_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3050_CopyBytePlnByPlnChain4_00000003_00000008_00000000_00000001 = (IHPE)S_3050_CopyBytePlnByPlnChain4_00000003_00000008_00000000_00000001 ; +LOCAL IUH L13_3030if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3030if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3030if_f = (IHPE)L13_3030if_f ; +LOCAL IUH L23_1146w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1146w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1146w_t = (IHPE)L23_1146w_t ; +LOCAL IUH L23_1148if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1148if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1148if_f = (IHPE)L23_1148if_f ; +LOCAL IUH L23_1147w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1147w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1147w_d = (IHPE)L23_1147w_d ; +LOCAL IUH L23_1144if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1144if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1144if_f = (IHPE)L23_1144if_f ; +LOCAL IUH L23_1149w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1149w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1149w_t = (IHPE)L23_1149w_t ; +LOCAL IUH L23_1151if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1151if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1151if_f = (IHPE)L23_1151if_f ; +LOCAL IUH L23_1150w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1150w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1150w_d = (IHPE)L23_1150w_d ; +LOCAL IUH L23_1145if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1145if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1145if_d = (IHPE)L23_1145if_d ; +GLOBAL IUH S_3051_Chain4ByteMove_00000003_00000009_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3051_Chain4ByteMove_00000003_00000009_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3051_Chain4ByteMove_00000003_00000009_00000001 = (IHPE)S_3051_Chain4ByteMove_00000003_00000009_00000001 ; +LOCAL IUH L13_3031if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3031if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3031if_f = (IHPE)L13_3031if_f ; +LOCAL IUH L22_289if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_289if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_289if_f = (IHPE)L22_289if_f ; +LOCAL IUH L22_290if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_290if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_290if_d = (IHPE)L22_290if_d ; +GLOBAL IUH S_3052_CopyByte4PlaneChain4_00000003_00000009_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3052_CopyByte4PlaneChain4_00000003_00000009_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3052_CopyByte4PlaneChain4_00000003_00000009_00000000_00000001 = (IHPE)S_3052_CopyByte4PlaneChain4_00000003_00000009_00000000_00000001 ; +LOCAL IUH L13_3032if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3032if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3032if_f = (IHPE)L13_3032if_f ; +LOCAL IUH L23_1154w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1154w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1154w_t = (IHPE)L23_1154w_t ; +LOCAL IUH L23_1155w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1155w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1155w_d = (IHPE)L23_1155w_d ; +LOCAL IUH L23_1152if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1152if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1152if_f = (IHPE)L23_1152if_f ; +LOCAL IUH L23_1156w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1156w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1156w_t = (IHPE)L23_1156w_t ; +LOCAL IUH L23_1157w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1157w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1157w_d = (IHPE)L23_1157w_d ; +LOCAL IUH L23_1153if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1153if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1153if_d = (IHPE)L23_1153if_d ; +GLOBAL IUH S_3053_Chain4ByteMove_00000003_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3053_Chain4ByteMove_00000003_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3053_Chain4ByteMove_00000003_0000000e_00000001 = (IHPE)S_3053_Chain4ByteMove_00000003_0000000e_00000001 ; +LOCAL IUH L13_3033if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3033if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3033if_f = (IHPE)L13_3033if_f ; +LOCAL IUH L22_291if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_291if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_291if_f = (IHPE)L22_291if_f ; +LOCAL IUH L22_292if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_292if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_292if_d = (IHPE)L22_292if_d ; +GLOBAL IUH S_3054_CopyBytePlnByPlnChain4_00000003_0000000e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3054_CopyBytePlnByPlnChain4_00000003_0000000e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3054_CopyBytePlnByPlnChain4_00000003_0000000e_00000000_00000001 = (IHPE)S_3054_CopyBytePlnByPlnChain4_00000003_0000000e_00000000_00000001 ; +LOCAL IUH L13_3034if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3034if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3034if_f = (IHPE)L13_3034if_f ; +LOCAL IUH L23_1160w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1160w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1160w_t = (IHPE)L23_1160w_t ; +LOCAL IUH L23_1162if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1162if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1162if_f = (IHPE)L23_1162if_f ; +LOCAL IUH L23_1161w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1161w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1161w_d = (IHPE)L23_1161w_d ; +LOCAL IUH L23_1158if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1158if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1158if_f = (IHPE)L23_1158if_f ; +LOCAL IUH L23_1163w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1163w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1163w_t = (IHPE)L23_1163w_t ; +LOCAL IUH L23_1165if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1165if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1165if_f = (IHPE)L23_1165if_f ; +LOCAL IUH L23_1164w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1164w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1164w_d = (IHPE)L23_1164w_d ; +LOCAL IUH L23_1159if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1159if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1159if_d = (IHPE)L23_1159if_d ; +GLOBAL IUH S_3055_Chain4ByteMove_00000003_0000000f_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3055_Chain4ByteMove_00000003_0000000f_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3055_Chain4ByteMove_00000003_0000000f_00000001 = (IHPE)S_3055_Chain4ByteMove_00000003_0000000f_00000001 ; +LOCAL IUH L13_3035if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3035if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3035if_f = (IHPE)L13_3035if_f ; +LOCAL IUH L22_293if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_293if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_293if_f = (IHPE)L22_293if_f ; +LOCAL IUH L22_294if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_294if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_294if_d = (IHPE)L22_294if_d ; +GLOBAL IUH S_3056_CopyByte4PlaneChain4_00000003_0000000f_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3056_CopyByte4PlaneChain4_00000003_0000000f_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3056_CopyByte4PlaneChain4_00000003_0000000f_00000000_00000001 = (IHPE)S_3056_CopyByte4PlaneChain4_00000003_0000000f_00000000_00000001 ; +LOCAL IUH L13_3036if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3036if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3036if_f = (IHPE)L13_3036if_f ; +LOCAL IUH L23_1168w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1168w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1168w_t = (IHPE)L23_1168w_t ; +LOCAL IUH L23_1169w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1169w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1169w_d = (IHPE)L23_1169w_d ; +LOCAL IUH L23_1166if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1166if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1166if_f = (IHPE)L23_1166if_f ; +LOCAL IUH L23_1170w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1170w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1170w_t = (IHPE)L23_1170w_t ; +LOCAL IUH L23_1171w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1171w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1171w_d = (IHPE)L23_1171w_d ; +LOCAL IUH L23_1167if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1167if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1167if_d = (IHPE)L23_1167if_d ; +GLOBAL IUH S_3057_Chain4WordMove_00000003_00000008_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3057_Chain4WordMove_00000003_00000008_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3057_Chain4WordMove_00000003_00000008_00000001 = (IHPE)S_3057_Chain4WordMove_00000003_00000008_00000001 ; +LOCAL IUH L13_3037if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3037if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3037if_f = (IHPE)L13_3037if_f ; +LOCAL IUH L22_295if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_295if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_295if_f = (IHPE)L22_295if_f ; +LOCAL IUH L22_296if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_296if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_296if_d = (IHPE)L22_296if_d ; +GLOBAL IUH S_3058_CopyWordPlnByPlnChain4_00000003_00000008_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3058_CopyWordPlnByPlnChain4_00000003_00000008_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3058_CopyWordPlnByPlnChain4_00000003_00000008_00000000_00000001 = (IHPE)S_3058_CopyWordPlnByPlnChain4_00000003_00000008_00000000_00000001 ; +LOCAL IUH L13_3038if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3038if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3038if_f = (IHPE)L13_3038if_f ; +GLOBAL IUH S_3059_Chain4WordMove_00000003_00000009_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3059_Chain4WordMove_00000003_00000009_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3059_Chain4WordMove_00000003_00000009_00000001 = (IHPE)S_3059_Chain4WordMove_00000003_00000009_00000001 ; +LOCAL IUH L13_3039if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3039if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3039if_f = (IHPE)L13_3039if_f ; +LOCAL IUH L22_297if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_297if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_297if_f = (IHPE)L22_297if_f ; +LOCAL IUH L22_298if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_298if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_298if_d = (IHPE)L22_298if_d ; +GLOBAL IUH S_3060_CopyWord4PlaneChain4_00000003_00000009_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3060_CopyWord4PlaneChain4_00000003_00000009_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3060_CopyWord4PlaneChain4_00000003_00000009_00000000_00000001 = (IHPE)S_3060_CopyWord4PlaneChain4_00000003_00000009_00000000_00000001 ; +LOCAL IUH L13_3040if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3040if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3040if_f = (IHPE)L13_3040if_f ; +LOCAL IUH L23_1174w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1174w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1174w_t = (IHPE)L23_1174w_t ; +LOCAL IUH L23_1175w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1175w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1175w_d = (IHPE)L23_1175w_d ; +LOCAL IUH L23_1172if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1172if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1172if_f = (IHPE)L23_1172if_f ; +LOCAL IUH L23_1176w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1176w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1176w_t = (IHPE)L23_1176w_t ; +LOCAL IUH L23_1177w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1177w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1177w_d = (IHPE)L23_1177w_d ; +LOCAL IUH L23_1173if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1173if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1173if_d = (IHPE)L23_1173if_d ; +GLOBAL IUH S_3061_Chain4WordMove_00000003_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3061_Chain4WordMove_00000003_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3061_Chain4WordMove_00000003_0000000e_00000001 = (IHPE)S_3061_Chain4WordMove_00000003_0000000e_00000001 ; +LOCAL IUH L13_3041if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3041if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3041if_f = (IHPE)L13_3041if_f ; +LOCAL IUH L22_299if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_299if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_299if_f = (IHPE)L22_299if_f ; +LOCAL IUH L22_300if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_300if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_300if_d = (IHPE)L22_300if_d ; +GLOBAL IUH S_3062_CopyWordPlnByPlnChain4_00000003_0000000e_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3062_CopyWordPlnByPlnChain4_00000003_0000000e_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3062_CopyWordPlnByPlnChain4_00000003_0000000e_00000000_00000001 = (IHPE)S_3062_CopyWordPlnByPlnChain4_00000003_0000000e_00000000_00000001 ; +LOCAL IUH L13_3042if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3042if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3042if_f = (IHPE)L13_3042if_f ; +GLOBAL IUH S_3063_Chain4WordMove_00000003_0000000f_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3063_Chain4WordMove_00000003_0000000f_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3063_Chain4WordMove_00000003_0000000f_00000001 = (IHPE)S_3063_Chain4WordMove_00000003_0000000f_00000001 ; +LOCAL IUH L13_3043if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3043if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3043if_f = (IHPE)L13_3043if_f ; +LOCAL IUH L22_301if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_301if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_301if_f = (IHPE)L22_301if_f ; +LOCAL IUH L22_302if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L22_302if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L22_302if_d = (IHPE)L22_302if_d ; +GLOBAL IUH S_3064_CopyWord4PlaneChain4_00000003_0000000f_00000000_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3064_CopyWord4PlaneChain4_00000003_0000000f_00000000_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3064_CopyWord4PlaneChain4_00000003_0000000f_00000000_00000001 = (IHPE)S_3064_CopyWord4PlaneChain4_00000003_0000000f_00000000_00000001 ; +LOCAL IUH L13_3044if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3044if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3044if_f = (IHPE)L13_3044if_f ; +LOCAL IUH L23_1180w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1180w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1180w_t = (IHPE)L23_1180w_t ; +LOCAL IUH L23_1181w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1181w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1181w_d = (IHPE)L23_1181w_d ; +LOCAL IUH L23_1178if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1178if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1178if_f = (IHPE)L23_1178if_f ; +LOCAL IUH L23_1182w_t IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1182w_t_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1182w_t = (IHPE)L23_1182w_t ; +LOCAL IUH L23_1183w_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1183w_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1183w_d = (IHPE)L23_1183w_d ; +LOCAL IUH L23_1179if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L23_1179if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L23_1179if_d = (IHPE)L23_1179if_d ; +GLOBAL IUH S_3065_Chain4DwordMove_00000003_00000008_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3065_Chain4DwordMove_00000003_00000008_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3065_Chain4DwordMove_00000003_00000008_00000001 = (IHPE)S_3065_Chain4DwordMove_00000003_00000008_00000001 ; +LOCAL IUH L13_3045if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3045if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3045if_f = (IHPE)L13_3045if_f ; +GLOBAL IUH S_3066_Chain4DwordMove_00000003_00000009_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3066_Chain4DwordMove_00000003_00000009_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3066_Chain4DwordMove_00000003_00000009_00000001 = (IHPE)S_3066_Chain4DwordMove_00000003_00000009_00000001 ; +LOCAL IUH L13_3046if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3046if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3046if_f = (IHPE)L13_3046if_f ; +GLOBAL IUH S_3067_Chain4DwordMove_00000003_0000000e_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3067_Chain4DwordMove_00000003_0000000e_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3067_Chain4DwordMove_00000003_0000000e_00000001 = (IHPE)S_3067_Chain4DwordMove_00000003_0000000e_00000001 ; +LOCAL IUH L13_3047if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3047if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3047if_f = (IHPE)L13_3047if_f ; +GLOBAL IUH S_3068_Chain4DwordMove_00000003_0000000f_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_3068_Chain4DwordMove_00000003_0000000f_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_3068_Chain4DwordMove_00000003_0000000f_00000001 = (IHPE)S_3068_Chain4DwordMove_00000003_0000000f_00000001 ; +LOCAL IUH L13_3048if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L13_3048if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L13_3048if_f = (IHPE)L13_3048if_f ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3046_Chain4DwordMove_00000002_00000009_00000001_id : + S_3046_Chain4DwordMove_00000002_00000009_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3046) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3026if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3026if_f_id : + L13_3026if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3039_Chain4WordMove_00000002_00000009_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3039_Chain4WordMove_00000002_00000009_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3047_Chain4DwordMove_00000002_0000000e_00000001_id : + S_3047_Chain4DwordMove_00000002_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3047) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3027if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3027if_f_id : + L13_3027if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3041_Chain4WordMove_00000002_0000000e_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3041_Chain4WordMove_00000002_0000000e_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3048_Chain4DwordMove_00000002_0000000f_00000001_id : + S_3048_Chain4DwordMove_00000002_0000000f_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3048) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3028if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3028if_f_id : + L13_3028if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3043_Chain4WordMove_00000002_0000000f_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3043_Chain4WordMove_00000002_0000000f_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3049_Chain4ByteMove_00000003_00000008_00000001_id : + S_3049_Chain4ByteMove_00000003_00000008_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3049) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3029if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3029if_f_id : + L13_3029if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_287if_f; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3050_CopyBytePlnByPlnChain4_00000003_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3050_CopyBytePlnByPlnChain4_00000003_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + { extern IUH L22_288if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_288if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_287if_f_id : + L22_287if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3050_CopyBytePlnByPlnChain4_00000003_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3050_CopyBytePlnByPlnChain4_00000003_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + case L22_288if_d_id : + L22_288if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_3050_CopyBytePlnByPlnChain4_00000003_00000008_00000000_00000001_id : + S_3050_CopyBytePlnByPlnChain4_00000003_00000008_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(3050) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3030if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3030if_f_id : + L13_3030if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_1144if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_1147w_d; + case L23_1146w_t_id : + L23_1146w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_1148if_f; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IU32 *)&(r20) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_1148if_f_id : + L23_1148if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_1146w_t; + case L23_1147w_d_id : + L23_1147w_d: ; + { extern IUH L23_1145if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_1145if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_1144if_f_id : + L23_1144if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_1150w_d; + case L23_1149w_t_id : + L23_1149w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_1151if_f; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_1151if_f_id : + L23_1151if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1149w_t; + case L23_1150w_d_id : + L23_1150w_d: ; + case L23_1145if_d_id : + L23_1145if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3051_Chain4ByteMove_00000003_00000009_00000001_id : + S_3051_Chain4ByteMove_00000003_00000009_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3051) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3031if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3031if_f_id : + L13_3031if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_289if_f; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3052_CopyByte4PlaneChain4_00000003_00000009_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3052_CopyByte4PlaneChain4_00000003_00000009_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + { extern IUH L22_290if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_290if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_289if_f_id : + L22_289if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3052_CopyByte4PlaneChain4_00000003_00000009_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3052_CopyByte4PlaneChain4_00000003_00000009_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + case L22_290if_d_id : + L22_290if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_3052_CopyByte4PlaneChain4_00000003_00000009_00000000_00000001_id : + S_3052_CopyByte4PlaneChain4_00000003_00000009_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(3052) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3032if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3032if_f_id : + L13_3032if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_1152if_f; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1155w_d; + case L23_1154w_t_id : + L23_1154w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_1154w_t; + case L23_1155w_d_id : + L23_1155w_d: ; + { extern IUH L23_1153if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_1153if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_1152if_f_id : + L23_1152if_f: ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1157w_d; + case L23_1156w_t_id : + L23_1156w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1156w_t; + case L23_1157w_d_id : + L23_1157w_d: ; + case L23_1153if_d_id : + L23_1153if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3053_Chain4ByteMove_00000003_0000000e_00000001_id : + S_3053_Chain4ByteMove_00000003_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3053) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3033if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3033if_f_id : + L13_3033if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_291if_f; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3054_CopyBytePlnByPlnChain4_00000003_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3054_CopyBytePlnByPlnChain4_00000003_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + { extern IUH L22_292if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_292if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_291if_f_id : + L22_291if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3054_CopyBytePlnByPlnChain4_00000003_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3054_CopyBytePlnByPlnChain4_00000003_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; + case L22_292if_d_id : + L22_292if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_3054_CopyBytePlnByPlnChain4_00000003_0000000e_00000000_00000001_id : + S_3054_CopyBytePlnByPlnChain4_00000003_0000000e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3054) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3034if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3034if_f_id : + L13_3034if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_1158if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1161w_d; + case L23_1160w_t_id : + L23_1160w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(3) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r20) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r21) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_1162if_f; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_1162if_f_id : + L23_1162if_f: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_1160w_t; + case L23_1161w_d_id : + L23_1161w_d: ; + { extern IUH L23_1159if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_1159if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_1158if_f_id : + L23_1158if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_1164w_d; + case L23_1163w_t_id : + L23_1163w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(3) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1) ; + if(*((IU32 *)&(r20) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r22) + REGLONG) << *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1320) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)&(r20) + REGLONG) == *((IU32 *)&(r22) + REGLONG)) goto L23_1165if_f; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IUH *)&(r22)) = (IS32)(1296) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)&(r23) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)((*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20)))) ) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + case L23_1165if_f_id : + L23_1165if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+7) + REGLONG) = *((IU32 *)(LocalIUH+7) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1163w_t; + case L23_1164w_d_id : + L23_1164w_d: ; + case L23_1159if_d_id : + L23_1159if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3055_Chain4ByteMove_00000003_0000000f_00000001_id : + S_3055_Chain4ByteMove_00000003_0000000f_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3055) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3035if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3035if_f_id : + L13_3035if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) - *((IU32 *)&(r21) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_293if_f; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3056_CopyByte4PlaneChain4_00000003_0000000f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3056_CopyByte4PlaneChain4_00000003_0000000f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + { extern IUH L22_294if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_294if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_293if_f_id : + L22_293if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16660) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3056_CopyByte4PlaneChain4_00000003_0000000f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3056_CopyByte4PlaneChain4_00000003_0000000f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16661) ; + case L22_294if_d_id : + L22_294if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_3056_CopyByte4PlaneChain4_00000003_0000000f_00000000_00000001_id : + S_3056_CopyByte4PlaneChain4_00000003_0000000f_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3056) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3036if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3036if_f_id : + L13_3036if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r21) + REGBYTE)) goto L23_1166if_f; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r21) + REGLONG)) goto L23_1169w_d; + case L23_1168w_t_id : + L23_1168w_t: ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_1168w_t; + case L23_1169w_d_id : + L23_1169w_d: ; + { extern IUH L23_1167if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_1167if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_1166if_f_id : + L23_1166if_f: ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1171w_d; + case L23_1170w_t_id : + L23_1170w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(1296) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)&(r23) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1170w_t; + case L23_1171w_d_id : + L23_1171w_d: ; + case L23_1167if_d_id : + L23_1167if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3057_Chain4WordMove_00000003_00000008_00000001_id : + S_3057_Chain4WordMove_00000003_00000008_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3057) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3037if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3037if_f_id : + L13_3037if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_295if_f; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3058_CopyWordPlnByPlnChain4_00000003_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3058_CopyWordPlnByPlnChain4_00000003_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + { extern IUH L22_296if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_296if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_295if_f_id : + L22_295if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3058_CopyWordPlnByPlnChain4_00000003_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3058_CopyWordPlnByPlnChain4_00000003_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + case L22_296if_d_id : + L22_296if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_3058_CopyWordPlnByPlnChain4_00000003_00000008_00000000_00000001_id : + S_3058_CopyWordPlnByPlnChain4_00000003_00000008_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3058) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3038if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3038if_f_id : + L13_3038if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3050_CopyBytePlnByPlnChain4_00000003_00000008_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3050_CopyBytePlnByPlnChain4_00000003_00000008_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3059_Chain4WordMove_00000003_00000009_00000001_id : + S_3059_Chain4WordMove_00000003_00000009_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3059) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3039if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3039if_f_id : + L13_3039if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_297if_f; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3060_CopyWord4PlaneChain4_00000003_00000009_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3060_CopyWord4PlaneChain4_00000003_00000009_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + { extern IUH L22_298if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_298if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_297if_f_id : + L22_297if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3060_CopyWord4PlaneChain4_00000003_00000009_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3060_CopyWord4PlaneChain4_00000003_00000009_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + case L22_298if_d_id : + L22_298if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_3060_CopyWord4PlaneChain4_00000003_00000009_00000000_00000001_id : + S_3060_CopyWord4PlaneChain4_00000003_00000009_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(3060) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3040if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3040if_f_id : + L13_3040if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_1172if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1175w_d; + case L23_1174w_t_id : + L23_1174w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r21)); + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IU32 *)&(r21) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) & *((IU32 *)&(r21) + REGLONG); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_1174w_t; + case L23_1175w_d_id : + L23_1175w_d: ; + { extern IUH L23_1173if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_1173if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_1172if_f_id : + L23_1172if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1177w_d; + case L23_1176w_t_id : + L23_1176w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)&(r22) + REGLONG); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1176w_t; + case L23_1177w_d_id : + L23_1177w_d: ; + case L23_1173if_d_id : + L23_1173if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3061_Chain4WordMove_00000003_0000000e_00000001_id : + S_3061_Chain4WordMove_00000003_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3061) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3041if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3041if_f_id : + L13_3041if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_299if_f; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3062_CopyWordPlnByPlnChain4_00000003_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3062_CopyWordPlnByPlnChain4_00000003_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + { extern IUH L22_300if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_300if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_299if_f_id : + L22_299if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16670) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3062_CopyWordPlnByPlnChain4_00000003_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3062_CopyWordPlnByPlnChain4_00000003_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16671) ; + case L22_300if_d_id : + L22_300if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_3062_CopyWordPlnByPlnChain4_00000003_0000000e_00000000_00000001_id : + S_3062_CopyWordPlnByPlnChain4_00000003_0000000e_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 24 > 0 ) LocalIUH = (IUH *)malloc ( 24 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3062) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3042if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3042if_f_id : + L13_3042if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16658) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+4) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3054_CopyBytePlnByPlnChain4_00000003_0000000e_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3054_CopyBytePlnByPlnChain4_00000003_0000000e_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16659) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3063_Chain4WordMove_00000003_0000000f_00000001_id : + S_3063_Chain4WordMove_00000003_0000000f_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3063) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3043if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3043if_f_id : + L13_3043if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r22)) = (IS32)(2) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) - *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) - *((IU32 *)&(r20) + REGLONG); + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r3) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1364) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004273), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+3) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L22_301if_f; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IU32 *)&(r4) + REGLONG) = (IS32)(-1) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3064_CopyWord4PlaneChain4_00000003_0000000f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3064_CopyWord4PlaneChain4_00000003_0000000f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + { extern IUH L22_302if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L22_302if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L22_301if_f_id : + L22_301if_f: ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) - *((IUH *)&(r21)); + *((IUH *)&(r3)) = *((IUH *)&(r21)) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r20)) = (IS32)(1336) ; + { IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = ((IUH (*)())(IHP)(*((IHPE *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))))) )(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004261), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)&(r2)) ; + *((IUH *)(r1+0)) = (IS32)(16672) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)&(r3)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)(LocalIUH+1) + REGLONG) ; + *((IU32 *)&(r5) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) ; + *((IU8 *)&(r6) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3064_CopyWord4PlaneChain4_00000003_0000000f_00000000_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3064_CopyWord4PlaneChain4_00000003_0000000f_00000000_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004161), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16673) ; + case L22_302if_d_id : + L22_302if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_3064_CopyWord4PlaneChain4_00000003_0000000f_00000000_00000001_id : + S_3064_CopyWord4PlaneChain4_00000003_0000000f_00000000_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r20)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 44 > 0 ) LocalIUH = (IUH *)malloc ( 44 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = (IS32)(3064) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3044if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3044if_f_id : + L13_3044if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU32 *)(LocalIUH+3) + REGLONG) = *((IU32 *)&(r5) + REGLONG) ; + *((IU8 *)(LocalIUH+4) + REGBYTE) = *((IU8 *)&(r6) + REGBYTE) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+3) + REGLONG) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU8 *)(LocalIUH+4) + REGBYTE) == *((IU8 *)&(r20) + REGBYTE)) goto L23_1178if_f; + *((IUH *)(LocalIUH+6)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1181w_d; + case L23_1180w_t_id : + L23_1180w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+6)) - *((IUH *)&(r20)); + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r21)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ); + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IUH *)&(r22)) = (IS32)(1280) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IU32 *)&(r22) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IUH *)&(r23)) = (IS32)(1280) ; + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r23))) ) & *((IU32 *)&(r22) + REGLONG); + *((IU32 *)&(r21) + REGLONG) = *((IU32 *)&(r21) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+6)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+6)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(2) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r21)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r21) + REGLONG)) goto L23_1180w_t; + case L23_1181w_d_id : + L23_1181w_d: ; + { extern IUH L23_1179if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L23_1179if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L23_1178if_f_id : + L23_1178if_f: ; + *((IUH *)(LocalIUH+9)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r20)) = *((IU32 *)(LocalIUH+2) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1284) ; + *((IUH *)&(r20)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IUH *)&(r22)) = (IS32)(1288) ; + *((IUH *)&(r21)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) <= *((IU32 *)&(r20) + REGLONG)) goto L23_1183w_d; + case L23_1182w_t_id : + L23_1182w_t: ; + *((IUH *)&(r21)) = (IS32)(1) ; + *((IU32 *)(LocalIUH+5) + REGLONG) = *((IU32 *)(LocalIUH+5) + REGLONG) - *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r21)) = *((IU8 *)(*((IHPE *)&(r20))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(1296) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)&(r23) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IU8 *)(*((IHPE *)&(r21))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+9)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IUH *)&(r21)) = *((IU8 *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ); + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16360) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)(LocalIUH+8) + REGLONG) & *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r20)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IUH *)&(r22)) = (IS32)(1296) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ^ *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ) ; + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) & *((IU32 *)(LocalIUH+8) + REGLONG); + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) ; + *((IUH *)&(r22)) = *((IU8 *)(*((IHPE *)&(r21))) ); + *((IU32 *)&(r23) + REGLONG) = ~(*((IU32 *)(LocalIUH+8) + REGLONG)); + *((IU32 *)&(r22) + REGLONG) = *((IU32 *)&(r22) + REGLONG) & *((IU32 *)&(r23) + REGLONG); + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)&(r20) + REGLONG) | *((IU32 *)&(r22) + REGLONG) ; + *((IU32 *)(LocalIUH+8) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(16363) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) ; + *((IUH *)&(r22)) = (IS32)(1) ; + *((IU8 *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) = *((IU8 *)(LocalIUH+8) + REGBYTE) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+9)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+9)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+10)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+10)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+7)) - *((IUH *)&(r20)); + *((IUH *)(LocalIUH+7)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((IU32 *)(LocalIUH+5) + REGLONG) > *((IU32 *)&(r20) + REGLONG)) goto L23_1182w_t; + case L23_1183w_d_id : + L23_1183w_d: ; + case L23_1179if_d_id : + L23_1179if_d: ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3065_Chain4DwordMove_00000003_00000008_00000001_id : + S_3065_Chain4DwordMove_00000003_00000008_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3065) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3045if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3045if_f_id : + L13_3045if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3057_Chain4WordMove_00000003_00000008_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3057_Chain4WordMove_00000003_00000008_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3066_Chain4DwordMove_00000003_00000009_00000001_id : + S_3066_Chain4DwordMove_00000003_00000009_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3066) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3046if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3046if_f_id : + L13_3046if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3059_Chain4WordMove_00000003_00000009_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3059_Chain4WordMove_00000003_00000009_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3067_Chain4DwordMove_00000003_0000000e_00000001_id : + S_3067_Chain4DwordMove_00000003_0000000e_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3067) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3047if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3047if_f_id : + L13_3047if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3061_Chain4WordMove_00000003_0000000e_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3061_Chain4WordMove_00000003_0000000e_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + *((IUH *)(r1+0)) = (IS32)(16201) ; + case S_3068_Chain4DwordMove_00000003_0000000f_00000001_id : + S_3068_Chain4DwordMove_00000003_0000000f_00000001 : + *((IUH *)(r1+0)) = (IS32)(82) ; + *((IUH *)&(r21)) = (IS32)(4) ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 20 > 0 ) LocalIUH = (IUH *)malloc ( 20 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + *((IUH *)(r1+8)) = *((IUH *)(r1+8)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = *((IUH *)(r1+8)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r20))) + *((IHPE *)&(r22))) ) = (IS32)(3068) ; + if (*((IUH *)(r1+8)) <= *((IUH *)(r1+16))) goto L13_3048if_f; + *((IUH *)(r1+8)) = *((IUH *)(r1+12)) ; + case L13_3048if_f_id : + L13_3048if_f: ; + *((IUH *)(r1+0)) = (IS32)(83) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r2) + REGLONG) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r3)) ; + *((IU32 *)(LocalIUH+2) + REGLONG) = *((IU32 *)&(r4) + REGLONG) ; + *((IU8 *)(LocalIUH+3) + REGBYTE) = *((IU8 *)&(r5) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(16684) ; + *((IU32 *)&(r2) + REGLONG) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)&(r3)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r21)) = (IS32)(1) ; + if(*((IU32 *)&(r21) + REGLONG)>=32) + CrulesRuntimeError("Bad Bit No"); + else + *((IU32 *)&(r20) + REGLONG) = *((IU32 *)(LocalIUH+2) + REGLONG) << *((IU32 *)&(r21) + REGLONG) ; + *((IU32 *)&(r4) + REGLONG) = *((IU32 *)&(r20) + REGLONG) ; + *((IU8 *)&(r5) + REGBYTE) = *((IU8 *)(LocalIUH+3) + REGBYTE) ; +/* J_SAVE_RETURN NOT IMPLIMENTED */ + { extern IUH S_3063_Chain4WordMove_00000003_0000000f_00000001() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = S_3063_Chain4WordMove_00000003_0000000f_00000001(v1,v2,v3,v4); } + /* j_state (IS32)(-2013004225), (IS32)(-1), (IS32)(0) */ +/* J_LOAD_RETURN NOT IMPLIMENTED */ + *((IUH *)(r1+0)) = (IS32)(16685) ; +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ +/*J_KILL__*/ + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue); + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sf_c.h b/private/mvdm/softpc.new/base/cvidc/sf_c.h new file mode 100644 index 000000000..a1703efac --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sf_c.h @@ -0,0 +1,42 @@ +#ifndef _Sf_c_h +#define _Sf_c_h +#define IBM_bit0 (31) +#define IBM_bit1 (30) +#define IBM_bit2 (29) +#define IBM_bit3 (28) +#define IBM_bit4 (27) +#define IBM_bit5 (26) +#define IBM_bit6 (25) +#define IBM_bit7 (24) +#define IBM_bit8 (23) +#define IBM_bit9 (22) +#define IBM_bit10 (21) +#define IBM_bit11 (20) +#define IBM_bit12 (19) +#define IBM_bit13 (18) +#define IBM_bit14 (17) +#define IBM_bit15 (16) +#define IBM_bit16 (15) +#define IBM_bit17 (14) +#define IBM_bit18 (13) +#define IBM_bit19 (12) +#define IBM_bit20 (11) +#define IBM_bit21 (10) +#define IBM_bit22 (9) +#define IBM_bit23 (8) +#define IBM_bit24 (7) +#define IBM_bit25 (6) +#define IBM_bit26 (5) +#define IBM_bit27 (4) +#define IBM_bit28 (3) +#define IBM_bit29 (2) +#define IBM_bit30 (1) +#define IBM_bit31 (0) +#define DecrementerRegWrite (22) +#define DecrementerRegRead (6) +#define HwIntBit (15) +#define HW_ADAPTOR_DW (1) +#define HW_ADAPTOR_W (2) +#define HW_ADAPTOR_B (3) +#define StringFellow (0) +#endif /* ! _Sf_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/shift_c.h b/private/mvdm/softpc.new/base/cvidc/shift_c.h new file mode 100644 index 000000000..34382f404 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/shift_c.h @@ -0,0 +1,3 @@ +#ifndef _Shift_c_h +#define _Shift_c_h +#endif /* ! _Shift_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/simple_c.h b/private/mvdm/softpc.new/base/cvidc/simple_c.h new file mode 100644 index 000000000..7dee2b457 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/simple_c.h @@ -0,0 +1,3 @@ +#ifndef _Simple_c_h +#define _Simple_c_h +#endif /* ! _Simple_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/sinit011.c b/private/mvdm/softpc.new/base/cvidc/sinit011.c new file mode 100644 index 000000000..aca1803c4 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sinit011.c @@ -0,0 +1,939 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_0363_CiGetVideolatches_00000000_id, +S_0364_CiGetVideorplane_00000001_id, +S_0365_CiGetVideowplane_00000002_id, +S_0366_CiGetVideoscratch_00000003_id, +S_0367_CiGetVideosr_masked_val_00000004_id, +S_0368_CiGetVideosr_nmask_00000005_id, +S_0369_CiGetVideodata_and_mask_00000006_id, +S_0370_CiGetVideodata_xor_mask_00000007_id, +S_0371_CiGetVideolatch_xor_mask_00000008_id, +S_0372_CiGetVideobit_prot_mask_00000009_id, +S_0373_CiGetVideoplane_enable_0000000a_id, +S_0374_CiGetVideoplane_enable_mask_0000000b_id, +S_0375_CiGetVideosr_lookup_0000000c_id, +S_0376_CiGetVideofwd_str_read_addr_0000000d_id, +S_0377_CiGetVideobwd_str_read_addr_0000000e_id, +S_0378_CiGetVideodirty_total_0000000f_id, +S_0379_CiGetVideodirty_low_00000010_id, +S_0380_CiGetVideodirty_high_00000011_id, +S_0381_CiGetVideovideo_copy_00000012_id, +S_0382_CiGetVideomark_byte_00000013_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_0363_CiGetVideolatches_00000000 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0363_CiGetVideolatches_00000000_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0363_CiGetVideolatches_00000000 = (IHPE)S_0363_CiGetVideolatches_00000000 ; +GLOBAL IUH S_0364_CiGetVideorplane_00000001 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0364_CiGetVideorplane_00000001_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0364_CiGetVideorplane_00000001 = (IHPE)S_0364_CiGetVideorplane_00000001 ; +GLOBAL IUH S_0365_CiGetVideowplane_00000002 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0365_CiGetVideowplane_00000002_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0365_CiGetVideowplane_00000002 = (IHPE)S_0365_CiGetVideowplane_00000002 ; +GLOBAL IUH S_0366_CiGetVideoscratch_00000003 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0366_CiGetVideoscratch_00000003_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0366_CiGetVideoscratch_00000003 = (IHPE)S_0366_CiGetVideoscratch_00000003 ; +GLOBAL IUH S_0367_CiGetVideosr_masked_val_00000004 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0367_CiGetVideosr_masked_val_00000004_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0367_CiGetVideosr_masked_val_00000004 = (IHPE)S_0367_CiGetVideosr_masked_val_00000004 ; +GLOBAL IUH S_0368_CiGetVideosr_nmask_00000005 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0368_CiGetVideosr_nmask_00000005_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0368_CiGetVideosr_nmask_00000005 = (IHPE)S_0368_CiGetVideosr_nmask_00000005 ; +GLOBAL IUH S_0369_CiGetVideodata_and_mask_00000006 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0369_CiGetVideodata_and_mask_00000006_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0369_CiGetVideodata_and_mask_00000006 = (IHPE)S_0369_CiGetVideodata_and_mask_00000006 ; +GLOBAL IUH S_0370_CiGetVideodata_xor_mask_00000007 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0370_CiGetVideodata_xor_mask_00000007_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0370_CiGetVideodata_xor_mask_00000007 = (IHPE)S_0370_CiGetVideodata_xor_mask_00000007 ; +GLOBAL IUH S_0371_CiGetVideolatch_xor_mask_00000008 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0371_CiGetVideolatch_xor_mask_00000008_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0371_CiGetVideolatch_xor_mask_00000008 = (IHPE)S_0371_CiGetVideolatch_xor_mask_00000008 ; +GLOBAL IUH S_0372_CiGetVideobit_prot_mask_00000009 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0372_CiGetVideobit_prot_mask_00000009_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0372_CiGetVideobit_prot_mask_00000009 = (IHPE)S_0372_CiGetVideobit_prot_mask_00000009 ; +GLOBAL IUH S_0373_CiGetVideoplane_enable_0000000a IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0373_CiGetVideoplane_enable_0000000a_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0373_CiGetVideoplane_enable_0000000a = (IHPE)S_0373_CiGetVideoplane_enable_0000000a ; +GLOBAL IUH S_0374_CiGetVideoplane_enable_mask_0000000b IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0374_CiGetVideoplane_enable_mask_0000000b_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0374_CiGetVideoplane_enable_mask_0000000b = (IHPE)S_0374_CiGetVideoplane_enable_mask_0000000b ; +GLOBAL IUH S_0375_CiGetVideosr_lookup_0000000c IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0375_CiGetVideosr_lookup_0000000c_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0375_CiGetVideosr_lookup_0000000c = (IHPE)S_0375_CiGetVideosr_lookup_0000000c ; +GLOBAL IUH S_0376_CiGetVideofwd_str_read_addr_0000000d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0376_CiGetVideofwd_str_read_addr_0000000d_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0376_CiGetVideofwd_str_read_addr_0000000d = (IHPE)S_0376_CiGetVideofwd_str_read_addr_0000000d ; +GLOBAL IUH S_0377_CiGetVideobwd_str_read_addr_0000000e IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0377_CiGetVideobwd_str_read_addr_0000000e_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0377_CiGetVideobwd_str_read_addr_0000000e = (IHPE)S_0377_CiGetVideobwd_str_read_addr_0000000e ; +GLOBAL IUH S_0378_CiGetVideodirty_total_0000000f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0378_CiGetVideodirty_total_0000000f_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0378_CiGetVideodirty_total_0000000f = (IHPE)S_0378_CiGetVideodirty_total_0000000f ; +GLOBAL IUH S_0379_CiGetVideodirty_low_00000010 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0379_CiGetVideodirty_low_00000010_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0379_CiGetVideodirty_low_00000010 = (IHPE)S_0379_CiGetVideodirty_low_00000010 ; +GLOBAL IUH S_0380_CiGetVideodirty_high_00000011 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0380_CiGetVideodirty_high_00000011_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0380_CiGetVideodirty_high_00000011 = (IHPE)S_0380_CiGetVideodirty_high_00000011 ; +GLOBAL IUH S_0381_CiGetVideovideo_copy_00000012 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0381_CiGetVideovideo_copy_00000012_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0381_CiGetVideovideo_copy_00000012 = (IHPE)S_0381_CiGetVideovideo_copy_00000012 ; +GLOBAL IUH S_0382_CiGetVideomark_byte_00000013 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0382_CiGetVideomark_byte_00000013_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0382_CiGetVideomark_byte_00000013 = (IHPE)S_0382_CiGetVideomark_byte_00000013 ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + case S_0363_CiGetVideolatches_00000000_id : + S_0363_CiGetVideolatches_00000000 : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6557) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(6558) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0364_CiGetVideorplane_00000001_id : + S_0364_CiGetVideorplane_00000001 : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r20)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r20)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6559) ; + *((IUH *)&(r21)) = (IS32)(1284) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(6560) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0365_CiGetVideowplane_00000002_id : + S_0365_CiGetVideowplane_00000002 : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r20)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r20)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6561) ; + *((IUH *)&(r21)) = (IS32)(1288) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(6562) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0366_CiGetVideoscratch_00000003_id : + S_0366_CiGetVideoscratch_00000003 : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r20)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r20)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6563) ; + *((IUH *)&(r21)) = (IS32)(1292) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(6564) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0367_CiGetVideosr_masked_val_00000004_id : + S_0367_CiGetVideosr_masked_val_00000004 : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6565) ; + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(6566) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0368_CiGetVideosr_nmask_00000005_id : + S_0368_CiGetVideosr_nmask_00000005 : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6567) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(6568) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0369_CiGetVideodata_and_mask_00000006_id : + S_0369_CiGetVideodata_and_mask_00000006 : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6569) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(6570) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0370_CiGetVideodata_xor_mask_00000007_id : + S_0370_CiGetVideodata_xor_mask_00000007 : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6571) ; + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(6572) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0371_CiGetVideolatch_xor_mask_00000008_id : + S_0371_CiGetVideolatch_xor_mask_00000008 : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6573) ; + *((IUH *)&(r20)) = (IS32)(1312) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(6574) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0372_CiGetVideobit_prot_mask_00000009_id : + S_0372_CiGetVideobit_prot_mask_00000009 : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6575) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(6576) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0373_CiGetVideoplane_enable_0000000a_id : + S_0373_CiGetVideoplane_enable_0000000a : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6577) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(6578) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0374_CiGetVideoplane_enable_mask_0000000b_id : + S_0374_CiGetVideoplane_enable_mask_0000000b : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6579) ; + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(6580) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0375_CiGetVideosr_lookup_0000000c_id : + S_0375_CiGetVideosr_lookup_0000000c : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r20)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r20)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6581) ; + *((IUH *)&(r21)) = (IS32)(1328) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(6582) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0376_CiGetVideofwd_str_read_addr_0000000d_id : + S_0376_CiGetVideofwd_str_read_addr_0000000d : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r20)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r20)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6583) ; + *((IUH *)&(r21)) = (IS32)(1332) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(6584) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0377_CiGetVideobwd_str_read_addr_0000000e_id : + S_0377_CiGetVideobwd_str_read_addr_0000000e : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r20)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r20)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6585) ; + *((IUH *)&(r21)) = (IS32)(1336) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(6586) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0378_CiGetVideodirty_total_0000000f_id : + S_0378_CiGetVideodirty_total_0000000f : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6587) ; + *((IUH *)&(r20)) = (IS32)(1340) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(6588) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0379_CiGetVideodirty_low_00000010_id : + S_0379_CiGetVideodirty_low_00000010 : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6589) ; + *((IUH *)&(r20)) = (IS32)(1344) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(6590) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0380_CiGetVideodirty_high_00000011_id : + S_0380_CiGetVideodirty_high_00000011 : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6591) ; + *((IUH *)&(r20)) = (IS32)(1348) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(6592) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0381_CiGetVideovideo_copy_00000012_id : + S_0381_CiGetVideovideo_copy_00000012 : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r20)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r20)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6593) ; + *((IUH *)&(r21)) = (IS32)(1352) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(6594) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0382_CiGetVideomark_byte_00000013_id : + S_0382_CiGetVideomark_byte_00000013 : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r20)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r20)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6595) ; + *((IUH *)&(r21)) = (IS32)(1356) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(6596) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sinit012.c b/private/mvdm/softpc.new/base/cvidc/sinit012.c new file mode 100644 index 000000000..1e39674a1 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sinit012.c @@ -0,0 +1,1476 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_0383_CiGetVideomark_word_00000014_id, +S_0384_CiGetVideomark_string_00000015_id, +S_0385_CiGetVideoread_shift_count_00000016_id, +S_0386_CiGetVideoread_mapped_plane_00000017_id, +S_0387_CiGetVideocolour_comp_00000018_id, +S_0388_CiGetVideodont_care_00000019_id, +S_0389_CiGetVideov7_bank_vid_copy_off_0000001a_id, +S_0390_CiGetVideoscreen_ptr_0000001b_id, +S_0391_CiGetVideorotate_0000001c_id, +S_0392_CiGetVideocalc_data_xor_0000001d_id, +S_0393_CiGetVideocalc_latch_xor_0000001e_id, +S_0394_CiGetVideoread_byte_addr_0000001f_id, +S_0395_CiGetVideov7_fg_latches_00000020_id, +S_0396_CiGetVideoGC_regs_00000021_id, +S_0397_CiGetVideolast_GC_index_00000022_id, +S_0398_CiGetVideodither_00000023_id, +S_0399_CiGetVideowrmode_00000024_id, +S_0400_CiGetVideochain_00000025_id, +S_0401_CiGetVideowrstate_00000026_id, +S_0402_CiSetVideolatches_00000027_id, +S_0403_CiSetVideorplane_00000028_id, +S_0404_CiSetVideowplane_00000029_id, +S_0405_CiSetVideoscratch_0000002a_id, +S_0406_CiSetVideosr_masked_val_0000002b_id, +S_0407_CiSetVideosr_nmask_0000002c_id, +S_0408_CiSetVideodata_and_mask_0000002d_id, +S_0409_CiSetVideodata_xor_mask_0000002e_id, +S_0410_CiSetVideolatch_xor_mask_0000002f_id, +S_0411_CiSetVideobit_prot_mask_00000030_id, +S_0412_CiSetVideoplane_enable_00000031_id, +S_0413_CiSetVideoplane_enable_mask_00000032_id, +S_0414_CiSetVideosr_lookup_00000033_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_0383_CiGetVideomark_word_00000014 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0383_CiGetVideomark_word_00000014_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0383_CiGetVideomark_word_00000014 = (IHPE)S_0383_CiGetVideomark_word_00000014 ; +GLOBAL IUH S_0384_CiGetVideomark_string_00000015 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0384_CiGetVideomark_string_00000015_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0384_CiGetVideomark_string_00000015 = (IHPE)S_0384_CiGetVideomark_string_00000015 ; +GLOBAL IUH S_0385_CiGetVideoread_shift_count_00000016 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0385_CiGetVideoread_shift_count_00000016_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0385_CiGetVideoread_shift_count_00000016 = (IHPE)S_0385_CiGetVideoread_shift_count_00000016 ; +GLOBAL IUH S_0386_CiGetVideoread_mapped_plane_00000017 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0386_CiGetVideoread_mapped_plane_00000017_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0386_CiGetVideoread_mapped_plane_00000017 = (IHPE)S_0386_CiGetVideoread_mapped_plane_00000017 ; +GLOBAL IUH S_0387_CiGetVideocolour_comp_00000018 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0387_CiGetVideocolour_comp_00000018_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0387_CiGetVideocolour_comp_00000018 = (IHPE)S_0387_CiGetVideocolour_comp_00000018 ; +GLOBAL IUH S_0388_CiGetVideodont_care_00000019 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0388_CiGetVideodont_care_00000019_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0388_CiGetVideodont_care_00000019 = (IHPE)S_0388_CiGetVideodont_care_00000019 ; +GLOBAL IUH S_0389_CiGetVideov7_bank_vid_copy_off_0000001a IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0389_CiGetVideov7_bank_vid_copy_off_0000001a_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0389_CiGetVideov7_bank_vid_copy_off_0000001a = (IHPE)S_0389_CiGetVideov7_bank_vid_copy_off_0000001a ; +GLOBAL IUH S_0390_CiGetVideoscreen_ptr_0000001b IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0390_CiGetVideoscreen_ptr_0000001b_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0390_CiGetVideoscreen_ptr_0000001b = (IHPE)S_0390_CiGetVideoscreen_ptr_0000001b ; +GLOBAL IUH S_0391_CiGetVideorotate_0000001c IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0391_CiGetVideorotate_0000001c_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0391_CiGetVideorotate_0000001c = (IHPE)S_0391_CiGetVideorotate_0000001c ; +GLOBAL IUH S_0392_CiGetVideocalc_data_xor_0000001d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0392_CiGetVideocalc_data_xor_0000001d_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0392_CiGetVideocalc_data_xor_0000001d = (IHPE)S_0392_CiGetVideocalc_data_xor_0000001d ; +GLOBAL IUH S_0393_CiGetVideocalc_latch_xor_0000001e IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0393_CiGetVideocalc_latch_xor_0000001e_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0393_CiGetVideocalc_latch_xor_0000001e = (IHPE)S_0393_CiGetVideocalc_latch_xor_0000001e ; +GLOBAL IUH S_0394_CiGetVideoread_byte_addr_0000001f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0394_CiGetVideoread_byte_addr_0000001f_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0394_CiGetVideoread_byte_addr_0000001f = (IHPE)S_0394_CiGetVideoread_byte_addr_0000001f ; +GLOBAL IUH S_0395_CiGetVideov7_fg_latches_00000020 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0395_CiGetVideov7_fg_latches_00000020_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0395_CiGetVideov7_fg_latches_00000020 = (IHPE)S_0395_CiGetVideov7_fg_latches_00000020 ; +GLOBAL IUH S_0396_CiGetVideoGC_regs_00000021 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0396_CiGetVideoGC_regs_00000021_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0396_CiGetVideoGC_regs_00000021 = (IHPE)S_0396_CiGetVideoGC_regs_00000021 ; +GLOBAL IUH S_0397_CiGetVideolast_GC_index_00000022 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0397_CiGetVideolast_GC_index_00000022_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0397_CiGetVideolast_GC_index_00000022 = (IHPE)S_0397_CiGetVideolast_GC_index_00000022 ; +GLOBAL IUH S_0398_CiGetVideodither_00000023 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0398_CiGetVideodither_00000023_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0398_CiGetVideodither_00000023 = (IHPE)S_0398_CiGetVideodither_00000023 ; +GLOBAL IUH S_0399_CiGetVideowrmode_00000024 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0399_CiGetVideowrmode_00000024_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0399_CiGetVideowrmode_00000024 = (IHPE)S_0399_CiGetVideowrmode_00000024 ; +GLOBAL IUH S_0400_CiGetVideochain_00000025 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0400_CiGetVideochain_00000025_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0400_CiGetVideochain_00000025 = (IHPE)S_0400_CiGetVideochain_00000025 ; +GLOBAL IUH S_0401_CiGetVideowrstate_00000026 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0401_CiGetVideowrstate_00000026_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0401_CiGetVideowrstate_00000026 = (IHPE)S_0401_CiGetVideowrstate_00000026 ; +GLOBAL IUH S_0402_CiSetVideolatches_00000027 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0402_CiSetVideolatches_00000027_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0402_CiSetVideolatches_00000027 = (IHPE)S_0402_CiSetVideolatches_00000027 ; +GLOBAL IUH S_0403_CiSetVideorplane_00000028 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0403_CiSetVideorplane_00000028_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0403_CiSetVideorplane_00000028 = (IHPE)S_0403_CiSetVideorplane_00000028 ; +GLOBAL IUH S_0404_CiSetVideowplane_00000029 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0404_CiSetVideowplane_00000029_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0404_CiSetVideowplane_00000029 = (IHPE)S_0404_CiSetVideowplane_00000029 ; +GLOBAL IUH S_0405_CiSetVideoscratch_0000002a IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0405_CiSetVideoscratch_0000002a_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0405_CiSetVideoscratch_0000002a = (IHPE)S_0405_CiSetVideoscratch_0000002a ; +GLOBAL IUH S_0406_CiSetVideosr_masked_val_0000002b IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0406_CiSetVideosr_masked_val_0000002b_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0406_CiSetVideosr_masked_val_0000002b = (IHPE)S_0406_CiSetVideosr_masked_val_0000002b ; +GLOBAL IUH S_0407_CiSetVideosr_nmask_0000002c IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0407_CiSetVideosr_nmask_0000002c_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0407_CiSetVideosr_nmask_0000002c = (IHPE)S_0407_CiSetVideosr_nmask_0000002c ; +GLOBAL IUH S_0408_CiSetVideodata_and_mask_0000002d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0408_CiSetVideodata_and_mask_0000002d_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0408_CiSetVideodata_and_mask_0000002d = (IHPE)S_0408_CiSetVideodata_and_mask_0000002d ; +GLOBAL IUH S_0409_CiSetVideodata_xor_mask_0000002e IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0409_CiSetVideodata_xor_mask_0000002e_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0409_CiSetVideodata_xor_mask_0000002e = (IHPE)S_0409_CiSetVideodata_xor_mask_0000002e ; +GLOBAL IUH S_0410_CiSetVideolatch_xor_mask_0000002f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0410_CiSetVideolatch_xor_mask_0000002f_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0410_CiSetVideolatch_xor_mask_0000002f = (IHPE)S_0410_CiSetVideolatch_xor_mask_0000002f ; +GLOBAL IUH S_0411_CiSetVideobit_prot_mask_00000030 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0411_CiSetVideobit_prot_mask_00000030_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0411_CiSetVideobit_prot_mask_00000030 = (IHPE)S_0411_CiSetVideobit_prot_mask_00000030 ; +GLOBAL IUH S_0412_CiSetVideoplane_enable_00000031 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0412_CiSetVideoplane_enable_00000031_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0412_CiSetVideoplane_enable_00000031 = (IHPE)S_0412_CiSetVideoplane_enable_00000031 ; +GLOBAL IUH S_0413_CiSetVideoplane_enable_mask_00000032 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0413_CiSetVideoplane_enable_mask_00000032_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0413_CiSetVideoplane_enable_mask_00000032 = (IHPE)S_0413_CiSetVideoplane_enable_mask_00000032 ; +GLOBAL IUH S_0414_CiSetVideosr_lookup_00000033 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0414_CiSetVideosr_lookup_00000033_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0414_CiSetVideosr_lookup_00000033 = (IHPE)S_0414_CiSetVideosr_lookup_00000033 ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + case S_0383_CiGetVideomark_word_00000014_id : + S_0383_CiGetVideomark_word_00000014 : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r20)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r20)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6597) ; + *((IUH *)&(r21)) = (IS32)(1360) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(6598) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0384_CiGetVideomark_string_00000015_id : + S_0384_CiGetVideomark_string_00000015 : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r20)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r20)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6599) ; + *((IUH *)&(r21)) = (IS32)(1364) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(6600) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0385_CiGetVideoread_shift_count_00000016_id : + S_0385_CiGetVideoread_shift_count_00000016 : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6601) ; + *((IUH *)&(r20)) = (IS32)(1368) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(6602) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0386_CiGetVideoread_mapped_plane_00000017_id : + S_0386_CiGetVideoread_mapped_plane_00000017 : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6603) ; + *((IUH *)&(r20)) = (IS32)(1372) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(6604) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0387_CiGetVideocolour_comp_00000018_id : + S_0387_CiGetVideocolour_comp_00000018 : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6605) ; + *((IUH *)&(r20)) = (IS32)(1376) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(6606) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0388_CiGetVideodont_care_00000019_id : + S_0388_CiGetVideodont_care_00000019 : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6607) ; + *((IUH *)&(r20)) = (IS32)(1380) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(6608) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0389_CiGetVideov7_bank_vid_copy_off_0000001a_id : + S_0389_CiGetVideov7_bank_vid_copy_off_0000001a : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6609) ; + *((IUH *)&(r20)) = (IS32)(1384) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(6610) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0390_CiGetVideoscreen_ptr_0000001b_id : + S_0390_CiGetVideoscreen_ptr_0000001b : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r20)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r20)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6611) ; + *((IUH *)&(r21)) = (IS32)(1400) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(6612) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0391_CiGetVideorotate_0000001c_id : + S_0391_CiGetVideorotate_0000001c : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6613) ; + *((IUH *)&(r20)) = (IS32)(1404) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(6614) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0392_CiGetVideocalc_data_xor_0000001d_id : + S_0392_CiGetVideocalc_data_xor_0000001d : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6615) ; + *((IUH *)&(r20)) = (IS32)(1408) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(6616) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0393_CiGetVideocalc_latch_xor_0000001e_id : + S_0393_CiGetVideocalc_latch_xor_0000001e : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6617) ; + *((IUH *)&(r20)) = (IS32)(1412) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(6618) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0394_CiGetVideoread_byte_addr_0000001f_id : + S_0394_CiGetVideoread_byte_addr_0000001f : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r20)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r20)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6619) ; + *((IUH *)&(r21)) = (IS32)(1416) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(6620) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0395_CiGetVideov7_fg_latches_00000020_id : + S_0395_CiGetVideov7_fg_latches_00000020 : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6621) ; + *((IUH *)&(r20)) = (IS32)(1420) ; + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(6622) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r21)) = *((IU32 *)(LocalIUH+0) + REGLONG); + *((IU32 *)(LocalIUH+0) + REGLONG) = *((IU32 *)&(r21) + REGLONG) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0396_CiGetVideoGC_regs_00000021_id : + S_0396_CiGetVideoGC_regs_00000021 : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r20)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r20)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6623) ; + *((IUH *)&(r21)) = (IS32)(1424) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) ; + *((IUH *)(r1+0)) = (IS32)(6624) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0397_CiGetVideolast_GC_index_00000022_id : + S_0397_CiGetVideolast_GC_index_00000022 : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6625) ; + *((IUH *)&(r20)) = (IS32)(1428) ; + *((IU8 *)(LocalIUH+0) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(6626) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+0) + REGBYTE); + *((IU8 *)(LocalIUH+0) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU8 *)&(r20) + REGBYTE) = *((IU8 *)(LocalIUH+0) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU8 *)&(r20) + REGBYTE); + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0398_CiGetVideodither_00000023_id : + S_0398_CiGetVideodither_00000023 : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6627) ; + *((IUH *)&(r20)) = (IS32)(1429) ; + *((IU8 *)(LocalIUH+0) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(6628) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+0) + REGBYTE); + *((IU8 *)(LocalIUH+0) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU8 *)&(r20) + REGBYTE) = *((IU8 *)(LocalIUH+0) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU8 *)&(r20) + REGBYTE); + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0399_CiGetVideowrmode_00000024_id : + S_0399_CiGetVideowrmode_00000024 : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6629) ; + *((IUH *)&(r20)) = (IS32)(1430) ; + *((IU8 *)(LocalIUH+0) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(6630) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+0) + REGBYTE); + *((IU8 *)(LocalIUH+0) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU8 *)&(r20) + REGBYTE) = *((IU8 *)(LocalIUH+0) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU8 *)&(r20) + REGBYTE); + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0400_CiGetVideochain_00000025_id : + S_0400_CiGetVideochain_00000025 : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6631) ; + *((IUH *)&(r20)) = (IS32)(1431) ; + *((IU8 *)(LocalIUH+0) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(6632) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+0) + REGBYTE); + *((IU8 *)(LocalIUH+0) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU8 *)&(r20) + REGBYTE) = *((IU8 *)(LocalIUH+0) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU8 *)&(r20) + REGBYTE); + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0401_CiGetVideowrstate_00000026_id : + S_0401_CiGetVideowrstate_00000026 : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6633) ; + *((IUH *)&(r20)) = (IS32)(1432) ; + *((IU8 *)(LocalIUH+0) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) ; + *((IUH *)(r1+0)) = (IS32)(6634) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + *((IUH *)&(r21)) = *((IU8 *)(LocalIUH+0) + REGBYTE); + *((IU8 *)(LocalIUH+0) + REGBYTE) = *((IU8 *)&(r21) + REGBYTE) ; + *((IU8 *)&(r20) + REGBYTE) = *((IU8 *)(LocalIUH+0) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU8 *)&(r20) + REGBYTE); + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return(returnValue = *((IUH *)&(r20)) ); + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0402_CiSetVideolatches_00000027_id : + S_0402_CiSetVideolatches_00000027 : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6635) ; + *((IUH *)&(r20)) = (IS32)(1280) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(6636) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0403_CiSetVideorplane_00000028_id : + S_0403_CiSetVideorplane_00000028 : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6637) ; + *((IUH *)&(r20)) = (IS32)(1284) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)(r1+0)) = (IS32)(6638) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0404_CiSetVideowplane_00000029_id : + S_0404_CiSetVideowplane_00000029 : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6639) ; + *((IUH *)&(r20)) = (IS32)(1288) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)(r1+0)) = (IS32)(6640) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0405_CiSetVideoscratch_0000002a_id : + S_0405_CiSetVideoscratch_0000002a : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6641) ; + *((IUH *)&(r20)) = (IS32)(1292) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)(r1+0)) = (IS32)(6642) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0406_CiSetVideosr_masked_val_0000002b_id : + S_0406_CiSetVideosr_masked_val_0000002b : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6643) ; + *((IUH *)&(r20)) = (IS32)(1296) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(6644) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0407_CiSetVideosr_nmask_0000002c_id : + S_0407_CiSetVideosr_nmask_0000002c : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6645) ; + *((IUH *)&(r20)) = (IS32)(1300) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(6646) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0408_CiSetVideodata_and_mask_0000002d_id : + S_0408_CiSetVideodata_and_mask_0000002d : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6647) ; + *((IUH *)&(r20)) = (IS32)(1304) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(6648) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0409_CiSetVideodata_xor_mask_0000002e_id : + S_0409_CiSetVideodata_xor_mask_0000002e : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6649) ; + *((IUH *)&(r20)) = (IS32)(1308) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(6650) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0410_CiSetVideolatch_xor_mask_0000002f_id : + S_0410_CiSetVideolatch_xor_mask_0000002f : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6651) ; + *((IUH *)&(r20)) = (IS32)(1312) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(6652) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0411_CiSetVideobit_prot_mask_00000030_id : + S_0411_CiSetVideobit_prot_mask_00000030 : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6653) ; + *((IUH *)&(r20)) = (IS32)(1316) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(6654) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0412_CiSetVideoplane_enable_00000031_id : + S_0412_CiSetVideoplane_enable_00000031 : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6655) ; + *((IUH *)&(r20)) = (IS32)(1320) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(6656) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0413_CiSetVideoplane_enable_mask_00000032_id : + S_0413_CiSetVideoplane_enable_mask_00000032 : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6657) ; + *((IUH *)&(r20)) = (IS32)(1324) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(6658) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0414_CiSetVideosr_lookup_00000033_id : + S_0414_CiSetVideosr_lookup_00000033 : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6659) ; + *((IUH *)&(r20)) = (IS32)(1328) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)(r1+0)) = (IS32)(6660) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sinit013.c b/private/mvdm/softpc.new/base/cvidc/sinit013.c new file mode 100644 index 000000000..f66779e05 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sinit013.c @@ -0,0 +1,2153 @@ +/* #defines and enum */ +#include "insignia.h" +#include "host_def.h" +#include +#include "j_c_lang.h" +extern IU8 J_EXT_DATA[] ; +typedef enum +{ +S_0415_CiSetVideofwd_str_read_addr_00000034_id, +S_0416_CiSetVideobwd_str_read_addr_00000035_id, +S_0417_CiSetVideodirty_total_00000036_id, +S_0418_CiSetVideodirty_low_00000037_id, +S_0419_CiSetVideodirty_high_00000038_id, +S_0420_CiSetVideovideo_copy_00000039_id, +S_0421_CiSetVideomark_byte_0000003a_id, +S_0422_CiSetVideomark_word_0000003b_id, +S_0423_CiSetVideomark_string_0000003c_id, +S_0424_CiSetVideoread_shift_count_0000003d_id, +S_0425_CiSetVideoread_mapped_plane_0000003e_id, +S_0426_CiSetVideocolour_comp_0000003f_id, +S_0427_CiSetVideodont_care_00000040_id, +S_0428_CiSetVideov7_bank_vid_copy_off_00000041_id, +S_0429_CiSetVideoscreen_ptr_00000042_id, +S_0430_CiSetVideorotate_00000043_id, +S_0431_CiSetVideocalc_data_xor_00000044_id, +S_0432_CiSetVideocalc_latch_xor_00000045_id, +S_0433_CiSetVideoread_byte_addr_00000046_id, +S_0434_CiSetVideov7_fg_latches_00000047_id, +S_0435_CiSetVideoGC_regs_00000048_id, +S_0436_CiSetVideolast_GC_index_00000049_id, +S_0437_CiSetVideodither_0000004a_id, +S_0438_CiSetVideowrmode_0000004b_id, +S_0439_CiSetVideochain_0000004c_id, +S_0440_CiSetVideowrstate_0000004d_id, +S_0441_CisetWritePointers_0000004e_id, +L30_1if_f_id, +L30_5or2_id, +L30_6if_f_id, +L30_7if_f_id, +L30_8if_d_id, +L30_9if_f_id, +L30_11if_f_id, +L30_13if_f_id, +L30_14if_d_id, +L30_12if_d_id, +L30_10if_d_id, +L30_3if_f_id, +L30_15if_f_id, +L30_16if_d_id, +L30_4if_d_id, +L30_2if_d_id, +L30_0endgen_id, +S_0442_CisetReadPointers_0000004f_id, +L30_17if_f_id, +L30_19if_f_id, +L30_21if_f_id, +L30_22if_d_id, +L30_20if_d_id, +L30_18if_d_id, +S_0443_CisetMarkPointers_00000050_id, +L30_23if_f_id, +L30_25if_f_id, +L30_27if_f_id, +L30_28if_d_id, +L30_26if_d_id, +L30_24if_d_id, +LAST_ENTRY +} ID ; +/* END of #defines and enum */ +/* DATA space definitions */ +/* END of DATA space definitions */ +/* FUNCTIONS */ +LOCAL IUH crules IPT5( ID, id , IUH , v1, IUH , v2, IUH , v3, IUH , v4 ) ; +GLOBAL IUH S_0415_CiSetVideofwd_str_read_addr_00000034 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0415_CiSetVideofwd_str_read_addr_00000034_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0415_CiSetVideofwd_str_read_addr_00000034 = (IHPE)S_0415_CiSetVideofwd_str_read_addr_00000034 ; +GLOBAL IUH S_0416_CiSetVideobwd_str_read_addr_00000035 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0416_CiSetVideobwd_str_read_addr_00000035_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0416_CiSetVideobwd_str_read_addr_00000035 = (IHPE)S_0416_CiSetVideobwd_str_read_addr_00000035 ; +GLOBAL IUH S_0417_CiSetVideodirty_total_00000036 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0417_CiSetVideodirty_total_00000036_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0417_CiSetVideodirty_total_00000036 = (IHPE)S_0417_CiSetVideodirty_total_00000036 ; +GLOBAL IUH S_0418_CiSetVideodirty_low_00000037 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0418_CiSetVideodirty_low_00000037_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0418_CiSetVideodirty_low_00000037 = (IHPE)S_0418_CiSetVideodirty_low_00000037 ; +GLOBAL IUH S_0419_CiSetVideodirty_high_00000038 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0419_CiSetVideodirty_high_00000038_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0419_CiSetVideodirty_high_00000038 = (IHPE)S_0419_CiSetVideodirty_high_00000038 ; +GLOBAL IUH S_0420_CiSetVideovideo_copy_00000039 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0420_CiSetVideovideo_copy_00000039_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0420_CiSetVideovideo_copy_00000039 = (IHPE)S_0420_CiSetVideovideo_copy_00000039 ; +GLOBAL IUH S_0421_CiSetVideomark_byte_0000003a IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0421_CiSetVideomark_byte_0000003a_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0421_CiSetVideomark_byte_0000003a = (IHPE)S_0421_CiSetVideomark_byte_0000003a ; +GLOBAL IUH S_0422_CiSetVideomark_word_0000003b IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0422_CiSetVideomark_word_0000003b_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0422_CiSetVideomark_word_0000003b = (IHPE)S_0422_CiSetVideomark_word_0000003b ; +GLOBAL IUH S_0423_CiSetVideomark_string_0000003c IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0423_CiSetVideomark_string_0000003c_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0423_CiSetVideomark_string_0000003c = (IHPE)S_0423_CiSetVideomark_string_0000003c ; +GLOBAL IUH S_0424_CiSetVideoread_shift_count_0000003d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0424_CiSetVideoread_shift_count_0000003d_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0424_CiSetVideoread_shift_count_0000003d = (IHPE)S_0424_CiSetVideoread_shift_count_0000003d ; +GLOBAL IUH S_0425_CiSetVideoread_mapped_plane_0000003e IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0425_CiSetVideoread_mapped_plane_0000003e_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0425_CiSetVideoread_mapped_plane_0000003e = (IHPE)S_0425_CiSetVideoread_mapped_plane_0000003e ; +GLOBAL IUH S_0426_CiSetVideocolour_comp_0000003f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0426_CiSetVideocolour_comp_0000003f_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0426_CiSetVideocolour_comp_0000003f = (IHPE)S_0426_CiSetVideocolour_comp_0000003f ; +GLOBAL IUH S_0427_CiSetVideodont_care_00000040 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0427_CiSetVideodont_care_00000040_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0427_CiSetVideodont_care_00000040 = (IHPE)S_0427_CiSetVideodont_care_00000040 ; +GLOBAL IUH S_0428_CiSetVideov7_bank_vid_copy_off_00000041 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0428_CiSetVideov7_bank_vid_copy_off_00000041_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0428_CiSetVideov7_bank_vid_copy_off_00000041 = (IHPE)S_0428_CiSetVideov7_bank_vid_copy_off_00000041 ; +GLOBAL IUH S_0429_CiSetVideoscreen_ptr_00000042 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0429_CiSetVideoscreen_ptr_00000042_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0429_CiSetVideoscreen_ptr_00000042 = (IHPE)S_0429_CiSetVideoscreen_ptr_00000042 ; +GLOBAL IUH S_0430_CiSetVideorotate_00000043 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0430_CiSetVideorotate_00000043_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0430_CiSetVideorotate_00000043 = (IHPE)S_0430_CiSetVideorotate_00000043 ; +GLOBAL IUH S_0431_CiSetVideocalc_data_xor_00000044 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0431_CiSetVideocalc_data_xor_00000044_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0431_CiSetVideocalc_data_xor_00000044 = (IHPE)S_0431_CiSetVideocalc_data_xor_00000044 ; +GLOBAL IUH S_0432_CiSetVideocalc_latch_xor_00000045 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0432_CiSetVideocalc_latch_xor_00000045_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0432_CiSetVideocalc_latch_xor_00000045 = (IHPE)S_0432_CiSetVideocalc_latch_xor_00000045 ; +GLOBAL IUH S_0433_CiSetVideoread_byte_addr_00000046 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0433_CiSetVideoread_byte_addr_00000046_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0433_CiSetVideoread_byte_addr_00000046 = (IHPE)S_0433_CiSetVideoread_byte_addr_00000046 ; +GLOBAL IUH S_0434_CiSetVideov7_fg_latches_00000047 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0434_CiSetVideov7_fg_latches_00000047_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0434_CiSetVideov7_fg_latches_00000047 = (IHPE)S_0434_CiSetVideov7_fg_latches_00000047 ; +GLOBAL IUH S_0435_CiSetVideoGC_regs_00000048 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0435_CiSetVideoGC_regs_00000048_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0435_CiSetVideoGC_regs_00000048 = (IHPE)S_0435_CiSetVideoGC_regs_00000048 ; +GLOBAL IUH S_0436_CiSetVideolast_GC_index_00000049 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0436_CiSetVideolast_GC_index_00000049_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0436_CiSetVideolast_GC_index_00000049 = (IHPE)S_0436_CiSetVideolast_GC_index_00000049 ; +GLOBAL IUH S_0437_CiSetVideodither_0000004a IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0437_CiSetVideodither_0000004a_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0437_CiSetVideodither_0000004a = (IHPE)S_0437_CiSetVideodither_0000004a ; +GLOBAL IUH S_0438_CiSetVideowrmode_0000004b IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0438_CiSetVideowrmode_0000004b_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0438_CiSetVideowrmode_0000004b = (IHPE)S_0438_CiSetVideowrmode_0000004b ; +GLOBAL IUH S_0439_CiSetVideochain_0000004c IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0439_CiSetVideochain_0000004c_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0439_CiSetVideochain_0000004c = (IHPE)S_0439_CiSetVideochain_0000004c ; +GLOBAL IUH S_0440_CiSetVideowrstate_0000004d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0440_CiSetVideowrstate_0000004d_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0440_CiSetVideowrstate_0000004d = (IHPE)S_0440_CiSetVideowrstate_0000004d ; +GLOBAL IUH S_0441_CisetWritePointers_0000004e IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0441_CisetWritePointers_0000004e_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0441_CisetWritePointers_0000004e = (IHPE)S_0441_CisetWritePointers_0000004e ; +LOCAL IUH L30_1if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L30_1if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L30_1if_f = (IHPE)L30_1if_f ; +LOCAL IUH L30_5or2 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L30_5or2_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L30_5or2 = (IHPE)L30_5or2 ; +LOCAL IUH L30_6if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L30_6if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L30_6if_f = (IHPE)L30_6if_f ; +LOCAL IUH L30_7if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L30_7if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L30_7if_f = (IHPE)L30_7if_f ; +LOCAL IUH L30_8if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L30_8if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L30_8if_d = (IHPE)L30_8if_d ; +LOCAL IUH L30_9if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L30_9if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L30_9if_f = (IHPE)L30_9if_f ; +LOCAL IUH L30_11if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L30_11if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L30_11if_f = (IHPE)L30_11if_f ; +LOCAL IUH L30_13if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L30_13if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L30_13if_f = (IHPE)L30_13if_f ; +LOCAL IUH L30_14if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L30_14if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L30_14if_d = (IHPE)L30_14if_d ; +LOCAL IUH L30_12if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L30_12if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L30_12if_d = (IHPE)L30_12if_d ; +LOCAL IUH L30_10if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L30_10if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L30_10if_d = (IHPE)L30_10if_d ; +LOCAL IUH L30_3if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L30_3if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L30_3if_f = (IHPE)L30_3if_f ; +LOCAL IUH L30_15if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L30_15if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L30_15if_f = (IHPE)L30_15if_f ; +LOCAL IUH L30_16if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L30_16if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L30_16if_d = (IHPE)L30_16if_d ; +LOCAL IUH L30_4if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L30_4if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L30_4if_d = (IHPE)L30_4if_d ; +LOCAL IUH L30_2if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L30_2if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L30_2if_d = (IHPE)L30_2if_d ; +LOCAL IUH L30_0endgen IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L30_0endgen_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L30_0endgen = (IHPE)L30_0endgen ; +GLOBAL IUH S_0442_CisetReadPointers_0000004f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0442_CisetReadPointers_0000004f_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0442_CisetReadPointers_0000004f = (IHPE)S_0442_CisetReadPointers_0000004f ; +LOCAL IUH L30_17if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L30_17if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L30_17if_f = (IHPE)L30_17if_f ; +LOCAL IUH L30_19if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L30_19if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L30_19if_f = (IHPE)L30_19if_f ; +LOCAL IUH L30_21if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L30_21if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L30_21if_f = (IHPE)L30_21if_f ; +LOCAL IUH L30_22if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L30_22if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L30_22if_d = (IHPE)L30_22if_d ; +LOCAL IUH L30_20if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L30_20if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L30_20if_d = (IHPE)L30_20if_d ; +LOCAL IUH L30_18if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L30_18if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L30_18if_d = (IHPE)L30_18if_d ; +GLOBAL IUH S_0443_CisetMarkPointers_00000050 IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(S_0443_CisetMarkPointers_00000050_id,v1,v2,v3,v4)); +} +GLOBAL IHPE j_S_0443_CisetMarkPointers_00000050 = (IHPE)S_0443_CisetMarkPointers_00000050 ; +LOCAL IUH L30_23if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L30_23if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L30_23if_f = (IHPE)L30_23if_f ; +LOCAL IUH L30_25if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L30_25if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L30_25if_f = (IHPE)L30_25if_f ; +LOCAL IUH L30_27if_f IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L30_27if_f_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L30_27if_f = (IHPE)L30_27if_f ; +LOCAL IUH L30_28if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L30_28if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L30_28if_d = (IHPE)L30_28if_d ; +LOCAL IUH L30_26if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L30_26if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L30_26if_d = (IHPE)L30_26if_d ; +LOCAL IUH L30_24if_d IFN4(IUH , v1, IUH , v2 , IUH , v3 ,IUH , v4 ) +{ + return (crules(L30_24if_d_id,v1,v2,v3,v4)); +} +LOCAL IHPE j_L30_24if_d = (IHPE)L30_24if_d ; +/* END of FUNCTIONS */ +/* DATA label definitions */ +/* END of DATA label definitions */ +/* DATA initializations */ +/* END of DATA initializations */ +/* CODE inline section */ +LOCAL IUH crules IFN5( ID ,id ,IUH ,v1 ,IUH ,v2 ,IUH ,v3 ,IUH, v4 ) +{ +IUH returnValue = (IUH)0; +IUH *CopyLocalIUH = (IUH *)0; +EXTENDED *CopyLocalFPH = (EXTENDED *)0 ; +SAVED IUH *LocalIUH = (IUH *)0; +SAVED EXTENDED *LocalFPH = (EXTENDED *)0 ; +switch ( id ) +{ + /* J_SEG (IS32)(0) */ + case S_0415_CiSetVideofwd_str_read_addr_00000034_id : + S_0415_CiSetVideofwd_str_read_addr_00000034 : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6661) ; + *((IUH *)&(r20)) = (IS32)(1332) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)(r1+0)) = (IS32)(6662) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0416_CiSetVideobwd_str_read_addr_00000035_id : + S_0416_CiSetVideobwd_str_read_addr_00000035 : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6663) ; + *((IUH *)&(r20)) = (IS32)(1336) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)(r1+0)) = (IS32)(6664) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0417_CiSetVideodirty_total_00000036_id : + S_0417_CiSetVideodirty_total_00000036 : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6665) ; + *((IUH *)&(r20)) = (IS32)(1340) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(6666) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0418_CiSetVideodirty_low_00000037_id : + S_0418_CiSetVideodirty_low_00000037 : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6667) ; + *((IUH *)&(r20)) = (IS32)(1344) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(6668) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0419_CiSetVideodirty_high_00000038_id : + S_0419_CiSetVideodirty_high_00000038 : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6669) ; + *((IUH *)&(r20)) = (IS32)(1348) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(6670) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0420_CiSetVideovideo_copy_00000039_id : + S_0420_CiSetVideovideo_copy_00000039 : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6671) ; + *((IUH *)&(r20)) = (IS32)(1352) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)(r1+0)) = (IS32)(6672) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0421_CiSetVideomark_byte_0000003a_id : + S_0421_CiSetVideomark_byte_0000003a : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6673) ; + *((IUH *)&(r20)) = (IS32)(1356) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)(r1+0)) = (IS32)(6674) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0422_CiSetVideomark_word_0000003b_id : + S_0422_CiSetVideomark_word_0000003b : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6675) ; + *((IUH *)&(r20)) = (IS32)(1360) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)(r1+0)) = (IS32)(6676) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0423_CiSetVideomark_string_0000003c_id : + S_0423_CiSetVideomark_string_0000003c : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6677) ; + *((IUH *)&(r20)) = (IS32)(1364) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)(r1+0)) = (IS32)(6678) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0424_CiSetVideoread_shift_count_0000003d_id : + S_0424_CiSetVideoread_shift_count_0000003d : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6679) ; + *((IUH *)&(r20)) = (IS32)(1368) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(6680) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0425_CiSetVideoread_mapped_plane_0000003e_id : + S_0425_CiSetVideoread_mapped_plane_0000003e : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6681) ; + *((IUH *)&(r20)) = (IS32)(1372) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(6682) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0426_CiSetVideocolour_comp_0000003f_id : + S_0426_CiSetVideocolour_comp_0000003f : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6683) ; + *((IUH *)&(r20)) = (IS32)(1376) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(6684) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0427_CiSetVideodont_care_00000040_id : + S_0427_CiSetVideodont_care_00000040 : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6685) ; + *((IUH *)&(r20)) = (IS32)(1380) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(6686) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0428_CiSetVideov7_bank_vid_copy_off_00000041_id : + S_0428_CiSetVideov7_bank_vid_copy_off_00000041 : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6687) ; + *((IUH *)&(r20)) = (IS32)(1384) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(6688) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0429_CiSetVideoscreen_ptr_00000042_id : + S_0429_CiSetVideoscreen_ptr_00000042 : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6689) ; + *((IUH *)&(r20)) = (IS32)(1400) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)(r1+0)) = (IS32)(6690) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0430_CiSetVideorotate_00000043_id : + S_0430_CiSetVideorotate_00000043 : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6691) ; + *((IUH *)&(r20)) = (IS32)(1404) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(6692) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0431_CiSetVideocalc_data_xor_00000044_id : + S_0431_CiSetVideocalc_data_xor_00000044 : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6693) ; + *((IUH *)&(r20)) = (IS32)(1408) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(6694) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0432_CiSetVideocalc_latch_xor_00000045_id : + S_0432_CiSetVideocalc_latch_xor_00000045 : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6695) ; + *((IUH *)&(r20)) = (IS32)(1412) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(6696) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0433_CiSetVideoread_byte_addr_00000046_id : + S_0433_CiSetVideoread_byte_addr_00000046 : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6697) ; + *((IUH *)&(r20)) = (IS32)(1416) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)(r1+0)) = (IS32)(6698) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0434_CiSetVideov7_fg_latches_00000047_id : + S_0434_CiSetVideov7_fg_latches_00000047 : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6699) ; + *((IUH *)&(r20)) = (IS32)(1420) ; + *((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU32 *)(LocalIUH+0) + REGLONG) ; + *((IUH *)(r1+0)) = (IS32)(6700) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0435_CiSetVideoGC_regs_00000048_id : + S_0435_CiSetVideoGC_regs_00000048 : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6701) ; + *((IUH *)&(r20)) = (IS32)(1424) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)(r1+0)) = (IS32)(6702) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0436_CiSetVideolast_GC_index_00000049_id : + S_0436_CiSetVideolast_GC_index_00000049 : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6703) ; + *((IUH *)&(r20)) = (IS32)(1428) ; + *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+0) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(6704) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0437_CiSetVideodither_0000004a_id : + S_0437_CiSetVideodither_0000004a : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6705) ; + *((IUH *)&(r20)) = (IS32)(1429) ; + *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+0) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(6706) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0438_CiSetVideowrmode_0000004b_id : + S_0438_CiSetVideowrmode_0000004b : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6707) ; + *((IUH *)&(r20)) = (IS32)(1430) ; + *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+0) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(6708) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0439_CiSetVideochain_0000004c_id : + S_0439_CiSetVideochain_0000004c : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6709) ; + *((IUH *)&(r20)) = (IS32)(1431) ; + *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+0) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(6710) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0440_CiSetVideowrstate_0000004d_id : + S_0440_CiSetVideowrstate_0000004d : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r21)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6711) ; + *((IUH *)&(r20)) = (IS32)(1432) ; + *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IU8 *)(LocalIUH+0) + REGBYTE) ; + *((IUH *)(r1+0)) = (IS32)(6712) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0441_CisetWritePointers_0000004e_id : + S_0441_CisetWritePointers_0000004e : + + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 4 > 0 ) LocalIUH = (IUH *)malloc ( 4 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r20)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r20)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6713) ; + { extern IHPE j_EvidWriteFuncs; *((IUH *)&(r21)) = j_EvidWriteFuncs; } + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1429) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L30_1if_f; + *((IUH *)&(r21)) = (IS32)(96) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1472) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1476) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1480) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1484) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1488) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1492) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1496) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1500) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1504) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1508) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1512) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1516) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + { extern IUH L30_2if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L30_2if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L30_1if_f_id : + L30_1if_f: ; + *((IUH *)&(r21)) = (IS32)(288) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1431) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) == *((IU8 *)&(r22) + REGBYTE)) goto L30_5or2; + *((IUH *)&(r20)) = (IS32)(1431) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L30_3if_f; + case L30_5or2_id : + L30_5or2: ; + *((IUH *)&(r21)) = (IS32)(1404) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IU32 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) <= *((IU32 *)&(r22) + REGLONG)) goto L30_6if_f; + { extern IHPE j_EvidWriteFuncs; *((IUH *)&(r20)) = j_EvidWriteFuncs; } + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(48) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1472) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1476) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1480) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1484) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1488) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1492) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1496) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1500) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1504) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1508) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1512) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1516) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + { extern IUH L30_0endgen() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L30_0endgen(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L30_6if_f_id : + L30_6if_f: ; + *((IUH *)&(r21)) = (IS32)(1431) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L30_7if_f; + *((IUH *)&(r20)) = (IS32)(240) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r21)) ; + { extern IUH L30_8if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L30_8if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L30_7if_f_id : + L30_7if_f: ; + *((IUH *)&(r20)) = (IS32)(1248) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r21)) ; + case L30_8if_d_id : + L30_8if_d: ; + *((IUH *)&(r20)) = (IS32)(1430) ; + *((IUH *)&(r22)) = (IS32)(0) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L30_9if_f; + { extern IHPE j_modeLookup; *((IUH *)&(r21)) = j_modeLookup; } + *((IUH *)&(r22)) = (IS32)(1432) ; + *((IUH *)&(r20)) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r22))) ); + *((IUH *)&(r23)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r23)) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) + *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(12) ; + *((IUH *)&(r20)) = *((IUH *)(*((IHPE *)&(r21))) ) * *((IUH *)&(r22)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r22)) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) + *((IUH *)(LocalIUH+0)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r20)) ; + { extern IUH L30_10if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L30_10if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L30_9if_f_id : + L30_9if_f: ; + *((IUH *)&(r21)) = (IS32)(1430) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L30_11if_f; + *((IUH *)&(r20)) = (IS32)(576) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r21)) ; + { extern IUH L30_12if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L30_12if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L30_11if_f_id : + L30_11if_f: ; + *((IUH *)&(r20)) = (IS32)(1430) ; + *((IUH *)&(r22)) = (IS32)(2) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L30_13if_f; + *((IUH *)&(r21)) = (IS32)(624) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1432) ; + *((IUH *)&(r22)) = (IS32)(15) ; + *((IU8 *)&(r20) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) & *((IU8 *)&(r22) + REGBYTE); + { extern IHPE j_modeLookup; *((IUH *)&(r21)) = j_modeLookup; } + *((IUH *)&(r20)) = *((IU8 *)&(r20) + REGBYTE); + *((IUH *)&(r23)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r23)) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) + *((IUH *)&(r21)) ; + *((IUH *)&(r22)) = (IS32)(12) ; + *((IUH *)&(r21)) = *((IUH *)(*((IHPE *)&(r20))) ) * *((IUH *)&(r22)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) + *((IUH *)(LocalIUH+0)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r21)) ; + { extern IUH L30_14if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L30_14if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L30_13if_f_id : + L30_13if_f: ; + *((IUH *)&(r20)) = (IS32)(816) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1432) ; + *((IUH *)&(r22)) = (IS32)(15) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) & *((IU8 *)&(r22) + REGBYTE); + { extern IHPE j_modeLookup; *((IUH *)&(r20)) = j_modeLookup; } + *((IUH *)&(r21)) = *((IU8 *)&(r21) + REGBYTE); + *((IUH *)&(r23)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r23)) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) + *((IUH *)&(r20)) ; + *((IUH *)&(r22)) = (IS32)(12) ; + *((IUH *)&(r20)) = *((IUH *)(*((IHPE *)&(r21))) ) * *((IUH *)&(r22)) ; + *((IUH *)&(r22)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r22)) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) + *((IUH *)(LocalIUH+0)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r20)) ; + case L30_14if_d_id : + L30_14if_d: ; + case L30_12if_d_id : + L30_12if_d: ; + case L30_10if_d_id : + L30_10if_d: ; + { extern IUH L30_4if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L30_4if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L30_3if_f_id : + L30_3if_f: ; + *((IUH *)&(r21)) = (IS32)(1431) ; + *((IUH *)&(r22)) = (IS32)(1) ; + if (*((IS8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) != *((IS8 *)&(r22) + REGBYTE)) goto L30_15if_f; + *((IUH *)&(r20)) = (IS32)(1430) ; + *((IUH *)&(r22)) = (IS32)(12) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) * *((IU8 *)&(r22) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU8 *)&(r21) + REGBYTE); + *((IUH *)&(r22)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) + *((IUH *)(LocalIUH+0)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r21)) ; + { extern IUH L30_16if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L30_16if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L30_15if_f_id : + L30_15if_f: ; + { extern IHPE j_EvidWriteFuncs; *((IUH *)&(r20)) = j_EvidWriteFuncs; } + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r20)) ; + case L30_16if_d_id : + L30_16if_d: ; + case L30_4if_d_id : + L30_4if_d: ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1472) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1476) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1480) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1484) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1488) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1492) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1496) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1500) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1504) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1508) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1512) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)(LocalIUH+0)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1516) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+0)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) ; + case L30_2if_d_id : + L30_2if_d: ; + case L30_0endgen_id : + L30_0endgen: ; + *((IUH *)(r1+0)) = (IS32)(6714) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0442_CisetReadPointers_0000004f_id : + S_0442_CisetReadPointers_0000004f : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 8 > 0 ) LocalIUH = (IUH *)malloc ( 8 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r20)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6715) ; + { extern IHPE j_EvidReadFuncs; *((IUH *)&(r21)) = j_EvidReadFuncs; } + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(0) ; + if (*((ISH *)(LocalIUH+0)) != *((ISH *)&(r20))) goto L30_17if_f; + *((IUH *)&(r21)) = (IS32)(40) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1431) ; + *((IUH *)&(r22)) = (IS32)(5) ; + *((IU8 *)&(r20) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) * *((IU8 *)&(r22) + REGBYTE) ; + *((IUH *)&(r20)) = *((IU8 *)&(r20) + REGBYTE); + *((IUH *)&(r22)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) * *((IUH *)&(r22)) ; + *((IUH *)&(r20)) = *((IUH *)&(r20)) + *((IUH *)(LocalIUH+1)) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1536) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1540) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1544) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1548) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1552) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + { extern IUH L30_18if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L30_18if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L30_17if_f_id : + L30_17if_f: ; + *((IUH *)&(r21)) = (IS32)(1) ; + if (*((ISH *)(LocalIUH+0)) != *((ISH *)&(r21))) goto L30_19if_f; + *((IUH *)&(r20)) = (IS32)(100) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1431) ; + *((IUH *)&(r22)) = (IS32)(5) ; + *((IU8 *)&(r21) + REGBYTE) = *((IU8 *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) * *((IU8 *)&(r22) + REGBYTE) ; + *((IUH *)&(r21)) = *((IU8 *)&(r21) + REGBYTE); + *((IUH *)&(r22)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) * *((IUH *)&(r22)) ; + *((IUH *)&(r21)) = *((IUH *)&(r21)) + *((IUH *)(LocalIUH+1)) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1536) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1540) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1544) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1548) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1552) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + { extern IUH L30_20if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L30_20if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L30_19if_f_id : + L30_19if_f: ; + *((IUH *)&(r20)) = (IS32)(3) ; + if (*((ISH *)(LocalIUH+0)) != *((ISH *)&(r20))) goto L30_21if_f; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1536) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1540) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1544) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1548) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1552) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + { extern IUH L30_22if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L30_22if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L30_21if_f_id : + L30_21if_f: ; + *((IUH *)&(r21)) = (IS32)(20) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1536) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1540) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1544) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1548) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1552) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) ; + case L30_22if_d_id : + L30_22if_d: ; + case L30_20if_d_id : + L30_20if_d: ; + case L30_18if_d_id : + L30_18if_d: ; + *((IUH *)(r1+0)) = (IS32)(6716) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ + /* J_SEG (IS32)(0) */ + case S_0443_CisetMarkPointers_00000050_id : + S_0443_CisetMarkPointers_00000050 : + *((IUH *)&(r2)) = v1 ; + /* ENTER_SECTION */ CopyLocalIUH=LocalIUH; CopyLocalFPH=LocalFPH; + if( 8 > 0 ) LocalIUH = (IUH *)malloc ( 8 ) ; + if( 0 > 0 ) LocalFPH = (EXTENDED *)malloc ( 0 ) ; + { extern IHPE j_Gdp; *((IUH *)&(r20)) = j_Gdp; } + *((IUH *)&(r1)) = *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+0)) = *((IUH *)&(r2)) ; + *((IUH *)&(r17)) = *((IUH *)(r1+164)) ; + *((IUH *)&(r16)) = *((IUH *)(r1+168)) ; + *((IUH *)&(r15)) = *((IUH *)(r1+172)) ; + *((IUH *)&(r14)) = *((IUH *)(r1+176)) ; + *((IUH *)&(r13)) = *((IUH *)(r1+524)) ; + *((IUH *)&(r12)) = *((IUH *)(r1+552)) ; + *((IUH *)&(r11)) = *((IUH *)(r1+3064)) ; + *((IUH *)&(r10)) = *((IUH *)(r1+416)) ; + *((IUH *)&(r9)) = *((IUH *)(r1+420)) ; + *((IUH *)(r1+0)) = (IS32)(6717) ; + { extern IHPE j_EvidMarkFuncs; *((IUH *)&(r21)) = j_EvidMarkFuncs; } + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(2) ; + if (*((ISH *)(LocalIUH+0)) != *((ISH *)&(r20))) goto L30_23if_f; + *((IUH *)&(r21)) = (IS32)(32) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1356) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1360) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1364) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + { extern IUH L30_24if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L30_24if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L30_23if_f_id : + L30_23if_f: ; + *((IUH *)&(r21)) = (IS32)(0) ; + if (*((ISH *)(LocalIUH+0)) != *((ISH *)&(r21))) goto L30_25if_f; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1356) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1360) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r20)) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(1364) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r21))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + { extern IUH L30_26if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L30_26if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L30_25if_f_id : + L30_25if_f: ; + *((IUH *)&(r20)) = (IS32)(3) ; + if (*((ISH *)(LocalIUH+0)) != *((ISH *)&(r20))) goto L30_27if_f; + *((IUH *)&(r21)) = (IS32)(48) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1356) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1360) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1364) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + { extern IUH L30_28if_d() ; + IUH returnValue,v1=0,v2=0,v3=0,v4=0; returnValue = L30_28if_d(v1,v2,v3,v4); return(returnValue); } + /* j_state (IS32)(-2013004285), (IS32)(0), (IS32)(0) */ + case L30_27if_f_id : + L30_27if_f: ; + *((IUH *)&(r21)) = (IS32)(16) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1356) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1360) ; + *((IUH *)&(r22)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r23)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r22))) + *((IHPE *)&(r23))) ) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)&(r20)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)&(r20)) ; + *((IUH *)&(r21)) = (IS32)(4) ; + *((IUH *)(LocalIUH+1)) = *((IUH *)(LocalIUH+1)) + *((IUH *)&(r21)) ; + *((IUH *)&(r20)) = (IS32)(1364) ; + *((IUH *)&(r21)) = *((IUH *)(LocalIUH+1)) ; + *((IUH *)&(r22)) = (IS32)(-4) ; + *((IUH *)((*((IHPE *)&(r1))) + *((IHPE *)&(r20))) ) = *((IUH *)((*((IHPE *)&(r21))) + *((IHPE *)&(r22))) ) ; + case L30_28if_d_id : + L30_28if_d: ; + case L30_26if_d_id : + L30_26if_d: ; + case L30_24if_d_id : + L30_24if_d: ; + *((IUH *)(r1+0)) = (IS32)(6718) ; + *((IUH *)(r1+164)) = *((IUH *)&(r17)) ; + *((IUH *)(r1+168)) = *((IUH *)&(r16)) ; + *((IUH *)(r1+172)) = *((IUH *)&(r15)) ; + *((IUH *)(r1+176)) = *((IUH *)&(r14)) ; + *((IUH *)(r1+524)) = *((IUH *)&(r13)) ; + *((IUH *)(r1+552)) = *((IUH *)&(r12)) ; + *((IUH *)(r1+3064)) = *((IUH *)&(r11)) ; + *((IUH *)(r1+416)) = *((IUH *)&(r10)) ; + *((IUH *)(r1+420)) = *((IUH *)&(r9)) ; + /* J_LEAVE_SECTION */ + if(LocalIUH) free(LocalIUH) ; + if(LocalFPH) free(LocalFPH); + LocalIUH=CopyLocalIUH ;LocalFPH= CopyLocalFPH; + return ; + /* j_state (IS32)(-2013004285), (IS32)(-1), (IS32)(0) */ +/* END of inline CODE */ +/* CODE outline section */ +} +} +/* END of outline CODE */ diff --git a/private/mvdm/softpc.new/base/cvidc/sources b/private/mvdm/softpc.new/base/cvidc/sources new file mode 100644 index 000000000..ab65b14e2 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sources @@ -0,0 +1,92 @@ +!IF 0 + +Copyright (c) 1989 Microsoft Corporation + +Module Name: + + sources. + +Abstract: + + This file specifies the target component being built and the list of + sources files needed to build that component. Also specifies optional + compiler switches and libraries that are unique for the component being + built. + + +Author: + + Steve Wood (stevewo) 12-Apr-1990 + +NOTE: Commented description of this file is in \nt\bak\bin\sources.tpl + +!ENDIF + + +MAJORCOMP=spclib +MINORCOMP=ccpu + +TARGETNAME=Cvidc + +TARGETPATH=obj + + +NTPROFILEINPUT=yes + +# Pick one of the following and delete the others +TARGETTYPE=LIBRARY + + +TARGETLIBS= + +SOFTPC_TREE=$(BASEDIR)\private\mvdm\softpc.new + +INCLUDES=$(SOFTPC_TREE)\base\jcode\hdigest\c;$(SOFTPC_TREE)\host\inc;$(SOFTPC_TREE)\base\inc;. + +GPSIZE=32 + + + +SOURCES= SINIT011.c \ + SINIT012.c \ + SINIT013.c \ + SEVID000.c \ + SEVID001.c \ + SEVID002.c \ + SEVID003.c \ + SEVID004.c \ + SEVID005.c \ + SEVID006.c \ + SEVID007.c \ + SEVID008.c \ + SEVID009.c \ + SEVID010.c \ + SEVID011.c \ + SEVID012.c \ + SEVID013.c \ + SEVID014.c \ + SEVID015.c \ + SEVID016.c \ + SEVID017.c \ + SEVID018.c \ + SEVID019.c \ + SEVID020.c \ + SEVID021.c \ + SEVID022.c \ + SEVID023.c \ + SEVID024.c \ + SEVID025.c \ + SEVID026.c \ + SEVID027.c \ + SEVID028.c \ + SEVID029.c \ + SEVID030.c \ + ev_glue.c \ + evidfunc.c \ + j_c_lang.c \ + accessfn.c \ + vglfunc.c + + +!INCLUDE ccpudefs.inc +UMTYPE=console diff --git a/private/mvdm/softpc.new/base/cvidc/stack_c.h b/private/mvdm/softpc.new/base/cvidc/stack_c.h new file mode 100644 index 000000000..162c4b3a6 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/stack_c.h @@ -0,0 +1,45 @@ +#ifndef _Stack_c_h +#define _Stack_c_h +#define STACK_SAFETY_MARGIN_SHIFT (5) +#define STACK_SAFETY_MARGIN (32) +#define PAGE_SIZE (4096) +#define STK16_ITEM_SZ (2) +#define STK32_ITEM_SZ (4) +#define STK16_SLOT8 (-8) +#define STK16_SLOT7 (-7) +#define STK16_SLOT6 (-6) +#define STK16_SLOT5 (-5) +#define STK16_SLOT4 (-4) +#define STK16_SLOT3 (-3) +#define STK16_SLOT2 (-2) +#define STK16_SLOT1 (-1) +#define STK16_ITEM1 (0) +#define STK16_ITEM2 (1) +#define STK16_ITEM3 (2) +#define STK16_ITEM4 (3) +#define STK16_ITEM5 (4) +#define STK16_ITEM6 (5) +#define STK16_ITEM7 (6) +#define STK16_ITEM8 (7) +#define STK32_SLOT8 (-8) +#define STK32_SLOT7 (-7) +#define STK32_SLOT6 (-6) +#define STK32_SLOT5 (-5) +#define STK32_SLOT4 (-4) +#define STK32_SLOT3 (-3) +#define STK32_SLOT2 (-2) +#define STK32_SLOT1 (-1) +#define STK32_ITEM1 (0) +#define STK32_ITEM2 (1) +#define STK32_ITEM3 (2) +#define STK32_ITEM4 (3) +#define STK32_ITEM5 (4) +#define STK32_ITEM6 (5) +#define STK32_ITEM7 (6) +#define STK32_ITEM8 (7) +enum IronRequestType +{ + IRON_STACK = 0, + IRON_STRUCT = 1 +}; +#endif /* ! _Stack_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/string_c.h b/private/mvdm/softpc.new/base/cvidc/string_c.h new file mode 100644 index 000000000..59b6f8ca0 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/string_c.h @@ -0,0 +1,3 @@ +#ifndef _String_c_h +#define _String_c_h +#endif /* ! _String_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/strint_c.h b/private/mvdm/softpc.new/base/cvidc/strint_c.h new file mode 100644 index 000000000..f32518282 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/strint_c.h @@ -0,0 +1,6 @@ +#ifndef _StrInt_c_h +#define _StrInt_c_h +#define INTEL_FORWARDS (1) +#define INTEL_BACKWARDS (0) +#define BackwardsM (1) +#endif /* ! _StrInt_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/strsub_c.h b/private/mvdm/softpc.new/base/cvidc/strsub_c.h new file mode 100644 index 000000000..ce215513c --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/strsub_c.h @@ -0,0 +1,3 @@ +#ifndef _StrSub_c_h +#define _StrSub_c_h +#endif /* ! _StrSub_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/stub_c.h b/private/mvdm/softpc.new/base/cvidc/stub_c.h new file mode 100644 index 000000000..ae420101c --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/stub_c.h @@ -0,0 +1,3 @@ +#ifndef _Stub_c_h +#define _Stub_c_h +#endif /* ! _Stub_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/sub_c.h b/private/mvdm/softpc.new/base/cvidc/sub_c.h new file mode 100644 index 000000000..37fd18a34 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sub_c.h @@ -0,0 +1,3 @@ +#ifndef _Sub_c_h +#define _Sub_c_h +#endif /* ! _Sub_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/sunhst_c.h b/private/mvdm/softpc.new/base/cvidc/sunhst_c.h new file mode 100644 index 000000000..e289c6b5c --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/sunhst_c.h @@ -0,0 +1,10 @@ +#ifndef _Sunhst_c_h +#define _Sunhst_c_h +#define SunBranchCodeSizeAdjustment (2) +#define SUN_HOST_DEST_REG_ID (16) +#define SunPureAddressAdjustment (8) +#define SunCallToRetAddrAdjustment (8) +#define SunFpuOverflowExceptionBit (8) +#define SunFpuUnderflowExceptionBit (7) +#define SunFpuPrecisionExceptionBit (5) +#endif /* ! _Sunhst_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/task_c.h b/private/mvdm/softpc.new/base/cvidc/task_c.h new file mode 100644 index 000000000..4c9c9e084 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/task_c.h @@ -0,0 +1,9 @@ +#ifndef _Task_c_h +#define _Task_c_h +#define TSS386_MINLIM (103) +#define TSS386_EIP_OFFSET (32) +#define TSS386_CR3_OFFSET (28) +#define TSS386_IO_MAP_PTR_OFS (102) +#define TSS286_MINLIM (41) +#define TSS286_IP_OFFSET (14) +#endif /* ! _Task_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/test_c.h b/private/mvdm/softpc.new/base/cvidc/test_c.h new file mode 100644 index 000000000..fcef18b99 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/test_c.h @@ -0,0 +1,3 @@ +#ifndef _Test_c_h +#define _Test_c_h +#endif /* ! _Test_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/trace_c.h b/private/mvdm/softpc.new/base/cvidc/trace_c.h new file mode 100644 index 000000000..a16351a99 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/trace_c.h @@ -0,0 +1,18 @@ +#ifndef _Trace_c_h +#define _Trace_c_h +enum TraceBits +{ + TraceRecordBit = 0, + TraceDisplayBit = 1, + TracePromptBit = 2, + TraceProfileBit = 3 +}; +struct TraceRingREC +{ + IUH *start; + IUH *insert; + IUH *end; + IUH size; + IUH count; +}; +#endif /* ! _Trace_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/unchn_c.h b/private/mvdm/softpc.new/base/cvidc/unchn_c.h new file mode 100644 index 000000000..8cdef0321 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/unchn_c.h @@ -0,0 +1,3 @@ +#ifndef _Unchn_c_h +#define _Unchn_c_h +#endif /* ! _Unchn_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/univer_c.h b/private/mvdm/softpc.new/base/cvidc/univer_c.h new file mode 100644 index 000000000..ee6708721 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/univer_c.h @@ -0,0 +1,35 @@ +#ifndef _Univer_c_h +#define _Univer_c_h +#define CsHashTableSize (128) +#define CsHashTableMask (127) +#define universeHandleBits (11) +#define UniHashTableSize (8192) +#define ConstraintGuessNULL ((struct ConstraintGuessREC*)0) +#define CsSelectorGuessNULL ((struct CsSelectorGuessREC*)0) +#define CsSelectorHashNULL ((struct CsSelectorHashREC*)0) +#define NumberOfUniverses (2000) +struct ConstraintGuessREC +{ + IU16 constraint; + IS16 handleAdjust; + IUH notUsed; +}; +struct CsSelectorGuessREC +{ + IUH notUsed; + IU16 CodeSegSelector; + IS16 handleAdjust; +}; +struct UniHashREC +{ + IU16 uniHandle; + IS16 nextHashAdjust; +}; +struct CsSelectorHashREC +{ + struct EntryPointCacheREC *oldUniverse; + IU16 newCs; + struct EntryPointCacheREC *newUniverse; + struct CsSelectorHashREC *missLoop; +}; +#endif /* ! _Univer_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/vglfunc.c b/private/mvdm/softpc.new/base/cvidc/vglfunc.c new file mode 100644 index 000000000..ef7880f0a --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/vglfunc.c @@ -0,0 +1,169 @@ +#include "insignia.h" +#include "host_def.h" + +#include "evidgen.h" + + +extern IHPE S_0363_CiGetVideolatches_00000000 IFN0(); +extern IHPE S_0364_CiGetVideorplane_00000001 IFN0(); +extern IHPE S_0365_CiGetVideowplane_00000002 IFN0(); +extern IHPE S_0366_CiGetVideoscratch_00000003 IFN0(); +extern IHPE S_0367_CiGetVideosr_masked_val_00000004 IFN0(); +extern IHPE S_0368_CiGetVideosr_nmask_00000005 IFN0(); +extern IHPE S_0369_CiGetVideodata_and_mask_00000006 IFN0(); +extern IHPE S_0370_CiGetVideodata_xor_mask_00000007 IFN0(); +extern IHPE S_0371_CiGetVideolatch_xor_mask_00000008 IFN0(); +extern IHPE S_0372_CiGetVideobit_prot_mask_00000009 IFN0(); +extern IHPE S_0373_CiGetVideoplane_enable_0000000a IFN0(); +extern IHPE S_0374_CiGetVideoplane_enable_mask_0000000b IFN0(); +extern IHPE S_0375_CiGetVideosr_lookup_0000000c IFN0(); +extern IHPE S_0376_CiGetVideofwd_str_read_addr_0000000d IFN0(); +extern IHPE S_0377_CiGetVideobwd_str_read_addr_0000000e IFN0(); +extern IHPE S_0378_CiGetVideodirty_total_0000000f IFN0(); +extern IHPE S_0379_CiGetVideodirty_low_00000010 IFN0(); +extern IHPE S_0380_CiGetVideodirty_high_00000011 IFN0(); +extern IHPE S_0381_CiGetVideovideo_copy_00000012 IFN0(); +extern IHPE S_0382_CiGetVideomark_byte_00000013 IFN0(); +extern IHPE S_0383_CiGetVideomark_word_00000014 IFN0(); +extern IHPE S_0384_CiGetVideomark_string_00000015 IFN0(); +extern IHPE S_0385_CiGetVideoread_shift_count_00000016 IFN0(); +extern IHPE S_0386_CiGetVideoread_mapped_plane_00000017 IFN0(); +extern IHPE S_0387_CiGetVideocolour_comp_00000018 IFN0(); +extern IHPE S_0388_CiGetVideodont_care_00000019 IFN0(); +extern IHPE S_0389_CiGetVideov7_bank_vid_copy_off_0000001a IFN0(); +extern IHPE S_0390_CiGetVideoscreen_ptr_0000001b IFN0(); +extern IHPE S_0391_CiGetVideorotate_0000001c IFN0(); +extern IHPE S_0392_CiGetVideocalc_data_xor_0000001d IFN0(); +extern IHPE S_0393_CiGetVideocalc_latch_xor_0000001e IFN0(); +extern IHPE S_0394_CiGetVideoread_byte_addr_0000001f IFN0(); +extern IHPE S_0395_CiGetVideov7_fg_latches_00000020 IFN0(); +extern IHPE S_0396_CiGetVideoGC_regs_00000021 IFN0(); +extern IHPE S_0397_CiGetVideolast_GC_index_00000022 IFN0(); +extern IHPE S_0398_CiGetVideodither_00000023 IFN0(); +extern IHPE S_0399_CiGetVideowrmode_00000024 IFN0(); +extern IHPE S_0400_CiGetVideochain_00000025 IFN0(); +extern IHPE S_0401_CiGetVideowrstate_00000026 IFN0(); +extern void S_0402_CiSetVideolatches_00000027 IFN1(IHPE, value); +extern void S_0403_CiSetVideorplane_00000028 IFN1(IHPE, value); +extern void S_0404_CiSetVideowplane_00000029 IFN1(IHPE, value); +extern void S_0405_CiSetVideoscratch_0000002a IFN1(IHPE, value); +extern void S_0406_CiSetVideosr_masked_val_0000002b IFN1(IHPE, value); +extern void S_0407_CiSetVideosr_nmask_0000002c IFN1(IHPE, value); +extern void S_0408_CiSetVideodata_and_mask_0000002d IFN1(IHPE, value); +extern void S_0409_CiSetVideodata_xor_mask_0000002e IFN1(IHPE, value); +extern void S_0410_CiSetVideolatch_xor_mask_0000002f IFN1(IHPE, value); +extern void S_0411_CiSetVideobit_prot_mask_00000030 IFN1(IHPE, value); +extern void S_0412_CiSetVideoplane_enable_00000031 IFN1(IHPE, value); +extern void S_0413_CiSetVideoplane_enable_mask_00000032 IFN1(IHPE, value); +extern void S_0414_CiSetVideosr_lookup_00000033 IFN1(IHPE, value); +extern void S_0415_CiSetVideofwd_str_read_addr_00000034 IFN1(IHPE, value); +extern void S_0416_CiSetVideobwd_str_read_addr_00000035 IFN1(IHPE, value); +extern void S_0417_CiSetVideodirty_total_00000036 IFN1(IHPE, value); +extern void S_0418_CiSetVideodirty_low_00000037 IFN1(IHPE, value); +extern void S_0419_CiSetVideodirty_high_00000038 IFN1(IHPE, value); +extern void S_0420_CiSetVideovideo_copy_00000039 IFN1(IHPE, value); +extern void S_0421_CiSetVideomark_byte_0000003a IFN1(IHPE, value); +extern void S_0422_CiSetVideomark_word_0000003b IFN1(IHPE, value); +extern void S_0423_CiSetVideomark_string_0000003c IFN1(IHPE, value); +extern void S_0424_CiSetVideoread_shift_count_0000003d IFN1(IHPE, value); +extern void S_0425_CiSetVideoread_mapped_plane_0000003e IFN1(IHPE, value); +extern void S_0426_CiSetVideocolour_comp_0000003f IFN1(IHPE, value); +extern void S_0427_CiSetVideodont_care_00000040 IFN1(IHPE, value); +extern void S_0428_CiSetVideov7_bank_vid_copy_off_00000041 IFN1(IHPE, value); +extern void S_0429_CiSetVideoscreen_ptr_00000042 IFN1(IHPE, value); +extern void S_0430_CiSetVideorotate_00000043 IFN1(IHPE, value); +extern void S_0431_CiSetVideocalc_data_xor_00000044 IFN1(IHPE, value); +extern void S_0432_CiSetVideocalc_latch_xor_00000045 IFN1(IHPE, value); +extern void S_0433_CiSetVideoread_byte_addr_00000046 IFN1(IHPE, value); +extern void S_0434_CiSetVideov7_fg_latches_00000047 IFN1(IHPE, value); +extern void S_0435_CiSetVideoGC_regs_00000048 IFN1(IHPE, value); +extern void S_0436_CiSetVideolast_GC_index_00000049 IFN1(IHPE, value); +extern void S_0437_CiSetVideodither_0000004a IFN1(IHPE, value); +extern void S_0438_CiSetVideowrmode_0000004b IFN1(IHPE, value); +extern void S_0439_CiSetVideochain_0000004c IFN1(IHPE, value); +extern void S_0440_CiSetVideowrstate_0000004d IFN1(IHPE, value); + +struct VideoVector C_Video = + { + + S_0363_CiGetVideolatches_00000000, + S_0364_CiGetVideorplane_00000001, + S_0365_CiGetVideowplane_00000002, + S_0366_CiGetVideoscratch_00000003, + S_0367_CiGetVideosr_masked_val_00000004, + S_0368_CiGetVideosr_nmask_00000005, + S_0369_CiGetVideodata_and_mask_00000006, + S_0370_CiGetVideodata_xor_mask_00000007, + S_0371_CiGetVideolatch_xor_mask_00000008, + S_0372_CiGetVideobit_prot_mask_00000009, + S_0373_CiGetVideoplane_enable_0000000a, + S_0374_CiGetVideoplane_enable_mask_0000000b, + S_0375_CiGetVideosr_lookup_0000000c, + S_0376_CiGetVideofwd_str_read_addr_0000000d, + S_0377_CiGetVideobwd_str_read_addr_0000000e, + S_0378_CiGetVideodirty_total_0000000f, + S_0379_CiGetVideodirty_low_00000010, + S_0380_CiGetVideodirty_high_00000011, + S_0381_CiGetVideovideo_copy_00000012, + S_0382_CiGetVideomark_byte_00000013, + S_0383_CiGetVideomark_word_00000014, + S_0384_CiGetVideomark_string_00000015, + S_0385_CiGetVideoread_shift_count_00000016, + S_0386_CiGetVideoread_mapped_plane_00000017, + S_0387_CiGetVideocolour_comp_00000018, + S_0388_CiGetVideodont_care_00000019, + S_0389_CiGetVideov7_bank_vid_copy_off_0000001a, + S_0390_CiGetVideoscreen_ptr_0000001b, + S_0391_CiGetVideorotate_0000001c, + S_0392_CiGetVideocalc_data_xor_0000001d, + S_0393_CiGetVideocalc_latch_xor_0000001e, + S_0394_CiGetVideoread_byte_addr_0000001f, + S_0395_CiGetVideov7_fg_latches_00000020, + S_0396_CiGetVideoGC_regs_00000021, + S_0397_CiGetVideolast_GC_index_00000022, + S_0398_CiGetVideodither_00000023, + S_0399_CiGetVideowrmode_00000024, + S_0400_CiGetVideochain_00000025, + S_0401_CiGetVideowrstate_00000026, + S_0402_CiSetVideolatches_00000027, + S_0403_CiSetVideorplane_00000028, + S_0404_CiSetVideowplane_00000029, + S_0405_CiSetVideoscratch_0000002a, + S_0406_CiSetVideosr_masked_val_0000002b, + S_0407_CiSetVideosr_nmask_0000002c, + S_0408_CiSetVideodata_and_mask_0000002d, + S_0409_CiSetVideodata_xor_mask_0000002e, + S_0410_CiSetVideolatch_xor_mask_0000002f, + S_0411_CiSetVideobit_prot_mask_00000030, + S_0412_CiSetVideoplane_enable_00000031, + S_0413_CiSetVideoplane_enable_mask_00000032, + S_0414_CiSetVideosr_lookup_00000033, + S_0415_CiSetVideofwd_str_read_addr_00000034, + S_0416_CiSetVideobwd_str_read_addr_00000035, + S_0417_CiSetVideodirty_total_00000036, + S_0418_CiSetVideodirty_low_00000037, + S_0419_CiSetVideodirty_high_00000038, + S_0420_CiSetVideovideo_copy_00000039, + S_0421_CiSetVideomark_byte_0000003a, + S_0422_CiSetVideomark_word_0000003b, + S_0423_CiSetVideomark_string_0000003c, + S_0424_CiSetVideoread_shift_count_0000003d, + S_0425_CiSetVideoread_mapped_plane_0000003e, + S_0426_CiSetVideocolour_comp_0000003f, + S_0427_CiSetVideodont_care_00000040, + S_0428_CiSetVideov7_bank_vid_copy_off_00000041, + S_0429_CiSetVideoscreen_ptr_00000042, + S_0430_CiSetVideorotate_00000043, + S_0431_CiSetVideocalc_data_xor_00000044, + S_0432_CiSetVideocalc_latch_xor_00000045, + S_0433_CiSetVideoread_byte_addr_00000046, + S_0434_CiSetVideov7_fg_latches_00000047, + S_0435_CiSetVideoGC_regs_00000048, + S_0436_CiSetVideolast_GC_index_00000049, + S_0437_CiSetVideodither_0000004a, + S_0438_CiSetVideowrmode_0000004b, + S_0439_CiSetVideochain_0000004c, + S_0440_CiSetVideowrstate_0000004d, +}; + + diff --git a/private/mvdm/softpc.new/base/cvidc/vglob.c b/private/mvdm/softpc.new/base/cvidc/vglob.c new file mode 100644 index 000000000..e69de29bb diff --git a/private/mvdm/softpc.new/base/cvidc/vglob_c.h b/private/mvdm/softpc.new/base/cvidc/vglob_c.h new file mode 100644 index 000000000..b81f1942a --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/vglob_c.h @@ -0,0 +1,6 @@ +#ifndef _Vglob_c_h +#define _Vglob_c_h +#define NUM_WRITE_FUNCS (12) +#define NUM_MARK_FUNCS (4) +#define NUM_READ_FUNCS (5) +#endif /* ! _Vglob_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/xchg_c.h b/private/mvdm/softpc.new/base/cvidc/xchg_c.h new file mode 100644 index 000000000..450a69af7 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/xchg_c.h @@ -0,0 +1,3 @@ +#ifndef _Xchg_c_h +#define _Xchg_c_h +#endif /* ! _Xchg_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/xfer_c.h b/private/mvdm/softpc.new/base/cvidc/xfer_c.h new file mode 100644 index 000000000..7bee6a3f5 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/xfer_c.h @@ -0,0 +1,15 @@ +#ifndef _Xfer_c_h +#define _Xfer_c_h +#define PMDC_SAMELEVEL (4) +#define PMDC_RING2 (2) +#define PMDC_RING1 (1) +#define PMDC_RING0 (0) +#define PM_SS_TSS (1) +#define PM_SS_STK (2) +enum xferTypeEnum +{ + PMXT_CALLF = 0, + PMXT_JMPF = 1, + PMXT_INT = 2 +}; +#endif /* ! _Xfer_c_h */ diff --git a/private/mvdm/softpc.new/base/cvidc/xlat_c.h b/private/mvdm/softpc.new/base/cvidc/xlat_c.h new file mode 100644 index 000000000..49a871ae8 --- /dev/null +++ b/private/mvdm/softpc.new/base/cvidc/xlat_c.h @@ -0,0 +1,3 @@ +#ifndef _Xlat_c_h +#define _Xlat_c_h +#endif /* ! _Xlat_c_h */ diff --git a/private/mvdm/softpc.new/base/dasm386/build.c b/private/mvdm/softpc.new/base/dasm386/build.c new file mode 100644 index 000000000..204d4d005 --- /dev/null +++ b/private/mvdm/softpc.new/base/dasm386/build.c @@ -0,0 +1,12 @@ +/* + * Dummy file to make DASM386 build for NT prod variants. + */ + +void BuildTheProdMasterPackYouBugger(void) +{ +/* + * Recurse! + */ + +BuildTheProdMasterPackYouBugger(); +} diff --git a/private/mvdm/softpc.new/base/dasm386/dasm386.c b/private/mvdm/softpc.new/base/dasm386/dasm386.c new file mode 100644 index 000000000..8679275ec --- /dev/null +++ b/private/mvdm/softpc.new/base/dasm386/dasm386.c @@ -0,0 +1,1254 @@ +/*[ + + dasm.c + + LOCAL CHAR SccsID[]="@(#)dasm386.c 1.14 07/25/94 Copyright Insignia Solutions Ltd."; + + Dis-assemble an Intel Instruction + --------------------------------- + + The possible formats are:- + + ssss:oooo 11223344 PRE INST ARGS + + ssss:oooo 11223344556677 + PRE PRE INST ARGS + + ssss:oooo 1122334455667788 INST ARGS + 99001122334455 + + ssss:oooo 1122334455667788 + 99001122334455 + PRE PRE INST ARGS + + ssss:oooo 1122334455667788 INST ARGS + + etc. +]*/ + +#include "insignia.h" +#include "host_def.h" +#include "xt.h" + + +#include + +/* dasm386 forms part of the ccpu386.o (and ccpu386.o) libraries + * used for pigging, and as part of spc.ccpu386. + * When used for pigging the CCPU sas is not available, and will + * cause link errors is "sas_hw_at" is used in this file. + * We #undef CCPU to avoid this problem sogul "sas_xxx" be added + * in this file at a later date. + */ +#ifdef PIG +#undef CCPU +#endif /* PIG */ +#include "sas.h" + +#define DASM_INTERNAL +#include "decode.h" +#include "dasm.h" +#include "d_oper.h" +#include "d_inst.h" + +#include CpuH + +/* + The instruction names. + **MUST** be in same order as "d_inst.h". + */ +LOCAL CHAR *inst_name[] = + { + "AAA", /* I_AAA */ + "AAD", /* I_AAD */ + "AAM", /* I_AAM */ + "AAS", /* I_AAS */ + "ADC", /* I_ADC8 */ + "ADC", /* I_ADC16 */ + "ADC", /* I_ADC32 */ + "ADD", /* I_ADD8 */ + "ADD", /* I_ADD16 */ + "ADD", /* I_ADD32 */ + "AND", /* I_AND8 */ + "AND", /* I_AND16 */ + "AND", /* I_AND32 */ + "ARPL", /* I_ARPL */ + "BOUND", /* I_BOUND16 */ + "BOUND", /* I_BOUND32 */ + "BSF", /* I_BSF16 */ + "BSF", /* I_BSF32 */ + "BSR", /* I_BSR16 */ + "BSR", /* I_BSR32 */ + "BSWAP", /* I_BSWAP */ + "BT", /* I_BT16 */ + "BT", /* I_BT32 */ + "BTC", /* I_BTC16 */ + "BTC", /* I_BTC32 */ + "BTR", /* I_BTR16 */ + "BTR", /* I_BTR32 */ + "BTS", /* I_BTS16 */ + "BTS", /* I_BTS32 */ + "CALLF", /* I_CALLF16 */ + "CALLF", /* I_CALLF32 */ + "CALLN", /* I_CALLN16 */ + "CALLN", /* I_CALLN32 */ + "CALLN", /* I_CALLR16 */ + "CALLN", /* I_CALLR32 */ + "CBW", /* I_CBW */ + "CDQ", /* I_CDQ */ + "CLC", /* I_CLC */ + "CLD", /* I_CLD */ + "CLI", /* I_CLI */ + "CLTS", /* I_CLTS */ + "CMC", /* I_CMC */ + "CMP", /* I_CMP8 */ + "CMP", /* I_CMP16 */ + "CMP", /* I_CMP32 */ + "CMPSB", /* I_CMPSB */ + "CMPSD", /* I_CMPSD */ + "CMPSW", /* I_CMPSW */ + "CMPXCHG", /* I_CMPXCHG8 */ + "CMPXCHG", /* I_CMPXCHG16 */ + "CMPXCHG", /* I_CMPXCHG32 */ + "CWD", /* I_CWD */ + "CWDE", /* I_CWDE */ + "DAA", /* I_DAA */ + "DAS", /* I_DAS */ + "DEC", /* I_DEC8 */ + "DEC", /* I_DEC16 */ + "DEC", /* I_DEC32 */ + "DIV", /* I_DIV8 */ + "DIV", /* I_DIV16 */ + "DIV", /* I_DIV32 */ + "ENTER", /* I_ENTER16 */ + "ENTER", /* I_ENTER32 */ + "F2XM1", /* I_F2XM1 */ + "FABS", /* I_FABS */ + "FADD", /* I_FADD */ + "FADDP", /* I_FADDP */ + "FBLD", /* I_FBLD */ + "FBSTP", /* I_FBSTP */ + "FCHS", /* I_FCHS */ + "FCLEX", /* I_FCLEX */ + "FCOM", /* I_FCOM */ + "FCOMP", /* I_FCOMP */ + "FCOMPP", /* I_FCOMPP */ + "FCOS", /* I_FCOS */ + "FDECSTP", /* I_FDECSTP */ + "FDIV", /* I_FDIV */ + "FDIVP", /* I_FDIVP */ + "FDIVR", /* I_FDIVR */ + "FDIVRP", /* I_FDIVRP */ + "FFREE", /* I_FFREE */ + "FFREEP", /* I_FFREEP */ + "FIADD", /* I_FIADD */ + "FICOM", /* I_FICOM */ + "FICOMP", /* I_FICOMP */ + "FIDIV", /* I_FIDIV */ + "FIDIVR", /* I_FIDIVR */ + "FILD", /* I_FILD */ + "FIMUL", /* I_FIMUL */ + "FINCSTP", /* I_FINCSTP */ + "FINIT", /* I_FINIT */ + "FIST", /* I_FIST */ + "FISTP", /* I_FISTP */ + "FISUB", /* I_FISUB */ + "FISUBR", /* I_FISUBR */ + "FLD", /* I_FLD */ + "FLD1", /* I_FLD1 */ + "FLDCW", /* I_FLDCW */ + "FLDENV", /* I_FLDENV16 */ + "FLDENV", /* I_FLDENV32 */ + "FLDL2E", /* I_FLDL2E */ + "FLDL2T", /* I_FLDL2T */ + "FLDLG2", /* I_FLDLG2 */ + "FLDLN2", /* I_FLDLN2 */ + "FLDPI", /* I_FLDPI */ + "FLDZ", /* I_FLDZ */ + "FMUL", /* I_FMUL */ + "FMULP", /* I_FMULP */ + "FNOP", /* I_FNOP */ + "FPATAN", /* I_FPATAN */ + "FPREM", /* I_FPREM */ + "FPREM1", /* I_FPREM1 */ + "FPTAN", /* I_FPTAN */ + "FRNDINT", /* I_FRNDINT */ + "FRSTOR", /* I_FRSTOR16 */ + "FRSTOR", /* I_FRSTOR32 */ + "FSAVE", /* I_FSAVE16 */ + "FSAVE", /* I_FSAVE32 */ + "FSCALE", /* I_FSCALE */ + "FSETPM", /* I_FSETPM */ + "FSIN", /* I_FSIN */ + "FSINCOS", /* I_FSINCOS */ + "FSQRT", /* I_FSQRT */ + "FST", /* I_FST */ + "FSTCW", /* I_FSTCW */ + "FSTENV", /* I_FSTENV16 */ + "FSTENV", /* I_FSTENV32 */ + "FSTP", /* I_FSTP */ + "FSTSW", /* I_FSTSW */ + "FSUB", /* I_FSUB */ + "FSUBP", /* I_FSUBP */ + "FSUBR", /* I_FSUBR */ + "FSUBRP", /* I_FSUBRP */ + "FTST", /* I_FTST */ + "FUCOM", /* I_FUCOM */ + "FUCOMP", /* I_FUCOMP */ + "FUCOMPP", /* I_FUCOMPP */ + "FXAM", /* I_FXAM */ + "FXCH", /* I_FXCH */ + "FXTRACT", /* I_FXTRACT */ + "FYL2X", /* I_FYL2X */ + "FYL2XP1", /* I_FYL2XP1 */ + "HLT", /* I_HLT */ + "IDIV", /* I_IDIV8 */ + "IDIV", /* I_IDIV16 */ + "IDIV", /* I_IDIV32 */ + "IMUL", /* I_IMUL8 */ + "IMUL", /* I_IMUL16 */ + "IMUL", /* I_IMUL32 */ + "IMUL", /* I_IMUL16T2 */ + "IMUL", /* I_IMUL16T3 */ + "IMUL", /* I_IMUL32T2 */ + "IMUL", /* I_IMUL32T3 */ + "IN", /* I_IN8 */ + "IN", /* I_IN16 */ + "IN", /* I_IN32 */ + "INC", /* I_INC8 */ + "INC", /* I_INC16 */ + "INC", /* I_INC32 */ + "INSB", /* I_INSB */ + "INSD", /* I_INSD */ + "INSW", /* I_INSW */ + "INT", /* I_INT3 */ + "INT", /* I_INT */ + "INTO", /* I_INTO */ + "INVD", /* I_INVD */ + "INVLPG", /* I_INVLPG */ + "IRET", /* I_IRET */ + "IRETD", /* I_IRETD */ + "JB", /* I_JB16 */ + "JB", /* I_JB32 */ + "JBE", /* I_JBE16 */ + "JBE", /* I_JBE32 */ + "JCXZ", /* I_JCXZ */ + "JECXZ", /* I_JECXZ */ + "JL", /* I_JL16 */ + "JL", /* I_JL32 */ + "JLE", /* I_JLE16 */ + "JLE", /* I_JLE32 */ + "JMP", /* I_JMPF16 */ + "JMP", /* I_JMPF32 */ + "JMP", /* I_JMPN */ + "JMP", /* I_JMPR16 */ + "JMP", /* I_JMPR32 */ + "JNB", /* I_JNB16 */ + "JNB", /* I_JNB32 */ + "JNBE", /* I_JNBE16 */ + "JNBE", /* I_JNBE32 */ + "JNL", /* I_JNL16 */ + "JNL", /* I_JNL32 */ + "JNLE", /* I_JNLE16 */ + "JNLE", /* I_JNLE32 */ + "JNO", /* I_JNO16 */ + "JNO", /* I_JNO32 */ + "JNP", /* I_JNP16 */ + "JNP", /* I_JNP32 */ + "JNS", /* I_JNS16 */ + "JNS", /* I_JNS32 */ + "JNZ", /* I_JNZ16 */ + "JNZ", /* I_JNZ32 */ + "JO", /* I_JO16 */ + "JO", /* I_JO32 */ + "JP", /* I_JP16 */ + "JP", /* I_JP32 */ + "JS", /* I_JS16 */ + "JS", /* I_JS32 */ + "JZ", /* I_JZ16 */ + "JZ", /* I_JZ32 */ + "LAHF", /* I_LAHF */ + "LAR", /* I_LAR */ + "LDS", /* I_LDS */ + "LEA", /* I_LEA */ + "LEAVE", /* I_LEAVE16 */ + "LEAVE", /* I_LEAVE32 */ + "LES", /* I_LES */ + "LFS", /* I_LFS */ + "LGDT", /* I_LGDT16 */ + "LGDT", /* I_LGDT32 */ + "LGS", /* I_LGS */ + "LIDT", /* I_LIDT16 */ + "LIDT", /* I_LIDT32 */ + "LLDT", /* I_LLDT */ + "LMSW", /* I_LMSW */ + "LOADALL", /* I_LOADALL */ + "LOCK", /* I_LOCK */ + "LODSB", /* I_LODSB */ + "LODSD", /* I_LODSD */ + "LODSW", /* I_LODSW */ + "LOOP", /* I_LOOP16 */ + "LOOP", /* I_LOOP32 */ + "LOOPE", /* I_LOOPE16 */ + "LOOPE", /* I_LOOPE32 */ + "LOOPNE", /* I_LOOPNE16 */ + "LOOPNE", /* I_LOOPNE32 */ + "LSL", /* I_LSL */ + "LSS", /* I_LSS */ + "LTR", /* I_LTR */ + "MOV", /* I_MOV_SR */ + "MOV", /* I_MOV_CR */ + "MOV", /* I_MOV_DR */ + "MOV", /* I_MOV_TR */ + "MOV", /* I_MOV8 */ + "MOV", /* I_MOV16 */ + "MOV", /* I_MOV32 */ + "MOVSB", /* I_MOVSB */ + "MOVSD", /* I_MOVSD */ + "MOVSW", /* I_MOVSW */ + "MOVSX", /* I_MOVSX8 */ + "MOVSX", /* I_MOVSX16 */ + "MOVZX", /* I_MOVZX8 */ + "MOVZX", /* I_MOVZX16 */ + "MUL", /* I_MUL8 */ + "MUL", /* I_MUL16 */ + "MUL", /* I_MUL32 */ + "NEG", /* I_NEG8 */ + "NEG", /* I_NEG16 */ + "NEG", /* I_NEG32 */ + "NOP", /* I_NOP */ + "NOT", /* I_NOT8 */ + "NOT", /* I_NOT16 */ + "NOT", /* I_NOT32 */ + "OR", /* I_OR8 */ + "OR", /* I_OR16 */ + "OR", /* I_OR32 */ + "OUT", /* I_OUT8 */ + "OUT", /* I_OUT16 */ + "OUT", /* I_OUT32 */ + "OUTSB", /* I_OUTSB */ + "OUTSD", /* I_OUTSD */ + "OUTSW", /* I_OUTSW */ + "POP", /* I_POP16 */ + "POP", /* I_POP32 */ + "POP", /* I_POP_SR */ + "POPA", /* I_POPA */ + "POPAD", /* I_POPAD */ + "POPF", /* I_POPF */ + "POPFD", /* I_POPFD */ + "PUSH", /* I_PUSH16 */ + "PUSH", /* I_PUSH32 */ + "PUSHA", /* I_PUSHA */ + "PUSHAD", /* I_PUSHAD */ + "PUSHF", /* I_PUSHF */ + "PUSHFD", /* I_PUSHFD */ + "RCL", /* I_RCL8 */ + "RCL", /* I_RCL16 */ + "RCL", /* I_RCL32 */ + "RCR", /* I_RCR8 */ + "RCR", /* I_RCR16 */ + "RCR", /* I_RCR32 */ + "RETF", /* I_RETF16 */ + "RETF", /* I_RETF32 */ + "RET", /* I_RETN16 */ + "RET", /* I_RETN32 */ + "ROL", /* I_ROL8 */ + "ROL", /* I_ROL16 */ + "ROL", /* I_ROL32 */ + "ROR", /* I_ROR8 */ + "ROR", /* I_ROR16 */ + "ROR", /* I_ROR32 */ + "REP INSB", /* I_R_INSB */ + "REP INSD", /* I_R_INSD */ + "REP INSW", /* I_R_INSW */ + "REP OUTSB", /* I_R_OUTSB */ + "REP OUTSD", /* I_R_OUTSD */ + "REP OUTSW", /* I_R_OUTSW */ + "REP LODSB", /* I_R_LODSB */ + "REP LODSD", /* I_R_LODSD */ + "REP LODSW", /* I_R_LODSW */ + "REP MOVSB", /* I_R_MOVSB */ + "REP MOVSD", /* I_R_MOVSD */ + "REP MOVSW", /* I_R_MOVSW */ + "REP STOSB", /* I_R_STOSB */ + "REP STOSD", /* I_R_STOSD */ + "REP STOSW", /* I_R_STOSW */ + "REPE CMPSB", /* I_RE_CMPSB */ + "REPE CMPSD", /* I_RE_CMPSD */ + "REPE CMPSW", /* I_RE_CMPSW */ + "REPNE CMPSB", /* I_RNE_CMPSB */ + "REPNE CMPSD", /* I_RNE_CMPSD */ + "REPNE CMPSW", /* I_RNE_CMPSW */ + "REPE SCASB", /* I_RE_SCASB */ + "REPE SCASD", /* I_RE_SCASD */ + "REPE SCASW", /* I_RE_SCASW */ + "REPNE SCASB", /* I_RNE_SCASB */ + "REPNE SCASD", /* I_RNE_SCASD */ + "REPNE SCASW", /* I_RNE_SCASW */ + "SAHF", /* I_SAHF */ + "SAR", /* I_SAR8 */ + "SAR", /* I_SAR16 */ + "SAR", /* I_SAR32 */ + "SBB", /* I_SBB8 */ + "SBB", /* I_SBB16 */ + "SBB", /* I_SBB32 */ + "SCASB", /* I_SCASB */ + "SCASD", /* I_SCASD */ + "SCASW", /* I_SCASW */ + "SETB", /* I_SETB */ + "SETBE", /* I_SETBE */ + "SETL", /* I_SETL */ + "SETLE", /* I_SETLE */ + "SETNB", /* I_SETNB */ + "SETNBE", /* I_SETNBE */ + "SETNL", /* I_SETNL */ + "SETNLE", /* I_SETNLE */ + "SETNO", /* I_SETNO */ + "SETNP", /* I_SETNP */ + "SETNS", /* I_SETNS */ + "SETNZ", /* I_SETNZ */ + "SETO", /* I_SETO */ + "SETP", /* I_SETP */ + "SETS", /* I_SETS */ + "SETZ", /* I_SETZ */ + "SGDT", /* I_SGDT16 */ + "SGDT", /* I_SGDT32 */ + "SHL", /* I_SHL8 */ + "SHL", /* I_SHL16 */ + "SHL", /* I_SHL32 */ + "SHLD", /* I_SHLD16 */ + "SHLD", /* I_SHLD32 */ + "SHR", /* I_SHR8 */ + "SHR", /* I_SHR16 */ + "SHR", /* I_SHR32 */ + "SHRD", /* I_SHRD16 */ + "SHRD", /* I_SHRD32 */ + "SIDT", /* I_SIDT16 */ + "SIDT", /* I_SIDT32 */ + "SLDT", /* I_SLDT */ + "SMSW", /* I_SMSW */ + "STC", /* I_STC */ + "STD", /* I_STD */ + "STI", /* I_STI */ + "STOSB", /* I_STOSB */ + "STOSD", /* I_STOSD */ + "STOSW", /* I_STOSW */ + "STR", /* I_STR */ + "SUB", /* I_SUB8 */ + "SUB", /* I_SUB16 */ + "SUB", /* I_SUB32 */ + "TEST", /* I_TEST8 */ + "TEST", /* I_TEST16 */ + "TEST", /* I_TEST32 */ + "VERR", /* I_VERR */ + "VERW", /* I_VERW */ + "WAIT", /* I_WAIT */ + "WBINVD", /* I_WBINVD */ + "XADD", /* I_XADD8 */ + "XADD", /* I_XADD16 */ + "XADD", /* I_XADD32 */ + "XCHG", /* I_XCHG8 */ + "XCHG", /* I_XCHG16 */ + "XCHG", /* I_XCHG32 */ + "XLAT", /* I_XLAT */ + "XOR", /* I_XOR8 */ + "XOR", /* I_XOR16 */ + "XOR", /* I_XOR32 */ + "????", /* I_ZBADOP */ + "BOP", /* I_ZBOP */ + "FRSRVD", /* I_ZFRSRVD */ + "RSRVD", /* I_ZRSRVD */ + "UNSIMULATE" /* I_ZZEXIT */ + }; + +#define NR_VALID_INSTS (sizeof(inst_name)/sizeof(CHAR *)) + +/* + Character to print before each argument. + */ +LOCAL CHAR arg_preface[] = { ' ', ',', ',' }; + +/* + Register (byte) names. + */ +LOCAL CHAR *Rb_name[] = + { + "AL", "CL", "DL", "BL", "AH", "CH", "DH", "BH" + }; + +/* + Register (word) names. + */ +LOCAL CHAR *Rw_name[] = + { + "AX", "CX", "DX", "BX", "SP", "BP", "SI", "DI" + }; + +/* + Register (double word) names. + */ +LOCAL CHAR *Rd_name[] = + { + "EAX", "ECX", "EDX", "EBX", "ESP", "EBP", "ESI", "EDI" + }; + +/* + Segment Register (word) names. + */ +LOCAL CHAR *Sw_name[] = + { + "ES", "CS", "SS", "DS", "FS", "GS" + }; + +/* + Control Register (double word) names. + */ +LOCAL CHAR *Cd_name[] = + { + "CR0", "CR1(UNDEF)", "CR2", "CR3", + "CR4(UNDEF)", "CR5(UNDEF)", "CR6(UNDEF)", "CR7(UNDEF)" + }; + +/* + Debug Register (double word) names. + */ +LOCAL CHAR *Dd_name[] = + { + "DR0", "DR1", "DR2", "DR3", "DR4(UNDEF)", "DR5(UNDEF)", "DR6", "DR7" + }; + +/* + Test Register (double word) names. + */ +LOCAL CHAR *Td_name[] = + { + "TR0(UNDEF)", "TR1(UNDEF)", "TR2(UNDEF)", "TR3", + "TR4", "TR5", "TR6", "TR7" + }; + +/* + Memory Addressing names. + */ + +typedef struct + { + CHAR *positive; + CHAR *negative; + ULONG disp_mask; + ULONG sign_mask; + } MEM_RECORD; + +LOCAL MEM_RECORD mem_name[] = + { + { "%s[BX+SI%s]", "%s[BX+SI%s]", 0x00000000, 0x00000000}, /* A_1600 */ + { "%s[BX+DI%s]", "%s[BX+DI%s]", 0x00000000, 0x00000000}, /* A_1601 */ + { "%s[BP+SI%s]", "%s[BP+SI%s]", 0x00000000, 0x00000000}, /* A_1602 */ + { "%s[BP+DI%s]", "%s[BP+DI%s]", 0x00000000, 0x00000000}, /* A_1603 */ + { "%s[SI%s]", "%s[SI%s]", 0x00000000, 0x00000000}, /* A_1604 */ + { "%s[DI%s]", "%s[DI%s]", 0x00000000, 0x00000000}, /* A_1605 */ + { "%s[%s%04x]", "%s[%s%04x]", 0x0000ffff, 0x00000000}, /* A_1606 */ + { "%s[BX%s]", "%s[BX%s]", 0x00000000, 0x00000000}, /* A_1607 */ + { "%s[BX+SI%s+%02x]", "%s[BX+SI%s-%02x]", 0x000000ff, 0x00000080}, /* A_1610 */ + { "%s[BX+DI%s+%02x]", "%s[BX+DI%s-%02x]", 0x000000ff, 0x00000080}, /* A_1611 */ + { "%s[BP+SI%s+%02x]", "%s[BP+SI%s-%02x]", 0x000000ff, 0x00000080}, /* A_1612 */ + { "%s[BP+DI%s+%02x]", "%s[BP+DI%s-%02x]", 0x000000ff, 0x00000080}, /* A_1613 */ + { "%s[SI%s+%02x]", "%s[SI%s-%02x]", 0x000000ff, 0x00000080}, /* A_1614 */ + { "%s[DI%s+%02x]", "%s[DI%s-%02x]", 0x000000ff, 0x00000080}, /* A_1615 */ + { "%s[BP%s+%02x]", "%s[BP%s-%02x]", 0x000000ff, 0x00000080}, /* A_1616 */ + { "%s[BX%s+%02x]", "%s[BX%s-%02x]", 0x000000ff, 0x00000080}, /* A_1617 */ + { "%s[BX+SI%s+%04x]", "%s[BX+SI%s+%04x]", 0x0000ffff, 0x00000000}, /* A_1620 */ + { "%s[BX+DI%s+%04x]", "%s[BX+DI%s+%04x]", 0x0000ffff, 0x00000000}, /* A_1621 */ + { "%s[BP+SI%s+%04x]", "%s[BP+SI%s+%04x]", 0x0000ffff, 0x00000000}, /* A_1622 */ + { "%s[BP+DI%s+%04x]", "%s[BP+DI%s+%04x]", 0x0000ffff, 0x00000000}, /* A_1623 */ + { "%s[SI%s+%04x]", "%s[SI%s+%04x]", 0x0000ffff, 0x00000000}, /* A_1624 */ + { "%s[DI%s+%04x]", "%s[DI%s+%04x]", 0x0000ffff, 0x00000000}, /* A_1625 */ + { "%s[BP%s+%04x]", "%s[BP%s-%04x]", 0x0000ffff, 0x0000f000}, /* A_1626 */ + { "%s[BX%s+%04x]", "%s[BX%s+%04x]", 0x0000ffff, 0x00000000}, /* A_1627 */ + { "%s[EAX%s]", "%s[EAX%s]", 0x00000000, 0x00000000}, /* A_3200 */ + { "%s[ECX%s]", "%s[ECX%s]", 0x00000000, 0x00000000}, /* A_3201 */ + { "%s[EDX%s]", "%s[EDX%s]", 0x00000000, 0x00000000}, /* A_3202 */ + { "%s[EBX%s]", "%s[EBX%s]", 0x00000000, 0x00000000}, /* A_3203 */ + { "%s[%s%08x]", "%s[%s%08x]", 0xffffffff, 0x00000000}, /* A_3205 */ + { "%s[ESI%s]", "%s[ESI%s]", 0x00000000, 0x00000000}, /* A_3206 */ + { "%s[EDI%s]", "%s[EDI%s]", 0x00000000, 0x00000000}, /* A_3207 */ + { "%s[EAX+%s%02x]", "%s[EAX-%s%02x]", 0x000000ff, 0x00000080}, /* A_3210 */ + { "%s[ECX+%s%02x]", "%s[ECX-%s%02x]", 0x000000ff, 0x00000080}, /* A_3211 */ + { "%s[EDX+%s%02x]", "%s[EDX-%s%02x]", 0x000000ff, 0x00000080}, /* A_3212 */ + { "%s[EBX+%s%02x]", "%s[EBX-%s%02x]", 0x000000ff, 0x00000080}, /* A_3213 */ + { "%s[EBP+%s%02x]", "%s[EBP-%s%02x]", 0x000000ff, 0x00000080}, /* A_3215 */ + { "%s[ESI+%s%02x]", "%s[ESI-%s%02x]", 0x000000ff, 0x00000080}, /* A_3216 */ + { "%s[EDI+%s%02x]", "%s[EDI-%s%02x]", 0x000000ff, 0x00000080}, /* A_3217 */ + { "%s[EAX+%s%08x]", "%s[EAX+%s%08x]", 0xffffffff, 0x00000000}, /* A_3220 */ + { "%s[ECX+%s%08x]", "%s[ECX+%s%08x]", 0xffffffff, 0x00000000}, /* A_3221 */ + { "%s[EDX+%s%08x]", "%s[EDX+%s%08x]", 0xffffffff, 0x00000000}, /* A_3222 */ + { "%s[EBX+%s%08x]", "%s[EBX+%s%08x]", 0xffffffff, 0x00000000}, /* A_3223 */ + { "%s[EBP+%s%08x]", "%s[EBP-%s%08x]", 0xffffffff, 0xfff00000}, /* A_3225 */ + { "%s[ESI+%s%08x]", "%s[ESI+%s%08x]", 0xffffffff, 0x00000000}, /* A_3226 */ + { "%s[EDI+%s%08x]", "%s[EDI+%s%08x]", 0xffffffff, 0x00000000}, /* A_3227 */ + { "%s[EAX%s]", "%s[EAX%s]", 0x00000000, 0x00000000}, /* A_32S00 */ + { "%s[ECX%s]", "%s[ECX%s]", 0x00000000, 0x00000000}, /* A_32S01 */ + { "%s[EDX%s]", "%s[EDX%s]", 0x00000000, 0x00000000}, /* A_32S02 */ + { "%s[EBX%s]", "%s[EBX%s]", 0x00000000, 0x00000000}, /* A_32S03 */ + { "%s[ESP%s]", "%s[ESP%s]", 0x00000000, 0x00000000}, /* A_32S04 */ + { "%s[%08x%s]", "%s[%08x%s]", 0xffffffff, 0x00000000}, /* A_32S05 */ + { "%s[ESI%s]", "%s[ESI%s]", 0x00000000, 0x00000000}, /* A_32S06 */ + { "%s[EDI%s]", "%s[EDI%s]", 0x00000000, 0x00000000}, /* A_32S07 */ + { "%s[EAX%s+%02x]", "%s[EAX%s-%02x]", 0x000000ff, 0x00000080}, /* A_32S10 */ + { "%s[ECX%s+%02x]", "%s[ECX%s-%02x]", 0x000000ff, 0x00000080}, /* A_32S11 */ + { "%s[EDX%s+%02x]", "%s[EDX%s-%02x]", 0x000000ff, 0x00000080}, /* A_32S12 */ + { "%s[EBX%s+%02x]", "%s[EBX%s-%02x]", 0x000000ff, 0x00000080}, /* A_32S13 */ + { "%s[ESP%s+%02x]", "%s[ESP%s-%02x]", 0x000000ff, 0x00000080}, /* A_32S14 */ + { "%s[EBP%s+%02x]", "%s[EBP%s-%02x]", 0x000000ff, 0x00000080}, /* A_32S15 */ + { "%s[ESI%s+%02x]", "%s[ESI%s-%02x]", 0x000000ff, 0x00000080}, /* A_32S16 */ + { "%s[EDI%s+%02x]", "%s[EDI%s-%02x]", 0x000000ff, 0x00000080}, /* A_32S17 */ + { "%s[EAX%s+%08x]", "%s[EAX%s+%08x]", 0xffffffff, 0x00000000}, /* A_32S20 */ + { "%s[ECX%s+%08x]", "%s[ECX%s+%08x]", 0xffffffff, 0x00000000}, /* A_32S21 */ + { "%s[EDX%s+%08x]", "%s[EDX%s+%08x]", 0xffffffff, 0x00000000}, /* A_32S22 */ + { "%s[EBX%s+%08x]", "%s[EBX%s+%08x]", 0xffffffff, 0x00000000}, /* A_32S23 */ + { "%s[ESP%s+%08x]", "%s[ESP%s+%08x]", 0xffffffff, 0x00000000}, /* A_32S24 */ + { "%s[EBP%s+%08x]", "%s[EBP%s-%08x]", 0xffffffff, 0xfff00000}, /* A_32S25 */ + { "%s[ESI%s+%08x]", "%s[ESI%s+%08x]", 0xffffffff, 0x00000000}, /* A_32S26 */ + { "%s[EDI%s+%08x]", "%s[EDI%s+%08x]", 0xffffffff, 0x00000000}, /* A_32S27 */ + { "%s[%s%04x]", "%s[%s%04x]", 0x0000ffff, 0x00000000}, /* A_MOFFS16 */ + { "%s[%s%08x]", "%s[%s%08x]", 0xffffffff, 0x00000000}, /* A_MOFFS32 */ + { "%s[BX+AL%s]", "%s[BX+AL%s]", 0x00000000, 0x00000000}, /* A_16XLT */ + { "%s[EBX+AL%s]", "%s[EBX+AL%s]", 0x00000000, 0x00000000}, /* A_32XLT */ + { "%s[SI%s]", "%s[SI%s]", 0x00000000, 0x00000000}, /* A_16STSRC */ + { "%s[ESI%s]", "%s[ESI%s]", 0x00000000, 0x00000000}, /* A_32STSRC */ + { "%s[DI%s]", "%s[DI%s]", 0x00000000, 0x00000000}, /* A_16STDST */ + { "%s[EDI%s]", "%s[EDI%s]", 0x00000000, 0x00000000} /* A_32STDST */ + }; + +LOCAL char *mem_id[] = + { + "", /* A_M */ + "", /* A_M14 */ + "", /* A_M28 */ + "", /* A_M94 */ + "", /* A_M108 */ + "DWord Ptr ", /* A_Ma16 */ + "QWord Ptr ", /* A_Ma32 */ + "Byte Ptr ", /* A_Mb */ + "DWord Ptr ", /* A_Md */ + "Word Ptr ", /* A_Mi16 */ + "DWord Ptr ", /* A_Mi32 */ + "QWord Ptr ", /* A_Mi64 */ + "TByte Ptr ", /* A_Mi80 */ + "DWord Ptr ", /* A_Mp16 */ + "FWord Ptr ", /* A_Mp32 */ + "DWord Ptr ", /* A_Mr32 */ + "QWord Ptr ", /* A_Mr64 */ + "Tbyte Ptr ", /* A_Mr80 */ + "FWord Ptr ", /* A_Ms */ + "Word Ptr " /* A_Mw */ + }; + +/* + SIB byte names. + */ +LOCAL CHAR *sib_name[] = + { + "", + "+EAX", "+ECX", "+EDX", "+EBX", + "", "+EBP", "+ESI", "+EDI", + "+2*EAX", "+2*ECX", "+2*EDX", "+2*EBX", + "+undef", "+2*EBP", "+2*ESI", "+2*EDI", + "+4*EAX", "+4*ECX", "+4*EDX", "+4*EBX", + "+undef", "+4*EBP", "+4*ESI", "+4*EDI", + "+8*EAX", "+8*ECX", "+8*EDX", "+8*EBX", + "+undef", "+8*EBP", "+8*ESI", "+8*EDI" + }; + + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Read a byte from the given Intel linear address, return -1 if */ +/* unable to read a */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +LOCAL IS32 read_byte IFN1(LIN_ADDR, linAddr) +{ + IU8 res = Sas.Sas_hw_at(linAddr); + + /* if (was_error) + * return -1; + * else + */ + return (IS32)(res); +} + +/* + ===================================================================== + EXECUTION STARTS HERE. + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Dis-assemble a single Intel Instruction. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL IU16 +dasm IFN4(char *, txt, IU16, seg, LIN_ADDR, off, SIZE_SPECIFIER, default_size) + { + /* txt Buffer to hold dis-assembly text (-1 means not required) */ + /* seg Segment for instruction to be dis-assembled */ + /* off Offset for instruction to be dis-assembled */ + /* default_size 16BIT or 32BIT */ + + char *fmt, *newline; + + /* format for seg:off */ + if ( off & 0xffff0000 ) + { + fmt = "%04x:%08x "; + newline = "\n "; + } + else + { + fmt = "%04x:%04x "; + newline = "\n "; + } + + return (dasm_internal(txt, + seg, + off, + default_size, + effective_addr(seg, off), + read_byte, + fmt, + newline)); +} + +extern IU16 dasm_internal IFN8( + char *, txt, /* Buffer to hold dis-assembly text (-1 means not required) */ + IU16, seg, /* Segment for xxxx:... text in dis-assembly */ + LIN_ADDR, off, /* ditto offset */ + SIZE_SPECIFIER, default_size,/* 16BIT or 32BIT code segment */ + LIN_ADDR, p, /* linear address of start of instruction */ + read_byte_proc, byte_at, /* like sas_hw_at() to use to read intel + * but will return -1 if there is an error + */ + char *, fmt, /* sprintf format for first line seg:offset */ + char *, newline) /* strcat text to separate lines */ +{ + LIN_ADDR pp; /* pntr to prefix bytes */ + DECODED_INST d_inst; /* Decoded form of Intel instruction */ + DECODED_ARG *d_arg; /* pntr to decoded form of Intel operand */ + USHORT inst_len; /* Nr. bytes in instruction */ + USHORT mc; /* Nr. machine code bytes processed */ + char *arg_name; /* pntr to symbolic argument name */ + char *inst_txt; + INT i; + INT name_len; /* Nr. chars in symbolic instruction name */ + MEM_RECORD *m_rec; /* pntr to memory addressing record */ + UTINY args_out; /* Nr. arguments actually printed */ + INT prefix_width; /* Width of prefixes actually printed */ + UTINY memory_id; /* Memory identifier reference */ + ULONG immed; /* value for immediate arithmetic */ + IBOOL unreadable = FALSE; /* TRUE if instr bytes are not readable (past M?) */ + char prefix_buf[16*4]; + char *prefix_txt; + + /* initialise */ + args_out = prefix_width = 0; + + pp=p; + + /* get in decoded form */ + decode(p, &d_inst, default_size, byte_at); + + /* hence find length of instruction */ + inst_len = d_inst.inst_sz; + + /* if no text required, just return the length now */ + if (txt == (char*)-1){ + /* Check bytes were read without errors */ + if ((byte_at(p) < 0) || (byte_at(p+inst_len-1) < 0)) + { + int i = inst_len - 1; + while (i > 0) + { + if (byte_at(i) >= 0) + return (i); + } + return 0; + } + return inst_len; + } + + /* output seg:off in requested format */ + + sprintf(txt, fmt, seg, off); + txt += strlen(txt); + + /* Output upto eight machine code bytes */ + for ( mc = 0; mc < 8; mc++) + { + if ( mc < inst_len ) + { + IS32 b = byte_at(p++); + + if (b < 0) + { + sprintf(txt, ".."); /* print ".." if not readable */ + unreadable = TRUE; + inst_len = mc; + } + else + sprintf(txt, "%02x", b); /* print machine code byte */ + } + else + sprintf(txt, " "); /* fill in with spaces */ + txt += 2; + } + + /* Check inst identifier is within our known range. + * Get text for opcode and length so we can see if the + * prefix will fit. + */ + if ( d_inst.inst_id >= NR_VALID_INSTS ) + { + fprintf(stderr, "Bad decoded instruction found %d\n", d_inst.inst_id); + d_inst.inst_id = I_ZBADOP; + } + + /* Obtain symbolic form of instruction */ + inst_txt = inst_name[d_inst.inst_id]; + name_len = 1 + strlen(inst_txt); + + /* Format prefix bytes if any */ + prefix_txt = prefix_buf; + *prefix_txt = '\0'; + + if ( d_inst.prefix_sz ) + { + for ( i = 0; i < d_inst.prefix_sz; byte_at(pp), i++) + { + switch ( byte_at(pp) ) + { + case 0xf1: + /* it don't do nothing -- don't display nothing */ + + case 0xf2: + case 0xf3: + /* if valid instructions will print them */ + + case 0x66: + case 0x67: + /* the effect is obvious from the operands */ + break; + + case 0xf0: sprintf(prefix_txt, " LOCK"); prefix_txt += 5; break; + case 0x26: sprintf(prefix_txt, " ES:"); prefix_txt += 4; break; + case 0x2e: sprintf(prefix_txt, " CS:"); prefix_txt += 4; break; + case 0x36: sprintf(prefix_txt, " SS:"); prefix_txt += 4; break; + case 0x3e: sprintf(prefix_txt, " DS:"); prefix_txt += 4; break; + case 0x64: sprintf(prefix_txt, " FS:"); prefix_txt += 4; break; + case 0x65: sprintf(prefix_txt, " GS:"); prefix_txt += 4; break; + + default: + fprintf(stderr, "Bad prefix found %02x\n", byte_at(pp)); + break; + } /* end switch */ + + pp++; + + } /* end for */ + } /* end if d_inst.prefix_sz */ + + prefix_width = strlen(prefix_buf); + if ( newline != NULL ) + { + if ( ((inst_len * 2) + prefix_width) > 16) + { + /* start new line for instruction */ + strcat(txt, newline); + txt += strlen(txt); + + /* output rest of machine code bytes */ + for ( ; mc < 16; mc++) + { + if ( mc < inst_len ) + { + IS32 b = byte_at(p++); + + if (b < 0) + { + sprintf(txt, ".."); /* print ".." if not readable */ + unreadable = TRUE; + inst_len = mc; + } + else + sprintf(txt, "%02x", b); /* print machine code byte */ + } + else + sprintf(txt, " "); /* fill in with spaces */ + txt += 2; + } + } + if ( ((inst_len * 2) + prefix_width) > 32) + { + /* wont fit on two lines */ + strcat(txt, newline); + txt += strlen(txt); + + /* output rest of machine code bytes */ + for ( ; mc < 24; mc++) + { + sprintf(txt, " "); /* fill in with spaces */ + txt += 2; + } + } + txt -= (prefix_width <= 17 ? prefix_width: 17); + } + if (unreadable) + { + sprintf(txt, "<< Unreadable >>\n"); + return inst_len; + } + + sprintf(txt, "%s %s", prefix_buf, inst_txt); + txt += prefix_width + name_len; + + /* pad out to 11 characters wide */ + + for (i = name_len; i <= 11; i++) + *txt++ = ' '; + + if (d_inst.inst_id != I_ZBADOP) + { + /* output each valid argument in turn */ + for ( i = 0; i < 3; i++ ) + { + d_arg = &d_inst.args[i]; + arg_name = (CHAR *)0; + + if ( d_arg->arg_type != A_ ) + { + /* process valid arg */ + sprintf(txt, "%c", arg_preface[args_out++]); + txt += 1; + + switch ( d_arg->arg_type ) + { + case A_Rb: /* aka r8,r/m8 */ + arg_name = Rb_name[DCD_IDENTIFIER(d_arg)]; + break; + + case A_Rw: /* aka r16,r/m16 */ + arg_name = Rw_name[DCD_IDENTIFIER(d_arg)]; + break; + + case A_Rd: /* aka r32,r/m32 */ + arg_name = Rd_name[DCD_IDENTIFIER(d_arg)]; + break; + + case A_Sw: /* aka Sreg */ + arg_name = Sw_name[DCD_IDENTIFIER(d_arg)]; + break; + + case A_Cd: /* aka CRx */ + arg_name = Cd_name[DCD_IDENTIFIER(d_arg)]; + break; + + case A_Dd: /* aka DRx */ + arg_name = Dd_name[DCD_IDENTIFIER(d_arg)]; + break; + + case A_Td: /* aka TRx */ + arg_name = Td_name[DCD_IDENTIFIER(d_arg)]; + break; + + case A_M: /* aka m */ + case A_M14: /* aka m14byte */ + case A_M28: /* aka m28byte */ + case A_M94: /* aka m94byte */ + case A_M108: /* aka m108byte */ + case A_Ma16: /* aka m16&16 */ + case A_Ma32: /* aka m32&32 */ + case A_Mb: /* aka m8,r/m8,moffs8 */ + case A_Md: /* aka m32,r/m32,moffs32 */ + case A_Mi16: /* aka m16int */ + case A_Mi32: /* aka m32int */ + case A_Mi64: /* aka m64int */ + case A_Mi80: /* aka m80dec */ + case A_Mp16: /* aka m16:16 */ + case A_Mp32: /* aka m16:32 */ + case A_Mr32: /* aka m32real */ + case A_Mr64: /* aka m64real */ + case A_Mr80: /* aka m80real */ + case A_Ms: /* aka m16&32 */ + case A_Mw: /* aka m16,r/m16,moffs16 */ + /* First work out memory identifier */ + switch ( d_arg->arg_type ) + { + case A_M: memory_id = 0; break; + case A_M14: memory_id = 1; break; + case A_M28: memory_id = 2; break; + case A_M94: memory_id = 3; break; + case A_M108: memory_id = 4; break; + case A_Ma16: memory_id = 5; break; + case A_Ma32: memory_id = 6; break; + case A_Mb: memory_id = 7; break; + case A_Md: memory_id = 8; break; + case A_Mi16: memory_id = 9; break; + case A_Mi32: memory_id = 10; break; + case A_Mi64: memory_id = 11; break; + case A_Mi80: memory_id = 12; break; + case A_Mp16: memory_id = 13; break; + case A_Mp32: memory_id = 14; break; + case A_Mr32: memory_id = 15; break; + case A_Mr64: memory_id = 16; break; + case A_Mr80: memory_id = 17; break; + case A_Ms: memory_id = 18; break; + case A_Mw: memory_id = 19; break; + } + + /* output memory details */ + m_rec = &mem_name[DCD_IDENTIFIER(d_arg)]; + if ( m_rec->disp_mask == 0 ) + { + /* no displacement to print out */ + sprintf(txt, m_rec->positive, + mem_id[memory_id], + sib_name[DCD_SUBTYPE(d_arg)]); + } + else + { + /* displacement to print out */ + IU32 disp = DCD_DISP(d_arg); + char *fmt; + + /* Do we think this is a negative displacement ? */ + if (m_rec->sign_mask && ((m_rec->sign_mask & disp) == m_rec->sign_mask)) + { + disp = -disp; + fmt = m_rec->negative; + } + else + fmt = m_rec->positive; + disp &= m_rec->disp_mask; + if ( DCD_IDENTIFIER(d_arg) == A_32S05 ) + sprintf(txt, fmt, + mem_id[memory_id], + disp, + sib_name[DCD_SUBTYPE(d_arg)]); + else + sprintf(txt, fmt, + mem_id[memory_id], + sib_name[DCD_SUBTYPE(d_arg)], + disp); + } + + name_len = strlen(txt); + txt += name_len; + break; + + case A_I: /* aka imm8,imm16,imm32 */ + immed = DCD_IMMED1(d_arg); + switch ( DCD_IDENTIFIER(d_arg) ) + { + case A_IMMC: + /* check for inbuilt zero - don't print */ + if ( immed ) + { + sprintf(txt, "%1d", immed); txt += 1; + } + else + { + /* kill preface */ + args_out--; + txt -= 1; + *txt = '\0'; + } + break; + + case A_IMMB: + sprintf(txt, "%02x", immed); txt += 2; + break; + + case A_IMMW: + sprintf(txt, "%04x", immed); txt += 4; + break; + + case A_IMMD: + sprintf(txt, "%08x", immed); txt += 8; + break; + + case A_IMMWB: + case A_IMMDB: + /* remove sign extension */ + immed &= 0xff; + + /* print byte with correct sign */ + if ( immed <= 0x7f ) + { + sprintf(txt, "+%02x", immed); txt += 3; + } + else + { + immed = 0x100 - immed; + sprintf(txt, "-%02x", immed); txt += 3; + } + break; + } + break; + + case A_J: /* aka rel8,rel16,rel32 */ + /* calc new dest */ + immed = off + inst_len + DCD_IMMED1(d_arg); + + /* handle as 16-bit mode or 32-bit mode */ + switch ( d_inst.inst_id ) + { + + case I_JO16: case I_JNO16: case I_JB16: + case I_JNB16: case I_JZ16: case I_JNZ16: + case I_JBE16: case I_JNBE16: case I_JS16: + case I_JNS16: case I_JP16: case I_JNP16: + case I_JL16: case I_JNL16: case I_JLE16: + case I_JNLE16: case I_LOOPNE16: case I_LOOPE16: + case I_LOOP16: case I_JCXZ: case I_CALLR16: + case I_JMPR16: + immed &= 0xffff; + + sprintf(txt, "%04x", immed); + txt += 4; + break; + + default: /* 32-bit mode */ + sprintf(txt, "%08x", immed); + txt += 8; + break; + } + break; + + case A_K: /* aka ptr16:16,ptr16:32 */ + { + /* handle as 16-bit mode or 32-bit mode */ + + char *sep = ":"; + + switch ( d_inst.inst_id ) + { + case I_CALLF16: case I_JMPF16: + sprintf(txt, "%04x%s%04x", DCD_IMMED2(d_arg), sep, DCD_IMMED1(d_arg)); + txt += 9; + break; + + default: /* 32-bit mode */ + sprintf(txt, "%04x%s%08x", DCD_IMMED2(d_arg), sep, DCD_IMMED1(d_arg)); + txt += 13; + break; + } + } + break; + + case A_V: /* aka ST,push onto ST, ST(i) */ + switch ( DCD_IDENTIFIER(d_arg) ) + { + case A_ST: + /* Some cases are obvious - so not all get printed */ + switch ( d_inst.inst_id ) + { + case I_F2XM1: case I_FABS: case I_FBSTP: + case I_FCHS: case I_FCOS: case I_FIST: + case I_FISTP: case I_FPATAN: case I_FPREM: + case I_FPREM1: case I_FPTAN: case I_FRNDINT: + case I_FSCALE: case I_FSIN: case I_FSINCOS: + case I_FSQRT: case I_FST: case I_FSTP: + case I_FTST: case I_FXAM: case I_FXTRACT: + case I_FYL2X: case I_FYL2XP1: + break; + + default: /* do print */ + arg_name = "ST"; + break; + } + break; + + case A_STP: + /* All cases are obvious - so no printing */ + break; + + case A_STI: + /* Some cases are obvious - so not all get printed */ + switch ( d_inst.inst_id ) + { + case I_FPATAN: case I_FPREM: case I_FPREM1: + case I_FSCALE: case I_FYL2X: case I_FYL2XP1: + break; + + default: /* do print */ + sprintf(txt, "ST(%1d", DCD_INDEX(d_arg)); + txt += 4; + arg_name = ")"; + break; + } + break; + } + + /* if we aren't printing - kill preface */ + if ( arg_name == (CHAR *)0 ) + { + args_out--; + txt -= 1; + *txt = '\0'; + } + break; + + default: + fprintf(stderr, "Bad decoded argument found %d\n", + d_arg->arg_type); + break; + } /* end switch */ + } /* end if */ + + /* print something if we have it */ + if ( arg_name != (CHAR *)0 ) + { + sprintf(txt, "%s", arg_name); + name_len = strlen(arg_name); + txt += name_len; + } + } /* end for arg */ + } + + if (d_inst.inst_id == I_ZBOP) + { + IU8 num = DCD_IMMED1(&d_inst.args[0]); + extern char *bop_name IPT1(IU8, num); + char *name = bop_name(num); + if (name != NULL) + { + sprintf(txt, " : %s", name); + txt += strlen(txt); + } + } + + + /* Finally output any machine code bytes remaining */ + /* iff bytes remaining && room in output format */ + if ( (newline != NULL ) && ( mc < inst_len && mc < 16 )) + { + strcat(txt, newline); + txt += strlen(txt); + for ( ; mc < inst_len && mc < 16; mc++ ) + { + IS32 b = byte_at(p++); + + if (b < 0) + { + sprintf(txt, ".."); /* print ".." if not readable */ + inst_len = mc; + } + else + sprintf(txt, "%02x", b); /* print machine code byte */ + p++; + txt += 2; + } + } + + sprintf(txt, "\n"); + + return inst_len; + } diff --git a/private/mvdm/softpc.new/base/dasm386/decode.c b/private/mvdm/softpc.new/base/dasm386/decode.c new file mode 100644 index 000000000..f37b1bc92 --- /dev/null +++ b/private/mvdm/softpc.new/base/dasm386/decode.c @@ -0,0 +1,2573 @@ +/*[ + +decode.c + +LOCAL CHAR SccsID[]="@(#)decode.c 1.9 10/11/94 Copyright Insignia Solutions Ltd."; + +Normal operation is to decode as per a 486 processor. By setting a +define 'CPU_286' it can be made to decode as per a 286/287 processor. + +Decode Intel instruction stream. +-------------------------------- + +Intel instructions are composed as follows:- + + ================================================================= + |Inst |Address|Operand|Segment|Opcode|Modrm|SIB| Disp | Immed | + |Prefix|Size |Size |Prefix | | | | | | + | |Prefix |Prefix | | | | | | | + ================================================================= + | 0,1 | 0,1 | 0,1 | 0,1 | 1,2 | 0,1 |0,1|0,1,2,4|0,1,2,4| + ================================================================= + +Inst Prefix = F0,F2,F3(,F1). +Address Size Prefix = 67. +Operand Size Prefix = 66. +Segment Prefix = 26,2E,36,3E,64,65. + +The maximum size of an instruction is 15 bytes. + +Dis-assembly entails finding the four main parts of an instruction:- + + 1) The prefix bytes. + + 2) The opcode bytes. + + 3) The addressing bytes. + + 4) The immediate data. + + +Each Intel instruction is considered here to be of the form:- + + INST arg1,arg2 + +In some instructions arg1 and arg2 may be null, in other instructions +arg2 may be null, and in yet other instructions arg2 may hold an +encoding of Intel arguments arg2,arg3. + +Information on each Intel instruction is held in an OPCODE_RECORD, this +has three fields, the instruction identifier, the arg1 type and the arg2 +type. Further each Intel instruction is categorised by 'type', this type +indicates how the arguments are to be treated (as src or dest) and this +'type' is used to produce the standard decoded form:- + + INST arg1,arg2,arg3 + +with an indication for each argument of its read/write (ie src/dest) +addressability. + +The Intel instructions fall into the following 'types':- + + --------------------------------------------------- + | Id | Intel assembler | arg1 | arg2 | arg3 | + |-----|----------------------|------|------|------| + | T0 | INST | -- | -- | -- | + | T1 | INST dst/src | rw | -- | -- | + | T2 | INST src | r- | -- | -- | + | T3 | INST dst | -w | -- | -- | + | T4 | INST dst,src | -w | r- | -- | + | T5 | INST dst/src,src | rw | r- | -- | + | T6 | INST src,src | r- | r- | -- | + | T7 | INST dst,src,src | -w | r- | r- | + | T8 | INST dst/src,dst/src | rw | rw | -- | + | T9 | INST dst/src,src,src | rw | r- | r- | + --------------------------------------------------- + | TA | INST dst,addr | -w | -- | -- | + | TB | INST addr | -- | -- | -- | + --------------------------------------------------- + + TA is actually mapped to T4, - so addr acts like a src. + TB is actually mapped to T2, - so addr acts like a src. + +The instruction identifier can be of two types, either a pseudo- +instruction, (denoted as P_) or an Intel instruction (denoted as I_). +Pseudo-instructions imply more work is required to completely decode the +Intel instruction. There are two groups of pseudo-instructions, Intel +prefix bytes which appear before the Opcode proper, and 'rules' which +encode how to further decode the Intel instruction. All rules are +indicated as P_RULEx; note P_RULE1 does not appear, its the obvious rule +of accessing the data table. + +]*/ + +#include "insignia.h" +#include "host_def.h" + +#include "xt.h" +#include "decode.h" +#include "d_inst.h" /* All possible types of decoded instruction */ +#include "d_oper.h" /* All possible types of decoded operands */ + +#define GET_INST_BYTE(f, z) (f(z++)) +#define SKIP_INST_BYTE(z) (z++) +#define INST_BYTE(f, z) (f(z)) +#define INST_OFFSET_BYTE(f, z,o) (f((z)+(o))) +#define NOTE_INST_LOCN(z) (z) +#define CALC_INST_LEN(z,l) ((z)-(l)) + +/* + The Intel instruction 'types'. + */ +#define T0 (UTINY)0 +#define T1 (UTINY)1 +#define T2 (UTINY)2 +#define T3 (UTINY)3 +#define T4 (UTINY)4 +#define T5 (UTINY)5 +#define T6 (UTINY)6 +#define T7 (UTINY)7 +#define T8 (UTINY)8 +#define T9 (UTINY)9 +#define TA T4 +#define TB T0 + +LOCAL UTINY aa_rules[10][3] = + { + /* arg1, arg2 , arg3 */ + { AA_ , AA_ , AA_ }, /* T0 */ + { AA_RW, AA_ , AA_ }, /* T1 */ + { AA_R , AA_ , AA_ }, /* T2 */ + { AA_W , AA_ , AA_ }, /* T3 */ + { AA_W , AA_R , AA_ }, /* T4 */ + { AA_RW, AA_R , AA_ }, /* T5 */ + { AA_R , AA_R , AA_ }, /* T6 */ + { AA_W , AA_R , AA_R }, /* T7 */ + { AA_RW, AA_RW, AA_ }, /* T8 */ + { AA_RW, AA_R , AA_R } /* T9 */ + }; + +/* + The pseudo instructions (rules). + */ +#define P_RULE2 (USHORT)400 +#define P_RULE3 (USHORT)401 +#define P_RULE4 (USHORT)402 +#define P_RULE5 (USHORT)403 +#define P_RULE6 (USHORT)404 +#define P_RULE7 (USHORT)405 +#define P_RULE8 (USHORT)406 + +#define MAX_PSEUDO P_RULE8 + +/* + Intel Prefix bytes. + */ +#define P_AO (USHORT)407 +#define P_CS (USHORT)408 +#define P_DS (USHORT)409 +#define P_ES (USHORT)410 +#define P_FS (USHORT)411 +#define P_GS (USHORT)412 +#define P_LOCK (USHORT)413 +#define P_OO (USHORT)414 +#define P_REPE (USHORT)415 +#define P_REPNE (USHORT)416 +#define P_SS (USHORT)417 +#define P_F1 (USHORT)418 + +/* + Intel operand types. + -------------------- + + See "d_oper.h" for explanation of identifier format. + + Locally known formats (the meaning may be different to the external + format):- + + A Direct address (seg:offset) in instruction stream. + + B Stack (Block?) reference. + + E modR/M byte selects general register or memory address. + + F A fixed register is implied within the opcode. + + G The 'reg' field of the modR/M byte selects a general register. + + H The low 3 bits (2-0) of the last opcode byte select a general + register. + + I The instruction contains immediate data. + + J The instruction contains a relative offset. + + L The 'reg' field of the modR/M byte selects a segment register. + But CS is not a legal value. + + M The modR/M byte may only refer to memory. + + N The 'reg' field of the modR/M byte selects a segment register. + + O Offset of memory operand directly encoded in instruction. + + P The 2 bits (4-3) of the last opcode byte select a segment + register. + + Q The 3 bits (5-3) of the last opcode byte select a segment + register. + + R The 'mode' and 'r/m' fields of the modR/M byte must select a + general register. + + T The operand is a test register. + + X String source operand. + + Y String destination operand. + + Z Implicit addressing form of 'xlat' instruction. + + Locally known types (additional to the external types):- + + x byte sign extended to word. + + y byte sign extended to double word. + + 0 fixed value of zero. + + 1 fixed value of one. + + 3 fixed value of three. + + t co-processor stack top. + + q push onto co-processor stack top(queue?). + + n co-processor register relative to stack top('ndex?). + + + */ +#define A_Hb (UTINY) 50 +#define A_Hw (UTINY) 51 +#define A_Hd (UTINY) 52 +#define A_Gb (UTINY) 53 +#define A_Gw (UTINY) 54 +#define A_Gd (UTINY) 55 +#define A_Pw (UTINY) 56 +#define A_Qw (UTINY) 57 +#define A_Nw (UTINY) 58 +#define A_Fal (UTINY) 59 +#define A_Fcl (UTINY) 60 +#define A_Fax (UTINY) 61 +#define A_Fdx (UTINY) 62 +#define A_Feax (UTINY) 63 +#define A_Eb (UTINY) 64 +#define A_Ew (UTINY) 65 +#define A_Ed (UTINY) 66 +#define A_Ib (UTINY) 67 +#define A_Iw (UTINY) 68 +#define A_Id (UTINY) 69 +#define A_Iy (UTINY) 70 +#define A_Ix (UTINY) 71 +#define A_I0 (UTINY) 72 +#define A_I1 (UTINY) 73 +#define A_I3 (UTINY) 74 +#define A_Jb (UTINY) 75 +#define A_Jw (UTINY) 76 +#define A_Jd (UTINY) 77 +#define A_Ob (UTINY) 78 +#define A_Ow (UTINY) 79 +#define A_Od (UTINY) 80 +#define A_Z (UTINY) 81 +#define A_Aw (UTINY) 82 +#define A_Ad (UTINY) 83 +#define A_Vt (UTINY) 84 +#define A_Vq (UTINY) 85 +#define A_Vn (UTINY) 86 +#define A_V1 (UTINY) 87 +#define A_Xb (UTINY) 88 +#define A_Xw (UTINY) 89 +#define A_Xd (UTINY) 90 +#define A_Yb (UTINY) 91 +#define A_Yw (UTINY) 92 +#define A_Yd (UTINY) 93 +#define A_Lw (UTINY) 94 + +#define A_Ex (UTINY) 95 +#define A_Fcx (UTINY) 96 +#define A_Fecx (UTINY) 97 +#define A_Iv (UTINY) 98 +#define A_Iz (UTINY) 99 + +#define A_Jb2 (UTINY) 100 + +#define MAX_NORMAL A_Jb2 + +/* + Operand rules to encode two arguments in one table entry. + */ +#define A_EwIw (UTINY) 100 +#define A_EwIx (UTINY) 101 +#define A_EdId (UTINY) 102 +#define A_EdIy (UTINY) 103 +#define A_GwCL (UTINY) 104 +#define A_GwIb (UTINY) 105 +#define A_GdCL (UTINY) 106 +#define A_GdIb (UTINY) 107 +#define A_EwIz (UTINY) 108 +#define A_EwIv (UTINY) 109 + +#define A_Bop3b (UTINY) 110 + +typedef struct + { + USHORT inst_id; + UTINY arg1_type; + UTINY arg2_type; + } OPCODE_RECORD; + +typedef struct + { + UTINY inst_type; + OPCODE_RECORD record[2]; + } OPCODE_INFO; + +/* + A couple of macros to make filling in the opcode information a + bit easier. One sets up duplicate entries for those instructions + which are independant of Operand Size. The other is a quick form + for bad opcodes. + */ +#define OI(x,y,z) {{x,y,z},{x,y,z}} + +#define BAD_OPCODE T0,OI(I_ZBADOP , A_ , A_ ) + +/* + Information for each Intel instruction. + */ +LOCAL OPCODE_INFO opcode_info[] = + { + /* 00 00 */{T5,OI(I_ADD8 , A_Eb , A_Gb )}, + /* 01 01 */{T5, {{I_ADD16 , A_Ew , A_Gw },{I_ADD32 , A_Ed , A_Gd }}}, + /* 02 02 */{T5,OI(I_ADD8 , A_Gb , A_Eb )}, + /* 03 03 */{T5, {{I_ADD16 , A_Gw , A_Ew },{I_ADD32 , A_Gd , A_Ed }}}, + /* 04 04 */{T5,OI(I_ADD8 , A_Fal , A_Ib )}, + /* 05 05 */{T5, {{I_ADD16 , A_Fax , A_Iw },{I_ADD32 , A_Feax, A_Id }}}, + /* 06 06 */{T2,OI(I_PUSH16 , A_Pw , A_ )}, + /* 07 07 */{T3,OI(I_POP_SR , A_Pw , A_ )}, + /* 08 08 */{T5,OI(I_OR8 , A_Eb , A_Gb )}, + /* 09 09 */{T5, {{I_OR16 , A_Ew , A_Gw },{I_OR32 , A_Ed , A_Gd }}}, + /* 0a 0a */{T5,OI(I_OR8 , A_Gb , A_Eb )}, + /* 0b 0b */{T5, {{I_OR16 , A_Gw , A_Ew },{I_OR32 , A_Gd , A_Ed }}}, + /* 0c 0c */{T5,OI(I_OR8 , A_Fal , A_Ib )}, + /* 0d 0d */{T5, {{I_OR16 , A_Fax , A_Iw },{I_OR32 , A_Feax, A_Id }}}, + /* 0e 0e */{T2,OI(I_PUSH16 , A_Pw , A_ )}, + /* 0f 0f */{T0,OI(P_RULE3 , 0x1 , 0x00 )}, + + /* 10 10 */{T5,OI(I_ADC8 , A_Eb , A_Gb )}, + /* 11 11 */{T5, {{I_ADC16 , A_Ew , A_Gw },{I_ADC32 , A_Ed , A_Gd }}}, + /* 12 12 */{T5,OI(I_ADC8 , A_Gb , A_Eb )}, + /* 13 13 */{T5, {{I_ADC16 , A_Gw , A_Ew },{I_ADC32 , A_Gd , A_Ed }}}, + /* 14 14 */{T5,OI(I_ADC8 , A_Fal , A_Ib )}, + /* 15 15 */{T5, {{I_ADC16 , A_Fax , A_Iw },{I_ADC32 , A_Feax, A_Id }}}, + /* 16 16 */{T2,OI(I_PUSH16 , A_Pw , A_ )}, + /* 17 17 */{T3,OI(I_POP_SR , A_Pw , A_ )}, + /* 18 18 */{T5,OI(I_SBB8 , A_Eb , A_Gb )}, + /* 19 19 */{T5, {{I_SBB16 , A_Ew , A_Gw },{I_SBB32 , A_Ed , A_Gd }}}, + /* 1a 1a */{T5,OI(I_SBB8 , A_Gb , A_Eb )}, + /* 1b 1b */{T5, {{I_SBB16 , A_Gw , A_Ew },{I_SBB32 , A_Gd , A_Ed }}}, + /* 1c 1c */{T5,OI(I_SBB8 , A_Fal , A_Ib )}, + /* 1d 1d */{T5, {{I_SBB16 , A_Fax , A_Iw },{I_SBB32 , A_Feax, A_Id }}}, + /* 1e 1e */{T2,OI(I_PUSH16 , A_Pw , A_ )}, + /* 1f 1f */{T3,OI(I_POP_SR , A_Pw , A_ )}, + + /* 20 20 */{T5,OI(I_AND8 , A_Eb , A_Gb )}, + /* 21 21 */{T5, {{I_AND16 , A_Ew , A_Gw },{I_AND32 , A_Ed , A_Gd }}}, + /* 22 22 */{T5,OI(I_AND8 , A_Gb , A_Eb )}, + /* 23 23 */{T5, {{I_AND16 , A_Gw , A_Ew },{I_AND32 , A_Gd , A_Ed }}}, + /* 24 24 */{T5,OI(I_AND8 , A_Fal , A_Ib )}, + /* 25 25 */{T5, {{I_AND16 , A_Fax , A_Iw },{I_AND32 , A_Feax, A_Id }}}, + /* 26 26 */{T0,OI(P_ES , A_ , A_ )}, + /* 27 27 */{T0,OI(I_DAA , A_ , A_ )}, + /* 28 28 */{T5,OI(I_SUB8 , A_Eb , A_Gb )}, + /* 29 29 */{T5, {{I_SUB16 , A_Ew , A_Gw },{I_SUB32 , A_Ed , A_Gd }}}, + /* 2a 2a */{T5,OI(I_SUB8 , A_Gb , A_Eb )}, + /* 2b 2b */{T5, {{I_SUB16 , A_Gw , A_Ew },{I_SUB32 , A_Gd , A_Ed }}}, + /* 2c 2c */{T5,OI(I_SUB8 , A_Fal , A_Ib )}, + /* 2d 2d */{T5, {{I_SUB16 , A_Fax , A_Iw },{I_SUB32 , A_Feax, A_Id }}}, + /* 2e 2e */{T0,OI(P_CS , A_ , A_ )}, + /* 2f 2f */{T0,OI(I_DAS , A_ , A_ )}, + + /* 30 30 */{T5,OI(I_XOR8 , A_Eb , A_Gb )}, + /* 31 31 */{T5, {{I_XOR16 , A_Ew , A_Gw },{I_XOR32 , A_Ed , A_Gd }}}, + /* 32 32 */{T5,OI(I_XOR8 , A_Gb , A_Eb )}, + /* 33 33 */{T5, {{I_XOR16 , A_Gw , A_Ew },{I_XOR32 , A_Gd , A_Ed }}}, + /* 34 34 */{T5,OI(I_XOR8 , A_Fal , A_Ib )}, + /* 35 35 */{T5, {{I_XOR16 , A_Fax , A_Iw },{I_XOR32 , A_Feax, A_Id }}}, + /* 36 36 */{T0,OI(P_SS , A_ , A_ )}, + /* 37 37 */{T0,OI(I_AAA , A_ , A_ )}, + /* 38 38 */{T6,OI(I_CMP8 , A_Eb , A_Gb )}, + /* 39 39 */{T6, {{I_CMP16 , A_Ew , A_Gw },{I_CMP32 , A_Ed , A_Gd }}}, + /* 3a 3a */{T6,OI(I_CMP8 , A_Gb , A_Eb )}, + /* 3b 3b */{T6, {{I_CMP16 , A_Gw , A_Ew },{I_CMP32 , A_Gd , A_Ed }}}, + /* 3c 3c */{T6,OI(I_CMP8 , A_Fal , A_Ib )}, + /* 3d 3d */{T6, {{I_CMP16 , A_Fax , A_Iw },{I_CMP32 , A_Feax, A_Id }}}, + /* 3e 3e */{T0,OI(P_DS , A_ , A_ )}, + /* 3f 3f */{T0,OI(I_AAS , A_ , A_ )}, + + /* 40 40 */{T1, {{I_INC16 , A_Hw , A_ },{I_INC32 , A_Hd , A_ }}}, + /* 41 41 */{T1, {{I_INC16 , A_Hw , A_ },{I_INC32 , A_Hd , A_ }}}, + /* 42 42 */{T1, {{I_INC16 , A_Hw , A_ },{I_INC32 , A_Hd , A_ }}}, + /* 43 43 */{T1, {{I_INC16 , A_Hw , A_ },{I_INC32 , A_Hd , A_ }}}, + /* 44 44 */{T1, {{I_INC16 , A_Hw , A_ },{I_INC32 , A_Hd , A_ }}}, + /* 45 45 */{T1, {{I_INC16 , A_Hw , A_ },{I_INC32 , A_Hd , A_ }}}, + /* 46 46 */{T1, {{I_INC16 , A_Hw , A_ },{I_INC32 , A_Hd , A_ }}}, + /* 47 47 */{T1, {{I_INC16 , A_Hw , A_ },{I_INC32 , A_Hd , A_ }}}, + /* 48 48 */{T1, {{I_DEC16 , A_Hw , A_ },{I_DEC32 , A_Hd , A_ }}}, + /* 49 49 */{T1, {{I_DEC16 , A_Hw , A_ },{I_DEC32 , A_Hd , A_ }}}, + /* 4a 4a */{T1, {{I_DEC16 , A_Hw , A_ },{I_DEC32 , A_Hd , A_ }}}, + /* 4b 4b */{T1, {{I_DEC16 , A_Hw , A_ },{I_DEC32 , A_Hd , A_ }}}, + /* 4c 4c */{T1, {{I_DEC16 , A_Hw , A_ },{I_DEC32 , A_Hd , A_ }}}, + /* 4d 4d */{T1, {{I_DEC16 , A_Hw , A_ },{I_DEC32 , A_Hd , A_ }}}, + /* 4e 4e */{T1, {{I_DEC16 , A_Hw , A_ },{I_DEC32 , A_Hd , A_ }}}, + /* 4f 4f */{T1, {{I_DEC16 , A_Hw , A_ },{I_DEC32 , A_Hd , A_ }}}, + + /* 50 50 */{T2, {{I_PUSH16 , A_Hw , A_ },{I_PUSH32 , A_Hd , A_ }}}, + /* 51 51 */{T2, {{I_PUSH16 , A_Hw , A_ },{I_PUSH32 , A_Hd , A_ }}}, + /* 52 52 */{T2, {{I_PUSH16 , A_Hw , A_ },{I_PUSH32 , A_Hd , A_ }}}, + /* 53 53 */{T2, {{I_PUSH16 , A_Hw , A_ },{I_PUSH32 , A_Hd , A_ }}}, + /* 54 54 */{T2, {{I_PUSH16 , A_Hw , A_ },{I_PUSH32 , A_Hd , A_ }}}, + /* 55 55 */{T2, {{I_PUSH16 , A_Hw , A_ },{I_PUSH32 , A_Hd , A_ }}}, + /* 56 56 */{T2, {{I_PUSH16 , A_Hw , A_ },{I_PUSH32 , A_Hd , A_ }}}, + /* 57 57 */{T2, {{I_PUSH16 , A_Hw , A_ },{I_PUSH32 , A_Hd , A_ }}}, + /* 58 58 */{T3, {{I_POP16 , A_Hw , A_ },{I_POP32 , A_Hd , A_ }}}, + /* 59 59 */{T3, {{I_POP16 , A_Hw , A_ },{I_POP32 , A_Hd , A_ }}}, + /* 5a 5a */{T3, {{I_POP16 , A_Hw , A_ },{I_POP32 , A_Hd , A_ }}}, + /* 5b 5b */{T3, {{I_POP16 , A_Hw , A_ },{I_POP32 , A_Hd , A_ }}}, + /* 5c 5c */{T3, {{I_POP16 , A_Hw , A_ },{I_POP32 , A_Hd , A_ }}}, + /* 5d 5d */{T3, {{I_POP16 , A_Hw , A_ },{I_POP32 , A_Hd , A_ }}}, + /* 5e 5e */{T3, {{I_POP16 , A_Hw , A_ },{I_POP32 , A_Hd , A_ }}}, + /* 5f 5f */{T3, {{I_POP16 , A_Hw , A_ },{I_POP32 , A_Hd , A_ }}}, + + /* 60 60 */{T0, {{I_PUSHA , A_ , A_ },{I_PUSHAD , A_ , A_ }}}, + /* 61 61 */{T0, {{I_POPA , A_ , A_ },{I_POPAD , A_ , A_ }}}, + /* 62 62 */{T6, {{I_BOUND16 , A_Gw , A_Ma16},{I_BOUND32 , A_Gd , A_Ma32}}}, + /* 63 63 */{T5,OI(I_ARPL , A_Ew , A_Gw )}, +#ifdef CPU_286 + /* 64 64 */{BAD_OPCODE}, + /* 65 65 */{BAD_OPCODE}, + /* 66 66 */{BAD_OPCODE}, + /* 67 67 */{BAD_OPCODE}, +#else + /* 64 64 */{T0,OI(P_FS , A_ , A_ )}, + /* 65 65 */{T0,OI(P_GS , A_ , A_ )}, + /* 66 66 */{T0,OI(P_OO , A_ , A_ )}, + /* 67 67 */{T0,OI(P_AO , A_ , A_ )}, +#endif /* CPU_286 */ + /* 68 68 */{T2, {{I_PUSH16 , A_Iw , A_ },{I_PUSH32 , A_Id , A_ }}}, + /* 69 69 */{T7, {{I_IMUL16T3 , A_Gw , A_EwIw},{I_IMUL32T3 , A_Gd , A_EdId}}}, + /* 6a 6a */{T2, {{I_PUSH16 , A_Ix , A_ },{I_PUSH32 , A_Iy , A_ }}}, + /* 6b 6b */{T7, {{I_IMUL16T3 , A_Gw , A_EwIx},{I_IMUL32T3 , A_Gd , A_EdIy}}}, + /* 6c 6c */{T0,OI(P_RULE6 , 0x3 , 0x68 )}, + /* 6d 6d */{T0,OI(P_RULE6 , 0x3 , 0x6b )}, + /* 6e 6e */{T0,OI(P_RULE6 , 0x3 , 0x6e )}, + /* 6f 6f */{T0,OI(P_RULE6 , 0x3 , 0x71 )}, + + /* 70 70 */{T2, {{I_JO16 , A_Jb2 , A_ },{I_JO32 , A_Jb , A_ }}}, + /* 71 71 */{T2, {{I_JNO16 , A_Jb2 , A_ },{I_JNO32 , A_Jb , A_ }}}, + /* 72 72 */{T2, {{I_JB16 , A_Jb2 , A_ },{I_JB32 , A_Jb , A_ }}}, + /* 73 73 */{T2, {{I_JNB16 , A_Jb2 , A_ },{I_JNB32 , A_Jb , A_ }}}, + /* 74 74 */{T2, {{I_JZ16 , A_Jb2 , A_ },{I_JZ32 , A_Jb , A_ }}}, + /* 75 75 */{T2, {{I_JNZ16 , A_Jb2 , A_ },{I_JNZ32 , A_Jb , A_ }}}, + /* 76 76 */{T2, {{I_JBE16 , A_Jb2 , A_ },{I_JBE32 , A_Jb , A_ }}}, + /* 77 77 */{T2, {{I_JNBE16 , A_Jb2 , A_ },{I_JNBE32 , A_Jb , A_ }}}, + /* 78 78 */{T2, {{I_JS16 , A_Jb2 , A_ },{I_JS32 , A_Jb , A_ }}}, + /* 79 79 */{T2, {{I_JNS16 , A_Jb2 , A_ },{I_JNS32 , A_Jb , A_ }}}, + /* 7a 7a */{T2, {{I_JP16 , A_Jb2 , A_ },{I_JP32 , A_Jb , A_ }}}, + /* 7b 7b */{T2, {{I_JNP16 , A_Jb2 , A_ },{I_JNP32 , A_Jb , A_ }}}, + /* 7c 7c */{T2, {{I_JL16 , A_Jb2 , A_ },{I_JL32 , A_Jb , A_ }}}, + /* 7d 7d */{T2, {{I_JNL16 , A_Jb2 , A_ },{I_JNL32 , A_Jb , A_ }}}, + /* 7e 7e */{T2, {{I_JLE16 , A_Jb2 , A_ },{I_JLE32 , A_Jb , A_ }}}, + /* 7f 7f */{T2, {{I_JNLE16 , A_Jb2 , A_ },{I_JNLE32 , A_Jb , A_ }}}, + + /* 80 80 */{T0,OI(P_RULE2 , 0x2 , 0x00 )}, + /* 81 81 */{T0,OI(P_RULE2 , 0x2 , 0x08 )}, + /* 82 82 */{T0,OI(P_RULE2 , 0x2 , 0x00 )}, + /* 83 83 */{T0,OI(P_RULE2 , 0x2 , 0x10 )}, + /* 84 84 */{T6,OI(I_TEST8 , A_Eb , A_Gb )}, + /* 85 85 */{T6, {{I_TEST16 , A_Ew , A_Gw },{I_TEST32 , A_Ed , A_Gd }}}, + /* 86 86 */{T8,OI(I_XCHG8 , A_Eb , A_Gb )}, + /* 87 87 */{T8, {{I_XCHG16 , A_Ew , A_Gw },{I_XCHG32 , A_Ed , A_Gd }}}, + /* 88 88 */{T4,OI(I_MOV8 , A_Eb , A_Gb )}, + /* 89 89 */{T4, {{I_MOV16 , A_Ew , A_Gw },{I_MOV32 , A_Ed , A_Gd }}}, + /* 8a 8a */{T4,OI(I_MOV8 , A_Gb , A_Eb )}, + /* 8b 8b */{T4, {{I_MOV16 , A_Gw , A_Ew },{I_MOV32 , A_Gd , A_Ed }}}, + +#ifdef NO_CHIP_BUG + /* 8c 8c */{T4,OI(I_MOV16 , A_Ew , A_Nw )}, +#else + /* 8c 8c */{T4, {{I_MOV16 , A_Ew , A_Nw },{I_MOV32 , A_Ex , A_Nw }}}, +#endif /* NO_CHIP_BUG */ + + /* 8d 8d */{TA, {{I_LEA , A_Gw , A_M },{I_LEA , A_Gd , A_M }}}, + /* 8e 8e */{T4,OI(I_MOV_SR , A_Lw , A_Ew )}, + /* 8f 8f */{T0,OI(P_RULE2 , 0x2 , 0x18 )}, + + /* 90 90 */{T0,OI(I_NOP , A_ , A_ )}, + /* 91 91 */{T8, {{I_XCHG16 , A_Fax , A_Hw },{I_XCHG32 , A_Feax, A_Hd }}}, + /* 92 92 */{T8, {{I_XCHG16 , A_Fax , A_Hw },{I_XCHG32 , A_Feax, A_Hd }}}, + /* 93 93 */{T8, {{I_XCHG16 , A_Fax , A_Hw },{I_XCHG32 , A_Feax, A_Hd }}}, + /* 94 94 */{T8, {{I_XCHG16 , A_Fax , A_Hw },{I_XCHG32 , A_Feax, A_Hd }}}, + /* 95 95 */{T8, {{I_XCHG16 , A_Fax , A_Hw },{I_XCHG32 , A_Feax, A_Hd }}}, + /* 96 96 */{T8, {{I_XCHG16 , A_Fax , A_Hw },{I_XCHG32 , A_Feax, A_Hd }}}, + /* 97 97 */{T8, {{I_XCHG16 , A_Fax , A_Hw },{I_XCHG32 , A_Feax, A_Hd }}}, + /* 98 98 */{T0, {{I_CBW , A_ , A_ },{I_CWDE , A_ , A_ }}}, + /* 99 99 */{T0, {{I_CWD , A_ , A_ },{I_CDQ , A_ , A_ }}}, + /* 9a 9a */{T2, {{I_CALLF16 , A_Aw , A_ },{I_CALLF32 , A_Ad , A_ }}}, + /* 9b 9b */{T0,OI(I_WAIT , A_ , A_ )}, + /* 9c 9c */{T0, {{I_PUSHF , A_ , A_ },{I_PUSHFD , A_ , A_ }}}, + /* 9d 9d */{T0, {{I_POPF , A_ , A_ },{I_POPFD , A_ , A_ }}}, + /* 9e 9e */{T0,OI(I_SAHF , A_ , A_ )}, + /* 9f 9f */{T0,OI(I_LAHF , A_ , A_ )}, + + /* a0 a0 */{T4,OI(I_MOV8 , A_Fal , A_Ob )}, + /* a1 a1 */{T4, {{I_MOV16 , A_Fax , A_Ow },{I_MOV32 , A_Feax, A_Od }}}, + /* a2 a2 */{T4,OI(I_MOV8 , A_Ob , A_Fal )}, + /* a3 a3 */{T4, {{I_MOV16 , A_Ow , A_Fax },{I_MOV32 , A_Od , A_Feax}}}, + /* a4 a4 */{T0,OI(P_RULE6 , 0x3 , 0x74 )}, + /* a5 a5 */{T0,OI(P_RULE6 , 0x3 , 0x77 )}, + /* a6 a6 */{T0,OI(P_RULE6 , 0x3 , 0x7a )}, + /* a7 a7 */{T0,OI(P_RULE6 , 0x3 , 0x7d )}, + /* a8 a8 */{T6,OI(I_TEST8 , A_Fal , A_Ib )}, + /* a9 a9 */{T6, {{I_TEST16 , A_Fax , A_Iw },{I_TEST32 , A_Feax, A_Id }}}, + /* aa aa */{T0,OI(P_RULE6 , 0x3 , 0x80 )}, + /* ab ab */{T0,OI(P_RULE6 , 0x3 , 0x83 )}, + /* ac ac */{T0,OI(P_RULE6 , 0x3 , 0x86 )}, + /* ad ad */{T0,OI(P_RULE6 , 0x3 , 0x89 )}, + /* ae ae */{T0,OI(P_RULE6 , 0x3 , 0x8c )}, + /* af af */{T0,OI(P_RULE6 , 0x3 , 0x8f )}, + + /* b0 b0 */{T4,OI(I_MOV8 , A_Hb , A_Ib )}, + /* b1 b1 */{T4,OI(I_MOV8 , A_Hb , A_Ib )}, + /* b2 b2 */{T4,OI(I_MOV8 , A_Hb , A_Ib )}, + /* b3 b3 */{T4,OI(I_MOV8 , A_Hb , A_Ib )}, + /* b4 b4 */{T4,OI(I_MOV8 , A_Hb , A_Ib )}, + /* b5 b5 */{T4,OI(I_MOV8 , A_Hb , A_Ib )}, + /* b6 b6 */{T4,OI(I_MOV8 , A_Hb , A_Ib )}, + /* b7 b7 */{T4,OI(I_MOV8 , A_Hb , A_Ib )}, + /* b8 b8 */{T4, {{I_MOV16 , A_Hw , A_Iw },{I_MOV32 , A_Hd , A_Id }}}, + /* b9 b9 */{T4, {{I_MOV16 , A_Hw , A_Iw },{I_MOV32 , A_Hd , A_Id }}}, + /* ba ba */{T4, {{I_MOV16 , A_Hw , A_Iw },{I_MOV32 , A_Hd , A_Id }}}, + /* bb bb */{T4, {{I_MOV16 , A_Hw , A_Iw },{I_MOV32 , A_Hd , A_Id }}}, + /* bc bc */{T4, {{I_MOV16 , A_Hw , A_Iw },{I_MOV32 , A_Hd , A_Id }}}, + /* bd bd */{T4, {{I_MOV16 , A_Hw , A_Iw },{I_MOV32 , A_Hd , A_Id }}}, + /* be be */{T4, {{I_MOV16 , A_Hw , A_Iw },{I_MOV32 , A_Hd , A_Id }}}, + /* bf bf */{T4, {{I_MOV16 , A_Hw , A_Iw },{I_MOV32 , A_Hd , A_Id }}}, + + /* c0 c0 */{T0,OI(P_RULE2 , 0x2 , 0x20 )}, + /* c1 c1 */{T0,OI(P_RULE2 , 0x2 , 0x28 )}, + /* c2 c2 */{T2, {{I_RETN16 , A_Iw , A_ },{I_RETN32 , A_Iw , A_ }}}, + /* c3 c3 */{T2, {{I_RETN16 , A_I0 , A_ },{I_RETN32 , A_I0 , A_ }}}, + /* c4 c4 */{T0,OI(P_RULE7 , 0x3 , 0x98 )}, + /* c5 c5 */{T4, {{I_LDS , A_Gw , A_Mp16},{I_LDS , A_Gd , A_Mp32}}}, + /* c6 c6 */{T0,OI(P_RULE2 , 0x2 , 0x30 )}, + /* c7 c7 */{T0,OI(P_RULE2 , 0x2 , 0x38 )}, + /* c8 c8 */{T6, {{I_ENTER16 , A_Iw , A_Ib },{I_ENTER32 , A_Iw , A_Ib }}}, + /* c9 c9 */{T0, {{I_LEAVE16 , A_ , A_ },{I_LEAVE32 , A_ , A_ }}}, + /* ca ca */{T2, {{I_RETF16 , A_Iw , A_ },{I_RETF32 , A_Iw , A_ }}}, + /* cb cb */{T2, {{I_RETF16 , A_I0 , A_ },{I_RETF32 , A_I0 , A_ }}}, + /* cc cc */{T2,OI(I_INT3 , A_I3 , A_ )}, + /* cd cd */{T2,OI(I_INT , A_Ib , A_ )}, + /* ce ce */{T0,OI(I_INTO , A_ , A_ )}, + /* cf cf */{T0, {{I_IRET , A_ , A_ },{I_IRETD , A_ , A_ }}}, + + /* d0 d0 */{T0,OI(P_RULE2 , 0x2 , 0x40 )}, + /* d1 d1 */{T0,OI(P_RULE2 , 0x2 , 0x48 )}, + /* d2 d2 */{T0,OI(P_RULE2 , 0x2 , 0x50 )}, + /* d3 d3 */{T0,OI(P_RULE2 , 0x2 , 0x58 )}, + /* d4 d4 */{T2,OI(I_AAM , A_Ib , A_ )}, + /* d5 d5 */{T2,OI(I_AAD , A_Ib , A_ )}, + /* d6 d6 */{T2,OI(I_ZBOP , A_Ib , A_ )}, + /* d7 d7 */{T2,OI(I_XLAT , A_Z , A_ )}, + /* d8 d8 */{T0,OI(P_RULE4 , 0x2 , 0xa0 )}, + /* d9 d9 */{T0,OI(P_RULE4 , 0x2 , 0xb0 )}, + /* da da */{T0,OI(P_RULE4 , 0x2 , 0xc0 )}, + /* db db */{T0,OI(P_RULE4 , 0x2 , 0xd0 )}, + /* dc dc */{T0,OI(P_RULE4 , 0x2 , 0xe0 )}, + /* dd dd */{T0,OI(P_RULE4 , 0x2 , 0xf0 )}, + /* de de */{T0,OI(P_RULE4 , 0x3 , 0x00 )}, + /* df df */{T0,OI(P_RULE4 , 0x3 , 0x10 )}, + + /* e0 e0 */{T2,OI(P_RULE8 , 0x3 , 0x9a )}, + /* e1 e1 */{T2,OI(P_RULE8 , 0x3 , 0x9c )}, + /* e2 e2 */{T2,OI(P_RULE8 , 0x3 , 0x9e )}, + /* e3 e3 */{T2,OI(P_RULE8 , 0x3 , 0xa0 )}, + /* e4 e4 */{T4,OI(I_IN8 , A_Fal , A_Ib )}, + /* e5 e5 */{T4, {{I_IN16 , A_Fax , A_Ib },{I_IN32 , A_Feax, A_Ib }}}, + /* e6 e6 */{T6,OI(I_OUT8 , A_Ib , A_Fal )}, + /* e7 e7 */{T6, {{I_OUT16 , A_Ib , A_Fax },{I_OUT32 , A_Ib , A_Feax}}}, + /* e8 e8 */{T2, {{I_CALLR16 , A_Jw , A_ },{I_CALLR32 , A_Jd , A_ }}}, + /* e9 e9 */{T2, {{I_JMPR16 , A_Jw , A_ },{I_JMPR32 , A_Jd , A_ }}}, + /* ea ea */{T2, {{I_JMPF16 , A_Aw , A_ },{I_JMPF32 , A_Ad , A_ }}}, + /* eb eb */{T2, {{I_JMPR16 , A_Jb , A_ },{I_JMPR32 , A_Jb , A_ }}}, + /* ec ec */{T4,OI(I_IN8 , A_Fal , A_Fdx )}, + /* ed ed */{T4, {{I_IN16 , A_Fax , A_Fdx },{I_IN32 , A_Feax, A_Fdx }}}, + /* ee ee */{T6,OI(I_OUT8 , A_Fdx , A_Fal )}, + /* ef ef */{T6, {{I_OUT16 , A_Fdx , A_Fax },{I_OUT32 , A_Fdx , A_Feax}}}, + +#ifdef CPU_286 + /* f0 f0 */{T0,OI(I_LOCK , A_ , A_ )}, +#else + /* f0 f0 */{T0,OI(P_LOCK , A_ , A_ )}, +#endif /* CPU_286 */ + /* f1 f1 */{T0,OI(P_F1 , A_ , A_ )}, + /* f2 f2 */{T0,OI(P_REPNE , A_ , A_ )}, + /* f3 f3 */{T0,OI(P_REPE , A_ , A_ )}, + /* f4 f4 */{T0,OI(I_HLT , A_ , A_ )}, + /* f5 f5 */{T0,OI(I_CMC , A_ , A_ )}, + /* f6 f6 */{T0,OI(P_RULE2 , 0x2 , 0x60 )}, + /* f7 f7 */{T0,OI(P_RULE2 , 0x2 , 0x68 )}, + /* f8 f8 */{T0,OI(I_CLC , A_ , A_ )}, + /* f9 f9 */{T0,OI(I_STC , A_ , A_ )}, + /* fa fa */{T0,OI(I_CLI , A_ , A_ )}, + /* fb fb */{T0,OI(I_STI , A_ , A_ )}, + /* fc fc */{T0,OI(I_CLD , A_ , A_ )}, + /* fd fd */{T0,OI(I_STD , A_ , A_ )}, + /* fe fe */{T0,OI(P_RULE2 , 0x2 , 0x70 )}, + /* ff ff */{T0,OI(P_RULE2 , 0x2 , 0x78 )}, + + /*100 0f/00 */{T0,OI(P_RULE2 , 0x2 , 0x80 )}, + /*101 0f/01 */{T0,OI(P_RULE2 , 0x2 , 0x88 )}, + /*102 0f/02 */{T5, {{I_LAR , A_Gw , A_Ew },{I_LAR , A_Gd , A_Ew }}}, + /*103 0f/03 */{T5, {{I_LSL , A_Gw , A_Ew },{I_LSL , A_Gd , A_Ew }}}, + /*104 0f/04 */{BAD_OPCODE}, +#ifdef CPU_286 + /*105 0f/05 */{T0,OI(I_LOADALL , A_ , A_ )}, +#else + /*105 0f/05 */{BAD_OPCODE}, +#endif /* CPU_286 */ + /*106 0f/06 */{T0,OI(I_CLTS , A_ , A_ )}, +#ifdef CPU_286 + /*105 0f/07 */{BAD_OPCODE}, + /*105 0f/08 */{BAD_OPCODE}, + /*105 0f/09 */{BAD_OPCODE}, +#else + /*107 0f/07 */{T0,OI(I_ZRSRVD , A_ , A_ )}, + /*108 0f/08 */{T0,OI(I_INVD , A_ , A_ )}, + /*109 0f/09 */{T0,OI(I_WBINVD , A_ , A_ )}, +#endif /* CPU_286 */ + /*10a 0f/0a */{BAD_OPCODE}, + /*10b 0f/0b */{BAD_OPCODE}, + /*10c 0f/0c */{BAD_OPCODE}, + /*10d 0f/0d */{BAD_OPCODE}, + /*10e 0f/0e */{BAD_OPCODE}, +#ifdef PIG + /*10f 0f/0f */{T0,OI(I_ZZEXIT , A_ , A_ )}, +#else + /*10f 0f/0f */{BAD_OPCODE}, +#endif /* PIG */ + +#ifdef CPU_286 + /*110 0f/10 */{BAD_OPCODE}, + /*111 0f/11 */{BAD_OPCODE}, + /*112 0f/12 */{BAD_OPCODE}, + /*113 0f/13 */{BAD_OPCODE}, +#else + /*110 0f/10 */{T0,OI(I_ZRSRVD , A_ , A_ )}, + /*111 0f/11 */{T0,OI(I_ZRSRVD , A_ , A_ )}, + /*112 0f/12 */{T0,OI(I_ZRSRVD , A_ , A_ )}, + /*113 0f/13 */{T0,OI(I_ZRSRVD , A_ , A_ )}, +#endif /* CPU_286 */ + /*114 0f/14 */{BAD_OPCODE}, + /*115 0f/15 */{BAD_OPCODE}, + /*116 0f/16 */{BAD_OPCODE}, + /*117 0f/17 */{BAD_OPCODE}, + /*118 0f/18 */{BAD_OPCODE}, + /*119 0f/19 */{BAD_OPCODE}, + /*11a 0f/1a */{BAD_OPCODE}, + /*11b 0f/1b */{BAD_OPCODE}, + /*11c 0f/1c */{BAD_OPCODE}, + /*11d 0f/1d */{BAD_OPCODE}, + /*11e 0f/1e */{BAD_OPCODE}, + /*11f 0f/1f */{BAD_OPCODE}, + +#ifdef CPU_286 + /*120 0f/20 */{BAD_OPCODE}, + /*121 0f/21 */{BAD_OPCODE}, + /*122 0f/22 */{BAD_OPCODE}, + /*123 0f/23 */{BAD_OPCODE}, + /*124 0f/24 */{BAD_OPCODE}, + /*125 0f/25 */{BAD_OPCODE}, + /*126 0f/26 */{BAD_OPCODE}, +#else + /*120 0f/20 */{T4,OI(I_MOV_CR , A_Rd , A_Cd )}, + /*121 0f/21 */{T4,OI(I_MOV_DR , A_Rd , A_Dd )}, + /*122 0f/22 */{T4,OI(I_MOV_CR , A_Cd , A_Rd )}, + /*123 0f/23 */{T4,OI(I_MOV_DR , A_Dd , A_Rd )}, + /*124 0f/24 */{T4,OI(I_MOV_TR , A_Rd , A_Td )}, + /*125 0f/25 */{BAD_OPCODE}, + /*126 0f/26 */{T4,OI(I_MOV_TR , A_Td , A_Rd )}, +#endif /* CPU_286 */ + /*127 0f/27 */{BAD_OPCODE}, + /*128 0f/28 */{BAD_OPCODE}, + /*129 0f/29 */{BAD_OPCODE}, + /*12a 0f/2a */{BAD_OPCODE}, + /*12b 0f/2b */{BAD_OPCODE}, + /*12c 0f/2c */{BAD_OPCODE}, + /*12d 0f/2d */{BAD_OPCODE}, + /*12e 0f/2e */{BAD_OPCODE}, + /*12f 0f/2f */{BAD_OPCODE}, + + /*130 0f/30 */{BAD_OPCODE}, + /*131 0f/31 */{BAD_OPCODE}, + /*132 0f/32 */{BAD_OPCODE}, + /*133 0f/33 */{BAD_OPCODE}, + /*134 0f/34 */{BAD_OPCODE}, + /*135 0f/35 */{BAD_OPCODE}, + /*136 0f/36 */{BAD_OPCODE}, + /*137 0f/37 */{BAD_OPCODE}, + /*138 0f/38 */{BAD_OPCODE}, + /*139 0f/39 */{BAD_OPCODE}, + /*13a 0f/3a */{BAD_OPCODE}, + /*13b 0f/3b */{BAD_OPCODE}, + /*13c 0f/3c */{BAD_OPCODE}, + /*13d 0f/3d */{BAD_OPCODE}, + /*13e 0f/3e */{BAD_OPCODE}, + /*13f 0f/3f */{BAD_OPCODE}, + + /*140 0f/40 */{BAD_OPCODE}, + /*141 0f/41 */{BAD_OPCODE}, + /*142 0f/42 */{BAD_OPCODE}, + /*143 0f/43 */{BAD_OPCODE}, + /*144 0f/44 */{BAD_OPCODE}, + /*145 0f/45 */{BAD_OPCODE}, + /*146 0f/46 */{BAD_OPCODE}, + /*147 0f/47 */{BAD_OPCODE}, + /*148 0f/48 */{BAD_OPCODE}, + /*149 0f/49 */{BAD_OPCODE}, + /*14a 0f/4a */{BAD_OPCODE}, + /*14b 0f/4b */{BAD_OPCODE}, + /*14c 0f/4c */{BAD_OPCODE}, + /*14d 0f/4d */{BAD_OPCODE}, + /*14e 0f/4e */{BAD_OPCODE}, + /*14f 0f/4f */{BAD_OPCODE}, + + /*150 0f/50 */{BAD_OPCODE}, + /*151 0f/51 */{BAD_OPCODE}, + /*152 0f/52 */{BAD_OPCODE}, + /*153 0f/53 */{BAD_OPCODE}, + /*154 0f/54 */{BAD_OPCODE}, + /*155 0f/55 */{BAD_OPCODE}, + /*156 0f/56 */{BAD_OPCODE}, + /*157 0f/57 */{BAD_OPCODE}, + /*158 0f/58 */{BAD_OPCODE}, + /*159 0f/59 */{BAD_OPCODE}, + /*15a 0f/5a */{BAD_OPCODE}, + /*15b 0f/5b */{BAD_OPCODE}, + /*15c 0f/5c */{BAD_OPCODE}, + /*15d 0f/5d */{BAD_OPCODE}, + /*15e 0f/5e */{BAD_OPCODE}, + /*15f 0f/5f */{BAD_OPCODE}, + + /*160 0f/60 */{BAD_OPCODE}, + /*161 0f/61 */{BAD_OPCODE}, + /*162 0f/62 */{BAD_OPCODE}, + /*163 0f/63 */{BAD_OPCODE}, + /*164 0f/64 */{BAD_OPCODE}, + /*165 0f/65 */{BAD_OPCODE}, + /*166 0f/66 */{BAD_OPCODE}, + /*167 0f/67 */{BAD_OPCODE}, + /*168 0f/68 */{BAD_OPCODE}, + /*169 0f/69 */{BAD_OPCODE}, + /*16a 0f/6a */{BAD_OPCODE}, + /*16b 0f/6b */{BAD_OPCODE}, + /*16c 0f/6c */{BAD_OPCODE}, + /*16d 0f/6d */{BAD_OPCODE}, + /*16e 0f/6e */{BAD_OPCODE}, + /*16f 0f/6f */{BAD_OPCODE}, + + /*170 0f/70 */{BAD_OPCODE}, + /*171 0f/71 */{BAD_OPCODE}, + /*172 0f/72 */{BAD_OPCODE}, + /*173 0f/73 */{BAD_OPCODE}, + /*174 0f/74 */{BAD_OPCODE}, + /*175 0f/75 */{BAD_OPCODE}, + /*176 0f/76 */{BAD_OPCODE}, + /*177 0f/77 */{BAD_OPCODE}, + /*178 0f/78 */{BAD_OPCODE}, + /*179 0f/79 */{BAD_OPCODE}, + /*17a 0f/7a */{BAD_OPCODE}, + /*17b 0f/7b */{BAD_OPCODE}, + /*17c 0f/7c */{BAD_OPCODE}, + /*17d 0f/7d */{BAD_OPCODE}, + /*17e 0f/7e */{BAD_OPCODE}, + /*17f 0f/7f */{BAD_OPCODE}, + +#ifdef CPU_286 + /*180 0f/80 */{BAD_OPCODE}, + /*181 0f/81 */{BAD_OPCODE}, + /*182 0f/82 */{BAD_OPCODE}, + /*183 0f/83 */{BAD_OPCODE}, + /*184 0f/84 */{BAD_OPCODE}, + /*185 0f/85 */{BAD_OPCODE}, + /*186 0f/86 */{BAD_OPCODE}, + /*187 0f/87 */{BAD_OPCODE}, + /*188 0f/88 */{BAD_OPCODE}, + /*189 0f/89 */{BAD_OPCODE}, + /*18a 0f/8a */{BAD_OPCODE}, + /*18b 0f/8b */{BAD_OPCODE}, + /*18c 0f/8c */{BAD_OPCODE}, + /*18d 0f/8d */{BAD_OPCODE}, + /*18e 0f/8e */{BAD_OPCODE}, + /*18f 0f/8f */{BAD_OPCODE}, + + /*190 0f/90 */{BAD_OPCODE}, + /*191 0f/91 */{BAD_OPCODE}, + /*192 0f/92 */{BAD_OPCODE}, + /*193 0f/93 */{BAD_OPCODE}, + /*194 0f/94 */{BAD_OPCODE}, + /*195 0f/95 */{BAD_OPCODE}, + /*196 0f/96 */{BAD_OPCODE}, + /*197 0f/97 */{BAD_OPCODE}, + /*198 0f/98 */{BAD_OPCODE}, + /*199 0f/99 */{BAD_OPCODE}, + /*19a 0f/9a */{BAD_OPCODE}, + /*19b 0f/9b */{BAD_OPCODE}, + /*19c 0f/9c */{BAD_OPCODE}, + /*19d 0f/9d */{BAD_OPCODE}, + /*19e 0f/9e */{BAD_OPCODE}, + /*19f 0f/9f */{BAD_OPCODE}, + + /*1a0 0f/a0 */{BAD_OPCODE}, + /*1a1 0f/a1 */{BAD_OPCODE}, + /*1a2 0f/a2 */{BAD_OPCODE}, + /*1a3 0f/a3 */{BAD_OPCODE}, + /*1a4 0f/a4 */{BAD_OPCODE}, + /*1a5 0f/a5 */{BAD_OPCODE}, + /*1a6 0f/a6 */{BAD_OPCODE}, + /*1a7 0f/a7 */{BAD_OPCODE}, + /*1a8 0f/a8 */{BAD_OPCODE}, + /*1a9 0f/a9 */{BAD_OPCODE}, + /*1aa 0f/aa */{BAD_OPCODE}, + /*1ab 0f/ab */{BAD_OPCODE}, + /*1ac 0f/ac */{BAD_OPCODE}, + /*1ad 0f/ad */{BAD_OPCODE}, + /*1aa 0f/ae */{BAD_OPCODE}, + /*1af 0f/af */{BAD_OPCODE}, + + /*1b0 0f/b0 */{BAD_OPCODE}, + /*1b1 0f/b1 */{BAD_OPCODE}, + /*1b2 0f/b2 */{BAD_OPCODE}, + /*1b3 0f/b3 */{BAD_OPCODE}, + /*1b4 0f/b4 */{BAD_OPCODE}, + /*1b5 0f/b5 */{BAD_OPCODE}, + /*1b6 0f/b6 */{BAD_OPCODE}, + /*1b7 0f/b7 */{BAD_OPCODE}, + /*1b8 0f/b8 */{BAD_OPCODE}, + /*1b9 0f/b9 */{BAD_OPCODE}, + /*1ba 0f/ba */{BAD_OPCODE}, + /*1bb 0f/bb */{BAD_OPCODE}, + /*1bc 0f/bc */{BAD_OPCODE}, + /*1bd 0f/bd */{BAD_OPCODE}, + /*1be 0f/be */{BAD_OPCODE}, + /*1bf 0f/bf */{BAD_OPCODE}, + + /*1c0 0f/c0 */{BAD_OPCODE}, + /*1c1 0f/c1 */{BAD_OPCODE}, + /*1c2 0f/c2 */{BAD_OPCODE}, + /*1c3 0f/c3 */{BAD_OPCODE}, + /*1c4 0f/c4 */{BAD_OPCODE}, + /*1c5 0f/c5 */{BAD_OPCODE}, + /*1c6 0f/c6 */{BAD_OPCODE}, + /*1c7 0f/c7 */{BAD_OPCODE}, + /*1c8 0f/c8 */{BAD_OPCODE}, + /*1c9 0f/c9 */{BAD_OPCODE}, + /*1ca 0f/ca */{BAD_OPCODE}, + /*1cb 0f/cb */{BAD_OPCODE}, + /*1cc 0f/cc */{BAD_OPCODE}, + /*1cd 0f/cd */{BAD_OPCODE}, + /*1ce 0f/ce */{BAD_OPCODE}, + /*1cf 0f/cf */{BAD_OPCODE}, +#else + /*180 0f/80 */{T2, {{I_JO16 , A_Jw , A_ },{I_JO32 , A_Jd , A_ }}}, + /*181 0f/81 */{T2, {{I_JNO16 , A_Jw , A_ },{I_JNO32 , A_Jd , A_ }}}, + /*182 0f/82 */{T2, {{I_JB16 , A_Jw , A_ },{I_JB32 , A_Jd , A_ }}}, + /*183 0f/83 */{T2, {{I_JNB16 , A_Jw , A_ },{I_JNB32 , A_Jd , A_ }}}, + /*184 0f/84 */{T2, {{I_JZ16 , A_Jw , A_ },{I_JZ32 , A_Jd , A_ }}}, + /*185 0f/85 */{T2, {{I_JNZ16 , A_Jw , A_ },{I_JNZ32 , A_Jd , A_ }}}, + /*186 0f/86 */{T2, {{I_JBE16 , A_Jw , A_ },{I_JBE32 , A_Jd , A_ }}}, + /*187 0f/87 */{T2, {{I_JNBE16 , A_Jw , A_ },{I_JNBE32 , A_Jd , A_ }}}, + /*188 0f/88 */{T2, {{I_JS16 , A_Jw , A_ },{I_JS32 , A_Jd , A_ }}}, + /*189 0f/89 */{T2, {{I_JNS16 , A_Jw , A_ },{I_JNS32 , A_Jd , A_ }}}, + /*18a 0f/8a */{T2, {{I_JP16 , A_Jw , A_ },{I_JP32 , A_Jd , A_ }}}, + /*18b 0f/8b */{T2, {{I_JNP16 , A_Jw , A_ },{I_JNP32 , A_Jd , A_ }}}, + /*18c 0f/8c */{T2, {{I_JL16 , A_Jw , A_ },{I_JL32 , A_Jd , A_ }}}, + /*18d 0f/8d */{T2, {{I_JNL16 , A_Jw , A_ },{I_JNL32 , A_Jd , A_ }}}, + /*18e 0f/8e */{T2, {{I_JLE16 , A_Jw , A_ },{I_JLE32 , A_Jd , A_ }}}, + /*18f 0f/8f */{T2, {{I_JNLE16 , A_Jw , A_ },{I_JNLE32 , A_Jd , A_ }}}, + + /*190 0f/90 */{T3,OI(I_SETO , A_Eb , A_ )}, + /*191 0f/91 */{T3,OI(I_SETNO , A_Eb , A_ )}, + /*192 0f/92 */{T3,OI(I_SETB , A_Eb , A_ )}, + /*193 0f/93 */{T3,OI(I_SETNB , A_Eb , A_ )}, + /*194 0f/94 */{T3,OI(I_SETZ , A_Eb , A_ )}, + /*195 0f/95 */{T3,OI(I_SETNZ , A_Eb , A_ )}, + /*196 0f/96 */{T3,OI(I_SETBE , A_Eb , A_ )}, + /*197 0f/97 */{T3,OI(I_SETNBE , A_Eb , A_ )}, + /*198 0f/98 */{T3,OI(I_SETS , A_Eb , A_ )}, + /*199 0f/99 */{T3,OI(I_SETNS , A_Eb , A_ )}, + /*19a 0f/9a */{T3,OI(I_SETP , A_Eb , A_ )}, + /*19b 0f/9b */{T3,OI(I_SETNP , A_Eb , A_ )}, + /*19c 0f/9c */{T3,OI(I_SETL , A_Eb , A_ )}, + /*19d 0f/9d */{T3,OI(I_SETNL , A_Eb , A_ )}, + /*19e 0f/9e */{T3,OI(I_SETLE , A_Eb , A_ )}, + /*19f 0f/9f */{T3,OI(I_SETNLE , A_Eb , A_ )}, + + /*1a0 0f/a0 */{T2,OI(I_PUSH16 , A_Qw , A_ )}, + /*1a1 0f/a1 */{T3,OI(I_POP_SR , A_Qw , A_ )}, + /*1a2 0f/a2 */{BAD_OPCODE}, + /*1a3 0f/a3 */{T6, {{I_BT16 , A_Ew , A_Gw },{I_BT32 , A_Ed , A_Gd }}}, + /*1a4 0f/a4 */{T9, {{I_SHLD16 , A_Ew , A_GwIb},{I_SHLD32 , A_Ed , A_GdIb}}}, + /*1a5 0f/a5 */{T9, {{I_SHLD16 , A_Ew , A_GwCL},{I_SHLD32 , A_Ed , A_GdCL}}}, + /*1a6 0f/a6 */{BAD_OPCODE}, + /*1a7 0f/a7 */{BAD_OPCODE}, + /*1a8 0f/a8 */{T2,OI(I_PUSH16 , A_Qw , A_ )}, + /*1a9 0f/a9 */{T3,OI(I_POP_SR , A_Qw , A_ )}, + /*1aa 0f/aa */{BAD_OPCODE}, + /*1ab 0f/ab */{T5, {{I_BTS16 , A_Ew , A_Gw },{I_BTS32 , A_Ed , A_Gd }}}, + /*1ac 0f/ac */{T9, {{I_SHRD16 , A_Ew , A_GwIb},{I_SHRD32 , A_Ed , A_GdIb}}}, + /*1ad 0f/ad */{T9, {{I_SHRD16 , A_Ew , A_GwCL},{I_SHRD32 , A_Ed , A_GdCL}}}, + /*1aa 0f/ae */{BAD_OPCODE}, + /*1af 0f/af */{T5, {{I_IMUL16T2 , A_Gw , A_Ew },{I_IMUL32T2 , A_Gd , A_Ed }}}, + + /*1b0 0f/b0 */{T5,OI(I_CMPXCHG8 , A_Eb , A_Gb )}, + /*1b1 0f/b1 */{T5, {{I_CMPXCHG16, A_Ew , A_Gw },{I_CMPXCHG32, A_Ed , A_Gd }}}, + /*1b2 0f/b2 */{T4, {{I_LSS , A_Gw , A_Mp16},{I_LSS , A_Gd , A_Mp32}}}, + /*1b3 0f/b3 */{T5, {{I_BTR16 , A_Ew , A_Gw },{I_BTR32 , A_Ed , A_Gd }}}, + /*1b4 0f/b4 */{T4, {{I_LFS , A_Gw , A_Mp16},{I_LFS , A_Gd , A_Mp32}}}, + /*1b5 0f/b5 */{T4, {{I_LGS , A_Gw , A_Mp16},{I_LGS , A_Gd , A_Mp32}}}, + /*1b6 0f/b6 */{T4, {{I_MOVZX8 , A_Gw , A_Eb },{I_MOVZX8 , A_Gd , A_Eb }}}, + /*1b7 0f/b7 */{T4,OI(I_MOVZX16 , A_Gd , A_Ew )}, + /*1b8 0f/b8 */{BAD_OPCODE}, + /*1b9 0f/b9 */{BAD_OPCODE}, + /*1ba 0f/ba */{T0,OI(P_RULE2 , 0x2 , 0x90 )}, + /*1bb 0f/bb */{T5, {{I_BTC16 , A_Ew , A_Gw },{I_BTC32 , A_Ed , A_Gd }}}, + /*1bc 0f/bc */{T4, {{I_BSF16 , A_Gw , A_Ew },{I_BSF32 , A_Gd , A_Ed }}}, + /*1bd 0f/bd */{T4, {{I_BSR16 , A_Gw , A_Ew },{I_BSR32 , A_Gd , A_Ed }}}, + /*1be 0f/be */{T4, {{I_MOVSX8 , A_Gw , A_Eb },{I_MOVSX8 , A_Gd , A_Eb }}}, + /*1bf 0f/bf */{T4,OI(I_MOVSX16 , A_Gd , A_Ew )}, + + /*1c0 0f/c0 */{T8,OI(I_XADD8 , A_Eb , A_Gb )}, + /*1c1 0f/c1 */{T8, {{I_XADD16 , A_Ew , A_Gw },{I_XADD32 , A_Ed , A_Gd }}}, + /*1c2 0f/c2 */{BAD_OPCODE}, + /*1c3 0f/c3 */{BAD_OPCODE}, + /*1c4 0f/c4 */{BAD_OPCODE}, + /*1c5 0f/c5 */{BAD_OPCODE}, + /*1c6 0f/c6 */{BAD_OPCODE}, + /*1c7 0f/c7 */{BAD_OPCODE}, + /*1c8 0f/c8 */{T1,OI(I_BSWAP , A_Hd , A_ )}, + /*1c9 0f/c9 */{T1,OI(I_BSWAP , A_Hd , A_ )}, + /*1ca 0f/ca */{T1,OI(I_BSWAP , A_Hd , A_ )}, + /*1cb 0f/cb */{T1,OI(I_BSWAP , A_Hd , A_ )}, + /*1cc 0f/cc */{T1,OI(I_BSWAP , A_Hd , A_ )}, + /*1cd 0f/cd */{T1,OI(I_BSWAP , A_Hd , A_ )}, + /*1ce 0f/ce */{T1,OI(I_BSWAP , A_Hd , A_ )}, + /*1cf 0f/cf */{T1,OI(I_BSWAP , A_Hd , A_ )}, +#endif /* CPU_286 */ + + /*1d0 0f/d0 */{BAD_OPCODE}, + /*1d1 0f/d1 */{BAD_OPCODE}, + /*1d2 0f/d2 */{BAD_OPCODE}, + /*1d3 0f/d3 */{BAD_OPCODE}, + /*1d4 0f/d4 */{BAD_OPCODE}, + /*1d5 0f/d5 */{BAD_OPCODE}, + /*1d6 0f/d6 */{BAD_OPCODE}, + /*1d7 0f/d7 */{BAD_OPCODE}, + /*1d8 0f/d8 */{BAD_OPCODE}, + /*1d9 0f/d9 */{BAD_OPCODE}, + /*1da 0f/da */{BAD_OPCODE}, + /*1db 0f/db */{BAD_OPCODE}, + /*1dc 0f/dc */{BAD_OPCODE}, + /*1dd 0f/dd */{BAD_OPCODE}, + /*1de 0f/de */{BAD_OPCODE}, + /*1df 0f/df */{BAD_OPCODE}, + + /*1e0 0f/e0 */{BAD_OPCODE}, + /*1e1 0f/e1 */{BAD_OPCODE}, + /*1e2 0f/e2 */{BAD_OPCODE}, + /*1e3 0f/e3 */{BAD_OPCODE}, + /*1e4 0f/e4 */{BAD_OPCODE}, + /*1e5 0f/e5 */{BAD_OPCODE}, + /*1e6 0f/e6 */{BAD_OPCODE}, + /*1e7 0f/e7 */{BAD_OPCODE}, + /*1e8 0f/e8 */{BAD_OPCODE}, + /*1e9 0f/e9 */{BAD_OPCODE}, + /*1ea 0f/ea */{BAD_OPCODE}, + /*1eb 0f/eb */{BAD_OPCODE}, + /*1ec 0f/ec */{BAD_OPCODE}, + /*1ed 0f/ed */{BAD_OPCODE}, + /*1ee 0f/ee */{BAD_OPCODE}, + /*1ef 0f/ef */{BAD_OPCODE}, + + /*1f0 0f/f0 */{BAD_OPCODE}, + /*1f1 0f/f1 */{BAD_OPCODE}, + /*1f2 0f/f2 */{BAD_OPCODE}, + /*1f3 0f/f3 */{BAD_OPCODE}, + /*1f4 0f/f4 */{BAD_OPCODE}, + /*1f5 0f/f5 */{BAD_OPCODE}, + /*1f6 0f/f6 */{BAD_OPCODE}, + /*1f7 0f/f7 */{BAD_OPCODE}, + /*1f8 0f/f8 */{BAD_OPCODE}, + /*1f9 0f/f9 */{BAD_OPCODE}, + /*1fa 0f/fa */{BAD_OPCODE}, + /*1fb 0f/fb */{BAD_OPCODE}, + /*1fc 0f/fc */{BAD_OPCODE}, + /*1fd 0f/fd */{BAD_OPCODE}, + /*1fe 0f/fe */{BAD_OPCODE}, + /*1ff 0f/ff */{BAD_OPCODE}, + + /*200 80/0 */{T5,OI(I_ADD8 , A_Eb , A_Ib )}, + /*201 80/1 */{T5,OI(I_OR8 , A_Eb , A_Ib )}, + /*202 80/2 */{T5,OI(I_ADC8 , A_Eb , A_Ib )}, + /*203 80/3 */{T5,OI(I_SBB8 , A_Eb , A_Ib )}, + /*204 80/4 */{T5,OI(I_AND8 , A_Eb , A_Ib )}, + /*205 80/5 */{T5,OI(I_SUB8 , A_Eb , A_Ib )}, + /*206 80/6 */{T5,OI(I_XOR8 , A_Eb , A_Ib )}, + /*207 80/7 */{T6,OI(I_CMP8 , A_Eb , A_Ib )}, + + /*208 81/0 */{T5, {{I_ADD16 , A_Ew , A_Iw },{I_ADD32 , A_Ed , A_Id }}}, + /*209 81/1 */{T5, {{I_OR16 , A_Ew , A_Iw },{I_OR32 , A_Ed , A_Id }}}, + /*20a 81/2 */{T5, {{I_ADC16 , A_Ew , A_Iw },{I_ADC32 , A_Ed , A_Id }}}, + /*20b 81/3 */{T5, {{I_SBB16 , A_Ew , A_Iw },{I_SBB32 , A_Ed , A_Id }}}, + /*20c 81/4 */{T5, {{I_AND16 , A_Ew , A_Iw },{I_AND32 , A_Ed , A_Id }}}, + /*20d 81/5 */{T5, {{I_SUB16 , A_Ew , A_Iw },{I_SUB32 , A_Ed , A_Id }}}, + /*20e 81/6 */{T5, {{I_XOR16 , A_Ew , A_Iw },{I_XOR32 , A_Ed , A_Id }}}, + /*20f 81/7 */{T6, {{I_CMP16 , A_Ew , A_Iw },{I_CMP32 , A_Ed , A_Id }}}, + + /*210 83/0 */{T5, {{I_ADD16 , A_Ew , A_Ix },{I_ADD32 , A_Ed , A_Iy }}}, + /*211 83/1 */{T5, {{I_OR16 , A_Ew , A_Ix },{I_OR32 , A_Ed , A_Iy }}}, + /*212 83/2 */{T5, {{I_ADC16 , A_Ew , A_Ix },{I_ADC32 , A_Ed , A_Iy }}}, + /*213 83/3 */{T5, {{I_SBB16 , A_Ew , A_Ix },{I_SBB32 , A_Ed , A_Iy }}}, + /*214 83/4 */{T5, {{I_AND16 , A_Ew , A_Ix },{I_AND32 , A_Ed , A_Iy }}}, + /*215 83/5 */{T5, {{I_SUB16 , A_Ew , A_Ix },{I_SUB32 , A_Ed , A_Iy }}}, + /*216 83/6 */{T5, {{I_XOR16 , A_Ew , A_Ix },{I_XOR32 , A_Ed , A_Iy }}}, + /*217 83/7 */{T6, {{I_CMP16 , A_Ew , A_Ix },{I_CMP32 , A_Ed , A_Iy }}}, + + /*218 8f/0 */{T3, {{I_POP16 , A_Ew , A_ },{I_POP32 , A_Ed , A_ }}}, + /*219 8f/1 */{T0, {{I_ZBADOP , A_Ew , A_ },{I_ZBADOP , A_Ed , A_ }}}, + /*21a 8f/2 */{T0, {{I_ZBADOP , A_Ew , A_ },{I_ZBADOP , A_Ed , A_ }}}, + /*21b 8f/3 */{T0, {{I_ZBADOP , A_Ew , A_ },{I_ZBADOP , A_Ed , A_ }}}, + /*21c 8f/4 */{T0, {{I_ZBADOP , A_Ew , A_ },{I_ZBADOP , A_Ed , A_ }}}, + /*21d 8f/5 */{T0, {{I_ZBADOP , A_Ew , A_ },{I_ZBADOP , A_Ed , A_ }}}, + /*21e 8f/6 */{T0, {{I_ZBADOP , A_Ew , A_ },{I_ZBADOP , A_Ed , A_ }}}, + /*21f 8f/7 */{T0, {{I_ZBADOP , A_Ew , A_ },{I_ZBADOP , A_Ed , A_ }}}, + + /*220 c0/0 */{T5,OI(I_ROL8 , A_Eb , A_Ib )}, + /*221 c0/1 */{T5,OI(I_ROR8 , A_Eb , A_Ib )}, + /*222 c0/2 */{T5,OI(I_RCL8 , A_Eb , A_Ib )}, + /*223 c0/3 */{T5,OI(I_RCR8 , A_Eb , A_Ib )}, + /*224 c0/4 */{T5,OI(I_SHL8 , A_Eb , A_Ib )}, + /*225 c0/5 */{T5,OI(I_SHR8 , A_Eb , A_Ib )}, + /*226 c0/6 */{T5,OI(I_SHL8 , A_Eb , A_Ib )}, + /*227 c0/7 */{T5,OI(I_SAR8 , A_Eb , A_Ib )}, + + /*228 c1/0 */{T5, {{I_ROL16 , A_Ew , A_Ib },{I_ROL32 , A_Ed , A_Ib }}}, + /*229 c1/1 */{T5, {{I_ROR16 , A_Ew , A_Ib },{I_ROR32 , A_Ed , A_Ib }}}, + /*22a c1/2 */{T5, {{I_RCL16 , A_Ew , A_Ib },{I_RCL32 , A_Ed , A_Ib }}}, + /*22b c1/3 */{T5, {{I_RCR16 , A_Ew , A_Ib },{I_RCR32 , A_Ed , A_Ib }}}, + /*22c c1/4 */{T5, {{I_SHL16 , A_Ew , A_Ib },{I_SHL32 , A_Ed , A_Ib }}}, + /*22d c1/5 */{T5, {{I_SHR16 , A_Ew , A_Ib },{I_SHR32 , A_Ed , A_Ib }}}, + /*22e c1/6 */{T5, {{I_SHL16 , A_Ew , A_Ib },{I_SHL32 , A_Ed , A_Ib }}}, + /*22f c1/7 */{T5, {{I_SAR16 , A_Ew , A_Ib },{I_SAR32 , A_Ed , A_Ib }}}, + + /*230 c6/0 */{T4,OI(I_MOV8 , A_Eb , A_Ib )}, + /*231 c6/1 */{T0,OI(I_ZBADOP , A_Eb , A_ )}, + /*232 c6/2 */{T0,OI(I_ZBADOP , A_Eb , A_ )}, + /*233 c6/3 */{T0,OI(I_ZBADOP , A_Eb , A_ )}, + /*234 c6/4 */{T0,OI(I_ZBADOP , A_Eb , A_ )}, + /*235 c6/5 */{T0,OI(I_ZBADOP , A_Eb , A_ )}, + /*236 c6/6 */{T0,OI(I_ZBADOP , A_Eb , A_ )}, + /*237 c6/7 */{T0,OI(I_ZBADOP , A_Eb , A_ )}, + + /*238 c7/0 */{T4, {{I_MOV16 , A_Ew , A_Iw },{I_MOV32 , A_Ed , A_Id }}}, + /*239 c7/1 */{T0, {{I_ZBADOP , A_Ew , A_ },{I_ZBADOP , A_Ed , A_ }}}, + /*23a c7/2 */{T0, {{I_ZBADOP , A_Ew , A_ },{I_ZBADOP , A_Ed , A_ }}}, + /*23b c7/3 */{T0, {{I_ZBADOP , A_Ew , A_ },{I_ZBADOP , A_Ed , A_ }}}, + /*23c c7/4 */{T0, {{I_ZBADOP , A_Ew , A_ },{I_ZBADOP , A_Ed , A_ }}}, + /*23d c7/5 */{T0, {{I_ZBADOP , A_Ew , A_ },{I_ZBADOP , A_Ed , A_ }}}, + /*23e c7/6 */{T0, {{I_ZBADOP , A_Ew , A_ },{I_ZBADOP , A_Ed , A_ }}}, + /*23f c7/7 */{T0, {{I_ZBADOP , A_Ew , A_ },{I_ZBADOP , A_Ed , A_ }}}, + + /*240 d0/0 */{T5,OI(I_ROL8 , A_Eb , A_I1 )}, + /*241 d0/1 */{T5,OI(I_ROR8 , A_Eb , A_I1 )}, + /*242 d0/2 */{T5,OI(I_RCL8 , A_Eb , A_I1 )}, + /*243 d0/3 */{T5,OI(I_RCR8 , A_Eb , A_I1 )}, + /*244 d0/4 */{T5,OI(I_SHL8 , A_Eb , A_I1 )}, + /*245 d0/5 */{T5,OI(I_SHR8 , A_Eb , A_I1 )}, + /*246 d0/6 */{T5,OI(I_SHL8 , A_Eb , A_I1 )}, + /*247 d0/7 */{T5,OI(I_SAR8 , A_Eb , A_I1 )}, + + /*248 d1/0 */{T5, {{I_ROL16 , A_Ew , A_I1 },{I_ROL32 , A_Ed , A_I1 }}}, + /*249 d1/1 */{T5, {{I_ROR16 , A_Ew , A_I1 },{I_ROR32 , A_Ed , A_I1 }}}, + /*24a d1/2 */{T5, {{I_RCL16 , A_Ew , A_I1 },{I_RCL32 , A_Ed , A_I1 }}}, + /*24b d1/3 */{T5, {{I_RCR16 , A_Ew , A_I1 },{I_RCR32 , A_Ed , A_I1 }}}, + /*24c d1/4 */{T5, {{I_SHL16 , A_Ew , A_I1 },{I_SHL32 , A_Ed , A_I1 }}}, + /*24d d1/5 */{T5, {{I_SHR16 , A_Ew , A_I1 },{I_SHR32 , A_Ed , A_I1 }}}, + /*24e d1/6 */{T5, {{I_SHL16 , A_Ew , A_I1 },{I_SHL32 , A_Ed , A_I1 }}}, + /*24f d1/7 */{T5, {{I_SAR16 , A_Ew , A_I1 },{I_SAR32 , A_Ed , A_I1 }}}, + + /*250 d2/0 */{T5,OI(I_ROL8 , A_Eb , A_Fcl )}, + /*251 d2/1 */{T5,OI(I_ROR8 , A_Eb , A_Fcl )}, + /*252 d2/2 */{T5,OI(I_RCL8 , A_Eb , A_Fcl )}, + /*253 d2/3 */{T5,OI(I_RCR8 , A_Eb , A_Fcl )}, + /*254 d2/4 */{T5,OI(I_SHL8 , A_Eb , A_Fcl )}, + /*255 d2/5 */{T5,OI(I_SHR8 , A_Eb , A_Fcl )}, + /*256 d2/6 */{T5,OI(I_SHL8 , A_Eb , A_Fcl )}, + /*257 d2/7 */{T5,OI(I_SAR8 , A_Eb , A_Fcl )}, + + /*258 d3/0 */{T5, {{I_ROL16 , A_Ew , A_Fcl },{I_ROL32 , A_Ed , A_Fcl }}}, + /*259 d3/1 */{T5, {{I_ROR16 , A_Ew , A_Fcl },{I_ROR32 , A_Ed , A_Fcl }}}, + /*25a d3/2 */{T5, {{I_RCL16 , A_Ew , A_Fcl },{I_RCL32 , A_Ed , A_Fcl }}}, + /*25b d3/3 */{T5, {{I_RCR16 , A_Ew , A_Fcl },{I_RCR32 , A_Ed , A_Fcl }}}, + /*25c d3/4 */{T5, {{I_SHL16 , A_Ew , A_Fcl },{I_SHL32 , A_Ed , A_Fcl }}}, + /*25d d3/5 */{T5, {{I_SHR16 , A_Ew , A_Fcl },{I_SHR32 , A_Ed , A_Fcl }}}, + /*25e d3/6 */{T5, {{I_SHL16 , A_Ew , A_Fcl },{I_SHL32 , A_Ed , A_Fcl }}}, + /*25f d3/7 */{T5, {{I_SAR16 , A_Ew , A_Fcl },{I_SAR32 , A_Ed , A_Fcl }}}, + + /*260 f6/0 */{T6,OI(I_TEST8 , A_Eb , A_Ib )}, + /*261 f6/1 */{T6,OI(I_TEST8 , A_Eb , A_Ib )}, + /*262 f6/2 */{T1,OI(I_NOT8 , A_Eb , A_ )}, + /*263 f6/3 */{T1,OI(I_NEG8 , A_Eb , A_ )}, + /*264 f6/4 */{T5,OI(I_MUL8 , A_Fal , A_Eb )}, + /*265 f6/5 */{T5,OI(I_IMUL8 , A_Fal , A_Eb )}, + /*266 f6/6 */{T2,OI(I_DIV8 , A_Eb , A_ )}, + /*267 f6/7 */{T2,OI(I_IDIV8 , A_Eb , A_ )}, + + /*268 f7/0 */{T6, {{I_TEST16 , A_Ew , A_Iw },{I_TEST32 , A_Ed , A_Id }}}, + /*269 f7/1 */{T6, {{I_TEST16 , A_Ew , A_Iw },{I_TEST32 , A_Ed , A_Id }}}, + /*26a f7/2 */{T1, {{I_NOT16 , A_Ew , A_ },{I_NOT32 , A_Ed , A_ }}}, + /*26b f7/3 */{T1, {{I_NEG16 , A_Ew , A_ },{I_NEG32 , A_Ed , A_ }}}, + /*26c f7/4 */{T5, {{I_MUL16 , A_Fax , A_Ew },{I_MUL32 , A_Feax, A_Ed }}}, + /*26d f7/5 */{T5, {{I_IMUL16 , A_Fax , A_Ew },{I_IMUL32 , A_Feax, A_Ed }}}, + /*26e f7/6 */{T2, {{I_DIV16 , A_Ew , A_ },{I_DIV32 , A_Ed , A_ }}}, + /*26f f7/7 */{T2, {{I_IDIV16 , A_Ew , A_ },{I_IDIV32 , A_Ed , A_ }}}, + + /*270 fe/0 */{T1,OI(I_INC8 , A_Eb , A_ )}, + /*271 fe/1 */{T1,OI(I_DEC8 , A_Eb , A_ )}, + /*272 fe/2 */{T0,OI(I_ZBADOP , A_Eb , A_ )}, + /*273 fe/3 */{T0,OI(I_ZBADOP , A_Eb , A_ )}, + /*274 fe/4 */{T0,OI(I_ZBADOP , A_Eb , A_ )}, + /*275 fe/5 */{T0,OI(I_ZBADOP , A_Eb , A_ )}, + /*276 fe/6 */{T0,OI(I_ZBADOP , A_Eb , A_ )}, + /*277 fe/7 */{T0,OI(I_ZBADOP , A_Eb , A_ )}, + + /*278 ff/0 */{T1, {{I_INC16 , A_Ew , A_ },{I_INC32 , A_Ed , A_ }}}, + /*279 ff/1 */{T1, {{I_DEC16 , A_Ew , A_ },{I_DEC32 , A_Ed , A_ }}}, + /*27a ff/2 */{T2, {{I_CALLN16 , A_Ew , A_ },{I_CALLN32 , A_Ed , A_ }}}, + /*27b ff/3 */{T2, {{I_CALLF16 , A_Mp16, A_ },{I_CALLF32 , A_Mp32, A_ }}}, + /*27c ff/4 */{T2, {{I_JMPN , A_Ew , A_ },{I_JMPN , A_Ed , A_ }}}, + /*27d ff/5 */{T2, {{I_JMPF16 , A_Mp16, A_ },{I_JMPF32 , A_Mp32, A_ }}}, + /*27e ff/6 */{T2, {{I_PUSH16 , A_Ew , A_ },{I_PUSH32 , A_Ed , A_ }}}, + /*27f ff/7 */{T0, {{I_ZBADOP , A_Ew , A_ },{I_ZBADOP , A_Ed , A_ }}}, + + /*280 0f/00/0*/{T3,OI(I_SLDT , A_Ew , A_ )}, + /*281 0f/00/1*/{T3,OI(I_STR , A_Ew , A_ )}, + /*282 0f/00/2*/{T2,OI(I_LLDT , A_Ew , A_ )}, + /*283 0f/00/3*/{T2,OI(I_LTR , A_Ew , A_ )}, + /*284 0f/00/4*/{T2,OI(I_VERR , A_Ew , A_ )}, + /*285 0f/00/5*/{T2,OI(I_VERW , A_Ew , A_ )}, + /*286 0f/00/6*/{T0,OI(I_ZBADOP , A_Ew , A_ )}, + /*287 0f/00/7*/{T0,OI(I_ZBADOP , A_Ew , A_ )}, + + /*288 0f/01/0*/{T3, {{I_SGDT16 , A_Ms , A_ },{I_SGDT32 , A_Ms , A_ }}}, + /*289 0f/01/1*/{T3, {{I_SIDT16 , A_Ms , A_ },{I_SIDT32 , A_Ms , A_ }}}, + /*28a 0f/01/2*/{T2, {{I_LGDT16 , A_Ms , A_ },{I_LGDT32 , A_Ms , A_ }}}, + /*28b 0f/01/3*/{T2, {{I_LIDT16 , A_Ms , A_ },{I_LIDT32 , A_Ms , A_ }}}, + /*28c 0f/01/4*/{T3,OI(I_SMSW , A_Ew , A_ )}, + /*28d 0f/01/5*/{T0,OI(I_ZBADOP , A_Ew , A_ )}, + /*28e 0f/01/6*/{T2,OI(I_LMSW , A_Ew , A_ )}, +#ifdef CPU_286 + /*28f 0f/01/7*/{T0,OI(I_ZBADOP , A_Ew , A_ )}, +#else + /*28f 0f/01/7*/{TB,OI(I_INVLPG , A_M , A_ )}, +#endif /* CPU_286 */ + + /*290 0f/ba/0*/{T0, {{I_ZBADOP , A_Ew , A_ },{I_ZBADOP , A_Ed , A_ }}}, + /*291 0f/ba/1*/{T0, {{I_ZBADOP , A_Ew , A_ },{I_ZBADOP , A_Ed , A_ }}}, + /*292 0f/ba/2*/{T0, {{I_ZBADOP , A_Ew , A_ },{I_ZBADOP , A_Ed , A_ }}}, + /*293 0f/ba/3*/{T0, {{I_ZBADOP , A_Ew , A_ },{I_ZBADOP , A_Ed , A_ }}}, + /*294 0f/ba/4*/{T6, {{I_BT16 , A_Ew , A_Ib },{I_BT32 , A_Ed , A_Ib }}}, + /*295 0f/ba/5*/{T5, {{I_BTS16 , A_Ew , A_Ib },{I_BTS32 , A_Ed , A_Ib }}}, + /*296 0f/ba/6*/{T5, {{I_BTR16 , A_Ew , A_Ib },{I_BTR32 , A_Ed , A_Ib }}}, + /*297 0f/ba/7*/{T5, {{I_BTC16 , A_Ew , A_Ib },{I_BTC32 , A_Ed , A_Ib }}}, + + /*298 PAD */{BAD_OPCODE}, + /*299 PAD */{BAD_OPCODE}, + /*29a PAD */{BAD_OPCODE}, + /*29b PAD */{BAD_OPCODE}, + /*29c PAD */{BAD_OPCODE}, + /*29d PAD */{BAD_OPCODE}, + /*29e PAD */{BAD_OPCODE}, + /*29f PAD */{BAD_OPCODE}, + + /*2a0 d8/0 */{T5,OI(I_FADD , A_Vt , A_Mr32)}, + /*2a1 d8/1 */{T5,OI(I_FMUL , A_Vt , A_Mr32)}, + /*2a2 d8/2 */{T5,OI(I_FCOM , A_Vt , A_Mr32)}, + /*2a3 d8/3 */{T5,OI(I_FCOMP , A_Vt , A_Mr32)}, + /*2a4 d8/4 */{T5,OI(I_FSUB , A_Vt , A_Mr32)}, + /*2a5 d8/5 */{T5,OI(I_FSUBR , A_Vt , A_Mr32)}, + /*2a6 d8/6 */{T5,OI(I_FDIV , A_Vt , A_Mr32)}, + /*2a7 d8/7 */{T5,OI(I_FDIVR , A_Vt , A_Mr32)}, + + /*2a8 d8/m3/0*/{T5,OI(I_FADD , A_Vt , A_Vn )}, + /*2a9 d8/m3/1*/{T5,OI(I_FMUL , A_Vt , A_Vn )}, + /*2aa d8/m3/2*/{T5,OI(I_FCOM , A_Vt , A_Vn )}, + /*2ab d8/m3/3*/{T5,OI(I_FCOMP , A_Vt , A_Vn )}, + /*2ac d8/m3/4*/{T5,OI(I_FSUB , A_Vt , A_Vn )}, + /*2ad d8/m3/5*/{T5,OI(I_FSUBR , A_Vt , A_Vn )}, + /*2ae d8/m3/6*/{T5,OI(I_FDIV , A_Vt , A_Vn )}, + /*2af d8/m3/7*/{T5,OI(I_FDIVR , A_Vt , A_Vn )}, + + /*2b0 d9/0 */{T4,OI(I_FLD , A_Vq , A_Mr32)}, + /*2b1 d9/1 */{T2,OI(I_ZFRSRVD , A_M , A_ )}, + /*2b2 d9/2 */{T4,OI(I_FST , A_Mr32, A_Vt )}, + /*2b3 d9/3 */{T4,OI(I_FSTP , A_Mr32, A_Vt )}, + /*2b4 d9/4 */{T2, {{I_FLDENV16 , A_M14 , A_ },{I_FLDENV32 , A_M28 , A_ }}}, + /*2b5 d9/5 */{T2,OI(I_FLDCW , A_Mw , A_ )}, + /*2b6 d9/6 */{T3, {{I_FSTENV16 , A_M14 , A_ },{I_FSTENV32 , A_M28 , A_ }}}, + /*2b7 d9/7 */{T3,OI(I_FSTCW , A_Mw , A_ )}, + + /*2b8 d9/m3/0*/{T4,OI(I_FLD , A_Vq , A_Vn )}, + /*2b9 d9/m3/1*/{T8,OI(I_FXCH , A_Vt , A_Vn )}, + /*2ba d9/m3/2*/{T0,OI(P_RULE5 , 0x3 , 0x20 )}, + /*2bb d9/m3/3*/{T4,OI(I_FSTP , A_Vn , A_Vt )}, + /*2bc d9/m3/4*/{T0,OI(P_RULE5 , 0x3 , 0x28 )}, + /*2bd d9/m3/5*/{T0,OI(P_RULE5 , 0x3 , 0x30 )}, + /*2be d9/m3/6*/{T0,OI(P_RULE5 , 0x3 , 0x38 )}, + /*2bf d9/m3/7*/{T0,OI(P_RULE5 , 0x3 , 0x40 )}, + + /*2c0 da/0 */{T5,OI(I_FIADD , A_Vt , A_Mi32)}, + /*2c1 da/1 */{T5,OI(I_FIMUL , A_Vt , A_Mi32)}, + /*2c2 da/2 */{T5,OI(I_FICOM , A_Vt , A_Mi32)}, + /*2c3 da/3 */{T5,OI(I_FICOMP , A_Vt , A_Mi32)}, + /*2c4 da/4 */{T5,OI(I_FISUB , A_Vt , A_Mi32)}, + /*2c5 da/5 */{T5,OI(I_FISUBR , A_Vt , A_Mi32)}, + /*2c6 da/6 */{T5,OI(I_FIDIV , A_Vt , A_Mi32)}, + /*2c7 da/7 */{T5,OI(I_FIDIVR , A_Vt , A_Mi32)}, + + /*2c8 da/m3/0*/{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*2c9 da/m3/1*/{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*2ca da/m3/2*/{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*2cb da/m3/3*/{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*2cc da/m3/4*/{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*2cd da/m3/5*/{T0,OI(P_RULE5 , 0x3 , 0x48 )}, + /*2ce da/m3/6*/{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*2cf da/m3/7*/{T0,OI(I_ZFRSRVD , A_ , A_ )}, + + /*2d0 db/0 */{T4,OI(I_FILD , A_Vq , A_Mi32)}, + /*2d1 db/1 */{T2,OI(I_ZFRSRVD , A_M , A_ )}, + /*2d2 db/2 */{T4,OI(I_FIST , A_Mi32, A_Vt )}, + /*2d3 db/3 */{T4,OI(I_FISTP , A_Mi32, A_Vt )}, + /*2d4 db/4 */{T2,OI(I_ZFRSRVD , A_M , A_ )}, + /*2d5 db/5 */{T4,OI(I_FLD , A_Vq , A_Mr80)}, + /*2d6 db/6 */{T2,OI(I_ZFRSRVD , A_M , A_ )}, + /*2d7 db/7 */{T4,OI(I_FSTP , A_Mr80, A_Vt )}, + + /*2d8 db/m3/0*/{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*2d9 db/m3/1*/{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*2da db/m3/2*/{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*2db db/m3/3*/{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*2dc db/m3/4*/{T0,OI(P_RULE5 , 0x3 , 0x50 )}, + /*2dd db/m3/5*/{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*2de db/m3/6*/{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*2df db/m3/7*/{T0,OI(I_ZFRSRVD , A_ , A_ )}, + + /*2e0 dc/0 */{T5,OI(I_FADD , A_Vt , A_Mr64)}, + /*2e1 dc/1 */{T5,OI(I_FMUL , A_Vt , A_Mr64)}, + /*2e2 dc/2 */{T5,OI(I_FCOM , A_Vt , A_Mr64)}, + /*2e3 dc/3 */{T5,OI(I_FCOMP , A_Vt , A_Mr64)}, + /*2e4 dc/4 */{T5,OI(I_FSUB , A_Vt , A_Mr64)}, + /*2e5 dc/5 */{T5,OI(I_FSUBR , A_Vt , A_Mr64)}, + /*2e6 dc/6 */{T5,OI(I_FDIV , A_Vt , A_Mr64)}, + /*2e7 dc/7 */{T5,OI(I_FDIVR , A_Vt , A_Mr64)}, + + /*2e8 dc/m3/0*/{T5,OI(I_FADD , A_Vn , A_Vt )}, + /*2e9 dc/m3/1*/{T5,OI(I_FMUL , A_Vn , A_Vt )}, + /*2ea dc/m3/2*/{T5,OI(I_FCOM , A_Vt , A_Vn )}, + /*2eb dc/m3/3*/{T5,OI(I_FCOMP , A_Vt , A_Vn )}, + /*2ec dc/m3/4*/{T5,OI(I_FSUBR , A_Vn , A_Vt )}, + /*2ed dc/m3/5*/{T5,OI(I_FSUB , A_Vn , A_Vt )}, + /*2ee dc/m3/6*/{T5,OI(I_FDIVR , A_Vn , A_Vt )}, + /*2ef dc/m3/7*/{T5,OI(I_FDIV , A_Vn , A_Vt )}, + + /*2f0 dd/0 */{T4,OI(I_FLD , A_Vq , A_Mr64)}, + /*2f1 dd/1 */{T2,OI(I_ZFRSRVD , A_M , A_ )}, + /*2f2 dd/2 */{T4,OI(I_FST , A_Mr64, A_Vt )}, + /*2f3 dd/3 */{T4,OI(I_FSTP , A_Mr64, A_Vt )}, + /*2f4 dd/4 */{T2, {{I_FRSTOR16 , A_M94 , A_ },{I_FRSTOR32 , A_M108, A_ }}}, + /*2f5 dd/5 */{T2,OI(I_ZFRSRVD , A_M , A_ )}, + /*2f6 dd/6 */{T3, {{I_FSAVE16 , A_M94 , A_ },{I_FSAVE32 , A_M108, A_ }}}, + /*2f7 dd/7 */{T3,OI(I_FSTSW , A_Mw , A_ )}, + + /*2f8 dd/m3/0*/{T2,OI(I_FFREE , A_Vn , A_ )}, + /*2f9 dd/m3/1*/{T8,OI(I_FXCH , A_Vt , A_Vn )}, + /*2fa dd/m3/2*/{T4,OI(I_FST , A_Vn , A_Vt )}, + /*2fb dd/m3/3*/{T4,OI(I_FSTP , A_Vn , A_Vt )}, +#ifdef CPU_286 + /*2fc dd/m3/4*/{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*2fd dd/m3/5*/{T0,OI(I_ZFRSRVD , A_ , A_ )}, +#else + /*2fc dd/m3/4*/{T6,OI(I_FUCOM , A_Vn , A_Vt )}, + /*2fd dd/m3/5*/{T6,OI(I_FUCOMP , A_Vn , A_Vt )}, +#endif /* CPU_286 */ + /*2fe dd/m3/6*/{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*2ff dd/m3/7*/{T0,OI(I_ZFRSRVD , A_ , A_ )}, + + /*300 de/0 */{T5,OI(I_FIADD , A_Vt , A_Mi16)}, + /*301 de/1 */{T5,OI(I_FIMUL , A_Vt , A_Mi16)}, + /*302 de/2 */{T5,OI(I_FICOM , A_Vt , A_Mi16)}, + /*303 de/3 */{T5,OI(I_FICOMP , A_Vt , A_Mi16)}, + /*304 de/4 */{T5,OI(I_FISUB , A_Vt , A_Mi16)}, + /*305 de/5 */{T5,OI(I_FISUBR , A_Vt , A_Mi16)}, + /*306 de/6 */{T5,OI(I_FIDIV , A_Vt , A_Mi16)}, + /*307 de/7 */{T5,OI(I_FIDIVR , A_Vt , A_Mi16)}, + + /*308 de/m3/0*/{T5,OI(I_FADDP , A_Vn , A_Vt )}, + /*309 de/m3/1*/{T5,OI(I_FMULP , A_Vn , A_Vt )}, + /*30a de/m3/2*/{T5,OI(I_FCOMP , A_Vt , A_Vn )}, + /*30b de/m3/3*/{T0,OI(P_RULE5 , 0x3 , 0x58 )}, + /*30c de/m3/4*/{T5,OI(I_FSUBRP , A_Vn , A_Vt )}, + /*30d de/m3/5*/{T5,OI(I_FSUBP , A_Vn , A_Vt )}, + /*30e de/m3/6*/{T5,OI(I_FDIVRP , A_Vn , A_Vt )}, + /*30f de/m3/7*/{T5,OI(I_FDIVP , A_Vn , A_Vt )}, + + /*310 df/0 */{T4,OI(I_FILD , A_Vq , A_Mi16)}, + /*311 df/1 */{T2,OI(I_ZFRSRVD , A_M , A_ )}, + /*312 df/2 */{T4,OI(I_FIST , A_Mi16, A_Vt )}, + /*313 df/3 */{T4,OI(I_FISTP , A_Mi16, A_Vt )}, + /*314 df/4 */{T4,OI(I_FBLD , A_Vq , A_Mi80)}, + /*315 df/5 */{T4,OI(I_FILD , A_Vq , A_Mi64)}, + /*316 df/6 */{T4,OI(I_FBSTP , A_Mi80, A_Vt )}, + /*317 df/7 */{T4,OI(I_FISTP , A_Mi64, A_Vt )}, + + /*318 df/m3/0*/{T2,OI(I_FFREEP , A_Vn , A_ )}, + /*319 df/m3/1*/{T8,OI(I_FXCH , A_Vt , A_Vn )}, + /*31a df/m3/2*/{T4,OI(I_FSTP , A_Vn , A_Vt )}, + /*31b df/m3/3*/{T4,OI(I_FSTP , A_Vn , A_Vt )}, + /*31c df/m3/4*/{T0,OI(P_RULE5 , 0x3 , 0x60 )}, + /*31d df/m3/5*/{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*31e df/m3/6*/{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*31f df/m3/7*/{T0,OI(I_ZFRSRVD , A_ , A_ )}, + + /*320 d9/d0 */{T0,OI(I_FNOP , A_ , A_ )}, + /*321 d9/d1 */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*322 d9/d2 */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*323 d9/d3 */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*324 d9/d4 */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*325 d9/d5 */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*326 d9/d6 */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*327 d9/d7 */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + + /*328 d9/e0 */{T1,OI(I_FCHS , A_Vt , A_ )}, + /*329 d9/e1 */{T1,OI(I_FABS , A_Vt , A_ )}, + /*32a d9/e2 */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*32b d9/e3 */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*32c d9/e4 */{T2,OI(I_FTST , A_Vt , A_ )}, + /*32d d9/e5 */{T2,OI(I_FXAM , A_Vt , A_ )}, + /*32e d9/e6 */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*32f d9/e7 */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + + /*330 d9/e8 */{T3,OI(I_FLD1 , A_Vq , A_ )}, + /*331 d9/e9 */{T3,OI(I_FLDL2T , A_Vq , A_ )}, + /*332 d9/ea */{T3,OI(I_FLDL2E , A_Vq , A_ )}, + /*333 d9/eb */{T3,OI(I_FLDPI , A_Vq , A_ )}, + /*334 d9/ec */{T3,OI(I_FLDLG2 , A_Vq , A_ )}, + /*335 d9/ed */{T3,OI(I_FLDLN2 , A_Vq , A_ )}, + /*336 d9/ee */{T3,OI(I_FLDZ , A_Vq , A_ )}, + /*337 d9/ef */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + + /*338 d9/f0 */{T1,OI(I_F2XM1 , A_Vt , A_ )}, + /*339 d9/f1 */{T5,OI(I_FYL2X , A_Vt , A_V1 )}, + /*33a d9/f2 */{T4,OI(I_FPTAN , A_Vq , A_Vt )}, + /*33b d9/f3 */{T5,OI(I_FPATAN , A_Vt , A_V1 )}, + /*33c d9/f4 */{T4,OI(I_FXTRACT , A_Vq , A_Vt )}, +#ifdef CPU_286 + /*33d d9/f5 */{T0,OI(I_ZFRSRVD , A_ , A_ )}, +#else + /*33d d9/f5 */{T5,OI(I_FPREM1 , A_Vt , A_V1 )}, +#endif /* CPU_286 */ + /*33e d9/f6 */{T0,OI(I_FDECSTP , A_ , A_ )}, + /*33f d9/f7 */{T0,OI(I_FINCSTP , A_ , A_ )}, + + /*340 d9/f8 */{T5,OI(I_FPREM , A_Vt , A_V1 )}, + /*341 d9/f9 */{T5,OI(I_FYL2XP1 , A_Vt , A_V1 )}, + /*342 d9/fa */{T1,OI(I_FSQRT , A_Vt , A_ )}, +#ifdef CPU_286 + /*343 d9/fb */{T0,OI(I_ZFRSRVD , A_ , A_ )}, +#else + /*343 d9/fb */{T4,OI(I_FSINCOS , A_Vq , A_Vt )}, +#endif /* CPU_286 */ + /*344 d9/fc */{T1,OI(I_FRNDINT , A_Vt , A_ )}, + /*345 d9/fd */{T5,OI(I_FSCALE , A_Vt , A_V1 )}, +#ifdef CPU_286 + /*346 d9/fe */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*347 d9/ff */{T0,OI(I_ZFRSRVD , A_ , A_ )}, +#else + /*346 d9/fe */{T1,OI(I_FSIN , A_Vt , A_ )}, + /*347 d9/ff */{T1,OI(I_FCOS , A_Vt , A_ )}, +#endif /* CPU_286 */ + + /*348 da/e8 */{T0,OI(I_ZFRSRVD , A_ , A_ )}, +#ifdef CPU_286 + /*349 da/e9 */{T0,OI(I_ZFRSRVD , A_ , A_ )}, +#else + /*349 da/e9 */{T6,OI(I_FUCOMPP , A_Vt , A_V1 )}, +#endif /* CPU_286 */ + /*34a da/ea */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*34b da/eb */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*34c da/ec */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*34d da/ed */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*34e da/ee */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*34f da/ef */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + + /*350 db/e0 */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*351 db/e1 */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*352 db/e2 */{T0,OI(I_FCLEX , A_ , A_ )}, + /*353 db/e3 */{T0,OI(I_FINIT , A_ , A_ )}, + +#ifdef NPX_287 + /*354 db/e4 */{T0,OI(I_FSETPM , A_ , A_ )}, +#else + /*354 db/e4 */{T0,OI(I_FNOP , A_ , A_ )}, +#endif /* NPX_287 */ + + /*355 db/e5 */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*356 db/e6 */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*357 db/e7 */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + + /*358 de/d8 */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*359 de/d9 */{T6,OI(I_FCOMPP , A_Vt , A_V1 )}, + /*35a de/da */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*35b de/db */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*35c de/dc */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*35d de/dd */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*35e de/de */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*35f de/df */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + + /*360 df/e0 */{T3,OI(I_FSTSW , A_Fax , A_ )}, + /*361 df/e1 */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*362 df/e2 */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*363 df/e3 */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*364 df/e4 */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*365 df/e5 */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*366 df/e6 */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + /*367 df/e7 */{T0,OI(I_ZFRSRVD , A_ , A_ )}, + + /*368 6c */{T4,OI(I_INSB , A_Yb , A_Fdx )}, + /*369 f2/6c */{T4,OI(I_R_INSB , A_Yb , A_Fdx )}, + /*36a f3/6c */{T4,OI(I_R_INSB , A_Yb , A_Fdx )}, + /*36b 6d */{T4, {{I_INSW , A_Yw , A_Fdx },{I_INSD , A_Yd , A_Fdx }}}, + /*36c f2/6d */{T4, {{I_R_INSW , A_Yw , A_Fdx },{I_R_INSD , A_Yd , A_Fdx }}}, + /*36d f3/6d */{T4, {{I_R_INSW , A_Yw , A_Fdx },{I_R_INSD , A_Yd , A_Fdx }}}, + + /*36e 6e */{T6,OI(I_OUTSB , A_Fdx , A_Xb )}, + /*36f f2/6e */{T6,OI(I_R_OUTSB , A_Fdx , A_Xb )}, + /*370 f3/6e */{T6,OI(I_R_OUTSB , A_Fdx , A_Xb )}, + /*371 6f */{T6, {{I_OUTSW , A_Fdx , A_Xw },{I_OUTSD , A_Fdx , A_Xd }}}, + /*372 f2/6f */{T6, {{I_R_OUTSW , A_Fdx , A_Xw },{I_R_OUTSD , A_Fdx , A_Xd }}}, + /*373 f3/6f */{T6, {{I_R_OUTSW , A_Fdx , A_Xw },{I_R_OUTSD , A_Fdx , A_Xd }}}, + + /*374 a4 */{T4,OI(I_MOVSB , A_Yb , A_Xb )}, + /*375 f2/a4 */{T4,OI(I_R_MOVSB , A_Yb , A_Xb )}, + /*376 f3/a4 */{T4,OI(I_R_MOVSB , A_Yb , A_Xb )}, + /*377 a5 */{T4, {{I_MOVSW , A_Yw , A_Xw },{I_MOVSD , A_Yd , A_Xd }}}, + /*378 f2/a5 */{T4, {{I_R_MOVSW , A_Yw , A_Xw },{I_R_MOVSD , A_Yd , A_Xd }}}, + /*379 f3/a5 */{T4, {{I_R_MOVSW , A_Yw , A_Xw },{I_R_MOVSD , A_Yd , A_Xd }}}, + + /*37a a6 */{T6,OI(I_CMPSB , A_Xb , A_Yb )}, + /*37b f2/a6 */{T6,OI(I_RNE_CMPSB, A_Xb , A_Yb )}, + /*37c f3/a6 */{T6,OI(I_RE_CMPSB , A_Xb , A_Yb )}, + /*37d a7 */{T6, {{I_CMPSW , A_Xw , A_Yw },{I_CMPSD , A_Xd , A_Yd }}}, + /*37e f2/a7 */{T6, {{I_RNE_CMPSW, A_Xw , A_Yw },{I_RNE_CMPSD, A_Xd , A_Yd }}}, + /*37f f3/a7 */{T6, {{I_RE_CMPSW , A_Xw , A_Yw },{I_RE_CMPSD , A_Xd , A_Yd }}}, + + /*380 aa */{T4,OI(I_STOSB , A_Yb , A_Fal )}, + /*381 f2/aa */{T4,OI(I_R_STOSB , A_Yb , A_Fal )}, + /*382 f3/aa */{T4,OI(I_R_STOSB , A_Yb , A_Fal )}, + /*383 ab */{T4, {{I_STOSW , A_Yw , A_Fax },{I_STOSD , A_Yd , A_Feax}}}, + /*384 f2/ab */{T4, {{I_R_STOSW , A_Yw , A_Fax },{I_R_STOSD , A_Yd , A_Feax}}}, + /*385 f3/ab */{T4, {{I_R_STOSW , A_Yw , A_Fax },{I_R_STOSD , A_Yd , A_Feax}}}, + + /*386 ac */{T4,OI(I_LODSB , A_Fal , A_Xb )}, + /*387 f2/ac */{T4,OI(I_R_LODSB , A_Fal , A_Xb )}, + /*388 f3/ac */{T4,OI(I_R_LODSB , A_Fal , A_Xb )}, + /*389 ad */{T4, {{I_LODSW , A_Fax , A_Xw },{I_LODSD , A_Feax, A_Xd }}}, + /*38a f2/ad */{T4, {{I_R_LODSW , A_Fax , A_Xw },{I_R_LODSD , A_Feax, A_Xd }}}, + /*38b f3/ad */{T4, {{I_R_LODSW , A_Fax , A_Xw },{I_R_LODSD , A_Feax, A_Xd }}}, + + /*38c ae */{T6,OI(I_SCASB , A_Fal , A_Yb )}, + /*38d f2/ae */{T6,OI(I_RNE_SCASB, A_Fal , A_Yb )}, + /*38e f3/ae */{T6,OI(I_RE_SCASB , A_Fal , A_Yb )}, + /*38f af */{T6, {{I_SCASW , A_Fax , A_Yw },{I_SCASD , A_Feax, A_Yd }}}, + /*390 f2/af */{T6, {{I_RNE_SCASW, A_Fax , A_Yw },{I_RNE_SCASD, A_Feax, A_Yd }}}, + /*391 f3/af */{T6, {{I_RE_SCASW , A_Fax , A_Yw },{I_RE_SCASD , A_Feax, A_Yd }}}, + + /*392 PAD */{BAD_OPCODE}, + /*393 PAD */{BAD_OPCODE}, + + /*394 c4/BOP */{T6,OI(I_ZBOP , A_Ib , A_Bop3b )}, + /*395 c4/BOP */{T6,OI(I_ZBOP , A_Ib , A_Iw )}, + /*396 c4/BOP */{T6,OI(I_ZBOP , A_Ib , A_Ib )}, + /*397 c4/BOP */{T2,OI(I_ZBOP , A_Ib , A_ )}, + /*398 c4/LES */{T4, {{I_LES , A_Gw , A_Mp16},{I_LES , A_Gd , A_Mp32}}}, + /*399 PAD */{BAD_OPCODE}, + + /*39a e0 e0 */{T2, {{I_LOOPNE16 , A_Fcx , A_Jb },{I_LOOPNE32 , A_Fcx , A_Jb }}}, + /*39b e0 e0 */{T2, {{I_LOOPNE16 , A_Fecx , A_Jb },{I_LOOPNE32 , A_Fecx , A_Jb }}}, + /*39c e1 e1 */{T2, {{I_LOOPE16 , A_Fcx , A_Jb },{I_LOOPE32 , A_Fcx , A_Jb }}}, + /*39d e1 e1 */{T2, {{I_LOOPE16 , A_Fecx , A_Jb },{I_LOOPE32 , A_Fecx , A_Jb }}}, + /*39e e2 e2 */{T2, {{I_LOOP16 , A_Fcx , A_Jb },{I_LOOP32 , A_Fcx , A_Jb }}}, + /*39f e2 e2 */{T2, {{I_LOOP16 , A_Fecx , A_Jb },{I_LOOP32 , A_Fecx , A_Jb }}}, + /*3a0 e3 e3 */{T2, {{I_JCXZ , A_Fcx , A_Jb },{I_JECXZ , A_Fcx , A_Jb }}}, + /*3a1 e3 e3 */{T2, {{I_JCXZ , A_Fecx , A_Jb },{I_JECXZ , A_Fecx , A_Jb }}} + + }; + +#undef BAD_OPCODE +#undef OI + +/* + Define Maximum valid segment register in a 3-bit 'reg' field. + */ +#ifdef SPC386 + +#define MAX_VALID_SEG 5 + +#else + +#define MAX_VALID_SEG 3 + +#endif /* SPC386 */ + +/* + Information for each Intel memory addressing mode. + */ + +/* - displacement info. */ +#define D_NO (UTINY)0 +#define D_S8 (UTINY)1 +#define D_S16 (UTINY)2 +#define D_Z16 (UTINY)3 +#define D_32 (UTINY)4 + +LOCAL UTINY addr_disp[2][3][8] = + { + /* 16-bit addr */ + { {D_NO , D_NO , D_NO , D_NO , D_NO , D_NO , D_Z16, D_NO }, + {D_S8 , D_S8 , D_S8 , D_S8 , D_S8 , D_S8 , D_S8 , D_S8 }, + {D_S16, D_S16, D_S16, D_S16, D_S16, D_S16, D_S16, D_S16} }, + /* 32-bit addr */ + { {D_NO , D_NO , D_NO , D_NO , D_NO , D_32 , D_NO , D_NO }, + {D_S8 , D_S8 , D_S8 , D_S8 , D_S8 , D_S8 , D_S8 , D_S8 }, + {D_32 , D_32 , D_32 , D_32 , D_32 , D_32 , D_32 , D_32 } } + }; + +/* - default segment info. */ +LOCAL ULONG addr_default_segment[2][3][8] = + { + /* 16-bit addr */ + { {A_DS , A_DS , A_SS , A_SS , A_DS , A_DS , A_DS , A_DS }, + {A_DS , A_DS , A_SS , A_SS , A_DS , A_DS , A_SS , A_DS }, + {A_DS , A_DS , A_SS , A_SS , A_DS , A_DS , A_SS , A_DS } }, + /* 32-bit addr */ + { {A_DS , A_DS , A_DS , A_DS , A_SS , A_DS , A_DS , A_DS }, + {A_DS , A_DS , A_DS , A_DS , A_SS , A_SS , A_DS , A_DS }, + {A_DS , A_DS , A_DS , A_DS , A_SS , A_SS , A_DS , A_DS } } + }; + +/* - addressing type info. */ +/* Table fillers - never actually referenced */ +#define A_3204 (USHORT)0 +#define A_3214 (USHORT)0 +#define A_3224 (USHORT)0 + +LOCAL USHORT addr_maintype[3][3][8] = + { + /* 16-bit addr */ + { {A_1600, A_1601, A_1602, A_1603, A_1604, A_1605, A_1606, A_1607}, + {A_1610, A_1611, A_1612, A_1613, A_1614, A_1615, A_1616, A_1617}, + {A_1620, A_1621, A_1622, A_1623, A_1624, A_1625, A_1626, A_1627} }, + /* 32-bit addr, no SIB */ + { {A_3200, A_3201, A_3202, A_3203, A_3204, A_3205, A_3206, A_3207}, + {A_3210, A_3211, A_3212, A_3213, A_3214, A_3215, A_3216, A_3217}, + {A_3220, A_3221, A_3222, A_3223, A_3224, A_3225, A_3226, A_3227} }, + /* 32-bit addr, with SIB */ + { {A_32S00, A_32S01, A_32S02, A_32S03, A_32S04, A_32S05, A_32S06, A_32S07}, + {A_32S10, A_32S11, A_32S12, A_32S13, A_32S14, A_32S15, A_32S16, A_32S17}, + {A_32S20, A_32S21, A_32S22, A_32S23, A_32S24, A_32S25, A_32S26, A_32S27} } + }; + +/* - addressing sub type info. */ +LOCAL UTINY addr_subtype[4][8] = + { + {A_SI00, A_SI01, A_SI02, A_SI03, A_SI04, A_SI05, A_SI06, A_SI07}, + {A_SI10, A_SI11, A_SI12, A_SI13, A_SI14, A_SI15, A_SI16, A_SI17}, + {A_SI20, A_SI21, A_SI22, A_SI23, A_SI24, A_SI25, A_SI26, A_SI27}, + {A_SI30, A_SI31, A_SI32, A_SI33, A_SI34, A_SI35, A_SI36, A_SI37} + }; + +/* + The allowable types of segment override. + See also "d_oper.h" for segment register names. + */ +#define SEG_CLR (ULONG)7 + +/* + The (additional) allowable types of address override. + */ +#define ADDR_32SIB (UTINY)2 + +/* + The allowable types of repeat prefix. + */ +#define REP_CLR (UTINY)0 +#define REP_NE (UTINY)1 +#define REP_E (UTINY)2 + +/* + Shift's and Mask's required to access addressing components. + */ +#define SHIFT_543 3 /* shift for bits 5-3 */ +#define SHIFT_76 6 /* shift for bits 7-6 */ +#define MASK_10 0x3 /* mask for bits 1-0 */ +#define MASK_210 0x7 /* mask for bits 2-0 */ + +/* + Macros to access varies addressing fields. + */ +#define GET_MODE(x) ((x) >> SHIFT_76 & MASK_10) +#define GET_R_M(x) ((x) & MASK_210) +#define GET_XXX(x) ((x) >> SHIFT_543 & MASK_210) +#define GET_REG(x) ((x) >> SHIFT_543 & MASK_210) +#define GET_SEG(x) ((x) >> SHIFT_543 & MASK_210) +#define GET_EEE(x) ((x) >> SHIFT_543 & MASK_210) +#define GET_SEG3(x) ((x) >> SHIFT_543 & MASK_210) +#define GET_SEG2(x) ((x) >> SHIFT_543 & MASK_10) +#define GET_SS(x) ((x) >> SHIFT_76 & MASK_10) +#define GET_INDEX(x) ((x) >> SHIFT_543 & MASK_210) +#define GET_BASE(x) ((x) & MASK_210) +#define GET_LOW3(x) ((x) & MASK_210) + +/* + Procedure to flip (invert) current status of a two-way choice + */ +#define FLIP(c, o, x, y) \ + if ( o == x ) \ + c = y; \ + else \ + c = x + +/* + Procedure to extract new opcode from operand arguments. + */ +#define XREF() ((USHORT)arg[0] << 8 | arg[1]) + +/* + ===================================================================== + EXECUTION STARTS HERE. + ===================================================================== + */ + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Decode Intel opcode stream into INST arg1,arg2,arg3 form. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL void +decode IFN4 ( + LIN_ADDR, p, /* pntr to Intel opcode stream */ + DECODED_INST *, d_inst, /* pntr to decoded instruction structure */ + SIZE_SPECIFIER, default_size, /* Default operand_size OP_16 or OP_32 */ + read_byte_proc, f) /* like sas_hw_at() or equivalent to read + * a byte from p, but will return -1 if + * unable to return a byte. + */ +{ + + UTINY address_default; /* Default address size */ + UTINY operand_default; /* Default operand size */ + + /* Per instruction prefix varients */ + ULONG segment_override; + UTINY address_size; + UTINY operand_size; + UTINY repeat; + + USHORT inst; /* Working copy of instruction identifier */ + UTINY inst_type; /* Working copy of instruction type */ + UTINY arg[3]; /* Working copy of operand types */ + + USHORT opcode; + UTINY decoding; /* Working copy of addressing byte(s) */ + + DECODED_ARG *d_arg; /* current decoded argument */ + + LIN_ADDR start_of_inst; /* pntr to start of opcode stream */ + LIN_ADDR start_of_addr; /* pntr to start of addressing bytes */ + + /* Variables used in memory address decoding */ + UTINY mode; /* Working copy of 'mode' field */ + UTINY r_m; /* Working copy of 'R/M' field */ + USHORT maintype; /* Working copy of decoded address type */ + UTINY subtype; /* Working copy of decoded address sub type */ + ULONG disp; /* Working copy of displacement */ + ULONG immed; /* Working copy of immediate operands */ + + INT i; + + /* + Initialisation. + */ + if ( default_size == SIXTEEN_BIT ) + { + address_default = ADDR_16; + operand_default = OP_16; + } + else /* assume OP_32 */ + { + address_default = ADDR_32; + operand_default = OP_32; + } + + arg[2] = A_; + start_of_inst = NOTE_INST_LOCN(p); + + /* + First handle prefix bytes. + */ + segment_override = SEG_CLR; + address_size = address_default; + operand_size = operand_default; + repeat = REP_CLR; + + while ( (inst = opcode_info[INST_BYTE(f,p)].record[operand_size].inst_id) > MAX_PSEUDO ) + { + switch ( inst ) + { + case P_AO: FLIP(address_size, address_default, ADDR_16, ADDR_32); break; + case P_OO: FLIP(operand_size, operand_default, OP_16, OP_32); break; + + case P_CS: segment_override = A_CS; break; + case P_DS: segment_override = A_DS; break; + case P_ES: segment_override = A_ES; break; + case P_FS: segment_override = A_FS; break; + case P_GS: segment_override = A_GS; break; + case P_SS: segment_override = A_SS; break; + + case P_REPE: repeat = REP_E; break; + case P_REPNE: repeat = REP_NE; break; + + case P_LOCK: /* doesn't require action */ break; + case P_F1: /* doesn't require action */ break; + + /* + * Could be a garbaged read from memory that doesn't exist - + * stop it at once! + */ + default: + d_inst->inst_id = I_ZBADOP; + d_inst->prefix_sz = p - start_of_inst; + d_inst->inst_sz = p - start_of_inst + 1; + return; + } + p++; + } + + /* + Now handle the opcode. + */ + d_inst->operand_size = operand_size; + d_inst->address_size = address_size; + d_inst->prefix_sz = p-start_of_inst; + opcode = INST_BYTE(f,p); + + while ( 1 ) + { + /* RULE 1 */ + inst_type = opcode_info[opcode].inst_type; + inst = opcode_info[opcode].record[operand_size].inst_id; + arg[0] = opcode_info[opcode].record[operand_size].arg1_type; + arg[1] = opcode_info[opcode].record[operand_size].arg2_type; + + if ( inst > MAX_DECODED_INST ) + { + /* invoke an instruction decoding rule. */ + switch ( inst ) + { + case P_RULE2: + /* + The instruction is further decoded by the 'xxx' field of + the following Addressing Byte. + */ + opcode = XREF() + GET_XXX(INST_OFFSET_BYTE(f,p,1)); + break; + + case P_RULE3: + /* + The instruction is further decoded by a second Opcode + Byte. + */ + p++; /* move onto second Opcode byte */ + opcode = XREF() + INST_BYTE(f,p); /* form pseudo opcode */ + break; + + case P_RULE4: + /* + The instruction is further decoded by the 'xxx' field and + 'mode' field of the following Addressing Byte. + */ + opcode = XREF() + GET_XXX(INST_OFFSET_BYTE(f,p,1)); + if ( GET_MODE(INST_OFFSET_BYTE(f,p,1)) == 3 ) + { + p++; /* move onto second Opcode byte */ + opcode += 8; + } + break; + + case P_RULE5: + /* + The instruction is further decoded by the 'r_m' field of + the Addressing Byte. + */ + opcode = XREF() + GET_R_M(INST_BYTE(f,p)); + break; + + case P_RULE6: + /* + The instruction is further decoded by the absence or + presence of a repeat prefix. + */ + opcode = XREF() + repeat; + /* Kill any repeat prefix after use */ + repeat = REP_CLR; + + break; + + case P_RULE7: + /* + The instruction is further decoded by the 'mode' field and 'r_m' + field of the following Addressing Byte. The instruction is either an LES or + a BOP. + BOP c4 c4 take no argument + BOP c4 c5 take a 1 byte argument + BOP c4 c6 take a 2 byte argument + BOP c4 c7 take a 3 byte argument + */ + opcode = XREF(); + if ((INST_OFFSET_BYTE(f,p,1) & 0xfc) == 0xc4) + { + /* this is a BOP -- notice this SUBTRACTS from opcode! */ + opcode -= 1 + (INST_OFFSET_BYTE(f,p,1) & 0x3); + p++; /* move over second Opcode byte */ + } + break; + + case P_RULE8: + /* + The instruction is further decoded by applying the + addressing size over-ride. + */ + opcode = XREF() + address_size; + break; + + } + continue; + } + + /* Intel instruction found */ + p++; + break; + } + + /* + At this point we can handle redundant repeat prefix bytes. + Because all instructions that can have a valid repeat prefix + byte consume this byte any instance of the repeat prefix + being set at this point indicates it was applied to an + instruction which does not take the repeat prefix. + */ + ; /* quietly ignore them */ + + /* save info related to instruction */ + d_inst->inst_id = inst; + start_of_addr = NOTE_INST_LOCN(p); + + /* + Finally handle arguments (ie addressing and immediate fields). + */ + + /* decode up to three arguments */ + for ( i = 0; i < 3; i++ ) + { + /* look first for special encoding */ + if ( arg[i] > MAX_NORMAL ) + { + /* decode compressed argument */ + switch ( arg[i] ) + { + case A_EwIw: arg[i] = A_Ew; arg[i+1] = A_Iw; break; + case A_EwIx: arg[i] = A_Ew; arg[i+1] = A_Ix; break; + case A_EdId: arg[i] = A_Ed; arg[i+1] = A_Id; break; + case A_EdIy: arg[i] = A_Ed; arg[i+1] = A_Iy; break; + case A_GwCL: arg[i] = A_Gw; arg[i+1] = A_Fcl; break; + case A_GwIb: arg[i] = A_Gw; arg[i+1] = A_Ib; break; + case A_GdCL: arg[i] = A_Gd; arg[i+1] = A_Fcl; break; + case A_GdIb: arg[i] = A_Gd; arg[i+1] = A_Ib; break; + case A_EwIz: arg[i] = A_Ew; arg[i+1] = A_Iz; break; + case A_EwIv: arg[i] = A_Ew; arg[i+1] = A_Iv; break; + } + } + + /* now action processing rule for operand */ + d_arg = &d_inst->args[i]; + + /* determine addressability */ + d_arg->addressability = aa_rules[inst_type][i]; + + switch ( arg[i] ) + { + case A_: /* No argument */ + d_arg->arg_type = A_; + break; + + /* GENERAL REGISTER ENCODINGS ==================================*/ + + case A_Hb: /* low 3 bits of last opcode + denotes byte register */ + d_arg->arg_type = A_Rb; + d_arg->identifier = GET_LOW3(INST_OFFSET_BYTE(f,start_of_addr, -1)); + break; + + case A_Hw: /* low 3 bits of last opcode + denotes word register */ + d_arg->arg_type = A_Rw; + d_arg->identifier = GET_LOW3(INST_OFFSET_BYTE(f,start_of_addr, -1)); + break; + + case A_Hd: /* low 3 bits of last opcode + denotes double word register */ + d_arg->arg_type = A_Rd; + d_arg->identifier = GET_LOW3(INST_OFFSET_BYTE(f,start_of_addr, -1)); + break; + + case A_Gb: /* 'reg' field of modR/M byte + denotes byte register */ + d_arg->arg_type = A_Rb; + d_arg->identifier = GET_REG(GET_INST_BYTE(f,start_of_addr)); + break; + + case A_Gw: /* 'reg' field of modR/M byte + denotes word register */ + d_arg->arg_type = A_Rw; + d_arg->identifier = GET_REG(GET_INST_BYTE(f,start_of_addr)); + break; + + case A_Gd: /* 'reg' field of modR/M byte + denotes double word register */ + d_arg->arg_type = A_Rd; + d_arg->identifier = GET_REG(GET_INST_BYTE(f,start_of_addr)); + break; + + case A_Fal: /* fixed register, AL */ + d_arg->arg_type = A_Rb; + d_arg->identifier = A_AL; + break; + + case A_Fcl: /* fixed register, CL */ + d_arg->arg_type = A_Rb; + d_arg->identifier = A_CL; + break; + + case A_Fax: /* fixed register, AX */ + d_arg->arg_type = A_Rw; + d_arg->identifier = A_AX; + break; + + case A_Fcx: /* fixed register, CX */ + d_arg->arg_type = A_Rw; + d_arg->identifier = A_CX; + break; + + case A_Fdx: /* fixed register, DX */ + d_arg->arg_type = A_Rw; + d_arg->identifier = A_DX; + break; + + case A_Feax: /* fixed register, EAX */ + d_arg->arg_type = A_Rd; + d_arg->identifier = A_EAX; + break; + + case A_Fecx: /* fixed register, ECX */ + d_arg->arg_type = A_Rd; + d_arg->identifier = A_ECX; + break; + + /* SEGMENT REGISTER ENCODINGS ==================================*/ + + case A_Pw: /* two bits(4-3) of last opcode byte + denotes segment register */ + d_arg->arg_type = A_Sw; + d_arg->identifier = GET_SEG2(INST_OFFSET_BYTE(f,start_of_addr, -1)); + break; + + case A_Qw: /* three bits(5-3) of last opcode byte + denotes segment register */ + d_arg->arg_type = A_Sw; + d_arg->identifier = GET_SEG3(INST_OFFSET_BYTE(f,start_of_addr, -1)); + break; + + case A_Lw: /* 'reg' field of modR/M byte + denotes segment register (CS not valid) */ + decoding = GET_SEG(GET_INST_BYTE(f,start_of_addr)); + if ( decoding > MAX_VALID_SEG || decoding == 1 ) + { + /* CS access not allowed -- force a bad op. */ + d_inst->inst_id = I_ZBADOP; + break; + } + d_arg->arg_type = A_Sw; + d_arg->identifier = decoding; + break; + + case A_Nw: /* 'reg' field of modR/M byte + denotes segment register */ + decoding = GET_SEG(GET_INST_BYTE(f,start_of_addr)); + if ( decoding > MAX_VALID_SEG ) + { + /* CS access not allowed -- force a bad op. */ + d_inst->inst_id = I_ZBADOP; + break; + } + d_arg->arg_type = A_Sw; + d_arg->identifier = decoding; + break; + + /* CONTROL/DEBUG/TEST REGISTER ENCODINGS =======================*/ + + case A_Cd: /* 'reg' field of modR/M byte + denotes control register */ + d_arg->arg_type = A_Cd; + d_arg->identifier = GET_EEE(GET_INST_BYTE(f,start_of_addr)); + break; + + case A_Dd: /* 'reg' field of modR/M byte + denotes debug register */ + d_arg->arg_type = A_Dd; + d_arg->identifier = GET_EEE(GET_INST_BYTE(f,start_of_addr)); + break; + + case A_Td: /* 'reg' field of modR/M byte + denotes test register */ + d_arg->arg_type = A_Td; + d_arg->identifier = GET_EEE(GET_INST_BYTE(f,start_of_addr)); + break; + + /* MEMORY ADDRESSING ENCODINGS =================================*/ + + case A_Rd: /* ('mode') and 'r/m' fields must refer to + a double word register */ + d_arg->arg_type = A_Rd; + decoding = INST_BYTE(f,p); +#ifdef INTEL_BOOK_NOT_OS2 + if ( GET_MODE(decoding) != 3 ) + { + /* memory access not allowed -- force a bad op. */ + d_inst->inst_id = I_ZBADOP; + d_arg->arg_type = A_; + break; + } +#endif /* INTEL_BOOK_NOT_OS2 */ + p++; + d_arg->identifier = GET_R_M(decoding); + break; + + case A_M: /* 'mode' and 'r/m' fields of modR/M byte + must denote memory address */ + case A_Ms: + case A_Mw: + case A_Ma16: + case A_Ma32: + case A_Mp16: + case A_Mp32: + decoding = INST_BYTE(f,p); /* peek at modR/M byte */ + if ( GET_MODE(decoding) == 3 ) + { + /* register access not allowed -- force a bad op. */ + p++; /* allow for errant modR/M byte */ + d_inst->inst_id = I_ZBADOP; +#ifdef OLDPIG + if ( INST_OFFSET_BYTE(f,p, -2) == 0xc5 && + INST_OFFSET_BYTE(f,p, -1) == 0xc5 ) + d_inst->inst_id = I_ZZEXIT; +#endif /* OLDPIG */ + break; + } + + /* otherwise handle just like 'E' case */ + + case A_Eb: /* 'mode' and 'r/m' fields of modR/M byte + denote general register or memory address */ + case A_Ew: + case A_Ed: + case A_Ex: + case A_Mi16: + case A_Mi32: + case A_Mi64: + case A_Mi80: + case A_Mr32: + case A_Mr64: + case A_Mr80: + case A_M14: + case A_M28: + case A_M94: + case A_M108: + decoding = GET_INST_BYTE(f,p); /* get modR/M byte */ + mode = GET_MODE(decoding); + r_m = GET_R_M(decoding); + + if ( mode == 3 ) + { + /* register addressing */ + switch ( arg[i] ) + { + case A_Eb: d_arg->arg_type = A_Rb; break; + case A_Ew: d_arg->arg_type = A_Rw; break; + case A_Ed: d_arg->arg_type = A_Rd; break; + case A_Ex: d_arg->arg_type = A_Rd; break; + } + d_arg->identifier = r_m; + } + else + { + /* memory addressing */ + switch ( arg[i] ) + { + case A_Eb: d_arg->arg_type = A_Mb; break; + case A_Ew: d_arg->arg_type = A_Mw; break; + case A_Ed: d_arg->arg_type = A_Md; break; + case A_Ex: d_arg->arg_type = A_Mw; break; + + case A_M: + case A_Ms: + case A_Mw: + case A_Ma16: + case A_Ma32: + case A_Mp16: + case A_Mp32: + case A_Mi16: + case A_Mi32: + case A_Mi64: + case A_Mi80: + case A_Mr32: + case A_Mr64: + case A_Mr80: + case A_M14: + case A_M28: + case A_M94: + case A_M108: + d_arg->arg_type = arg[i]; + break; + } + + /* check for presence of SIB byte */ + if ( address_size == ADDR_32 && r_m == 4 ) + { + /* process SIB byte */ + decoding = GET_INST_BYTE(f,p); /* get SIB byte */ + + /* subvert the original r_m value with the base value, + then addressing mode, displacements and default + segments all fall out in the wash */ + r_m = GET_BASE(decoding); + + /* determine decoded type */ + subtype = addr_subtype[GET_SS(decoding)][GET_INDEX(decoding)]; + maintype = addr_maintype[ADDR_32SIB][mode][r_m]; + } + else + { + /* no SIB byte */ + subtype = A_SINO; + maintype = addr_maintype[address_size][mode][r_m]; + } + + /* encode type and sub type */ + d_arg->identifier = maintype; + d_arg->sub_id = subtype; + + /* encode segment register */ + if ( segment_override == SEG_CLR ) + segment_override = addr_default_segment[address_size][mode][r_m]; + + d_arg->arg_values[0] = segment_override; + + /* encode displacement */ + switch ( addr_disp[address_size][mode][r_m] ) + { + case D_NO: /* No displacement */ + disp = 0; + break; + + case D_S8: /* Sign extend Intel byte */ + disp = GET_INST_BYTE(f,p); + if ( disp & 0x80 ) + disp |= 0xffffff00; + break; + + case D_S16: /* Sign extend Intel word */ + disp = GET_INST_BYTE(f,p); + disp |= (ULONG)GET_INST_BYTE(f,p) << 8; + if ( disp & 0x8000 ) + disp |= 0xffff0000; + break; + + case D_Z16: /* Zero extend Intel word */ + disp = GET_INST_BYTE(f,p); + disp |= (ULONG)GET_INST_BYTE(f,p) << 8; + break; + + case D_32: /* Intel double word */ + disp = GET_INST_BYTE(f,p); + disp |= (ULONG)GET_INST_BYTE(f,p) << 8; + disp |= (ULONG)GET_INST_BYTE(f,p) << 16; + disp |= (ULONG)GET_INST_BYTE(f,p) << 24; + break; + } + + d_arg->arg_values[1] = disp; + } + break; + + case A_Ob: /* offset encoded in instruction stream */ + case A_Ow: + case A_Od: + /* encode segment register */ + if ( segment_override == SEG_CLR ) + segment_override = A_DS; + + d_arg->arg_values[0] = segment_override; + + /* encode type and displacement */ + switch ( address_size ) + { + case ADDR_16: + disp = GET_INST_BYTE(f,p); + disp |= (ULONG)GET_INST_BYTE(f,p) << 8; + d_arg->identifier = A_MOFFS16; + break; + + case ADDR_32: + disp = GET_INST_BYTE(f,p); + disp |= (ULONG)GET_INST_BYTE(f,p) << 8; + disp |= (ULONG)GET_INST_BYTE(f,p) << 16; + disp |= (ULONG)GET_INST_BYTE(f,p) << 24; + d_arg->identifier = A_MOFFS32; + break; + } + d_arg->arg_values[1] = disp; + + /* encode sub type */ + d_arg->sub_id = A_SINO; + + /* determine external 'name' */ + switch ( arg[i] ) + { + case A_Ob: d_arg->arg_type = A_Mb; break; + case A_Ow: d_arg->arg_type = A_Mw; break; + case A_Od: d_arg->arg_type = A_Md; break; + } + break; + + case A_Z: /* 'xlat' addressing form */ + /* encode type and sub type */ + if ( address_size == ADDR_16 ) + maintype = A_16XLT; + else + maintype = A_32XLT; + d_arg->identifier = maintype; + d_arg->sub_id = A_SINO; + + /* encode segment register */ + if ( segment_override == SEG_CLR ) + segment_override = A_DS; + + d_arg->arg_values[0] = segment_override; + + /* encode displacement */ + d_arg->arg_values[1] = 0; + + d_arg->arg_type = A_Mb; + break; + + case A_Xb: /* string source addressing */ + case A_Xw: + case A_Xd: + /* encode type and sub type */ + if ( address_size == ADDR_16 ) + maintype = A_16STSRC; + else + maintype = A_32STSRC; + d_arg->identifier = maintype; + d_arg->sub_id = A_SINO; + + /* encode segment register */ + if ( segment_override == SEG_CLR ) + segment_override = A_DS; + + d_arg->arg_values[0] = segment_override; + + /* encode displacement */ + d_arg->arg_values[1] = 0; + + /* determine external type */ + switch ( arg[i] ) + { + case A_Xb: d_arg->arg_type = A_Mb; break; + case A_Xw: d_arg->arg_type = A_Mw; break; + case A_Xd: d_arg->arg_type = A_Md; break; + } + break; + + case A_Yb: /* string destination addressing */ + case A_Yw: + case A_Yd: + /* encode type and sub type */ + if ( address_size == ADDR_16 ) + maintype = A_16STDST; + else + maintype = A_32STDST; + d_arg->identifier = maintype; + d_arg->sub_id = A_SINO; + + /* encode segment register */ + d_arg->arg_values[0] = A_ES; + + /* encode displacement */ + d_arg->arg_values[1] = 0; + + /* determine external type */ + switch ( arg[i] ) + { + case A_Yb: d_arg->arg_type = A_Mb; break; + case A_Yw: d_arg->arg_type = A_Mw; break; + case A_Yd: d_arg->arg_type = A_Md; break; + } + break; + + /* IMMEDIATE/RELATIVE OFFSET ENCODINGS =========================*/ + + case A_I0: /* immediate(0) implied within instruction */ + d_arg->arg_type = A_I; + d_arg->identifier = A_IMMC; + d_arg->arg_values[0] = 0; + break; + + case A_I1: /* immediate(1) implied within instruction */ + d_arg->arg_type = A_I; + d_arg->identifier = A_IMMC; + d_arg->arg_values[0] = 1; + break; + + case A_I3: /* immediate(3) implied within instruction */ + d_arg->arg_type = A_I; + d_arg->identifier = A_IMMC; + d_arg->arg_values[0] = 3; + break; + + case A_Ib: /* immediate byte */ + d_arg->arg_type = A_I; + d_arg->identifier = A_IMMB; + d_arg->arg_values[0] = GET_INST_BYTE(f,p); + break; + + case A_Iv: /* immediate word, printed as double */ + d_arg->arg_type = A_I; + d_arg->identifier = A_IMMD; + immed = GET_INST_BYTE(f,p); + immed |= (ULONG)GET_INST_BYTE(f,p) << 8; + d_arg->arg_values[0] = immed; + break; + + case A_Iw: /* immediate word */ + d_arg->arg_type = A_I; + d_arg->identifier = A_IMMW; + immed = GET_INST_BYTE(f,p); + immed |= (ULONG)GET_INST_BYTE(f,p) << 8; + d_arg->arg_values[0] = immed; + break; + + case A_Id: /* immediate double word */ + d_arg->arg_type = A_I; + d_arg->identifier = A_IMMD; + immed = GET_INST_BYTE(f,p); + immed |= (ULONG)GET_INST_BYTE(f,p) << 8; + immed |= (ULONG)GET_INST_BYTE(f,p) << 16; + immed |= (ULONG)GET_INST_BYTE(f,p) << 24; + d_arg->arg_values[0] = immed; + break; + + case A_Iz: /* immediate byte sign extended to word, printed as double */ + d_arg->arg_type = A_I; + d_arg->identifier = A_IMMDB; + immed = GET_INST_BYTE(f,p); + if ( immed & 0x80 ) + immed |= 0xff00; + d_arg->arg_values[0] = immed; + break; + + case A_Iy: /* immediate byte sign extended to double word */ + d_arg->arg_type = A_I; + d_arg->identifier = A_IMMDB; + immed = GET_INST_BYTE(f,p); + if ( immed & 0x80 ) + immed |= 0xffffff00; + d_arg->arg_values[0] = immed; + break; + + case A_Ix: /* immediate byte sign extended to word */ + d_arg->arg_type = A_I; + d_arg->identifier = A_IMMWB; + immed = GET_INST_BYTE(f,p); + if ( immed & 0x80 ) + immed |= 0xff00; + d_arg->arg_values[0] = immed; + break; + + case A_Bop3b: /* BOP argument: 3 bytes in double */ + d_arg->arg_type = A_I; + d_arg->identifier = A_IMMD; + immed = GET_INST_BYTE(f,p); + immed |= (ULONG)GET_INST_BYTE(f,p) << 8; + immed |= (ULONG)GET_INST_BYTE(f,p) << 16; + d_arg->arg_values[0] = immed; + break; + + case A_Jb: /* relative offset byte sign extended to double word */ + d_arg->arg_type = A_J; + immed = GET_INST_BYTE(f,p); + if ( immed & 0x80 ) + immed |= 0xffffff00; + d_arg->arg_values[0] = immed; + break; + + case A_Jb2: /* like A_Jb, but might be a "Jcc .+3; JMPN dest" pair + * which both the EDL and CCPUs treat as a single instruction. + * Be careful that the Jcc .+03 is not adjacent to a page boundary. + */ + d_arg->arg_type = A_J; + immed = GET_INST_BYTE(f,p); + if ( immed & 0x80 ) + immed |= 0xffffff00; + if ( ( immed == 3 ) && (( p & 0xfff) != 0x000) ) + { + LIN_ADDR pj = p; + IU32 jmpn = GET_INST_BYTE(f,pj); + + if (jmpn == 0xe9) + { + immed = GET_INST_BYTE(f,pj); + immed |= ((ULONG)GET_INST_BYTE(f,pj) << 8); + if ( immed & 0x8000 ) + immed |= 0xffff0000; + p = pj; + switch(d_inst->inst_id) + { + case I_JO16: d_inst->inst_id = I_JNO16; break; + case I_JNO16: d_inst->inst_id = I_JO16; break; + case I_JB16: d_inst->inst_id = I_JNB16; break; + case I_JNB16: d_inst->inst_id = I_JB16; break; + case I_JZ16: d_inst->inst_id = I_JNZ16; break; + case I_JNZ16: d_inst->inst_id = I_JZ16; break; + case I_JBE16: d_inst->inst_id = I_JNBE16; break; + case I_JNBE16: d_inst->inst_id = I_JBE16; break; + case I_JS16: d_inst->inst_id = I_JNS16; break; + case I_JNS16: d_inst->inst_id = I_JS16; break; + case I_JP16: d_inst->inst_id = I_JNP16; break; + case I_JNP16: d_inst->inst_id = I_JP16; break; + case I_JL16: d_inst->inst_id = I_JNL16; break; + case I_JNL16: d_inst->inst_id = I_JL16; break; + case I_JLE16: d_inst->inst_id = I_JNLE16; break; + case I_JNLE16: d_inst->inst_id = I_JLE16; break; + default: /* can never happen */ break; + } + } + } + d_arg->arg_values[0] = immed; + break; + + case A_Jw: /* relative offset word sign extended to double word */ + d_arg->arg_type = A_J; + immed = GET_INST_BYTE(f,p); + immed |= (ULONG)GET_INST_BYTE(f,p) << 8; + if ( immed & 0x8000 ) + immed |= 0xffff0000; + d_arg->arg_values[0] = immed; + break; + + case A_Jd: /* relative offset double word */ + d_arg->arg_type = A_J; + immed = GET_INST_BYTE(f,p); + immed |= (ULONG)GET_INST_BYTE(f,p) << 8; + immed |= (ULONG)GET_INST_BYTE(f,p) << 16; + immed |= (ULONG)GET_INST_BYTE(f,p) << 24; + d_arg->arg_values[0] = immed; + break; + + /* DIRECT ADDRESS ENCODINGS ====================================*/ + + case A_Aw: /* direct address in instruction stream */ + d_arg->arg_type = A_K; + + immed = GET_INST_BYTE(f,p); + immed |= (ULONG)GET_INST_BYTE(f,p) << 8; + d_arg->arg_values[0] = immed; + + immed = GET_INST_BYTE(f,p); + immed |= (ULONG)GET_INST_BYTE(f,p) << 8; + d_arg->arg_values[1] = immed; + break; + + case A_Ad: /* direct address in instruction stream */ + d_arg->arg_type = A_K; + + immed = GET_INST_BYTE(f,p); + immed |= (ULONG)GET_INST_BYTE(f,p) << 8; + immed |= (ULONG)GET_INST_BYTE(f,p) << 16; + immed |= (ULONG)GET_INST_BYTE(f,p) << 24; + d_arg->arg_values[0] = immed; + + immed = GET_INST_BYTE(f,p); + immed |= (ULONG)GET_INST_BYTE(f,p) << 8; + d_arg->arg_values[1] = immed; + break; + + /* CO-PROCESSOR REGISTER STACK ENCODINGS =======================*/ + + case A_Vt: /* stack top */ + d_arg->arg_type = A_V; + d_arg->identifier = A_ST; + d_arg->arg_values[0] = 0; + break; + + case A_Vq: /* push onto stack top */ + d_arg->arg_type = A_V; + d_arg->identifier = A_STP; + d_arg->arg_values[0] = 0; + break; + + case A_Vn: /* stack register relative to stack top */ + d_arg->arg_type = A_V; + d_arg->identifier = A_STI; + d_arg->arg_values[0] = GET_LOW3(INST_OFFSET_BYTE(f,start_of_addr, -1)); + break; + + case A_V1: /* stack register(1) relative to stack top */ + d_arg->arg_type = A_V; + d_arg->identifier = A_STI; + d_arg->arg_values[0] = 1; + break; + } /* end switch */ + } /* end for */ + + d_inst->inst_sz = p - start_of_inst; + } /* end 'decode' */ diff --git a/private/mvdm/softpc.new/base/dasm386/makefile b/private/mvdm/softpc.new/base/dasm386/makefile new file mode 100644 index 000000000..6ee4f43fa --- /dev/null +++ b/private/mvdm/softpc.new/base/dasm386/makefile @@ -0,0 +1,6 @@ +# +# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source +# file to this component. This file merely indirects to the real make file +# that is shared by all the components of NT OS/2 +# +!INCLUDE $(NTMAKEENV)\makefile.def diff --git a/private/mvdm/softpc.new/base/dasm386/sources b/private/mvdm/softpc.new/base/dasm386/sources new file mode 100644 index 000000000..056444fa4 --- /dev/null +++ b/private/mvdm/softpc.new/base/dasm386/sources @@ -0,0 +1,68 @@ +!IF 0 + +Copyright (c) 1989 Microsoft Corporation + +Module Name: + + sources. + +Abstract: + + This file specifies the target component being built and the list of + sources files needed to build that component. Also specifies optional + compiler switches and libraries that are unique for the component being + built. + + +Author: + + Steve Wood (stevewo) 12-Apr-1990 + +NOTE: Commented description of this file is in \nt\bak\bin\sources.tpl + +!ENDIF + + +MAJORCOMP=spcbase +MINORCOMP=dasm386 + +TARGETNAME=dasm386 + +TARGETPATH=obj + + +NTPROFILEINPUT=yes + +# Pick one of the following and delete the others +TARGETTYPE=LIBRARY + + +TARGETLIBS= + +SOFTPC_TREE=$(BASEDIR)\private\mvdm\softpc.new + +INCLUDES=$(SOFTPC_TREE)\host\inc;$(SOFTPC_TREE)\base\inc;$(BASEDIR)\private\inc + +!IF $(ALPHA) +GPSIZE=0 +!ELSE +GPSIZE=0 +!ENDIF + + +PPC_SOURCES= dasm386.c \ + build.c \ + decode.c + +ALPHA_SOURCES=$(PPC_SOURCES) + +MIPS_SOURCES=$(PPC_SOURCES) + +i386_SOURCES= + +SOURCES= + + +!INCLUDE $(SOFTPC_TREE)\obj.vdm\CDEFINE.INC + +UMTYPE=console diff --git a/private/mvdm/softpc.new/base/debug/btrace.c b/private/mvdm/softpc.new/base/debug/btrace.c new file mode 100644 index 000000000..ec532035a --- /dev/null +++ b/private/mvdm/softpc.new/base/debug/btrace.c @@ -0,0 +1,193 @@ +#include "insignia.h" +#include "host_def.h" +/* + * VPC-XT Revision 1.0 + * + * Title : Buffer Trace function + * + * Description : This function will output a trace to the trace buffer + * + * Author : Henry Nash + * + * Notes : None + * + */ + +#ifdef SCCSID +static char SccsID[]="@(#)btrace.c 1.10 08/03/93 Copyright Insignia Solutions Ltd."; +#endif + +#ifdef SEGMENTATION +/* + * The following #include define specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_ERROR.seg" +#endif + + + +/* + * O/S include files. + */ +#include +#include TypesH +#include StringH + +/* + * SoftPC include files + */ +#include "xt.h" +#include CpuH +#include "sas.h" +#include "trace.h" + +#ifndef PROD +IMPORT word dasm IPT5(char *, i_output_stream, word, i_atomicsegover, + word, i_segreg, word, i_segoff, int, i_nInstr); +#define TRACE_BUF_SIZE 16384 +static char trace_buffer[TRACE_BUF_SIZE]; +static int trace_pointer = 0; + +void print_back_trace() +{ + printf("%s", trace_buffer); +} + +void file_back_trace( filename ) +char *filename ; +{ + FILE *fp ; + + if ( (fp = fopen( filename, "w" )) == NULL ) { + printf( "cannot open file %s\n", filename ); + } + else { + fprintf( fp, "%s\n", trace_buffer ); + fprintf( fp, "\n" ); /* flush into file */ + fclose( fp ); + } +} + +#ifdef ANSI +void put_in_trace_buffer (char str[]) +#else +void put_in_trace_buffer (str) +char str[]; +#endif +{ +int i,j; + + while ((trace_pointer+strlen(str)) >= TRACE_BUF_SIZE) { + i=0; j=0; + while(i < TRACE_BUF_SIZE && j < 10) { + if (trace_buffer[i] == '\n') j++; + i++; + } + memcpy(&trace_buffer[0], &trace_buffer[i], TRACE_BUF_SIZE - i); + trace_pointer = trace_pointer - i; + } + memcpy(&trace_buffer[trace_pointer], &str[0], strlen(str) + 1); + trace_pointer += strlen(str); +} + + +btrace(dump_info) +int dump_info; +{ + word temp; + char trace_file[512]; +#ifdef DELTA + extern host_addr last_destination_address ; + host_addr last_dest; +#endif /* DELTA */ + + sys_addr i; + /* + * Dump the error message + */ + + + /* + * Now dump what has been asked for + */ + + if (dump_info & DUMP_CSIP) { + sprintf(trace_file,"%-04x:%-04x ", getCS(), getIP() ); + put_in_trace_buffer(trace_file); + } + + if (dump_info & DUMP_REG) + { + sprintf(trace_file,"AX:%-04x BX:%-04x CX:%-04x DX:%-04x SP:%-04x BP:%-04x SI:%-04x DI:%-04x ", + getAX(), getBX(), getCX(), getDX(), + getSP(), getBP(), getSI(), getDI()); + put_in_trace_buffer(trace_file); + sprintf(trace_file,"DS:%-04x ES:%-04x SS:%-04x CS:%-04x IP:%-04x\n", + getDS(), getES(), getSS(), getCS(), getIP()); + put_in_trace_buffer(trace_file); + } + + + if (dump_info & DUMP_INST) + { + +#ifdef DELTA + last_dest = get_byte_addr(last_destination_address); + if ( dump_info & LAST_DEST ) + { + sprintf( trace_file, "\nlast_destination_address was %d (%x)\n", + last_destination_address, last_dest ); + put_in_trace_buffer(trace_file); + } +#endif /* DELTA */ + + dasm(trace_file, 0, getCS(), getIP(), 1); + put_in_trace_buffer(trace_file); + } + + if (dump_info & DUMP_CODE) + { + sprintf(trace_file,"Code dump: Last 16 words\n\n"); + put_in_trace_buffer(trace_file); + i = getIP() - 31; + sprintf(trace_file, "%x: ", i); + put_in_trace_buffer(trace_file); + for(; i < getIP() - 15; i+=2) + { + sas_loadw(effective_addr(getCS(), i), &temp); + sprintf(trace_file, "%-6x", temp); + put_in_trace_buffer(trace_file); + } + sprintf(trace_file, "\n%x: ", i); + put_in_trace_buffer(trace_file); + for(; i <= getIP(); i+=2) + { + sas_loadw(effective_addr(getCS(), i), &temp); + sprintf(trace_file, "%-6x", temp); + put_in_trace_buffer(trace_file); + } + sprintf(trace_file,"\n\n"); + put_in_trace_buffer(trace_file); + } + + + if (dump_info & DUMP_FLAGS) + { + sprintf(trace_file, + "CF:%-2dPF:%-2dAF:%-2dZF:%-2dSF:%-2dTF:%-2dIF:%-2dDF:%-2dOF:%-2d\n", + getCF(), + getPF(), + getAF(), + getZF(), + getSF(), + getTF(), + getIF(), + getDF(), + getOF()); + put_in_trace_buffer(trace_file); + } + +} +#endif diff --git a/private/mvdm/softpc.new/base/debug/dasm.c b/private/mvdm/softpc.new/base/debug/dasm.c new file mode 100644 index 000000000..7c0903106 --- /dev/null +++ b/private/mvdm/softpc.new/base/debug/dasm.c @@ -0,0 +1,2947 @@ +#include "insignia.h" +#include "host_def.h" +/* + * SoftPC Revision 3.0 + * + * Title : CPU disassembler + * + * Description : This dissasembler is called from the debugging + * software (trace + yoda). + * + * Author : Paul Huckle / Henry Nash + * + * Notes : There are some dependencies between this and the CPU + * module - unfortunately exactly what these are lie + * hidden in thrown together code and Super Supremes. + */ + +/* + * static char SccsID[]="@(#)dasm.c 1.24 05/16/94 Copyright Insignia Solutions Ltd."; + */ + + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "DASM1.seg" +#endif + + + +#ifndef PROD + +/* + * O/S include files. + */ +#include +#include TypesH + +/* + * SoftPC include files + */ +#include "xt.h" +#include CpuH +#include "sas.h" +#include "ios.h" +#include "bios.h" +#include "trace.h" + +#undef sas_set_buf +#undef sas_inc_buf + +#define sas_set_buf(buf,addr) buf=(OPCODE_FRAME *)M_get_dw_ptr(addr) +#define sas_inc_buf(buf,off) buf = (OPCODE_FRAME *)inc_M_ptr((long)buf, (long)off) + +#define place_op place_byte(byte_posn,op->OPCODE); \ + byte_posn += 3; + +#define place_2 place_byte(byte_posn,op->SECOND_BYTE); \ + byte_posn += 3; + +#define place_3 place_byte(byte_posn,op->THIRD_BYTE); \ + byte_posn += 3; + +#define place_4 place_byte(byte_posn,op->FOURTH_BYTE); \ + byte_posn += 3; + +#define print_byte_v i=strlen(out_line); \ + place_byte(i,temp_byte.X); \ + out_line[i+2] = '\0'; + +#define print_addr_c strcat(out_line,temp_char); \ + strcat(out_line,","); + +#define print_c_addr strcat(out_line,","); \ + strcat(out_line,temp_char); + +#define place_23 place_byte(byte_posn,op->SECOND_BYTE); \ + byte_posn += 3; \ + place_byte(byte_posn,op->THIRD_BYTE); \ + byte_posn += 3; + +#define place_34 place_byte(byte_posn,op->THIRD_BYTE); \ + byte_posn += 3; \ + place_byte(byte_posn,op->FOURTH_BYTE); \ + byte_posn += 3; + +#define print_reg sprintf(temp_char,"%04x",temp_reg.X); \ + strcat(out_line, temp_char); + +#define JUMP " ; Jump" +#define NOJUMP " ; No jump" +#define NOLOOP " ; No loop" + +#define jmp_dest place_byte(byte_posn, op->OPCODE); \ + byte_posn += 3; \ + place_byte(byte_posn,op->SECOND_BYTE); \ + byte_posn += 3; \ + strcat(out_line, ASM[op->OPCODE]); \ + segoff = segoff + LEN_ASM[op->OPCODE]; \ + sprintf(temp_char,"%04x ",(segoff + (IS8) op->SECOND_BYTE )); \ + strcat(out_line,temp_char); + +#define print_return { if (output_stream == (char *)0) \ + fprintf(trace_file, "%s\n", out_line); \ + else \ + if (output_stream != (char *)-1) \ + sprintf(output_stream, "%s\n", out_line); \ + if ( nInstr != 0 ) \ + segoff = segoff + disp_length; \ + } + +#define sbyte place_byte(byte_posn, op->OPCODE); \ + byte_posn += 3; \ + strcat(out_line, ASM[op->OPCODE]); \ + segoff = segoff + LEN_ASM[op->OPCODE]; + +#define start_repeat if ( REPEAT != OFF ) \ + temp_count.X = getCX(); \ + else \ + temp_count.X = 1; + +#define load_23 temp_reg.byte.high = op->THIRD_BYTE; \ + temp_reg.byte.low = op->SECOND_BYTE; + +#define load_34 temp_reg.byte.high = op->FOURTH_BYTE; \ + temp_reg.byte.low = op->THIRD_BYTE; + +#define load_2 temp_byte.X = op->SECOND_BYTE; + +#define load_3 temp_byte.X = op->THIRD_BYTE; + +#define OFF -1 +#define REPNE_FLAG 0 +#define REPE_FLAG 1 + +#ifdef CPU_30_STYLE +/* cpu.h no longer supplies this... supply our own */ +#ifdef BACK_M +typedef struct +{ + half_word FOURTH_BYTE; + half_word THIRD_BYTE; + half_word SECOND_BYTE; + half_word OPCODE; +} OPCODE_FRAME; + +#else +typedef struct +{ + half_word OPCODE; + half_word SECOND_BYTE; + half_word THIRD_BYTE; + half_word FOURTH_BYTE; +} OPCODE_FRAME; + +#endif /* BACK_M */ + +#endif /* CPU_30_STYLE */ + +char trace_buf[512]; + + +#ifdef BIT_ORDER1 + typedef union { + half_word X; + struct { + HALF_WORD_BIT_FIELD mod:2; + HALF_WORD_BIT_FIELD xxx:3; + HALF_WORD_BIT_FIELD r_m:3; + } field; + long alignment; /* ensure compiler aligns union */ + } MODR_M; + + typedef union { + half_word X; + struct { + HALF_WORD_BIT_FIELD b7:1; + HALF_WORD_BIT_FIELD b6:1; + HALF_WORD_BIT_FIELD b5:1; + HALF_WORD_BIT_FIELD b4:1; + HALF_WORD_BIT_FIELD b3:1; + HALF_WORD_BIT_FIELD b2:1; + HALF_WORD_BIT_FIELD b1:1; + HALF_WORD_BIT_FIELD b0:1; + } bit; + long alignment; /* ensure compiler aligns union */ + } DASMBYTE; +#endif +#ifdef BIGEND + typedef union { + sys_addr all; + struct { + half_word PAD1; + half_word PAD2; + half_word high; + half_word low; + } byte; + } cpu_addr; +#endif + +#ifdef BIT_ORDER2 + typedef union { + half_word X; + struct { + HALF_WORD_BIT_FIELD r_m:3; + HALF_WORD_BIT_FIELD xxx:3; + HALF_WORD_BIT_FIELD mod:2; + } field; + long alignment; /* ensure compiler aligns union */ + } MODR_M; + + typedef union { + half_word X; + struct { + HALF_WORD_BIT_FIELD b0:1; + HALF_WORD_BIT_FIELD b1:1; + HALF_WORD_BIT_FIELD b2:1; + HALF_WORD_BIT_FIELD b3:1; + HALF_WORD_BIT_FIELD b4:1; + HALF_WORD_BIT_FIELD b5:1; + HALF_WORD_BIT_FIELD b6:1; + HALF_WORD_BIT_FIELD b7:1; + } bit; + long alignment; /* ensure compiler aligns union */ + } DASMBYTE; +#endif +#ifdef LITTLEND + typedef union { + sys_addr all; + struct { + half_word low; + half_word high; + half_word PAD2; + half_word PAD1; + } byte; + } cpu_addr; +#endif + +/* + * The following are the three addressing mode register mapping tables. + * These should be indexed with the register field (xxx) in the + * instruction operand. + */ + +/* + * 16-bit (w == 1) + */ + +char *reg16name[] = { "AX","CX","DX","BX","SP","BP","SI","DI"}; + +/* + * 8-bit (w == 0) + */ + +char *reg8name[] = { "AL","CL","DL","BL","AH","CH","DH","BH"}; + +/* + * Segements + */ + +char *segregname[] = { "ES","CS","SS","DS"}; + +char *address[] = { "BX+SI","BX+DI","BP+SI","BP+DI", + "SI" ,"DI" ,"BP" ,"BX" }; + + + +static char out_line[133]; +static char temp_char[80]; +static char temp_char2[80]; +static OPCODE_FRAME *op; +static int byte_posn; +static int disp_length; + + +static char table[] = { '0','1','2','3','4','5','6','7','8', + '9','A','B','C','D','E','F' }; + +static char *CODE_F7[] = {"TEST ","TEST ","NOT ","NEG ", + "MUL ","IMUL ","DIV ","IDIV "}; +static char *CODE_83[] = {"ADD- ","OR- ","ADC- ","SBB- ", + "AND- ","SUB- ","XOR- ","CMP- "}; +static char *CODE_80[] = {"ADD ","OR ","ADC ","SBB ", + "AND ","SUB ","XOR ","CMP "}; +static char *CODE_FF[] = {"INC ","DEC ","CALL ","CALLF ", + "JMP ","JMPF ","PUSH ","?? "}; +static char *CODE_FE[] = {"INC ","DEC ","?? ","?? ", + "?? ","?? ","?? ","?? "}; +static char *CODE_D0[] = {"ROL ","ROR ","RCL ","RCR ", + "SHL ","SHR ","SHL ","SAR "}; +static int LEN_F6[] = { 3,3,2,2,2,2,2,2 }; +static int LEN_F7[] = { 4,4,2,2,2,2,2,2 }; + +static int LEN_ASM[] = + { + 2,2,2,2,2,3,1,1, 2,2,2,2,2,3,1,1, /* 00 - 0f */ + 2,2,2,2,2,3,1,1, 2,2,2,2,2,3,1,1, /* 10 - 1f */ + 2,2,2,2,2,3,1,1, 2,2,2,2,2,3,1,1, /* 20 - 2f */ + 2,2,2,2,2,3,1,1, 2,2,2,2,2,3,1,1, /* 30 - 3f */ + 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1, /* 40 - 4f */ + 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1, /* 50 - 5f */ + 1,1,2,2,1,1,1,1, 3,4,2,3,1,1,1,1, /* 60 - 6f */ + 2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2, /* 70 - 7f */ + 3,4,3,3,2,2,2,2, 2,2,2,2,2,2,2,2, /* 80 - 8f */ + 1,1,1,1,1,1,1,1, 1,1,5,1,1,1,1,1, /* 90 - 9f */ + 3,3,3,3,1,1,1,1, 2,3,1,1,1,1,1,1, /* a0 - af */ + 2,2,2,2,2,2,2,2, 3,3,3,3,3,3,3,3, /* b0 - bf */ + 3,3,3,1,2,2,3,4, 4,1,3,1,1,2,1,1, /* c0 - cf */ + 2,2,2,2,2,2,2,1, 2,2,2,2,2,2,2,2, /* d0 - df */ + 2,2,2,2,2,2,2,2, 3,3,5,2,1,1,1,1, /* e0 - ef */ + 1,1,1,1,1,1,0,0, 1,1,1,1,1,1,2,2 /* f0 - ff */ + }; + +static char *ASM[256] = { + + "ADD " , /* opcodes 00 -> 07 */ + "ADD " , + "ADD " , + "ADD " , + "ADD AL," , + "ADD AX," , + "PUSH ES" , + "POP ES" , + + "OR " , /* opcodes 08 -> 0F */ + "OR " , + "OR " , + "OR " , + "OR AL," , + "OR AX," , + "PUSH CS" , + "" , + + "ADC " , /* opcodes 10 -> 17 */ + "ADC " , + "ADC " , + "ADC " , + "ADC AL," , + "ADC AX," , + "PUSH SS" , + "POP SS" , + + "SBB " , /* opcodes 18 -> 1f */ + "SBB " , + "SBB " , + "SBB " , + "SBB AL," , + "SBB AX," , + "PUSH DS" , + "POP DS" , + + "AND " , /* opcodes 20 -> 27 */ + "AND " , + "AND " , + "AND " , + "AND AL," , + "AND AX," , + "ES: " , + "DAA " , + + "SUB " , /* opcodes 28 -> 2f */ + "SUB " , + "SUB " , + "SUB " , + "SUB AL," , + "SUB AX," , + "CS: " , + "DAS" , + + "XOR " , /* opcodes 30 -> 37 */ + "XOR " , + "XOR " , + "XOR " , + "XOR AL," , + "XOR AX," , + "SS: " , + "AAA " , + + "CMP " , /* opcodes 38 -> 3f */ + "CMP " , + "CMP " , + "CMP " , + "CMP AL," , + "CMP AX," , + "DS: " , + "AAS " , + + "INC AX" , /* opcodes 40 -> 47 */ + "INC CX" , + "INC DX" , + "INC BX" , + "INC SP" , + "INC BP" , + "INC SI" , + "INC DI" , + + "DEC AX" , /* opcodes 48 -> 4f */ + "DEC CX" , + "DEC DX" , + "DEC BX" , + "DEC SP" , + "DEC BP" , + "DEC SI" , + "DEC DI" , + + "PUSH AX" , /* opcodes 50 -> 57 */ + "PUSH CX" , + "PUSH DX" , + "PUSH BX" , + "PUSH SP" , + "PUSH BP" , + "PUSH SI" , + "PUSH DI" , + + "POP AX" , /* opcodes 58 -> 5f */ + "POP CX" , + "POP DX" , + "POP BX" , + "POP SP" , + "POP BP" , + "POP SI" , + "POP DI" , + + "PUSHA " , /* opcodes 60 -> 67 */ + "POPA " , + "BOUND " , + "ARPL " , + "?? " , + "?? " , + "?? " , + "?? " , + + "PUSH " , /* opcodes 68 -> 6f */ + "IMUL " , + "PUSH " , + "IMUL " , + "INSB " , + "INSW " , + "OUTSB " , + "OUTSW " , + + "JO " , /* opcodes 70 -> 77 */ + "JNO " , + "JB " , + "JNB " , + "JE " , + "JNE " , + "JBE " , + "JNBE " , + + "JS " , /* opcodes 78 -> 7f */ + "JNS " , + "JP " , + "JNP " , + "JL " , + "JNL " , + "JLE " , + "JG " , + + "" , /* opcodes 80 -> 87 */ + "" , + "" , + "" , + "TEST " , + "TEST " , + "XCHG " , + "XCHG " , + + "MOV " , /* opcodes 88 -> 8f */ + "MOV " , + "MOV " , + "MOV " , + "MOV " , + "LEA " , + "MOV " , + "POP " , + + + "NOP ", /* opcodes 90 -> 97 */ + "XCHG AX,CX", + "XCHG AX,DX", + "XCHG AX,BX", + "XCHG AX,SP", + "XCHG AX,BP", + "XCHG AX,SI", + "XCHG AX,DI", + + "CBW " , /* opcodes 98 -> 9f */ + "CWD " , + "CALLF " , + "WAIT " , + "PUSHF " , + "POPF " , + "SAHF " , + "LAHF " , + + "MOV " , /* opcodes a0 -> a7 */ + "MOV " , + "MOV " , + "MOV " , + "MOVSB " , + "MOVSW " , + "CMPSB " , + "CMPSW " , + + "TEST AL," , /* opcodes a8 -> af */ + "TEST AX," , + "STOSB " , + "STOSW " , + "LODSB " , + "LODSW " , + "SCASB " , + "SCASW " , + + "MOV AL," , /* opcodes b0 -> b7 */ + "MOV CL," , + "MOV DL," , + "MOV BL," , + "MOV AH," , + "MOV CH," , + "MOV DH," , + "MOV BH," , + + "MOV AX," , /* opcodes b8 -> bf */ + "MOV CX," , + "MOV DX," , + "MOV BX," , + "MOV SP," , + "MOV BP," , + "MOV SI," , + "MOV DI," , + + "" , /* opcodes c0 -> c7 */ + "" , + "RET " , + "RET " , + "LES " , + "LDS " , + "MOV " , + "MOV " , + + "ENTER " , /* opcodes c8 -> cf */ + "LEAVE " , + "RETF " , + "RETF " , + "INT 3" , + "INT " , + "INTO " , + "IRET " , + + "" , /* opcodes d0 -> d7 */ + "" , + "" , + "" , + "AAM " , + "AAD " , + "BOP " , + "XLAT " , + + "" , /* opcodes d8 -> df */ + "" , + "" , + "" , + "" , + "" , + "" , + "" , + + "LOOPNZ" , /* opcodes e0 -> e7 */ + "LOOPE " , + "LOOP " , + "JCXZ " , + "INB " , + "INW " , + "OUTB ", + "OUTW ", + + "CALL " , /* opcodes e8 -> ef */ + "JMP " , + "JMPF " , + "JMP " , + "INB ", + "INW ", + "OUTB ", + "OUTW ", + + "LOCK " , /* opcodes f0 - f7 */ + "?? " , + "REPNE: " , + "REPE: " , + "HLT " , + "CMC " , + "" , + "" , + + "CLC " , /* opcodes f8 - ff */ + "STC " , + "CLI " , + "STI " , + "CLD " , + "STD " , + "" , + "" , +}; + +static int SEGMENT; + +#ifdef NTVDM +OPCODE_FRAME *opcode_ptr; +#else +IMPORT OPCODE_FRAME *opcode_ptr; +#endif + +static int offset_reg; /* ditto */ +static int REPEAT = OFF; + +static cpu_addr ea; + /* Various temp variables needed */ +static DASMBYTE temp_comp_b; /* ... */ +static MODR_M temp; /* ... */ +static reg temp_reg,temp_seg,temp_count,temp_two,temp_comp, temp_reg1; +static OPCODE_FRAME *temp_frame; /* ... */ +static io_addr temp_addr; /* ... */ +static half_word temp_bit; /* ... */ +static half_word temp_cbit; /* ... */ +static int i; /* ... */ +static int inst_size; /* ... */ +static DASMBYTE temp_byte,temp_btwo; /* for instruction processing */ +static char *output_stream; +static word segreg, segoff; +static int nInstr; + +LOCAL void show_word IPT1(sys_addr,address); +LOCAL void show_byte IPT1(sys_addr,address); +LOCAL void form_ds_addr IPT2(word,ea,sys_addr *,phys); +LOCAL void place_byte IPT2(int, posn, half_word, value); +LOCAL void get_char_w IPT1(int, nr_words); +LOCAL void get_char_b IPT0(); + +LOCAL word unassemble IPT0(); + +GLOBAL word dasm IFN5( +char *, i_output_stream, +word, i_atomicsegover, /* REDUNDANT */ +word, i_segreg, /* Segment register value for start of disassemble */ +word, i_segoff, /* Offset register value for start of disassemble */ +int, i_nInstr) /* # of instructions to be disassembled */ +{ +UNUSED(i_atomicsegover); +output_stream = i_output_stream; +segreg = i_segreg; +segoff = i_segoff; +nInstr = i_nInstr; + +return unassemble(); + +} + +/* Single Byte defines opcode */ +static void SBYTE() +{ + sbyte + print_return +} + +/* Single Byte stack opcodes */ +static void STK_PUSH() +{ + sys_addr mem_addr; + word new_top; + + sbyte + new_top = getSP() - 2; + mem_addr = effective_addr(getSS(), new_top); + temp_char[0] = '\0'; + show_word(mem_addr); + strcat(out_line,temp_char); + print_return +} + +static void STK_POP() +{ + sys_addr mem_addr; + + sbyte + mem_addr = effective_addr(getSS(), getSP()); + temp_char[0] = '\0'; + show_word(mem_addr); + strcat(out_line,temp_char); + print_return +} + +static void JA() /* Jump on Above + Jump on Not Below or Equal */ +{ + jmp_dest + if ( getCF() == 0 && getZF() == 0 ) + strcat(out_line, JUMP); + else + strcat(out_line, NOJUMP); + print_return +} + +static void JAE() /* Jump on Above or Equal + Jump on Not Below + Jump on Not Carry */ +{ + jmp_dest + if ( getCF() == 0 ) + strcat(out_line, JUMP); + else + strcat(out_line, NOJUMP); + print_return +} + +static void JB() /* Jump on Below + Jump on Not Above or Equal + Jump on Carry */ +{ + jmp_dest + if ( getCF() == 1 ) + strcat(out_line, JUMP); + else + strcat(out_line, NOJUMP); + print_return +} + +static void JBE() /* Jump on Below or Equal + Jump on Not Above */ +{ + jmp_dest + if ( getCF() == 1 || getZF() == 1 ) + strcat(out_line, JUMP); + else + strcat(out_line, NOJUMP); + print_return +} + +static void JCXZ() /* Jump if CX register Zero */ +{ + jmp_dest + if ( getCX() == 0 ) + strcat(out_line, JUMP); + else + strcat(out_line, NOJUMP); + print_return +} + +static void JG() /* Jump on Greater + Jump on Not Less nor Equal */ +{ + jmp_dest + if ( (getSF() == getOF()) && + getZF() == 0 ) + strcat(out_line, JUMP); + else + strcat(out_line, NOJUMP); + print_return +} + +static void JGE() /* Jump on Greater or Equal + Jump on Not Less */ +{ + jmp_dest + if ( getSF() == getOF() ) + strcat(out_line, JUMP); + else + strcat(out_line, NOJUMP); + print_return +} + +static void JL() /* Jump on Less + Jump on Not Greater or Equal */ +{ + jmp_dest + if ( getSF() != getOF() ) + strcat(out_line, JUMP); + else + strcat(out_line, NOJUMP); + print_return +} + +static void JLE() /* Jump on Less or Equal + Jump on Not Greater */ +{ + jmp_dest + if ( getSF() != getOF() || + getZF() == 1 ) + strcat(out_line, JUMP); + else + strcat(out_line, NOJUMP); + print_return +} + +static void JNE() /* Jump on Not Equal + Jump on Not Zero */ +{ + jmp_dest + if ( getZF() == 0 ) + strcat(out_line, JUMP); + else + strcat(out_line, NOJUMP); + print_return +} + +static void JNO() /* Jump on Not Overflow */ +{ + jmp_dest + if ( getOF() == 0 ) + strcat(out_line, JUMP); + else + strcat(out_line, NOJUMP); + print_return +} + +static void JNS() /* Jump on Not Sign */ +{ + jmp_dest + if ( getSF() == 0 ) + strcat(out_line, JUMP); + else + strcat(out_line, NOJUMP); + print_return +} + +static void JNP() /* Jump on Nor Parity + Jump on Parity Odd */ +{ + jmp_dest + if ( getPF() == 0 ) + strcat(out_line, JUMP); + else + strcat(out_line, NOJUMP); + print_return +} + +static void JO() /* Jump on Overflow + Jump on Not Below oe Equal */ +{ + jmp_dest + if ( getOF() == 1 ) + strcat(out_line, JUMP); + else + strcat(out_line, NOJUMP); + print_return +} + +static void JP() /* Jump on Parity + Jump on Parity Equal */ +{ + jmp_dest + if ( getPF() == 1 ) + strcat(out_line, JUMP); + else + strcat(out_line, NOJUMP); + print_return +} + +static void JS() /* Jump on Sign */ +{ + jmp_dest + if ( getSF() == 1 ) + strcat(out_line, JUMP); + else + strcat(out_line, NOJUMP); + print_return +} + +/* + * JE Jump on Equal + Jump on Zero + */ +static void JE() +{ + jmp_dest + if(getZF()) + strcat(out_line, JUMP); + else + strcat(out_line, NOJUMP); + print_return +} +/* + * JMP "direct short" operation " + */ +static void JMPDS() +{ + jmp_dest + print_return +} +static void LOOP() /* Loop */ +{ + jmp_dest + temp_reg.X = getCX(); + if ( --temp_reg.X != 0 ) + strcat(out_line, " ; Loop"); + else + strcat(out_line, NOLOOP); + print_return +} + +static void LOOPE() /* Loop while Equal + Loop while Zero */ +{ + jmp_dest + temp_reg.X = getCX(); + if ( --temp_reg.X != 0 && getZF() == 1 ) + strcat(out_line, " ; Loop"); + else + strcat(out_line, NOLOOP); + print_return +} + +static void LOOPNZ() /* Loop while Not Zero + Loop while Not Equal */ +{ + jmp_dest + temp_reg.X = getCX(); + if ( --temp_reg.X != 0 && getZF() == 0 ) + strcat(out_line, " ; Loop"); + else + strcat(out_line, NOLOOP); + print_return +} + +static void CODEF7() /* DIV,IDIV,IMUL,MUL,NEG,NOT,TEST - WORD */ +{ + place_op + place_2 + temp.X = op->SECOND_BYTE; + strcat(out_line, CODE_F7[temp.field.xxx]); + segoff = segoff + LEN_F7[temp.field.xxx]; + switch ( temp.field.xxx ) { + case 0: /* TEST - Immed. op. with mem. or reg. op. */ + case 1: /* TEST - Immed. op. with mem. or reg. op. */ + get_char_w(1); + load_34 + place_34 + print_addr_c + sprintf(temp_char,"%04x",temp_reg.X); + strcat(out_line,temp_char); + break; + case 2: /* NOT */ + case 3: /* NEG */ + case 4: /* MUL */ + case 5: /* IMUL */ + case 6: /* DIV */ + case 7: /* IDIV */ + get_char_w(1); + strcat(out_line,temp_char); + break; + default: + break; + } + print_return +} + +static void CODE81() /* ADC,ADD,AND,CMP,OR,SBB,SUB,XOR - WORD */ +{ + segoff = segoff + LEN_ASM[op->OPCODE]; + temp.X = op->SECOND_BYTE; + place_op + place_2 + strcat(out_line, CODE_80[temp.field.xxx]); + get_char_w(1); + load_34 + place_34 + print_addr_c + sprintf(temp_char,"%04x",temp_reg.X); + strcat(out_line,temp_char); + print_return + +} + + +static void CODE83() /* ADC,ADD,AND,CMP,OR,SBB,SUB,XOR - Byte with sign extension */ +{ + segoff = segoff + LEN_ASM[op->OPCODE]; + temp.X = op->SECOND_BYTE; + place_op + place_2 + strcat(out_line, CODE_83[temp.field.xxx]); + get_char_w(1); + load_3 + place_3 + print_addr_c + print_byte_v + print_return +} + +static void MOV2W() /* MOV - Immed. op. to mem. or reg. op. */ +{ + sbyte + place_2 + get_char_w(1); + load_34 + place_34 + print_addr_c + sprintf(temp_char,"%04x",temp_reg.X); + strcat(out_line,temp_char); + print_return +} + +static void CODEF6() /* DIV,IDIV,IMUL,MUL,NEG,NOT,TEST - BYTE */ +{ + place_op + place_2 + temp.X = op->SECOND_BYTE; + strcat(out_line, CODE_F7[temp.field.xxx]); + segoff = segoff + LEN_F6[temp.field.xxx]; + switch ( temp.field.xxx ) { /* select function */ + case 0: /* TEST - Immed. op. with mem. or reg. op. */ + case 1: /* TEST - Immed. op. with mem. or reg. op. */ + get_char_b(); + load_3 + place_3 + print_addr_c + print_byte_v + break; + case 2: /* NOT */ + case 3: /* NEG */ + case 4: /* MUL */ + case 5: /* IMUL */ + case 6: /* DIV */ + case 7: /* IDIV */ + get_char_b(); + strcat(out_line,temp_char); + break; + default: + break; + } + print_return +} + +/* two byte opcode of form reg,r/m */ +static void B_REG_EA() +{ + sbyte + place_2 + temp.X = op->SECOND_BYTE; + sprintf(temp_char, "%s,",reg8name[temp.field.xxx]); + strcat(out_line,temp_char); + get_char_b(); + strcat(out_line,temp_char); + print_return +} + +/* two byte opcode of form r/m,reg */ +static void B_EA_REG() +{ + sbyte + place_2 + temp.X = op->SECOND_BYTE; + get_char_b(); + strcat(out_line,temp_char); + sprintf(temp_char,",%s",reg8name[temp.field.xxx]); + strcat(out_line,temp_char); + print_return +} + +/* two byte opcode of form reg,r/m */ +static void W_REG_EA() +{ + sbyte + place_2 + temp.X = op->SECOND_BYTE; + sprintf(temp_char, "%s,",reg16name[temp.field.xxx]); + strcat(out_line,temp_char); + get_char_w(1); + strcat(out_line,temp_char); + print_return +} + +/* two byte opcode of form r/m,reg */ +static void W_EA_REG() +{ + sbyte + place_2 + temp.X = op->SECOND_BYTE; + get_char_w(1); + strcat(out_line,temp_char); + sprintf(temp_char, ",%s", reg16name[temp.field.xxx]); + strcat(out_line,temp_char); + print_return +} + +static void CODE80() /* ADC,ADD,AND,CMP,OR,SBB,SUB,XOR - BYTE */ +{ + segoff = segoff + LEN_ASM[op->OPCODE]; + temp.X = op->SECOND_BYTE; + place_op + place_2 + strcat(out_line, CODE_80[temp.field.xxx]); + get_char_b(); + load_3 + place_3 + print_addr_c + print_byte_v + print_return + +} + +static void MOV2B() /* MOV - Immed. op. to mem. or reg. op. */ +{ + sbyte + place_2 + get_char_b(); + load_3 + place_3 + print_addr_c + print_byte_v + print_return +} + +static void EA_DBL() +{ + temp.X = op->SECOND_BYTE; + +/* + * Deal with the special BOP case: C4 C4. + */ + + if ((op->OPCODE == 0xc4) && (op->SECOND_BYTE == 0xc4)) + { + place_op + place_23 + strcat(out_line, "BOP "); + load_3 + print_byte_v + segoff += 3; + } + else + { + sbyte + place_2 + if (temp.field.mod == 3) + /* Undefined operation */ + strcat(out_line,"??"); + else + { + get_char_w(2); + strcat(out_line, reg16name[temp.field.xxx]); + print_c_addr + } + } + print_return +} + +static void LEA() /* Load Effective Address */ +{ + sbyte + place_2 + temp.X = op->SECOND_BYTE; + if ( temp.field.mod == 3 ) + /* Undefined operation */ + strcat(out_line,"??"); + else + { + /* First act on the mod value in the instruction */ + + strcat(out_line, reg16name[temp.field.xxx]); + strcat(out_line,","); + + switch ( temp.field.mod ) { + case 0: + if ( temp.field.r_m == 6 ) + { /* Direct addr */ + temp_reg.byte.low = op->THIRD_BYTE; + temp_reg.byte.high = op->FOURTH_BYTE; + place_34 + sprintf(temp_char,"%04x",temp_reg.X); + strcat(out_line, temp_char); + sas_inc_buf(op,2); + disp_length = 2; + goto LAB1; + } + else + { + temp_two.X = 0; + sprintf(temp_char, "%s",address[temp.field.r_m]); + } + break; + + case 1: + /* one byte displacement in inst. */ + temp_two.X = (char) op->THIRD_BYTE; + place_3 + sas_inc_buf(op,1); + disp_length = 1; + if ( temp_two.X == 0 ) + sprintf(temp_char, "[%s]",address[temp.field.r_m]); + else + { + if ((IS8)temp_two.X < 0) + sprintf(temp_char,"[%s-%04x]",address[temp.field.r_m], 0-(IS8)temp_two.X); + else + sprintf(temp_char,"[%s+%04x]",address[temp.field.r_m], temp_two.X); + } + break; + + case 2: + /* two byte displacement in inst. */ + temp_two.byte.low = op->THIRD_BYTE; + temp_two.byte.high = op->FOURTH_BYTE; + place_34 + sas_inc_buf(op,2); + disp_length = 2; + if ( temp_two.X == 0 ) + sprintf(temp_char, "[%s]",address[temp.field.r_m]); + else + sprintf(temp_char,"[%s+%04x]",address[temp.field.r_m], temp_two.X); + break; + + case 3: + /* Register NOT ALLOWED */ + strcat(out_line,"??"); + break; + } + + /* Now act on the r/m (here called r_m) field */ + + switch ( temp.field.r_m ) { + case 0: /* Based index addr */ + temp_reg.X = getBX() + getSI() + temp_two.X; + break; + case 1: /* Based index addr */ + temp_reg.X = getBX() + getDI() + temp_two.X; + break; + case 2: /* Based index addr */ + temp_reg.X = getBP() + getSI() + temp_two.X; + break; + case 3: /* Based index addr */ + temp_reg.X = getBP() + getDI() + temp_two.X; + break; + case 4: /* Index addr */ + temp_reg.X = getSI() + temp_two.X; + break; + case 5: /* Index addr */ + temp_reg.X = getDI() + temp_two.X; + break; + case 6: /* Base addr */ + temp_reg.X = getBP() + temp_two.X; + break; + case 7: /* Based index addr */ + temp_reg.X = getBX() + temp_two.X; + break; + } + strcat(out_line, temp_char); + sprintf(temp_char," (%04x)",temp_reg.X); + strcat(out_line,temp_char); + + } +LAB1 : + print_return +} + +static void JMPD() /* JMP Intra-segment Direct */ +{ + sbyte + place_23 + load_23 + sprintf(temp_char, "%04x", + (IU16)(segoff + (short)temp_reg.X)); + strcat(out_line,temp_char); + print_return +} + +static void CODEFF() /* CALL,DEC,INC,JMP,PUSH */ +{ + sys_addr mem_addr; + word new_top; + + segoff += LEN_ASM[op->OPCODE]; + place_op + place_2 + temp.X = op->SECOND_BYTE; + strcat(out_line, CODE_FF[temp.field.xxx]); + switch ( temp.field.xxx ) { /* select function */ + case 4: /* JMP intra-segment indirect */ + case 2: /* CALL Intra-segment indirect */ + get_char_w(1); + strcat(out_line,temp_char); + break; + + case 3: /* CALL Inter-segment indirect */ + case 5: /* JMP inter-segment indirect */ + get_char_w(2); + strcat(out_line,temp_char); + break; + + case 0: /* INC */ + case 1: /* DEC */ + get_char_w(1); + strcat(out_line,temp_char); + break; + + case 6: /* PUSH */ + get_char_w(1); + new_top = getSP() - 2; + mem_addr = effective_addr(getSS(), new_top); + show_word(mem_addr); + strcat(out_line,temp_char); + break; + + default: + break; + } + print_return +} + +static void JMP4() /* JMP Inter-segment direct */ +{ + sbyte + load_23 + place_23 + temp_two.X = temp_reg.X; + /* Increment pointer so we can get at segment data */ + sas_inc_buf(op,2); + load_23 + place_23 + sprintf(temp_char, "%04x:%04x",temp_reg.X,temp_two.X); + strcat(out_line,temp_char); + print_return +} + +static void CODEFE() /* DEC,INC */ +{ + segoff = segoff + LEN_ASM[op->OPCODE]; + place_op + place_2 + temp.X = op->SECOND_BYTE; + strcat(out_line, CODE_FE[temp.field.xxx]); + if ( temp.field.xxx == 0 || + temp.field.xxx == 1 ) + { + get_char_b(); + strcat(out_line,temp_char); + } + print_return +} + +static void POP1() /* POP mem. or reg. op. */ +{ + sys_addr mem_addr; + + sbyte + place_2 + temp.X = op->SECOND_BYTE; + if ( temp.field.xxx == 0 ) + { + get_char_w(1); + mem_addr = effective_addr(getSS(), getSP()); + show_word(mem_addr); + strcat(out_line,temp_char); + } + else + strcat(out_line,"??"); + print_return +} + +static void AAM() +{ + sbyte + place_2 + print_return +} + +static void CODED0() /* RCL,RCR,ROL,ROR,SAL,SHL,SAR,SHR - BYTE */ +{ + segoff = segoff + LEN_ASM[op->OPCODE]; + place_op + place_2 + temp.X = op->SECOND_BYTE; + strcat(out_line, CODE_D0[temp.field.xxx]); + get_char_b(); + print_addr_c + strcat(out_line,"1"); + print_return +} + +static void CODED1() /* RCL,RCR,ROL,ROR,SAL,SHL,SAR,SHR - WORD */ +{ + segoff = segoff + LEN_ASM[op->OPCODE]; + place_op + place_2 + temp.X = op->SECOND_BYTE; + strcat(out_line, CODE_D0[temp.field.xxx]); + get_char_w(1); + print_addr_c + strcat(out_line,"1"); + print_return +} + +static void CODEC0() /* RCL,RCR,ROL,ROR,SAL,SHL,SAR,SHR by ib times - BYTE */ +{ + segoff = segoff + LEN_ASM[op->OPCODE]; + place_op + place_2 + temp.X = op->SECOND_BYTE; + strcat(out_line, CODE_D0[temp.field.xxx]); + get_char_b(); + print_addr_c + load_3 + place_3 + print_byte_v + print_return +} + +static void CODEC1() /* RCL,RCR,ROL,ROR,SAL,SHL,SAR,SHR by ib times - WORD */ +{ + segoff = segoff + LEN_ASM[op->OPCODE]; + place_op + place_2 + temp.X = op->SECOND_BYTE; + strcat(out_line, CODE_D0[temp.field.xxx]); + get_char_w(1); + print_addr_c + load_3 + place_3 + print_byte_v + print_return +} + +static void CODED2() /* RCL,RCR,ROL,ROR,SAL,SHL,SAR,SHR by CL times - BYTE */ +{ + segoff = segoff + LEN_ASM[op->OPCODE]; + place_op + place_2 + temp.X = op->SECOND_BYTE; + strcat(out_line, CODE_D0[temp.field.xxx]); + get_char_b(); + print_addr_c + strcat(out_line,"CL"); + print_return +} + +static void CODED3() /* RCL,RCR,ROL,ROR,SAL,SHL,SAR,SHR by CL times - WORD */ +{ + segoff = segoff + LEN_ASM[op->OPCODE]; + place_op + place_2 + temp.X = op->SECOND_BYTE; + strcat(out_line, CODE_D0[temp.field.xxx]); + get_char_w(1); + print_addr_c + strcat(out_line,"CL"); + print_return +} + +/* Dasm is so enormous, we have to split it into two segs on Mac. */ +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "DASM2.seg" +#endif + +static void XCHGW() /* XCHG - WORD */ +{ + sbyte + place_2 + temp.X = op->SECOND_BYTE; + get_char_w(1); + strcat(out_line, reg16name[temp.field.xxx]); + print_c_addr + print_return +} + +static void XCHGB() /* XCHG - BYTE */ +{ + sbyte + place_2 + temp.X = op->SECOND_BYTE; + get_char_b(); + strcat(out_line, reg8name[temp.field.xxx]); + print_c_addr + print_return +} + +static void STRING() +{ + sbyte + start_repeat + print_return +} + +/* Stack based single byte and immediate byte */ +static void STK_IB() +{ + sys_addr mem_addr; + word new_top; + + sbyte + place_2 + temp_byte.X = op->SECOND_BYTE; + print_byte_v + new_top = getSP() - 2; + mem_addr = effective_addr(getSS(), new_top); + temp_char[0] = '\0'; + show_word(mem_addr); + strcat(out_line,temp_char); + print_return +} + +/* single byte and immediate byte */ +static void SB_IB() +{ + sbyte + place_2 + temp_byte.X = op->SECOND_BYTE; + print_byte_v + print_return +} + +/* single byte and immediate word */ +static void SB_IW() +{ + sbyte + load_23 + place_23 + sprintf(temp_char,"%04x",temp_reg.X); + strcat(out_line,temp_char); + print_return +} + +/* Stack based single byte and immediate word */ +static void STK_IW() +{ + sys_addr mem_addr; + word new_top; + + sbyte + load_23 + place_23 + sprintf(temp_char,"%04x",temp_reg.X); + new_top = getSP() - 2; + mem_addr = effective_addr(getSS(), new_top); + show_word(mem_addr); + strcat(out_line,temp_char); + print_return +} + +/* single byte and immediate word and immediate byte */ +static void SB_IW_IB() +{ + sbyte + load_23 + place_23 + sprintf(temp_char,"%04x,",temp_reg.X); + strcat(out_line,temp_char); + place_4 + temp_byte.X = op->FOURTH_BYTE; + print_byte_v + print_return +} + +static void MOV4W() /* MOV - Mem op to accumulator - WORD */ +{ + sys_addr mem_addr; + + sbyte + place_23 + load_23 + strcat(out_line,"AX,"); + sprintf(temp_char,"[%04x]",temp_reg.X); + form_ds_addr(temp_reg.X, &mem_addr); + show_word(mem_addr); + strcat(out_line,temp_char); + print_return +} + +static void MOV4B() /* MOV - Mem op to accumulator - BYTE */ +{ + sys_addr mem_addr; + + sbyte + place_23 + load_23 + strcat(out_line,"AL,"); + sprintf(temp_char,"[%04x]",temp_reg.X); + form_ds_addr(temp_reg.X, &mem_addr); + show_byte(mem_addr); + strcat(out_line,temp_char); + print_return +} + +static void MOV5W() /* MOV - accumulator to mem op - WORD */ +{ + sys_addr mem_addr; + + sbyte + place_23 + load_23 + sprintf(temp_char,"[%04x]",temp_reg.X); + form_ds_addr(temp_reg.X, &mem_addr); + show_word(mem_addr); + strcat(out_line,temp_char); + strcat(out_line,",AX"); + print_return +} + +static void MOV5B() /* MOV - accumulator to mem op - BYTE */ +{ + sys_addr mem_addr; + + sbyte + place_23 + load_23 + sprintf(temp_char,"[%04x]",temp_reg.X); + form_ds_addr(temp_reg.X, &mem_addr); + show_byte(mem_addr); + strcat(out_line,temp_char); + strcat(out_line,",AL"); + print_return +} + +static void MOV6() /* MOV - mem or reg op to Segment register */ +{ + sbyte + place_2 + temp.X = op->SECOND_BYTE; + if ( temp.field.xxx == 1 ) + /* Undefined operation */ + strcat(out_line,"??"); + else + { + get_char_w(1); + strcat(out_line, segregname[temp.field.xxx]); + print_c_addr + } + print_return +} + +static void MOV7() /* MOV - Seg reg to mem or reg op */ +{ + sbyte + place_2 + temp.X = op->SECOND_BYTE; + get_char_w(1); + print_addr_c + strcat(out_line, segregname[temp.field.xxx]); + print_return +} + +/* reg = ea immed */ +static void OP_3B() +{ + sbyte + place_2 + temp.X = op->SECOND_BYTE; + sprintf(temp_char,"%s,",reg16name[temp.field.xxx]); + strcat(out_line, temp_char); + get_char_w(1); + load_3 + place_3 + print_addr_c + print_byte_v + print_return +} + +/* reg = ea immed */ +static void OP_3W() +{ + sbyte + place_2 + temp.X = op->SECOND_BYTE; + sprintf(temp_char,"%s,",reg16name[temp.field.xxx]); + strcat(out_line, temp_char); + get_char_w(1); + load_34 + place_34 + print_addr_c + sprintf(temp_char,"%04x",temp_reg.X); + strcat(out_line,temp_char); + print_return +} + +/* Data for 0F opcodes */ + +#define NR_PREFIX_OPCODES 18 + +#define I_LAR 0 +#define I_LSL 1 +#define I_CLTS 2 +#define I_LGDT 3 +#define I_LIDT 4 +#define I_SGDT 5 +#define I_SIDT 6 +#define I_SMSW 7 +#define I_LMSW 8 +#define I_LLDT 9 +#define I_LTR 10 +#define I_SLDT 11 +#define I_STR 12 +#define I_VERR 13 +#define I_VERW 14 +#define I_BAD2 15 +#define I_BAD3 16 +#define I_LOADALL 17 + +#define PREFIX_NOOPERAND 0 +#define PREFIX_RW_EW 1 +#define PREFIX_SIXBYTE 2 +#define PREFIX_EW 3 +#define PREFIX_NOOP3 4 + +static char *PREFIX_ASM[NR_PREFIX_OPCODES] = + { + "LAR ", "LSL ", "CLTS ", "LGDT ", "LIDT ", "SGDT ", + "SIDT ", "SMSW ", "LMSW ", "LLDT ", "LTR ", "SLDT ", + "STR ", "VERR ", "VERW ", "?? ", "?? ", "LOADALL" + }; + +static int PREFIX_LEN[NR_PREFIX_OPCODES] = + { + 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 2 + }; + +static int PREFIX_OPERAND[NR_PREFIX_OPCODES] = + { + PREFIX_RW_EW, PREFIX_RW_EW, + PREFIX_NOOPERAND, + PREFIX_SIXBYTE, PREFIX_SIXBYTE, PREFIX_SIXBYTE, PREFIX_SIXBYTE, + PREFIX_EW, PREFIX_EW, PREFIX_EW, PREFIX_EW, + PREFIX_EW, PREFIX_EW, PREFIX_EW, PREFIX_EW, + PREFIX_NOOPERAND, + PREFIX_NOOP3, + PREFIX_NOOPERAND, + }; + +/* process 0F opcodes */ +static void PREFIX() +{ + int inst; + + /* decode opcode */ + load_2 + switch ( temp_byte.X ) + { + case 0: + temp.X = op->THIRD_BYTE; + switch ( temp.field.xxx ) + { + case 0: inst = I_SLDT; break; + case 1: inst = I_STR; break; + case 2: inst = I_LLDT; break; + case 3: inst = I_LTR; break; + case 4: inst = I_VERR; break; + case 5: inst = I_VERW; break; + case 6: inst = I_BAD3; break; + case 7: inst = I_BAD3; break; + } + break; + + case 1: + temp.X = op->THIRD_BYTE; + switch ( temp.field.xxx ) + { + case 0: inst = I_SGDT; break; + case 1: inst = I_SIDT; break; + case 2: inst = I_LGDT; break; + case 3: inst = I_LIDT; break; + case 4: inst = I_SMSW; break; + case 5: inst = I_BAD3; break; + case 6: inst = I_LMSW; break; + case 7: inst = I_BAD3; break; + } + break; + + case 2: inst = I_LAR; break; + case 3: inst = I_LSL; break; + case 5: inst = I_LOADALL; break; + case 6: inst = I_CLTS; break; + default: inst = I_BAD2; break; + } + + /* process opcode */ + place_op + place_2 + strcat(out_line, PREFIX_ASM[inst]); + segoff = segoff + PREFIX_LEN[inst]; + + switch ( PREFIX_OPERAND[inst] ) + { + case PREFIX_NOOP3: + load_3 + place_3 + break; + + case PREFIX_NOOPERAND: + break; + + case PREFIX_RW_EW: + load_3 + place_3 + temp.X = temp_byte.X; + sprintf(temp_char, "%s,", reg16name[temp.field.xxx]); + strcat(out_line, temp_char); + sas_inc_buf(op,1); + get_char_w(1); + strcat(out_line, temp_char); + break; + + case PREFIX_EW: + load_3 + place_3 + sas_inc_buf(op,1); + get_char_w(1); + strcat(out_line, temp_char); + break; + + case PREFIX_SIXBYTE: + load_3 + place_3 + if ( temp.field.mod == 3 ) + strcat(out_line, "??"); + else + { + sas_inc_buf(op,1); + get_char_w(3); + strcat(out_line, temp_char); + } + break; + + } + + print_return +} + +/* Data for Floating Point opcodes */ + +#define FP_OP_ST_STn 0 +#define FP_OP_STn 1 +#define FP_OP_STn_ST 2 +#define FP_OP_SHORT_REAL 3 +#define FP_OP_LONG_REAL 4 +#define FP_OP_TEMP_REAL 5 +#define FP_OP_WORD_INT 6 +#define FP_OP_SHORT_INT 7 +#define FP_OP_LONG_INT 8 +#define FP_OP_PACKED_DECIMAL 9 +#define FP_OP_WORD 10 +#define FP_OP_14BYTES 11 +#define FP_OP_94BYTES 12 +#define FP_OP_NONE_ADDR 13 +#define FP_OP_NONE 14 + +/* keep these values in ascending order! */ +#define FP_ODD_D9_2 15 +#define FP_ODD_D9_4 16 +#define FP_ODD_D9_5 17 +#define FP_ODD_D9_6 18 +#define FP_ODD_D9_7 19 +#define FP_ODD_DB_4 20 +#define FP_ODD_DE_3 21 +#define FP_ODD_DF_4 22 + +/* Floating Point names for memory addressing opcodes */ +static char *ASM_D8M[] = /* DC = D8 */ + { + "FADD ", "FMUL ", "FCOM ", "FCOMP ", + "FSUB ", "FSUBR ", "FDIV ", "FDIVR " + }; + +static char *ASM_D9M[] = + { + "FLD ", "?? ", "FST ", "FSTP ", + "FLDENV ", "FLDCW ", "FSTENV ", "FSTCW " + }; + +static char *ASM_DAM[] = /* DE = DA */ + { + "FIADD ", "FIMUL ", "FICOM ", "FICOMP ", + "FISUB ", "FISUBR ", "FIDIV ", "FIDIVR " + }; + +static char *ASM_DBM[] = + { + "FILD ", "?? ", "FIST ", "FISTP ", + "?? ", "FLD ", "?? ", "FSTP " + }; + +static char *ASM_DDM[] = + { + "FLD ", "?? ", "FST ", "FSTP ", + "FRSTOR ", "?? ", "FSAVE ", "FSTSW " + }; + +static char *ASM_DFM[] = /* DC = D8 */ + { + "FILD ", "?? ", "FIST ", "FISTP ", + "FBLD ", "FILD ", "FBSTP ", "FISTP " + }; + +/* Floating Point operand types for memory addressing opcodes */ +static int OP_D8M[] = + { + FP_OP_SHORT_REAL, FP_OP_SHORT_REAL, FP_OP_SHORT_REAL, FP_OP_SHORT_REAL, + FP_OP_SHORT_REAL, FP_OP_SHORT_REAL, FP_OP_SHORT_REAL, FP_OP_SHORT_REAL + }; + +static int OP_D9M[] = + { + FP_OP_SHORT_REAL, FP_OP_NONE_ADDR, FP_OP_SHORT_REAL, FP_OP_SHORT_REAL, + FP_OP_14BYTES, FP_OP_WORD, FP_OP_14BYTES, FP_OP_WORD + }; + +static int OP_DAM[] = + { + FP_OP_SHORT_INT, FP_OP_SHORT_INT, FP_OP_SHORT_INT, FP_OP_SHORT_INT, + FP_OP_SHORT_INT, FP_OP_SHORT_INT, FP_OP_SHORT_INT, FP_OP_SHORT_INT + }; + +static int OP_DBM[] = + { + FP_OP_SHORT_INT, FP_OP_NONE_ADDR, FP_OP_SHORT_INT, FP_OP_SHORT_INT, + FP_OP_NONE_ADDR, FP_OP_TEMP_REAL, FP_OP_NONE_ADDR, FP_OP_TEMP_REAL + }; + +static int OP_DCM[] = + { + FP_OP_LONG_REAL, FP_OP_LONG_REAL, FP_OP_LONG_REAL, FP_OP_LONG_REAL, + FP_OP_LONG_REAL, FP_OP_LONG_REAL, FP_OP_LONG_REAL, FP_OP_LONG_REAL + }; + +static int OP_DDM[] = + { + FP_OP_LONG_REAL, FP_OP_NONE_ADDR, FP_OP_LONG_REAL, FP_OP_LONG_REAL, + FP_OP_94BYTES, FP_OP_NONE_ADDR, FP_OP_94BYTES, FP_OP_NONE_ADDR + }; + +static int OP_DEM[] = + { + FP_OP_WORD_INT, FP_OP_WORD_INT, FP_OP_WORD_INT, FP_OP_WORD_INT, + FP_OP_WORD_INT, FP_OP_WORD_INT, FP_OP_WORD_INT, FP_OP_WORD_INT + }; + +static int OP_DFM[] = + { + FP_OP_WORD_INT, FP_OP_NONE_ADDR, FP_OP_WORD_INT, FP_OP_WORD_INT, + FP_OP_PACKED_DECIMAL,FP_OP_LONG_INT, FP_OP_PACKED_DECIMAL,FP_OP_LONG_INT + }; + +/* Floating Point names for register addressing opcodes */ +/* D8R = D8M */ +static char *ASM_D9R[] = + { + "FLD ", "FXCH ", "", "FSTP ", + "", "", "", "" + }; + +static char *ASM_DAR[] = + { + "?? ", "?? ", "?? ", "?? ", + "?? ", "?? ", "?? ", "?? " + }; + +static char *ASM_DBR[] = + { + "?? ", "?? ", "?? ", "?? ", + "", "?? ", "?? ", "?? " + }; + +static char *ASM_DCR[] = + { + "FADD ", "FMUL ", "FCOM ", "FCOMP ", + "FSUBR ", "FSUB ", "FDIVR ", "FDIV " + }; + +static char *ASM_DDR[] = + { + "FFREE ", "FXCH ", "FST ", "FSTP ", + "?? ", "?? ", "?? ", "?? " + }; + +static char *ASM_DER[] = + { + "FADDP ", "FMULP ", "FCOMP ", "", + "FSUBRP ", "FSUBP ", "FDIVRP ", "FDIVP " + }; + +static char *ASM_DFR[] = + { + "FFREEP ", "FXCH ", "FSTP ", "FSTP ", + "", "?? ", "?? ", "?? " + }; + +static char *ASM_ODD[] = + { + /* D9_2 */ + "FNOP ", "?? ", "?? ", "?? ", + "?? ", "?? ", "?? ", "?? ", + /* D9_4 */ + "FCHS ", "FABS ", "?? ", "?? ", + "FTST ", "FXAM ", "?? ", "?? ", + /* D9_5 */ + "FLD1 ", "FLDL2T", "FLDL2E", "FLDPI ", + "FLDLG2", "FLDLN2", "FLDZ ", "?? ", + /* D9_6 */ + "F2XM1 ", "FYL2X ", "FPTAN ", "FPATAN", + "FXTRACT", "?? ", "FDECSTP", "FINCSTP", + /* D9_7 */ + "FPREM ", "FYL2XP1", "FSQRT ", "?? ", + "FRNDINT", "FSCALE", "?? ", "?? ", + /* DB_4 */ + "?? ", "?? ", "FCLEX ", "FINIT ", + "FSETPM", "?? ", "?? ", "?? ", + /* DE_3 */ + "?? ", "FCOMPP", "?? ", "?? ", + "?? ", "?? ", "?? ", "?? ", + /* DF_4 */ + "FSTSW AX", "?? ", "?? ", "?? ", + "?? ", "?? ", "?? ", "?? " + }; + +/* Floating Point operand types for register addressing opcodes */ +static int OP_D8R[] = + { + FP_OP_ST_STn, FP_OP_ST_STn, FP_OP_STn, FP_OP_STn, + FP_OP_ST_STn, FP_OP_ST_STn, FP_OP_ST_STn, FP_OP_ST_STn + }; + +static int OP_D9R[] = + { + FP_OP_STn, FP_OP_STn, FP_ODD_D9_2, FP_OP_STn, + FP_ODD_D9_4, FP_ODD_D9_5, FP_ODD_D9_6, FP_ODD_D9_7, + }; + +static int OP_DAR[] = + { + FP_OP_NONE, FP_OP_NONE, FP_OP_NONE, FP_OP_NONE, + FP_OP_NONE, FP_OP_NONE, FP_OP_NONE, FP_OP_NONE + }; + +static int OP_DBR[] = + { + FP_OP_NONE, FP_OP_NONE, FP_OP_NONE, FP_OP_NONE, + FP_ODD_DB_4, FP_OP_NONE, FP_OP_NONE, FP_OP_NONE + }; + +static int OP_DCR[] = + { + FP_OP_STn_ST, FP_OP_STn_ST, FP_OP_STn, FP_OP_STn, + FP_OP_STn_ST, FP_OP_STn_ST, FP_OP_STn_ST, FP_OP_STn_ST + }; + +static int OP_DDR[] = + { + FP_OP_STn, FP_OP_STn, FP_OP_STn, FP_OP_STn, + FP_OP_NONE, FP_OP_NONE, FP_OP_NONE, FP_OP_NONE + }; + +static int OP_DER[] = + { + FP_OP_STn_ST, FP_OP_STn_ST, FP_OP_STn, FP_ODD_DE_3, + FP_OP_STn_ST, FP_OP_STn_ST, FP_OP_STn_ST, FP_OP_STn_ST + }; + +static int OP_DFR[] = + { + FP_OP_STn, FP_OP_STn, FP_OP_STn, FP_OP_STn, + FP_ODD_DF_4, FP_OP_NONE, FP_OP_NONE, FP_OP_NONE + }; + +/* Process Floating Point opcodes */ +#ifdef ANSI +static void do_fp(char *mem_names[], int mem_ops[], char *reg_names[], int reg_ops[]) +#else +static void do_fp(mem_names, mem_ops, reg_names, reg_ops) +char *mem_names[]; +int mem_ops[]; +char *reg_names[]; +int reg_ops[]; +#endif + { + char *fp_name; + int fp_op; + + /* decode opcode */ + temp.X = op->SECOND_BYTE; + if ( temp.field.mod == 3 ) + { + fp_name = reg_names[temp.field.xxx]; + fp_op = reg_ops[temp.field.xxx]; + /* beware irregular register addressing */ + if ( fp_op >= FP_ODD_D9_2 ) + { + fp_op = ( fp_op - FP_ODD_D9_2 ) * 8; + fp_name = ASM_ODD[fp_op + temp.field.r_m]; + fp_op = FP_OP_NONE; + } + } + else + { + fp_name = mem_names[temp.field.xxx]; + fp_op = mem_ops[temp.field.xxx]; + } + + /* process opcode */ + place_op + place_2 + strcat(out_line, fp_name); + segoff += 2; + + switch ( fp_op ) + { + case FP_OP_NONE: + break; + + case FP_OP_SHORT_REAL: + get_char_w(0); + strcat(out_line, temp_char); + strcat(out_line, " (SR)"); + break; + + case FP_OP_LONG_REAL: + get_char_w(0); + strcat(out_line, temp_char); + strcat(out_line, " (LR)"); + break; + + case FP_OP_TEMP_REAL: + get_char_w(0); + strcat(out_line, temp_char); + strcat(out_line, " (TR)"); + break; + + case FP_OP_WORD_INT: + get_char_w(0); + strcat(out_line, temp_char); + strcat(out_line, " (WI)"); + break; + + case FP_OP_SHORT_INT: + get_char_w(0); + strcat(out_line, temp_char); + strcat(out_line, " (SI)"); + break; + + case FP_OP_LONG_INT: + get_char_w(0); + strcat(out_line, temp_char); + strcat(out_line, " (LI)"); + break; + + case FP_OP_PACKED_DECIMAL: + get_char_w(0); + strcat(out_line, temp_char); + strcat(out_line, " (PD)"); + break; + + case FP_OP_WORD: + get_char_w(1); + strcat(out_line, temp_char); + break; + + case FP_OP_NONE_ADDR: + case FP_OP_14BYTES: + case FP_OP_94BYTES: + get_char_w(0); + strcat(out_line, temp_char); + break; + + case FP_OP_ST_STn: + strcat(out_line, "ST,"); + /* drop through */ + + case FP_OP_STn: + sprintf(temp_char, "ST(%d)", temp.field.r_m); + strcat(out_line, temp_char); + break; + + case FP_OP_STn_ST: + sprintf(temp_char, "ST(%d)", temp.field.r_m); + strcat(out_line, temp_char); + strcat(out_line, ",ST"); + break; + } + + print_return + } + +static void CODED8() + { + do_fp(ASM_D8M, OP_D8M, ASM_D8M, OP_D8R); + } + +static void CODED9() + { + do_fp(ASM_D9M, OP_D9M, ASM_D9R, OP_D9R); + } + +static void CODEDA() + { + do_fp(ASM_DAM, OP_DAM, ASM_DAR, OP_DAR); + } + +static void CODEDB() + { + do_fp(ASM_DBM, OP_DBM, ASM_DBR, OP_DBR); + } + +static void CODEDC() + { + do_fp(ASM_D8M, OP_DCM, ASM_DCR, OP_DCR); + } + +static void CODEDD() + { + do_fp(ASM_DDM, OP_DDM, ASM_DDR, OP_DDR); + } + +static void CODEDE() + { + do_fp(ASM_DAM, OP_DEM, ASM_DER, OP_DER); + } + +static void CODEDF() + { + do_fp(ASM_DFM, OP_DFM, ASM_DFR, OP_DFR); + } + +LOCAL word unassemble IPT0() +{ +static int (*CPUOPS[])() = + { + (int (*)()) B_EA_REG, /* OP-code 0 */ + (int (*)()) W_EA_REG, /* OP-code 1 */ + (int (*)()) B_REG_EA, /* OP-code 2 */ + (int (*)()) W_REG_EA, /* OP-code 3 */ + (int (*)()) SB_IB, /* OP-code 4 */ + (int (*)()) SB_IW, /* OP-code 5 */ + (int (*)()) SBYTE, /* OP-code 6 */ + (int (*)()) SBYTE, /* OP-code 7 */ + (int (*)()) B_EA_REG, /* OP-code 8 */ + (int (*)()) W_EA_REG, /* OP-code 9 */ + (int (*)()) B_REG_EA, /* OP-code a */ + (int (*)()) W_REG_EA, /* OP-code b */ + (int (*)()) SB_IB, /* OP-code c */ + (int (*)()) SB_IW, /* OP-code d */ + (int (*)()) SBYTE, /* OP-code e */ + (int (*)()) PREFIX, /* OP-code f */ + + (int (*)()) B_EA_REG, /* OP-code 10 */ + (int (*)()) W_EA_REG, /* OP-code 11 */ + (int (*)()) B_REG_EA, /* OP-code 12 */ + (int (*)()) W_REG_EA, /* OP-code 13 */ + (int (*)()) SB_IB, /* OP-code 14 */ + (int (*)()) SB_IW, /* OP-code 15 */ + (int (*)()) SBYTE, /* OP-code 16 */ + (int (*)()) SBYTE, /* OP-code 17 */ + (int (*)()) B_EA_REG, /* OP-code 18 */ + (int (*)()) W_EA_REG, /* OP-code 19 */ + (int (*)()) B_REG_EA, /* OP-code 1a */ + (int (*)()) W_REG_EA, /* OP-code 1b */ + (int (*)()) SB_IB, /* OP-code 1c */ + (int (*)()) SB_IW, /* OP-code 1d */ + (int (*)()) SBYTE, /* OP-code 1e */ + (int (*)()) SBYTE, /* OP-code 1f */ + + (int (*)()) B_EA_REG, /* OP-code 20 */ + (int (*)()) W_EA_REG, /* OP-code 21 */ + (int (*)()) B_REG_EA, /* OP-code 22 */ + (int (*)()) W_REG_EA, /* OP-code 23 */ + (int (*)()) SB_IB, /* OP-code 24 */ + (int (*)()) SB_IW, /* OP-code 25 */ + (int (*)()) SBYTE, /* OP-code 26 */ + (int (*)()) SBYTE, /* OP-code 27 */ + (int (*)()) B_EA_REG, /* OP-code 28 */ + (int (*)()) W_EA_REG, /* OP-code 29 */ + (int (*)()) B_REG_EA, /* OP-code 2a */ + (int (*)()) W_REG_EA, /* OP-code 2b */ + (int (*)()) SB_IB, /* OP-code 2c */ + (int (*)()) SB_IW, /* OP-code 2d */ + (int (*)()) SBYTE, /* OP-code 2e */ + (int (*)()) SBYTE, /* OP-code 2f */ + + (int (*)()) B_EA_REG, /* OP-code 30 */ + (int (*)()) W_EA_REG, /* OP-code 31 */ + (int (*)()) B_REG_EA, /* OP-code 32 */ + (int (*)()) W_REG_EA, /* OP-code 33 */ + (int (*)()) SB_IB, /* OP-code 34 */ + (int (*)()) SB_IW, /* OP-code 35 */ + (int (*)()) SBYTE, /* OP-code 36 */ + (int (*)()) SBYTE, /* OP-code 37 */ + (int (*)()) B_EA_REG, /* OP-code 38 */ + (int (*)()) W_EA_REG, /* OP-code 39 */ + (int (*)()) B_REG_EA, /* OP-code 3a */ + (int (*)()) W_REG_EA, /* OP-code 3b */ + (int (*)()) SB_IB, /* OP-code 3c */ + (int (*)()) SB_IW, /* OP-code 3d */ + (int (*)()) SBYTE, /* OP-code 3e */ + (int (*)()) SBYTE, /* OP-code 3f */ + + (int (*)()) SBYTE, /* OP-code 40 */ + (int (*)()) SBYTE, /* OP-code 41 */ + (int (*)()) SBYTE, /* OP-code 42 */ + (int (*)()) SBYTE, /* OP-code 43 */ + (int (*)()) SBYTE, /* OP-code 44 */ + (int (*)()) SBYTE, /* OP-code 45 */ + (int (*)()) SBYTE, /* OP-code 46 */ + (int (*)()) SBYTE, /* OP-code 47 */ + (int (*)()) SBYTE, /* OP-code 48 */ + (int (*)()) SBYTE, /* OP-code 49 */ + (int (*)()) SBYTE, /* OP-code 4a */ + (int (*)()) SBYTE, /* OP-code 4b */ + (int (*)()) SBYTE, /* OP-code 4c */ + (int (*)()) SBYTE, /* OP-code 4d */ + (int (*)()) SBYTE, /* OP-code 4e */ + (int (*)()) SBYTE, /* OP-code 4f */ + + (int (*)()) STK_PUSH, /* OP-code 50 */ + (int (*)()) STK_PUSH, /* OP-code 51 */ + (int (*)()) STK_PUSH, /* OP-code 52 */ + (int (*)()) STK_PUSH, /* OP-code 53 */ + (int (*)()) STK_PUSH, /* OP-code 54 */ + (int (*)()) STK_PUSH, /* OP-code 55 */ + (int (*)()) STK_PUSH, /* OP-code 56 */ + (int (*)()) STK_PUSH, /* OP-code 57 */ + (int (*)()) STK_POP, /* OP-code 58 */ + (int (*)()) STK_POP, /* OP-code 59 */ + (int (*)()) STK_POP, /* OP-code 5a */ + (int (*)()) STK_POP, /* OP-code 5b */ + (int (*)()) STK_POP, /* OP-code 5c */ + (int (*)()) STK_POP, /* OP-code 5d */ + (int (*)()) STK_POP, /* OP-code 5e */ + (int (*)()) STK_POP, /* OP-code 5f */ + + (int (*)()) SBYTE, /* OP-code 60 */ + (int (*)()) SBYTE, /* OP-code 61 */ + (int (*)()) EA_DBL, /* OP-code 62 */ + (int (*)()) W_EA_REG, /* OP-code 63 */ + (int (*)()) SBYTE, /* OP-code 64 */ + (int (*)()) SBYTE, /* OP-code 65 */ + (int (*)()) SBYTE, /* OP-code 66 */ + (int (*)()) SBYTE, /* OP-code 67 */ + (int (*)()) STK_IW, /* OP-code 68 */ + (int (*)()) OP_3W, /* OP-code 69 */ + (int (*)()) STK_IB, /* OP-code 6a */ + (int (*)()) OP_3B, /* OP-code 6b */ + (int (*)()) SBYTE, /* OP-code 6c */ + (int (*)()) SBYTE, /* OP-code 6d */ + (int (*)()) SBYTE, /* OP-code 6e */ + (int (*)()) SBYTE, /* OP-code 6f */ + + (int (*)()) JO, /* OP-code 70 */ + (int (*)()) JNO, /* OP-code 71 */ + (int (*)()) JB, /* OP-code 72 */ + (int (*)()) JAE, /* OP-code 73 */ + (int (*)()) JE, /* OP-code 74 */ + (int (*)()) JNE, /* OP-code 75 */ + (int (*)()) JBE, /* OP-code 76 */ + (int (*)()) JA, /* OP-code 77 */ + (int (*)()) JS, /* OP-code 78 */ + (int (*)()) JNS, /* OP-code 79 */ + (int (*)()) JP, /* OP-code 7a */ + (int (*)()) JNP, /* OP-code 7b */ + (int (*)()) JL, /* OP-code 7c */ + (int (*)()) JGE, /* OP-code 7d */ + (int (*)()) JLE, /* OP-code 7e */ + (int (*)()) JG, /* OP-code 7f */ + + (int (*)()) CODE80, /* OP-code 80 */ + (int (*)()) CODE81, /* OP-code 81 */ + (int (*)()) CODE80, /* OP-code 82 */ + (int (*)()) CODE83, /* OP-code 83 */ + (int (*)()) B_REG_EA, /* OP-code 84 */ + (int (*)()) W_REG_EA, /* OP-code 85 */ + (int (*)()) XCHGB, /* OP-code 86 */ + (int (*)()) XCHGW, /* OP-code 87 */ + (int (*)()) B_EA_REG, /* OP-code 88 */ + (int (*)()) W_EA_REG, /* OP-code 89 */ + (int (*)()) B_REG_EA, /* OP-code 8a */ + (int (*)()) W_REG_EA, /* OP-code 8b */ + (int (*)()) MOV7, /* OP-code 8c */ + (int (*)()) LEA, /* OP-code 8d */ + (int (*)()) MOV6, /* OP-code 8e */ + (int (*)()) POP1, /* OP-code 8f */ + + (int (*)()) SBYTE, /* OP-code 90 */ + (int (*)()) SBYTE, /* OP-code 91 */ + (int (*)()) SBYTE, /* OP-code 92 */ + (int (*)()) SBYTE, /* OP-code 93 */ + (int (*)()) SBYTE, /* OP-code 94 */ + (int (*)()) SBYTE, /* OP-code 95 */ + (int (*)()) SBYTE, /* OP-code 96 */ + (int (*)()) SBYTE, /* OP-code 97 */ + (int (*)()) SBYTE, /* OP-code 98 */ + (int (*)()) SBYTE, /* OP-code 99 */ + (int (*)()) JMP4, /* OP-code 9a */ + (int (*)()) SBYTE, /* OP-code 9b */ + (int (*)()) SBYTE, /* OP-code 9c */ + (int (*)()) SBYTE, /* OP-code 9d */ + (int (*)()) SBYTE, /* OP-code 9e */ + (int (*)()) SBYTE, /* OP-code 9f */ + + (int (*)()) MOV4B, /* OP-code a0 */ + (int (*)()) MOV4W, /* OP-code a1 */ + (int (*)()) MOV5B, /* OP-code a2 */ + (int (*)()) MOV5W, /* OP-code a3 */ + (int (*)()) STRING, /* OP-code a4 */ + (int (*)()) STRING, /* OP-code a5 */ + (int (*)()) STRING, /* OP-code a6 */ + (int (*)()) STRING, /* OP-code a7 */ + (int (*)()) SB_IB, /* OP-code a8 */ + (int (*)()) SB_IW, /* OP-code a9 */ + (int (*)()) STRING, /* OP-code aa */ + (int (*)()) STRING, /* OP-code ab */ + (int (*)()) STRING, /* OP-code ac */ + (int (*)()) STRING, /* OP-code ad */ + (int (*)()) STRING, /* OP-code ae */ + (int (*)()) STRING, /* OP-code af */ + + (int (*)()) SB_IB, /* OP-code b0 */ + (int (*)()) SB_IB, /* OP-code b1 */ + (int (*)()) SB_IB, /* OP-code b2 */ + (int (*)()) SB_IB, /* OP-code b3 */ + (int (*)()) SB_IB, /* OP-code b4 */ + (int (*)()) SB_IB, /* OP-code b5 */ + (int (*)()) SB_IB, /* OP-code b6 */ + (int (*)()) SB_IB, /* OP-code b7 */ + (int (*)()) SB_IW, /* OP-code b8 */ + (int (*)()) SB_IW, /* OP-code b9 */ + (int (*)()) SB_IW, /* OP-code ba */ + (int (*)()) SB_IW, /* OP-code bb */ + (int (*)()) SB_IW, /* OP-code bc */ + (int (*)()) SB_IW, /* OP-code bd */ + (int (*)()) SB_IW, /* OP-code be */ + (int (*)()) SB_IW, /* OP-code bf */ + + (int (*)()) CODEC0, /* OP-code c0 */ + (int (*)()) CODEC1, /* OP-code c1 */ + (int (*)()) SB_IW, /* OP-code c2 */ + (int (*)()) SBYTE, /* OP-code c3 */ + (int (*)()) EA_DBL, /* OP-code c4 */ + (int (*)()) EA_DBL, /* OP-code c5 */ + (int (*)()) MOV2B, /* OP-code c6 */ + (int (*)()) MOV2W, /* OP-code c7 */ + (int (*)()) SB_IW_IB, /* OP-code c8 */ + (int (*)()) SBYTE, /* OP-code c9 */ + (int (*)()) SB_IW, /* OP-code ca */ + (int (*)()) SBYTE, /* OP-code cb */ + (int (*)()) SBYTE, /* OP-code cc */ + (int (*)()) SB_IB, /* OP-code cd */ + (int (*)()) SBYTE, /* OP-code ce */ + (int (*)()) SBYTE, /* OP-code cf */ + + (int (*)()) CODED0, /* OP-code d0 */ + (int (*)()) CODED1, /* OP-code d1 */ + (int (*)()) CODED2, /* OP-code d2 */ + (int (*)()) CODED3, /* OP-code d3 */ + (int (*)()) AAM, /* OP-code d4 */ + (int (*)()) AAM, /* OP-code d5 */ + (int (*)()) SB_IB, /* OP-code d6 */ + (int (*)()) SBYTE, /* OP-code d7 */ + (int (*)()) CODED8, /* OP-code d8 */ + (int (*)()) CODED9, /* OP-code d9 */ + (int (*)()) CODEDA, /* OP-code da */ + (int (*)()) CODEDB, /* OP-code db */ + (int (*)()) CODEDC, /* OP-code dc */ + (int (*)()) CODEDD, /* OP-code dd */ + (int (*)()) CODEDE, /* OP-code de */ + (int (*)()) CODEDF, /* OP-code df */ + + (int (*)()) LOOPNZ, /* OP-code e0 */ + (int (*)()) LOOPE, /* OP-code e1 */ + (int (*)()) LOOP, /* OP-code e2 */ + (int (*)()) JCXZ, /* OP-code e3 */ + (int (*)()) SB_IB, /* OP-code e4 */ + (int (*)()) SB_IB, /* OP-code e5 */ + (int (*)()) SB_IB, /* OP-code e6 */ + (int (*)()) SB_IB, /* OP-code e7 */ + (int (*)()) JMPD, /* OP-code e8 */ + (int (*)()) JMPD, /* OP-code e9 */ + (int (*)()) JMP4, /* OP-code ea */ + (int (*)()) JMPDS, /* OP-code eb */ + (int (*)()) SBYTE, /* OP-code ec */ + (int (*)()) SBYTE, /* OP-code ed */ + (int (*)()) SBYTE, /* OP-code ee */ + (int (*)()) SBYTE, /* OP-code ef */ + + (int (*)()) SBYTE, /* OP-code f0 */ + (int (*)()) SBYTE, /* OP-code f1 */ + (int (*)()) SBYTE, /* OP-code f2 */ + (int (*)()) SBYTE, /* OP-code f3 */ + (int (*)()) SBYTE, /* OP-code f4 */ + (int (*)()) SBYTE, /* OP-code f5 */ + (int (*)()) CODEF6, /* OP-code f6 */ + (int (*)()) CODEF7, /* OP-code f7 */ + (int (*)()) SBYTE, /* OP-code f8 */ + (int (*)()) SBYTE, /* OP-code f9 */ + (int (*)()) SBYTE, /* OP-code fa */ + (int (*)()) SBYTE, /* OP-code fb */ + (int (*)()) SBYTE, /* OP-code fc */ + (int (*)()) SBYTE, /* OP-code fd */ + (int (*)()) CODEFE, /* OP-code fe */ + (int (*)()) CODEFF, /* OP-code ff */ + }; + + half_word opcode; + int did_prefix; + + /* + * indirect to the opcode handler + */ + + while (nInstr > 0) + { + sprintf(out_line,"%04x:%04x ",segreg,segoff); + byte_posn = 10; + sas_set_buf(opcode_ptr, effective_addr(segreg,segoff)); + SEGMENT = 0; + nInstr--; + disp_length = 0; + op = opcode_ptr; + opcode = opcode_ptr->OPCODE; + + /* Handle prefix bytes */ + did_prefix = 0; + while ( opcode == 0xf2 || opcode == 0xf3 || + opcode == 0x26 || opcode == 0x2e || + opcode == 0x36 || opcode == 0x3e ) + { + if ( opcode == 0x26 ) + SEGMENT = 1; + else if ( opcode == 0x2e ) + SEGMENT = 2; + else if ( opcode == 0x36 ) + SEGMENT = 3; + else if ( opcode == 0x3e ) + SEGMENT = 4; + + sbyte + sas_inc_buf(op,1); + opcode_ptr = op; + opcode = opcode_ptr->OPCODE; + did_prefix = 1; + } + if ( !did_prefix ) + strcat(out_line, " "); + + (*CPUOPS[opcode_ptr->OPCODE])(); /* call opcode function */ + } + return segoff; + } + +/*****************************************************************/ + +cpu_addr dasm_op; +reg dasm_pseudo; + +LOCAL void get_char_w IFN1( +int, nr_words) /* number of words of data to dump */ + { + reg ea,disp; + MODR_M addr_mode; + + /* EA calculation and logical to physical mapping for + word instructions (w=1) */ + + temp_char[0] = '\0'; + addr_mode.X = op->SECOND_BYTE; + + /* First act on the mod value in the instruction */ + + switch ( addr_mode.field.mod ) + { + case 0: + if ( addr_mode.field.r_m == 6 ) + { /* Direct addr */ + ea.byte.low = op->THIRD_BYTE; + ea.byte.high = op->FOURTH_BYTE; + place_34 + sprintf(temp_char,"[%04x]",ea.X); + sas_inc_buf(op,2); + disp_length = 2; + goto DFLTDS; + } + else + { + disp.X = 0; + sprintf(temp_char, "[%s]",address[addr_mode.field.r_m]); + } + break; + + case 1: + /* one byte displacement in inst. */ + disp.X = (char) op->THIRD_BYTE; + place_3 + sas_inc_buf(op,1); + disp_length = 1; + if ( disp.X == 0 ) + sprintf(temp_char, "[%s]",address[addr_mode.field.r_m]); + else + { + if ((IS8)disp.X < 0) + sprintf(temp_char,"[%s-%04x]",address[addr_mode.field.r_m], 0-(IS8)disp.X); + else + sprintf(temp_char,"[%s+%04x]",address[addr_mode.field.r_m], disp.X); + } + break; + + case 2: + /* two byte displacement in inst. */ + disp.byte.low = op->THIRD_BYTE; + disp.byte.high = op->FOURTH_BYTE; + place_34 + sas_inc_buf(op,2); + disp_length = 2; + if ( disp.X == 0 ) + sprintf(temp_char, "[%s]",address[addr_mode.field.r_m]); + else + sprintf(temp_char,"[%s+%04x]",address[addr_mode.field.r_m], disp.X); + break; + + case 3: + /* Register */ + strcpy(temp_char, reg16name[addr_mode.field.r_m]); + return; + } + + /* Now act on the r/m (here called r_m) field */ + + switch ( addr_mode.field.r_m ) + { + case 0: /* Based index addr */ + ea.X = getBX() + getSI() + disp.X; + goto DFLTDS; + case 1: /* Based index addr */ + ea.X = getBX() + getDI() + disp.X; + goto DFLTDS; + case 2: /* Based index addr */ + ea.X = getBP() + getSI() + disp.X; + goto DFLTSS; + case 3: /* Based index addr */ + ea.X = getBP() + getDI() + disp.X; + goto DFLTSS; + case 4: /* Index addr */ + ea.X = getSI() + disp.X; + goto DFLTDS; + case 5: /* Index addr */ + ea.X = getDI() + disp.X; + goto DFLTDS; + case 6: /* Base addr */ + ea.X = getBP() + disp.X; + goto DFLTSS; + case 7: /* Based index addr */ + ea.X = getBX() + disp.X; + goto DFLTDS; + } + +DFLTDS : /* Map logical to physical with the DS segment + register by default */ + { + switch ( SEGMENT ) + { + case 0: /* Default - here DS */ + case 4: /* Overkill, they overrided DS with DS */ + dasm_op.all = effective_addr(getDS(), ea.X); + break; + + case 1: /* ES */ + dasm_op.all = effective_addr(getES(), ea.X); + break; + + case 2: /* CS */ + dasm_op.all = effective_addr(getCS(), ea.X); + break; + + case 3: /* SS */ + dasm_op.all = effective_addr(getSS(), ea.X); + break; + } + goto ENDEA; + } + +DFLTSS : /* Map logical to physical with the SS segment + register by default */ + /* NOTE coded seperately to the DLFTDS case so + that all default references are found as the first + item in the switch statement */ + { + switch ( SEGMENT ) + { + case 0: /* Default - here SS */ + case 3: /* Overkill, they overrided SS with SS */ + dasm_op.all = effective_addr(getSS(), ea.X); + break; + + case 1: /* ES */ + dasm_op.all = effective_addr(getES(), ea.X); + break; + + case 2: /* CS */ + dasm_op.all = effective_addr(getCS(), ea.X); + break; + + case 4: /* DS */ + dasm_op.all = effective_addr(getDS(), ea.X); + break; + } + } + +ENDEA : + + /* show data to be accessed */ + while ( nr_words ) + { + show_word(dasm_op.all); + dasm_op.all += 2; + nr_words--; + } + return; + } + +/*****************************************************************/ + +DASMBYTE dasm_pseudo_byte; + +LOCAL void get_char_b IFN0() + { + reg ea,disp; + MODR_M addr_mode; + + /* EA calculation and logical to physical mapping for + byte instructions (w=0) */ + + temp_char[0] = '\0'; + addr_mode.X = op->SECOND_BYTE; + + /* First act on the mod value in the instruction */ + + switch ( addr_mode.field.mod ) + { + case 0: + if ( addr_mode.field.r_m == 6 ) + { /* Direct addr */ + ea.byte.low = op->THIRD_BYTE; + ea.byte.high = op->FOURTH_BYTE; + place_34 + sprintf(temp_char,"[%04x]",ea.X); + sas_inc_buf(op,2); + disp_length = 2; + goto DFLTDS; + } + else + { + disp.X = 0; + sprintf(temp_char, "[%s]",address[addr_mode.field.r_m]); + } + break; + + case 1: + /* one byte displacement in inst. */ + disp.X = (char) op->THIRD_BYTE; + place_3 + sas_inc_buf(op,1); + disp_length = 1; + if ( disp.X == 0 ) + sprintf(temp_char, "[%s]",address[addr_mode.field.r_m]); + else + { + if ((IS8)disp.X < 0) + sprintf(temp_char,"[%s-%04x]",address[addr_mode.field.r_m], 0-(IS8)disp.X); + else + sprintf(temp_char,"[%s+%04x]",address[addr_mode.field.r_m], disp.X); + } + break; + + case 2: + /* two byte displacement in inst. */ + disp.byte.low = op->THIRD_BYTE; + disp.byte.high = op->FOURTH_BYTE; + place_34 + sas_inc_buf(op,2); + disp_length = 2; + if ( disp.X == 0 ) + sprintf(temp_char, "[%s]",address[addr_mode.field.r_m]); + else + sprintf(temp_char,"[%s+%04x]",address[addr_mode.field.r_m], disp.X); + break; + + case 3: + /* Register */ + strcpy(temp_char, reg8name[addr_mode.field.r_m]); + return; + } + + /* Now act on the r/m (here called r_m) field */ + + switch ( addr_mode.field.r_m ) + { + case 0: /* Based index addr */ + ea.X = getBX() + getSI() + disp.X; + goto DFLTDS; + case 1: /* Based index addr */ + ea.X = getBX() + getDI() + disp.X; + goto DFLTDS; + case 2: /* Based index addr */ + ea.X = getBP() + getSI() + disp.X; + goto DFLTSS; + case 3: /* Based index addr */ + ea.X = getBP() + getDI() + disp.X; + goto DFLTSS; + case 4: /* Index addr */ + ea.X = getSI() + disp.X; + goto DFLTDS; + case 5: /* Index addr */ + ea.X = getDI() + disp.X; + goto DFLTDS; + case 6: /* Base addr */ + ea.X = getBP() + disp.X; + goto DFLTSS; + case 7: /* Based index addr */ + ea.X = getBX() + disp.X; + goto DFLTDS; + } + +DFLTDS : /* Map logical to physical with the DS segment + register by default */ + { + switch ( SEGMENT ) + { + case 0: /* Default - here DS */ + dasm_op.all = effective_addr(getDS(), ea.X); + break; + + case 1: /* ES */ + dasm_op.all = effective_addr(getES(), ea.X); + break; + + case 2: /* CS */ + dasm_op.all = effective_addr(getCS(), ea.X); + break; + + case 3: /* SS */ + dasm_op.all = effective_addr(getSS(), ea.X); + break; + + case 4: /* Overkill, they overrided DS with DS */ + dasm_op.all = effective_addr(getDS(), ea.X); + break; + } + goto ENDEA; + } + +DFLTSS : /* Map logical to physical with the SS segment + register by default */ + /* NOTE coded seperately to the DLFTDS case so + that all default references are found as the first + item in the switch statement */ + { + switch ( SEGMENT ) + { + case 0: /* Default - here SS */ + case 3: /* Overkill, they overrided SS with SS */ + dasm_op.all = effective_addr(getSS(), ea.X); + break; + + case 1: /* ES */ + dasm_op.all = effective_addr(getES(), ea.X); + break; + + case 2: /* CS */ + dasm_op.all = effective_addr(getCS(), ea.X); + break; + + case 4: /* DS */ + dasm_op.all = effective_addr(getDS(), ea.X); + break; + } + } + +ENDEA : + + /* show data to be accessed */ + show_byte(dasm_op.all); + return; + } + + +/*******************************************************************/ + +LOCAL void place_byte IFN2(int, posn, half_word, value) +{ + out_line[posn] = table[(int)(value & 0xf0) >> 4]; + out_line[posn+1] = table[value & 0xf]; +} + +/* Dump address and value of a WORD memory operand */ + +LOCAL void show_word IFN1(sys_addr,address) + { + word value; + char temp[80]; + + sas_loadw(address, &value); + sprintf(temp, " (%06x=%04x)", address, value); + strcat(temp_char,temp); + } + +/* Dump address and value of a BYTE memory operand */ +LOCAL void show_byte IFN1(sys_addr,address) + { + half_word value; + char temp[80]; + int i; + + sas_load(address,&value); + sprintf(temp, " (%06x=", address); + strcat(temp_char,temp); + i = strlen(temp_char); + temp_char[i] = table[(int)(value & 0xf0) >> 4]; + temp_char[i+1] = table[value & 0xf]; + temp_char[i+2] = '\0'; + strcat(temp_char, ")"); + } + +/* Convert EA address to Physical address */ +/* -- where DS is default segment */ +LOCAL void form_ds_addr IFN2(word,ea,sys_addr *,phys) + { + switch ( SEGMENT ) + { + case 0: /* Default - here DS */ + case 4: /* Overkill, they overrided DS with DS */ + *phys = effective_addr(getDS(), ea); + break; + + case 1: /* ES */ + *phys = effective_addr(getES(), ea); + break; + + case 2: /* CS */ + *phys = effective_addr(getCS(), ea); + break; + + case 3: /* SS */ + *phys = effective_addr(getSS(), ea); + break; + } + } +#endif /* PROD */ diff --git a/private/mvdm/softpc.new/base/debug/debuggng.c b/private/mvdm/softpc.new/base/debug/debuggng.c new file mode 100644 index 000000000..4611161d8 --- /dev/null +++ b/private/mvdm/softpc.new/base/debug/debuggng.c @@ -0,0 +1,53 @@ +#include "insignia.h" +#include "host_def.h" +/* + * debugging info + */ + +/* SccsID = @(#)debugging.c 1.3 08/10/92 Copyright Insignia Solutions Ltd.*/ + +#ifndef PROD + +#ifdef EGG +char mode_strings[][20] = { + "EGA_HI_SP", + "EGA_HI_SP_WR", + "EGA_MED_SP", + "EGA_MED_SP_WR", + "EGA_LO_SP", + "EGA_LO_SP_WR", + "EGA_HI", + "EGA_HI_WR", + "EGA_MED", + "EGA_MED_WR", + "EGA_LO", + "EGA_LO_WR", + "EGA_HI_FUN", + "EGA_MED_FUN", + "EGA_LO_FUN", + "EGA_TEXT_40", + "EGA_TEXT_40_WR", + "EGA_TEXT_40_SP", + "EGA_TEXT_40_SP_WR", + "CGA_TEXT_40", + "CGA_TEXT_40_WR", + "CGA_TEXT_40_SP", + "CGA_TEXT_40_SP_WR", + "TEXT_40_FUN", + "EGA_TEXT_80", + "EGA_TEXT_80_WR", + "EGA_TEXT_80_SP", + "EGA_TEXT_80_SP_WR", + "CGA_TEXT_80", + "CGA_TEXT_80_WR", + "CGA_TEXT_80_SP", + "CGA_TEXT_80_SP_WR", + "TEXT_80_FUN", + "CGA_HI", + "CGA_HI_FUN", + "CGA_MED", + "CGA_MED_FUN", +}; +#endif + +#endif diff --git a/private/mvdm/softpc.new/base/debug/ega_dump.c b/private/mvdm/softpc.new/base/debug/ega_dump.c new file mode 100644 index 000000000..9fac8c675 --- /dev/null +++ b/private/mvdm/softpc.new/base/debug/ega_dump.c @@ -0,0 +1,226 @@ +#include "insignia.h" +#include "host_def.h" +/* INSIGNIA (SUB)MODULE SPECIFICATION + ----------------------------- + + + THIS PROGRAM SOURCE FILE IS SUPPLIED IN CONFIDENCE TO THE + CUSTOMER, THE CONTENTS OR DETAILS OF ITS OPERATION MUST + NOT BE DISCLOSED TO ANY OTHER PARTIES WITHOUT THE EXPRESS + AUTHORISATION FROM THE DIRECTORS OF INSIGNIA SOLUTIONS LTD. + + (see /vpc/1.0/Master/src/hdrREADME for help) + +REVISION HISTORY : +First version : 22 Aug 1988, J.Roper` + +SOURCE FILE NAME : ega_dump.c + +PURPOSE : dump the EGA global varaibles stored in structures in an intelligent manner + +SccsID = "@(#)ega_dump.c 1.12 3/9/94 Copyright Insignia Solutions Ltd." + +[3.1 INTERMODULE IMPORTS] */ + + +/* [3.1.1 #INCLUDES] */ + + +#include +#include TypesH +#include FCntlH + +#ifdef EGG +#ifndef PROD + +#include "xt.h" +#include "sas.h" +#include "ios.h" +#include "gmi.h" +#include "gvi.h" +#include "debug.h" +#include "egacpu.h" +#include "egaports.h" +#include "gfx_upd.h" +#include "egagraph.h" + +/* [3.1.2 DECLARATIONS] */ + +extern char *host_find_symb_name(); + +/* + * ======================================================================= + * Local static functions + * ======================================================================= + */ +#ifdef ANSI +static void dump_graph_display_state(void); +#else +static void dump_graph_display_state(); +#endif /* ANSI */ + +#define get_boolean_value(x) (x) ? "YES" : "NO" + +#define dump_graph_hex(name) printf("name = %x ", EGA_GRAPH.name) +#define dump_graph_int(name) printf("name = %d ", EGA_GRAPH.name) +#define dump_graph_bool(name) printf("name = %s ", get_boolean_value(EGA_GRAPH.name)) +#define dump_display_bool(name) printf("name = %s ", get_boolean_value(PCDisplay.name)) +#define dump_graph_9_bits(name) printf("name = %d ", EGA_GRAPH.name.as_word) +#define dump_graph_ptrs(name) if ( EGA_GRAPH.name == NULL ) \ + printf("name = null "); \ + else { \ + host_find_symb_name(EGA_GRAPH.name,sym_name);\ + printf("name = %s " sym_name ); \ + } +#define dump_graph_index_ptr(name,i) if ( EGA_GRAPH.name[i] == NULL ) {\ + printf("name[%d] = null ", i); \ + } \ + else {\ + host_find_symb_name(EGA_GRAPH.name[i],sym_name);\ + printf("name[%d] = %s ", i, sym_name); \ + } + +#define dump_graph_index_int(name,i) if ( EGA_GRAPH.name[i] == NULL ) {\ + printf("name[%d] = null ", i); \ + } \ + else {\ + printf("name[%d] = %d ", i, EGA_GRAPH.name[i] ); \ + } + +#define dump_graph_int2(n1,n2) dump_graph_int(n1);dump_graph_int(n2);newline +#define dump_graph_bool2(n1,n2) dump_graph_bool(n1);dump_graph_bool(n2);newline +#define dump_graph_int3(n1,n2,n3) dump_graph_int(n1);dump_graph_int(n2);dump_graph_int(n3);newline +#define dump_graph_int4(n1,n2,n3,n4) dump_graph_int(n1);dump_graph_int(n2);dump_graph_int(n3);dump_graph_int(n4);newline +#define dump_graph_9_bits2(n1,n2) dump_graph_9_bits(n1);dump_graph_9_bits(n2);newline + +void dump_EGA_GRAPH() +{ + /* char sym_name[80]; */ + + dump_display_bool(mode_change_required); + dump_graph_int(actual_offset_per_line); + dump_graph_9_bits(screen_split); + dump_graph_int(colours_used); + dump_graph_hex(plane_mask); + newline; + dump_graph_bool2(intensity,attrib_font_select); +/* + these take too long (linear search of symbol table) + + dump_graph_index_ptr(regen_ptr,0); + dump_graph_index_ptr(regen_ptr,1); + dump_graph_index_ptr(regen_ptr,2); + dump_graph_index_ptr(regen_ptr,3); +*/ + dump_graph_index_int(regen_ptr,0); + dump_graph_index_int(regen_ptr,1); + dump_graph_index_int(regen_ptr,2); + dump_graph_index_int(regen_ptr,3); + newline; + dump_graph_display_state(); +} + +#define dump_graph_disp_bool(name) printf("name = %s ", get_boolean_value(EGA_GRAPH.display_state.as_bfld.name) ) + +static void dump_graph_display_state() +{ + dump_graph_disp_bool(cga_mem_bank); + dump_graph_disp_bool(graph_shift_reg); + dump_graph_disp_bool(chained); + newline; + dump_graph_disp_bool(double_pix_wid); + dump_graph_disp_bool(ht_of_200_scan_lines); + dump_graph_disp_bool(split_screen_used); + dump_graph_disp_bool(screen_can_wrap); + newline; +} + +#define dump_disp_hex(name) printf("name = %x ", PCDisplay.name) +#define dump_disp_int(name) printf("name = %d ", PCDisplay.name) +#define dump_disp_bool(name) printf("name = %s ", get_boolean_value(PCDisplay.name)) +#define dump_disp_9_bits(name) printf("name = %d ", PCDisplay.name.as_word) +#define dump_disp_ptrs(name) if ( PCDisplay.name == NULL ) \ + printf("name = null "); \ + else { \ + host_find_symb_name(PCDisplay.name,sym_name);\ + printf("name = %s ", sym_name ); \ + } +#define dump_disp_index_ptr(name,i) if ( PCDisplay.name[i] == NULL ) {\ + printf("name[%d] = null ", i); \ + } \ + else {\ + host_find_symb_name(PCDisplay.name[i],sym_name);\ + printf("name[%d] = %s ", i, sym_name); \ + } + +#define dump_disp_int2(n1,n2) dump_disp_int(n1);dump_disp_int(n2);newline +#define dump_disp_int3(n1,n2,n3) dump_disp_int(n1);dump_disp_int(n2);dump_disp_int(n3);newline +#define dump_disp_int4(n1,n2,n3,n4) dump_disp_int(n1);dump_disp_int(n2);dump_disp_int(n3);dump_disp_int(n4);newline + +void dump_Display IFN0() +{ +/* char sym_name[80];*/ + + dump_disp_int4(bytes_per_line,chars_per_line,char_width,char_height); + dump_disp_int4(pix_width,pix_char_width,pc_pix_height,host_pix_height); + dump_disp_hex(screen_start); + dump_disp_9_bits(screen_height); + dump_disp_int2(screen_length,display_disabled); + dump_disp_int4(cursor_start,cursor_height,cursor_start1,cursor_height1); + dump_disp_int3(cur_x,cur_y,offset_per_line); +/* + this takes too long, so print out number + dump_disp_ptrs(screen_ptr); +*/ + dump_disp_int(screen_ptr); + newline; +} + +void dump_EGA_CPU IFN0() +{ + /* table to output planes nicely. */ + + static char bin_table[][5] = { + "0000", "0001", "0010", "0011", + "0100", "0101", "0110", "0111", + "1000", "1001", "1010", "1011", + "1100", "1101", "1110", "1111", + }; + + printf("rame=%d wmode=%d rot=%d s/r=%s s/re=%s ", + EGA_CPU.ram_enabled,EGA_CPU.write_mode, + getVideorotate(),bin_table[EGA_CPU.set_reset], + bin_table[EGA_CPU.sr_enable]); + printf("sr=%d func=%d bp=%d pe=%d\n", + write_state.sr,write_state.func,write_state.bp, + write_state.pe); + printf("EGA memory is %#x->%#x plane offset is %#x\n", + gvi_pc_low_regen,gvi_pc_high_regen,getVideowplane()); + printf("set/reset value: %#x sr_nmask: %#x sr_masked_val: %#x\n", + EGA_CPU.sr_value, getVideosr_nmask(), getVideosr_masked_val()); + printf("bit_prot=%#x,data_and=%#x,data_xor=%#x,latch_xor=%#x\n", + getVideobit_prot_mask(),getVideodata_and_mask(), + getVideodata_xor_mask(),getVideolatch_xor_mask()); + + printf("handlers are of type %d\n", EGA_CPU.saved_mode_chain); +} + +static char names[4][11] = {"plane0.dat", + "plane1.dat", + "plane2.dat", + "plane3.dat" + }; +static byte *pl[4]; + +void dump_ega_planes() +{ + assert0(NO, "dump_ega_planes unimplemented for 3.0\n"); +} + +void read_ega_planes() +{ + assert0(NO, "read_ega_planes unimplemented for 3.0\n"); +} + +#endif /* PROD */ +#endif /* EGG */ diff --git a/private/mvdm/softpc.new/base/debug/makefile b/private/mvdm/softpc.new/base/debug/makefile new file mode 100644 index 000000000..6ee4f43fa --- /dev/null +++ b/private/mvdm/softpc.new/base/debug/makefile @@ -0,0 +1,6 @@ +# +# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source +# file to this component. This file merely indirects to the real make file +# that is shared by all the components of NT OS/2 +# +!INCLUDE $(NTMAKEENV)\makefile.def diff --git a/private/mvdm/softpc.new/base/debug/markfrom b/private/mvdm/softpc.new/base/debug/markfrom new file mode 100644 index 000000000..be7664ee1 --- /dev/null +++ b/private/mvdm/softpc.new/base/debug/markfrom @@ -0,0 +1,36 @@ +/* +** SccsID = @(#)markfromicon 1.1 02/17/91 Copyright Insignia Solutions Ltd. and Insignia Solutions Inc +** Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16 +*/ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x000E,0x0000,0x0000,0x7000,0x000F,0x0000,0x0000,0xF000, + 0x000F,0x8000,0x0001,0xF000,0x0007,0xC000,0x0003,0xE000, + 0x0003,0xE000,0x0007,0xC000,0x0001,0xE000,0x0007,0x8000, + 0x0000,0xF000,0x000F,0x0000,0x0000,0x3800,0x001C,0x0000, + 0x0000,0x1C00,0x0038,0x0000,0x0000,0x0C00,0x0030,0x0000, + 0x0000,0x0200,0x0040,0x0000,0x0000,0x0100,0x0080,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0100,0x0080,0x0000,0x0000,0x0200,0x0040,0x0000, + 0x0000,0x0C00,0x0030,0x0000,0x0000,0x1C00,0x0038,0x0000, + 0x0000,0x3800,0x001C,0x0000,0x0000,0xF000,0x000F,0x0000, + 0x0001,0xE000,0x0007,0x8000,0x0003,0xE000,0x0007,0xC000, + 0x0007,0xC000,0x0003,0xE000,0x000F,0x8000,0x0001,0xF000, + 0x000F,0x0000,0x0000,0xF000,0x000E,0x0000,0x0000,0x7000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 diff --git a/private/mvdm/softpc.new/base/debug/pigyoda.c b/private/mvdm/softpc.new/base/debug/pigyoda.c new file mode 100644 index 000000000..a3991eb08 --- /dev/null +++ b/private/mvdm/softpc.new/base/debug/pigyoda.c @@ -0,0 +1,355 @@ +/*[ + * Name: pigyoda.c + * + * Author: William Charnell + * + * Created: May 1991 + * + * Sccs ID: @(#)pigyoda.c 1.9 06/30/94 + * + * Purpose: This module contains the yoda interface routines for + * an application pigger. + * + * (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved. +]*/ + +/* Standard Includes */ +#include "insignia.h" +#include "host_def.h" + +/* System Includes */ +#include +#include + +/* SoftPC Includes */ +#include "xt.h" +#include "bios.h" +#include "sas.h" +#include "trace.h" + +#ifdef PIG + +IMPORT LONG pig_verbose; +IMPORT LONG sync_count, sync_count_target; +IMPORT LONG counting_syncs; +IMPORT LONG vidchecking; + +#ifdef ANSI +IMPORT VOID set_flags_ignore(char *); +#else +IMPORT VOID set_flags_ignore(); +#endif +IMPORT VOID enable_pig(); +IMPORT VOID disable_pig(); +IMPORT VOID show_before(); +IMPORT VOID show_C_after(); +IMPORT VOID show_A_after(); +IMPORT VOID show_execed(); +IMPORT VOID show_mem(); +IMPORT VOID show_pig_stats(); +IMPORT VOID watch_mem(); +IMPORT VOID test_pig_results(); + +extern void dump_execed IPT1( FILE *, fptr ); + +/**/ + +typedef struct { + char name[20]; + void (*func)(); + char help[100]; +} cmdstruct; + +/**/ + +LOCAL LONG quit_pig_yoda; + +/* vbls for the 'more' function */ +#define LINECOUNT_LIMIT 20 +LOCAL SHORT linecount; + +LOCAL char temp_str[80]; +LOCAL char whitespc[] = { '\t',' ',',','\0' }; +LOCAL char pig_cmd[80], cmd[40], lhs[40], rhs[40],extra[80]; + +/**/ + +LOCAL void do_quit() +{ + quit_pig_yoda = TRUE; +} + +LOCAL void set_pig_vb(lhs) +char *lhs; +{ + pig_verbose = atoi(lhs); +} + +LOCAL void do_zsc() +{ + sync_count = 0; +} + +LOCAL void do_bsc(lhs) +char *lhs; +{ + sync_count_target = atoi(lhs); + counting_syncs = TRUE; +} + +LOCAL void do_psc() +{ + fprintf(trace_file,"sync count = %d\n",sync_count); + if (counting_syncs) + { + fprintf(trace_file,"sync count target = %d\n",sync_count_target); + } +} + +LOCAL void do_cst() +{ + counting_syncs = FALSE; +} + +LOCAL void do_vid(lhs) +char *lhs; +{ + LONG found = FALSE; + + if (lhs[0] == '\0') + { + vidchecking = !vidchecking; + found = TRUE; + } + if (strcmp(lhs,"on")==0) + { + vidchecking = TRUE; + found = TRUE; + } + if (strcmp(lhs,"off")==0) + { + vidchecking = FALSE; + found = TRUE; + } + if (!found) + printf("parameter '%s' not understood\n",lhs); + printf("video checking is now "); + if (vidchecking) + printf("ON\n"); + else + printf("OFF\n"); +} + +LOCAL void +dump_script IFN1( char *, fname ) +{ + FILE *fptr; + + if( fptr = fopen( fname, "w" )) + { + dump_execed( fptr ); + fclose( fptr ); + } + else + { + printf( "Couldn't open file %s\n", fname ); + } +} + + +/* forward decl of help func */ + +LOCAL void do_pig_help(); + +cmdstruct commands[] = +{ +{"quit",do_quit, " - return to yoda"}, +{"q",do_quit, " - synonym for quit"}, +{"c",do_quit, " - synonym for quit"}, +{"help",do_pig_help, " - display instructions"}, +{"h",do_pig_help, " - synonym for help"}, +{"on",enable_pig, " - start pigging"}, +{"off",disable_pig, " - stop pigging"}, +{"verbose",set_pig_vb, " - set verbose level"}, +{"v",set_pig_vb, " - synonyn for verbose"}, +{"fignore",set_flags_ignore, " - set the flags ignore state"}, +{"f",set_flags_ignore, " - synonyn for fignore"}, +{"zsc",do_zsc, " - zero the sync count"}, +{"bsc",do_bsc, " - break after syncs"}, +{"psc",do_psc, " - print current sync count"}, +{"sb",show_before, " - show 'before' cpu state"}, +{"sca",show_C_after, " - show cpu state after C CPU"}, +{"saa",show_A_after, " - show_cpu_state after Asm CPU"}, +{"sc",show_execed, " - show code for last sync"}, +{"sm",show_mem, " - show mem for last sync"}, +{"cst",do_cst, " - clear the sync target number"}, +{"vid",do_vid, " - set video checking on or off or toggle state"}, +{"smstats",show_pig_stats, " - show stats for pig memory useage"}, +{"wmem",watch_mem, " - watch host memory location(s)"}, +{"ds",dump_script, " - dump iPig script" }, +{"test",test_pig_results, " - show test failures again" }, +{"",do_quit,""} +}; + +char *helpstr[] = +{ +"\n", +" valid values of are:\n", +" 0 = quiet\n", +" 1 = code stream only\n", +" 2 = memory changes only\n", +" 3(or above) = full verbose\n", +"\n", +" valid values of are:\n", +" all = ignore all flags\n", +" none = test all flags\n", +"\n", +"" +}; + +/* + * more + * + * This routine controls the display of a large quantity of output, usually + * the 'help' display. + */ + +SHORT more() +{ + if ((linecount++)>LINECOUNT_LIMIT) + { + if (trace_file == stdout) + { + fprintf(trace_file,"hit return to continue\n"); + gets(temp_str); + linecount=0; + if ((strcmp(temp_str,"q")==0) || (strcmp(temp_str,"quit")==0)) + return TRUE; + } + } + return FALSE; +} + +LOCAL void do_pig_help() +{ + cmdstruct *sptr; + SHORT i,quithelp; + + linecount=0; + quithelp =FALSE; + sptr= commands; + while ((sptr->name[0] != '\0') && !quithelp) + { + fprintf(trace_file,"%8s%s\n",sptr->name,sptr->help); + sptr++; + quithelp=more(); + } + i=0; + while ((*helpstr[i] != '\0') && (!quithelp)) + { + fprintf(trace_file,helpstr[i++]); + quithelp=more(); + } + +} + +getNextToken(posp,buf,dest) +USHORT *posp; +char *buf, *dest; +{ + SHORT len, numopen, numcls, wholetoken, maxlen, cnt; + char *cptr; + + /* first get rid of any leading whitespace (incl commas) */ + *posp += strspn(&buf[*posp],whitespc); + + /* find the length of the next token up to the next white space. */ + /* NB. this may not be the whole token if there is a '(' in it */ + len = strcspn(&buf[*posp],whitespc); + + maxlen = strlen(&buf[*posp]); + wholetoken = FALSE; + while (!wholetoken && (len < maxlen)) + { + numopen = numcls = 0; + cptr = &buf[*posp]; + cnt=0; + while ((*cptr != '\0') && (cnt++ < len)) + { + if (*cptr++ == '(') + numopen++; + } + cptr = &buf[*posp]; + cnt=0; + while ((*cptr != '\0') && (cnt++ < len)) + { + if (*cptr++ == ')') + numcls++; + } + if (numopen == numcls) + wholetoken = TRUE; + else + { + len += strcspn(&buf[*posp +len],")") + 1; + } + } + strncpy(dest,&buf[*posp],len); + dest[len] = '\0'; + *posp += len; +} + +tokenise_pig_cmd(str,cmd,lhs,rhs,rest) +char *str, *cmd, *lhs, *rhs, *rest; +{ + SHORT pos; + + pos = 0; + getNextToken(&pos,str,cmd); + getNextToken(&pos,str,lhs); + getNextToken(&pos,str,rhs); + strcpy(rest,&str[pos]); +} + +LONG searchCommandTable(cmd_table) +cmdstruct *cmd_table; +{ + cmdstruct *sptr; + void (*func_ptr)(); + LONG found = FALSE; + + sptr = cmd_table; + while ((sptr->name[0])!='\0') + { + if (strcmp(cmd,sptr->name)==0) + { + func_ptr=sptr->func; + (*func_ptr)(lhs, rhs, extra); + found = TRUE; + break; + } + sptr++; + } + return (found); +} + +void pig_yoda() +{ + + quit_pig_yoda = FALSE; + + while (!quit_pig_yoda) + { + printf("PIG> "); + fflush(stdout); + gets(pig_cmd); + tokenise_pig_cmd(pig_cmd,cmd,lhs,rhs,extra); + if (!searchCommandTable(&commands[0])) + { + printf("command '%s' not found\n",cmd); + printf("type 'h' or 'help' for a list of commands\n"); + } + } + +} + +#endif /* PIG */ diff --git a/private/mvdm/softpc.new/base/debug/profile.c b/private/mvdm/softpc.new/base/debug/profile.c new file mode 100644 index 000000000..9229eafe9 --- /dev/null +++ b/private/mvdm/softpc.new/base/debug/profile.c @@ -0,0 +1,3328 @@ +/*[ +************************************************************************* + + Name: profile.c + Author: Simon Frost + Created: September 1993 + Derived from: Original + Sccs ID: @(#)profile.c 1.19 01/31/95 + Purpose: Support for Profiling system + + (c)Copyright Insignia Solutions Ltd., 1993. All rights reserved. + +************************************************************************* +]*/ + +/*( + * Glossary: + * EOI - Event of Interest + * SOI - Section of Interest (between two events) + * Raw Data Buffer - captures minimum data from event when triggered. + * Raw Data Buffer flush - process the buffer when full or time available + * to summarise in EOI & SOI lists. + )*/ + +/* + * NB: heap unfriendly in places - could get several structs at a go. + */ + + +#include "insignia.h" +#include "host_def.h" + +#include +#include StringH + +#include CpuH +#include "debug.h" +#include "trace.h" +#include "profile.h" + +#ifdef PROFILE /* Don't want this all the time */ + +#include TimeH /* clock_t and clock() */ +#include /* provides prototype for getenv() */ + +/***** DEFINES *****/ +#define EOIHEADS 16 +#define EOIHASH EOIHEADS-1 + +#define RAWDATAENTRIES 10000 /* # of EOI entries in raw data buffer */ + +#define INITIALENABLESIZE 1024L /* start enable count */ + +#define LISTSORTINCR 5000L /* trigger point for list sorting */ + +#define USECASFLOAT ((DOUBLE)1000000.0) + +/***** GLOBALS *****/ + +GLOBAL EOI_BUFFER_FORMAT *ProfileRawData = (EOI_BUFFER_FORMAT *)0; + /* Pointer to Raw Data Buffer */ +GLOBAL EOI_BUFFER_FORMAT *MaxProfileData; /* Buffer Full pointer */ +GLOBAL EOI_BUFFER_FORMAT **AddProfileData; /* Address in GDP of current position in buffer */ +GLOBAL IU8 *EOIEnable; /* Pointer to EOI enable table */ +GLOBAL EOINODE_PTR *EOIDir; /* Directory of EOIs by handle */ +GLOBAL IBOOL CollectingMaxMin = FALSE; /* sanity check data collection*/ +GLOBAL IBOOL Profiling_enabled = TRUE; /* Disable conventional profiling + * used with SIGPROF / PROD lcif */ + + /* Profiling hooks in C Code */ +/* extern EOIHANDLE cleanupFromWhereAmI_START, + cleanupFromWhereAmI_END; * FmDebug.c * +*/ + +/***** LOCAL DATA ****/ +LOCAL SOIHANDLE MaxSOI = 0L; /* Creation of handles for New ?OIs */ +LOCAL EOIHANDLE MaxEOI = INITIALENABLESIZE; +LOCAL EOIHANDLE CurMaxEOI = 0L; + +LOCAL EOINODE_PTR EventsOfInterest = EOIPTRNULL; /* Head of EOI list */ +LOCAL EOINODE_PTR LastEOI = EOIPTRNULL; /* Last EOI changed */ +LOCAL EOINODE_PTR LastAuto = EOIPTRNULL; /* Last AutoSOI 'hot' EOI */ +LOCAL SOINODE_PTR SectionsOfInterest = SOIPTRNULL; /* Head of SOI list */ +LOCAL SOINODE_PTR LastSOI = SOIPTRNULL; /* current end of SOI list */ +LOCAL GRAPHLIST_PTR EventGraph = GRAPHPTRNULL; /* Head of event graph list */ +LOCAL GRAPHLIST_PTR LastGraph = GRAPHPTRNULL; /* Previous event graph node */ + +LOCAL PROF_TIMESTAMP ProfFlushTime = {0L, 0L}; /* time spent in flush routine*/ +LOCAL PROF_TIMESTAMP BufStartTime = {0L, 0L}; /* FIX overflowing timestamps */ +LOCAL ISM32 ProfFlushCount = 0; /* # flush routine called */ +LOCAL EOIHANDLE elapsed_time_start, elapsed_time_end; +LOCAL IU8 start_time[26]; +LOCAL clock_t elapsed_t_start, elapsed_t_resettable; +LOCAL DOUBLE TicksPerSec; + +#ifndef macintosh + +/* For Unix ports, use the times() system call to obtain info + * on how much of the processor time was spent elsewhere in + * the system. + */ +#include /* for times() and struct tms */ +#include UnistdH /* for sysconf() and _SC_CLK_TICK */ + +LOCAL struct tms process_t_start, process_t_resettable; + +#define host_times(x) times(x) + +#else /* macintosh */ + +/* Macintosh doesn't have processes or process times, but we do have + * clock() which provides a value of type clock_t. + */ +#define host_times(x) clock() + +#endif /* !macintosh */ + +/***** LOCAL FN ****/ +LOCAL void listSort IPT1 (SORTSTRUCT_PTR, head); +LOCAL EOINODE_PTR findEOI IPT1 (EOIHANDLE, findHandle); +LOCAL SOINODE_PTR findSOI IPT1 (SOIHANDLE, findHandle); +LOCAL EOINODE_PTR addEOI IPT3 (EOIHANDLE, newhandle, char, *tag, IU8, attrib); +LOCAL IBOOL updateEOI IPT1 (IUH, **rawdata); +LOCAL void addSOIlinktoEOIs IPT3 (EOIHANDLE, soistart, EOIHANDLE, soiend, SOINODE_PTR, soiptr); +LOCAL void printEOIGuts IPT5 (FILE, *stream, EOINODE_PTR, eoin, DOUBLE, ftotal, IBOOL, parg, IBOOL, report); +LOCAL void spaces IPT2(FILE, *stream, ISM32, curindent); +LOCAL EOINODE_PTR addAutoSOI IPT4 (EOINODE_PTR, from, EOIARG_PTR, fromArg, + PROF_TIMEPTR, fromTime, EOINODE_PTR, to); +LOCAL void getPredefinedEOIs IPT0(); +LOCAL void updateSOIstarts IPT1(PROF_TIMEPTR, startflush); + +/* Here lieth code... */ + +void sdbsucks() +{ +} +/*( +=============================== findEOI ============================= + +PURPOSE: Find an event in the EventsOfInterest list. + +INPUT: findHandle: handle of EOI to find + +OUTPUT: Return pointer to EOI node requested or Null if not found. + +========================================================================= +)*/ + +LOCAL EOINODE_PTR +findEOI IFN1 (EOIHANDLE, findHandle) +{ + return( *(EOIDir + findHandle) ); +} + +/*( +=============================== findSOI ============================= + +PURPOSE: Find an event in the EventsOfInterest list. + +INPUT: findHandle: handle of SOI to find + +OUTPUT: Return pointer to SOI node requested or Null if not found. + +========================================================================= +)*/ + +LOCAL SOINODE_PTR +findSOI IFN1 (SOIHANDLE, findHandle) +{ + SOINODE_PTR soin; /* list walker */ + + soin = SectionsOfInterest; /* head of list */ + + while(soin != SOIPTRNULL) /* list null terminated */ + { + if (soin->handle == findHandle) + break; + soin = soin->next; + } + return(soin); /* return pointer to found node or Null */ +} + +/*( +============================ addAutoSOI ============================ + +PURPOSE: Add a SOI entry for an Auto SOI connection. May be '2nd level' + i.e. distinguished by arg so can't use Associate fn. + +INPUT: from: EOI node that starts SOI. + fromArg: Arg node in 'from' that starts SOI. (say 'cheese') + fromTime: Timestamp from previous Auto EOI. + to: EOI node that ends SOI. + +OUTPUT: + +========================================================================= +)*/ + +LOCAL EOINODE_PTR +addAutoSOI IFN4 (EOINODE_PTR, from, EOIARG_PTR, fromArg, PROF_TIMEPTR, fromTime, EOINODE_PTR, to) +{ + SOILIST_PTR soilist, *nlist; /* list walkers */ + SOINODE_PTR newsoi; /* pointer to new Soi node */ + + /* mark EOIs as valid for SOI updates */ + from->flags |= EOI_HAS_SOI; + to->flags |= EOI_HAS_SOI; + + if (SectionsOfInterest == SOIPTRNULL) + { + SectionsOfInterest = (SOINODE_PTR)host_malloc(sizeof(SOINODE)); + if (SectionsOfInterest == SOIPTRNULL) + { + assert0(NO, "Profiler:addAutoSOI - Out of Memory"); + return; + } + newsoi = SectionsOfInterest; + } + else + { + + /* LastSOI points at current last elem in SOI list */ + if (LastSOI == SOIPTRNULL || LastSOI->next != SOIPTRNULL) /* sanity check BUGBUG */ + { + if (LastSOI == SOIPTRNULL) + { + assert0(NO, "addAutoSOI, LastSOI NULL"); + } + else + { + assert1(NO, "addAutoSOI, LastSOI-Next wrong (%#x)", LastSOI->next); + } + } + LastSOI->next = (SOINODE_PTR)host_malloc(sizeof(SOINODE)); + if (LastSOI->next == SOIPTRNULL) + { + assert0(NO, "Profiler:addAutoSOI - Out of Memory"); + return; + } + newsoi = LastSOI->next; + } + + newsoi->handle = MaxSOI++; /* new handle */ + newsoi->startEOI = from->handle; + newsoi->endEOI = to->handle; + newsoi->startArg = fromArg; + newsoi->endArg = to->lastArg; + newsoi->startCount = newsoi->endCount = 1L; + newsoi->soistart.data[0] = fromTime->data[0]; + newsoi->soistart.data[1] = fromTime->data[1]; + newsoi->discardCount = 0L; + newsoi->bigtime = 0.0; + newsoi->bigmax = 0.0; + newsoi->next = SOIPTRNULL; + newsoi->flags = SOI_AUTOSOI; + newsoi->time = HostProfUSecs(HostTimestampDiff(fromTime, &to->timestamp)); + newsoi->mintime = newsoi->maxtime = newsoi->time; + + LastSOI = newsoi; /* update SOI end list */ + + /* now make link to soi from starting EOI */ + if (fromArg == ARGPTRNULL) + nlist = &from->startsoi; /* first level entry */ + else + nlist = &fromArg->startsoi; /* extra level (arg) entry */ + + if (*nlist == SLISTNULL) /* no entries */ + { + *nlist = (SOILIST_PTR)host_malloc(sizeof(SOILIST)); + if (*nlist == SLISTNULL) + { + assert0(NO, "Profiler:addAutoSOI - Out of Memory"); + return; + } + soilist = *nlist; /* point to new node */ + soilist->next = SLISTNULL; + } + else /* follow list & add to end */ + { + soilist = *nlist; + while (soilist->next != SLISTNULL) + soilist = soilist->next; + soilist->next = (SOILIST_PTR)host_malloc(sizeof(SOILIST)); + if (soilist->next == SLISTNULL) + { + assert0(NO, "Profiler:addAutoSOI - Out of Memory"); + return; + } + soilist = soilist->next; /* point to new node */ + soilist->next = SLISTNULL; + } + soilist->soiLink = newsoi; /* make link */ + + /* now repeat for 'end' case */ + if (to->lastArg == ARGPTRNULL) + nlist = &to->endsoi; /* first level entry */ + else + nlist = &to->lastArg->endsoi; /* extra level (arg) entry */ + + if (*nlist == SLISTNULL) /* no entries */ + { + *nlist = (SOILIST_PTR)host_malloc(sizeof(SOILIST)); + if (*nlist == SLISTNULL) + { + assert0(NO, "Profiler:addAutoSOI - Out of Memory"); + return; + } + soilist = *nlist; /* point to new node */ + soilist->next = SLISTNULL; + } + else /* follow list & add to end */ + { + soilist = *nlist; + while (soilist->next != SLISTNULL) + soilist = soilist->next; + soilist->next = (SOILIST_PTR)host_malloc(sizeof(SOILIST)); + if (soilist->next == SLISTNULL) + { + assert0(NO, "Profiler:addAutoSOI - Out of Memory"); + return; + } + soilist = soilist->next; /* point to new node */ + soilist->next = SLISTNULL; + } + soilist->soiLink = newsoi; /* make link */ +} + +/*( +============================ findOrMakeArgPtr =========================== + +PURPOSE: Find an existing arg entry for an EOI or create one if not found. + +INPUT: eoi: pointer to eoi node. + value: search value. + +OUTPUT: pointer to arg node. + +========================================================================= +)*/ + +LOCAL EOIARG_PTR +findOrMakeArgPtr IFN2(EOINODE_PTR, eoi, IUM32, value) +{ + EOIARG_PTR argPtr, lastArg; + SOILIST_PTR argsois; + + argPtr = eoi->args; + /* any args there yet ? */ + if (argPtr == ARGPTRNULL) + { + argPtr = (EOIARG_PTR)host_malloc(sizeof(EOIARG)); + if (argPtr == ARGPTRNULL) + { + fprintf(trace_file, "Profiler:findOrMakeArgPtr - Out of memory\n"); + return(ARGPTRNULL); + } + eoi->args = eoi->lastArg = argPtr; + argPtr->back = argPtr->next = ARGPTRNULL; + argPtr->value = value; + argPtr->count = 0; + argPtr->graph = GRAPHPTRNULL; + argPtr->startsoi = argPtr->endsoi = SLISTNULL; + } + else + { + /* check for value existing at moment */ + do { + if (argPtr->value == value) + break; + + lastArg = argPtr; + argPtr = argPtr->next; + } while (argPtr != ARGPTRNULL); + + /* value found ? */ + if (argPtr == ARGPTRNULL) + { + /* add new value */ + argPtr = (EOIARG_PTR)host_malloc(sizeof(EOIARG)); + if (argPtr == ARGPTRNULL) + { + fprintf(trace_file, "Profiler:findOrMakeArgPtr - Out of memory\n"); + return(ARGPTRNULL); + } + lastArg->next = argPtr; + argPtr->back = lastArg; + argPtr->next = ARGPTRNULL; + argPtr->value = value; + argPtr->count = 0; + argPtr->graph = GRAPHPTRNULL; + argPtr->startsoi = argPtr->endsoi = SLISTNULL; + } + } + return(argPtr); +} + + +/*( +============================ getPredefinedEOIs =========================== + +PURPOSE: Read in predefined EOIs & SOIs from profile init file. These + are the EOIs that have been set up during EDL translation. + +INPUT: None. + +OUTPUT: None. + +========================================================================= +)*/ + +LOCAL void +getPredefinedEOIs IFN0() +{ + FILE *initFp; /* file pointer to init file */ + char buf[1024]; /* working space */ + char *tag; /* point to tags in file */ + char *ptr; /* working pointer */ + IU8 flags; /* flags values in file */ + EOIHANDLE eoinum, soiend; /* EOI parameters in file */ + + if ((initFp = fopen(HostProfInitName(), "r")) == (FILE *)0) + { + fprintf(stderr, "WARNING: No initialisation file found for predefined profile EOIs.\n"); + return; /* no init file, no predefines */ + } + + /* process file, one line at a time */ + while(fgets(buf, sizeof(buf), initFp) != (char *)0) + { + if (buf[0] == '#') /* comment line */ + continue; + + /* EOI format: EOI:number:tag:flags */ + if (strncmp(&buf[0], "EOI:", 4) == 0) + { + eoinum = (EOIHANDLE)atol(&buf[4]); /* should stop at : */ + if (!eoinum) + continue; /* EOI in C not EDL */ + + tag = strchr(&buf[4], (int)':'); /* find tag */ + if (tag == (char *)0) + { + fprintf(stderr, "Ignoring request '%s': bad syntax\n", &buf[0]); + continue; + } + tag++; /* start of tag */ + + ptr = strchr(tag, (int)':'); /* find end of tag (at :) */ + if (ptr == (char *)0) + { + fprintf(stderr, "Ignoring request '%s': bad syntax\n", &buf[0]); + continue; + } + *ptr = '\0'; /* terminate tag */ + flags = (IU8)atoi(++ptr); /* get flags */ + + if (eoinum >= MaxEOI) /* oops - enable table full. Grow it */ + { + MaxEOI = eoinum + INITIALENABLESIZE; + /* ASSUMES host_realloc is non destructive */ + EOIEnable = (IU8 *)host_realloc(EOIEnable, MaxEOI); + if (EOIEnable == (IU8 *)0) + { + assert0(NO, "profiler:getPredefinedEOIs:Out of Memory"); + return; + } + EOIDir = (EOINODE_PTR *)host_realloc(EOIDir, MaxEOI * sizeof(EOINODE_PTR) ); + if (EOIDir == (EOINODE_PTR *)0 ) + { + assert0(NO, "profiler:getPredefinedEOIs:Out of Memory"); + return; + } + /* pointer may have changed, update GDP */ + setEOIEnableAddr(EOIEnable); + } + + if (eoinum > CurMaxEOI) + CurMaxEOI = eoinum; + + addEOI(eoinum, tag, flags); /* add the EOI */ +printf("adding EOI %d:%s:%d\n",eoinum, tag, flags); + continue; + } + + /* SOI format: SOI:EOI#:EOI# */ + if (strncmp(&buf[0], "SOI:", 4) == 0) + { + /* get first number (start beyond '(' */ + eoinum = (EOIHANDLE)atol(&buf[4]); /* should stop at ':' */ + /* find second number */ + ptr = strchr(&buf[4], (int)':'); + if (ptr == (char *)0) /* tampering? */ + { + fprintf(stderr, "Ignoring request '%s': bad syntax\n", &buf[0]); + continue; + } + /* get second number */ + soiend = (EOIHANDLE)atol(++ptr); + /* make SOI */ + AssociateAsSOI(eoinum, soiend); +printf("adding SOI %d:%d\n",eoinum, soiend); + } + } + + fclose(initFp); +} + +/*( +=============================== addEOI ============================= + +PURPOSE: Add an event to the EventsOfInterest list. + +INPUT: newhandle: handle of new EOI + tag: some 'human form' identifier for the new EOI + attrib: flag for EOI attribute settings. + +OUTPUT: pointer to new node for 'instant' access. + +========================================================================= +)*/ + +LOCAL EOINODE_PTR +addEOI IFN3 (EOIHANDLE, newhandle, char *, tag, IU8, attrib) +{ + EOINODE_PTR lastEoin, eoin; /* list walker */ + + /* first event added is special case. */ + if (EventsOfInterest == EOIPTRNULL) + { + /* add first node */ + EventsOfInterest = (EOINODE_PTR)host_malloc(sizeof(EOINODE)); + if (EventsOfInterest == EOIPTRNULL) + { + assert0(NO, "Profiler:addEOI - Out of memory") + return(EOIPTRNULL); + } + eoin = EventsOfInterest; + lastEoin = EOIPTRNULL; + } + else /* search down list */ + { + lastEoin = eoin = EventsOfInterest; + do { +#ifndef PROD + if (eoin->handle == newhandle) /* sanity check */ + { + assert1(NO, "profiler:addEOI - adding previously added handle %ld",newhandle); + } +#endif /* PROD */ + lastEoin = eoin; + eoin = eoin->next; + } while (eoin != EOIPTRNULL); + + if (eoin == EventsOfInterest) /* insert at head of list */ + { + EventsOfInterest = (EOINODE_PTR)host_malloc(sizeof(EOINODE)); + if (EventsOfInterest == EOIPTRNULL) + { + assert0(NO, "Profiler:addEOI - Out of memory") + return(EOIPTRNULL); + } + + EventsOfInterest->next = eoin; + eoin = EventsOfInterest; /* new node for common init code */ + } + else /* add new node to list */ + { + lastEoin->next = (EOINODE_PTR)host_malloc(sizeof(EOINODE)); + if (lastEoin->next == EOIPTRNULL) + { + assert0(NO, "Profiler:addEOI - Out of memory") + return(EOIPTRNULL); + } + lastEoin->next->next = eoin; + eoin = lastEoin->next; /* new node for common init code */ + } + + } + eoin->args = ARGPTRNULL; /* not interested */ + eoin->lastArg = ARGPTRNULL; + eoin->handle = newhandle; + eoin->count = 0L; + eoin->back = lastEoin; + eoin->next = EOIPTRNULL; + eoin->tag = (char *)host_malloc(strlen((char *)tag)+1); + if (eoin->tag == (char *)0) + { + assert0(NO, "Profiler: addEOI - Out of Memory"); + eoin->tag = tag; + } + else + strcpy((char *)eoin->tag, tag); + eoin->timestamp.data[0] = 0L; + eoin->timestamp.data[1] = 0L; + eoin->graph = GRAPHPTRNULL; + eoin->flags = (IU16)attrib; + + /* mark whether EOI enabled in GDP & store global enable/disable there */ + if ((attrib & EOI_AUTOSOI) == 0) /* any point suppressing timestamps? */ + { + attrib &= ENABLE_MASK; /* strip all save enable/disable info */ + attrib |= EOI_NOTIME; /* turned off if SOI'ed */ + } + else + attrib &= ENABLE_MASK; /* strip all save enable/disable info*/ + + *(EOIEnable + newhandle) = attrib; + *(EOIDir + newhandle) = eoin; + + eoin->startsoi = eoin->endsoi = SLISTNULL; + eoin->argsoiends = SOIARGENDNULL; + + return(eoin); /* return pointer to new node for immediate update */ +} + +/*( +=============================== updateEOI ============================= + +PURPOSE: Update the information for a given EOI. This routine called + from the 'raw data buffer' flushing routine. + +INPUT: rawdata: pointer into raw buffer for this EOI. + +OUTPUT: returns FALSE if will exceed buffer end. + rawdata modified to point to next EOI + +========================================================================= +)*/ + +LOCAL IBOOL +updateEOI IFN1 (IUH **, rawdata) +{ + EOIHANDLE handle; /* EOI from raw buf */ + PROF_TIMESTAMP time; /* time from raw buf */ + EOINODE_PTR eoin; /* EOI list walker */ + EOIARG_PTR argn, lastArgn; /* EOI arg list walker */ + SOILIST_PTR soilist; /* SOI list walker */ + SOINODE_PTR soin; /* SOI list walker */ + IUH eoiarg; /* arg from raw buf */ + GRAPHLIST_PTR graphn, lastgr, predgr; /* graph list walkers */ + EOINODE_PTR autoS, autoE; /* auto SOI initialisers */ + EOIARG_PTR autoA; /* " " " */ + PROF_TIMEPTR diffstamp; /* pointer to timestamp diff result */ + DOUBLE diffres; /* timestamp diff in usecs */ + IBOOL newvalue = FALSE; /* not seen this arg value before */ + SOIARGENDS_PTR endsoiargs; /* erg SOI ender list walker */ + + /* These copies are needed for AutoSOIs otherwise self-self EOI + * connections are formed with the wrong data. + */ + SAVED EOIARG_PTR lastAutoArg = ARGPTRNULL; /* auto SOI arg spec */ + SAVED PROF_TIMESTAMP AutoTime = { 0L, 0L }; /* auto SOI timestamp */ + + handle = *(*rawdata)++; /* Get EOI handle */ + + eoin = *(EOIDir + handle); + + /* update event stats */ + eoin->count++; + + /* timestamps only in data buffer if EOI SOI associated. Need to do + * this now before (potential) arg read below. + */ + if ((eoin->flags & (EOI_HAS_SOI|EOI_AUTOSOI)) != 0) + { + eoin->timestamp.data[0] = *(*rawdata)++; /* Get timestamp */ + eoin->timestamp.data[1] = *(*rawdata)++; + } + + argn = ARGPTRNULL; /* used below as 'last arg' - Null if no args */ + + /* EOI interested in arguments? */ + if ((eoin->flags & EOI_KEEP_ARGS) == EOI_KEEP_ARGS) + { + eoiarg = *(*rawdata)++; /* optional argument in buffer */ + if (eoin->args == ARGPTRNULL) /* wants args but hasnt seen any */ + { + argn = eoin->args = (EOIARG_PTR)host_malloc(sizeof(EOIARG)); + if (argn == ARGPTRNULL) + { + assert0(NO, "profiler: updateEOI - Out of memory"); + return(FALSE); + } + argn->value = eoiarg; + argn->count = 1; + argn->next = ARGPTRNULL; + argn->back = ARGPTRNULL; + argn->graph = GRAPHPTRNULL; + argn->startsoi = SLISTNULL; + argn->endsoi = SLISTNULL; + newvalue = TRUE; + /*eoin->lastArg = argn;*/ + } + else /* find out if this value known */ + { + if (eoin->lastArg->value == eoiarg) /* same value as last time? */ + { + eoin->lastArg->count++; + argn = eoin->lastArg; + } + else /* find it or add it */ + { + lastArgn = argn = eoin->args; + do { + if (argn->value == eoiarg) /* found */ + { + argn->count++; + /*eoin->lastArg = argn; */ + + /* if this has been updated 'a lot', try to move it up list */ + if ((argn->count % LISTSORTINCR) == 0L) + if (argn != eoin->args) /* not already at head */ + listSort((SORTSTRUCT_PTR)&eoin->args); + break; + } + lastArgn = argn; + argn = argn->next; + } while (argn != ARGPTRNULL); + if (argn == ARGPTRNULL) /* new */ + { + lastArgn->next= (EOIARG_PTR)host_malloc(sizeof(EOIARG)); + if (lastArgn->next == ARGPTRNULL) + { + assert0(NO, "profiler: updateEOI - Out of memory"); + return(FALSE); + } + lastArgn->next->next = argn; /* init new arg elem */ + argn = lastArgn->next; + argn->count = 1; + argn->value = eoiarg; + argn->next = ARGPTRNULL; + argn->graph = GRAPHPTRNULL; + argn->back = lastArgn; + argn->startsoi = SLISTNULL; + argn->endsoi = SLISTNULL; + newvalue = TRUE; + /* eoin->lastArg = argn; */ + } + } + } + + /* if arg level SOI with 'same value' connections, have to make + * new SOI for new values. + */ + if (newvalue && ((eoin->flags & EOI_NEW_ARGS_START_SOI) != 0)) + { + endsoiargs = eoin->argsoiends; + while(endsoiargs != SOIARGENDNULL) + { + AssociateAsArgSOI(handle, endsoiargs->endEOI, + eoiarg, eoiarg, + FALSE); + endsoiargs = endsoiargs->next; + } + + } + } + + /* does EOI want preceeding events graphed? */ + /* or if not, should we make a connection as previous event does */ + if ((eoin->flags & EOI_KEEP_GRAPH) != 0 || (LastEOI != EOIPTRNULL && ((LastEOI->flags & EOI_KEEP_GRAPH) != 0))) + { + /* first event has no predecessor, or first graphing item */ + if (LastEOI == EOIPTRNULL || EventGraph == GRAPHPTRNULL) + { + EventGraph = (GRAPHLIST_PTR)host_malloc(sizeof(GRAPHLIST)); + if (EventGraph == GRAPHPTRNULL) + { + assert0(NO, "Profiler: updateEOI - Out of Memory"); + return(FALSE); + } + EventGraph->graphEOI = eoin; /* pointer back to EOI node */ + EventGraph->graphArg = eoin->lastArg; /* & to arg if relevant */ + EventGraph->next = GRAPHPTRNULL; + EventGraph->succ1 = GRAPHPTRNULL; + EventGraph->succ2 = GRAPHPTRNULL; + EventGraph->extra = GRAPHPTRNULL; + EventGraph->state = 0; + EventGraph->numsucc = 0L; + EventGraph->numpred = 0L; + EventGraph->indent = 0L; + /* now get pointer back from eoi node to graph */ + if (EventGraph->graphArg == ARGPTRNULL) /* args saved ? */ + EventGraph->graphEOI->graph = EventGraph; + else + EventGraph->graphArg->graph = EventGraph; + LastGraph = EventGraph; + } + else /* update or add graph entry, make connection from last */ + { + /* Check if there is already a connection from last event to this */ + + /* Does the last EOI hold a graph node? May not if it doesn't have + * a 'keep graph' attribute. We should include it though as it's + * part of the execution flow & might therefore be important to + * know. The graph attribute won't be set on that mode & so no other + * routes will be known, but it will show up for this link of the + * graph. + */ + if (LastEOI->args == ARGPTRNULL) + lastgr = LastEOI->graph; + else + lastgr = LastEOI->lastArg->graph; + + /* do we need new graph node? */ + if (lastgr == GRAPHPTRNULL) + { + /* add to end of list */ + LastGraph->next = (GRAPHLIST_PTR)host_malloc(sizeof(GRAPHLIST)); + if (LastGraph->next == GRAPHPTRNULL) + { + assert0(NO, "Profiler: updateEOI - Out of Memory"); + return(FALSE); + } + graphn = LastGraph->next; + graphn->graphEOI = LastEOI; /* pointer back to EOI node */ + graphn->graphArg = LastEOI->args; /* & to arg if relevant */ + graphn->next = GRAPHPTRNULL; + graphn->succ1 = GRAPHPTRNULL; + graphn->succ2 = GRAPHPTRNULL; + graphn->extra = GRAPHPTRNULL; + graphn->state = 0; + graphn->numsucc = 0L; + graphn->numpred = 0L; + graphn->indent = 0L; + LastGraph = graphn; + /* now get pointer back from eoi node to graph */ + if (LastEOI->args == ARGPTRNULL) /* args saved ? */ + LastEOI->graph = graphn; + else + LastEOI->lastArg->graph = graphn; + } + + /* does pointer already exist? */ + graphn = GRAPHPTRNULL; + if (argn != ARGPTRNULL && argn->graph != GRAPHPTRNULL) + graphn = argn->graph; + else + if (eoin->graph != GRAPHPTRNULL) + { + graphn = eoin->graph; + } + if (graphn == GRAPHPTRNULL) /* need new node */ + { + /* 'next' pointer is purely scaffolding, not graph related */ + LastGraph->next = (GRAPHLIST_PTR)host_malloc(sizeof(GRAPHLIST)); + if (LastGraph->next == GRAPHPTRNULL) + { + assert0(NO, "Profiler: updateEOI - Out of Memory"); + return(FALSE); + } + graphn = LastGraph->next; + graphn->graphEOI = eoin; /* pointer back to EOI node */ + graphn->graphArg = argn; /* & to arg if relevant */ + graphn->next = GRAPHPTRNULL; + graphn->succ1 = GRAPHPTRNULL; + graphn->succ2 = GRAPHPTRNULL; + graphn->extra = GRAPHPTRNULL; + graphn->state = 0; + graphn->numsucc = 0L; + graphn->numpred = 0L; + graphn->indent = 0L; + LastGraph = graphn; + /* now get pointer back from eoi node to graph */ + if (graphn->graphArg == ARGPTRNULL) /* args saved ? */ + graphn->graphEOI->graph = graphn; + else + graphn->graphArg->graph = graphn; + } + + if (LastEOI->args == ARGPTRNULL) + lastgr = LastEOI->graph; + else + lastgr = LastEOI->lastArg->graph; + + /* graphn points at 'this' node */ + + predgr = lastgr; /* hold first level in case decending down xtra*/ + + /* look through connections in turn. If null, make connection. + * if connection matches, increment counter & bail out + */ + do { + /* succ1 connection first */ + if (lastgr->succ1 == GRAPHPTRNULL) /* no connection - make one */ + { + lastgr->succ1 = graphn; + lastgr->succ1Count = 1; + predgr->numsucc++; + graphn->numpred++; + break; + } + else + if (lastgr->succ1 == graphn) /* connection exists */ + { + lastgr->succ1Count++; + break; + } + else + /* succ1 didn't get there - try succ2 */ + if (lastgr->succ2 == GRAPHPTRNULL) /* emptry slot */ + { + lastgr->succ2 = graphn; + lastgr->succ2Count = 1; + predgr->numsucc++; + graphn->numpred++; + break; + } + else + if (lastgr->succ2 == graphn) /* match */ + { + lastgr->succ2Count++; + break; + } + else + /* walk down to or create extra level */ + if (lastgr->extra == GRAPHPTRNULL) + { + lastgr->extra = (GRAPHLIST_PTR)host_malloc(sizeof(GRAPHLIST)); + if (lastgr->extra == GRAPHPTRNULL) + { + assert0(NO, "Profiler: updateEOI - Out of Memory"); + return(FALSE); + } + lastgr = lastgr->extra; + /* copy id from top level */ + lastgr->graphEOI = predgr->graphEOI; + lastgr->graphArg = predgr->graphArg; + lastgr->succ1 = lastgr->succ2 = lastgr->extra = GRAPHPTRNULL; + lastgr->state = 0; + } + else + lastgr = lastgr->extra; + } while (lastgr != GRAPHPTRNULL); + } + } + + LastEOI = eoin; /* save this event to be next EOI's predecessor */ + eoin->lastArg = argn; /* and update it's last arg ptr (or Null) */ + + autoS = autoE = EOIPTRNULL; /* no new Auto yet */ + + /* Should we form automatic SOI from last event to this */ + if ((eoin->flags & EOI_AUTOSOI) == EOI_AUTOSOI) + { + if (LastAuto != EOIPTRNULL) + { + /* search the 'start' SOI list of last EOI to see if SOI ends here */ + + if (lastAutoArg != ARGPTRNULL) /* search in arg list */ + { + soilist = lastAutoArg->startsoi; + if (soilist == SLISTNULL) /* can't be - no SOIs at last */ + { + autoS = LastAuto; /* prepare new Auto SOI */ + autoA = lastAutoArg; + autoE = eoin; + } + else /* search current set */ + { + do { + if (soilist->soiLink->endEOI == handle) + { + /* first levels match - compare 2nd */ + if (soilist->soiLink->endArg == eoin->lastArg) + break; + } + soilist = soilist->next; + } while (soilist != SLISTNULL); /* look at each link*/ + + if (soilist == SLISTNULL) /* not found */ + { + autoS = LastAuto; /* prepare new Auto SOI */ + autoA = lastAutoArg; + autoE = eoin; + } + } + } + else /* look for non arg case */ + { + soilist = LastAuto->startsoi; + if (soilist == SLISTNULL) /* can't be - no SOIs at last */ + { + autoS = LastAuto; /* prepare new Auto SOI */ + autoA = lastAutoArg; + autoE = eoin; + } + else /* search current set */ + { + do { + if (soilist->soiLink->endEOI == handle) /* found */ + break; + soilist = soilist->next; + } while (soilist != SLISTNULL); /* look at each link*/ + + if (soilist == SLISTNULL) /* not found */ + { + autoS = LastAuto; /* prepare new Auto SOI */ + autoA = lastAutoArg; + autoE = eoin; + } + } + } + } + LastAuto = eoin; + lastAutoArg = eoin->lastArg; + } /* end of AutoSOI generation */ + + /* do we need to check for SOI updates? */ + if ((eoin->flags & EOI_HAS_SOI) == EOI_HAS_SOI) + { + /* update SOIs which this event is part of (start/end). + * Do ends first as if point back to self, then get 0 elapsed + * time otherwise + */ + /* 'ends' first. update counter and elapsed time */ + soilist = eoin->endsoi; + while (soilist != SLISTNULL) + { + soin = soilist->soiLink; + /* Don't update if end hasn't had a start */ + if (soin->startCount > soin->endCount) + { + diffstamp = HostTimestampDiff(&soin->soistart, &eoin->timestamp); + diffres = HostProfUSecs(diffstamp); + if (diffres > 100.0 * soin->mintime) + { + if (soin->endCount) /* ie all but first */ + { + soin->bigtime += diffres; + soin->discardCount++; + if (diffres > soin->bigmax) + soin->bigmax = diffres; + } + else + { + soin->time += diffres; + soin->mintime = soin->maxtime = diffres; + } + } + else + { + soin->time += diffres; + if (diffres < soin->mintime) + soin->mintime = diffres; + else if (diffres > soin->maxtime) + soin->maxtime = diffres; + } + soin->endCount++; + } + soilist = soilist->next; /* next node */ + } + + /* repeat for Arg level */ + if (eoin->lastArg != ARGPTRNULL) + { + soilist = eoin->lastArg->endsoi; + while (soilist != SLISTNULL) + { + soin = soilist->soiLink; + /* Don't update if end hasn't had a start */ + if (soin->startCount > soin->endCount) + { + diffstamp = HostTimestampDiff(&soin->soistart, &eoin->timestamp); + diffres = HostProfUSecs(diffstamp); + if (diffres > 100.0 * soin->mintime) + { + if (soin->endCount) + { + soin->bigtime += diffres; + soin->discardCount++; + if (diffres > soin->bigmax) + soin->bigmax = diffres; + } + else + { + soin->time += diffres; + soin->mintime = soin->maxtime = diffres; + } + } + else + { + soin->time += diffres; + if (diffres < soin->mintime) + soin->mintime = diffres; + else if (diffres > soin->maxtime) + soin->maxtime = diffres; + } + soin->endCount++; + } + soilist = soilist->next; /* next node */ + } + } + + /* 'starts' next. Update counter and timestamp */ + + /* EOI level first */ + soilist = eoin->startsoi; + while (soilist != SLISTNULL) + { + soin = soilist->soiLink; + soin->startCount++; + soin->soistart.data[0] = eoin->timestamp.data[0]; + soin->soistart.data[1] = eoin->timestamp.data[1]; + soilist = soilist->next; /* next node */ + } + + /* now repeat for extra (Arg level */ + if (eoin->lastArg != ARGPTRNULL) + { + soilist = eoin->lastArg->startsoi; + while (soilist != SLISTNULL) + { + soin = soilist->soiLink; + soin->startCount++; + soin->soistart.data[0] = eoin->timestamp.data[0]; + soin->soistart.data[1] = eoin->timestamp.data[1]; + soilist = soilist->next; /* next node */ + } + } + } + + /* Now SOIs processed, set up any links for new AutoSOIs */ + if (autoS != EOIPTRNULL) + addAutoSOI(autoS, autoA, &AutoTime, autoE); + + /* now can copy new 'last' auto timestamp */ + if ((eoin->flags & EOI_AUTOSOI) == EOI_AUTOSOI) + { + AutoTime.data[0] = eoin->timestamp.data[0]; + AutoTime.data[1] = eoin->timestamp.data[1]; + } + + return(TRUE); /* did that one OK */ +} + + +/*( +=============================== listSort ============================= + +PURPOSE: Sort any list of SORTSTRUCT structures which have a common header. + The elements are sorted into decreasing 'count' order on the + assumption that the greater counts will continue to be requested as + frequently and therefore should be at the head of the list to reduce + search time. Based on exchange sort as gives best performance trade + off in sorting unsorted lists and already sorted lists (the latter + being quite likely). + +INPUT: head: head of list to sort + +OUTPUT: None + +========================================================================= +)*/ + +LOCAL void +listSort IFN1 (SORTSTRUCT_PTR, head) +{ + SORTSTRUCT current, check, this, tmp; /* list walker */ + IBOOL swap; /* ordering change indicator */ + + if (*head == (SORTSTRUCT)0) /* sanity check */ + return; + + current = *head; + do { + check = current; + + this = check->next; + swap = FALSE; + + while(this != (SORTSTRUCT)0) /* check this list elem against rest */ + { + if (this->count > check->count) + { + check = this; /* swap current with 'biggest' */ + swap = TRUE; + } + this = this->next; + } + if (swap) /* swap current & check */ + { + if (current->next == check) /* adjacent elements, current first */ + { + current->next = check->next; + if (current->next != (SORTSTRUCT)0) /* now last element */ + current->next->back = current; + check->next = current; + check->back = current->back; + current->back = check; + if (check->back != (SORTSTRUCT)0) /* now head of list */ + check->back->next = check; + else + *head = check; + } + else /* intermediate element(s) */ + { + current->next->back = check; + tmp = check->next; + if (tmp != (SORTSTRUCT)0) /* swap with end of list? */ + check->next->back = current; + check->next = current->next; + current->next = tmp; + check->back->next = current; + tmp = current->back; + if (tmp != (SORTSTRUCT)0) /* head of list */ + current->back->next = check; + else + *head = check; + current->back = check->back; + check->back = tmp; + } + } + current = check->next; /* check is where current was */ + } while(current != (SORTSTRUCT)0); +} + +/*( +============================ addSOIlinktoEOI =============================== + +PURPOSE: add to the list of SOIs for which these events are triggers. + +INPUT: soistart: EOI handle of starting event + soiend: EOI handle of ending event + soiptr: pointer to SOI node + +OUTPUT: None + +========================================================================= +)*/ + +LOCAL void +addSOIlinktoEOIs IFN3 (EOIHANDLE, soistart, EOIHANDLE, soiend, + SOINODE_PTR, soiptr) +{ + EOINODE_PTR seoin, eeoin; /* start & end eoi ptrs */ + SOILIST_PTR soil; /* list walker */ + IU8 *notime; /* used to enable timestamp collection in enable list */ + + if (soistart == soiend) /* get EOI nodes for handles */ + { + seoin = eeoin = findEOI(soistart); + } + else + { + seoin = findEOI(soistart); + if (seoin == EOIPTRNULL) + { + fprintf(trace_file, "Can't find start EOI %d\n",soistart); + return; + } + eeoin = findEOI(soiend); + if (eeoin == EOIPTRNULL) + { + fprintf(trace_file, "Can't find end EOI %d\n",soiend); + return; + } + } + + /* check for timestamp enabling before adding SOIs */ + if (seoin->startsoi == SLISTNULL && seoin->endsoi == SLISTNULL) + { + ProcessProfBuffer(); /* flush existing entries w/o timestamps*/ + notime = EOIEnable + soistart; + *notime &= ~EOI_NOTIME; + } + if (eeoin->startsoi == SLISTNULL && eeoin->endsoi == SLISTNULL) + { + ProcessProfBuffer(); /* flush existing entries w/o timestamps*/ + notime = EOIEnable + soiend; + *notime &= ~EOI_NOTIME; + } + + /* mark EOIs as valid for SOI updates */ + seoin->flags |= EOI_HAS_SOI; + eeoin->flags |= EOI_HAS_SOI; + + /* add to (end of) start list */ + if (seoin->startsoi == SLISTNULL) /* first starter */ + { + seoin->startsoi = (SOILIST_PTR)host_malloc(sizeof(SOILIST)); + if (seoin->startsoi == SLISTNULL) + { + assert0(NO, "Profiler:AddSOIlinktoEOI - Out of Memory"); + return; + } + seoin->startsoi->soiLink = soiptr; + seoin->startsoi->next = SLISTNULL; + } + else + { + soil = seoin->startsoi; /* search list */ + while (soil->next != SLISTNULL) /* BUGBUG sanity check?? */ + soil = soil->next; + + /* Add new SOI pointer to end of list */ + soil->next = (SOILIST_PTR)host_malloc(sizeof(SOILIST)); + if (soil->next == SLISTNULL) + { + assert0(NO, "Profiler:AddSOIlinktoEOI - Out of Memory"); + return; + } + soil->next->soiLink = soiptr; + soil->next->next = SLISTNULL; + } + + /* now end SOI */ + if (eeoin->endsoi == SLISTNULL) /* first ender */ + { + eeoin->endsoi = (SOILIST_PTR)host_malloc(sizeof(SOILIST)); + if (eeoin->endsoi == SLISTNULL) + { + assert0(NO, "Profiler:AddSOIlinktoEOI - Out of Memory"); + return; + } + eeoin->endsoi->soiLink = soiptr; + eeoin->endsoi->next = SLISTNULL; + } + else /* end of current */ + { + soil = eeoin->endsoi; /* search list */ + while (soil->next != SLISTNULL) /* BUGBUG sanity check?? */ + soil = soil->next; + + /* Add new SOI pointer to end of list */ + soil->next = (SOILIST_PTR)host_malloc(sizeof(SOILIST)); + if (soil->next == SLISTNULL) + { + assert0(NO, "Profiler:AddSOIlinktoEOI - Out of Memory"); + return; + } + soil->next->soiLink = soiptr; + soil->next->next = SLISTNULL; + } + +} + +/*( +======================== printEOIGuts =========================== + +PURPOSE: Print the information from inside an EOI node + +INPUT: stream: output file stream + eoin: pointer to EOI node + ftotal: double total count for forming percentages. + parg: print arg list + report: add pretty printing or simple o/p. + +OUTPUT: + +========================================================================= +)*/ + +LOCAL void +printEOIGuts IFN5 (FILE *, stream, EOINODE_PTR, eoin, DOUBLE, ftotal, + IBOOL, parg, IBOOL, report) +{ + EOIARG_PTR argn; /* list walker */ + DOUBLE fsubtot; /* total count of times args seen */ + + if (report) + { + if (ftotal == 0.0) /* don't show percentage calcn */ + fprintf(stream, "%-40s %10d\n", eoin->tag, eoin->count); + else + fprintf(stream, "%-40s %10d %6.2f\n", eoin->tag, eoin->count, ((DOUBLE)eoin->count/ftotal)*100.0); + } + else /* simple style */ + fprintf(stream, "%s %d\n", eoin->tag, eoin->count); + + if (eoin->count) /* get total for %ages */ + fsubtot = (DOUBLE)eoin->count; + else + fsubtot = 1.0; + + /* show arg breakdown if requested */ + if (parg) + { + /* any args recorded? */ + if (eoin->args != ARGPTRNULL) + { + if (report) + fprintf(stream, " Arg Count %% Tot. %%\n"); + + /* sort argument list */ + listSort((SORTSTRUCT_PTR) &eoin->args); + + argn = eoin->args; + if (report) /* already shown EOI, now args with % */ + { + while (argn) /* show argument elements */ + { + fprintf(stream, " %-8#x %8ld %6.2f %6.2f\n", + argn->value, argn->count, + ((DOUBLE)argn->count/fsubtot)*100.0, + ((DOUBLE)argn->count/ftotal)*100.0); + argn = argn->next; + } + } + else /* simple o/p for graphing */ + { + while (argn) /* show argument elements */ + { + fprintf(stream, "%s(%ld) %ld\n", eoin->tag, argn->value, argn->count); + argn = argn->next; + } + } + } + } +} + +/*( +======================== updateSOIstarts =========================== + +PURPOSE: To find all SOIs which have been started but not finished and + move on their start timestamps by the amount of the flush delay. + +INPUT: startflush: time flush started. + +OUTPUT: + +========================================================================= +)*/ +LOCAL void +updateSOIstarts IFN1(PROF_TIMEPTR, startflush) +{ + SOINODE_PTR soin; /* list walker */ + PROF_TIMESTAMP now; /* timestamp at current node */ + PROF_TIMEPTR tdelta; /* pointer to time diff */ + + soin = SectionsOfInterest; + + HostWriteTimestamp(&now); /* do this once so error constant */ + now.data[0] = BufStartTime.data[0]; + if (now.data[1] < BufStartTime.data[1] ) + now.data[0]++; + + tdelta = HostTimestampDiff(startflush, &now); + + while(soin != SOIPTRNULL) + { + /* update non-ended SOIs start time by flush time */ + if (soin->startCount > soin->endCount) + { + HostSlipTimestamp(&soin->soistart, tdelta); + /* + fprintf( quickhack, "\t\t\t\t" ); + HostPrintTimestampFine( quickhack, tdelta ); + fprintf( quickhack, "\n" ); + */ + } + soin = soin->next; + } +} + +/*( +======================== spaces =========================== + +PURPOSE: Print some number of spaces on stream + +INPUT: stream: output file stream + +OUTPUT: + +========================================================================= +)*/ +LOCAL void +spaces IFN2(FILE *, stream, ISM32, curindent) +{ + while(curindent--) + fputc(' ', stream); /* errrm... thats it */ +} + +/*( +=============================== NewEOI ============================= + +PURPOSE: Create a new Event of Interest + +INPUT: tag: some 'human form' identifier for the new EOI + attrib: flag for EOI attribute settings. + +OUTPUT: Returns handle of new EOI + +========================================================================= +)*/ + +GLOBAL EOIHANDLE +NewEOI IFN2 (char *, tag, IU8, attrib) +{ + FILE *initFp; /* file pointer to init file */ + char buf[1024]; /* working space */ + char *tag2; /* point to tags in file */ + char *ptr; /* working pointer */ + IU8 flags; /* flags values in file */ + EOIHANDLE eoinum; /* EOI parameters in file */ + + if (!Profiling_enabled) + { + fprintf( stderr, "EOI not created. Profiling disabled\n" ); + return ( (EOIHANDLE) -1 ); + } + + if (CurMaxEOI == MaxEOI) /* oops - enable table full. Grow it */ + { + MaxEOI += INITIALENABLESIZE; /* add plenty of room */ + + /* ASSUMES host_realloc is non destructive */ + EOIEnable = (IU8 *)host_realloc(EOIEnable, MaxEOI); + if (EOIEnable == (IU8 *)0) + { + assert0(NO, "profiler:NewEOI:Out of Memory"); + return(-1); + } + EOIDir = (EOINODE_PTR *)host_realloc(EOIDir, MaxEOI * sizeof(EOINODE_PTR) ); + if (EOIDir == (EOINODE_PTR *)0 ) + { + assert0(NO, "profiler:NewEOI:Out of Memory"); + return(-1); + } + /* pointer may have changed, update GDP */ + setEOIEnableAddr(EOIEnable); + } + CurMaxEOI++; /* definitely room */ + + + if ((initFp = fopen(HostProfInitName(), "r")) == (FILE *)0) + { + (void)addEOI(CurMaxEOI, tag, attrib); /* No init file, enable all */ +#ifndef PROD + printf( "Adding EOI %d (%s) for C (No init file)\n", CurMaxEOI, tag ); +#endif + return(CurMaxEOI); /* return new handle */ + } + + /* process file, one line at a time */ + while(fgets(buf, sizeof(buf), initFp) != (char *)0) + { + if (buf[0] == '#') /* comment line */ + continue; + + /* EOI format: EOI:number:tag:flags */ + if (strncmp(&buf[0], "EOI:", 4) == 0) + { + eoinum = (EOIHANDLE)atol(&buf[4]); /* should stop at : */ + if (eoinum) + continue; /* EOI in EDL not C */ + + tag2 = strchr(&buf[4], (int)':'); /* find tag */ + if (tag2 == (char *)0) + { + fprintf(stderr, "Ignoring request '%s': bad syntax\n", &buf[0]); + continue; + } + tag2++; /* start of tag */ + + ptr = strchr(tag2, (int)':'); /* find end of tag (at :) */ + if (ptr == (char *)0) + { + fprintf(stderr, "Ignoring request '%s': bad syntax\n", &buf[0]); + continue; + } + *ptr = '\0'; /* terminate tag */ + + flags = (IU8)atoi(++ptr) | attrib; /* get flags */ + + if (!strcmp(tag, tag2) ) + { + (void)addEOI(CurMaxEOI, tag, flags); +#ifndef PROD + printf( "Adding C EOI %d (%s), found in init file\n", CurMaxEOI, tag ); +#endif + return(CurMaxEOI); + } + } + } + + (void)addEOI(CurMaxEOI, tag, attrib | EOI_DISABLED); +#ifndef PROD + printf( "Adding disabled C EOI %d (%s), not found\n", CurMaxEOI, tag ); +#endif + return(CurMaxEOI); /* return new handle */ +} + +/*( +============================ AssociateAsSOI =============================== + +PURPOSE: specify two EOIs as start and end events of (new) SOI + +INPUT: startEOI: start event handle + endEOI: end event handle + +OUTPUT: New SOI handle + +========================================================================= +)*/ + +GLOBAL SOIHANDLE +AssociateAsSOI IFN2 (EOIHANDLE, startEOI, EOIHANDLE, endEOI) +{ + /* + * Add a new element to end of the SOI list. The frequent access to the + * data will be via pointers embedded in the relevant EOI elements and + * so don't care about any ordering of SOI list. Will need to search EOI + * list with handle to get access to the pointers. + */ + SOINODE_PTR soin, lastSoin; /* list walker */ + + if (!Profiling_enabled) + { + fprintf( stderr, "SOI not created. Profiling disabled\n" ); + return ( (SOIHANDLE) -1 ); + } + + /* sanity check */ + if (startEOI == endEOI) + { + assert1(NO, "Profiler:AssociateAsSOI - Can't have same start & end EOIs (%ld)", startEOI); + return(-1); + } + + /* first event added is special case. */ + if (SectionsOfInterest == SOIPTRNULL) + { + /* add first node */ + SectionsOfInterest = (SOINODE_PTR)host_malloc(sizeof(SOINODE)); + if (SectionsOfInterest == SOIPTRNULL) + { + assert0(NO, "Profiler:AssociateAsSOI - Out of memory") + return(-1); + } + soin = SectionsOfInterest; + } + else + { + soin = LastSOI; + soin->next = (SOINODE_PTR)host_malloc(sizeof(SOINODE)); + if (soin->next == SOIPTRNULL) + { + assert0(NO, "Profiler:AssociateAsSOI - Out of memory") + return(-1); + } + soin = soin->next; + } + + soin->handle = MaxSOI++; /* new handle */ + soin->startEOI = startEOI; + soin->endEOI = endEOI; + soin->startArg = soin->endArg = ARGPTRNULL; + soin->startCount = soin->endCount = soin->discardCount = 0L; + soin->soistart.data[0] = 0L; + soin->soistart.data[1] = 0L; + soin->next = SOIPTRNULL; + soin->flags = SOI_DEFAULTS; + soin->time = 0.0; + soin->bigtime = 0.0; + soin->maxtime = 0.0; + soin->mintime = 0.0; + soin->bigmax = 0.0; + + /* add a pointer to this SOI to the start/end lists of the relevant EOIs */ + addSOIlinktoEOIs(startEOI, endEOI, soin); + + /* end of SOI list has moved */ + LastSOI = soin; + + /* return new handle */ + return(soin->handle); +} + +/*( +============================ AssociateAsArgSOI =============================== + +PURPOSE: specify two EOIs and optionally two arg values as start and end events + of (new) SOI. Alternatively if 'sameArg' is true, automatically create + SOIs between EOIs with 'same value' arguments. + +INPUT: startEOI: start event handle + endEOI: end event handle + startArg: startArg + endArg: endArg + sameArgs: FALSE if start/endArg valid, otherwise TRUE for auto generation + +OUTPUT: New SOI handle + +========================================================================= +)*/ + +GLOBAL SOIHANDLE +AssociateAsArgSOI IFN5 (EOIHANDLE, startEOI, EOIHANDLE, endEOI, + IUM32, startArg, IUM32, endArg, IBOOL, sameArgs) +{ + /* + * Add a new element to end of the SOI list. The frequent access to the + * data will be via pointers embedded in the relevant EOI elements and + * so don't care about any ordering of SOI list. Will need to search EOI + * list with handle to get access to the pointers. + */ + SOINODE_PTR soin, lastSoin; /* list walker */ + EOINODE_PTR startPtr, endPtr; + SOIARGENDS_PTR addEnds, prevEnds; + EOIARG_PTR argPtr, lastArg; + SOILIST_PTR argsois; + + if (!Profiling_enabled) + { + fprintf( stderr, "SOI not created. Profiling disabled\n" ); + return ( (SOIHANDLE) -1 ); + } + + startPtr = findEOI(startEOI); + if (startPtr == EOIPTRNULL) + { + fprintf(trace_file, "Profiler:AssociateAsArgSOI - start EOI %ld not found\n", startEOI); + return(-1); + } + if ((startPtr->flags & EOI_KEEP_ARGS) == 0) + { + fprintf(trace_file, "Error: AssociateAsArgSOI - start arg not marked for flag collection\n"); + return(-1); + } + + endPtr = findEOI(endEOI); + if (endPtr == EOIPTRNULL) + { + fprintf(trace_file, "Profiler:AssociateAsArgSOI - end EOI %ld not found\n", endEOI); + return(-1); + } + if ((endPtr->flags & EOI_KEEP_ARGS) == 0) + { + fprintf(trace_file, "Error: AssociateAsArgSOI - end arg not marked for flag collection\n"); + return(-1); + } + + /* enable arg collection for start & end EOIs */ + *(EOIEnable + startEOI) &= ~EOI_NOTIME; + *(EOIEnable + endEOI) &= ~EOI_NOTIME; + + startPtr->flags |= EOI_HAS_SOI; + endPtr->flags |= EOI_HAS_SOI; + + if (sameArgs) /* won't be adding SOI yet, just info when args appear */ + { + /* mark 'same value' collection */ + startPtr->flags |= EOI_NEW_ARGS_START_SOI; + addEnds = startPtr->argsoiends; + if (addEnds == SOIARGENDNULL) + { + /* first in list */ + addEnds = (SOIARGENDS_PTR)host_malloc(sizeof(SOIARGENDS)); + if (addEnds == SOIARGENDNULL) + goto nomem; + startPtr->argsoiends = addEnds; + } + else + { + /* add new node to end of list */ + do { + prevEnds = addEnds; + addEnds = addEnds->next; + } while (addEnds != SOIARGENDNULL); + addEnds = (SOIARGENDS_PTR)host_malloc(sizeof(SOIARGENDS)); + if (addEnds == SOIARGENDNULL) + goto nomem; + prevEnds->next = addEnds; + } + addEnds->endEOI = endEOI; + addEnds->next = SOIARGENDNULL; + + return(0); /* hmmm, can't get SOI handle here ... */ + } + + /* first event added is special case. */ + if (SectionsOfInterest == SOIPTRNULL) + { + /* add first node */ + SectionsOfInterest = (SOINODE_PTR)host_malloc(sizeof(SOINODE)); + if (SectionsOfInterest == SOIPTRNULL) + goto nomem; + soin = SectionsOfInterest; + } + else + { + soin = LastSOI; + soin->next = (SOINODE_PTR)host_malloc(sizeof(SOINODE)); + if (soin->next == SOIPTRNULL) + goto nomem; + soin = soin->next; + } + + /* get pointer to (or more probably create) arg entries for start & end EOIs */ + argPtr = findOrMakeArgPtr(startPtr, startArg); + + if (argPtr == ARGPTRNULL) + return(-1); + + /* argPtr points to new or existing arg val - link to startArg */ + soin->startArg = argPtr; + /* and link soin to argPtr start */ + argsois = argPtr->startsoi; + + if (argsois == SLISTNULL) /* list empty */ + { + argsois = (SOILIST_PTR)host_malloc(sizeof(SOILIST)); + if (argsois == SLISTNULL) + goto nomem; + argPtr->startsoi = argsois; + } + else /* add to end of lust */ + { + while (argsois->next != SLISTNULL) + argsois = argsois->next; + argsois->next = (SOILIST_PTR)host_malloc(sizeof(SOILIST)); + if (argsois->next == SLISTNULL) + goto nomem; + argsois = argsois->next; + } + argsois->next = SLISTNULL; + argsois->soiLink = soin; /* connect to new soi */ + + argPtr = findOrMakeArgPtr(endPtr, endArg); + + if (argPtr == ARGPTRNULL) + return(-1); + + /* argPtr points to new or existing arg val - link to endArg */ + soin->endArg = argPtr; + /* and link soin to argPtr end */ + argsois = argPtr->endsoi; + + if (argsois == SLISTNULL) /* list empty */ + { + argsois = (SOILIST_PTR)host_malloc(sizeof(SOILIST)); + if (argsois == SLISTNULL) + goto nomem; + argPtr->endsoi = argsois; + } + else /* add to end of lust */ + { + while (argsois->next != SLISTNULL) + argsois = argsois->next; + argsois->next = (SOILIST_PTR)host_malloc(sizeof(SOILIST)); + if (argsois->next == SLISTNULL) + goto nomem; + argsois = argsois->next; + } + argsois->next = SLISTNULL; + argsois->soiLink = soin; /* connect to new soi */ + + soin->handle = MaxSOI++; /* new handle */ + soin->startEOI = startEOI; + soin->endEOI = endEOI; + soin->startCount = soin->endCount = soin->discardCount = 0L; + soin->soistart.data[0] = 0L; + soin->soistart.data[1] = 0L; + soin->next = SOIPTRNULL; + soin->flags = SOI_FROMARG; + soin->time = 0.0; + soin->bigtime = 0.0; + soin->maxtime = 0.0; + soin->mintime = 0.0; + soin->bigmax = 0.0; + + /* end of SOI list has moved */ + LastSOI = soin; + + /* return new handle */ + return(soin->handle); + +nomem: /* collect all 8 cases of same error together */ + fprintf(trace_file, "Profiler:AssociateAsArgSOI - Out of memory\n"); + return(-1); +} + +/*( + +============================== AtEOIPoint ============================== + +PURPOSE: Call from C on event trigger. Write data to raw data buffer. + +INPUT: handle: EOI handle of triggered event. + +OUTPUT: None + +========================================================================= +)*/ + +GLOBAL void +AtEOIPoint IFN1 (EOIHANDLE, handle) +{ + IUH *curRawBuf; /* pointer into raw data buf */ + IU8 timenab, enable; /* enable vals */ + + if (ProfileRawData == (EOI_BUFFER_FORMAT *)0) + { + fprintf(stderr, "AtEOIPoint %d called before initialised\n", handle ); + return; + } + + /* Check whether this EOI enabled */ + timenab = *(EOIEnable + handle); + + enable = timenab & ~EOI_NOTIME; /* remove time from enable stuff */ + if (enable != EOI_DEFAULTS) /* i.e. enabled, no triggers */ + { + if (enable & EOI_HOSTHOOK) /* call host trigger & return */ + { + HostProfHook(); + return; + } + if (enable & EOI_ENABLE_ALL) /* trigger - turn all events on */ + EnableAllEOIs(); + else + if (enable & EOI_DISABLE_ALL) /* trigger - turn all events off */ + { + DisableAllEOIs(); + return; + } + else /* DISABLED other valid legal setting */ + { + /* sanity check */ + assert1((enable & EOI_DISABLED), "AtEOIPoint: Invalid enable flag %x", enable); + return; /* EOI disabled so return */ + } + } + + /* get current raw buffer pointer */ + curRawBuf = (IUH *)*AddProfileData; + + /* write out handle */ + *curRawBuf++ = handle; + + /* check if timestamps required */ + if ((timenab & EOI_NOTIME) == 0) + { + /* write out timestamp */ + HostWriteTimestamp((PROF_TIMEPTR)curRawBuf); + curRawBuf += 2; + } + + *AddProfileData = (EOI_BUFFER_FORMAT *)curRawBuf; /* write back new ptr to GDP */ + + /* check buffer not full */ + if (curRawBuf >= (IUH *)MaxProfileData) + ProcessProfBuffer(); +} + +/*( + +============================= AtEOIPointArg ============================ + +PURPOSE: Call from C on event trigger. Write data to raw data buffer. + Triffikly similar to AtEOIPoint but has 'arg' bit added. + +INPUT: handle: EOI handle of triggered event. + arg: IUH argument value to be written + +OUTPUT: None + +========================================================================= +)*/ + +GLOBAL void +AtEOIPointArg IFN2 (EOIHANDLE, handle, IUH, arg) +{ + IUH *curRawBuf; /* pointer into raw data buf */ + IU8 timenab, enable; /* enable val */ + + if (ProfileRawData == (EOI_BUFFER_FORMAT *)0) + { + fprintf(stderr, "AtEOIPoint %d called before initialised\n", handle ); + return; + } + + /* Check whether this EOI enabled */ + timenab = *(EOIEnable + handle); + + enable = timenab & ~EOI_NOTIME; /* remove time from enable stuff */ + if (enable != EOI_DEFAULTS) /* i.e. enabled, no triggers */ + { + if (enable & EOI_HOSTHOOK) /* call host trigger & return */ + { + HostProfArgHook(arg); + return; + } + if (enable & EOI_ENABLE_ALL) /* trigger - turn all events on */ + EnableAllEOIs(); + else + if (enable & EOI_DISABLE_ALL) /* trigger - turn all events off */ + { + DisableAllEOIs(); + return; + } + else /* DISABLED other valid legal setting */ + { + /* sanity check */ + assert1((enable & EOI_DISABLED), "AtEOIPoint: Invalid enable flag %x", enable); + return; /* EOI disabled so return */ + } + } + + /* get current raw buffer pointer */ + curRawBuf = (IUH *)*AddProfileData; + + /* write out handle */ + *curRawBuf++ = handle; + + /* check if timestamps required */ + if ((timenab & EOI_NOTIME) == 0) + { + /* write out timestamp */ + HostWriteTimestamp((PROF_TIMEPTR)curRawBuf); + curRawBuf += 2; + } + + /* write out arg */ + *curRawBuf++ = arg; + + *AddProfileData = (EOI_BUFFER_FORMAT *)curRawBuf; /* write back new ptr to GDP */ + + /* check buffer not full */ + if (curRawBuf >= (IUH *)MaxProfileData) + ProcessProfBuffer(); +} + +/*( + +============================ ProcessProfBuffer ============================ + +PURPOSE: Run through the raw data buffer and update EOIs + +INPUT: None. + +OUTPUT: None + +========================================================================= +)*/ + +GLOBAL void +ProcessProfBuffer IFN0 () +{ + PROF_TIMESTAMP startFlush, endFlush; /* time taken for flush */ + IUH *rawptr; /* buffer ptr */ + SAVED IBOOL inppb = FALSE; /* re-entrancy firewall */ + + if (inppb) + { + fprintf(stderr, "Warning: preventing reentrant attempt to flush profiling info\n"); + return; + } + inppb = TRUE; + HostEnterProfCritSec(); /* critical section buffer access if needed */ + + ProfFlushCount++; /* # flush routine called */ + + HostWriteTimestamp(&startFlush); /* time this flush */ + + /* Process the buffer one Raw data slot at a time. As the slots + * can be of different sizes (arg / non-arg), let the update + * routine move the pointer on for us. + */ + rawptr = (IUH *)ProfileRawData; + while(rawptr < (IUH *)*AddProfileData) + if (!updateEOI(&rawptr)) + break; + + setAddProfileDataPtr(ProfileRawData); + AddProfileData = getAddProfileDataAddr(); + + updateSOIstarts(&startFlush); /* compensate for flush time */ + + HostWriteTimestamp(&endFlush); /* stop flush timing */ + HostAddTimestamps(&ProfFlushTime, HostTimestampDiff(&startFlush, &endFlush)); + inppb = FALSE; + HostLeaveProfCritSec(); +} + +/*( +=============================== GetEOIName ============================ + +PURPOSE: Get the name (tag) associated with a given EOI + +INPUT: handle: EOI handle to fetch. + +OUTPUT: tag from that EOI or Null if not found. + +========================================================================= +)*/ + +GLOBAL char * +GetEOIName IFN1 (EOIHANDLE, handle) +{ + EOINODE_PTR srch; /* search ptr */ + + srch = findEOI(handle); /* lookup EOI node in list */ + + if (srch == EOIPTRNULL) /* Null return means 'not found' */ + return((char *)0); + else + return(srch->tag); /* name in tag field */ +} + +/*( +============================ DisableEOI ============================= + +PURPOSE: Turn off a given EOI. Set 'Disabled' flag in enable table entry. + +INPUT: handle: EOIHANDLE to be disabled + +OUTPUT: None. + +========================================================================= +)*/ + +GLOBAL void +DisableEOI IFN1(EOIHANDLE, handle) +{ + IU8 *enptr; /* pointer into enable buffer */ + + enptr = EOIEnable + handle; + *enptr |= EOI_DISABLED; /* set 'disabled' bit */ +} + +/*( +============================ DisableAllEOIs ============================= + +PURPOSE: Turn off all EOIs. Run through enable list, adding 'Disabled' + flag. + +INPUT: None. + +OUTPUT: None. + +========================================================================= +)*/ + +GLOBAL void +DisableAllEOIs IFN0() +{ + IU8 *enptr; /* pointer into enable buffer */ + ISM32 pool; /* loop counter */ + + enptr = EOIEnable; /* start of enable buffer */ + + for (pool = 0; pool < CurMaxEOI; pool++) + *enptr++ |= EOI_DISABLED; /* set 'disabled' bit */ +} + +/*( +============================ EnableEOI ============================= + +PURPOSE: Turn on a given EOI. Remove 'Disabled' flag from entry in enable table. + +INPUT: handle: EOIHANDLE to be enabled + +OUTPUT: None. + +========================================================================= +)*/ + +GLOBAL void +EnableEOI IFN1(EOIHANDLE, handle) +{ + IU8 *enptr; /* pointer into enable buffer */ + + enptr = EOIEnable + handle; + *enptr &= ~EOI_DISABLED; /* clear 'disabled' bit */ +} + +/*( +============================ EnableAllEOIs ============================= + +PURPOSE: Turn on all EOIs. Run through enable list, removing 'Disabled' + flag. + +INPUT: None. + +OUTPUT: None. + +========================================================================= +)*/ + +GLOBAL void +EnableAllEOIs IFN0() +{ + IU8 *enptr; /* pointer into enable buffer */ + ISM32 pool; /* loop counter */ + + enptr = EOIEnable; /* start of enable buffer */ + + for (pool = 0; pool < CurMaxEOI; pool++) + *enptr++ &= ~EOI_DISABLED; /* clear 'disabled' bit */ +} + + +/*( +========================== SetEOIAsHostTrigger =========================== + +PURPOSE: Turn on the host trigger flag for EOI in enable table. + +INPUT: handle: EOIHANDLE to be set + +OUTPUT: None. + +======================================================================== +)*/ + +GLOBAL void +SetEOIAsHostTrigger IFN1(EOIHANDLE, handle) +{ + IU8 *enptr; /* pointer into enable buffer */ + + enptr = EOIEnable + handle; + *enptr |= EOI_HOSTHOOK; /* set 'host hook' bit */ +} + +/*( +======================== ClearEOIAsHostTrigger =========================== + +PURPOSE: Turn off the host trigger flag for EOI in enable table. + +INPUT: handle: EOIHANDLE to be cleared + +OUTPUT: None. + +======================================================================== +)*/ + +GLOBAL void +ClearEOIAsHostTrigger IFN1(EOIHANDLE, handle) +{ + IU8 *enptr; /* pointer into enable buffer */ + + enptr = EOIEnable + handle; + *enptr &= ~EOI_HOSTHOOK; /* clear 'host hook' bit */ +} + + +/*( +========================== SetEOIAutoSOI =========================== + +PURPOSE: Turn on the AutoSOI attribute for EOI. + +INPUT: handle: EOIHANDLE to be set + +OUTPUT: None. + +======================================================================== +)*/ + +GLOBAL void +SetEOIAutoSOI IFN1(EOIHANDLE, handle) +{ + IU8 *enptr; /* pointer into enable buffer */ + EOINODE_PTR eoin; /* node for handle */ + + eoin = findEOI(handle); + if (eoin == EOIPTRNULL) + { + assert1(NO, "SetEOIAutoSOI - bad handle %d", handle); + return; + } + + /* if not already SOI'ed in some way then need to enable timestamps */ + if ((eoin->flags & (EOI_AUTOSOI|EOI_HAS_SOI)) == 0) + { + ProcessProfBuffer(); /* flush non timestamp versions */ + enptr = EOIEnable + handle; + *enptr &= ~EOI_NOTIME; /* allow timestamp collection */ + } + eoin->flags |= EOI_AUTOSOI; +} + +/*( +========================== ClearEOIAutoSOI =========================== + +PURPOSE: Turn off the AutoSOI attribute for EOI. + +INPUT: handle: EOIHANDLE to be set + +OUTPUT: None. + +======================================================================== +)*/ + +GLOBAL void +ClearEOIAutoSOI IFN1(EOIHANDLE, handle) +{ + IU8 *enptr; /* pointer into enable buffer */ + EOINODE_PTR eoin; /* node for handle */ + + eoin = findEOI(handle); /* get pointer to node for handle */ + if (eoin == EOIPTRNULL) + { + assert1(NO, "ClearEOIAutoSOI - bad handle %d", handle); + return; + } + + /* keep SOIs made to date, but don't create any more */ + eoin->flags &= ~EOI_AUTOSOI; +} + +/*( +=============================== ResetEOI ============================ + +PURPOSE: Reset EOI counters + +INPUT: handle: EOI handle to reset. + +OUTPUT: None. + +========================================================================= +)*/ + +GLOBAL void +ResetEOI IFN1 (EOIHANDLE, handle) +{ + EOINODE_PTR srch; /* search ptr */ + EOIARG_PTR argnp, lastArgnp; /* arg list walkers */ + + srch = findEOI(handle); /* lookup EOI node in list */ + + if (srch == EOIPTRNULL) /* Null return means 'not found' */ + { + assert1(NO, "Profiler:ResetEOI - handle %ld not found", handle); + } + else + { + srch->count = 0L; /* reset counters */ + srch->timestamp.data[0] = 0L; + srch->timestamp.data[1] = 0L; + srch->lastArg = ARGPTRNULL; + srch->graph = GRAPHPTRNULL; + argnp = srch->args; + if (argnp != ARGPTRNULL) /* args to free */ + { + do { /* run through list freeing elements */ + lastArgnp = argnp; + argnp = argnp->next; + host_free(lastArgnp); /* ignore return! */ + } while (argnp != ARGPTRNULL); + srch->args = ARGPTRNULL; /* set ready for new args */ + } + } +} + +/*( +=============================== ResetAllEOIs ============================ + +PURPOSE: Reset all EOI counters + +INPUT: None. + +OUTPUT: None. + +========================================================================= +)*/ + +GLOBAL void +ResetAllEOIs IFN0 ( ) +{ + EOINODE_PTR srch; /* search ptr */ + EOIARG_PTR argnp, lastArgnp; /* arg list walkers */ + + srch = EventsOfInterest; /* head of list */ + + while(srch != EOIPTRNULL) /* list null terminated */ + { + srch->count = 0L; /* reset counters */ + srch->timestamp.data[0] = 0L; + srch->timestamp.data[1] = 0L; + srch->lastArg = ARGPTRNULL; + srch->graph = GRAPHPTRNULL; + argnp = srch->args; + if (argnp != ARGPTRNULL) /* args to free */ + { + do { /* run through list freeing elements */ + lastArgnp = argnp; + argnp = argnp->next; + host_free(lastArgnp); /* ignore return! */ + } while (argnp != ARGPTRNULL); + srch->args = ARGPTRNULL; /* set ready for new args */ + } + srch = srch->next; + } + LastEOI = EOIPTRNULL; + LastAuto = EOIPTRNULL; +} + +/*( +=============================== ResetAllSOIs ============================ + +PURPOSE: Reset all SOI counters + +INPUT: None. + +OUTPUT: None. + +========================================================================= +)*/ + +GLOBAL void +ResetAllSOIs IFN0 ( ) +{ + SOINODE_PTR srch, lastSrch; /* search ptr */ + EOIARG_PTR argnp, lastArgnp; /* arg list walkers */ + IBOOL into_autos = FALSE; + + srch = SectionsOfInterest; /* head of list */ + + while(srch != SOIPTRNULL) /* list null terminated */ + { + srch->startCount = srch->endCount = srch->discardCount = + srch->soistart.data[0] = srch->soistart.data[1] = 0L; + srch->time = 0.0; + srch->mintime = 0.0; + srch->maxtime = 0.0; + srch->bigtime = 0.0; + srch->bigmax = 0.0; + + argnp = srch->startArg; + if (argnp != ARGPTRNULL) /* args to free */ + { + do { /* run through list freeing elements */ + lastArgnp = argnp; + argnp = argnp->next; + host_free(lastArgnp); /* ignore return! */ + } while (argnp != ARGPTRNULL); + srch->startArg = ARGPTRNULL; /* set ready for new args */ + } + argnp = srch->endArg; + if (argnp != ARGPTRNULL) /* args to free */ + { + do { /* run through list freeing elements */ + lastArgnp = argnp; + argnp = argnp->next; + host_free(lastArgnp); /* ignore return! */ + } while (argnp != ARGPTRNULL); + srch->endArg = ARGPTRNULL; /* set ready for new args */ + } + if (into_autos) + { + lastSrch = srch; + srch = srch->next; + host_free(lastSrch); + } + else if ((srch->flags & (SOI_AUTOSOI|SOI_FROMARG)) != 0) + { + lastSrch->next = SOIPTRNULL; + MaxSOI = lastSrch->handle + 1; + LastSOI = lastSrch; + into_autos = TRUE; + lastSrch = srch; + srch = srch->next; + host_free(lastSrch); + } + else + { + lastSrch = srch; + srch = srch->next; + } + } +} + +/*( +=============================== ResetAllGraphData ======================== + +PURPOSE: Reset all Graph Data + +INPUT: None. + +OUTPUT: None. + +========================================================================= +)*/ + +GLOBAL void +ResetAllGraphData IFN0 ( ) +{ + GRAPHLIST_PTR this, last; /* graph list walkers */ + + this = EventGraph; /* head of list */ + + while(this != GRAPHPTRNULL) /* list null terminated */ + { + last = this; + this = last->next; + host_free(last); + } + EventGraph = LastGraph = GRAPHPTRNULL; /* set ready for new graph */ +} + +/*( +======================== GenerateAllProfileInfo =========================== + +PURPOSE: General catch all for reporting. Dumps all EOI, SOI & Graph info. + +INPUT: stream: output file stream + +OUTPUT: + +========================================================================= +)*/ + +GLOBAL void GenerateAllProfileInfo IFN1(FILE *, stream) +{ + time_t now; + clock_t elapsed_now; + + ProcessProfBuffer(); /* flush raw data */ + time(&now); + + fprintf( stream, "SoftPC start time %24.24s, current time %8.8s\n\n", + start_time, ctime(&now)+11 ); +#ifdef macintosh + + elapsed_now = clock(); + fprintf( stream, "Total Elapsed = %8.2fs\n", + (elapsed_now - elapsed_t_start) / TicksPerSec ); + fprintf( stream, "Section Elapsed = %8.2fs\n\n", + (elapsed_now - elapsed_t_resettable) / TicksPerSec ); + +#else /* macintosh */ + { + struct tms c_t; + elapsed_now = times(&c_t); + + fprintf( stream, " Total CPU times: %8.2fs (User), %8.2fs (System),\n", + (c_t.tms_utime - process_t_start.tms_utime) / TicksPerSec, + (c_t.tms_stime - process_t_start.tms_stime) / TicksPerSec ); + fprintf( stream, "\t\t %8.2fs, %8.2fs (Children's). ", + (c_t.tms_cutime - process_t_start.tms_cutime) / TicksPerSec, + (c_t.tms_cstime - process_t_start.tms_cstime) / TicksPerSec ); + fprintf( stream, "Elapsed = %8.2fs\n", + (elapsed_now - elapsed_t_start) / TicksPerSec ); + fprintf( stream, "Section CPU times: %8.2fs (User), %8.2fs (System),\n", + (c_t.tms_utime - process_t_resettable.tms_utime) / TicksPerSec, + (c_t.tms_stime - process_t_resettable.tms_stime) / TicksPerSec ); + fprintf( stream, "\t\t %8.2fs, %8.2fs (Children's). ", + (c_t.tms_cutime - process_t_resettable.tms_cutime) / TicksPerSec, + (c_t.tms_cstime - process_t_resettable.tms_cstime) / TicksPerSec ); + fprintf( stream, "Elapsed = %8.2fs\n\n", + (elapsed_now - elapsed_t_resettable) / TicksPerSec ); + } +#endif /* macintosh */ + + CollateFrequencyList(stream, TRUE); + CollateSequenceGraph(stream); + SummariseAllSequences(stream); + + fprintf(stream, "\nRaw Data Processing overhead "); + HostPrintTimestamp(stream, &ProfFlushTime); + fprintf(stream, " in %d calls\n", ProfFlushCount); +} + +/*( +======================== CollateFrequencyList =========================== + +PURPOSE: Output a sorted list of the most frequently encountered EOIs, + together with counts. + +INPUT: stream: output file stream + reportstyle: bool to determine whether output formatted (TRUE) or + left simple for input to graphing package (FALSE). + +OUTPUT: + +========================================================================= +)*/ + +GLOBAL void +CollateFrequencyList IFN2 (FILE *, stream, IBOOL, reportstyle) +{ + EOINODE_PTR eoin; /* list walker */ + IUM32 tot = 0L; /* total count of events */ + DOUBLE ftot; /* ...as float */ + + /* Get EOI list sorted into count order */ + listSort((SORTSTRUCT_PTR) &EventsOfInterest); + + if (reportstyle) + { + fprintf(stream, "EOI Frequency List\n\n"); + fprintf(stream, " EOI Count %%\n"); + } + + /* total counts for %age printouts */ + eoin = EventsOfInterest; + while(eoin) + { + tot += eoin->count; + eoin = eoin->next; + } + + if (tot == 0L) + tot = 1; + + /* required as floating */ + ftot = (DOUBLE)tot; + + /* walk list & print out info from each node */ + eoin = EventsOfInterest; + while(eoin != EOIPTRNULL) + { + /* Don't report on disabled EOIs with zero counts. This means + that EOIs in C which are not currently of interest do not + produce Wads of data that obscure data from EOIs that are + of interest. Means that EOIs may be liberally sprinkled in + C code without getting in the way. */ + if ( ( !((eoin->flags) & EOI_DISABLED) || eoin->count) ) + printEOIGuts(stream, eoin, ftot, TRUE, reportstyle); + eoin = eoin->next; + } +} + +/*( +======================== CollateSequenceGraph =========================== + +PURPOSE: Use information in graph list to show call flow information + +INPUT: stream: output file stream + +OUTPUT: + +========================================================================= +)*/ + +GLOBAL void +CollateSequenceGraph IFN1 (FILE *, stream) +{ + GRAPHLIST_PTR graphn, gr, succ; /* list walkers */ + IUM32 succCount; /* holder for successor count */ + ISM32 curindent = 0L; /* report printing indent */ + IBOOL goodstart = TRUE; /* loop terminator */ + IBOOL samelevel = FALSE; /* new level in tree or already seen */ + IU8 walked; /* masked state per node */ + +#ifdef DEBUGGING_PROF /* for seq graph */ +graphn = EventGraph; +while (graphn) +{ + printf("Node %s @ %x arg %x succ1 %x succ2 %x xtra %x\n",graphn->graphEOI->tag, graphn, graphn->graphArg, graphn->succ1, graphn->succ2, graphn->extra); + gr = graphn->extra; + while (gr != GRAPHPTRNULL) + { + printf(" succ1 %x succ2 %x ext %x\n", gr->succ1, gr->succ2, gr->extra); + gr = gr->extra; + } + graphn = graphn->next; +} +#endif /* DEBUGGING_PROF for seq graph */ + + if (EventGraph == GRAPHPTRNULL) + { + fprintf(stream, "No Graphing Information found\n"); + return; + } + + fprintf(stream, "\nSequence Graph\n\n"); + while (goodstart) /* actually for ever - bomb out in middle */ + { + /* first have to clear 'printed' flags in top level nodes */ + graphn = EventGraph; + while (graphn != GRAPHPTRNULL) + { + graphn->state &= ~GR_PRINTED; + graphn = graphn->next; + } + + /* now search for tree header */ + graphn = EventGraph; + do { + /* find first node with untrodden successors */ + gr = graphn; + + /* gr checks all successors */ + do { + walked = gr->state & GR_TRAMPLED; + if (walked == 0) /* nothing walked - any valid successors? */ + { + if (gr->succ1 != GRAPHPTRNULL || gr->succ2 != GRAPHPTRNULL) + break; + } + else + if (walked == GR_SUCC1_TROD) /* succ1 trod - 2 valid? */ + { + if (gr->succ2 != GRAPHPTRNULL) + break; + } + else + if (walked == GR_SUCC2_TROD) /* succ2 trod - 1 valid*/ + { + /* this case may not be possible... */ + if (gr->succ2 != GRAPHPTRNULL) + break; + } + /* must be TRAMPLED otherwise */ + gr = gr->extra; + } while (gr != GRAPHPTRNULL); + + /* no valid successors found for this node, try next */ + if (gr == GRAPHPTRNULL) + graphn = graphn->next; + } while (gr == GRAPHPTRNULL && graphn != GRAPHPTRNULL); + + /* if no nodes with valid successors, we must have finished */ + if (graphn == GRAPHPTRNULL) + { + fprintf(stream, "\n\n"); /* last newline */ + break; + } + + /* graphn points at valid node. gr points at (extra?) node with succ */ + curindent = graphn->indent; /* either 0 or prev indent */ + + samelevel = FALSE; /* first node obviously on new level */ + + do { /* tree from this node */ + + if (!samelevel) /* true when new node only */ + { + /* do graph indent */ + spaces(stream, curindent); + + /* store indent in case revisited */ + graphn->indent = curindent; + + /* print node details */ + if (graphn->graphArg == ARGPTRNULL) /* arg involved? */ + fprintf(stream, "%s: ", graphn->graphEOI->tag); + else + fprintf(stream, "%s(%#lx): ", graphn->graphEOI->tag, graphn->graphArg->value); + } + + /* now find a valid successor pointer */ + gr = graphn; + do { + if ((gr->state & GR_TRAMPLED) != GR_TRAMPLED) + break; + else + gr = gr->extra; + } while (gr != GRAPHPTRNULL); + + if (gr == GRAPHPTRNULL) /* as far as we go for this tree */ + { + if (samelevel) /* tree will need nl to terminate */ + fprintf(stream, "\n"); + break; + } + else + { + /* gr is graph node with one or more successor still valid */ + if ((gr->state & GR_SUCC1_TROD) == 0) + { + gr->state |= GR_SUCC1_TROD; /* succ trodden locally */ + graphn->state |= GR_PRINTED; /* print on main node */ + succ = gr->succ1; + succCount = gr->succ1Count; + } + else /* must be succ2 that is valid */ + { + gr->state |= GR_SUCC2_TROD; + graphn->state |= GR_PRINTED; + succ = gr->succ2; + succCount = gr->succ2Count; + } + + if (succ == GRAPHPTRNULL) /* safety stop here */ + { + if (samelevel) /* tree terminate nl */ + fprintf(stream, "\n"); + else + /* also need newline if dangling graph node from forced + * connection without keep graph attr + */ + if (gr->succ1 == GRAPHPTRNULL && gr->succ2 == GRAPHPTRNULL) + fprintf(stream, "\n"); + break; + } + + /* has successor been printed this pass? */ + /* If so then express it as a '->' alternative on same line */ + /* If not then express it as indented new node */ + if ((succ->state & GR_PRINTED) == 0) + { + fprintf(stream, " \\/[%ld]\n",succCount); + curindent++; + gr = succ; /* for next iteration */ + samelevel = FALSE; + } + else + { + /* leave gr where it is to look for next successor */ + if (succ->graphArg == ARGPTRNULL) /* arg involved? */ + fprintf(stream, " -> %s:[%ld] ",succ->graphEOI->tag, succCount); + else + fprintf(stream, " -> %s(%#lx):[%ld] ",succ->graphEOI->tag, succ->graphArg->value, succCount); + samelevel = TRUE; + } + } + graphn = gr; + } while (gr != GRAPHPTRNULL); /* end of this tree */ + } /* look for next tree head */ + + + /* Clear all trampled and printed bits ready for next time */ + graphn = EventGraph; + while (graphn != GRAPHPTRNULL) + { + graphn->state = 0; + gr = graphn->extra; + while (gr != GRAPHPTRNULL) + { + gr->state = 0; + gr = gr->extra; + } + graphn = graphn->next; + } + +} + +/*( +========================== SummariseEvent ============================= + +PURPOSE: print to stream all information known about a given EOI + +INPUT: stream: output file stream + handle: handle of EOI to summarise + +OUTPUT: + +========================================================================= +)*/ + +GLOBAL void +SummariseEvent IFN2 (FILE *, stream, EOIHANDLE, handle) +{ + EOINODE_PTR eoin; /* list walker */ + + eoin = findEOI(handle); + + fprintf(stream, "Summary of Event Information for handle %ld\n", handle); + fprintf(stream, " EOI Count\n"); + if (eoin != EOIPTRNULL) + printEOIGuts(stream, eoin, 0.0, TRUE, TRUE); + else + fprintf(stream, "Profiler:SummariseEvent - EOI handle %ld unknown", handle); +} + +/*( +========================== SummariseSequence ============================= + +PURPOSE: print to stream all information known about a given SOI + +INPUT: stream: output file stream + handle: handle of SOI to summarise + +OUTPUT: + +========================================================================= +)*/ + +GLOBAL void +SummariseSequence IFN2 (FILE *, stream, SOIHANDLE, handle) +{ + SOINODE_PTR soin; /* list walker */ + DOUBLE tottime; /* bigtimes + regular times */ + + soin = findSOI(handle); + + if (soin != SOIPTRNULL) + { + fprintf( stream, "%4ld ", handle ); + if (soin->startCount == soin->endCount) + fprintf(stream, " ----- %9ld", soin->startCount); + else + fprintf(stream, "%9ld %9ld", soin->startCount, soin->endCount ); + if (soin->time > USECASFLOAT) + fprintf(stream, " %2.5lfS ", soin->time / USECASFLOAT); + else + fprintf(stream, " %10.2lfuS ", soin->time); + if (soin->endCount) + fprintf( stream, " (%8.2lfuS) ", + soin->time / (soin->endCount - soin->discardCount)); + else + fprintf( stream, " " ); + + /* STF - idea - how about subtracting max & min from total times???? */ + if (CollectingMaxMin) + { + fprintf(stream, "Max: %10.2lfuS ", soin->maxtime); + fprintf(stream, "Min: %8.2lfuS", soin->mintime); + } + + if (soin->startArg == ARGPTRNULL) /* primary level start SOI */ + fprintf(stream, "\tEOIs %s\n", + GetEOIName(soin->startEOI)); + else /* extra level - includes args */ + fprintf(stream, "\tEOIs %s(%#x)\n", + GetEOIName(soin->startEOI), soin->startArg->value); + + fprintf(stream, " %9ld ", soin->discardCount ); + tottime = soin->bigtime+soin->time; + if (tottime > USECASFLOAT) + fprintf(stream, " %2.5lfS ", tottime / USECASFLOAT); + else + fprintf(stream, " %10.2lfuS ", tottime); + if (soin->endCount) + fprintf( stream, " (%8.2lfuS) ", tottime/soin->endCount); + else + fprintf( stream, " " ); + if (CollectingMaxMin) + fprintf(stream, " %10.2lfuS ", soin->bigmax); + if (soin->endArg == ARGPTRNULL) /* primary level end EOI */ + fprintf(stream, "\t & %s\n", GetEOIName(soin->endEOI)); + else + fprintf(stream, "\t & %s(%#x)\n", GetEOIName(soin->endEOI), soin->endArg->value); + } + else + fprintf(stream, "Profiler:SummariseSequence - SOI handle %ld unknown", handle); +} + +/*( +========================== OrderedSequencePrint ============================= + +PURPOSE: print to stream ordered (by time) list of all SOIs between + start & end EOIs. + +INPUT: stream: output file stream + startEOI, endEOI: handles defining SOI of interest. + +OUTPUT: Hopefully useful SOI data. + +========================================================================= +)*/ + +GLOBAL void +OrderedSequencePrint IFN3(SOIHANDLE, startEOI, SOIHANDLE, endEOI, FILE *, stream) +{ + SOINODE_PTR soin; /* list walker */ + DOUBLE thistime; + IU32 loop, maxseq; + struct ordsoi { + struct ordsoi *next; + struct ordsoi *prev; + SOINODE_PTR soi; + DOUBLE time; + } *ordlist, *hol, *seed, *tol, *thisnode, *srch; +#define ORDNULL (struct ordsoi *)0 + + maxseq = MaxSOI + 1; + ordlist = (struct ordsoi *)host_malloc(maxseq * sizeof(struct ordsoi)); + if (ordlist == (struct ordsoi *)0) + { + fprintf(stderr, "OrderedSequencePrint: out of memory\n"); + return; + } + fprintf(stream, "\nSummary of Sections between EOIs %d & %d\n\n", startEOI, endEOI); + for (loop = 1; loop < maxseq; loop ++) + { + ordlist[loop].soi = SOIPTRNULL; + /* + ordlist[loop].next = &ordlist[loop + 1]; + ordlist[loop].prev = &ordlist[loop - 1]; + */ + } + ordlist[0].prev = ORDNULL; + ordlist[loop - 1].next = ORDNULL; + + ordlist[0].time = 500.0; /* seed */ + ordlist[0].soi = SOIPTRNULL; + + hol = seed = tol = ordlist; /* head & tail move, middle stays */ + loop = 0; + soin = SectionsOfInterest; + while (soin != SOIPTRNULL) + { + if (soin->startEOI == startEOI && soin->endEOI == endEOI) + { + loop ++; /* next storage node */ + thisnode = &ordlist[loop]; + thistime = soin->time + soin->bigtime; + + thisnode->time = thistime; + thisnode->soi = soin; + + if (thistime >= hol->time) + { + /* insert at head of list */ + thisnode->prev = hol->prev; + hol->prev = thisnode; + thisnode->next = hol; + hol = thisnode; + } + else + { + if (thistime <= tol->time) + { + /* add to end of list */ + thisnode->prev = tol; + thisnode->next = tol->next; + tol->next = thisnode; + tol = thisnode; + } + else + { + if (thistime <= seed->time) + { + /* search fwd from seed */ + + srch = seed->next; + while(srch != tol && thistime <= srch->time) + srch = srch->next; + if (srch != tol) /* insert */ + { + thisnode->prev = srch->prev; + srch->prev->next = thisnode; + srch->prev = thisnode; + thisnode->next = srch; + } + else /* tol - new tol? */ + { + if (thistime <= tol->time) + { + /* add to end - new tol */ + thisnode->prev = tol; + thisnode->next = tol->next; + tol->next = thisnode; + tol = thisnode; + } + else + { + /* insert before tol */ + thisnode->prev = tol->prev; + tol->prev->next = thisnode; + tol->prev = thisnode; + thisnode->next = tol; + } + } + } + else + { /* search bwd from seed */ + + srch = seed->prev; + while(srch != hol && thistime >= srch->time) + srch = srch->prev; + if (srch != hol) /* insert */ + { + thisnode->prev = srch; + thisnode->next = srch->next; + srch->next->prev = thisnode; + srch->next = thisnode; + } + else /* at hol */ + { + if (thistime >= hol->time) + { /* add before - new hol */ + + thisnode->next = hol; + thisnode->prev = hol->prev; + hol->prev = thisnode; + hol = thisnode; + } + else + { /* insert after hol */ + + thisnode->next = hol->next; + hol->next->prev = thisnode; + hol->next = thisnode; + thisnode->prev = hol; + } + } + } + } + } + + } + soin = soin->next; + } + + + /* should now have a list, sorted by time - print it */ + while(hol != tol) + { + if (hol->soi != SOIPTRNULL) + SummariseSequence(stream, hol->soi->handle); + + hol = hol->next; + } + host_free(ordlist); +} + +/*( +========================== SummariseAllSequences ============================= + +PURPOSE: print to stream all information known about SOIs + +INPUT: stream: output file stream + +OUTPUT: None. + +========================================================================= +)*/ + +GLOBAL void +SummariseAllSequences IFN1 (FILE *, stream) +{ + SOINODE_PTR soin; /* list walker */ + EOINODE_PTR stEOI, endEOI; + + soin = SectionsOfInterest; + + fprintf(stream, "\nSummary of All Sections of Interest\n\n"); + while(soin != SOIPTRNULL) + { + /* Don't report on SOIs where start and end EOIs are disabled + and startCount and endCount are both zero */ + stEOI = endEOI = EventsOfInterest; + while(stEOI->handle != soin->startEOI) stEOI = stEOI->next; + while(endEOI->handle != soin->endEOI) endEOI = endEOI->next; + if ( ( !( (stEOI->flags) & EOI_DISABLED) || + !( (endEOI->flags) & EOI_DISABLED) || + soin->startCount || soin->endCount ) ) + SummariseSequence(stream, soin->handle); + soin = soin->next; + } +} + +/*( +=============================== dump_profile ============================ + +PURPOSE: dump all the profiling system data to a file. + +INPUT: None. + +========================================================================= +)*/ + +GLOBAL void +dump_profile IFN0 () +{ + char filename[80], *test; + FILE *prof_dump; + + if (!Profiling_enabled) + { + fprintf( stderr, "Dump not done. Profiling disabled\n" ); + return; + } + + if ( (test = getenv("PROFILE_OUTPUT_FILE") ) == NULL ) + strcpy( filename, "profile_data.out" ); + else + strcpy( filename, test ); + if ( (prof_dump = fopen( filename, "a" )) == NULL) + { + fprintf( stderr, "Can't open file %s for profile data\n", + filename ); + return; + } + + fprintf(stderr, "Dumping profile data to file %s ...", filename ); + fflush(stderr); + AtEOIPoint( elapsed_time_end ); + AtEOIPoint( elapsed_time_start ); + GenerateAllProfileInfo( prof_dump ); + fprintf(prof_dump, "\n\n==============================================================================\n\n\n" ); + fclose(prof_dump); + fprintf(stderr, " Done\n"); + return; +} + +/*( +=============================== reset_profile ============================ + +PURPOSE: reset all the profiling system data. + +INPUT: None. + +========================================================================= +)*/ + +GLOBAL void +reset_profile IFN0 () +{ + if (!Profiling_enabled) + { + fprintf( stderr, "Reset not done. Profiling disabled\n" ); + return; + } + + fprintf(stderr, "Resetting profiling system ..." ); + fflush(stderr); + + ResetAllSOIs(); + ResetAllEOIs(); + + ResetAllGraphData(); + + ProfFlushTime.data[0] = + ProfFlushTime.data[1] = 0L; /* time spent in flush routine */ + ProfFlushCount = 0; /* # flush routine called */ + + elapsed_t_resettable = host_times( &process_t_resettable ); + fprintf(stderr, " Done\n" ); + AtEOIPoint( elapsed_time_start ); + + return; +} + + +/*( +=============================== ProfileInit ============================ + +PURPOSE: initialise the variables of the profiling system. + +INPUT: None. + +OUTPUT: None + +========================================================================= +)*/ + +GLOBAL void +ProfileInit IFN0 () +{ + IHPE bufalign; /* buffer allocation & alignment pointer */ + time_t now; + + if ( !(IBOOL)GetSadInfo("ProfilingInUse") ) + { + fprintf( stderr, "LCIF not profiled - profiling disabled\n" ); + Profiling_enabled = FALSE; + return; + } + + /* get buffer for raw event data */ + ProfileRawData = (EOI_BUFFER_FORMAT *)host_malloc(RAWDATAENTRIES * sizeof(EOI_BUFFER_FORMAT)+ sizeof(IUH)); + + /* check for success */ + if (ProfileRawData == (EOI_BUFFER_FORMAT *)0) + { + assert0(NO, "Profiler:ProfileInit - Out of Memory\n"); + return; + } + + /* ensure buffer aligned for IUH writes */ + bufalign = (IHPE)ProfileRawData & (sizeof(IUH)-1); + if (bufalign != 0L) + { + bufalign = (IHPE)ProfileRawData + (sizeof(IUH) - bufalign); + ProfileRawData = (EOI_BUFFER_FORMAT *)bufalign; + } + + /* global variables set for buffer control (leave alignment buffer + * as buffer entries of different sizes). + */ + MaxProfileData = ProfileRawData + RAWDATAENTRIES - 1; + + /* Prepare EOI enable table - start with 1024 entries and allow to grow */ + EOIEnable = (IU8 *)host_malloc(INITIALENABLESIZE); + if (EOIEnable == (IU8 *)0) + { + assert0(NO, "Profiler:ProfileInit - Out of Memory\n"); + return; + } + + /* Prepare EOI directory table - start with 1024 entries and allow to grow */ + EOIDir = (EOINODE_PTR *)host_malloc(INITIALENABLESIZE * sizeof(EOINODE_PTR) ); + if (EOIDir == (EOINODE_PTR *)0 ) + { + assert0(NO, "Profiler:ProfileInit - Out of Memory\n"); + return; + } + + /* + * write buffer variables to GDP for CPU access. Current pointer must + * be stored there but have global C pointer to access pointer. + */ + setEOIEnableAddr(EOIEnable); + setMaxProfileDataAddr(MaxProfileData); + setAddProfileDataPtr(ProfileRawData); + AddProfileData = getAddProfileDataAddr(); + HostWriteTimestamp(&BufStartTime); + HostProfInit(); /* host specific profile initialisation */ + + getPredefinedEOIs(); /* get EOIs & SOIs defined in EDL translation */ + + if (getenv("PROFDOMAX") != 0) + CollectingMaxMin = TRUE; + + /* Hooks in C Code need EOIs to be created here */ + elapsed_time_start = NewEOI( "ElapsedTime_START", EOI_DEFAULTS); + elapsed_time_end = NewEOI( "ElapsedTime_END", EOI_DEFAULTS); + /* end of C Code EOIs */ + + /* Set up C Code SOIs here */ + AssociateAsSOI( elapsed_time_start, elapsed_time_end ); + /* end of C Code SOIs */ + + /* set up data for process timings */ + time(&now); + strcpy( (char *)&start_time[0], ctime(&now) ); + + elapsed_t_start = elapsed_t_resettable = host_times( &process_t_start ); + +#ifdef macintosh + + TicksPerSec = (DOUBLE)CLOCKS_PER_SEC; + +#else /* macintosh */ + + process_t_resettable.tms_utime = process_t_start.tms_utime; + process_t_resettable.tms_stime = process_t_start.tms_stime; + process_t_resettable.tms_cutime = process_t_start.tms_cutime; + process_t_resettable.tms_cstime = process_t_start.tms_cstime; + + TicksPerSec = (DOUBLE)sysconf(_SC_CLK_TCK); + +#endif /* macintosh */ + + AtEOIPoint( elapsed_time_start ); +} + +#else /* PROFILE */ +GLOBAL void EnableAllEOIs IFN0() { ; } +GLOBAL void DisableAllEOIs IFN0() { ; } +GLOBAL void ProcessProfBuffer IFN0() { ; } +#endif /* PROFILE */ diff --git a/private/mvdm/softpc.new/base/debug/sources b/private/mvdm/softpc.new/base/debug/sources new file mode 100644 index 000000000..427303c02 --- /dev/null +++ b/private/mvdm/softpc.new/base/debug/sources @@ -0,0 +1,68 @@ +!IF 0 + +Copyright (c) 1989 Microsoft Corporation + +Module Name: + + sources. + +Abstract: + + This file specifies the target component being built and the list of + sources files needed to build that component. Also specifies optional + compiler switches and libraries that are unique for the component being + built. + + +Author: + + Steve Wood (stevewo) 12-Apr-1990 + +NOTE: Commented description of this file is in \nt\bak\bin\sources.tpl + +!ENDIF + + +MAJORCOMP=spcbase +MINORCOMP=debug + +TARGETNAME=debug + +TARGETPATH=obj + + +NTPROFILEINPUT=yes + +# Pick one of the following and delete the others +TARGETTYPE=LIBRARY + + +TARGETLIBS= + +SOFTPC_TREE=$(BASEDIR)\private\mvdm\softpc.new + +INCLUDES=$(SOFTPC_TREE)\host\inc;$(SOFTPC_TREE)\base\inc;$(BASEDIR)\private\inc + +!IF $(ALPHA) +GPSIZE=0 +!ELSE +GPSIZE=0 +!ENDIF + + + + +SOURCES= debuggng.c \ + ega_dump.c \ + btrace.c \ + trace.c \ + profile.c \ + pigyoda.c \ + yoda.c +# dasm.c \ + +i386_SOURCES= dasm.c + +!INCLUDE $(SOFTPC_TREE)\obj.vdm\CDEFINE.INC + +UMTYPE=console diff --git a/private/mvdm/softpc.new/base/debug/trace.c b/private/mvdm/softpc.new/base/debug/trace.c new file mode 100644 index 000000000..7ad0de642 --- /dev/null +++ b/private/mvdm/softpc.new/base/debug/trace.c @@ -0,0 +1,559 @@ +#include "insignia.h" +#include "host_def.h" +/* + * SoftPC Revision 3.0 + * + * Title : Trace function + * + * Description : This function will output a trace to the log device. + * The device is set up in the main function module. Options + * are provided to VPC memory/register data. + * + * Author : Henry Nash + * + * Notes : None + * + * SccsID : @(#)trace.c 1.36 06/02/95 + * + * (c)Copyright Insignia Solutions Ltd., 1990-1994. All rights reserved. + */ + + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_ERROR.seg" +#endif + +/* + * O/S include files. + */ +#include +#include +#include TypesH + +/* + * SoftPC include files + */ +#include "xt.h" +#define CPU_PRIVATE /* Request the CPU private interface as well */ +#include CpuH +#undef CPU_PRIVATE +#include "sas.h" +#include "gvi.h" +#include "trace.h" + +#ifdef CPU_40_STYLE +FORWARD CHAR *host_get_287_reg_as_string IPT2(IU32, reg_num, BOOL, in_hex); +FORWARD IU32 get_287_tag_word IPT0(); +FORWARD IU32 get_287_control_word IPT0(); +FORWARD IU32 get_287_status_word IPT0(); +FORWARD IU32 get_287_sp IPT0(); +#endif + +FILE *trace_file; + +#ifndef PROD +#ifdef SPC386 +#include "decode.h" +#define DASM_INTERNAL +#include +#else /* SPC386 */ +IMPORT word dasm IPT5(char *, i_output_stream, word, i_atomicsegover, + word, i_segreg, word, i_segoff, int, i_nInstr); +#endif /* SPC386 */ +int disk_trace = 0; /* value of 1 indicates temp disk trace */ +static int trace_state = 0; +#endif /* nPROD */ + +static int trace_start = 0; + +GLOBAL IU32 io_verbose = 0; +GLOBAL IU32 sub_io_verbose = 0; + +#ifdef RDCHK +#include "egacpu.h" + +void get_lar() + +{ +#ifndef PROD + printf( "There's no such thing as the last_address_read anymore.\n" ); + printf( "Perhaps you'd like the latches instead: %x\n", getVideolatches() ); +#endif +} + +#endif + +#if !defined(PROD) && defined(SPC386) + +LOCAL IS32 read_from_la IFN1(LIN_ADDR, addr) +{ + return (IS32)sas_hw_at(addr); +} + +/* + ********************* dump386Registers ********************************** + * + * This functions dumps the CPU registers to the indicated file, taking + * account of code and stack segment sizes. + */ +LOCAL void +dump386Registers IFN2(FILE *, fp, IUM32, dump_info) +{ + IBOOL is32BitCS = FALSE; + IBOOL is32BitSS = FALSE; + IU32 offset; + IUM32 i; + sys_addr desc_addr; /* the descriptor's address */ + IU16 temp; + + if (getPE() && !getVM()) { + /* + * Is it a 16 or 32 bit code segment? + */ + + is32BitCS = CsIsBig(getCS()); + + /* + * Is it a 16 or 32 bit stack segment? (i.e do we use ESP or SP) + * (The test is the same as for a big CS!) + */ + + is32BitSS = CsIsBig(getSS()); + } + + if (dump_info & DUMP_REG) + { + if (is32BitSS || is32BitCS + || (getEAX() & 0xFFFF0000) + || (getEBX() & 0xFFFF0000) + || (getECX() & 0xFFFF0000) + || (getEDX() & 0xFFFF0000) + || (getEIP() & 0xFFFF0000) + || (getEDI() & 0xFFFF0000) + || (getESI() & 0xFFFF0000) + || (getEBP() & 0xFFFF0000) + || (getESP() & 0xFFFF0000)) { + fprintf(fp, "EAX:%000008x EBX:%000008x ECX:%000008x EDX:%000008x\n", + getEAX(), getEBX(), getECX(), getEDX()); + fprintf(fp, "ESP:%000008x EBP:%000008x ESI:%000008x EDI:%000008x\n", + getESP(), getEBP(), getESI(), getEDI()); + fprintf(fp, "DS:%04x ES:%04x FS:%04x GS:%04x %sSS:%04x %sCS:%04x EIP:%08x\n", + getDS(), getES(), getFS(), getGS(), + is32BitSS ? "Big-" : "", getSS(), + is32BitCS ? "32-" : "", getCS(), getEIP()); + } else { + fprintf(fp,"AX:%04x BX:%04x CX:%04x DX:%04x", + getAX(), getBX(), getCX(), getDX()); + fprintf(fp, " SP:%04x", getSP()); + fprintf(fp, " BP:%04x SI:%04x DI:%04x\n", + getBP(), getSI(), getDI()); + fprintf(fp,"DS:%04x ES:%04x FS:%04x GS:%04x SS:%04x CS:%04x IP:%04x\n", + getDS(), getES(), getFS(), getGS(), getSS(), getCS(), getIP()); + } + } + + if (dump_info & DUMP_INST) + { + char buff[256]; + char *fmt, *newline; + IU32 eip = GetInstructionPointer(); + + /* We use the internal dasm so that we can disassemble + * instructions at (CS_BASE+eip) rather than + * effective_addr(getCS(), getEIP()), since the latter + * produces garbage just after changing the PE bit. + */ + if ( eip & 0xffff0000 ) + { + fmt = "%04x:%08x "; + newline = "\n "; + } + else + { + fmt = "%04x:%04x "; + newline = "\n "; + } + (void)dasm_internal(buff, + getCS(), + eip, + is32BitCS ? THIRTY_TWO_BIT : SIXTEEN_BIT, + getCS_BASE() + eip, + read_from_la, + fmt, + newline); + fprintf (fp, "%s", buff); + } + + if (dump_info & DUMP_CODE) { + IU32 cs_base = getCS_BASE(); + + fprintf(fp,"Code dump: Last 16 words\n\n"); + i = GetInstructionPointer() - 31; + if (is32BitCS) + fprintf(fp, "%08x: ", i); + else + fprintf(fp, "%04x: ", i); + for(; i < getIP() - 15; i+=2) + { + sas_loadw((cs_base + i), &temp); + fprintf(fp, " %04x", temp); + } + fprintf(fp, "\n%x: ", i); + for(; i <= GetInstructionPointer(); i+=2) + { + sas_loadw((cs_base + i), &temp); + fprintf(fp, " %04x", temp); + } + fprintf(fp,"\n\n"); + } + + +#ifdef SPC486 + if (dump_info & DUMP_FLAGS) + { + fprintf(fp, "C:%1d P:%1d A:%1d Z:%1d S:%1d T:%1d I:%1d D:%1d O:%1d\n", + getCF(), getPF(), getAF(), getZF(), getSF(), + getTF(), getIF(), getDF(), getOF()); + + fprintf(fp, "NT:%1d IOPL:%1d WP:%1d NE:%1d ET:%1d TS:%1d EM:%1d MP:%1d PE:%1d CPL:%1d PG:%1d VM:%1d\n", + getNT(), getIOPL(), getWP(), getNE(), getET(), getTS(), getEM(), getMP(), getPE(), + getCPL(), getPG(), + getVM()); + } +#else /* SPC486 */ + if (dump_info & DUMP_FLAGS) + { + fprintf(fp, + "C:%1d P:%1d A:%1d Z:%1d S:%1d T:%1d I:%1d D:%1d O:%1d\nNT:%1d IOPL:%1d TS:%1d EM:%1d MP:%1d PE:%1d CPL:%1d PG:%1d VM:%1d\n", + getCF(), getPF(), getAF(), getZF(), getSF(), + getTF(), getIF(), getDF(), getOF(), + getNT(), getIOPL(), getTS(), getEM(), getMP(), getPE(), + getCPL(), getPG(), + getVM() + ); + } +#endif /* SPC486 */ +} +#endif /* !PROD && SPC386 */ + +void trace(error_msg, dump_info) +char *error_msg; +int dump_info; +{ +#ifndef PROD + word temp; + half_word tempb; + sys_addr i,j; + + if (disk_trace != trace_state) /* change of state */ + { + if (disk_trace == 1) + { + /* start of disk tracing */ + + if (trace_file == stdout) + { + trace_file = fopen("disk_trace", "a"); + trace_state = 1; + } + else + disk_trace = 0; + } + else + { + fclose(trace_file); + trace_file = stdout; + trace_state = 0; + } + } + + if (trace_start > 0) { + trace_start--; + return; + } + + +#if defined(CPU_40_STYLE) && !defined(CCPU) + EnterDebug("Trace"); +#endif /* CPU_40_STYLE && !CCPU */ + + /* + * Dump the error message + */ + + fprintf(trace_file, "*** Trace point *** : %s\n", error_msg); + + /* + * Now dump what has been asked for + */ + +#if defined(NPX) && !(defined(NTVDM) && defined(MONITOR)) +#ifdef CPU_40_STYLE + if (dump_info & DUMP_NPX) + { + IU32 i; + IU32 npx_reg; + IS32 last; + IBOOL any_empty = FALSE; + IU32 stat287 = get_287_status_word(); + IU32 cntl287 = get_287_control_word(); + IU32 sp287 = get_287_sp(); + IU32 tag287 = get_287_tag_word(); + + fprintf(trace_file, "NPX Status:%04x Control:%04x ST:%d 287Tag:%04x\n", stat287, cntl287, sp287, tag287); + fprintf(trace_file, "NPX Stack: "); + + last = -1; + + npx_reg = stat287>>11; + npx_reg &= 7; + + for (i=0;i<8;i++) + { + if ( ((tag287 >> (2*npx_reg))&3) == 3 ) + { + if ( last+1 == i ) + fprintf(trace_file, "%cST(%d)", any_empty?',':' ', i); + any_empty = TRUE; + } + else + { + if ( last+2 < i ) + fprintf(trace_file, "-ST(%d)", i-1); + last = i; + } + npx_reg = (npx_reg+1)&7; + } + if ( last < 6 ) + fprintf(trace_file, "-ST(7)"); + + fprintf(trace_file, any_empty ? " empty\n" : "\n"); + + npx_reg = stat287>>11; + npx_reg &= 7; + + for (i=0;i<8;i++) + { + if ( ((tag287 >> (2*npx_reg))&3) != 3 ) + fprintf(trace_file, "ST(%d): %s\n", i, host_get_287_reg_as_string(i, FALSE)); + npx_reg = (npx_reg+1)&7; + } + fprintf(trace_file, "\n"); + } +#else /* CPU_40_STYLE */ + if (dump_info & DUMP_NPX) + { + int i; + extern CHAR *host_get_287_reg_as_string IPT2(int, reg_no, BOOL, in_hex); + extern int get_287_sp(); + extern word get_287_tag_word IPT0(); + extern ULONG get_287_control_word(); + extern ULONG get_287_status_word(); + int stat287 = get_287_status_word(); + int cntl287 = get_287_control_word(); + int sp287 = get_287_sp(); + int tag287 = get_287_tag_word(); + + fprintf(trace_file, "NPX Status:%04x Control:%04x ST:%d 287Tag:%04x\n", stat287, cntl287, sp287, tag287); + fprintf(trace_file, "NPX Stack: "); + for (i=0;i<8;i++) + fprintf(trace_file, " %10s", host_get_287_reg_as_string(i, FALSE)); + fprintf(trace_file, "\n"); + } +#endif /* CPU_40_STYLE */ +#endif /* NPX && YODA */ + +#ifdef SPC386 + dump386Registers(trace_file, (IUM32)dump_info); +#else + if (dump_info & DUMP_REG) + { + fprintf(trace_file,"AX:%04x BX:%04x CX:%04x DX:%04x SP:%04x BP:%04x SI:%04x DI:%04x ", + getAX(), getBX(), getCX(), getDX(), + getSP(), getBP(), getSI(), getDI()); + fprintf(trace_file,"DS:%04x ES:%04x SS:%04x CS:%04x IP:%04x\n", + getDS(), getES(), getSS(), getCS(), getIP()); + } + + if (dump_info & DUMP_INST) + { + dasm((char *)0, 0, getCS(), getIP(), 1); + } + + if (dump_info & DUMP_CODE) + { + fprintf(trace_file,"Code dump: Last 16 words\n\n"); + i = getIP() - 31; + fprintf(trace_file, "%04x: ", i); + for(; i < getIP() - 15; i+=2) + { + sas_loadw(effective_addr(getCS(), i), &temp); + fprintf(trace_file, " %04x", temp); + } + fprintf(trace_file, "\n%x: ", i); + for(; i <= getIP(); i+=2) + { + sas_loadw(effective_addr(getCS(), i), &temp); + fprintf(trace_file, " %04x", temp); + } + fprintf(trace_file,"\n\n"); + } + + + if (dump_info & DUMP_FLAGS) + { +#ifdef PM + fprintf(trace_file, + "C:%1d P:%1d A:%1d Z:%1d S:%1d T:%1d I:%1d D:%1d O:%1d NT:%1d IOPL:%1d TS:%1d EM:%1d MP:%1d PE:%1d CPL:%1d\n", + getCF(), getPF(), getAF(), getZF(), getSF(), + getTF(), getIF(), getDF(), getOF(), + getNT(), getIOPL(), getTS(), getEM(), getMP(), getPE(), getCPL() + ); +#else + fprintf(trace_file, + "CF:%1d PF:%1d AF:%1d ZF:%1d SF:%1d TF:%1d IF:%1d DF:%1d OF:%1d\n", + getCF(), getPF(), getAF(), getZF(), getSF(), + getTF(), getIF(), getDF(), getOF() + ); +#endif /* PM */ + } +#endif /* SPC386 else*/ + + if (dump_info & DUMP_SCREEN) + { +#ifdef SFELLOW + printf("Screen dump not supported on Stringfellows\n"); +#else /* SFELLOW */ + fprintf(trace_file,"Screen dump:\n\n"); + i = gvi_pc_low_regen; + while (i <= gvi_pc_high_regen) + { + fprintf(trace_file,"%4x: ", (word)(i - gvi_pc_low_regen)); + for(j=0; j<16; j++) + { + sas_load(i+j, &tempb); + fprintf(trace_file, "%-3x", tempb); + } + fprintf(trace_file," "); + for(j=0; j<16; j++) + { + sas_load(i+j, &tempb); + if (tempb < 0x20) + tempb = '.'; + fprintf(trace_file, "%c", tempb); + } + fprintf(trace_file, "\n"); + i += 16; + } + fprintf(trace_file, "\n"); +#endif /* SFELLOW */ + } +#if defined(CPU_40_STYLE) && !defined(CCPU) + LeaveDebug(); +#endif /* CPU_40_STYLE && !CCPU */ + +#else /* PROD */ + UNUSED(error_msg); + UNUSED(dump_info); +#endif /* PROD */ +} + +void trace_init() +{ +#if !defined(PROD) || defined(HUNTER) + + char *trace_env, *start; + + trace_env = host_getenv("TRACE"); + +/* + * Set up the trace file + *------------------------*/ + + if (trace_env == NULL) + trace_file = stdout; + else + { + trace_file = fopen(trace_env, "w"); + if (trace_file == NULL) + trace_file = stdout; + + start = host_getenv("TRACE_START"); + if(start == NULL) + trace_start = 0; + else + trace_start = atoi(start); + } +#endif /* !PROD || HUNTER */ +} + +/* Get the code for 4.0 style CPUs */ +#ifndef PROD +#ifdef CPU_40_STYLE +#if defined(NPX) +GLOBAL IU32 get_287_sp IFN0() +{ +#ifdef CCPU + IMPORT IU32 getNpxStatusReg IPT0(); + IU32 stat287 = getNpxStatusReg(); +#else + IMPORT IU32 a_getNpxStatusReg IPT0(); + IU32 stat287 = a_getNpxStatusReg(); +#endif + return((stat287&0x3800) >> 11); +} + +GLOBAL IU32 get_287_control_word IFN0() +{ +#ifdef CCPU + IMPORT IU32 getNpxControlReg IPT0(); + return(getNpxControlReg()); +#else + IMPORT IU32 a_getNpxControlReg IPT0(); + return(a_getNpxControlReg()); +#endif +} + +GLOBAL IU32 get_287_status_word IFN0() +{ +#ifdef CCPU + IMPORT IU32 getNpxStatusReg IPT0(); + return(getNpxStatusReg()); +#else + IMPORT IU32 a_getNpxStatusReg IPT0(); + return(a_getNpxStatusReg()); +#endif +} + +GLOBAL IU32 get_287_tag_word IFN0() +{ +#ifdef CCPU + IMPORT IU32 getNpxTagwordReg IPT0(); + return(getNpxTagwordReg()); +#else + IMPORT IU32 a_getNpxTagwordReg IPT0(); + return(a_getNpxTagwordReg()); +#endif +} + +GLOBAL CHAR *host_get_287_reg_as_string IFN2(IU32, reg_num, BOOL, in_hex) +{ +SAVED CHAR dumpStore[80]; + +#ifdef CCPU + IMPORT CHAR *getNpxStackReg IPT2(IU32, reg_num, CHAR *, dumpStore); + return(getNpxStackReg(reg_num, dumpStore)); +#else + IMPORT CHAR *a_getNpxStackReg IPT2(IU32, reg_num, CHAR *, dumpStore); + return(a_getNpxStackReg(reg_num, dumpStore)); +#endif +} +#endif /* NPX */ +#endif /* CPU_40_STYLE */ +#endif /* !PROD */ + diff --git a/private/mvdm/softpc.new/base/debug/yoda.c b/private/mvdm/softpc.new/base/debug/yoda.c new file mode 100644 index 000000000..e80d514a8 --- /dev/null +++ b/private/mvdm/softpc.new/base/debug/yoda.c @@ -0,0 +1,9518 @@ +#include "insignia.h" +#include "host_def.h" +/* + * SoftPC Revision 3.0 + * + * Title : yoda.c + * + * Description : The Debugger of a Jedi Master + * + * Author : Obi wan (ben) Kneobi + * + * Notes : May the force be with you. + * + */ + +#include +#include StringH +#include "xt.h" +#include "yoda.h" + + +#undef STATISTICS +#undef COMPRESSED_TRACE +#undef HOST_EXTENSION +#define BREAKPOINTS + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "YODA.seg" +#endif + +#ifdef SCCSID +static char SccsID[]="@(#)yoda.c 1.100 07/06/95 Copyright Insignia Solutions Ltd."; +#endif + +/* + * The following dummies are necessary to make the production version + * link. + */ + +#ifdef PROD + +int vader = 0; +#ifdef force_yoda +#undef force_yoda +#endif + +void force_yoda() +{ +} +#ifdef NONPROD_CPU + +/* this allows a non-prod CPU to be linked into a PROD build + * handy for pre-release demo versions if you don't fancy doing a + * full PROD cpu+vid just to keep management happy.... + */ +int do_condition_checks = 0; +#undef check_I +void check_I IFN0() +{ +} +#endif /* NONPROD_CPU */ +#ifdef DELTA +void delta_check_I() +{ +} +#endif /* DELTA */ +#endif /* PROD */ + +#ifdef YODA +/* + * O/S includes + */ +#include +#include +#include TypesH +#include StringH +#include +#ifndef PROD +#if defined(BSD4_2) || defined(SYSTEMV) +#include +#endif /* BSD4_2 or SYSTEMV */ + +/* + * SoftPC includes + */ +#include "xt.h" +#define CPU_PRIVATE +#include CpuH +#include "trace.h" +#include "sas.h" +#include "bios.h" +#include "ios.h" +#include "error.h" +#include "config.h" +#include "gfi.h" +#include "gmi.h" +#include "gvi.h" +#include "video.h" +#include "dsktrace.h" +#include "idetect.h" +#include "cmos.h" +#include "quick_ev.h" +#include "gfx_upd.h" +#ifndef SFELLOW +#include "host_gfx.h" +#ifdef NEXT /* until someone sorts out the host_timeval interface */ +#include "timeval.h" +#include "host_hfx.h" +#include "hfx.h" +#else /* ifdef NEXT */ +#include "host_hfx.h" +#include "hfx.h" +#include "timeval.h" +#endif /* ifdef NEXT else */ +#endif /* !SFELLOW */ + + +typedef enum { + br_regAX, + br_regBX, + br_regCX, + br_regDX, + br_regCS, + br_regDS, + br_regES, + br_regSS, + br_regSI, + br_regDI, + br_regSP, + br_regBP, +#ifdef SPC386 + br_regEAX, + br_regEBX, + br_regECX, + br_regEDX, + br_regFS, + br_regGS, + br_regESI, + br_regEDI, + br_regESP, + br_regEBP, +#endif /* SPC386 */ + br_regAH, + br_regBH, + br_regCH, + br_regDH, + br_regAL, + br_regBL, + br_regCL, + br_regDL +}BR_REG ; + +typedef struct { + BR_REG regnum; + char regname[10]; + SIZE_SPECIFIER size; +} BR_REGDESC; + +typedef struct br_regentry { + BR_REG regnum; + USHORT minval; + USHORT maxval; + struct br_regentry *next; + USHORT handle; +} BR_REGENTRY; + +BR_REGDESC br_regdescs[br_regDL+1]; + +#define NUM_BR_ENTRIES 40 + +BR_REGENTRY br_regs[NUM_BR_ENTRIES], *free_br_regs, *head_br_regs = NULL; + +static BOOL br_structs_initted = FALSE; + +GLOBAL IBOOL In_yoda=FALSE; + +#if defined(SYSTEMV) || defined(POSIX_SIGNALS) +#define MUST_BLOCK_TIMERS +#endif + +#ifdef MUST_BLOCK_TIMERS +int timer_blocked = 0; +#endif /* MUST_BLOCK_TIMERS */ + +#ifdef EGG +#include "egagraph.h" +#endif /* EGG */ + +#ifndef CPU_30_STYLE +#define CPU_YODA_INT 0 + +LOCAL VOID cpu_interrupt IFN2(int,x,int,y) +{ + UNUSED(x); + UNUSED(y); + cpu_interrupt_map |= CPU_YODA_EXCEPTION_MASK; + host_cpu_interrupt(); +} +#endif + + +#define sizeoftable(tab) (sizeof(tab)/sizeof(tab[0])) + +/* + * Add in defualt define for host_tolower(). + */ +#ifndef host_tolower +#define host_tolower(x) tolower(x) +#endif /* host_tolower */ + +/* + * Define value seen in parameter to yoda commands that take + * argument if no value is entered. + * The value chosen is very, very big, so the chances of any poor user + * actually choosing that value are very, very small! + */ +#define YODA_LEN_UNSPECIFIED (~(LIN_ADDR)0 >> 1) + + +/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + * + * William Roberts 20/8/92 + * + * Attempt to rationalise so that "s" really does step, without + * any stupidity about luke or yint+slow + * + * There are 3 cases: + * A3CPU others + * + * fast yoda: do_condition_checks = 0 yint = 0 + * medium yoda?: (N/A) yint = 1, fast = 1 + * slow yoda: do_condition_checks = 1 yint = 1, fast = 0 + * && getenv("YODA") != NULL + * + * The A3CPU has already built the threads by this time, so it is too + * late to select slow_yoda f the environment variable is not set... + * + * Fast yoda is really about trace printouts etc. You have to hit ^C + * to get into it, then start use it to examine things. + * + * Slow Yoda is needed for stepping, breakpoints etc. It causes the CPU + * to examine things at every instruction. + * + * Medium Yoda means "don't clear CPU_YODA_EXCEPTION when stepping". + */ + +/* + * luke variable for fast yoda + */ +int luke = 0; +int do_condition_checks = 0; + +/* pre A3CPU fast yoda stuff */ +int yint = 0; +int fast = 1; /* start interrupt yoda as fast by default */ + +static int chewy = 0; /* Up the Empire! */ +static int env_check = 0; /* Is Luke completely screwed? */ + +int slow_needed = 0; +char *slow_reason = "why slow is required"; + +#ifdef GISP_SVGA +LOCAL int NoYodaThanks = FALSE; +#endif /* GISP_SVGA */ + + +LOCAL LIN_ADDR eff_addr IFN2(IU16, seg, IU32, off) +{ + if (seg == 0) + return (off); + return (effective_addr(seg, off)); +} + + +LOCAL YODA_CMD_RETURN do_fast IPT6(char *, str, char *, com, IS32, cs, LIN_ADDR, ip, LIN_ADDR, len, LIN_ADDR, stop); +LOCAL YODA_CMD_RETURN do_slow IPT6(char *, str, char *, com, IS32, cs, LIN_ADDR, ip, LIN_ADDR, len, LIN_ADDR, stop); +LOCAL YODA_CMD_RETURN do_h IPT6(char *, str, char *, com, IS32, cs, LIN_ADDR, ip, LIN_ADDR, len, LIN_ADDR, stop); + +LOCAL YODA_CMD_RETURN go_slow IFN0() +{ +#if defined(A3CPU) && !defined(GISP_CPU) + if (env_check == 1) { + printf("Sorry, you must do 'setenv YODA TRUE' before starting an A3CPU\n"); + printf("Fast YODA: breakpoint-based features are not available\n"); + return(YODA_LOOP); + } +#endif /* A3CPU && !GISP_CPU */ + if (fast) { + printf("Switching to Slow YODA...\n"); + yint = 1; fast = 0; do_condition_checks = 1; +#if defined(CPU_40_STYLE) && !defined(CCPU) + Nano_slow_yoda(); /* Check that Nano will give us check_I's */ +#endif /* CPU_40_STYLE && !CCPU */ + } +#if defined(A2CPU) || defined(GISP_CPU) + /* raise a YODA interrupt in the CPU */ + cpu_interrupt (CPU_YODA_INT, 0); +#else + /* others already check do_condition_checks */ +#endif /* A2CPU || GISP_CPU */ + + return(YODA_RETURN_AND_REPEAT); +} +/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */ + + + +#ifdef DELTA +extern void examine_delta_data_structs(); +extern void print_last_dest(); +#endif /* DELTA */ + +/* vader is referenced by delta.o */ +int vader = 0; + +int disable_timer = 0; + + +#define MAX_TABLE 0x100 +#define MAX_TABLE_BREAK_WORDS 10 + +#ifdef macintosh +#define MAX_BREAK_WORD_RANGE 0x100 +#else +#define MAX_BREAK_WORD_RANGE 0xFFF +#endif + +typedef struct { + IU16 cs; + LIN_ADDR ip; + LIN_ADDR len; + LIN_ADDR start_addr; + LIN_ADDR end_addr; + LIN_ADDR stop; + long temp; + long valid; + } BPTS; + +typedef struct { + IU16 cs; + LIN_ADDR ip; + IUH data_addr; + word old_value[ MAX_BREAK_WORD_RANGE ]; + LIN_ADDR stop; + LIN_ADDR len; + } DATA_BPTS; + +extern int disk_trace, verbose; +extern int intr(), yoda_intr IPT1(int, signo); +extern int timer_int_enabled; + +int trace_type = DUMP_FLAGS | DUMP_REG | DUMP_INST; +#define INTEL_OPCODES 256 +#define INSIGNIA_OPCODES 2 +#define NR_ADDRS 256 +#define INST_MIX_LENGTH ((INTEL_OPCODES+INSIGNIA_OPCODES)*NR_ADDRS) +/* inst_mix array declared below */ +long inst_mix_count = 0; + +static long big_dump=0; /* compress trace will dump all regs or just cs and ip */ +static long ct_no_rom = 0; /* non-zero means exclude ROM from 'ct' */ +static long ct_delta_info=0; /* compress trace can dump an extra field when in a frag */ + +static int bse_seg = -1; +static int last_seg = -1; + + +/* +** Status variables for 80286/8087/80287 break and trace. +*/ +static int b286_1=0, b286_2=0; /* status of break on 80286 instructions, see the "b286-1" and "b286-2" commmands */ +static int b286_1_stop=0, b286_2_stop=0; /* 0=trace 1=break to yoda */ +static int bNPX=0, bNPX_stop=0; + +/* I/O streams */ +FILE *out_stream = NULL; +FILE *in_stream = NULL; + +GLOBAL int yoda_confirm IFN1(char *, question) +{ + char str [81]; + +#ifndef SFELLOW + if (in_stream != stdin) return TRUE; +#endif /* SFELLOW */ + + fputs(question, stdout); + fflush(stdout); + + if (fgets (str, 80, in_stream) && + (str[0] == 'y' || str[0] == 'Y')) { + return TRUE; /* to be on the safe side */ + } + return FALSE; +} + +/* + * Define file pointers for automatic file compare + */ +FILE *compress_stream = 0; +FILE *compress_npx = 0; +FILE *compare_stream = 0; +IUH compress_break = 0; +IUH compare_break = 0; +IUH compare_skip = 0; + +/* + * EOR + */ +int disk_inst = 0; + +int int_breakpoint = 0; + +int inst_break_count = 0; +BPTS inst[MAX_TABLE]; + +int host_address_break_count = 0; +DATA_BPTS host_addresses[MAX_TABLE_BREAK_WORDS]; + +int data_words_break_count = 0; +DATA_BPTS data_words[MAX_TABLE_BREAK_WORDS]; + +int data_bytes_break_count = 0; +BPTS data_bytes[MAX_TABLE]; + +int opcode_break_count = 0; +typedef struct { + IU32 op; + IU32 mask; + IU32 stop; +} OPCODE_BREAK; +OPCODE_BREAK opcode_breaks[MAX_TABLE]; + +/* +** TF break stuff used by "btf" +*/ +int tf_break_enabled = 0; + +/* +** interrupt break stuff used by "bintx" +*/ +int int_break_count = 0; +IU8 int_breaks[MAX_TABLE][2]; + +int access_break_count = 0; +long access_breaks[MAX_TABLE]; + +int step_count = -1; +int disable_bkpt = 0; + +int refresh_screen = 0; + +#ifdef DELTA +static int delta_prompt = 0; +#endif /* DELTA */ + +static short back_trace_flags = 0; +static IUH ct_line_num; + +#ifdef CPU_40_STYLE +enum pla_type { pla_type_empty, + pla_type_rm_code, + pla_type_pm_small_code, + pla_type_pm_big_code, + pla_type_simulate, + pla_type_unsimulate, + pla_type_bop_done, + pla_type_intack, + pla_type_pig_force, + pla_type_nano_enter, + pla_type_nano_leave +}; +#ifndef CCPU +#include +#endif /* CCPU */ +#endif /* CPU_40_STYLE */ + +#define PLA_SIZE (64*1024) + +/* ----- Assorted BIG arrays, which the Mac needs to obtain using + * ----- malloc + */ + +#ifndef macintosh + +unsigned long inst_mix[INST_MIX_LENGTH]; +word last_cs[PLA_SIZE]; +LIN_ADDR last_ip[PLA_SIZE]; + +#ifdef CPU_40_STYLE +enum pla_type last_type[PLA_SIZE]; +#endif /* CPU_40_STYLE */ + +#else /* !macintosh */ + +#include /* for _NewPtrClear */ + +unsigned long *inst_mix; +word *last_cs; +LIN_ADDR *last_ip; + +#ifdef CPU_40_STYLE +enum pla_type *last_type; +#endif + +GLOBAL void mac_yoda_init IFN0() +{ + /* These values should be initialised to zero */ + +#define ALLOCATE_ARRAY(type, name, size) \ + name = (type *)NewPtrClear((size)*sizeof(*name)); + + ALLOCATE_ARRAY( unsigned long, inst_mix, INST_MIX_LENGTH); + ALLOCATE_ARRAY( word, last_cs, PLA_SIZE); + ALLOCATE_ARRAY( LIN_ADDR, last_ip, PLA_SIZE); + +#ifdef CPU_40_STYLE + ALLOCATE_ARRAY( enum pla_type, last_type,PLA_SIZE); +#endif /* CPU_40_STYLE */ +} + +#endif /* macintosh */ + +int pla_ptr=0; + +GLOBAL void set_last_address IFN2( word, cs, LIN_ADDR, ip) +{ + /* + * Update the last address stamp + */ +#ifdef CPU_40_STYLE + /* We need to know if the CS is "big", this is expensive to calculate + * every instruction, and almost impossible to deduce at print time + * (e.g. after changing from V86 mode) + * We compromise, by recording CsIsBig() when CS changes, and + * accept the (small) loop-hole where a V86 (i.e. small) CS has + * the same value as the PM, large, handler to which the V86code traps. + */ + SAVED IU32 previous_cs = 0xFFFFFFFF; + SAVED enum pla_type cs_code_kind; + + if (cs != previous_cs) + { + if (getPE() && (getVM() == 0)) + { + if (CsIsBig(cs)) + cs_code_kind = pla_type_pm_big_code; + else + cs_code_kind = pla_type_pm_small_code; + } + else + cs_code_kind = pla_type_rm_code; + previous_cs = cs; + } + last_type[pla_ptr] = cs_code_kind; +#endif /* CPU_40_STYLE */ + + last_cs[pla_ptr] = cs; + last_ip[pla_ptr] = ip; + if (++pla_ptr==PLA_SIZE) + { + pla_ptr = 0; + } +} + +#ifdef CPU_40_STYLE +GLOBAL void set_last_bop_done IFN1( word, number ) +{ + /* + * Update the last address stamp with BOP marker + */ + + last_cs[pla_ptr] = 0; + last_ip[pla_ptr] = number; + last_type[pla_ptr] = pla_type_bop_done; + if (++pla_ptr==PLA_SIZE) + { + pla_ptr = 0; + } +} +#endif /* CPU_40_STYLE */ + +#ifdef CPU_40_STYLE +GLOBAL void set_last_simulate IFN2(int, nesting_level, IBOOL, is_simulate) +{ + /* + * Update the last address stamp with (UN)SIMULATE marker + */ + + last_cs[pla_ptr] = 0; + last_ip[pla_ptr] = nesting_level; + last_type[pla_ptr] = is_simulate ? pla_type_simulate: pla_type_unsimulate; + if (++pla_ptr==PLA_SIZE) + { + pla_ptr = 0; + } +} +#endif /* CPU_40_STYLE */ + +#ifdef CPU_40_STYLE +GLOBAL void set_last_intack IFN1( word, line ) +{ + /* + * Update the last address stamp with INTACK line + */ + + last_cs[pla_ptr] = 0; + last_ip[pla_ptr] = line; + last_type[pla_ptr] = pla_type_intack; + if (++pla_ptr==PLA_SIZE) + { + pla_ptr = 0; + } +} +#endif /* CPU_40_STYLE */ + +#ifdef CPU_40_STYLE +GLOBAL void set_last_pig_force IFN0() +{ + /* + * Update the last address stamp with PIG FORCE marker + */ + + last_cs[pla_ptr] = 0; + last_ip[pla_ptr] = 0; + last_type[pla_ptr] = pla_type_pig_force; + if (++pla_ptr==PLA_SIZE) + { + pla_ptr = 0; + } +} + + +GLOBAL void set_last_nano_enter IFN0() +{ + /* + * Update the last address stamp with Nano enter marker + */ + + last_cs[pla_ptr] = 0; + last_ip[pla_ptr] = 0; + last_type[pla_ptr] = pla_type_nano_enter; + if (++pla_ptr==PLA_SIZE) + { + pla_ptr = 0; + } +} + + +GLOBAL void set_last_nano_leave IFN0() +{ + /* + * Update the last address stamp with Nano leave marker + */ + + last_cs[pla_ptr] = 0; + last_ip[pla_ptr] = 0; + last_type[pla_ptr] = pla_type_nano_leave; + if (++pla_ptr==PLA_SIZE) + { + pla_ptr = 0; + } +} +#endif /* CPU_40_STYLE */ + + +host_addr host_dest_addr; /* address just written to by cpu */ + +/* Register Break Point Support */ +typedef struct + { + int reg; + int value; + int stop; + } REG_BKPT; + +#define MAX_REG_BKPT 5 + +int reg_break_count = 0; + +REG_BKPT reg_bkpt[MAX_REG_BKPT]; + + +#if defined(GENERIC_NPX) && !defined(CPU_40_STYLE) +IMPORT CHAR *NPXDebugPtr, *NPXDebugBase; +IMPORT ULONG *NPXFreq; + +#define MAX_NPX_OPCODE (sizeoftable(NPXOpcodes)) + +static char *NPXOpcodes[] = { + "Unimplemented", + "Fadd_from_reg", + "Fadd_to_reg", + "Faddp_to_reg", + "Fadd_sr", + "Fadd_lr", + "Fmul_from_reg", + "Fmul_to_reg", + "Fmulp_to_reg", + "Fmul_sr", + "Fmul_lr", + "Fcom_reg", + "Fcomp_reg", + "Fcom_sr", + "Fcom_lr", + "Fcomp_sr", + "Fcomp_lr", + "Fsub_from_reg", + "Fsub_to_reg", + "Fsubp_reg", + "Fsub_sr", + "Fsub_lr", + "Fsubr_from_reg", + "Fsubr_to_reg", + "Fsubrp_reg", + "Fsubr_sr", + "Fsubr_lr", + "Fdiv_from_reg", + "Fdiv_to_reg", + "Fdivp_reg", + "Fdiv_sr", + "Fdiv_lr", + "Fdivr_from_reg", + "Fdivr_to_reg", + "Fdivrp_reg", + "Fdivr_sr", + "Fdivr_lr", + "Fld_reg", + "Fld_sr", + "Fld_lr", + "Fld_tr", + "Fst_reg", + "Fst_sr", + "Fst_lr", + "Fstp_reg", + "Fstp_sr", + "Fstp_lr", + "Fstp_tr", + "Fxch", + "Fiadd_si", + "Fiadd_wi", + "Fimul_si", + "Fimul_wi", + "Ficom_si", + "Ficom_wi", + "Ficomp_si", + "Ficomp_wi", + "Fisub_si", + "Fisub_wi", + "Fisubr_si", + "Fisubr_wi", + "Fidiv_si", + "Fidiv_wi", + "Fidivr_si", + "Fidivr_wi", + "Fild_si", + "Fild_wi", + "Fild_li", + "Fist_si", + "Fist_wi", + "Fistp_si", + "Fistp_wi", + "Fistp_li", + "Ffree", + "Ffreep", + "Fbld", + "Fbstp", + "Fldcw", + "Fstenv", + "Fstcw", + "Fnop", + "Fchs", + "Fabs", + "Ftst", + "Fxam", + "Fld1", + "Fldl2t", + "Fldl2e", + "Fldpi", + "Fldlg2", + "Fldln2", + "Fldz", + "F2xm1", + "Fyl2x", + "Fptan", + "Fpatan", + "Fxtract", + "Fdecstp", + "Fincstp", + "Fprem", + "Fyl2xp1", + "Fsqrt", + "Frndint", + "Fscale", + "Fclex", + "Finit", + "Frstor", + "Fsave", + "Fstsw", + "Fcompp", + "Fstswax", + "Fldenv" +}; +#endif /* GENERIC_NPX && !CPU_40_STYLE */ + +#ifdef PM +#ifdef SPC386 +struct VMM_services { + char *name; + IU16 value; +}; +static struct VMM_services VMM_services[] = { + { "Get_VMM_Version", 0x00 }, { "Get_Cur_VM_Handle", 0x01 }, + { "Test_Cur_VM_Handle", 0x02 }, { "Get_Sys_VM_Handle", 0x03 }, + { "Test_Sys_VM_Handle", 0x04 }, { "Validate_VM_Handle", 0x05 }, + { "Get_VMM_Reenter_Count", 0x06 }, { "Begin_Reentrant_Execution", 0x07 }, + { "End_Reentrant_Execution", 0x08 }, { "Install_V86_Break_Point", 0x09 }, + { "Remove_V86_Break_Point", 0x0a }, { "Allocate_V86_Call_Back", 0x0b }, + { "Allocate_PM_Call_Back", 0x0c }, { "Call_When_VM_Returns", 0x0d }, + { "Schedule_Global_Event", 0x0e }, { "Schedule_VM_Event", 0x0f }, + { "Call_Global_Event", 0x10 }, { "Call_VM_Event", 0x11 }, + { "Cancel_Global_Event", 0x12 }, { "Cancel_VM_Event", 0x13 }, + { "Call_Priority_VM_Event", 0x14 }, { "Cancel_Priority_VM_Event", 0x15 }, + { "Get_NMI_Handler_Addr", 0x16 }, { "Set_NMI_Handler_Addr", 0x17 }, + { "Hook_NMI_Event", 0x18 }, { "Call_When_VM_Ints_Enabled", 0x19 }, + { "Enable_VM_Ints", 0x1a }, { "Disable_VM_Ints", 0x1b }, + { "Map_Flat", 0x1c }, { "Map_Lin_To_VM_Addr", 0x1d }, + { "Adjust_Exec_Priority", 0x1e }, { "Begin_Critical_Section", 0x1f }, + { "End_Critical_Section", 0x20 }, { "End_Crit_And_Suspend", 0x21 }, + { "Claim_Critical_Section", 0x22 }, { "Release_Critical_Section", 0x23 }, + { "Call_When_Not_Critical", 0x24 }, { "Create_Semaphore", 0x25 }, + { "Destroy_Semaphore", 0x26 }, { "Wait_Semaphore", 0x27 }, + { "Signal_Semaphore", 0x28 }, { "Get_Crit_Section_Status", 0x29 }, + { "Call_When_Task_Switched", 0x2a }, { "Suspend_VM", 0x2b }, + { "Resume_VM", 0x2c }, { "No_Fail_Resume_VM", 0x2d }, + { "Nuke_VM", 0x2e }, { "Crash_Cur_VM", 0x2f }, + { "Get_Execution_Focus", 0x30 }, { "Set_Execution_Focus", 0x31 }, + { "Get_Time_Slice_Priority", 0x32 }, { "Set_Time_Slice_Priority", 0x33 }, + { "Get_Time_Slice_Granularity", 0x34 },{ "Set_Time_Slice_Granularity", 0x35 }, + { "Get_Time_Slice_Info", 0x36 }, { "Adjust_Execution_Time", 0x37 }, + { "Release_Time_Slice", 0x38 }, { "Wake_Up_VM", 0x39 }, + { "Call_When_Idle", 0x3a }, { "Get_Next_VM_Handle", 0x3b }, + { "Set_Global_Time_Out", 0x3c }, { "Set_VM_Time_Out", 0x3d }, + { "Cancel_Time_Out", 0x3e }, { "Get_System_Time", 0x3f }, + { "Get_VM_Exec_Time", 0x40 }, { "Hook_V86_Int_Chain", 0x41 }, + { "Get_V86_Int_Vector", 0x42 }, { "Set_V86_Int_Vector", 0x43 }, + { "Get_PM_Int_Vector", 0x44 }, { "Set_PM_Int_Vector", 0x45 }, + { "Simulate_Int", 0x46 }, { "Simulate_Iret", 0x47 }, + { "Simulate_Far_Call", 0x48 }, { "Simulate_Far_Jmp", 0x49 }, + { "Simulate_Far_Ret", 0x4a }, { "Simulate_Far_Ret_N", 0x4b }, + { "Build_Int_Stack_Frame", 0x4c }, { "Simulate_Push", 0x4d }, + { "Simulate_Pop", 0x4e }, { "_HeapAllocate", 0x4f }, + { "_HeapReAllocate", 0x50 }, { "_HeapFree", 0x51 }, + { "_HeapGetSize", 0x52 }, { "_PageAllocate", 0x53 }, + { "_PageReAllocate", 0x54 }, { "_PageFree", 0x55 }, + { "_PageLock", 0x56 }, { "_PageUnLock", 0x57 }, + { "_PageGetSizeAddr", 0x58 }, { "_PageGetAllocInfo", 0x59 }, + { "_GetFreePageCount", 0x5a }, { "_GetSysPageCount", 0x5b }, + { "_GetVMPgCount", 0x5c }, { "_MapIntoV86", 0x5d }, + { "_PhysIntoV86", 0x5e }, { "_TestGlobalV86Mem", 0x5f }, + { "_ModifyPageBits", 0x60 }, { "_CopyPageTable", 0x61 }, + { "_LinMapIntoV86", 0x62 }, { "_LinPageLock", 0x63 }, + { "_LinPageUnLock", 0x64 }, { "_SetResetV86Pageable", 0x65 }, + { "_GetV86PageableArray", 0x66 }, { "_PageCheckLinRange", 0x67 }, + { "_PageOutDirtyPages", 0x68 }, { "_PageDiscardPages", 0x69 }, + { "_GetNulPageHandle", 0x6a }, { "_GetFirstV86Page", 0x6b }, + { "_MapPhysToLinear", 0x6c }, { "_GetAppFlatDSAlias", 0x6d }, + { "_SelectorMapFlat", 0x6e }, { "_GetDemandPageInfo", 0x6f }, + { "_GetSetPageOutCount", 0x70 }, { "Hook_V86_Page", 0x71 }, + { "_Assign_Device_V86_Pages", 0x72 }, { "_DeAssign_Device_V86_Pages", 0x73 }, + { "_Get_Device_V86_Pages_Array", 0x74 },{ "MMGR_SetNULPageAddr", 0x75 }, + { "_Allocate_GDT_Selector", 0x76 }, { "_Free_GDT_Selector", 0x77 }, + { "_Allocate_LDT_Selector", 0x78 }, { "_Free_LDT_Selector", 0x79 }, + { "_BuildDescriptorDWORDs", 0x7a }, { "_GetDescriptor", 0x7b }, + { "_SetDescriptor", 0x7c }, { "_MMGR_Toggle_HMA", 0x7d }, + { "Get_Fault_Hook_Addrs", 0x7e }, { "Hook_V86_Fault", 0x7f }, + { "Hook_PM_Fault", 0x80 }, { "Hook_VMM_Fault", 0x81 }, + { "Begin_Nest_V86_Exec", 0x82 }, { "Begin_Nest_Exec", 0x83 }, + { "Exec_Int", 0x84 }, { "Resume_Exec", 0x85 }, + { "End_Nest_Exec", 0x86 }, { "Allocate_PM_App_CB_Area", 0x87 }, + { "Get_Cur_PM_App_CB", 0x88 }, { "Set_V86_Exec_Mode", 0x89 }, + { "Set_PM_Exec_Mode", 0x8a }, { "Begin_Use_Locked_PM_Stack", 0x8b }, + { "End_Use_Locked_PM_Stack", 0x8c }, { "Save_Client_State", 0x8d }, + { "Restore_Client_State", 0x8e }, { "Exec_VxD_Int", 0x8f }, + { "Hook_Device_Service", 0x90 }, { "Hook_Device_V86_API", 0x91 }, + { "Hook_Device_PM_API", 0x92 }, { "System_Control", 0x93 }, + { "Simulate_IO", 0x94 }, { "Install_Mult_IO_Handlers", 0x95 }, + { "Install_IO_Handler", 0x96 }, { "Enable_Global_Trapping", 0x97 }, + { "Enable_Local_Trapping", 0x98 }, { "Disable_Global_Trapping", 0x99 }, + { "Disable_Local_Trapping", 0x9a }, { "List_Create", 0x9b }, + { "List_Destroy", 0x9c }, { "List_Allocate", 0x9d }, + { "List_Attach", 0x9e }, { "List_Attach_Tail", 0x9f }, + { "List_Insert", 0xa0 }, { "List_Remove", 0xa1 }, + { "List_Deallocate", 0xa2 }, { "List_Get_First", 0xa3 }, + { "List_Get_Next", 0xa4 }, { "List_Remove_First", 0xa5 }, + { "_AddInstanceItem", 0xa6 }, { "_Allocate_Device_CB_Area", 0xa7 }, + { "_Allocate_Global_V86_Data_Area", 0xa8 },{ "_Allocate_Temp_V86_Data_Area", 0xa9 }, + { "_Free_Temp_V86_Data_Area", 0xaa }, { "Get_Profile_Decimal_Int", 0xab }, + { "Convert_Decimal_String", 0xac }, { "Get_Profile_Fixed_Point", 0xad }, + { "Convert_Fixed_Point_String", 0xae },{ "Get_Profile_Hex_Int", 0xaf }, + { "Convert_Hex_String", 0xb0 }, { "Get_Profile_Boolean", 0xb1 }, + { "Convert_Boolean_String", 0xb2 }, { "Get_Profile_String", 0xb3 }, + { "Get_Next_Profile_String", 0xb4 }, { "Get_Environment_String", 0xb5 }, + { "Get_Exec_Path", 0xb6 }, { "Get_Config_Directory", 0xb7 }, + { "OpenFile", 0xb8 }, { "Get_PSP_Segment", 0xb9 }, + { "GetDOSVectors", 0xba }, { "Get_Machine_Info", 0xbb }, + { "GetSet_HMA_Info", 0xbc }, { "Set_System_Exit_Code", 0xbd }, + { "Fatal_Error_Handler", 0xbe }, { "Fatal_Memory_Error", 0xbf }, + { "Update_System_Clock", 0xc0 }, { "Test_Debug_Installed", 0xc1 }, + { "Out_Debug_String", 0xc2 }, { "Out_Debug_Chr", 0xc3 }, + { "In_Debug_Chr", 0xc4 }, { "Debug_Convert_Hex_Binary", 0xc5 }, + { "Debug_Convert_Hex_Decimal", 0xc6 },{ "Debug_Test_Valid_Handle", 0xc7 }, + { "Validate_Client_Ptr", 0xc8 }, { "Test_Reenter", 0xc9 }, + { "Queue_Debug_String", 0xca }, { "Log_Proc_Call", 0xcb }, + { "Debug_Test_Cur_VM", 0xcc }, { "Get_PM_Int_Type", 0xcd }, + { "Set_PM_Int_Type", 0xce }, { "Get_Last_Updated_System_Time", 0xcf }, + { "Get_Last_Updated_VM_Exec_Time", 0xd0 },{ "Test_DBCS_Lead_Byte", 0xd1 }, + { "_AddFreePhysPage", 0xd2 }, { "_PageResetHandlePAddr", 0xd3 }, + { "_SetLastV86Page", 0xd4 }, { "_GetLastV86Page", 0xd5 }, + { "_MapFreePhysReg", 0xd6 }, { "_UnmapFreePhysReg", 0xd7 }, + { "_XchgFreePhysReg", 0xd8 }, { "_SetFreePhysRegCalBk", 0xd9 }, + { "Get_Next_Arena", 0xda }, { "Get_Name_Of_Ugly_TSR", 0xdb }, + { "Get_Debug_Options", 0xdc }, { "Set_Physical_HMA_Alias", 0xdd }, + { "_GetGlblRng0V86IntBase", 0xde }, { "_Add_Global_V86_Data_Area", 0xdf }, + { "GetSetDetailedVMError", 0xe0 }, { "Is_Debug_Chr", 0xe1 }, + { "Clear_Mono_Screen", 0xe2 }, { "Out_Mono_Chr", 0xe3 }, + { "Out_Mono_String", 0xe4 }, { "Set_Mono_Cur_Pos", 0xe5 }, + { "Get_Mono_Cur_Pos", 0xe6 }, { "Get_Mono_Chr", 0xe7 }, + { "Locate_Byte_In_ROM", 0xe8 }, { "Hook_Invalid_Page_Fault", 0xe9 }, + { "Unhook_Invalid_Page_Fault", 0xea },{ "Set_Delete_On_Exit_File", 0xeb }, + { "Close_VM", 0xec }, { "Enable_Touch_1st_Meg", 0xed }, + { "Disable_Touch_1st_Meg", 0xee }, { "Install_Exception_Handler", 0xef }, + { "Remove_Exception_Handler", 0xf0 }, { "Get_Crit_Status_No_Block", 0xf1 }, + { NULL, 0 } +}; + +static char *segment_names[] = + { + "INVALID", + "286_AVAILABLE_TSS", + "LDT_SEGMENT", + "286_BUSY_TSS", + "286_CALL_GATE", + "TASK_GATE", + "286_INTERRUPT_GATE", + "286_TRAP_GATE", + "INVALID", + "386_AVAILABLE_TSS", + "INVALID", + "386_BUSY_TSS", + "386_CALL_GATE", + "INVALID", + "386_INTERRUPT_GATE", + "386_TRAP_GATE", + "EXPANDUP_READONLY_DATA", + "EXPANDUP_READONLY_DATA", + "EXPANDUP_WRITEABLE_DATA", + "EXPANDUP_WRITEABLE_DATA", + "EXPANDDOWN_READONLY_DATA", + "EXPANDDOWN_READONLY_DATA", + "EXPANDDOWN_WRITEABLE_DATA", + "EXPANDDOWN_WRITEABLE_DATA", + "NONCONFORM_NOREAD_CODE", + "NONCONFORM_NOREAD_CODE", + "NONCONFORM_READABLE_CODE", + "NONCONFORM_READABLE_CODE", + "CONFORM_NOREAD_CODE", + "CONFORM_NOREAD_CODE", + "CONFORM_READABLE_CODE", + "CONFORM_READABLE_CODE" + }; +#else +static char *segment_names[] = + { + "INVALID", + "AVAILABLE_TSS", + "LDT_SEGMENT", + "BUSY_TSS", + "CALL_GATE", + "TASK_GATE", + "INTERRUPT_GATE", + "TRAP_GATE", + "INVALID", + "INVALID", + "INVALID", + "INVALID", + "INVALID", + "INVALID", + "INVALID", + "INVALID", + "EXPANDUP_READONLY_DATA", + "EXPANDUP_READONLY_DATA", + "EXPANDUP_WRITEABLE_DATA", + "EXPANDUP_WRITEABLE_DATA", + "EXPANDDOWN_READONLY_DATA", + "EXPANDDOWN_READONLY_DATA", + "EXPANDDOWN_WRITEABLE_DATA", + "EXPANDDOWN_WRITEABLE_DATA", + "NONCONFORM_NOREAD_CODE", + "NONCONFORM_NOREAD_CODE", + "NONCONFORM_READABLE_CODE", + "NONCONFORM_READABLE_CODE", + "CONFORM_NOREAD_CODE", + "CONFORM_NOREAD_CODE", + "CONFORM_READABLE_CODE", + "CONFORM_READABLE_CODE" + }; +#endif /* SPC386 */ + +static int descr_trace = 0x3f; + +#endif /* PM */ + +static int low_trace_limit = 0x0; +static int high_trace_limit = 0x400000; + +#ifdef SFELLOW +LOCAL char SfNotImp[] = "This function is not implemented on Stringfellows.\n"; +#endif /* SFELLOW */ + +#ifdef SPC386 +#define DASM_INTERNAL +#include +#else /* SPC386 */ +IMPORT word dasm IPT5(char *, i_output_stream, word, i_atomicsegover, word, i_segreg, word, i_segoff, int, i_nInstr); +#endif /* SPC386 */ + +/* + * ========================================================================== + * Imported functions + * ========================================================================== + */ + +IMPORT VOID host_yoda_help_extensions IPT0(); +IMPORT int host_force_yoda_extensions IPT5(char *,com, long,cs, long,ip, long,len, char *, str); +IMPORT int host_yoda_check_I_extensions IPT0(); +IMPORT int btrace IPT1(int, flags); +IMPORT void axe_ticks IPT1(int, ticks); +IMPORT void dump_Display IPT0(); +IMPORT void dump_EGA_CPU IPT0(); +IMPORT void dump_ega_planes IPT0(); +IMPORT void read_ega_planes IPT0(); +IMPORT void set_hfx_severity IPT0(); +IMPORT void com_debug IPT0(); +#ifdef DPMI +IMPORT void set_dpmi_severity IPT0(); +#endif /* DPMI */ +IMPORT void com_debug IPT0(); +#ifndef GISP_CPU +#ifdef A3CPU +IMPORT void D2DmpBinaryImage IPT1(LONG, csbase24); +IMPORT void IH_dump_frag_hist IPT1(ULONG, n); +IMPORT void D2ForceTraceInit IPT0(); +#endif +#endif /* GISP_CPU */ +/* + * ========================================================================== + * Local functions + * ========================================================================== + */ + +LOCAL void set_reg_break IPT3(char*, regstr, IU32,minv, IU32,maxv); +LOCAL void show_phys_addr IPT1(LIN_ADDR, lin); +LOCAL void guess_lin_phys IPT1(PHY_ADDR, phys); +LOCAL void guess_lin_pte IPT1(PHY_ADDR, pte_addr); +LOCAL void dump_page_table IPT2(IS32, cs, IS32, len); +GLOBAL void da_block IPT3(IU16, cs, LIN_ADDR, ip, LIN_ADDR, len) ; +LOCAL void dump_bytes IPT3(IU16, cs, LIN_ADDR, ip, LIN_ADDR, len); +LOCAL void dump_words IPT3(IU16, cs, LIN_ADDR, ip, LIN_ADDR, len); +LOCAL void dump_dwords IPT3(IU16, cs, LIN_ADDR, ip, LIN_ADDR, len); + +#ifdef ANSI +LOCAL void clear_reg_break(char*); +LOCAL void print_reg_break(); +LOCAL BOOL check_reg_break(); +LOCAL void set_inst_break(IU16, LIN_ADDR, LIN_ADDR, LIN_ADDR, long); +LOCAL void dump_phys_bytes(IS32, IS32); +LOCAL void print_inst_break(void); +LOCAL void set_data_break_words(LIN_ADDR,LIN_ADDR,LIN_ADDR); +LOCAL void set_host_address_break(LIN_ADDR, LIN_ADDR, LIN_ADDR); +LOCAL void print_host_address_breaks(void); +LOCAL void print_data_break_words(); +LOCAL void set_opcode_break(IU32, IU32); +LOCAL void set_int_break(IU8, IU8); +LOCAL void print_int_break(void); +LOCAL void print_opcode_break(void); +LOCAL void set_access_break(int); +LOCAL void print_access_break(void); +LOCAL void print_inst_mix(int); +LOCAL void cga_test(void); +LOCAL void do_back_trace(void); +LOCAL void add_inst_mix(void); +#ifdef NPX +LOCAL void do_compress_npx(FILE *); +#endif +#else /* ANSI */ +LOCAL void clear_reg_break(); +LOCAL void print_reg_break(); +LOCAL BOOL check_reg_break(); +LOCAL void set_inst_break(); +LOCAL void dump_phys_bytes(); +LOCAL void print_inst_break(); +LOCAL void set_data_break_words(); +LOCAL void set_host_address_break(); +LOCAL void print_host_address_breaks(); +LOCAL void print_data_break_words(); +LOCAL void set_opcode_break(); +LOCAL void set_int_break(); +LOCAL void print_int_break(); +LOCAL void print_opcode_break(); +LOCAL void set_access_break(); +LOCAL void print_access_break(); +LOCAL void print_inst_mix(); +LOCAL void cga_test(); +LOCAL void do_back_trace(); +LOCAL void add_inst_mix(); +#ifdef NPX +LOCAL void do_compress_npx(); +#endif +#endif + +LOCAL dump_descr IPT2(LIN_ADDR, address, IUM32, num); + +/* + * YODA COMMAND HANDLERS + * ===================== + */ + +#ifdef GISP_SVGA + +/* Allow us to turn Yoda "off" - this is so that if SoftPC is running full +screen a force_yoda() won't leave you wanting to type c into a window you can't +get at */ +LOCAL YODA_COMMAND(doNoYoda) +{ + char * NotStr; + + if( !NoYodaThanks ) + { + stop = yoda_confirm("Are you really sure that you want to turn yoda off?"); + + if( stop ) + { + NoYodaThanks = TRUE; + } + } + else + { + NoYodaThanks = FALSE; + } + + if( NoYodaThanks ) + { + printf( "On your head be it....call doNoYoda() from your debugger\nor set the global variable noYodaThanks FALSE to re-enable yoda\n" ); + } + else + { + printf( "Yoda re-enabled\n" ); + } + + return 0; +} + +#endif /* GISP_SVGA */ +/*( + *========================== do_pmt ================================== + * do_pmt + * + * Purpose + * This routine prints a map of the different memory types across the + * whole of M. + * + * Input + * Is not used. + * + * Outputs + * None. + * + * Description + * We step through each 4K page in turn, printing out a new line every + * time the memory type changes. + * +)*/ + +LOCAL YODA_COMMAND(do_pmt) +{ + PHY_ADDR currPage; + PHY_ADDR endOfM; + IU8 currType = SAS_MAX_TYPE + 1; /*cause type at addr 0 to print*/ + IU8 newType; + + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + currPage = 0; + endOfM = sas_memory_size(); + + while (currPage < endOfM) { + newType = sas_memory_type(currPage); + if (newType != currType) { + currType = newType; + printf("\t0x%.08x %.80s\n", currPage, + SAS_TYPE_TO_STRING(newType)); + } + currPage += 0x1000; + } + printf("\t0x%.08x END OF MEMORY\n", endOfM); + return(YODA_LOOP); +} + + +#if defined(GENERIC_NPX) && !defined(CPU_40_STYLE) +LOCAL YODA_COMMAND(do_NPXdisp) +{ + CHAR *myNPXPtr = NPXDebugPtr; + + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + while (cs--) { + fprintf(trace_file,"%s\n", NPXOpcodes[*--myNPXPtr]); + if (myNPXPtr < NPXDebugBase) + myNPXPtr = NPXDebugBase + 0x1000; + } + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_NPXfreq) +{ + ULONG *myNPXPtr = NPXFreq; + int i; + ULONG count; + + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + UNUSED(cs); + + for (i=0;i> 5; /* dpl */ + ip = (getCS_AR() & 0x1f); /* super */ + fprintf(trace_file, "CS:: SELECTOR:%4x DPL:%1d TYPE:%25s BASE: %6x LIMIT:%4x\n", + getCS_SELECTOR(), cs, segment_names[ip], getCS_BASE(), getCS_LIMIT()); + cs = (getSS_AR() & 0x60) >> 5; /* dpl */ + ip = (getSS_AR() & 0x1f); /* super */ + fprintf(trace_file, "SS:: SELECTOR:%4x DPL:%1d TYPE:%25s BASE: %6x LIMIT:%4x\n", + getSS_SELECTOR(), cs, segment_names[ip], getSS_BASE(), getSS_LIMIT()); + cs = (getDS_AR() & 0x60) >> 5; /* dpl */ + ip = (getDS_AR() & 0x1f); /* super */ + fprintf(trace_file, "DS:: SELECTOR:%4x DPL:%1d TYPE:%25s BASE: %6x LIMIT:%4x\n", + getDS_SELECTOR(), cs, segment_names[ip], getDS_BASE(), getDS_LIMIT()); + cs = (getES_AR() & 0x60) >> 5; /* dpl */ + ip = (getES_AR() & 0x1f); /* super */ + fprintf(trace_file, "ES:: SELECTOR:%4x DPL:%1d TYPE:%25s BASE: %6x LIMIT:%4x\n", + getES_SELECTOR(), cs, segment_names[ip], getES_BASE(), getES_LIMIT()); +#else + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + fprintf(trace_file, "Function not supported anymore\n"); +#endif + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_pd) +{ + UNUSED(str); + UNUSED(com); + UNUSED(len); + UNUSED(stop); + + /* Print Descriptor */ + if ( ip == 0 ) /* 2nd arg defaults to 1 */ + ip = 1; + dump_descr((LIN_ADDR)cs, (IUM32)ip); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_pdseg) +{ + double_word ip_as_double_word = ip; + UNUSED(str); + UNUSED(com); + UNUSED(len); + UNUSED(stop); + + /* Print Descriptor of a given selector */ + if ( selector_outside_table(cs, &ip_as_double_word) ) + { + fprintf(trace_file, "Bad selector\n"); + } + else + { + cs = ip_as_double_word; + ip = 1; + dump_descr((LIN_ADDR)cs, (IUM32)ip); + } + return(YODA_LOOP); +} + +#endif +#ifdef MUST_BLOCK_TIMERS +LOCAL YODA_COMMAND(do_blt) +{ + if ( timer_blocked) { + printf("\nTimer already blocked\n"); + } + else { + timer_blocked=1; + printf("\nTimer blocked\n"); + } + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_ubt) +{ + if ( !timer_blocked) { + printf("\nTimer not blocked\n"); + } + else { + timer_blocked=0; + printf("\nTimer unblocked\n"); + } + return(YODA_LOOP); +} +#endif /* MUST_BLOCK_TIMERS */ + +#ifdef BSD4_2 +LOCAL YODA_COMMAND(do_bs) +{ + int oldmask; + + if ( cs > 0 && cs < 32 ) + oldmask = sigblock( 1 << ( cs - 1 ) ); + else + printf("\nInvalid signal no. ( <= 0x0 or >= 0x20 )\n"); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_us) +{ + int oldmask; + + if ( cs > 0 && cs < 32 ) + { + oldmask = sigblock(0); + if ( (oldmask & (1 << (cs -1))) != 0 ) + { + oldmask ^= (1 << ( cs - 1)); + oldmask = sigsetmask(oldmask); + } + else + printf("signal not currently blocked\n"); + } + else + printf("Invalid signal no. ( <= 0x0 or >= 0x20 )\n"); + return(YODA_LOOP); +} +#endif /* BSD4_2 */ + +#if defined(CPU_40_STYLE) && !defined (SFELLOW) && !defined (NTVDM) +extern IBOOL DoingVDDStuff; +extern IBOOL enableDebugVDD; + +LOCAL YODA_COMMAND(do_vdd) +{ + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + DoingVDDStuff = (cs == 0)?FALSE:TRUE; + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_debug_vdd) +{ + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + enableDebugVDD = (cs == 0)?FALSE:TRUE; + return(YODA_LOOP); +} +#endif /* CPU_40_STYLE && !SFELLOW */ + +LOCAL YODA_COMMAND(do_tf) +{ + char newtrace[100]; + + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + +#ifdef SFELLOW + printf(SfNotImp); +#else /* SFELLOW */ + newtrace[0] = '\0'; + sscanf(str, "%s %s", com, newtrace); + if ((trace_file != stderr) && (trace_file != stdout)) + fclose(trace_file); + if (newtrace[0] == '\0') + trace_file = stdout; + else { + if ((trace_file = fopen(newtrace, "w")) == NULL) { + printf("couldnt open %s\n", newtrace); + trace_file = stdout; + } + } +#endif /* SFELLOW */ + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_read) +{ + char newfile [100]; + + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + +#ifdef SFELLOW + printf(SfNotImp); +#else /* SFELLOW */ + newfile [0] = '\0'; + + sscanf (str, "%s %s", com, newfile); + + /* if already reading a script close it */ + if (in_stream != stdin) + fclose (in_stream); + + /* do we have a new pathname */ + if (newfile [0]) + { + /* try to open it */ + if (in_stream = fopen (newfile, "r")) + { + printf ("Reading '%s'\n", newfile); + } + else + { + /* oops - provide useful error message */ + perror (newfile); + + /* return to reading stdin */ + in_stream = stdin; + } + } + else + { + puts ("No pathname supplied, reading stdin"); + } +#endif /* SFELLOW */ + return (YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_toff) +{ +#ifdef SFELLOW + IU8 value; + + inb(0x21, &value); + outb(0x21, value | 0x1); +#else /* SFELLOW */ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + timer_int_enabled = 0; +#endif /* SFELLOW */ + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_ton) +{ +#ifdef SFELLOW + IU8 value; + + inb(0x21, &value); + outb(0x21, value & 0xfe); +#else /* SFELLOW */ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + timer_int_enabled = 1; +#endif /* SFELLOW */ + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_toff2) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + +#ifdef SFELLOW + printf(SfNotImp); +#else /* SFELLOW */ + if (chewy) { + printf("Take care!\nThe power of the force is strong, and it can do evil as well as good.\n"); + } + axe_ticks( -1 ); +#endif /* SFELLOW */ + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_ton2) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + +#ifdef SFELLOW + printf(SfNotImp); +#else /* SFELLOW */ + axe_ticks( 0 ); +#endif /* SFELLOW */ + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_query) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + trace("", trace_type); + return(YODA_LOOP); +} + +#ifdef GISP_CPU +LOCAL YODA_COMMAND(do_hgps) +{ + IMPORT VOID Hg_print_stats IPT0(); + Hg_print_stats(); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_hgcs) +{ + IMPORT VOID Hg_clear_stats IPT0(); + Hg_clear_stats(); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_vex) +{ + IMPORT IBOOL show_exceptions; + show_exceptions = !show_exceptions; + printf ("Verbose exceptions now %sabled.\n", (show_exceptions ? "en" : "dis")); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_bex) +{ + IMPORT IBOOL trap_exceptions; + trap_exceptions = !trap_exceptions; + printf ("Break on faults now %sabled.\n", (trap_exceptions ? "en" : "dis")); + return(YODA_LOOP); +} +#endif /* GISP_CPU */ +#ifdef A3CPU +#ifndef GISP_CPU +LOCAL YODA_COMMAND(do_dcs) +{ + long temp1, temp2, temp3; + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + temp1 = -1; + sscanf(str, "%s %lx:%lx %lx", com, &temp1, &temp2, &temp3); + if (temp1 != -1) + { + D2DmpBinaryImage((LONG)temp1); + printf ("Use the dfih command to dump the instruction history for a fragment.\n"); + } + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_dfih) +{ + unsigned long temp1, temp2, temp3; + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + temp1 = -1; + sscanf(str, "%s %i:%lx %lx", com, &temp1, &temp2, &temp3); + if (temp1 != -1) + { + IH_dump_frag_hist((ULONG)temp1); + } + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_d2) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + D2ForceTraceInit(); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_d2threshold) +{ + IMPORT D2LowerThreshold, D2UpperThreshold; + + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + sscanf(str, "%s %lx lx", com,&D2LowerThreshold,&D2UpperThreshold); + return(YODA_LOOP); +} +#endif /* GISP_CPU */ +#endif /* A3CPU */ + +LOCAL YODA_COMMAND(do_u) +{ + char com_args[100]; + + SAVED IBOOL first_time = TRUE; + SAVED IU32 last_dasm_cs, last_dasm_ip; + SAVED IU16 entryCs; + SAVED IU32 entryIp; + + UNUSED(stop); + + /* + * We treat the special case of a blank argument as "continue + * from where we were last time" rather than CS:IP=0:0 which the + * address processing will have assumed. We do this unless this is + * the first time that we have been called in which case a blank + * command line means current CS:IP (which we need to get for + * ourselves. + * + * However, if the processor cs and ip has moved on from the last + * time we did a 'u', we assume that the user would probably prefer + * a 'u' from there, rather than following on. + */ + if (sscanf(str, "%*s %s", com_args) != 1) { + /* + * Blank command line .. + */ + if (first_time) { + last_dasm_cs = getCS(); + last_dasm_ip = GetInstructionPointer(); + entryIp = last_dasm_ip; + entryCs = last_dasm_cs; + first_time = FALSE; + } else if ((entryIp != GetInstructionPointer()) + || (entryCs != getCS())) + { + entryIp = GetInstructionPointer(); + entryCs = getCS(); + last_dasm_ip = entryIp; + last_dasm_cs = entryCs; + } + cs = last_dasm_cs; + ip = last_dasm_ip; + } else { + last_dasm_cs = cs; + last_dasm_ip = ip; + first_time = FALSE; + } + if ((len == 0) || (len == YODA_LEN_UNSPECIFIED)) + len = 0x10; + disable_bkpt = 1; + +#ifdef SPC386 + { + char buff[256]; + IBOOL size = CsIsBig(cs) ? THIRTY_TWO_BIT: SIXTEEN_BIT; + + while (len-- > 0){ + last_dasm_ip += dasm(buff, (word)cs, (IU32)last_dasm_ip, size); + fprintf (trace_file, "%s", buff); + } + } +#else /* SPC386 */ + last_dasm_ip = dasm((char *)0,(word)0,(word)cs, (word)ip, (word)len); +#endif /* SPC386 */ + disable_bkpt = 0; + return(YODA_LOOP_AND_REPEAT); +} + +#ifdef DELTA +LOCAL YODA_COMMAND(do_del) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + examine_delta_data_structs(stdout,stdin); + return(YODA_LOOP); +} +#endif /* DELTA */ + +LOCAL YODA_COMMAND(do_j) +{ + LIN_ADDR nextip; + + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(stop); + + disable_bkpt = 1; + if (len == YODA_LEN_UNSPECIFIED) + len = 1; + +#ifdef SPC386 + nextip = GetInstructionPointer(); + while (len-- > 0){ + nextip += dasm((char *)-1, (word)getCS(), getEIP(), 0); + } +#else /* SPC386 */ + nextip = dasm((char *)-1,(word)1,(word)getCS(), (word)getIP(), (word)len); +#endif /* SPC386 */ + disable_bkpt = 0; + set_inst_break(getCS(), nextip, 1, 1, 1); + disable_timer = 0; + + return(go_slow()); +} + +LOCAL YODA_COMMAND(do_ctnpx) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + +#ifdef SFELLOW + printf(SfNotImp); +#else /* SFELLOW */ + compress_npx = fopen("comp_npx","w"); + printf("compress_npx is %x\n",compress_npx); +#endif /* SFELLOW */ + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_r) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + disable_bkpt = 1; + trace("", DUMP_FLAGS | DUMP_REG); + disable_bkpt = 0; + return(YODA_LOOP); +} + +#ifdef NPX +LOCAL YODA_COMMAND(do_287r) +{ +#ifdef SFELLOW + printf(SfNotImp); +#else /* SFELLOW */ + extern ULONG get_287_status_word IPT0(); + extern ULONG get_287_control_word IPT0(); + extern ULONG get_287_sp IPT0(); + + ULONG sw287 = get_287_status_word () | ((get_287_sp() & 0x7) << 11); + ULONG cw287 = get_287_control_word (); + int cc287; + + static char *precision_cntrl[] = + {"24bit", "RESERVED(?) precision", "53bit", "64bit"}; + static char *rounding_cntrl[] = + {"round to nearest/even", + "round down (towards -Inf)", + "round up (towards +Inf)", + "chop (towards zero)"}; + + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + /* Decode 80287 control word */ + + printf ("NPX Control [%04lx]: %s, %s, %s\n", cw287, + precision_cntrl[(cw287 >> 8) & 0x3], + rounding_cntrl[(cw287 >> 10) & 0x3], + cw287 & 0x1000 ? "affine infinity" : "projective infinity"); + + if (cw287 & 0x3f) { + printf ("Masked Exceptions: "); + if (cw287 & 0x01) printf ("INVALID "); + if (cw287 & 0x02) printf ("DENORMAL "); + if (cw287 & 0x04) printf ("ZERO-DIVIDE "); + if (cw287 & 0x08) printf ("OVERFLOW "); + if (cw287 & 0x10) printf ("UNDERFLOW "); + if (cw287 & 0x20) printf ("PRECISION "); + printf ("\n"); + } else + printf ("No exceptions masked\n"); + + /* Decode 80287 status word */ + + printf ("NPX Status [%04lx]: stack bottom = ST(%d), ", sw287, + (sw287 >> 11) & 0x7); + + cc287 = (sw287 >> 8) & 0x7; + if (sw287 & 0x4000) + cc287 |= 0x80; + + printf ("condition code = %1x, ", cc287); + + printf ("%s\n", sw287 & 0x8000 ? "BUSY" : "not busy"); + + if (sw287 & 0x3f) { + printf ("Exceptions flagged (ES=%d): ", sw287 & 0x80 ? 1 : 0); + if (sw287 & 0x01) printf ("INVALID "); + if (sw287 & 0x02) printf ("DENORMAL "); + if (sw287 & 0x04) printf ("ZERO-DIVIDE "); + if (sw287 & 0x08) printf ("OVERFLOW "); + if (sw287 & 0x10) printf ("UNDERFLOW "); + if (sw287 & 0x20) printf ("PRECISION "); + printf ("\n"); + } else + printf ("No exceptions flagged (ES=%d)\n", + sw287 & 0x80 ? 1 : 0); + + /* + * Dump out the rest of the stack etc .. + */ + do_compress_npx(stdout); +#endif /* SFELLOW */ + return(YODA_LOOP); +} +#endif /* NPX */ + +LOCAL YODA_COMMAND(do_inb) +{ + half_word tempbyte; + int portNo; + + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + sscanf(str,"%*s %x", &portNo); + inb(portNo,&tempbyte); + printf("port %04lx contains %02x\n", cs, tempbyte); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_inw) +{ + IU16 tempword; + int portNo; + + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + sscanf(str,"%*s %x", &portNo); + inw(portNo, &tempword); + printf("port %04lx contains %04x\n", cs, tempword); + return(YODA_LOOP); +} + +#ifdef SPC386 +LOCAL YODA_COMMAND(do_ind) +{ + IU32 templong; + int portNo; + + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + sscanf(str,"%*s %x", &portNo); + ind(portNo, &templong); + printf("port %04lx contains %08x\n", cs, templong); + return(YODA_LOOP); +} +#endif /* SPC386 */ + +LOCAL YODA_COMMAND(do_outb) +{ + int portNo, value; + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + sscanf(str,"%*s %x %x", &portNo, &value); + outb(portNo,(half_word)value); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_outw) +{ + int portNo, value; + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + sscanf(str,"%*s %x %x", &portNo, &value); + outw(portNo, (IU16)value); + return(YODA_LOOP); +} + +#ifdef SPC386 +LOCAL YODA_COMMAND(do_outd) +{ + int portNo; + IU32 value; + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + sscanf(str,"%*s %x %x", &portNo, &value); + outd(portNo, value); + return(YODA_LOOP); +} +#endif /* SPC386 */ + +LOCAL YODA_COMMAND(do_luke) +{ + if (fast) { + return do_slow(str, com, cs, ip, len, stop); + } + return do_fast(str, com, cs, ip, len, stop); +} + +#ifndef macintosh +LOCAL char * fff_strings[] = { +"Hmm, looks like a hardware problem to me.", +"Unexpected unary expression", +"\n/tmp> rm -rf $WD/*\n\nProblem cured.", +"It's probably the optimiser again.", +"So how long have you thought that you had these problems?", +"Looks like the SoftWindows team have broken the base again.", +"I think it's another management screw-up.", +"It's the hair - I'm sorry, but you're going to have to do something about\nthat hair.", +"Wearing silk underwear will cure most static problems.", +"You have an unitialised variable.", +"You always get that sort of problem with Quick Events.", +"Say \"William, have you seen this very interesting bug?\".", +"Time for a coffee, I think.", +"Your problem is that you are attempting to emulate an Intel processor.", +"Whoever wrote this code must have been drunk at the time.", +"It's not a bug, it's a feature", +"Why are you always finding fault? Can't you appreciate me for what I am?", +#ifdef SUNOS50 +"You're running Solaris, and you don't KNOW what the problem is?????", +#endif /* SUNOS50 */ +"Sorry, there is no faul " +}; +#endif /* !macintosh */ + +LOCAL YODA_COMMAND(do_fff) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(stop); +#ifdef SFELLOW + printf(SfNotImp); +#else /* SFELLOW */ +#ifdef macintosh + printf("Sorry, the Macintosh doesn't have faults.\n"); +#else + if (chewy) + printf("%s\n", fff_strings[(rand()/3) % (sizeof(fff_strings) / sizeof(char *))]); +#endif /* macintosh else */ +#endif /* SFELLOW */ +} + +#if !defined(REAL_VGA) && !defined(SFELLOW) +LOCAL YODA_COMMAND(do_time_Display) +{ + int i; + float elapsed; + struct host_timezone dummy; + struct host_timeval tstart,tend; + + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + if( !cs ) cs=100; /* fairly long time by default */ + + host_clear_screen(); /* Indicate start for hand timing */ + host_gettimeofday(&tstart, &dummy); + for(i=0; i 0) ? len : 1); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_dw) +{ + UNUSED(str); + UNUSED(com); + UNUSED(stop); + + if (len == YODA_LEN_UNSPECIFIED) + len = 1; + + dump_words((IU16)cs, ip, (len > 0) ? len : 1); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_dd) +{ + UNUSED(str); + UNUSED(com); + UNUSED(stop); + + if (len == YODA_LEN_UNSPECIFIED) + len = 1; + + dump_dwords((IU16)cs, ip, (len > 0) ? len : 1); + return(YODA_LOOP); +} + +static int last_da_cs; +static int last_da_ip; + +LOCAL YODA_COMMAND(do_da) +{ + UNUSED(str); + UNUSED(com); + UNUSED(stop); + + da_block((IU16)cs, ip, len); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_t) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + if (cs) + trace_type = cs; + else + { + trace_type = DUMP_FLAGS | DUMP_REG | DUMP_INST; + if (bNPX) + trace_type |= DUMP_NPX; + } + verbose = 1; + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_it) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + if (cs == 0L) + io_verbose = 0L; + else + { + io_verbose = cs; + if (io_verbose & HFX_VERBOSE) +#ifdef SFELLOW + printf("HFX_VERBOSE is not implemented on Stringfellows.\n"); +#else /* SFELLOW */ + set_hfx_severity(); +#endif /* SFELLOW */ + + if (io_verbose & HDA_VERBOSE) +#ifdef SFELLOW + printf("HDA_VERBOSE is not implemented on Stringfellows.\n"); +#else /* SFELLOW */ + setdisktrace(); +#endif /* SFELLOW */ + } + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_sit) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + if (cs == 0L) + sub_io_verbose = 0L; + else + { + sub_io_verbose = cs; +#ifdef DPMI + if (sub_io_verbose & DPMI_VERBOSE) + set_dpmi_severity(); +#endif /* DPMI */ + } + return(YODA_LOOP); +} + + +LOCAL YODA_COMMAND(do_dt) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + +#ifdef SFELLOW + printf(SfNotImp); +#else /* SFELLOW */ + disk_trace = 1; +#endif /* SFELLOW */ + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_trace) +{ + static char* titles[] = + {"Primary trace flags:\n", + "\n\nDisk BIOS subsidiary trace flags (enabled by primary hda flag):\n", + "\n\nFSA subsidiary trace flags (enabled by primary hfx flag):\n"}; + + static struct trace_flag_t { + char *name; + IU32 mask; + IU32 *addr; + int title_id; + } + trace_flags[] = + { + {"general", GENERAL_VERBOSE, &io_verbose, 1}, + {"timer", TIMER_VERBOSE, &io_verbose, 0}, + {"ica", ICA_VERBOSE, &io_verbose, 0}, + {"cga", CGA_VERBOSE, &io_verbose, 0}, + {"fla", FLA_VERBOSE, &io_verbose, 0}, + {"hda", HDA_VERBOSE, &io_verbose, 0}, + {"rs232", RS232_VERBOSE, &io_verbose, 0}, + {"printer", PRINTER_VERBOSE, &io_verbose, 0}, + {"ppi", PPI_VERBOSE, &io_verbose, 0}, + {"dma", DMA_VERBOSE, &io_verbose, 0}, + {"gfi", GFI_VERBOSE, &io_verbose, 0}, + {"mouse", MOUSE_VERBOSE, &io_verbose, 0}, + {"mda", MDA_VERBOSE, &io_verbose, 0}, + {"ica_lock", ICA_VERBOSE, &io_verbose, 0}, + {"diskbios", DISKBIOS_VERBOSE, &io_verbose, 0}, + {"ega_ports", EGA_PORTS_VERBOSE, &io_verbose, 0}, + {"ega_write", EGA_WRITE_VERBOSE, &io_verbose, 0}, + {"ega_read", EGA_READ_VERBOSE, &io_verbose, 0}, + {"ega_display",EGA_DISPLAY_VERBOSE, &io_verbose, 0}, + {"ega_routine",EGA_ROUTINE_ENTRY, &io_verbose, 0}, + {"flopbios", FLOPBIOS_VERBOSE, &io_verbose, 0}, + {"at_kyb", AT_KBD_VERBOSE, &io_verbose, 0}, + {"bios_kb", BIOS_KB_VERBOSE, &io_verbose, 0}, + {"cmos", CMOS_VERBOSE, &io_verbose, 0}, + {"hunter", HUNTER_VERBOSE, &io_verbose, 0}, + {"pty", PTY_VERBOSE, &io_verbose, 0}, + {"gen_drvr", GEN_DRVR_VERBOSE, &io_verbose, 0}, +#if defined(HERC) + {"herc", HERC_VERBOSE, &io_verbose, 0}, +#endif + {"ipc", IPC_VERBOSE, &io_verbose, 0}, + {"lim", LIM_VERBOSE, &io_verbose, 0}, + {"hfx", HFX_VERBOSE, &io_verbose, 0}, + {"net", NET_VERBOSE, &io_verbose, 0}, + {"map", MAP_VERBOSE, &sub_io_verbose, 0}, + {"cursor", CURSOR_VERBOSE, &sub_io_verbose, 0}, + {"nhfx", NHFX_VERBOSE, &sub_io_verbose, 0}, + {"cdrom", CDROM_VERBOSE, &sub_io_verbose, 0}, + {"cga_host", CGA_HOST_VERBOSE, &sub_io_verbose, 0}, + {"ega_host", EGA_HOST_VERBOSE, &sub_io_verbose, 0}, + {"q_event", Q_EVENT_VERBOSE, &sub_io_verbose, 0}, + {"worm", WORM_VERBOSE, &sub_io_verbose, 0}, + {"worm_vbose", WORM_VERY_VERBOSE, &sub_io_verbose, 0}, + {"herc_host", HERC_HOST_VERBOSE, &sub_io_verbose, 0}, + {"gore", GORE_VERBOSE, &sub_io_verbose, 0}, + {"gore_err", GORE_ERR_VERBOSE, &sub_io_verbose, 0}, + {"glue", GLUE_VERBOSE, &sub_io_verbose, 0}, + {"sas", SAS_VERBOSE, &sub_io_verbose, 0}, + {"ios", IOS_VERBOSE, &sub_io_verbose, 0}, + {"scsi", SCSI_VERBOSE, &sub_io_verbose, 0}, + {"swin", SWIN_VERBOSE, &sub_io_verbose, 0}, + {"mswdvr", MSW_VERBOSE, &sub_io_verbose, 0}, + {"api", API_VERBOSE, &sub_io_verbose, 0}, + {"hda_call", CALL, &disktraceinfo, 2}, + {"hda_cmdinfo",CMDINFO, &disktraceinfo, 0}, + {"hda_xinfo", XINFO, &disktraceinfo, 0}, + {"hda_xstat", XSTAT, &disktraceinfo, 0}, + {"hda_pad", PAD, &disktraceinfo, 0}, + {"hda_ioad", IOAD, &disktraceinfo, 0}, + {"hda_portio", PORTIO, &disktraceinfo, 0}, + {"hda_intrupt",INTRUPT, &disktraceinfo, 0}, + {"hda_hwxinfo",HWXINFO, &disktraceinfo, 0}, + {"hda_ddata", DDATA, &disktraceinfo, 0}, + {"hda_physio", PHYSIO, &disktraceinfo, 0}, + {"hda_dhw", DHW, &disktraceinfo, 0}, + {"hda_dbios", DBIOS, &disktraceinfo, 0}, +#ifdef WDCTRL_BOP + {"hda_wdctrl", WDCTRL, &disktraceinfo, 0}, +#endif /* WDCTRL */ +#ifdef HFX + {"hfx_input", DEBUG_INPUT, &severity, 3}, + {"hfx_reg", DEBUG_REG, &severity, 0}, + {"hfx_func", DEBUG_FUNC, &severity, 0}, + {"hfx_host", DEBUG_HOST, &severity, 0}, + {"hfx_init", DEBUG_INIT, &severity, 0} +#endif /* HFX */ + }; + + static int n_flags = sizeof(trace_flags)/sizeof(struct trace_flag_t); + int n, n_found, negate; + IU32 mask; + char *flag_name; + + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + /* + * strip off command and get first flag name + */ + n_found = 0; + (void) strtok (str, " \t"); + + while (flag_name = strtok(NULL, " \t")) { + /* + * Pick out symbolic flag name and see whther is is being set + * or reset. + */ + n_found += 1; + negate = (flag_name[0] == '-'); + if (negate) + flag_name += 1; + + /* + * Find flag and twiddle bits as appropriate. + */ + for (n = 0; n < n_flags; n++) + if (!strcmp(flag_name, trace_flags[n].name)) { + if (negate) + *trace_flags[n].addr &= + ~trace_flags[n].mask; + else + *trace_flags[n].addr |= + trace_flags[n].mask; + break; + } + + /* + * Handle special cases of all & none. -all is none and -none + * is all. + */ + if (n == n_flags) { + mask = 1; + if (!strcmp(flag_name, "none")) + mask = 0; + else if (!strcmp(flag_name, "all")) + mask = ~0; + else { + printf ("Unknown trace flag: '%s'\n", + flag_name); + n_found -= 1; + } + + if (mask != 1) /* YUK ! */ +#ifdef SFELLOW + io_verbose = sub_io_verbose +#else /* SFELLOW */ +#ifdef HFX + io_verbose = sub_io_verbose = + disktraceinfo = severity +#else /* HFX */ + io_verbose = sub_io_verbose = + disktraceinfo +#endif /* HFX */ +#endif /* SFELLOW */ + = negate ? ~mask : mask; + } + } + + /* + * Print current trace flags if no recognised flags passed in command. + * (or empty command line). + */ + if (n_found == 0) { + int items = 0; + for (n = 0; n < n_flags; n++) { + if (trace_flags[n].title_id) { + printf ("%s", titles[trace_flags[n].title_id-1]); + items = 0; + } + if (!(items % 4)) + printf ("\n"); + printf ("%14s: %-2s", trace_flags[n].name, + *trace_flags[n].addr & trace_flags[n].mask ? + "ON" : "-"); + items += 1; + } + printf ("\n\n"); + } + + return(YODA_LOOP); +} + +#ifdef CPU_40_STYLE +LOCAL IBOOL check_trace_environment IFN1(char *, cmd) +{ +#ifdef SYNCH_TIMERS + if (getenv("InitialJumpCounter") == NULL) + { + printf("Must have done \"setenv InitialJumpCounter ...\" to use %s\n", cmd); + return FALSE; + } + if (getenv("DisableQuickTickRecal") == NULL) + { + printf("Must have done \"setenv DisableQuickTickRecal ...\" to use %s\n", cmd); + return FALSE; + } + if (getenv("DEFAULT_QTIMER_RATE") == NULL) + { + printf("Must have done \"setenv DisableQuickTickRecal ...\" to use %s\n", cmd); + return FALSE; + } + return TRUE; +#else /* !SYNCH_TIMERS */ + + printf("%s command is only available if the SoftPC has been built with -DSYNCH_TIMERS\n"); + return FALSE; + +#endif /* SYNCH_TIMERS */ +} +#endif /* CPU_40_STYLE */ + +#ifdef CPU_40_STYLE +LOCAL void ct_initialise IPT0(); + +LOCAL YODA_COMMAND(do_ct) +{ + UNUSED(cs); + UNUSED(ip); + UNUSED(str); + UNUSED(com); + UNUSED(len); + UNUSED(stop); + +#ifdef SFELLOW + printf(SfNotImp); +#else /* SFELLOW */ + if (!check_trace_environment("ct")) + return(YODA_LOOP); + + if ((compress_stream = fopen("compress", "w")) != NULL){ + printf ("'compress' has been opened and will contain the compressed trace.\n"); + }else{ + printf ("Couldn't open 'compress' for output; no compressed trace will be generated.\n"); + } + ct_initialise(); + if (cs != 0) + { + compress_break = strtol(str + 2, (char **)0, 10); + printf("Will break after producing %ld. instructions\n", compress_break); + } +#endif /* SFELLOW */ + return(YODA_LOOP); +} +#endif /* CPU_40_STYLE */ + +#ifdef CPU_40_STYLE +LOCAL YODA_COMMAND(do_ttOFF) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + compare_stream = (FILE *)0; + compare_break = 0; + compare_skip = 0; + big_dump = 0; + ct_delta_info = 0; + printf( "Compare trace is OFF\n" ); + return(YODA_LOOP); +} +#endif /* CPU_40_STYLE */ + +#ifdef CPU_40_STYLE +LOCAL YODA_COMMAND(do_tt) +{ + UNUSED(str); + UNUSED(com); + UNUSED(len); + UNUSED(stop); + UNUSED(cs); + UNUSED(ip); + +#ifdef SFELLOW + printf(SfNotImp); +#else /* SFELLOW */ + if (!check_trace_environment("tt")) + return(YODA_LOOP); + + ct_initialise(); + + if ((compare_stream = fopen("compare", "r")) != NULL) + { + printf ("'compare' has been opened to read the compressed trace.\n"); + } + else + { + printf ("Couldn't open 'compare' for input; no compressed trace will be tested.\n"); + } + if (ip != 0) + { + char *p = strchr(&str[2], ':'); + IUH n = 0; + + if (p) + n = strtol(p + 1, (char **)0, 10); + if (n) + { + compare_skip = n; + printf("Will skip first %ld. instructions\n", compare_skip); + } + else + printf("Bad skip value in %s\n", str); + } + if (cs != 0) + { + compare_break = strtol(&str[2], (char **)0, 10); + } + if (compare_skip && (compare_break <= compare_skip)) + compare_break = compare_skip + 1; + if (compare_break) + printf("Will break after %ld. instructions\n", compare_break); + +#endif /* SFELLOW */ + return(YODA_LOOP); +} +#endif /* CPU_40_STYLE */ + +#ifdef CPU_40_STYLE +LOCAL YODA_COMMAND(do_ctOFF) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + if (compress_stream) + fclose(compress_stream); + compress_stream = (FILE *)0; + + printf( "Compress trace is OFF\n" ); + return(YODA_LOOP); +} +#endif /* CPU_40_STYLE */ + +LOCAL YODA_COMMAND(do_nt) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + disk_trace = verbose = io_verbose = 0; + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_c) +{ + disable_timer = 0; + + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + /* Are you going fast, even though you could go slow and + * you seem to need to go slow? + */ + if (env_check != 2 && slow_needed && fast) { + fputs(slow_reason, stdout); + return go_slow(); + } + /* otherwise we assume that you know what you are doing... */ + + return(YODA_RETURN); +} + +LOCAL YODA_COMMAND(do_bi) +{ + UNUSED(str); + UNUSED(com); + + if (len == YODA_LEN_UNSPECIFIED) + len = 1; + set_inst_break((IU16)cs, ip, (len > 0) ? len : 1, stop, 0); + (void)go_slow(); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_br) +{ + char regstr[20], *str2; + long minv,maxv; + + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + strtok(str," \t"); /* get rid of command */ + strcpy(regstr,strtok(NULL," \t")); /* get register name */ + minv = strtol(strtok(NULL," \t"),NULL,16); /* get min value */ + str2 = strtok(NULL," \t"); /* get max value (or null if absent) */ + if (str2 ==NULL) + maxv = minv; + else + maxv = strtol(str2,NULL,16); + set_reg_break(regstr, (IU32)minv, (IU32)maxv); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_cr) +{ + char handle[20], *strp; + + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + strtok(str," \t"); /* get rid of command */ + strp = strtok(NULL," \t"); + if (strp == NULL) + strcpy(handle,"all"); + else + strcpy(handle, strp); + clear_reg_break(handle); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_pr) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + print_reg_break(); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_bint) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + int_breakpoint = 1; + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_cint) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + int_breakpoint = 0; + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_pi) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + print_inst_break(); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_bw) +{ + UNUSED(str); + UNUSED(com); + UNUSED(stop); + + set_data_break_words((LIN_ADDR)cs, ip, len ); + (void)go_slow(); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_bh) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + + set_host_address_break((LIN_ADDR)cs, len, stop); + (void)go_slow(); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_ph) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + print_host_address_breaks(); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_pw) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + print_data_break_words(); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_bo) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(stop); + + set_opcode_break(cs, len); /* for len read stop */ + (void)go_slow(); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_vmm_call) +{ + struct VMM_services *vmm_ptr; + char service_name[100], *p; + long stop_code; + long service_number; + + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(stop); + + sscanf(str, "%s %100s %l", com, service_name, &stop_code); + + if (service_name[0] == '?') + { + for (vmm_ptr = VMM_services; vmm_ptr->name; vmm_ptr++) + { + fprintf(trace_file, "VMM Call %s, index %d.\n", + vmm_ptr->name, vmm_ptr->value); + } + return (YODA_LOOP); + } + + service_number = strtol(service_name, &p, 0); + if (service_name == p) + { + /* Name supplied, find the number */ + service_number = -1; + for (vmm_ptr = VMM_services; vmm_ptr->name; vmm_ptr++) + { + if (strcmp(service_name, vmm_ptr->name) == 0) + break; + } + if (vmm_ptr->name) + service_number = vmm_ptr->value; + } + else + { + /* Number supplied, find the name */ + for (vmm_ptr = VMM_services; vmm_ptr->name; vmm_ptr++) + { + if (vmm_ptr->value == service_number) + { + strcpy(service_name, vmm_ptr->name); + break; + } + } + } + if (service_number < 0) + { + printf("Unknown VMM Call service \"%s\"\n", service_name); + } + else + { + if (service_number >= 0x100) + set_opcode_break(0xCD200000 | (service_number & 0xffff), stop_code); + else + set_opcode_break(0xCD2000 | service_number, stop_code); + printf("Break on VMM Call service \"%s\"\n", service_name); + (void)go_slow(); + } + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_btf) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + /* + ** break on TF=1. + */ + tf_break_enabled = 1; + printf( "break on TF=1 enabled.\n"); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_ptf) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + printf( "break on TF=1 %sabled.\n", (tf_break_enabled ? "en" : "dis")); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_ctf) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + tf_break_enabled = 0; + printf( "break on TF=1 disabled.\n"); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_bintx) +{ + long temp1, temp2; + UNUSED(cs); + UNUSED(ip); + UNUSED(com); + UNUSED(len); + UNUSED(stop); + + /* + ** break on specified interrupt with specified AH value. + */ + sscanf(str,"%*s %lx %lx", &temp1, &temp2); + printf( "int=%lx AH=%lx\n", temp1, temp2 ); + set_int_break( (IU8)temp1, (IU8)temp2 ); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_pintx) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + print_int_break(); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_cintx) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + int_break_count = 0; + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_bse) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + bse_seg = cs; + last_seg = getCS(); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_cse) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + bse_seg = -1; + last_seg = -1; + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_pse) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + if (bse_seg != -1){ + printf ("Break on entry to segment 0x%04x.\n", bse_seg); + }else{ + printf ("Break on segment entry not active.\n"); + } + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_b286_1) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + /* + ** Break on 80286 specific opcodes. + */ + b286_1 = 1; + b286_1_stop = cs; + if( b286_1_stop ) + printf( "BREAK " ); + else + printf( "TRACE " ); + printf( "enabled upon 80286 instructions that do not exist on 8088.\n" ); + set_opcode_break( 0x60 , 1); /* push all */ + set_opcode_break( 0x61 , 1); /* pop all */ + set_opcode_break( 0x62 , 1); /* bound */ + set_opcode_break( 0x63 , 1); /* arpl */ + set_opcode_break( 0x64 , 1); /* illegal */ + set_opcode_break( 0x65 , 1); /* illegal */ + set_opcode_break( 0x66 , 1); /* illegal */ + set_opcode_break( 0x67 , 1); /* illegal */ + set_opcode_break( 0x68 , 1); /* push imm w */ + set_opcode_break( 0x69 , 1); /* imul imm w */ + set_opcode_break( 0x6a , 1); /* push imm b */ + set_opcode_break( 0x6b , 1); /* imul imm b */ + set_opcode_break( 0x6c , 1); /* ins b */ + set_opcode_break( 0x6d , 1); /* ins w */ + set_opcode_break( 0x6e , 1); /* outs b*/ + set_opcode_break( 0x6f , 1); /* outs w */ + set_opcode_break( 0xc0 , 1); /* shift imm b */ + set_opcode_break( 0xc1 , 1); /* shift imm w */ + set_opcode_break( 0xc8 , 1); /* enter */ + set_opcode_break( 0xc9 , 1); /* leave */ + set_opcode_break( 0x0f , 1); /* protected mode prefix */ + set_opcode_break( 0xf36c , 1); /* rep prefix for ins and outs */ + set_opcode_break( 0xf36d , 1); /* rep prefix for ins and outs */ + set_opcode_break( 0xf36e , 1); /* rep prefix for ins and outs */ + set_opcode_break( 0xf36f , 1); /* rep prefix for ins and outs */ + set_opcode_break( 0x54 , 1); /* push sp, should not really be in this section but is rarely used */ + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_b286_2) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + b286_2 = 1; + b286_2_stop = cs; + if( b286_2_stop ) + printf( "BREAK " ); + else + printf( "TRACE " ); + printf( "enabled upon 80286 instructions that behave differently to 8088.\n" ); + printf( "PushF is not done because there are so many of them\n" ); + printf( "If you want to break on PushF do a bo 9c\n" ); + set_opcode_break( 0x54 , 1); /* push sp */ + set_opcode_break( 0xd2 , 1); /* shift / rotate */ + set_opcode_break( 0xd3 , 1); /* shift / rotate */ + set_opcode_break( 0xf6 , 1); /* idiv */ + set_opcode_break( 0xf7 , 1); /* idiv */ + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_cNPX) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + /* + ** clear break/trace on 8087/80287 instructions. + ** The Numeric Coprocesseor Extention. + */ + bNPX = 0; + bNPX_stop = 0; + trace_type &= ~DUMP_NPX; + printf( "BREAK/TRACE disabled for NPX instructions\n" ); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_tNPX) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + /* + ** trace on 8087/80287 instructions. + ** The Numeric Coprocesseor Extention. + */ + bNPX = 1; + bNPX_stop = 0; + trace_type |= DUMP_NPX; + printf( "TRACE enabled for NPX instructions\n" ); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_bNPX) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + /* + ** break on 8087/80287 instructions. + ** The Numeric Coprocesseor Extention. + */ + bNPX = 1; + bNPX_stop = 1; + trace_type |= DUMP_NPX; + printf( "BREAK enabled for NPX instructions\n" ); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_po) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + print_opcode_break(); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_ba) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + set_access_break(cs); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_pa) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + print_access_break(); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_ci) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + inst_break_count = 0; + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_ch) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + host_address_break_count = 0; + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_cw) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + data_words_break_count = 0; + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_co) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + opcode_break_count = 0; + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_ca) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + access_break_count = 0; + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_eric) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + +#ifdef SFELLOW + printf(SfNotImp); +#else /* SFELLOW */ + inst_mix_count = 1; + if (cs == 1) + { + out_stream = fopen("inst_mix", "a"); + disk_inst = 1; + } +#endif /* SFELLOW */ + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_nic) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + +#ifdef SFELLOW + printf(SfNotImp); +#else /* SFELLOW */ + inst_mix_count = 0; + if (disk_inst == 1) + { + print_inst_mix(0); + fclose(out_stream); + out_stream = stdout; + disk_inst = 0; + printf("Instruction mix results dumped to file\n"); + } +#endif /* SFELLOW */ + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_pic) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + print_inst_mix(cs); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_cic) +{ + int temp; + + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + for(temp=0; temp<256; temp++) + { + inst_mix[temp] = 0; + } + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_ax) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + setAX((IU16)cs); + return(YODA_LOOP); +} + +#ifdef SPC386 +LOCAL YODA_COMMAND(do_eax) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + setEAX((IU32)cs); + return(YODA_LOOP); +} +#endif /* SPC386 */ + +LOCAL YODA_COMMAND(do_bx) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + setBX((IU16)cs); + return(YODA_LOOP); +} + +#ifdef SPC386 +LOCAL YODA_COMMAND(do_ebx) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + setEBX((IU32)cs); + return(YODA_LOOP); +} +#endif /* SPC386 */ + +LOCAL YODA_COMMAND(do_cx) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + setCX((IU16)cs); + return(YODA_LOOP); +} + +#ifdef SPC386 +LOCAL YODA_COMMAND(do_ecx) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + setECX((IU32)cs); + return(YODA_LOOP); +} +#endif /* SPC386 */ + +LOCAL YODA_COMMAND(do_if) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + setIF((IU16)cs); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_ip) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + setIP((IU16)cs); + return(YODA_LOOP); +} + +#ifdef SPC386 +LOCAL YODA_COMMAND(do_eip) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + setEIP((IU32)cs); + return(YODA_LOOP); +} +#endif /* SPC386 */ + +LOCAL YODA_COMMAND(do_dx) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + setDX((IU16)cs); + return(YODA_LOOP); +} + +#ifdef SPC386 +LOCAL YODA_COMMAND(do_edx) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + setEDX((IU32)cs); + return(YODA_LOOP); +} +#endif /* SPC386 */ + +LOCAL YODA_COMMAND(do_si) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + setSI((IU16)cs); + return(YODA_LOOP); +} + +#ifdef SPC386 +LOCAL YODA_COMMAND(do_esi) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + setESI((IU32)cs); + return(YODA_LOOP); +} +#endif /* SPC386 */ + +LOCAL YODA_COMMAND(do_di) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + setDI((IU16)cs); + return(YODA_LOOP); +} + +#ifdef SPC386 +LOCAL YODA_COMMAND(do_edi) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + setEDI((IU32)cs); + return(YODA_LOOP); +} +#endif /* SPC386 */ + +LOCAL YODA_COMMAND(do_bp) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + setBP((IU16)cs); + return(YODA_LOOP); +} + +#ifdef SPC386 +LOCAL YODA_COMMAND(do_ebp) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + setEBP((IU32)cs); + return(YODA_LOOP); +} +#endif /* SPC386 */ + +LOCAL YODA_COMMAND(do_sp) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + setSP((IU16)cs); + return(YODA_LOOP); +} + +#ifdef SPC386 +LOCAL YODA_COMMAND(do_esp) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + setESP((IU32)cs); + return(YODA_LOOP); +} +#endif /* SPC386 */ + +LOCAL YODA_COMMAND(do_es) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + setES((IU16)cs); + return(YODA_LOOP); +} + +#ifdef SPC386 +LOCAL YODA_COMMAND(do_fs) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + setFS((IU16)cs); + return(YODA_LOOP); +} +#endif /* SPC386 */ + +#ifdef SPC386 +LOCAL YODA_COMMAND(do_gs) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + setGS((IU16)cs); + return(YODA_LOOP); +} +#endif /* SPC386 */ + +LOCAL YODA_COMMAND(do_ss) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + printf("Powerful is the force of the ss command,\nFar too powerful for an untrained jeda such as you.\nUse the sseg command must you.\n"); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_sseg) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + setSS((IU16)cs); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_ds) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + setDS((IU16)cs); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_cs) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + setCS((IU16)cs); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_byte) +{ + LIN_ADDR temp; + + UNUSED(str); + UNUSED(com); + UNUSED(stop); + + if (len == YODA_LEN_UNSPECIFIED) { + printf ("Must specify \n"); + return(YODA_LOOP); + } + temp = eff_addr( (IU16)cs, ip ); + sas_store (temp, len); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_word) +{ + LIN_ADDR temp; + + UNUSED(str); + UNUSED(com); + UNUSED(stop); + + if (len == YODA_LEN_UNSPECIFIED) { + printf ("Must specify \n"); + return(YODA_LOOP); + } + temp = eff_addr( (IU16)cs, ip ); + sas_store (temp, len & 0xff); + sas_store (temp+1, (len >> 8) & 0xff); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_s) +{ + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + disable_bkpt = 1; + if (cs == 0) + step_count = 1; + else + step_count = cs; + disable_timer = 0; + + return(go_slow()); +} + +#ifdef CPU_40_STYLE +GLOBAL IBOOL effective_lin_addr IFN5(IBOOL, pe, + IBOOL, vm, + IU16, seg, + IU32, off, + LIN_ADDR *, linaddr_p) +{ + LIN_ADDR descr_addr; + DESCR entry; + + if (!pe || vm) { + *linaddr_p = ((LIN_ADDR)seg << 4) + off; + return TRUE; + } else { +#if defined(SWIN_CPU_OPTS) || defined(CPU_40_STYLE) + LIN_ADDR base; + + if (Cpu_find_dcache_entry( seg, &base )) + { + /* Cache Hit!! */ + *linaddr_p = base + off; + return TRUE; + } +#endif /* SWIN_CPU_OPTS or CPU_40_STYLE*/ + + if ( !selector_outside_table(seg, &descr_addr) ) { + read_descriptor(descr_addr, &entry); + *linaddr_p = entry.base + off; + return TRUE; + } + } + return FALSE; +} + + +LOCAL IS32 read_from_la IFN1(LIN_ADDR, addr) +{ + return (IS32)Sas.Sas_hw_at(addr); +} + +LOCAL void yoda_dasm IFN5(IBOOL, code_size, + IBOOL, pe_not_vm, + char *, buff, + IU16, cs, + LIN_ADDR, eip) +{ + LIN_ADDR la; + char *fmt, *newline; + + if ( eip & 0xffff0000 ) + { + fmt = "%04x:%08x "; + newline = "\n "; + } + else + { + fmt = "%04x:%04x "; + newline = "\n "; + } + if (effective_lin_addr( pe_not_vm, FALSE, cs, eip, &la)) + { + (void)dasm_internal(buff, + cs, + eip, + code_size, + la, + read_from_la, + fmt, + newline); + } + else + { + sprintf(buff, fmt, cs, eip); + strcat(buff, "<>\n"); + } +} + +LOCAL void +print_pla IFN3(IU16, cs, LIN_ADDR, ip, enum pla_type, what) +{ + char buff[256]; + + switch (what) + { + case pla_type_empty: + break; +#ifdef CPU_40_STYLE + case pla_type_rm_code: + yoda_dasm(SIXTEEN_BIT, FALSE, buff, cs, ip); + fprintf (trace_file, "%s", buff); + break; + case pla_type_pm_small_code: + yoda_dasm(SIXTEEN_BIT, TRUE, buff, cs, ip); + fprintf (trace_file, "%s", buff); + break; + case pla_type_pm_big_code: + yoda_dasm(THIRTY_TWO_BIT, TRUE, buff, cs, ip); + fprintf (trace_file, "%s", buff); + break; +#else /* CPU_40_STYLE */ + case pla_type_code: + (void)dasm(buff, + (word)cs, + ip, + CsIsBig(cs) ? THIRTY_TWO_BIT: SIXTEEN_BIT); + fprintf (trace_file, "%s", buff); + break; +#endif /* CPU_40_STYLE */ + case pla_type_bop_done: + fprintf(trace_file, "---- %16s ---- BOP %02x completed\n", "", ip); + break; + case pla_type_simulate: + fprintf(trace_file, "---- %16s ---- SIMULATE level %d\n", "", ip); + break; + case pla_type_unsimulate: + fprintf(trace_file, "---- %16s ---- UNSIMULATE level %d\n", "", ip); + break; + case pla_type_intack: + fprintf(trace_file, "---- %16s ---- INTACK line %d\n", "", ip); + break; + case pla_type_pig_force: + fprintf(trace_file, "---- %16s ---- PIG FORCED\n", ""); + break; + case pla_type_nano_enter: + fprintf(trace_file, "---- %16s ---- Entering NANO\n", ""); + break; + case pla_type_nano_leave: + fprintf(trace_file, "---- %16s ---- Leaving NANO\n", ""); + break; + default: + fprintf(trace_file, + "%04x:%08x *** Bad pla type %d\n", + cs, ip, what); + break; + } +} +#else /* CPU_40_STYLE */ +LOCAL void +print_pla IFN2(IU16, cs, LIN_ADDR, ip) +{ + fprintf(trace_file, "Last address = %04x:%04x\n", cs, ip); +} +#endif /* CPU_40_STYLE */ + +LOCAL YODA_COMMAND(do_pla) +{ + LIN_ADDR i; + LIN_ADDR pla_length; + + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + if (cs) + pla_length = (LIN_ADDR)cs; + else + pla_length = 100; /* default */ + + if (pla_length > PLA_SIZE) + pla_length = PLA_SIZE; + + /* Print the end of the buffer if necessary. */ + for (i = PLA_SIZE - (pla_length - pla_ptr); i < PLA_SIZE; i++) +#ifdef CPU_40_STYLE + print_pla(last_cs[i], last_ip[i], last_type[i]); +#else + print_pla(last_cs[i], last_ip[i]); +#endif + + /* Print the start of the buffer. */ + if (pla_length > pla_ptr) + i = 0; + else + i = pla_ptr - pla_length; + + for ( ; i < pla_ptr; i++) +#ifdef CPU_40_STYLE + print_pla(last_cs[i], last_ip[i], last_type[i]); +#else + print_pla(last_cs[i], last_ip[i]); +#endif + + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_cgat) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + cga_test(); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(old_times_sake) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + if (chewy) { + printf("Remember --- you must FEEL the force...\n"); + } + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_fast) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + if (!fast) { + printf("Switching to Fast YODA...\n"); + } + yint = 0; fast = 1; do_condition_checks = 0; + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_slow) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + (void)go_slow(); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_q) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + +#ifdef SFELLOW + printf("Welcome to the Hotel California.\n"); + printf("You can check out any time you like, but you can never leave...\n"); +#else /* SFELLOW */ + if (*com == 'Q') { + terminate(); /* no saving throw - requested by Wayne */ + } else { + stop = yoda_confirm("Are you sure that you want to quit? "); + if (stop) { + if (chewy) { + printf("\nMind what you have learned....\n"); + printf("Serve you it can !!!\n"); + printf("MAY THE FORCE BE WITH YOU\n\n"); + terminate(); + } + terminate(); + } + } +#endif /* SFELLOW */ + return(YODA_LOOP); +} + + +LOCAL YODA_COMMAND(do_bt) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + /* back trace set up and dump */ + do_back_trace(); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_idle) +{ +#ifdef SFELLOW + printf(SfNotImp); +#else /* SFELLOW */ + char tempstr1[10],tempstr2[10]; + + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + sscanf(str,"%s %s",tempstr1,tempstr2); + /* enable/disable idle detect */ + if ((strcmp(tempstr2,"ON")==0) || (strcmp(tempstr2,"on")==0)) + { + idle_ctl(1); + return(YODA_LOOP); + } + + if ((strcmp(tempstr2,"OFF")==0) || (strcmp(tempstr2,"off")==0)) + { + idle_ctl(0); + return(YODA_LOOP); + } + + printf("unrecognised string '%s'\n",tempstr2); +#endif /* SFELLOW */ + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_cdebug) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + +#ifdef SFELLOW + printf(SfNotImp); +#else /* SFELLOW */ + com_debug(); +#endif /* SFELLOW */ + return (YODA_LOOP); +} + +LOCAL void do_screen_refresh IFN0() +{ +#ifdef SFELLOW + printf(SfNotImp); +#else /* SFELLOW */ + extern host_timer_event(); + + host_mark_screen_refresh(); + host_flush_screen(); + + host_timer_event(); +#endif /* SFELLOW */ +} + +YODA_CMD_RETURN do_rfrsh IFN6(char *, str, char *, com, IS32, cs, LIN_ADDR, ip, LIN_ADDR, len, LIN_ADDR, stop) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + do_screen_refresh(); + refresh_screen = !refresh_screen; + return (YODA_LOOP); +} + +#ifdef EGA_DUMP + +/* + * add check point to ega dump file so that different activities can be + * delimited + */ + +LOCAL int do_dumpcp IFN0() +{ + dump_add_checkpoint(); + return(YODA_LOOP); +} +#endif /* EGA_DUMP */ + +LOCAL YODA_COMMAND(do_chewy) +{ + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + chewy = (chewy? 0 : 1); + return(YODA_LOOP); +} + +#ifndef GISP_CPU +#ifdef A3CPU +LOCAL YODA_COMMAND(do_3c) +{ + extern void Mgr_yoda(); + + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + Mgr_yoda(); + return(YODA_LOOP); +} +#endif +#endif /* GISP_CPU */ + +#if defined(CPU_40_STYLE) && !defined(CCPU) +LOCAL YODA_COMMAND(do_4c) +{ + extern void FmDebug IPT1(IUH, hook); + + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + FmDebug(0); + return(YODA_LOOP); +} + +LOCAL YODA_COMMAND(do_imdst) +{ + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + +#ifdef SFELLOW + + UNUSED(cs); + printf(SfNotImp); + +#else /* SFELLOW */ + + IntelMsgDest = cs & 3; + printf("Intel messages to trace output %s\n", IntelMsgDest & IM_DST_TRACE?"ON":"OFF"); + printf("Intel messages to ring buffer %s\n", IntelMsgDest & IM_DST_RING?"ON":"OFF"); + +#endif /* SFELLOW */ + + return(YODA_LOOP); +} +#endif /* CPU_40_STYLE && !CCPU */ + +#ifdef PIG +LOCAL YODA_COMMAND(do_pig) +{ + extern void pig_yoda(); + + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + pig_yoda(); + return(YODA_LOOP); +} +#endif + +#ifdef SYNCH_TIMERS +LOCAL YODA_COMMAND(do_qtrate) +{ + extern IU32 Q_timer_restart_val; + extern IU32 Q_timer_microsecs; + extern void IdealTimeInit(); + UNUSED(str); + UNUSED(com); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + if (cs == 0) + { + printf("quick timer rate is 0x%x (%d)\n", Q_timer_restart_val, Q_timer_restart_val); + } + else + { + printf("setting quick timer rate to 0x%x (%d)\n", cs, cs); + Q_timer_restart_val = cs; + Q_timer_microsecs = cs; + IdealTimeInit(); + } + return(YODA_LOOP); +} +#endif /* SYNCH_TIMERS */ + +#ifdef PROFILE +LOCAL YODA_COMMAND(doDumpProfiling) +{ + extern void GenerateAllProfileInfo(); + + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(len); + UNUSED(stop); + + GenerateAllProfileInfo(trace_file); + return(YODA_LOOP); +} +#endif /* PROFILE */ + +#ifdef CPU_40_STYLE + +#define N_DATA_BREAKPOINTS 4 + +struct { + IBOOL active; + IBOOL write; + IU8 dataSz; + IU32 linAddr; +} dataBreakpoint[N_DATA_BREAKPOINTS]; + +IU32 dataSzLut[] = {0x0,0x0,0x4,0x0,0xC}; +char *sizeString[] = {"BAD0", "byte", "word", "BAD3", "dbl."}; + +VOID +printDataBreakPoints IFN1 ( + IU32, hitMask +) +{ + IU32 i; + IBOOL doneOne = FALSE; + + for (i=0; i", "Block signal " }, +{ "us", do_us, FALSE, "", "Unblock signal " }, +#endif /* BSD4_2 */ + +{ "tf", do_tf, FALSE, "", "Re-direct trace output" }, +{ "read", do_read, FALSE, "", "Take commands from file" }, +{ "toff", do_toff, FALSE, NULL, "Disable HW timer interrupts (may be turned on by application)" }, +{ "ton", do_ton, FALSE, NULL, "Enable HW timer interrupts" }, +{ "toff2", do_toff2, FALSE, NULL, "Stop HW timer interrupts" }, +{ "ton2", do_ton2, FALSE, NULL, "Restart HW timer interrupts" }, +{ "?", do_query, FALSE, NULL, "Where am I?" }, +{ "u", do_u, TRUE, "", "Unassemble memory" }, + +#ifdef DELTA +{ "del", do_del, FALSE, NULL, "Go to delta debugger" }, +#endif /* DELTA */ + +{ "j", do_j, FALSE, NULL, "Jump over call or int" }, +{ "ctnpx", do_ctnpx, FALSE, NULL, "Compress trace npx" }, +{ "r", do_r, FALSE, NULL, "Print 286 registers" }, + +#ifdef NPX +{ "287r", do_287r, FALSE, NULL, "Print 287 registers" }, +#endif /* NPX */ + +{ "inb", do_inb, FALSE, "", "display the contents of a port" }, +{ "outb", do_outb, FALSE, " ", "change the contents of a port" }, +{ "inw", do_inw, FALSE, "", "display the contents of a 16 bit port" }, +{ "outw", do_outw, FALSE, " ", "change the contents of a 16 bit port" }, +#ifdef SPC386 +{ "ind", do_ind, FALSE, "", "display the contents of a 32 bit port" }, +{ "outd", do_outd, FALSE, " ", "change the contents of a 32 bit port" }, +#endif /* SPC386 */ +{ "i", do_inb, FALSE, "", "alias for inb" }, +{ "o", do_outb, FALSE, " ", "alias for outb" }, +{ "luke", do_luke, FALSE, NULL, "Switch between fast/slow yoda" }, +{ "fff", do_fff, FALSE, NULL, "Find, and fix fault"}, + +#if !defined(REAL_VGA) && !defined(SFELLOW) +{ "time_Display", do_time_Display, + FALSE, "", "Time current screen refresh" }, + +#ifdef EGG +{ "dump_Display", do_dump_Display, + FALSE, NULL, "Dump general display variables" }, +{ "dump_EGA_GRAPH", do_dump_EGA_GRAPH, + FALSE, NULL, "Dump EGA specific display variables" }, +{ "dump_EGA_CPU", do_dump_EGA_CPU, + FALSE, NULL, "Dump EGA/CPU interface variables" }, +{ "dump_planes", do_dump_planes, + FALSE, NULL, "Dump EGA planes" }, +{ "read_planes", do_read_planes, + FALSE, NULL, "Read EGA planes" }, +#endif /* EGG */ +#endif /* !REAL_VGA && !SFELLOW */ + +{ "db", do_db, TRUE, "", "Display bytes" }, +{ "dw", do_dw, TRUE, "", "Display words" }, +#ifdef SPC386 +{ "dd", do_dd, TRUE, "", "Display dwords" }, +#endif /* SPC386 */ +{ "da", do_da, TRUE, "", "Display in hex/ascii" }, +{ "t", do_t, FALSE, NULL, "Trace all CPU instructions" }, +{ "it", do_it, FALSE, "", "Set trace bits (use trace!)" }, +{ "sit", do_sit, FALSE, "", "Set subsidiary trace bits (use trace!)" }, +{ "trace", do_trace, FALSE, "[-] [...]", "Set/reset trace flag(s)" }, +{ "dt", do_dt, FALSE, NULL, "Set disk verbose tracing" }, +#ifdef CPU_40_STYLE +{ "ct", do_ct, FALSE, " ", "Create compressed trace file" }, +{ "ttOFF", do_ttOFF, FALSE, NULL, "Switch compare trace off" }, +{ "tt", do_tt, FALSE, NULL, "test Compressed trace file" }, +{ "ctOFF", do_ctOFF, FALSE, NULL, "Switch compress trace off" }, +#endif /* CPU_40_STYLE */ +{ "nt", do_nt, FALSE, NULL, "Disable all tracing" }, +{ "c", do_c, FALSE, NULL, "Continue execution" }, +{ "bint", do_bint, FALSE, NULL, "Break on interrupt" }, +{ "cint", do_cint, FALSE, NULL, "Clear break on interrupt" }, +{ "bintx", do_bintx, FALSE, " ", "Break on interrupt when ah = " }, +{ "pintx", do_pintx, FALSE, NULL, "print intx breakpoints" }, +{ "cintx", do_cintx, FALSE, NULL, "clear intx breakpoints" }, +{ "br", do_br, FALSE, " ", "Break on register value" }, +{ "cr", do_cr, FALSE, "|'all'", "Clear register value breakpoint(s)" }, +{ "pr", do_pr, FALSE, NULL, "Print register value breakpoints" }, +{ "bse", do_bse, FALSE, NULL, "Break on segment entry" }, +{ "cse", do_cse, FALSE, NULL, "Clear segment entry breakpoints" }, +{ "pse", do_pse, FALSE, NULL, "Print segment entry breakpoints" }, +{ "btf", do_btf, FALSE, NULL, "Break on trap flag set" }, +{ "ptf", do_ptf, FALSE, NULL, "Print trap flag breakpoint" }, +{ "ctf", do_ctf, FALSE, NULL, "Clear trap flag breakpoint" }, +{ "b286-1", do_b286_1, FALSE, "", "Break/trace on new 80286 opcodes" }, +{ "b286-2", do_b286_2, FALSE, "", "Break/trace on other 80286 opcodes" }, +{ "bNPX", do_bNPX, FALSE, NULL, "Break on NPX opcodes, 8087/80287" }, +{ "tNPX", do_tNPX, FALSE, NULL, "Trace on NPX opcodes, 8087/80287" }, +{ "cNPX", do_cNPX, FALSE, NULL, "Clear break/trace NPX opcodes, 8087/80287" }, +{ "ba", do_ba, FALSE, "", "Break on port access" }, +{ "bh", do_bh, FALSE, " ", "Break on host address change" }, +{ "bi", do_bi, TRUE, " ", "Break at address/instruction" }, +{ "bo", do_bo, FALSE, " ", "Break on opcode of 8, 16, 24, or 32 bits" }, +{ "vmm_call", do_vmm_call, FALSE, " ", "Break Windows VMM Call -- ? for service names" }, +{ "bw", do_bw, FALSE, " ", "Break on word change" }, +{ "pa", do_pa, FALSE, NULL, "Print a breakpoints" }, +{ "ph", do_ph, FALSE, NULL, "Print h breakpoints" }, +{ "pi", do_pi, FALSE, NULL, "Print i breakpoints" }, +{ "po", do_po, FALSE, NULL, "Print o breakpoints" }, +{ "pw", do_pw, FALSE, NULL, "Print w breakpoints" }, +{ "ca", do_ca, FALSE, NULL, "Clear a breakpoints" }, +{ "ch", do_ch, FALSE, NULL, "Clear h breakpoints" }, +{ "ci", do_ci, FALSE, NULL, "Clear i breakpoints" }, +{ "co", do_co, FALSE, NULL, "Clear o breakpoints" }, +{ "cw", do_cw, FALSE, NULL, "Clear w breakpoints" }, +{ "eric", do_eric, FALSE, NULL, "Enable reduced instruction counting" }, +{ "nic", do_nic, FALSE, NULL, "Disable instruction counting" }, +{ "pic", do_pic, FALSE, NULL, "Print instruction mix" }, +{ "cic", do_cic, FALSE, NULL, "" }, +{ "ax", do_ax, FALSE, "", "Set AX to " }, +{ "bx", do_bx, FALSE, "", "Set BX to " }, +{ "cx", do_cx, FALSE, "", "Set CX to " }, +{ "dx", do_dx, FALSE, "", "Set DX to " }, +{ "si", do_si, FALSE, "", "Set SI to " }, +{ "di", do_di, FALSE, "", "Set DI to " }, +{ "bp", do_bp, FALSE, "", "Set BP to " }, +{ "sp", do_sp, FALSE, "", "Set SP to " }, +{ "if", do_if, FALSE, "", "Set IF to " }, +{ "ip", do_ip, FALSE, "", "Set IP to " }, +#ifdef SPC386 +{ "eax", do_eax, FALSE, "", "Set EAX to " }, +{ "ebx", do_ebx, FALSE, "", "Set EBX to " }, +{ "ecx", do_ecx, FALSE, "", "Set ECX to " }, +{ "edx", do_edx, FALSE, "", "Set EDX to " }, +{ "esi", do_esi, FALSE, "", "Set ESI to " }, +{ "edi", do_edi, FALSE, "", "Set EDI to " }, +{ "ebp", do_ebp, FALSE, "", "Set EBP to " }, +{ "esp", do_esp, FALSE, "", "Set ESP to " }, +{ "eip", do_eip, FALSE, "", "Set EIP to " }, +#endif /* SPC386 */ +{ "cs", do_cs, FALSE, "", "Set CS to " }, +{ "ds", do_ds, FALSE, "", "Set DS to " }, +{ "es", do_es, FALSE, "", "Set ES to " }, +{ "ss", do_ss, FALSE, NULL, NULL }, /* backwards compatibility */ +#ifdef SPC386 +{ "fs", do_fs, FALSE, "", "Set FS to " }, +{ "gs", do_gs, FALSE, "", "Set GS to " }, +#endif /* SPC386 */ +{ "sseg", do_sseg, FALSE, "", "Set SS to value" }, +{ "byte", do_byte, TRUE, "", "Set byte memory location to value" }, +{ "word", do_word, TRUE, "", "Set word memory location to value" }, +{ "s", do_s, FALSE, "", "Single step instructions" }, +{ "pla", do_pla, FALSE, "", "Print addresses of previous instructions" }, +{ "cgat", do_cgat, FALSE, NULL, "CGA tester" }, +{ "yint", old_times_sake, FALSE, NULL, "Enable pseudo-int driven yoda" }, +{ "nyint", do_fast, FALSE, NULL, NULL }, +{ "quit", do_q, FALSE, NULL, "Quit (with confirmation)" }, +{ "q", do_q, FALSE, NULL, NULL }, +{ "Q", do_q, FALSE, NULL, "Quit (without confirmation)" }, +{ "help", do_h, FALSE, NULL, "Help!" }, +{ "h", do_h, FALSE, NULL, NULL}, +{ "jeddi", do_chewy, FALSE, NULL, NULL}, +{ "bt", do_bt, FALSE, NULL, "Back trace mode" }, +{ "idle", do_idle, FALSE, "", "Turn idle detect on/off" }, +{ "fast", do_fast, FALSE, NULL, "Fast yoda (no breakpoints)" }, +{ "slow", do_slow, FALSE, NULL, "Slow yoda" }, +{ "cd", do_cdebug, FALSE, NULL, "COM1 register debugger"}, + +#ifdef EGA_DUMP +{ "dumpcp", do_dumpcp, FALSE, NULL, "Add check point to EGA dump trace" }, +#endif /* EGA_DUMP */ + +#ifdef GISP_CPU +{ "hgps", do_hgps, FALSE, NULL, "Print GISP CPU stats" }, +{ "hgcs", do_hgcs, FALSE, NULL, "Clear GISP CPU stats" }, +{ "vex", do_vex, FALSE, NULL, "Toggle verbose faults" }, +{ "bex", do_bex, FALSE, NULL, "Toggle break on faults" }, +#endif /* GISP_CPU */ + +#ifdef SYNCH_TIMERS +{ "qtrate", do_qtrate, FALSE, "", "set quick timer rate" }, +#endif +#ifdef A3CPU +#ifndef GISP_CPU +{ "d2", do_d2, FALSE, NULL, "Force D2 interact" }, +{ "dcs", do_dcs, FALSE, "", "Dump binary in code segment to 'csegbin'" }, +{ "dfih", do_dfih, FALSE, "", "Dump fragment history to 'fih_nnnn'" }, +{ "th", do_d2threshold, FALSE, " ", "Set delta2 thresholds" }, +#endif /* GISP_CPU */ +#endif /* A3CPU */ + +#ifdef PM +{ "pm", do_pm, FALSE, NULL, "Set protected mode" }, +#ifdef LIM +{ "zaplim", do_zaplim, FALSE, NULL, "Zap LIM" }, +#endif /* :IM */ +{ "rm", do_rm, FALSE, NULL, "Set real mode" }, +{ "pg", do_pg, FALSE, NULL, "Set paging mode 1 (enabled) or 0 (disabled)" }, +{ "pgdt", do_pgdt, FALSE, NULL, "Print global descriptor table" }, +{ "pidt", do_pidt, FALSE, NULL, "Print interrupt descriptor table" }, +{ "ptr", do_ptr, FALSE, NULL, "Print task register" }, +{ "pldt", do_pldt, FALSE, NULL, "Print local descriptor table reg." }, +{ "par", do_par, FALSE, NULL, "" }, +{ "pseg", do_pseg, FALSE, NULL, "Print segment registers" }, +{ "pd", do_pd, FALSE, ":", "Print descriptor(s)" }, +{ "pdseg", do_pdseg, FALSE, NULL, "Print descriptor of selector" }, +{ "phys", do_phys, TRUE, NULL, "Print physical address" }, +{ "dphys", do_dump_phys, FALSE, " ", "Dump from physical address" }, +{ "spa", do_show_phys_addr, FALSE, "", "Show physical address from linear" }, +{ "gla", do_guess_lin_phys, FALSE, "", "Guess linear address from physical" }, +{ "gpte", do_guess_lin_pte, FALSE, "", "Guess linear address from pte address" }, +{ "dpt", do_dump_page_table, FALSE, " ", "Dump all or specific entry from Page Table" }, +{ "rtc", do_rtc, FALSE, NULL, "Re-initialise the rtc" }, +{ "ica", do_ica, FALSE, NULL, "Show status of ica" }, +#endif +#ifdef CPU_40_STYLE +{ "blrb", do_blrb, FALSE, NULL, "Break on linear read byte" }, +{ "blrw", do_blrw, FALSE, NULL, "Break on linear read word" }, +{ "blrd", do_blrd, FALSE, NULL, "Break on linear read double" }, +{ "blwb", do_blwb, FALSE, NULL, "Break on linear write byte" }, +{ "blww", do_blww, FALSE, NULL, "Break on linear write word" }, +{ "blwd", do_blwd, FALSE, NULL, "Break on linear write double" }, +{ "pdb", do_pdb, FALSE, NULL, "Print data breakpoints" }, +{ "cdb", do_cdb, FALSE, NULL, "Clear data breakpoint" }, +#endif /* CPU_40_STYLE */ + +#if defined(CPU_40_STYLE) && !defined (SFELLOW) && !defined(NTVDM) +{ "vdd", do_vdd, FALSE, "0 or 1", "Turn Windows VDD trapping off or on" }, +{ "debug_vdd", do_debug_vdd, FALSE, "0 or 1", "Turn Windows VDD debugging off or on" }, +#endif /* CPU_40_STYLE && !SFELLOW && !NTVDM*/ + +{ "rfrsh", do_rfrsh, FALSE, NULL, "Toggle Yoda screen refresh" }, + +#ifndef GISP_CPU +#ifdef A3CPU +{ "3c", do_3c, FALSE, NULL, "3.0 CPU interface" }, +#endif +#endif /* GISP_CPU */ + +#if defined(CPU_40_STYLE) && !defined(CCPU) +{ "4c", do_4c, FALSE, NULL, "4.0 CPU interface" }, +{ "imdst", do_imdst, FALSE, "[0|1|2|3]", "Direct Intel debug message output (trace=bit0, ring=bit1)" }, +#endif /* CPU_40_STYLE && !CCPU */ + +#ifdef PIG +{ "pig", do_pig, FALSE, NULL, "Pig interface" }, +#endif + +#if defined(GENERIC_NPX) && !defined(CPU_40_STYLE) +{ "NPXdisp", do_NPXdisp, FALSE, "", "Display last NPX instructions" }, +{ "NPXfreq", do_NPXfreq, FALSE, NULL, "Display frequency of NPX instructions" }, +{ "resetNPXfreq", do_resetNPXfreq, FALSE, NULL, "Reset frequency of NPX instructions" }, +#endif /* GENERIC_NPX && !CPU_40_STYLE */ + +#ifdef MSWDVR_DEBUG +{ "mswdvr_debug", do_mswdvr_debug, FALSE, "<0|1|2|3>", "Set MSWDVR debug verbosity"}, +#endif /* MSWDVR_DEBUG */ + +#ifdef GISP_SVGA +{ "noyoda", doNoYoda, FALSE, NULL, "Toggle force_yoda on/off" }, +#endif /* GISP_SVGA */ +#ifdef PROFILE +{ "pinfo", doDumpProfiling,FALSE, NULL, "Dump all profiling info collected" }, +#endif /* PROFILE */ +{ "pmt", do_pmt, FALSE, NULL, "Print map of SAS memory types"} +}; + +LOCAL YODA_COMMAND(do_h) +{ + int i; + char args[50]; + + UNUSED(str); + UNUSED(com); + UNUSED(cs); + UNUSED(ip); + UNUSED(stop); + UNUSED(len); + + if (chewy) printf("Master Yoda's commands are:\n\n"); + + for(i = 0; i < sizeoftable(yoda_command); ) { + args[0] = 0; + if (yoda_command[i].decode_iaddr) + strcpy (args, " "); + strcat (args, yoda_command[i].args ? yoda_command[i].args : ""); + printf("%14s %-20s - %s\n", yoda_command[i].name, args, + yoda_command[i].comment?yoda_command[i].comment:""); + if (++i%20 == 0) + if (!yoda_confirm("-- continue? -- ")) return(YODA_LOOP); + } + + host_yoda_help_extensions(); + + printf("\nAll data input is treated as hex\n"); + printf(" is the type of breakpoint : 1 - stop at, 0 - trace only.\n"); + printf(" is the symbol for a 16 bit register ie: ax, sp, etc ...\n"); + printf(" examples: ffe, f000:45, ds:BX, si+8, BX+DI+1, es:[SI-2], etc ...\n\t& all combinations thereof.\n"); + return(YODA_LOOP); +} + +#ifdef PCLABS_STATS +int stats_counter; +#endif + +/* + * Convert string to lowercase in-situ. We assume that tolower() doesn't + * corrupt non-upper case characters (which is assumed elsewhere in the + * base code. + */ +LOCAL void string_tolower IFN1 (char *, s) +{ + while (*s) { + *s = host_tolower(*s); + s++; + } +} + +/* + * Decode the offset portion of an Intel address expression. + */ +LOCAL IBOOL decode_offset IFN3(char *, coffset, IU32 *, offset, IS32 *, seg) +{ + int n; + IS32 const_offset; /* constant hex offset */ + IS32 ireg_offset; /* value of index reg offset */ + unsigned long iaddr16b; + char sign, junk, morejunk; + char cbase[50], ireg[2], *pbase = coffset; + IBOOL retVal = FALSE; + SAVED IBOOL cold = TRUE; + + /* + * Data required to decode segment offset register names and + * get default segment value. + */ + static struct DECODE_SEGOFFSET { + char *reg_name; + word (*get_offset_val) IPT0(); + word (*get_segreg_val) IPT0(); + } + decode_segoffset[] = + { + {"bx", NULL, NULL}, + {"si", NULL, NULL}, + {"di", NULL, NULL}, + {"sp", NULL, NULL}, + {"bp", NULL, NULL}, + {"ip", NULL, NULL} + }; + +#ifdef SPC386 + /* + * Note that there have to be the same number of extended + * register decodes as standard register decodes, or the search + * function will break! + */ + + static struct DECODE_SEGOFFSET2 { + char *reg_name; + IU32 (*get_offset_val) IPT0(); + word (*get_segreg_val) IPT0(); + } + decode_segoffset2[] = + { + {"ebx", NULL, NULL}, + {"esi", NULL, NULL}, + {"edi", NULL, NULL}, + {"esp", NULL, NULL}, + {"ebp", NULL, NULL}, + {"eip", NULL, NULL} + }; +#endif /* SPC386 */ + + if( cold ) + { +#ifdef CCPU + decode_segoffset[0].get_offset_val = c_getBX; + decode_segoffset[0].get_segreg_val = c_getDS; + decode_segoffset[1].get_offset_val = c_getSI; + decode_segoffset[1].get_segreg_val = c_getDS; + decode_segoffset[2].get_offset_val = c_getDI; + decode_segoffset[2].get_segreg_val = c_getDS; + decode_segoffset[3].get_offset_val = c_getSP; + decode_segoffset[3].get_segreg_val = c_getSS; + decode_segoffset[4].get_offset_val = c_getBP; + decode_segoffset[4].get_segreg_val = c_getSS; + decode_segoffset[5].get_offset_val = c_getIP; + decode_segoffset[5].get_segreg_val = c_getCS; +#ifdef SPC386 + decode_segoffset2[0].get_offset_val = c_getEBX; + decode_segoffset2[0].get_segreg_val = c_getDS; + decode_segoffset2[1].get_offset_val = c_getESI; + decode_segoffset2[1].get_segreg_val = c_getDS; + decode_segoffset2[2].get_offset_val = c_getEDI; + decode_segoffset2[2].get_segreg_val = c_getDS; + decode_segoffset2[3].get_offset_val = c_getESP; + decode_segoffset2[3].get_segreg_val = c_getSS; + decode_segoffset2[4].get_offset_val = c_getEBP; + decode_segoffset2[4].get_segreg_val = c_getSS; + decode_segoffset2[5].get_offset_val = c_getEIP; + decode_segoffset2[5].get_segreg_val = c_getCS; +#endif /* SPC386 */ +#else /* !CCPU */ +#ifdef CPU_40_STYLE + decode_segoffset[0].get_offset_val = Cpu.GetBX; + decode_segoffset[0].get_segreg_val = Cpu.GetDS; + decode_segoffset[1].get_offset_val = Cpu.GetSI; + decode_segoffset[1].get_segreg_val = Cpu.GetDS; + decode_segoffset[2].get_offset_val = Cpu.GetDI; + decode_segoffset[2].get_segreg_val = Cpu.GetDS; + decode_segoffset[3].get_offset_val = Cpu.GetSP; + decode_segoffset[3].get_segreg_val = Cpu.GetSS; + decode_segoffset[4].get_offset_val = Cpu.GetBP; + decode_segoffset[4].get_segreg_val = Cpu.GetSS; + decode_segoffset[5].get_offset_val = Cpu.GetIP; + decode_segoffset[5].get_segreg_val = Cpu.GetCS; + decode_segoffset2[0].get_offset_val = Cpu.GetEBX; + decode_segoffset2[0].get_segreg_val = Cpu.GetDS; + decode_segoffset2[1].get_offset_val = Cpu.GetESI; + decode_segoffset2[1].get_segreg_val = Cpu.GetDS; + decode_segoffset2[2].get_offset_val = Cpu.GetEDI; + decode_segoffset2[2].get_segreg_val = Cpu.GetDS; + decode_segoffset2[3].get_offset_val = Cpu.GetESP; + decode_segoffset2[3].get_segreg_val = Cpu.GetSS; + decode_segoffset2[4].get_offset_val = Cpu.GetEBP; + decode_segoffset2[4].get_segreg_val = Cpu.GetSS; + decode_segoffset2[5].get_offset_val = Cpu.GetEIP; + decode_segoffset2[5].get_segreg_val = Cpu.GetCS; +#else /* !CPU_40_STYLE */ + decode_segoffset[0].get_offset_val = getBX; + decode_segoffset[0].get_segreg_val = getDS; + decode_segoffset[1].get_offset_val = getSI; + decode_segoffset[1].get_segreg_val = getDS; + decode_segoffset[2].get_offset_val = getDI; + decode_segoffset[2].get_segreg_val = getDS; + decode_segoffset[3].get_offset_val = getSP; + decode_segoffset[3].get_segreg_val = getSS; + decode_segoffset[4].get_offset_val = getBP; + decode_segoffset[4].get_segreg_val = getSS; + decode_segoffset[5].get_offset_val = getIP; + decode_segoffset[5].get_segreg_val = getCS; +#ifdef SPC386 + decode_segoffset2[0].get_offset_val = getEBX; + decode_segoffset2[0].get_segreg_val = getDS; + decode_segoffset2[1].get_offset_val = getESI; + decode_segoffset2[1].get_segreg_val = getDS; + decode_segoffset2[2].get_offset_val = getEDI; + decode_segoffset2[2].get_segreg_val = getDS; + decode_segoffset2[3].get_offset_val = getESP; + decode_segoffset2[3].get_segreg_val = getSS; + decode_segoffset2[4].get_offset_val = getEBP; + decode_segoffset2[4].get_segreg_val = getSS; + decode_segoffset2[5].get_offset_val = getEIP; + decode_segoffset2[5].get_segreg_val = getCS; +#endif /* SPC386 */ +#endif /* !CPU_40_STYLE */ +#endif /* !CCPU */ + cold = FALSE; + } + + /* + * Decode character string that represents offset into segment. + * This can either be numeric address, register name, and in + * either case with optional addition/subtraction of constant + * hex number or SI/DI register. Return -1 for invalid offset. + */ + + *offset = *seg = -1; + + /* + * Throw away any [..] around the offset; this lets us cut/paste + * addresses from the disassember listing. Then convert to lower + * case for the same reason. + */ + if (sscanf(coffset, "[%[^]]%c%c", cbase, &junk, &morejunk) == 2) + strcpy(coffset, cbase); + + string_tolower(coffset); + + /* + * Determine any additional constant value or register that is + * being added/subtracted to base of offset. + */ + + const_offset = ireg_offset = 0; + + if (sscanf(coffset, "%[^+-]%c%lx%c", cbase, &sign, + &const_offset, &junk) == 3) { + pbase = cbase; + if (sign == '-') + const_offset = -const_offset; + + } else if (((n = sscanf(coffset, "%[^+]+%c%c%c%lx%c", cbase, &ireg[0], + &ireg[1], &sign, &const_offset, &junk)) >= 3) && + ((ireg[0] == 's') || (ireg[0] == 'd')) && + (ireg[1] == 'i')) { + /* + * We allow SI/DI to be added to any offset base. Note that + * this allows things like ip+di but theres no point in + * prohibiting naff addresses like this. We also allow things + * like bp+si+4 (yuk). + */ + if ((n == 3) || (n == 5)) { + pbase = cbase; + + /* + * Get index register value .. + */ + if (ireg[0] == 'd') + ireg_offset = getDI(); + if (ireg[0] == 's') + ireg_offset = getSI(); + + /* + * Get any additional constant if present; resetting + * pbase to coffset if the format is wrong effectively + * throws the expression out as invalid. + */ + if (n == 5) { + if (sign == '-') + const_offset = -const_offset; + else if (sign != '+') + pbase = coffset; + } + } + } + + /* + * Decode the base of the offset. + */ + if (sscanf(pbase, "%lx%c", &iaddr16b, &junk) == 1) { + /* + * Simple numeric offset, we use DS as the default + * segment register in this case. + */ +#ifdef SPC386 + *offset = iaddr16b; +#else + *offset = iaddr16b & 0xffff; +#endif + *seg = getDS(); + retVal = TRUE; + + } else { + /* + * Should be symbolic register name; decode it. + */ + ISM8 n; + for (n = 0; n < sizeof(decode_segoffset)/ + sizeof(struct DECODE_SEGOFFSET); n++) { + if (!strcmp(pbase, decode_segoffset[n].reg_name)) { + *offset = decode_segoffset[n].get_offset_val(); + *seg = decode_segoffset[n].get_segreg_val(); + retVal = TRUE; + break; + } +#ifdef SPC386 + if (!strcmp(pbase, decode_segoffset2[n].reg_name)) { + *offset = decode_segoffset2[n].get_offset_val(); + *seg = decode_segoffset2[n].get_segreg_val(); + retVal = TRUE; + break; + } +#endif /* SPC386 */ + } + } + + /* + * Add/subtract any constant supplied to offset, and return the + * default segment that applies to this offset. + */ + if (retVal) +#ifdef SPC386 + *offset = (*offset + ireg_offset + const_offset); +#else + *offset = (*offset + ireg_offset + const_offset) & 0xffff; +#endif + + return(retVal); +} + +/* + * Decode a full Intel address expression. + */ +LOCAL IBOOL decode_iaddr_ok IFN3 (char *, iaddr, IS32 *, seg, LIN_ADDR *, offset) +{ + char junk; + char cseg[50], coffset[50]; + IU32 iaddr16b; + IS32 dummy; + SAVED IBOOL cold = TRUE; + + /* + * Data required to decode segment register names. + */ + static struct DECODE_SEGREG { + char *reg_name; + word (*get_segreg_val) IPT0(); + } + decode_segreg[] = + { + {"cs", NULL}, + {"ds", NULL}, + {"ss", NULL}, + {"es", NULL} +#ifdef SPC386 + ,{"fs", NULL}, + {"gs", NULL} +#endif /* SPC 386 */ + }; + + if( cold ) + { +#ifdef CCPU + decode_segreg[0].get_segreg_val = c_getCS; + decode_segreg[1].get_segreg_val = c_getDS; + decode_segreg[2].get_segreg_val = c_getSS; + decode_segreg[3].get_segreg_val = c_getES; +#ifdef SPC386 + decode_segreg[4].get_segreg_val = c_getFS; + decode_segreg[5].get_segreg_val = c_getGS; +#endif /* SPC386 */ +#else /* !CCPU */ +#ifdef CPU_40_STYLE + decode_segreg[0].get_segreg_val = Cpu.GetCS; + decode_segreg[1].get_segreg_val = Cpu.GetDS; + decode_segreg[2].get_segreg_val = Cpu.GetSS; + decode_segreg[3].get_segreg_val = Cpu.GetES; + decode_segreg[4].get_segreg_val = Cpu.GetFS; + decode_segreg[5].get_segreg_val = Cpu.GetGS; +#else /* !CPU_40_STYLE */ + decode_segreg[0].get_segreg_val = getCS; + decode_segreg[1].get_segreg_val = getDS; + decode_segreg[2].get_segreg_val = getSS; + decode_segreg[3].get_segreg_val = getES; +#ifdef SPC386 + decode_segreg[4].get_segreg_val = getFS; + decode_segreg[5].get_segreg_val = getGS; +#endif /* SPC386 */ +#endif /* !CPU_40_STYLE */ +#endif /* !CCPU */ + cold = FALSE; + } + + /* + * Decode intel address string that has been given to command. + * If the address is not understood then return in one or both + * of the cs:ip fields. + */ + + if (iaddr[0] == 0) { + + /* + * Blank command line means 0:0. This is naff but is + * required to make the "da" command work as it used to which + * I can't be bothered to change at the moment. CS:IP would + * be a more sensible option. + */ + *seg = *offset = 0; + return(TRUE); + + } else if (!strcmp(iaddr, ".")) { + + /* + * Address of just "." means CS:IP. + */ + *seg = getCS(); + *offset = GetInstructionPointer(); + return(TRUE); + + } else if (sscanf(iaddr, "%[^:]:%s", cseg, coffset) == 2) { + + /* + * Address given in segment/offset format; decode it. + * First do the segment; either simple numeric or + * assembler name (CS, DS etc). + */ + if (sscanf(cseg, "%lx%c", &iaddr16b, &junk) == 1) { +#ifdef SPC386 + *seg = iaddr16b; +#else + *seg = iaddr16b & 0xffff; +#endif + } else { + ISM8 n; + + string_tolower(cseg); + for (n = 0; n < sizeof(decode_segreg)/ + sizeof(struct DECODE_SEGREG); n++) + if (!strcmp(cseg, decode_segreg[n].reg_name)) + *seg = decode_segreg[n].get_segreg_val(); + } + + /* + * Decode the offset into segment. + */ + return(decode_offset (coffset, offset, &dummy)); + + } else { + /* + * This is probably just an offset expressed as BX, SI-2 or + * the like, so decode it and setup the default segment. + */ + return(decode_offset (iaddr, offset, seg)); + } +} + +LOCAL YODA_CMD_RETURN do_force_yoda_command IFN5(char *, str, char *, com, char *, iaddr, LIN_ADDR, len, LIN_ADDR, stop) +{ + int i, retvalue = YODA_HELP; + unsigned long temp1, temp2; + + IS32 cs; + LIN_ADDR ip; + + for (i = 0; i < sizeoftable(yoda_command); i++) { + if (strcmp(yoda_command[i].name, com) == 0) { + /* + * Decode any Intel address expected by the command. + * Different stuff done for commands that + * understand new generic address parsing. + */ + if (yoda_command[i].decode_iaddr) { + /* + * Decode Intel address .. + */ + if (!decode_iaddr_ok(iaddr, &cs, &ip)) { + printf ("Bad expression\n"); + return(YODA_LOOP); + } + } else { + /* + * Either doesn't want address at all or wants + * it old style; this is how it used to be + * for everyone ... + */ + if (len == YODA_LEN_UNSPECIFIED) + len = 1; + temp1 = temp2 = 0; + sscanf (iaddr, "%lx:%lx", &temp1, &temp2); + cs = temp1; + ip = temp2; + } + + /* + * Go do the command ... + */ + retvalue = (*yoda_command[i].function)(str, + com, cs, ip, len, stop); + break; + } + } + + return(retvalue); +} + + +LOCAL IBOOL entry_pending = FALSE; + +#ifdef CPU_40_STYLE +/* The EDL CPU prefers to be entered via an interrupt, but this + * may not always work. So if the UIF button is used twice before + * we get into yoda, the second is treated as a force. + * + * If we are running a Prod-in-a-Pig LCIF then a single button select + * does a force_yoda(). + */ + +GLOBAL VOID Enter_yoda IFN0() +{ +#ifdef PIG + GLOBAL IHP GetSadInfo IPT1(char *, name); + + /* Check to see if LCIF has been built with Pig capability */ + + if (!(IBOOL)GetSadInfo("PigSupported")) + { + fprintf(stderr, "*** LCIF has not been built with Pig support\n"); + entry_pending = TRUE; + } +#endif /* PIG */ + + if (entry_pending) + { + printf("Forced entry to yoda...\n"); + force_yoda(); + } + else + { + entry_pending = TRUE; + cpu_interrupt(CPU_SAD_INT, 0); + } +} +#endif /* CPU_40_STYLE */ + +#if defined(CPU_40_STYLE) && !defined(CCPU) +/* Use the integrated command line reader from FmDebug.c */ + +GLOBAL IBOOL GetCpuCmdLine IPT4(char *, buff, int, size, FILE *, stream, char *, who); + +#else /* CPU_40_STYLE && !CCPU */ + +GLOBAL IBOOL GetCpuCmdLine IFN4(char *, buff, int, size, FILE *, stream, char *, who) +{ + char prompt[256], *p; + int i; + + if (stream == stdin) + { + strcpy(prompt, who); + strcat(prompt, "> "); + fprintf(stdout, prompt); + } + fflush(stdout); + fflush(trace_file); + if (fgets(buff, size, stream) != NULL) + { + p = strchr(buff, '\n'); + if (p != NULL) + *p = '\0'; + return TRUE; + } + return FALSE; +} +#endif /* CPU_40_STYLE && !CCPU */ + +GLOBAL IBOOL AlreadyInYoda = FALSE; + +void force_yoda IFN0() +{ + IS32 cs; + LIN_ADDR ip, len, stop; + long temp1, temp2; /* used in calls to scanf */ + char str [84]; /* input string buffer */ + char com [16]; /* command name buffer */ + char iaddr[50]; /* first parameter/ intel address buffer */ + char slen[20]; + char junk; /* for decoding the cmd line */ + int n_args; + char *prompt; + SAVED IBOOL firstTime = TRUE; + SAVED char repeat_command [sizeof(str)];/* copy of previous input string buffer */ +#ifdef SFELLOW + IU32 oldEE; +#endif /* SFELLOW */ + + entry_pending = FALSE; + +#ifdef PCLABS_STATS + return; +#endif +#ifdef GISP_SVGA + if( NoYodaThanks ) + { + + return; + } +#endif /* GISP_SVGA */ + +#if defined(CPU_40_STYLE) && !defined(CCPU) + + EnterDebug("Yoda"); + prompt = ""; + +#else /* CPU_40_STYLE && !CCPU */ + + if (AlreadyInYoda) { + printf("Recursive call to force_yoda() disallowed!\n"); + return; + } else { + AlreadyInYoda = TRUE; + } + prompt = "yoda"; + +#endif /* CPU_40_STYLE && !CCPU */ + +#ifdef SFELLOW + oldEE = DisableEE(); +#endif /* SFELLOW */ + + if (firstTime) { + firstTime = FALSE; + if (host_getenv("QUIET_YODA")) + { + chewy = 0; + } else { + chewy = 1; +#if !defined(macintosh) && !defined(SFELLOW) + (void)srand(time(NULL)); +#endif /* !macintosh && !SFELLOW */ +#if defined(SPC386) && !defined(GISP_CPU) + printf("\nRemember, not everything is as it seems! An experienced Jedi will know\nthe difference between the physical world and the logical world at all times.\n\n"); +#endif /* SPC386 & !GISP_CPU */ + + if (in_stream == NULL) + in_stream = stdin; + + if (out_stream == NULL) + out_stream = stdout; + + } + } +#ifdef A3CPU + /* The A3CPU thread generation has already happened, and if + * the YODA environment variable was not defined then you + * aren't going to be able to use the YODA_INTERRUPT system + */ +#ifndef SFELLOW + if (env_check == 0) { + env_check = (host_getenv("YODA") == NULL)? 1: 2; + if (env_check == 1) { + printf("Slow YODA not available (no breakpoint-based features)\n"); + printf("If you want Slow YODA facilities, you must do\n"); + printf("'setenv YODA TRUE' before starting an A3 CPU.\n"); + } + } +#endif /* !SFELLOW */ +#endif /* A3CPU */ + + +#ifdef MUST_BLOCK_TIMERS + if( !timer_blocked ) + host_block_timer(); +#endif /* MUST_BLOCK_TIMERS */ + + disable_timer = 1; + disable_bkpt = 1; + if (compare_stream) + printf("Compare line number %d.\n", ct_line_num); + trace("", trace_type); + disable_bkpt = 0; + + while(1) + { + if (refresh_screen) + do_screen_refresh(); + +#ifdef SFELLOW + if (! GetCpuCmdLine(str, 80, stdin, prompt)) + { + /* if read fails on stdin */ + perror("failed to read from stdin"); + continue; + } +#else /* SFELLOW */ + if (! GetCpuCmdLine(str, 80, in_stream, prompt)) + { + /* if read fails on file */ + if (in_stream == stdin) { + perror("failed to read from stdin"); + } else + { + /* close script */ + fclose (in_stream); + + /* return to stdin */ + in_stream = stdin; + + /* tell user his script has finished */ + puts ("(eof)"); + + continue; + } + } + + /* if reading a script echo the command */ + if (in_stream != stdin) { + puts(str); + } else if (str[0] == '\0') { + /* + * If no command is specified then copy previous + * command (if it was repeatable) + */ + strcpy(str, repeat_command); + } +#endif /* SFELLOW */ + + /* + * Setup default command arguments and do initial command + * line decoding. + */ + + com[0] = 0; + + temp1 = 1; + len = YODA_LEN_UNSPECIFIED; + + /* + * the lengths here relate to the buffer sizes of com, iaddr and slen + * [BCN 2582] + */ + n_args = sscanf (str, "%15s %49s %19s %lx", com, iaddr, slen, &temp1); + stop = temp1; + if (n_args < 2) + iaddr[0] = 0; + + if (n_args >= 3) { + /* + * The parameter was provided; this is supposed to + * be numeric but we accept (SR), (LR), (TR), (WI), (SI), + * (LI) and (PD) to allow NPX addresses to be cut/pasted + * directly out of the dissasembler. They equate to the + * size in bytes of the corresponding data item. + * Useful for pasting into, for example, the "db" command. + */ + string_tolower(slen); + if (sscanf(slen, "%lx%c", &temp1, &junk) == 1) { + if (temp1 == YODA_LEN_UNSPECIFIED) { + printf("That length only by a master be used may, given you 1 I have\n"); + len = 1; + } else { + len = temp1; + } + } else { + if (!strcmp(slen, "(wi)")) + len = 2; + else if (!strcmp(slen, "(sr)") || !strcmp(slen, "(si)")) + len = 4; + else if (!strcmp(slen, "(lr)") || !strcmp(slen, "(li)")) + len = 8; + else if (!strcmp(slen, "(tr)") || !strcmp(slen, "(pd)")) + len = 12; + else + len = YODA_LEN_UNSPECIFIED; + } + } + + repeat_command[0] = '\0'; /* Default is dont-repeat on null command */ + /* + * Do the command & take action on the return code ... + */ + switch (do_force_yoda_command(str, com, iaddr, len, stop)) + { + case YODA_RETURN_AND_REPEAT: + /* Remember this command, when it completes a null command will + * do this command again. I.e. "s", followed by will + * do "s" twice. + */ + strcpy(repeat_command, str); + /* Fall through */ + case YODA_RETURN: +#ifdef MUST_BLOCK_TIMERS + if( !timer_blocked ) + host_release_timer(); +#endif /* MUST_BLOCK_TIMERS */ + In_yoda = FALSE; + AlreadyInYoda = FALSE; + +#ifdef SFELLOW + RestoreEE(oldEE); +#endif /* SFELLOW */ + +#if defined(CPU_40_STYLE) && !defined(CCPU) + LeaveDebug(); +#endif /* CPU_40_STYLE && !CCPU */ + return; + case YODA_HELP: + /* + * Following assignment & scanf is the way that all yoda + * commands used to get their arguments; the host extensions + * will still always get the old stuff. AJO 29/8/93. + */ + if (len == YODA_LEN_UNSPECIFIED) + len = 1; /* old default */ + temp1 = temp2 = 0; + sscanf(iaddr, "%lx:%lx", &temp1, &temp2); + cs = temp1; + ip = temp2; + + if ( (host_force_yoda_extensions(com,cs,ip,len,str)!=0) + && (strcmp(com,"") != 0)) + { + printf ("Unknown command '%s'\n", com); + if (chewy) { + printf ("Use the 'h' command if you must.\n"); + printf ("Remember - a jedi's strength FLOWS through his fingers\n"); + } + } + /* Fall through (we dont care!) */ + case YODA_LOOP_AND_REPEAT: + /* Remember this command, when it completes a null command will + * do this command again. I.e. "u", followed by will + * do "u" twice. + */ + strcpy(repeat_command, str); + /* Fall through */ + case YODA_LOOP: + default: + break; + } + } + + /* + * Should never get here. + */ +} + +#ifdef PM +LOCAL dump_descr IFN2(LIN_ADDR, address, IUM32, num) +/* address of first descriptor to dump */ +/* number of descriptors to dump */ +{ + int i; + int output_type; + char *output_name; + int p; /* Bits of descriptor */ + int a; /* ... */ + int dpl; /* ... */ + half_word AR; /* ... */ + word limit; /* ... */ + word low_base; /* ... */ + half_word high_base; /* ... */ + word high_limit; /* ... */ + sys_addr base; + int scroll; + sys_addr tlimit; + + scroll = 0; + for ( i = 0; i < (num * 8); i+=8, address += 8, scroll++ ) + { + if (scroll == 20) { + if (!yoda_confirm("-- more descriptors? -- ")) + break; + scroll = 0; + } + AR = sas_hw_at(address+5); /* get access rights */ + p = (AR & 0x80) >> 7; /* hence P(Present) */ + dpl = (AR & 0x60) >> 5; /* and DPL */ + AR = AR & 0x1f; /* and super type */ + a = AR & 0x1; /* and A(Accessed) */ + limit = sas_w_at(address); /* 1st word of descr */ + low_base = sas_w_at(address+2); /* 2nd word of descr */ + high_base = sas_hw_at(address+4); /* 5th byte of descr */ +#ifdef SPC386 + high_limit = sas_w_at(address+6); /* 4th word of descr */ +#else /* SPC386 */ + high_limit = 0; +#endif /* SPC386 */ + + output_name = segment_names[AR]; + + /* find output format */ + switch ( (int)AR ) + { + case 0x00: /* INVALID */ + case 0x08: + case 0x0a: + case 0x0d: + output_type = 2; + break; + +#ifdef SPC386 + case 0x09: + case 0x0b: + output_type = 1; + break; + case 0x0c: + output_type = 8; + break; + case 0x0e: + case 0x0f: + output_type = 9; + break; +#else /* SPC386 */ + case 0x09: + case 0x0b: + case 0x0c: + case 0x0e: + case 0x0f: + output_type = 2; + break; +#endif /* SPC386 */ + + case 0x01: /* SPECIAL */ + case 0x02: + case 0x03: + output_type = 1; + break; + + case 0x04: /* CONTROL */ + output_type = 4; + break; + + case 0x05: /* CONTROL */ + output_type = 5; + break; + + case 0x06: /* CONTROL */ + case 0x07: + output_type = 3; + break; + + case 0x10: /* DATA */ + case 0x11: + case 0x12: + case 0x13: + case 0x14: + case 0x15: + case 0x16: + case 0x17: + output_type = 6; + break; + + case 0x18: /* CODE */ + case 0x19: + case 0x1a: + case 0x1b: + case 0x1c: + case 0x1d: + case 0x1e: + case 0x1f: + output_type = 7; + break; + } + + switch ( output_type ) + { + case 1: + if ( descr_trace & 0x02 ) +#ifdef SPC386 + { + base = ((high_limit & 0xff00) << 16) | + (high_base << 16 ) | + low_base; + tlimit = ((high_limit & 0xf) << 16) | limit; + if ( high_limit & 0x80 ) + tlimit = tlimit << 12 | 0xfff; + fprintf(trace_file, "(%04x)P:%1d DPL:%1d TYPE:%25s BASE:%08x LIMIT:%08x\n", + i, p, dpl, output_name, base, tlimit); + } +#else /* SPC386 */ + { + base = ((sys_addr)high_base << 16 ) | low_base; + fprintf(trace_file, "(%04x)P:%1d DPL:%1d TYPE:%25s BASE:%6x LIMIT:%4x\n", + i, p, dpl, output_name, base, limit); + } +#endif /* SPC386 */ + break; + + case 2: + if ( descr_trace & 0x01 ) + { + fprintf(trace_file, "(%04x)P:%1d DPL:%1d TYPE:%25s\n", + i, p, dpl, output_name); + } + break; + + case 3: + if ( descr_trace & 0x08 ) + { + fprintf(trace_file, "(%04x)P:%1d DPL:%1d TYPE:%25s SELECTOR:%4x OFFSET:%4x\n", + i, p, dpl, output_name, low_base, limit); + } + break; + + case 4: + if ( descr_trace & 0x04 ) + { + high_base = high_base & 0x1f; + fprintf(trace_file, "(%04x)P:%1d DPL:%1d TYPE:%25s SELECTOR:%4x OFFSET:%4x WD:%2x\n", + i, p, dpl, output_name, low_base, limit, high_base); + } + break; + + case 5: + if ( descr_trace & 0x08 ) + { + fprintf(trace_file, "(%04x)P:%1d DPL:%1d TYPE:%25s TSS SELECTOR:%4x\n", + i, p, dpl, output_name, low_base); + } + break; + + case 6: + if ( descr_trace & 0x10 ) + { + base = ((high_limit & 0xff00) << 16) | + (high_base << 16 ) | + low_base; + tlimit = ((high_limit & 0xf) << 16) | limit; + if ( high_limit & 0x80 ) + tlimit = tlimit << 12 | 0xfff; + fprintf(trace_file, "(%04x)P:%1d DPL:%1d %s TYPE:%25s BASE:%08x LIMIT:%08x A:%1d\n", + i, p, dpl, (high_limit & 0x40) ? "Big": " ", output_name, base, tlimit, a); + } + break; + + case 7: + if ( descr_trace & 0x20 ) + { + base = ((high_limit & 0xff00) << 16) | + (high_base << 16 ) | + low_base; + tlimit = ((high_limit & 0xf) << 16) | limit; + if ( high_limit & 0x80 ) + tlimit = tlimit << 12 | 0xfff; + fprintf(trace_file, "(%04x)P:%1d DPL:%1d %s TYPE:%25s BASE:%08x LIMIT:%08x A:%1d\n", + i, p, dpl, (high_limit & 0x40) ? "Big": " ", output_name, base, tlimit, a); + } + break; + + case 8: + if ( descr_trace & 0x04 ) + { + high_base = high_base & 0xf; + tlimit = (high_limit << 16) | limit; + fprintf(trace_file, "(%04x)P:%1d DPL:%1d TYPE:%25s SELECTOR:%04x OFFSET:%08x DW:%2x\n", + i, p, dpl, output_name, low_base, tlimit, high_base); + } + break; + + case 9: + if ( descr_trace & 0x08 ) + { + tlimit = (high_limit << 16) | limit; + fprintf(trace_file, "(%04x)P:%1d DPL:%1d TYPE:%25s SELECTOR:%04x OFFSET:%08x\n", + i, p, dpl, output_name, low_base, tlimit); + } + break; + } + } + } +#endif /* PM */ + +/* + Dump Readable String. + */ +dump_string IFN4(IU16, selector, LIN_ADDR, offset, LIN_ADDR, len, long, mode) + +#ifdef DOCUMENTATION +long selector; /* Selector:Offset to start address for dump */ +long offset; /* " */ +long len; /* Nr. bytes to dump */ +long mode; /* =1 Simple byte string dump */ + /* =2 Dump every other byte starting with first */ + /* =3 Dump every other byte starting with second */ +#endif /* DOCUMENTATION */ + + { + int i; + int pc = 0; + half_word value; + LIN_ADDR addr; + + addr = eff_addr(selector, offset); + + for ( i = 0; i < len; i++ ) + { + /* Get next byte to be shown */ + switch ( mode ) + { + case 1: + value = sas_hw_at(addr+i); + break; + + case 2: + value = sas_hw_at(addr+i); + i++; + break; + + case 3: + i++; + value = sas_hw_at(addr+i); + break; + } + + /* Filter out the unprintable */ + if ( iscntrl(value) ) + value = '.'; + + /* Print it */ + fprintf(trace_file, "%c", value); + /* With a line feed every eighty characters */ + if ( ++pc == 80 ) + { + fprintf(trace_file, "\n"); + pc = 0; + } + } + + /* Print final line feed if needed */ + if ( pc ) + fprintf(trace_file, "\n"); + } + + +/* Do pretty printing for page table entry */ +LOCAL void dump_page_table_entries IFN3(int, first_index, int, last_index, IU32, entry) +{ + if (first_index == last_index) + fprintf(trace_file, "%03x %08x ", first_index, entry); + else + fprintf(trace_file, "%03x..%03x %08x ", first_index, last_index, entry); + + if ( entry & 1 ) + { + /* Present */ + fprintf(trace_file, "%08x %c %c %c %c.\n", + entry & 0xfffff000, + (entry & 0x40) ? 'D' : ' ', + (entry & 0x20) ? 'A' : ' ', + (entry & 0x04) ? 'U' : 'S', + (entry & 0x02) ? 'W' : 'R'); + } +#ifndef CCPU + else if ((((entry >> 9) & 7) == 6) && Sas.IsPageInstanceData(entry)) + { + /* Not Present, but Windows instance data */ + fprintf(trace_file, "Not Present, Instance data\n"); + } +#endif /* CCPU */ + else + { + /* Not Present */ + fprintf(trace_file, "Not Present.\n"); + } +} + + +LOCAL void dump_page_table IFN2( + IS32, cs, /* Physical address to dump table from */ + IS32, len /* Entry Number (0-3ff) to dump, else dump all */ +) +{ +#ifdef CPU_40_STYLE + PHY_ADDR addr; + int start, end; + int i; + IU32 entry; + + /* Special case tell them Page Directory Base Register contents */ + if ( cs == 0 ) + { + fprintf(trace_file, + "Page Directory Base Register = %08x.\n", getCR3()); + return; + } + + if ( len < 0 || len > 1023 ) + { + /* dump whole table */ + start = 0; + end = 1024; + addr = (PHY_ADDR)cs; + } + else + { + /* dump just one entry */ + start = len; + end = len + 1; + addr = (PHY_ADDR)(cs + (start * 4)); + } + + disable_bkpt = 1; + + i = start; + while (i < end) + { + IU32 next_entry; + PHY_ADDR next_addr; + IU32 next_i; + + /* Get next Page Table Entry */ + entry = sas_PR32(addr); + next_addr = addr+4; + for (next_i = i+1; next_i < end;) + { + next_entry = sas_PR32(next_addr); + if (next_entry != entry) + break; + next_addr += 4; + next_i++; + } + if (next_i < end) + { + /* We exited early, entry at next_i is different */ + dump_page_table_entries(i, next_i - 1, entry); + i = next_i; + addr = next_addr; + } + else + { + dump_page_table_entries(i, end - 1, entry); + break; + } + } + + disable_bkpt = 0; +#endif /* CPU_40_STYLE */ +} + +LOCAL void show_phys_addr IFN1(LIN_ADDR, lin) +{ + IU32 dir, tbl; + PHY_ADDR addr, pde, pte; + /* Split linear address (lin) into DIR, TBL and OFFSET components */ + + dir = (lin >> 22) & 0x3ff; + tbl = (lin >> 12) & 0x3ff; + fprintf(trace_file, + "LinearAddress %08x => Directory %03x Table %03x Offset %03x.\n", + lin, + dir, + tbl, + lin & 0xfff); +#ifdef CPU_40_STYLE + addr = (getCR3() & ~0x3ff) + (dir * 4); + disable_bkpt = 1; + pde = sas_PR32(addr); + disable_bkpt = 0; + fprintf(trace_file, " Directory entry @ %08p ", addr); + dump_page_table_entries(dir, dir, pde); + if (pde & 1) + { + addr = (pde & ~0xfff) + (tbl * 4); + disable_bkpt = 1; + pte = sas_PR32(addr); + disable_bkpt = 0; + fprintf(trace_file, " Table entry @ %08p ", addr); + dump_page_table_entries(tbl, tbl, pte); + if (pte & 1) + { + fprintf(trace_file, " Final Physical Address %08x\n", (pte & ~0xfff) + (lin & 0xfff)); + } + } +#endif /* CPU_40_STYLE */ +} + +LOCAL void guess_lin_phys IFN1(PHY_ADDR, phys) +{ + IU32 dir, tbl, pdbr; + PHY_ADDR addr, pde, pte; + int nPrinted = 0; + /* Guess linear address(es) from given phys address */ + + fprintf(trace_file, + "Phys addr @ %08x could be linear address(es)\n", + phys); +#ifdef CPU_40_STYLE + pdbr = getCR3() & ~0xFFF; + for (dir = 0; dir <= 0x3ff; dir++) + { + addr = pdbr + (dir * 4); + + disable_bkpt = 1; + pde = sas_PR32(addr); + disable_bkpt = 0; + if (pde & 1) + { + for (tbl = 0; tbl <= 0x3ff; tbl++) + { + addr = (pde & ~0xfff) + (tbl * 4); + disable_bkpt = 1; + pte = sas_PR32(addr); + disable_bkpt = 0; + if ((pte & 1) && ((pte ^ phys) <= 0xfff)) + { + fprintf(trace_file, "%08x ", + (dir << 22) + (tbl << 12) + (phys & 0xFFF)); + if (nPrinted++ == 8) + { + fprintf(trace_file, "\n"); + nPrinted = 0; + } + } + } + } + } + if (nPrinted) + { + fprintf(trace_file, "\n"); + } +#endif /* CPU_40_STYLE */ +} + +LOCAL void guess_lin_pte IFN1(PHY_ADDR, pte_addr) +{ + IU32 dir, tbl, pdbr; + PHY_ADDR addr, pde, pte; + int nPrinted = 0; + /* Guess linear address(es) from given PTE address */ + + fprintf(trace_file, + "PTE @ %08x could be defining linear address(es)\n", + pte_addr); +#ifdef CPU_40_STYLE + pdbr = getCR3() & ~0xFFF; + for (dir = 0; dir <= 0x3ff; dir++) + { + addr = pdbr + (dir * 4); + + disable_bkpt = 1; + pde = sas_PR32(addr); + disable_bkpt = 0; + if ((pde & 1) && ((pde ^ pte_addr) <= 0xfff)) + { + fprintf(trace_file, "%05x000 ", (dir << 10) + ((pte_addr & 0xFFF) >> 2)); + if (nPrinted++ == 8) + { + fprintf(trace_file, "\n"); + nPrinted = 0; + } + } + } + if (nPrinted) + { + fprintf(trace_file, "\n"); + } +#endif /* CPU_40_STYLE */ +} + +LOCAL void dump_phys_bytes IFN2(IS32, cs, IS32, len) + { +#ifdef CPU_40_STYLE + int i, j, x, y; + + if (len < 0) + len = 1; + + x = len % 16; + y = len / 16; + + for (i=0;i MAX_TABLE) + len = MAX_TABLE; + disable_bkpt = 1; + sas_loads(eff_addr(cs,ip), val, len); + disable_bkpt = 0; + x = len % 16; + y = len / 16; + k = 0; + for (i=0;inext; + + brp->next = head_br_regs; + head_br_regs = brp; + + switch(br_regdescs[regn].size) { + case EIGHT_BIT : + brp->minval = minv & 0xff; + brp->maxval = maxv & 0xff; + break; + + case SIXTEEN_BIT : + brp->minval = minv & 0xffff; + brp->maxval = maxv & 0xffff; + break; + + case THIRTY_TWO_BIT : + brp->minval = minv & 0xff; + brp->maxval = maxv & 0xff; + break; + } + + + brp->regnum = br_regdescs[regn].regnum; +} + +LOCAL void clear_reg_break IFN1(char *, regstr) +{ + BOOL found; + BR_REGENTRY *brp, *last_brp; + BR_REG regn; + USHORT dhandle; + + if (strcmp(regstr,"all")==0) + { + init_br_structs(); + return; + } + + dhandle = atoi(regstr); + + if (!br_structs_initted || (head_br_regs == NULL)) + { + printf("no reg breakpoints to clear\n"); + init_br_structs(); + return; + } + + found = FALSE; + regn = 0; + while (!found && (regn <= br_regDL)) + { + if (strcmp(br_regdescs[regn].regname,regstr) == 0) + found = TRUE; + else + regn++; + } + + if (found) + { + printf("clearing all breakpoints for register '%s'\n",regstr); + brp = head_br_regs; + last_brp = NULL; + while(brp != NULL) + { + if (brp->regnum == regn) + { + if (last_brp == NULL) + head_br_regs = brp->next; + else + last_brp->next = brp->next; + brp->next = free_br_regs; + free_br_regs = brp; + } + else + { + last_brp = brp; + brp = brp->next; + } + } + } + else + { + brp = head_br_regs; + last_brp = NULL; + while(!found && (brp != NULL)) + { + if (brp->handle == dhandle) + found = TRUE; + else + { + last_brp = brp; + brp = brp->next; + } + } + + if (!found) + { + printf("breakpoint handle %d is not currently active\n",dhandle); + return; + } + + if (last_brp == NULL) + head_br_regs = brp->next; + else + last_brp->next = brp->next; + brp->next = free_br_regs; + free_br_regs = brp; + } +} + +LOCAL void print_reg_break IFN0() +{ + BR_REGENTRY *brp; + + if (!br_structs_initted) + { + printf("no reg breakpoints to print\n"); + init_br_structs(); + return; + } + + brp = head_br_regs; + while(brp != NULL) + { + printf("%d: break if %s is ",brp->handle, br_regdescs[brp->regnum].regname); + + if (brp->minval == brp->maxval) + { + printf("%#x\n",brp->minval); + } + else + { + printf("between %#x and %#x\n",brp->minval,brp->maxval); + } + brp = brp->next; + } +} + +LOCAL BOOL check_reg_break IFN0() +{ + BR_REGENTRY *brp; + USHORT val; + + if (!br_structs_initted) + { + init_br_structs(); + return(FALSE); + } + + brp = head_br_regs; + while(brp != NULL) + { + switch(brp->regnum) + { + case br_regAX: + val = getAX(); + break; + case br_regBX: + val = getBX(); + break; + case br_regCX: + val = getCX(); + break; + case br_regDX: + val = getDX(); + break; + case br_regCS: + val = getCS(); + break; + case br_regDS: + val = getDS(); + break; + case br_regES: + val = getES(); + break; + case br_regSS: + val = getSS(); + break; + case br_regSI: + val = getSI(); + break; + case br_regDI: + val = getDI(); + break; + case br_regSP: + val = getSP(); + break; + case br_regBP: + val = getBP(); + break; + case br_regAH: + val = getAH(); + break; + case br_regBH: + val = getBH(); + break; + case br_regCH: + val = getCH(); + break; + case br_regDH: + val = getDH(); + break; + case br_regAL: + val = getAL(); + break; + case br_regBL: + val = getBL(); + break; + case br_regCL: + val = getCL(); + break; + case br_regDL: + val = getDL(); + break; +#ifdef SPC386 + case br_regEAX: + val = getEAX(); + break; + case br_regEBX: + val = getEBX(); + break; + case br_regECX: + val = getECX(); + break; + case br_regEDX: + val = getEDX(); + break; + case br_regFS: + val = getFS(); + break; + case br_regGS: + val = getGS(); + break; + case br_regESI: + val = getESI(); + break; + case br_regEDI: + val = getEDI(); + break; + case br_regESP: + val = getESP(); + break; + case br_regEBP: + val = getEBP(); + break; + +#endif /* SPC386 */ + } + if ((val >= brp->minval) && (val <= brp->maxval)) + { + printf("register `%s` contains %x !!\n",br_regdescs[brp->regnum].regname,val); + return(TRUE); + } + brp = brp->next; + } + return(FALSE); +} + +LOCAL void set_inst_break IFN5(IU16, cs, LIN_ADDR, ip, LIN_ADDR, len, LIN_ADDR, stop,long, temp) +{ + BPTS *ptr, *freeslot; + unsigned int i; + + /* Scan used slots for vacant slot */ + for (ptr = freeslot = (BPTS *)0, i = inst_break_count; i--;) + { + if (inst[i].valid) + { + /* What if a break range encloses this trace address ? */ + if (inst[i].cs == cs && inst[i].ip == ip) + return; + } + else + /* Keep a record of earliest vacant slot */ + ptr = inst + i; + } + + if (!ptr) + { + /* No match and no freed slot try for a new one */ + if (inst_break_count >= MAX_TABLE) + { + printf("Location watch table full !!!\n"); + return; + } + + /* Next unused slot */ + ptr = inst + inst_break_count++; + } + + ptr->cs = cs; + ptr->ip = ip; + ptr->len = len; + ptr->start_addr = eff_addr(cs,ip); + ptr->end_addr = ptr->start_addr + len - 1; + ptr->stop = stop; + ptr->temp = temp; + ptr->valid = 1; +} + +/* Tim did this +set_data_break_bytes IFN4(IS32, cs, LIN_ADDR, ip, LIN_ADDR, len, LIN_ADDR, stop) +{ +BPTS *ptr; + if(data_bytes_break_count >= MAX_TABLE) { + printf("Location watch table full !!!\n"); + return; + } + ptr = &data_bytes[data_bytes_break_count++]; + ptr->cs = cs; + ptr->ip = ip; + if (len==0) + len=1; + ptr->len = len; + ptr->start_addr = eff_addr(cs,ip); + ptr->end_addr = ptr->start_addr + len - 1; + ptr->stop = stop; +} +*/ + +/* + * set_opcode_break + * + * Consider the two byte opcode 0f ab. The user will have typed 0fab, + * but when we do our compare against the instruction stream, the 0f will + * come first, and hence be the LS byte. Hence we need to swap things. + * This is nothing to do with host-endianness or BACK_M! + * This code may not be the prettiest, but I think it's safe. + */ + +LOCAL void set_opcode_break IFN2(IU32, opcode, IU32, stop) +{ + if(opcode_break_count >= MAX_TABLE) { + printf("Opcode breakpoint watch table full !!!\n"); + return; + } + if (opcode <= 0xff) { + opcode_breaks[opcode_break_count].mask = 0xff; + opcode_breaks[opcode_break_count].op = opcode; + } else if (opcode <= 0xffff) { + opcode_breaks[opcode_break_count].mask = 0xffff; + opcode_breaks[opcode_break_count].op = + ((opcode & 0xff00) >> 8) + + ((opcode & 0xff) << 8); + } else if (opcode <= 0xffffff) { + opcode_breaks[opcode_break_count].mask = 0xffffff; + opcode_breaks[opcode_break_count].op = + ((opcode & 0xff0000) >> 16) + + ((opcode & 0xff00)) + + ((opcode & 0xff) << 16); + } else if (opcode <= 0xffffffff) { + opcode_breaks[opcode_break_count].mask = 0xffffffff; + opcode_breaks[opcode_break_count].op = + ((opcode & 0xff000000) >> 24) + + ((opcode & 0xff0000) >> 8) + + ((opcode & 0xff00) << 8) + + ((opcode & 0xff) << 24); + } + if (stop) + opcode_breaks[opcode_break_count].stop = 1; + else + if ((opcode_breaks[opcode_break_count].op & 0xff) == 0xcd) + opcode_breaks[opcode_break_count].stop = 2; + else + opcode_breaks[opcode_break_count].stop = 0; + opcode_break_count++; +} + +/* +** called by yoda command bintx +** set up interrupt number and ah value to break upon +*/ +LOCAL void set_int_break IFN2(IU8, interrupt_number, IU8, ah ) +{ + printf( "Interrupt breakpoint: INT:%lx AH:%lx\n", interrupt_number, ah ); + if(int_break_count >= MAX_TABLE) { + printf("Interrupt breakpoint watch table full !!!\n"); + return; + } + int_breaks[int_break_count][0] = interrupt_number; + int_breaks[int_break_count][1] = ah; +printf( "i_b[%x] [0]=%lx [1]=%lx\n", +int_break_count, int_breaks[int_break_count][0], int_breaks[int_break_count][1] ); + ++int_break_count; +} + +LOCAL void set_access_break IFN1(int, port) +{ + if(access_break_count >= MAX_TABLE) { + printf("Access breakpoint table full !!!\n"); + return; + } + access_breaks[access_break_count++] = port; +} + +/* +** Break on write to specified address range +** Currently allow only one of these breaks as have to store the complete data range. +*/ +LOCAL void set_host_address_break IFN3(LIN_ADDR, cs, LIN_ADDR, len, LIN_ADDR, stop) + +#ifdef DOCUMENTATION +long cs; /* start address */ +long len; /* length to check */ +long stop; /* stop or trace when changed */ +#endif /* DOCUMENTATION */ + +{ +DATA_BPTS *ptr; +int i; +IU8 *old, *now; + + if(host_address_break_count >= MAX_TABLE_BREAK_WORDS) { + printf("BREAK on HOST ADDRESS change table full !!\n" ); + return; + } + if( len > MAX_BREAK_WORD_RANGE ){ + printf( "Range too big. More training you require.\n" ); + return; + } + ptr = &host_addresses[host_address_break_count++]; + ptr->cs = cs; + ptr->ip = 0; + ptr->stop = stop; + ptr->len = len; + + /* + * saves Host address and data, will look for a change after every instruction + */ + + ptr->data_addr = cs; + now = (IU8 *)ptr->data_addr; + old = (IU8 *)&ptr->old_value[0]; + for( i=0; idata_addr, ptr->len ); +} + +/* +** Break on write to specified address range +** Currently allow only one of these breaks as have to store the complete data range. +*/ +LOCAL void set_data_break_words IFN3(LIN_ADDR, cs, LIN_ADDR, len, LIN_ADDR, stop) + +#ifdef DOCUMENTATION +long cs; /* start address */ +long len; /* length to check */ +long stop; /* stop or trace when changed */ +#endif /* DOCUMENTATION */ + +{ +DATA_BPTS *ptr; +int i; + + if(data_words_break_count >= MAX_TABLE_BREAK_WORDS) { + printf("BREAK on WORD CHANGE table full !!\n" ); + return; + } + if( len > MAX_BREAK_WORD_RANGE ){ + printf( "Range too big. More training you require.\n" ); + return; + } + ptr = &data_words[data_words_break_count++]; + ptr->stop = stop; + if (len==0) + len=1; + ptr->len = len; + + /* + * saves Intel 32-bit address and data, will look for a change after every instruction + */ + + ptr->data_addr = cs; + ptr->cs = cs; + for( i=0; iold_value[i] = sas_w_at( (ptr->data_addr)+(i * 2) ) ; + } + printf( "Break on word change set from %lx length %lx\n", ptr->data_addr, ptr->len ); +} + +LOCAL void print_inst_break IFN0() +{ +int i; +BPTS *ptr; + + for (i=0;ics, ptr->ip, ptr->len, + ptr->stop); + } +} + +print_data_break_bytes IFN0() +{ +int i; +BPTS *ptr; + + for (i=0;ics, ptr->ip, ptr->len, + ptr->stop); + } +} + +LOCAL void print_host_address_breaks IFN0() +{ +int i; +DATA_BPTS *ptr; + + for (i=0;iold_value[0]; + printf("host address change break Len=%04lx", ptr->len ); + for (j = 0; j < ptr->len; j++) + { + if ((j & 0x1f) == 0) + printf("\n\t%08p:", ptr->data_addr + j); + printf(" %02x", old[ j ]); + } + printf("\n"); + } +} + +LOCAL void print_data_break_words IFN0() +{ +int i; +DATA_BPTS *ptr; + + for (i=0;idata_addr, ptr->len); + } +} + +LOCAL void print_opcode_break IFN0() +{ +int i; + + printf("Note instruction streams are reversed\n"); + for (i=0;i= 0x100000) ); + }else{ + return (1); + } +} + +#if defined(CPU_40_STYLE) && defined(SYNCH_TIMERS) +#ifdef CCPU +#define GLOBAL_PigSynchCount PigSynchCount +extern IUH PigSynchCount; +#endif /* !CCPU */ +#endif /* CPU_40_STYLE && SYNCH_TIMERS */ + +#if defined(CPU_40_STYLE) && defined(SYNCH_TIMERS) +LOCAL void ct_get_regs IFN1(IU32 *, regs) +{ + /* Pseudo-hex digits 0 1 2 3 4 5 6 7 8 9 : ; < = > ? */ + /* represent 0 1 2 3 4 5 6 7 8 9 A B C D E F */ + + /* +ve -ve */ + /* already written EIP */ /* ` @ */ + /* already written CS */ /* a A */ + *regs++ = getDS(); /* b B */ + *regs++ = getES(); /* c C */ + *regs++ = getSS(); /* d D */ + *regs++ = getTR_SELECTOR(); /* e E */ + *regs++ = getLDT_SELECTOR(); /* f F */ + *regs++ = getGDT_BASE(); /* g G */ + *regs++ = getIDT_BASE(); /* h H */ + *regs++ = getEAX(); /* i I */ + *regs++ = getEBX(); /* j J */ + *regs++ = getECX(); /* k K */ + *regs++ = getEDX(); /* l L */ + *regs++ = getESI(); /* m M */ + *regs++ = getEDI(); /* n N */ + *regs++ = getESP(); /* o O */ + *regs++ = getEBP(); /* p P */ + *regs++ = getCR0(); /* q R */ + *regs++ = getFS(); /* r R */ + *regs++ = getGS(); /* s S */ + *regs++ = getCR3(); /* PDBR */ /* t T */ + *regs++ = getCR2(); /* PFLA */ /* u U */ + *regs++ = GLOBAL_PigSynchCount; /* w W */ + *regs++ = host_q_ev_get_count();/* x X */ + *regs++ = getEFLAGS() & 0xFFFFF72A;/* Y */ + /* z Z */ + /* { [ */ + /* | \ */ + /* } ] */ + /* ~ ^ */ +} +#endif /* CPU_40_STYLE && SYNCH_TIMERS */ + +#if defined(CPU_40_STYLE) && defined(SYNCH_TIMERS) +LOCAL IBOOL ct_show_reg_diffs IFN4(FILE *, f, IU32 *, good_regs, IU32 *, bad_regs, IU32 *, old_regs) +{ + IBOOL problem = FALSE; +#define test4(name) \ + { \ + if (*good_regs != *bad_regs) \ + { \ + fprintf(f, "Register %-6s: should be %04x is %04x", name, *good_regs, *bad_regs); \ + if (*bad_regs == *old_regs) \ + fprintf(f, " (did not change)\n"); \ + else \ + fprintf(f, " (previous value was %04x)\n", *old_regs); \ + problem = TRUE; \ + } \ + good_regs++; \ + bad_regs++; \ + old_regs++; \ + } +#define test8(name) \ + { \ + if (*good_regs != *bad_regs) \ + { \ + fprintf(f, "Register %-6s: should be %08x is %08x", name, *good_regs, *bad_regs); \ + if (*bad_regs == *old_regs) \ + fprintf(f, " (did not change)\n"); \ + else \ + fprintf(f, " (previous value was %08x)\n", *old_regs); \ + problem = TRUE; \ + } \ + good_regs++; \ + bad_regs++; \ + old_regs++; \ + } + + /* The order of the items is defined by ct_get_regs() */ + test8("EIP"); + test4("CS"); + test4("DS"); + test4("ES"); + test4("SS"); + test4("TR"); + test4("LDT"); + test8("GDT_BASE"); + test8("IDT_BASE"); + test8("EAX"); + test8("EBX"); + test8("ECX"); + test8("EDX"); + test8("ESI"); + test8("EDI"); + test8("ESP"); + test8("EBP"); + test8("CR0"); + + test4("FS"); + test4("GS"); + test8("PDBR"); + test8("PFLA"); + test8("Synchs"); + test8("QevCtr"); + test8("FLAGS&"); + return (problem); +} +#endif /* CPU_40_STYLE && SYNCH_TIMERS */ + + +#define MAX_REGS ('`' - '@') +LOCAL IU32 *ct_next, *ct_last; + +LOCAL void ct_initialise IFN0() +{ +#if defined(CPU_40_STYLE) && defined(SYNCH_TIMERS) + SAVED IU32 regs_a[MAX_REGS], regs_b[MAX_REGS]; + int i; + + for (i = 0; i < MAX_REGS; i++) + { + regs_a[i] = regs_b[i] = 0; + } + ct_next = regs_b; + ct_last = regs_a; + ct_line_num = 0; +#endif /* CPU_40_STYLE && SYNCH_TIMERS */ +} + +#if defined(CPU_40_STYLE) && defined(SYNCH_TIMERS) +LOCAL void ct_make_line IFN3(char *, line, IU32 *, old, IU32 *, new) +{ + IUH diff; + int i; + + for (i = 0; i < MAX_REGS; i++, old++, new++) + { + if (*new == *old) + continue; + if (*new > *old) + { + if (i == 0) + ; /* This is the usual optimised case -- we use '\n' */ + else + *line++ = '`' + i; + diff = *new - *old; + } + else + { + *line++ = '@' + i; + diff = *old - *new; + } + while (diff) + { + /* Dump line as "human" readable pseudo-hex + * -- i.e. we dont care that this is backwards + */ + *line++ = (diff & 0xf) + '0'; + diff >>= 4; + } + } + *line++ = '\n'; + *line = '\0'; +} +#endif /* CPU_40_STYLE && SYNCH_TIMERS */ + + +/* This is the decryption algorithm for the gobblygook produced by the function + * above. Trust us, it will reconstruct the register set so they can be printed + * if an error occurs! + */ +#if defined(CPU_40_STYLE) && defined(SYNCH_TIMERS) +LOCAL void ct_read_line IFN3(char *, line, IU32 *, old, IU32 *, new) +{ + IUH diff; + int i; + + for (i = 0; i < MAX_REGS; i++, old++, new++) + { + IBOOL pos; + IUH val; /* MUST be unsigned */ + int shift; + + *new = *old; + + if ((*line == '\n') || (*line == 0)) + continue; /* All the rest are the same */ + + if ((i == 0) && ((*line - '0') <= 0xF)) + { + /* A special optimisation for the most common case IP+... */ + + pos = TRUE; + /* Point line at the imaginary '`' which was optimised + * when the line was written. + */ + line--; + } + else if (*line == ('`' + i)) + pos = TRUE; + else if (*line == ('@' + i)) + pos = FALSE; + else + continue; + + /* reverse the pseudo-hex "printing" */ + shift = 0; + diff = *++line - '0'; + while ((val = (*++line - '0')) <= 0xF) + { + shift += 4; + diff += (val << shift); + } + if (pos) + *new += diff; + else + *new -= diff; + } +} +#endif /* CPU_40_STYLE && SYNCH_TIMERS */ + + +int tpending = 0; +/* + * EOR + */ +/* + * Here it is, check_I, probably one of the most grotty, hacked around functions + * ever written. I've (Mike) made an attempt to speed it up a bit, by doing + * things like vastly reducing the number of accesses to sas (which can be + * VERY expensive on a 386, and checking whether a for loop needs executing + * before it starts (might save that variable initialisation!) + * + * Please think before you add anything that might slow it down... + */ + +#define ACCESS8 ((opcode32 & 0xff00) >> 8) + +void check_I IFN0() +{ +IU32 i, j; +LIN_ADDR addr; +BPTS *ptr; +DATA_BPTS *dptr; +half_word temp_opcode; +IU16 check_I_cs; +LIN_ADDR check_I_ip; +IU32 opcode32; +IU32 current_opcode; + + /* + * The guts of the automatic file compare + */ + +#if defined(CPU_40_STYLE) && defined(SYNCH_TIMERS) + if (compress_stream || compare_stream) + { + char buff[(MAX_REGS*(1+8))+2]; + IU32 *tmp; + + ct_line_num++; + if ((ct_line_num & 0xfffff) == 0) + { + /* Say still working every 1,000,000 instructions. */ + printf("."); + fflush(stdout); + } + if (ct_line_num <= compare_skip) + { + char junk[(MAX_REGS*(1+8))+2]; + + /* Junk the line, we wre not there yet... */ + if (fgets(junk, sizeof(junk), compare_stream) == NULL) + { + printf("End of compare file at instruction %ld.\n", ct_line_num); + fclose(compare_stream); + compare_stream = (FILE *)0; + compare_skip = 0; + force_yoda(); + } + if (ct_line_num == compare_skip) + { + char junk[(MAX_REGS*(1+8))+2]; + + /* Now set up the last from the current state. */ + ct_last[0] = GetInstructionPointer(); + ct_last[1] = getCS(); + ct_get_regs(&ct_last[2]); + printf("Compare skip point reached, checking enabled...\n"); + } + return; + } + check_I_cs = getCS(); + check_I_ip = GetInstructionPointer(); + + ct_next[0] = check_I_ip; + ct_next[1] = check_I_cs; + + ct_get_regs(&ct_next[2]); + ct_make_line(buff, ct_last, ct_next); + + if (compress_stream) + fprintf(compress_stream, "%s", buff); + if (compare_stream) + { + char from_trace[(MAX_REGS*(1+8))+2]; + + if (fgets(from_trace, sizeof(from_trace), compare_stream) == NULL) + { + printf("End of compare file at instruction %ld.\n", ct_line_num); + fclose(compare_stream); + compare_stream = (FILE *)0; + compare_skip = 0; + force_yoda(); + } + else + if (strcmp(buff, from_trace) != 0) + { + IU32 ct_fixup[MAX_REGS]; + + ct_read_line(from_trace, ct_last, ct_fixup); + + if (ct_show_reg_diffs(stdout, ct_fixup, ct_next, ct_last)) + { + printf("\nCompress trace does not match at line %ld.\n", ct_line_num); + /* Force us to agree, else we will fail all future lines! */ + ct_read_line(from_trace, ct_last, ct_next); + + fflush(compress_stream); + force_yoda(); + /* It is believed (honest guv) that there is sufficient + * information in ct_last[] and prev to "correct" the + * registers. I.e We can get into Win/E if it kills us! + * It is just necessary to copy ct_fixup to ct_next + * and stomp on the registers that differ! + */ + ct_make_line(from_trace, ct_last, ct_next); + } + } + + } + tmp = ct_next; + ct_next = ct_last; + ct_last = tmp; + if ((ct_line_num == compare_break) || (ct_line_num == compress_break)) + { + printf("\ncompare/compress instruction break encountered\n"); + fflush(compress_stream); + force_yoda(); + } + } +#endif /* CPU_40_STYLE && SYNCH_TIMERS */ + + /* + * EOR + */ + + check_I_cs = getCS(); + check_I_ip = GetInstructionPointer(); + addr = eff_addr(check_I_cs, check_I_ip); + +#ifdef PCLABS_STATS + log_stats(addr, sas_hw_at(addr), sas_hw_at(addr+1), sas_hw_at(addr+2)); + return; +#endif + + /* Lets get the next 4 bytes of code */ + + opcode32 = sas_dw_at(addr); + temp_opcode = opcode32 & 0xff; + +#ifdef NPX + if (compress_npx) { + if (((temp_opcode == 0x26 || temp_opcode == 0x2e || temp_opcode == 0x36 || temp_opcode == 0x3e) && + (ACCESS8 >= 0xd8 && ACCESS8 <= 0xdf)) || (temp_opcode >= 0xd8 && temp_opcode <= 0xdf)) + { + do_compress_npx(compress_npx); + } + } +#endif /* NPX */ + + /* + * EOR + */ + if(inst_mix_count) + add_inst_mix(); + + if (back_trace_flags) + btrace(back_trace_flags); + +#ifdef MUST_BLOCK_TIMERS + if (timer_blocked) + { + host_graphics_tick(); + } +#endif /* MUST_BLOCK_TIMERS */ + + if (head_br_regs != NULL) + { + if (check_reg_break()) + vader = 1; + } + + host_yoda_check_I_extensions(); + + if (vader) + { + force_yoda(); + vader = 0; + set_last_address(check_I_cs, check_I_ip); + return; + } + + if ((temp_opcode >= 0xE4) && (temp_opcode <= 0xEF)) { + if(temp_opcode == 0xE4 || temp_opcode == 0xE5 || temp_opcode == 0xE6 || temp_opcode == 0xE7){ + /* get port from next argument */ + for (i=0;i= 0xd8 && ACCESS8 <= 0xdf) + ) || + (temp_opcode == 0x9b) + || + (temp_opcode >= 0xd8 && temp_opcode <= 0xdf) + ) + ) + { + { + if( bNPX_stop ) + force_yoda(); + else + trace("", trace_type); + set_last_address(check_I_cs, check_I_ip); + return; + } + } + + if (opcode_break_count) { + /* + ** Check for opcode breakpoints: 8, 16, 24 or 32 bits. + */ + for (i = 0; i < opcode_break_count; i++) { + + /* + ** Check the current opcode against the set of requested break opcodes. + ** When "b286-2" mode is ON we get a bit more selective. + ** This mode breaks upon instructions that do exist on an 8088 but behave + ** differently on an 80286. + ** These opcodes are: + ** 0x54 - push sp, pushes decremented sp + ** 0xd2 and 0xd3 - shift/rotate only uses low 5 bits of shift count in CL + ** 0xf6 and 0xf7 - idiv does not cause exception if quotient 80 or 8000 + ** Attempt to break when one of these opcodes will behave differently not just when + ** they are used because there are lots and lots of shifts and rotates. + */ + + if ((opcode32 & opcode_breaks[i].mask) == opcode_breaks[i].op){ + current_opcode = opcode_breaks[i].op; + if( b286_2 ){ + /* + ** Is it a b286_2 group opcode ? + */ + switch( current_opcode ){ + case 0xd2: + case 0xd3: + /* shift/rotate */ + if( (getCL()) > 31 ){ + /* + ** either stop at yoda prompt or print out trace info + */ + if( b286_2_stop ) + force_yoda(); + else + trace("", trace_type); + set_last_address(check_I_cs, check_I_ip); + } + return; + case 0xf6: /* IDIV byte */ + if( (getAL()) == 0x80 ){ + if( b286_2_stop ) + force_yoda(); + else + trace("", trace_type); + set_last_address(check_I_cs, check_I_ip); + } + return; + case 0xf7: /* IDIV word */ + if( (getAX()) == 0x8000 ){ + if( b286_2_stop ) + force_yoda(); + else + trace("", trace_type); + set_last_address(check_I_cs, check_I_ip); + } + return; + case 0x54: /* PUSH SP */ + if( b286_2_stop ) + force_yoda(); + else + trace("", trace_type); + set_last_address(check_I_cs, check_I_ip); + return; + default: + /* + ** Was not a b286-2 instruction so carry on. + */ + break; + } /* end SWITCH */ + } + if( b286_1 ){ + switch( current_opcode ){ + case 0x60 : /* push all */ + case 0x61 : /* pop all */ + case 0x62 : /* bound */ + case 0x63 : /* arpl */ + case 0x64 : /* illegal */ + case 0x65 : /* illegal */ + case 0x66 : /* illegal */ + case 0x67 : /* illegal */ + case 0x68 : /* push imm w */ + case 0x69 : /* imul imm w */ + case 0x6a : /* push imm b */ + case 0x6b : /* imul imm b */ + case 0x6c : /* ins b */ + case 0x6d : /* ins w */ + case 0x6e : /* outs b*/ + case 0x6f : /* outs w */ + case 0xc0 : /* shift imm b */ + case 0xc1 : /* shift imm w */ + case 0xc8 : /* enter */ + case 0xc9 : /* leave */ + case 0x0f : /* protected mode prefix */ + case 0xf36c : /* rep prefix for ins and outs */ + case 0xf36d : /* rep prefix for ins and outs */ + case 0xf36e : /* rep prefix for ins and outs */ + case 0xf36f : /* rep prefix for ins and outs */ + case 0x54 : /* push sp, should not really be in this section but is rarely used */ + if( b286_2_stop ) + force_yoda(); + else + trace("", trace_type); + set_last_address(check_I_cs, check_I_ip); + return; + default: + /* + ** Was not a b286-1 instruction so carry on. + */ + break; + } /* end SWITCH */ + } +#ifdef SPC386 + if (((current_opcode & 0xffff) == 0x20cd) + && getPE() && CsIsBig(check_I_cs)) + { + IU16 service; + LIN_ADDR nextip; + char *name; + struct VMM_services *vmm_ptr; + + /* This is a Windows VMM call break */ + + nextip = GetInstructionPointer(); + nextip += dasm((char *)-1, check_I_cs, check_I_ip, 0); + service = sas_w_at(effective_addr(check_I_cs, nextip)); + for (vmm_ptr = VMM_services; vmm_ptr->name; vmm_ptr++) + { + if (vmm_ptr->value == service) + break; + } + printf("Windows VMM Call %04x %s\n", service, vmm_ptr->name); + } +#endif /* SPC386 */ + /* + ** A normal break on opcode so lets break then. + */ + if (opcode_breaks[i].stop == 1) + force_yoda(); + else + { + int dbs = disable_bkpt; + disable_bkpt = 1; + trace("", trace_type); + if (opcode_breaks[i].stop == 2) + { + LIN_ADDR nextip; + +#ifdef SPC386 + nextip = GetInstructionPointer(); + nextip += dasm((char *)-1, (word)getCS(), getEIP(), 0); +#else /* SPC386 */ + nextip = dasm((char *)-1, (word)1, (word)getCS(), (word)getIP(), (word)1); +#endif /* SPC386 */ + set_inst_break(getCS(), nextip, 1, 0, 1); + disable_timer = 0; + } + disable_bkpt = dbs; + } + set_last_address(check_I_cs, check_I_ip); + return; + } + } + } + + if (int_breakpoint && (temp_opcode == 0xCC || temp_opcode == 0xCD || temp_opcode == 0xCE)) + { + force_yoda(); + set_last_address(check_I_cs, check_I_ip); + return; + } + + if(step_count != -1) + if(step_count <= 1) { + disable_bkpt = 0; + step_count = -1; + force_yoda(); + set_last_address(check_I_cs, check_I_ip); + return; + } + else + step_count--; + + for (i=0;ivalid)) continue; + if(check_I_cs == ptr->cs && check_I_ip == ptr->ip) { + if(ptr->stop == 1) { + if (ptr->temp) + { + ptr->valid == 0; + ptr->temp == 0; + if (ptr++ == &inst[inst_break_count]) + inst_break_count--; + } + force_yoda(); + set_last_address(check_I_cs, check_I_ip); + return; + } + else { + disable_bkpt = 1; + trace("", trace_type); + disable_bkpt = 0; + set_last_address(check_I_cs, check_I_ip); + return; + } + } + } + + /* + ** Looking for change at address in HOST space over specified range. + */ + + if (host_address_break_count) { + for (i=0;iold_value[0]; + now = (IU8 *)dptr->data_addr; + if (memcmp(old, now, dptr->len) != 0) + { + for( j=0; j < dptr->len; j++ ){ + if( old[ j ] != now[ j ] ){ + printf( "host address change at %08p old:%2x new:%2x\n", + (IU8 *)((dptr->data_addr)+j), + old[ j ], + now[ j ] + ); + } + } + if(dptr->stop) { + force_yoda(); + } + else { + disable_bkpt = 1; + trace("", trace_type); + disable_bkpt = 0; + } + for( j=0; j < dptr->len; j++ ) + old[ j ] = now[ j ]; + set_last_address(check_I_cs, check_I_ip); + return; + } + } + } + + if (data_words_break_count) { + for (i=0;ilen; j++ ){ + if( dptr->old_value[ j ] != sas_w_at( dptr->data_addr + (j * 2)) ){ + printf( "Word change at %lx old:%x new:%x\n", + (LIN_ADDR)((dptr->data_addr)+(j*2)), + dptr->old_value[ j ], + sas_w_at( (dptr->data_addr)+(j*2) ) + ); + changed = TRUE; + } + } + if (changed) { + if (dptr->stop) { + force_yoda(); + } + else { + disable_bkpt = 1; + trace("", trace_type); + disable_bkpt = 0; + } + for( j=0; j < dptr->len; j++ ) + dptr->old_value[ j ] = sas_w_at( (dptr->data_addr)+(j*2) ); + set_last_address(check_I_cs, check_I_ip); + return; + } + } + } + if(verbose) + trace("Instruction Trace", trace_type); + + set_last_address(check_I_cs, check_I_ip); +#if defined(A2CPU) || defined(GISP_CPU) + if (!fast) + { + cpu_interrupt (CPU_YODA_INT, 0); + } +#endif +} + +#ifdef DELTA +void delta_check_I IFN0() +{ + delta_prompt = 1; + check_I(); + delta_prompt = 0; +} +#endif /* DELTA */ + + +void check_D IFN2(LIN_ADDR, addr, IS32, len) +{ +int i; +BPTS *ptr; + if(disable_bkpt == 1) + return; + for (i=0;iend_addr && addr >= ptr->start_addr ) || + ((addr + len) <= ptr->end_addr && (addr + len) >= ptr->start_addr ) || + (addr < ptr->start_addr && (addr + len) > ptr->end_addr )) { + printf("Mem Address : %08x+%04x b\n", addr, len); + if(ptr->stop == 1) + force_yoda(); + else { + disable_bkpt = 1; + trace("", trace_type); + disable_bkpt = 0; + } + } + } +/* for (i=0;iend_addr > addr && ptr->start_addr <= addr + len) { + printf("Mem Address : %08x+%04x w\n", addr,len); + if(ptr->stop == 1) + force_yoda(); + else { + disable_bkpt = 1; + trace("", trace_type); + disable_bkpt = 0; + } + } + }*/ +} + +LOCAL void print_inst_mix IFN1(int, key) +{ + int i /*,y*/; + +#ifndef SFELLOW + if (out_stream == NULL) + out_stream = stdout; +#endif /* !SFELLOW */ + + if (key != 0) + printf("Opcode %x has been called %d times\n", key, inst_mix[key]); + else + { + fprintf(trace_file, "Instruction Mix Dump Start:\n"); + for(i = 0; i < INST_MIX_LENGTH; i++) + if(inst_mix[i] != 0) + fprintf(trace_file, "%05x %d\n", i, inst_mix[i]); + fprintf(trace_file, "Instruction Mix Dump End:\n"); + } +} + +LOCAL void add_inst_mix IFN0() +{ + LIN_ADDR addr; + addr = eff_addr( getCS(), GetInstructionPointer() ); + inst_mix[(sas_hw_at(addr) << 8) + sas_hw_at(addr + 1)]++; +} + +LOCAL void cga_test IFN0() +{ +#ifdef SFELLOW + printf(SfNotImp); +#else /* SFELLOW */ + /* + * Write test pattern to cga + */ + + sys_addr addr; + char str[80]; + int num_it, j, bytes, mode; + char ch; + + addr = 0xb8000L; + + printf("Number of iterations: "); + gets(str); + sscanf(str,"%d", &num_it); + + if (num_it == 0) + { + reset(); + } + else + { + printf("Number of bytes per write: "); + gets(str); + sscanf(str,"%d", &bytes); + + if (bytes == 1) + { + printf("Use single byte function ? [y/n]: "); + gets(str); + sscanf(str,"%c", &ch); + + if (ch == 'Y' || ch == 'y') + mode = 0; + else + mode = 1; + } + else + mode = 1; + + setAH(0); + setAL(4); + bop(BIOS_VIDEO_IO); + + switch (mode) + { + case 0: for(j = 0; j < num_it; j++) + { + addr = 0xb8000L; + sas_fills(addr, 0, 0x4000); + addr = addr + 0x2000; + + addr = 0xb8000L; + sas_fills(addr, 0x55, 0x4000); + addr = addr + 0x2000; + + addr = 0xb8000L; + sas_fills(addr, 0xff, 0x4000); + addr = addr + 0x2000; + } + break; + case 1: for(j = 0; j < num_it; j++) + { + addr = 0xb8000L; + sas_fills(addr, 0, 0x4000); + addr = addr + 0x2000; + + addr = 0xb8000L; + sas_fills(addr, 0x55, 0x4000); + addr = addr + 0x2000; + + addr = 0xb8000L; + sas_fills(addr, 0xff, 0x4000); + addr = addr + 0x2000; + } + break; + } + } +#endif /* SFELLOW */ +} + +/* + * Back trace mode + * set up info to go into back trace cyclic buffer + * print current back trace buffer + */ + +LOCAL void do_back_trace IFN0() +{ +char ans[81]; +char file[80]; + + printf("back trace: regs, inst, code, flags, CS:IP, print, status, zero "); + +#ifdef DELTA + printf( "last_dest_addr " ); +#endif /* DELTA */ + + printf( "\n" ); + printf("Enter: r/i/c/f/C/p/s/Z/l/F ? "); + gets(ans); + switch (ans[0]) { + case 'r': back_trace_flags |= DUMP_REG; break; + case 'i': back_trace_flags |= DUMP_INST; break; + case 'c': back_trace_flags |= DUMP_CODE; break; + case 'f': back_trace_flags |= DUMP_FLAGS; break; + case 'C': back_trace_flags |= DUMP_CSIP; break; + case 'p': print_back_trace(); break; + case 's': printf("back trace flags:%x\n", back_trace_flags); + if (back_trace_flags & DUMP_REG) printf ("registers\n"); + if (back_trace_flags & DUMP_INST) printf ("instructions\n"); + if (back_trace_flags & DUMP_CODE) printf ("code\n"); + if (back_trace_flags & DUMP_FLAGS) printf ("flags\n"); + if (back_trace_flags & DUMP_CSIP) printf ("CS:IP\n"); + break; + case 'Z': back_trace_flags = 0; break; + case 'F': +#ifdef SFELLOW + printf("F option is not supported on Stringfellows.\n"); +#else /* SFELLOW */ + printf("file to be written to ? "); + gets(file); + file_back_trace(file); +#endif /* SFELLOW */ + break; + +#ifdef DELTA + case 'l': back_trace_flags |= LAST_DEST; break; +#endif /* DELTA */ + + default : printf("bad choice\n"); + } +} + +intr IFN0() +{ + /* Control-C has been typed !! */ + + vader = 1; +} + +yoda_intr IFN1(int, signo) +{ +#if defined(CPU_40_STYLE) && !defined(CCPU) + + EnterDebug("Intr"); + +#endif /* CPU_40_STYLE && !CCPU */ + +#ifndef SFELLOW + printf("Intercepted signal %d\n", signo); +#endif /* !SFELLOW */ + + if (trace_file != stdout) + printf("Output is redirected to a file\n"); + + force_yoda(); + +#if defined(CPU_40_STYLE) && !defined(CCPU) + + LeaveDebug(); + +#endif /* CPU_40_STYLE && !CCPU */ +} + +#ifdef NPX +LOCAL void do_compress_npx IFN1(FILE *, fp) +{ + int ip = eff_addr(getCS(), GetInstructionPointer() ); + int i; + extern CHAR *host_get_287_reg_as_string IPT2(int, reg_no, BOOL, in_nex); + extern ULONG get_287_sp IPT0(); + extern USHORT get_287_tag_word IPT0(); + extern ULONG get_287_status_word IPT0(); + extern ULONG get_287_control_word IPT0(); + + ULONG sw287 = get_287_status_word () | ((get_287_sp() & 0x7) << 11); + ULONG cw287 = get_287_control_word (); + ULONG tw287 = get_287_tag_word(); + + double register_287; + char buff[256]; + +#ifdef SPC386 + dasm(buff, (word)getCS(), (IU32)GetInstructionPointer(), SIXTEEN_BIT); +#else + dasm((char *)0,(word)0,(word)getCS(), (word)GetInstructionPointer(), (word)1); +#endif /* SPC386 */ + fprintf(fp,"%sc%04x s%04x t%04x", buff, cw287, sw287, tw287); + for (i=0;i<8;i++) + fprintf(fp," %s", host_get_287_reg_as_string(i, FALSE)); + fprintf(fp,"\n"); +} +#endif /* NPX */ + +GLOBAL void da_block IFN3(IU16, cs, LIN_ADDR, ip, LIN_ADDR, len) +{ + LIN_ADDR loop, loop1; + half_word ch; + LIN_ADDR addr; + + if ((len == 0) || (len == YODA_LEN_UNSPECIFIED)) { + len=0x100; + if ((cs==0) && (ip==0)) { + cs=last_da_cs; + ip=last_da_ip; + } + } + addr = eff_addr(cs,ip); + if (len >= 16) { + for (loop=0; loop<=(len-16); loop+=16) { + if (loop != len) { + fprintf(trace_file,"%04x:%04x ",cs,ip+loop); + } + for (loop1=0;loop1<16;loop1++) { + fprintf(trace_file,"%02x ",sas_hw_at(addr+loop+loop1)); + } + fprintf(trace_file," "); + for (loop1=0;loop1<16;loop1++) { + ch=sas_hw_at(addr+loop+loop1); + if ((ch < 32) || (ch >127)) { + fprintf(trace_file,"."); + } else { + fprintf(trace_file,"%c",ch); + } + } + if ((loop+16)0) { + fprintf(trace_file,"%04x:%04x ",cs,ip); + for (loop=0;loop127)) { + fprintf(trace_file,"."); + } else { + fprintf(trace_file,"%c",ch); + } + } + } + fprintf(trace_file,"\n"); + ip += len; + if (ip & 0xf0000L) { + cs += ((ip & 0xf0000L)>>4); + ip &= 0xffff; + } + cs &= 0xffff; + last_da_cs=cs; + last_da_ip=ip; +} +#endif /* nPROD */ + + +/*----------------------------------------------------------------------*/ +/* PCLABS STATS */ +/*----------------------------------------------------------------------*/ +#ifdef PCLABS_STATS + +#define N 0 +#define Y 1 + +LOCAL UTINY single_byte_instruction[256] = { +/* 0 */ N,N,N,N, Y,Y,Y,Y, N,N,N,N, Y,Y,Y,N, +/* 1 */ N,N,N,N, Y,Y,Y,Y, N,N,N,N, Y,Y,Y,Y, +/* 2 */ N,N,N,N, Y,Y,Y,Y, N,N,N,N, Y,Y,Y,Y, +/* 3 */ N,N,N,N, Y,Y,Y,Y, N,N,N,N, Y,Y,Y,Y, + +/* 4 */ Y,Y,Y,Y, Y,Y,Y,Y, Y,Y,Y,Y, Y,Y,Y,Y, +/* 5 */ Y,Y,Y,Y, Y,Y,Y,Y, Y,Y,Y,Y, Y,Y,Y,Y, +/* 6 */ Y,Y,Y,Y, Y,Y,Y,Y, Y,Y,Y,Y, Y,Y,Y,Y, +/* 7 */ Y,Y,Y,Y, Y,Y,Y,Y, Y,Y,Y,Y, Y,Y,Y,Y, + +/* 8 */ N,N,N,N, N,N,N,N, N,N,N,N, N,N,N,N, +/* 9 */ Y,Y,Y,Y, Y,Y,Y,Y, Y,Y,Y,Y, Y,Y,Y,Y, +/* A */ Y,Y,Y,Y, Y,Y,Y,Y, Y,Y,Y,Y, Y,Y,Y,Y, +/* B */ Y,Y,Y,Y, Y,Y,Y,Y, Y,Y,Y,Y, Y,Y,Y,Y, + +/* C */ Y,Y,Y,Y, N,N,N,N, Y,Y,Y,Y, Y,Y,Y,Y, +/* D */ N,N,N,N, Y,Y,Y,Y, N,N,N,N, N,N,N,N, +/* E */ Y,Y,Y,Y, Y,Y,Y,Y, Y,Y,Y,Y, Y,Y,Y,Y, +/* F */ Y,Y,Y,Y, Y,Y,N,N, Y,Y,Y,Y, Y,Y,N,N }; + +FILE *stats_file; + +LOCAL ULONG instr_counts[0x10000]; +LOCAL ULONG zerof_instr_counts[0x10000]; + +LOCAL ULONG es_prefixes; +LOCAL ULONG ss_prefixes; +LOCAL ULONG ds_prefixes; +LOCAL ULONG cs_prefixes; +LOCAL ULONG rep_prefixes; +LOCAL ULONG repe_prefixes; +LOCAL ULONG lock_prefixes; + +LOCAL BOOL was_a_conditional_jump; +LOCAL BOOL was_a_0f; +LOCAL ULONG previous_addr; +LOCAL ULONG previous_index; + + +LOCAL BOOL is_it_a_conditional_jump IFN1(ULONG, b1) +{ + if (b1 >= 0x70 && b1 <= 0x7f) + return (TRUE); + if (b1 >= 0xe0 && b1 <= 0xe3) + return (TRUE); + return (FALSE); +} + + +LOCAL log_stats IFN4(LIN_ADDR, addr, ULONG, b1, ULONG, b2, ULONG, b3) +{ + BOOL is_a_conditional_jump, is_a_0f; + ULONG index; + + addr = getCS_BASE() + GetInstructionPointer(); + + b1 &= 0xff; + b2 &= 0xff; + b3 &= 0xff; + + /* determine instruction key */ + /* ------------------------- */ + + is_a_0f = FALSE; + if (b1 == 0x0f) + { + /* 0f case */ + /* ------- */ + + is_a_0f = TRUE; + is_a_conditional_jump = FALSE; + index = (b2 << 8) | b3; + } + else if (b1 == 0x26 || b1 == 0x36 || b1 == 0x2E || b1 == 0x3E || + b1 == 0xF2 || b1 == 0xF3 || b1 == 0xF0) + { + /* prefix case */ + /* ----------- */ + + is_a_conditional_jump = is_it_a_conditional_jump(b2); + if (single_byte_instruction[b2]) + index = b2 << 8; + else + index = (b2 << 8) | b3; + switch (b1) + { + case 0x26: + es_prefixes++; + break; + + case 0x36: + ss_prefixes++; + break; + + case 0x2E: + ds_prefixes++; + break; + + case 0x3E: + cs_prefixes++; + break; + + case 0xF2: + rep_prefixes++; + break; + + case 0xF3: + repe_prefixes++; + break; + + case 0xF0: + lock_prefixes++; + break; + } + } + else + { + /* non prefix case */ + /* --------------- */ + + is_a_conditional_jump = is_it_a_conditional_jump(b1); + if (single_byte_instruction[b1]) + index = b1 << 8; + else + index = (b1 << 8) | b2; + } + + if (was_a_conditional_jump) + { + if (addr != (previous_addr + 2)) + previous_index++; + } + if (was_a_0f) + zerof_instr_counts[previous_index]++; + else + instr_counts[previous_index]++; + previous_index = index; + previous_addr = addr; + was_a_conditional_jump = is_a_conditional_jump; + was_a_0f = is_a_0f; +} + + +LOCAL clear_stats IFN0() +{ + ULONG i; + for (i = 0; i < 0x10000; i++) + { + instr_counts[i] = 0; + zerof_instr_counts[i] = 0; + } + + es_prefixes = 0; + ss_prefixes = 0; + ds_prefixes = 0; + cs_prefixes = 0; + rep_prefixes = 0; + repe_prefixes = 0; + lock_prefixes = 0; + was_a_conditional_jump = FALSE; + was_a_0f = FALSE; +} + + +struct DISPLAY_COMMAND { + ULONG command; + ULONG from; + ULONG to; + ULONG number; + char *string; + char *group; +}; + +LOCAL char *previous_group; + +#define RANGE 1 +#define LOCK 2 +#define REPNZ 3 +#define REP 4 +#define SELMEM 5 +#define SELREG 6 +#define POINT 7 +#define ALLMEM 8 +#define ALLREG 9 +#define ALL 10 +#define SEL5 11 +#define ES_PREFIX 12 +#define CS_PREFIX 13 +#define SS_PREFIX 14 +#define DS_PREFIX 15 +#define USE_NORMAL 16 +#define USE_ZEROF 17 +#define SELALL 18 +#define FPINVALID 19 + +LOCAL struct DISPLAY_COMMAND commands[] = { + + POINT, 0x7001, 0, 112, "JO_Ib", "jcc_Taken", + POINT, 0x7101, 0, 113, "JNO_Ib", "jcc_Taken", + POINT, 0x7201, 0, 114, "JC_Ib", "jcc_Taken", + POINT, 0x7301, 0, 115, "JNC_Ib", "jcc_Taken", + POINT, 0x7401, 0, 116, "JZ_Ib", "jcc_Taken", + POINT, 0x7501, 0, 117, "JNZ_Ib", "jcc_Taken", + POINT, 0x7601, 0, 118, "JBE_Ib", "jcc_Taken", + POINT, 0x7701, 0, 119, "JNBE_Ib", "jcc_Taken", + POINT, 0x7801, 0, 120, "JS_Ib", "jcc_Taken", + POINT, 0x7901, 0, 121, "JNS_Ib", "jcc_Taken", + POINT, 0x7A01, 0, 122, "JP_Ib", "jcc_Taken", + POINT, 0x7B01, 0, 123, "JNP_Ib", "jcc_Taken", + POINT, 0x7C01, 0, 124, "JL_Ib", "jcc_Taken", + POINT, 0x7D01, 0, 125, "JNL_Ib", "jcc_Taken", + POINT, 0x7E01, 0, 126, "JLE_Ib", "jcc_Taken", + POINT, 0x7F01, 0, 127, "JNLE_Ib", "jcc_Taken", + LOCK, 0, 0, 240, "LOCK_prefix", "jcc_Taken", + REPNZ, 0, 0, 242, "REPNZ_prefix", "jcc_Taken", + REP, 0, 0, 243, "REP_prefix", "jcc_Taken", + + POINT, 0x7000, 0x7000, 112, "JO_Ib", "jcc_Ntaken", + POINT, 0x7100, 0x7100, 113, "JNO_Ib", "jcc_Ntaken", + POINT, 0x7200, 0x7200, 114, "JC_Ib", "jcc_Ntaken", + POINT, 0x7300, 0x7300, 115, "JNC_Ib", "jcc_Ntaken", + POINT, 0x7400, 0x7400, 116, "JZ_Ib", "jcc_Ntaken", + POINT, 0x7500, 0x7500, 117, "JNZ_Ib", "jcc_Ntaken", + POINT, 0x7600, 0x7600, 118, "JBE_Ib", "jcc_Ntaken", + POINT, 0x7700, 0x7700, 119, "JNBE_Ib", "jcc_Ntaken", + POINT, 0x7800, 0x7800, 120, "JS_Ib", "jcc_Ntaken", + POINT, 0x7900, 0x7900, 121, "JNS_Ib", "jcc_Ntaken", + POINT, 0x7A00, 0x7A00, 122, "JP_Ib", "jcc_Ntaken", + POINT, 0x7B00, 0x7B00, 123, "JNP_Ib", "jcc_Ntaken", + POINT, 0x7C00, 0x7C00, 124, "JL_Ib", "jcc_Ntaken", + POINT, 0x7D00, 0x7D00, 125, "JNL_Ib", "jcc_Ntaken", + POINT, 0x7E00, 0x7E00, 126, "JLE_Ib", "jcc_Ntaken", + POINT, 0x7F00, 0x7F00, 127, "JNLE_Ib", "jcc_Ntaken", + + POINT, 0xE900, 0xE900, 233, "JMPn_Iw", "jump", + POINT, 0xEB00, 0xEB00, 235, "JMPn_Ib", "jump", + + SELMEM, 0xFF00, 0x20, 660, "JMPn_EA", "jump_in", + SELREG, 0xFF00, 0x20, 660, "JMPn_EA", "jump_in_r", + POINT, 0xE800, 0, 232, "CALLn_Iw", "call", + SELMEM, 0xFF00, 0x10, 658, "CALLn_EA", "call_in", + SELREG, 0xFF00, 0x10, 658, "CALLn_EA", "call_in_r", + POINT, 0xC200, 0, 194, "RET_Is", "ret", + POINT, 0xC300, 0, 195, "RETn", "ret", + + POINT, 0xE001, 0, 224, "LOOPNZb_Ib", "loop/jcx_Taken", + POINT, 0xE101, 0, 225, "LOOPNb_Ib", "loop/jcx_Taken", + POINT, 0xE201, 0, 226, "LOOP_Ib", "loop/jcx_Taken", + POINT, 0xE301, 0, 227, "JCXZb_Ib", "loop/jcx_Taken", + + POINT, 0xE000, 0, 224, "LOOPNZb_Ib", "loop/jcx_NTaken", + POINT, 0xE100, 0, 225, "LOOPNb_Ib", "loop/jcx_NTaken", + POINT, 0xE200, 0, 226, "LOOP_Ib", "loop/jcx_NTaken", + POINT, 0xE300, 0, 227, "JCXZb_Ib", "loop/jcx_NTaken", + + ALLMEM, 0x8800, 0, 136, "MOVb_R_EA", "mov_r,m", + ALLMEM, 0x8900, 0, 137, "MOVw_R_EA", "mov_r,m", + POINT, 0xA200, 0, 162, "MOVb_AL_EA", "mov_r,m", + POINT, 0xA300, 0, 163, "MOVb_AX_EA", "mov_r,m", + + ALLREG, 0x8600, 0, 134, "XCHGb_EA_R", "mov_r,r", + ALLREG, 0x8700, 0, 135, "XCHGw_EA_R", "mov_r,r", + ALLREG, 0x8800, 0, 136, "MOVb_R_EA", "mov_r,r", + ALLREG, 0x8900, 0, 137, "MOVw_R_EA", "mov_r,r", + ALLREG, 0x8A00, 0, 138, "MOVb_EA_R", "mov_r,r", + ALLREG, 0x8B00, 0, 139, "MOVw_EA_R", "mov_r,r", + POINT, 0x9100, 0, 145, "XCHG_CX_AX", "mov_r,r", + POINT, 0x9200, 0, 146, "XCHG_DX_AX", "mov_r,r", + POINT, 0x9300, 0, 147, "XCHG_BX_AX", "mov_r,r", + POINT, 0x9400, 0, 148, "XCHG_SP_AX", "mov_r,r", + POINT, 0x9500, 0, 149, "XCHG_BP_AX", "mov_r,r", + POINT, 0x9600, 0, 150, "XCHG_SI_AX", "mov_r,r", + POINT, 0x9700, 0, 151, "XCHG_DI_AX", "mov_r,r", + + ALLMEM, 0x8600, 0, 134, "XCHGb_EA_R", "mov_m,r", + ALLMEM, 0x8700, 0, 135, "XCHGw_EA_R", "mov_m,r", + ALLMEM, 0x8A00, 0, 138, "MOVb_EA_R", "mov_m,r", + ALLMEM, 0x8B00, 0, 139, "MOVw_EA_R", "mov_m,r", + POINT, 0xA000, 0, 160, "MOVb_EA_AL", "mov_m,r", + POINT, 0xA100, 0, 161, "MOVw_EA_AX", "mov_m,r", + + POINT, 0xB000, 0, 176, "MOVb_Ib_AL", "mov_i,r", + POINT, 0xB100, 0, 177, "MOVb_Ib_CL", "mov_i,r", + POINT, 0xB200, 0, 178, "MOVb_Ib_DL", "mov_i,r", + POINT, 0xB300, 0, 179, "MOVb_Ib_BL", "mov_i,r", + POINT, 0xB400, 0, 180, "MOVb_Ib_AH", "mov_i,r", + POINT, 0xB500, 0, 181, "MOVb_Ib_CH", "mov_i,r", + POINT, 0xB600, 0, 182, "MOVb_Ib_DH", "mov_i,r", + POINT, 0xB700, 0, 183, "MOVb_Ib_BH", "mov_i,r", + POINT, 0xB800, 0, 184, "MOVw_Iw_AX", "mov_i,r", + POINT, 0xB900, 0, 185, "MOVw_Iw_CX", "mov_i,r", + POINT, 0xBA00, 0, 186, "MOVw_Iw_DX", "mov_i,r", + POINT, 0xBB00, 0, 187, "MOVw_Iw_BX", "mov_i,r", + POINT, 0xBC00, 0, 188, "MOVw_Iw_SP", "mov_i,r", + POINT, 0xBD00, 0, 189, "MOVw_Iw_BP", "mov_i,r", + POINT, 0xBE00, 0, 190, "MOVw_Iw_SI", "mov_i,r", + POINT, 0xBF00, 0, 191, "MOVw_Iw_DI", "mov_i,r", + SELREG, 0xC600, 0, 198, "MOVb_Ib_EA", "mov_i,r", + SELREG, 0xC700, 0, 199, "MOVw_Iw_EA", "mov_i,r", + + SELMEM, 0xC600, 0, 198, "MOVb_Ib_EA", "mov_i,m", + SELMEM, 0xC700, 0, 199, "MOVw_Iw_EA", "mov_i,m", + + POINT, 0x5000, 0, 80, "PUSHw_AX", "push_r", + POINT, 0x5100, 0, 81, "PUSHw_CX", "push_r", + POINT, 0x5200, 0, 82, "PUSHw_DX", "push_r", + POINT, 0x5300, 0, 83, "PUSHw_BX", "push_r", + POINT, 0x5400, 0, 84, "PUSHw_SP", "push_r", + POINT, 0x5500, 0, 85, "PUSHw_BP", "push_r", + POINT, 0x5600, 0, 86, "PUSHw_SI", "push_r", + POINT, 0x5700, 0, 87, "PUSHw_DI", "push_r", + SELREG, 0xFF00, 0x30, 662, "PUSHw_EA", "push_r", + + SELMEM, 0xFF00, 0x30, 662, "PUSHw_EA", "push_m", + + POINT, 0x6800, 0, 104, "PUSHw_Iw", "push_i", + POINT, 0x6A00, 0, 106, "PUSHb_Ib", "push_i", + + POINT, 0x5800, 0, 88, "POPw_AX", "pop_r", + POINT, 0x5900, 0, 89, "POPw_CX", "pop_r", + POINT, 0x5A00, 0, 90, "POPw_DX", "pop_r", + POINT, 0x5B00, 0, 91, "POPw_BX", "pop_r", + POINT, 0x5C00, 0, 92, "POPw_SP", "pop_r", + POINT, 0x5D00, 0, 93, "POPw_BP", "pop_r", + POINT, 0x5E00, 0, 94, "POPw_SI", "pop_r", + POINT, 0x5F00, 0, 95, "POPw_DI", "pop_r", + SELREG, 0x8F00, 0x0, 143, "POPw_EA", "pop_r", + + SELMEM, 0x8F00, 0x0, 143, "POPw_EA", "pop_m", + + ALLMEM, 0x3800, 0, 56, "CMPb_R_EA", "cmp_m,r", + ALLMEM, 0x3900, 0, 57, "CMPw_R_EA", "cmp_m,r", + ALLMEM, 0x3A00, 0, 58, "CMPb_EA_R", "cmp_m,r", + ALLMEM, 0x3B00, 0, 59, "CMPw_EA_R", "cmp_m,r", + ALLMEM, 0x8400, 0, 132, "TESTb_R_EA", "cmp_m,r", + ALLMEM, 0x8500, 0, 133, "TESTw_R_EA", "cmp_m,r", + + ALLREG, 0x3800, 0, 56, "CMPb_R_EA", "cmp_r,r", + ALLREG, 0x3900, 0, 57, "CMPw_R_EA", "cmp_r,r", + ALLREG, 0x3A00, 0, 58, "CMPb_EA_R", "cmp_r,r", + ALLREG, 0x3B00, 0, 59, "CMPw_EA_R", "cmp_r,r", + ALLREG, 0x8400, 0, 132, "TESTb_R_EA", "cmp_r,r", + ALLREG, 0x8500, 0, 133, "TESTw_R_EA", "cmp_r,r", + + POINT, 0x3C00, 0, 60, "CMPb_Ib_AL", "cmp_i,r", + POINT, 0x3D00, 0, 61, "CMPw_Iw_AX", "cmp_i,r", + POINT, 0xA800, 0, 168, "TESTb_Ib_AL", "cmp_i,r", + POINT, 0xA900, 0, 169, "TESTw_Iw_AX", "cmp_i,r", + SELREG, 0x8000, 0x38, 519, "CMPb_Ib_EA", "cmp_i,r", + SELREG, 0x8100, 0x38, 527, "CMPw_Iw_EA", "cmp_i,r", + SELREG, 0x8300, 0x38, 543, "CMPw_Ib_EA", "cmp_i,r", + SELREG, 0xF600, 0x0, 632, "TESTb_Ib_EA", "cmp_i,r", + SELREG, 0xF700, 0x0, 640, "TESTw_Iw_EA", "cmp_i,r", + + SELMEM, 0x8000, 0x38, 519, "CMPb_Ib_EA", "cmp_i,m", + SELMEM, 0x8100, 0x38, 527, "CMPw_Iw_EA", "cmp_i,m", + SELMEM, 0x8300, 0x38, 543, "CMPw_Ib_EA", "cmp_i,m", + SELMEM, 0xF600, 0x0, 632, "TESTb_Ib_EA", "cmp_i,m", + SELMEM, 0xF700, 0x0, 640, "TESTw_Iw_EA", "cmp_i,m", + + ALLMEM, 0x0200, 0, 2, "ADDb_EA_R", "alu_m,r", + ALLMEM, 0x0300, 0, 3, "ADDw_EA_R", "alu_m,r", + ALLMEM, 0x0A00, 0, 10, "ORb_EA_R", "alu_m,r", + ALLMEM, 0x0B00, 0, 11, "ORw_EA_R", "alu_m,r", + ALLMEM, 0x1200, 0, 18, "ADCb_EA_R", "alu_m,r", + ALLMEM, 0x1300, 0, 19, "ADCw_EA_R", "alu_m,r", + ALLMEM, 0x1A00, 0, 26, "SBBb_EA_R", "alu_m,r", + ALLMEM, 0x1B00, 0, 27, "SBBw_EA_R", "alu_m,r", + ALLMEM, 0x2200, 0, 34, "ANDb_EA_R", "alu_m,r", + ALLMEM, 0x2300, 0, 35, "ANDw_EA_R", "alu_m,r", + ALLMEM, 0x2A00, 0, 42, "SUBb_EA_R", "alu_m,r", + ALLMEM, 0x2B00, 0, 43, "SUBw_EA_R", "alu_m,r", + ALLMEM, 0x3200, 0, 50, "XORb_EA_R", "alu_m,r", + ALLMEM, 0x3300, 0, 51, "XORw_EA_R", "alu_m,r", + + ALLREG, 0x0000, 0, 0, "ADDb_R_EA", "alu_r,r", + ALLREG, 0x0100, 0, 1, "ADDw_R_EA", "alu_r,r", + ALLREG, 0x0200, 0, 2, "ADDb_EA_R", "alu_r,r", + ALLREG, 0x0300, 0, 3, "ADDw_EA_R", "alu_r,r", + ALLREG, 0x0800, 0, 8, "ORb_R_EA", "alu_r,r", + ALLREG, 0x0900, 0, 9, "ORw_R_EA", "alu_r,r", + ALLREG, 0x0A00, 0, 10, "ORb_EA_R", "alu_r,r", + ALLREG, 0x0B00, 0, 11, "ORw_EA_R", "alu_r,r", + ALLREG, 0x1000, 0, 16, "ADCb_R_EA", "alu_r,r", + ALLREG, 0x1100, 0, 17, "ADCw_R_EA", "alu_r,r", + ALLREG, 0x1200, 0, 18, "ADCb_EA_R", "alu_r,r", + ALLREG, 0x1300, 0, 19, "ADCw_EA_R", "alu_r,r", + ALLREG, 0x1800, 0, 24, "SBBb_R_EA", "alu_r,r", + ALLREG, 0x1900, 0, 25, "SBBw_R_EA", "alu_r,r", + ALLREG, 0x1A00, 0, 26, "SBBb_EA_R", "alu_r,r", + ALLREG, 0x1B00, 0, 27, "SBBw_EA_R", "alu_r,r", + ALLREG, 0x2000, 0, 32, "ANDb_R_EA", "alu_r,r", + ALLREG, 0x2100, 0, 33, "ANDw_R_EA", "alu_r,r", + ALLREG, 0x2200, 0, 34, "ANDb_EA_R", "alu_r,r", + ALLREG, 0x2300, 0, 35, "ANDw_EA_R", "alu_r,r", + ALLREG, 0x2800, 0, 40, "SUBb_R_EA", "alu_r,r", + ALLREG, 0x2900, 0, 41, "SUBw_R_EA", "alu_r,r", + ALLREG, 0x2A00, 0, 42, "SUBb_EA_R", "alu_r,r", + ALLREG, 0x2B00, 0, 43, "SUBw_EA_R", "alu_r,r", + ALLREG, 0x3000, 0, 48, "XORb_R_EA", "alu_r,r", + ALLREG, 0x3100, 0, 49, "XORw_R_EA", "alu_r,r", + ALLREG, 0x3200, 0, 50, "XORb_EA_R", "alu_r,r", + ALLREG, 0x3300, 0, 51, "XORw_EA_R", "alu_r,r", + + ALLMEM, 0x0000, 0, 0, "ADDb_R_EA", "alu_r,m", + ALLMEM, 0x0100, 0, 1, "ADDw_R_EA", "alu_r,m", + ALLMEM, 0x0800, 0, 8, "ORb_R_EA", "alu_r,m", + ALLMEM, 0x0900, 0, 9, "ORw_R_EA", "alu_r,m", + ALLMEM, 0x1000, 0, 16, "ADCb_R_EA", "alu_r,m", + ALLMEM, 0x1100, 0, 17, "ADCw_R_EA", "alu_r,m", + ALLMEM, 0x1800, 0, 24, "SBBb_R_EA", "alu_r,m", + ALLMEM, 0x1900, 0, 25, "SBBw_R_EA", "alu_r,m", + ALLMEM, 0x2000, 0, 32, "ANDb_R_EA", "alu_r,m", + ALLMEM, 0x2100, 0, 33, "ANDw_R_EA", "alu_r,m", + ALLMEM, 0x2800, 0, 40, "SUBb_R_EA", "alu_r,m", + ALLMEM, 0x2900, 0, 41, "SUBw_R_EA", "alu_r,m", + ALLMEM, 0x3000, 0, 48, "XORb_R_EA", "alu_r,m", + ALLMEM, 0x3100, 0, 49, "XORw_R_EA", "alu_r,m", + + POINT, 0x0400, 0, 4, "ADDb_Ib_AL", "alu_i,r", + POINT, 0x0500, 0, 5, "ADDw_Iw_AX", "alu_i,r", + POINT, 0x0C00, 0, 12, "ORb_Ib_AL", "alu_i,r", + POINT, 0x0D00, 0, 13, "ORw_Iw_AX", "alu_i,r", + POINT, 0x1400, 0, 20, "ADCb_Ib_AL", "alu_i,r", + POINT, 0x1500, 0, 21, "ADCw_Iw_AX", "alu_i,r", + POINT, 0x1C00, 0, 28, "SBBb_Ib_AL", "alu_i,r", + POINT, 0x1D00, 0, 29, "SBBw_Iw_AX", "alu_i,r", + POINT, 0x2400, 0, 36, "ANDb_Ib_AL", "alu_i,r", + POINT, 0x2500, 0, 37, "ANDw_Iw_AX", "alu_i,r", + POINT, 0x2C00, 0, 44, "SUBb_Ib_AL", "alu_i,r", + POINT, 0x2D00, 0, 45, "SUBw_Iw_AX", "alu_i,r", + POINT, 0x3400, 0, 52, "XORb_Ib_AL", "alu_i,r", + POINT, 0x3500, 0, 53, "XORw_Iw_AX", "alu_i,r", + SELREG, 0x8000, 0x0, 512, "ADDb_Ib_EA", "alu_i,r", + SELREG, 0x8000, 0x8, 513, "ORb_Ib_EA", "alu_i,r", + SELREG, 0x8000, 0x10, 514, "ADCb_Ib_EA", "alu_i,r", + SELREG, 0x8000, 0x18, 515, "SBBb_Ib_EA", "alu_i,r", + SELREG, 0x8000, 0x20, 516, "ANDb_Ib_EA", "alu_i,r", + SELREG, 0x8000, 0x28, 517, "SUBb_Ib_EA", "alu_i,r", + SELREG, 0x8000, 0x30, 518, "XORb_Ib_EA", "alu_i,r", + SELREG, 0x8100, 0x0, 520, "ADDw_Iw_EA", "alu_i,r", + SELREG, 0x8100, 0x8, 521, "ORw_Iw_EA", "alu_i,r", + SELREG, 0x8100, 0x10, 522, "ADCw_Iw_EA", "alu_i,r", + SELREG, 0x8100, 0x18, 523, "SBBw_Iw_EA", "alu_i,r", + SELREG, 0x8100, 0x20, 524, "ANDw_Iw_EA", "alu_i,r", + SELREG, 0x8100, 0x28, 525, "SUBw_Iw_EA", "alu_i,r", + SELREG, 0x8100, 0x30, 526, "XORw_Iw_EA", "alu_i,r", + SELREG, 0x8300, 0x0, 536, "ADDw_Ib_EA", "alu_i,r", + SELREG, 0x8300, 0x8, 537, "ORw_Ib_EA", "alu_i,r", + SELREG, 0x8300, 0x10, 538, "ADCw_Ib_EA", "alu_i,r", + SELREG, 0x8300, 0x18, 539, "SBBw_Ib_EA", "alu_i,r", + SELREG, 0x8300, 0x20, 540, "ANDw_Ib_EA", "alu_i,r", + SELREG, 0x8300, 0x28, 541, "SUBw_Ib_EA", "alu_i,r", + SELREG, 0x8300, 0x30, 542, "XORw_Ib_EA", "alu_i,r", + + SELMEM, 0x8000, 0x0, 512, "ADDb_Ib_EA", "alu_i,m", + SELMEM, 0x8000, 0x8, 513, "ORb_Ib_EA", "alu_i,m", + SELMEM, 0x8000, 0x10, 514, "ADCb_Ib_EA", "alu_i,m", + SELMEM, 0x8000, 0x18, 515, "SBBb_Ib_EA", "alu_i,m", + SELMEM, 0x8000, 0x20, 516, "ANDb_Ib_EA", "alu_i,m", + SELMEM, 0x8000, 0x28, 517, "SUBb_Ib_EA", "alu_i,m", + SELMEM, 0x8000, 0x30, 518, "XORb_Ib_EA", "alu_i,m", + SELMEM, 0x8100, 0x0, 520, "ADDw_Iw_EA", "alu_i,m", + SELMEM, 0x8100, 0x8, 521, "ORw_Iw_EA", "alu_i,m", + SELMEM, 0x8100, 0x10, 522, "ADCw_Iw_EA", "alu_i,m", + SELMEM, 0x8100, 0x18, 523, "SBBw_Iw_EA", "alu_i,m", + SELMEM, 0x8100, 0x20, 524, "ANDw_Iw_EA", "alu_i,m", + SELMEM, 0x8100, 0x28, 525, "SUBw_Iw_EA", "alu_i,m", + SELMEM, 0x8100, 0x30, 526, "XORw_Iw_EA", "alu_i,m", + SELMEM, 0x8300, 0x0, 536, "ADDw_Ib_EA", "alu_i,m", + SELMEM, 0x8300, 0x8, 537, "ORw_Ib_EA", "alu_i,m", + SELMEM, 0x8300, 0x10, 538, "ADCw_Ib_EA", "alu_i,m", + SELMEM, 0x8300, 0x18, 539, "SBBw_Ib_EA", "alu_i,m", + SELMEM, 0x8300, 0x20, 540, "ANDw_Ib_EA", "alu_i,m", + SELMEM, 0x8300, 0x28, 541, "SUBw_Ib_EA", "alu_i,m", + SELMEM, 0x8300, 0x30, 542, "XORw_Ib_EA", "alu_i,m", + + POINT, 0x4000, 0, 64, "INCw_AX", "alu_r", + POINT, 0x4100, 0, 65, "INCw_CX", "alu_r", + POINT, 0x4200, 0, 66, "INCw_DX", "alu_r", + POINT, 0x4300, 0, 67, "INCw_BX", "alu_r", + POINT, 0x4400, 0, 68, "INCw_SP", "alu_r", + POINT, 0x4500, 0, 69, "INCw_BP", "alu_r", + POINT, 0x4600, 0, 70, "INCw_SI", "alu_r", + POINT, 0x4700, 0, 71, "INCw_DI", "alu_r", + POINT, 0x4800, 0, 72, "DECw_AX", "alu_r", + POINT, 0x4900, 0, 73, "DECw_CX", "alu_r", + POINT, 0x4A00, 0, 74, "DECw_DX", "alu_r", + POINT, 0x4B00, 0, 75, "DECw_BX", "alu_r", + POINT, 0x4C00, 0, 76, "DECw_SP", "alu_r", + POINT, 0x4D00, 0, 77, "DECw_BP", "alu_r", + POINT, 0x4E00, 0, 78, "DECw_SI", "alu_r", + POINT, 0x4F00, 0, 79, "DECw_DI", "alu_r", + POINT, 0x9800, 0, 152, "CBW", "alu_r", + POINT, 0x9900, 0, 153, "CBD", "alu_r", + SELREG, 0xF600, 0x10, 634, "NOTb_EA", "alu_r", + SELREG, 0xF600, 0x18, 635, "NEGb_EA", "alu_r", + SELREG, 0xF700, 0x10, 642, "NOTw_EA", "alu_r", + SELREG, 0xF700, 0x18, 643, "NEGw_EA", "alu_r", + SELREG, 0xFE00, 0x0, 648, "INCb_EA", "alu_r", + SELREG, 0xFE00, 0x8, 649, "DECb_EA", "alu_r", + SELREG, 0xFF00, 0x0, 656, "INCw_EA", "alu_r", + SELREG, 0xFF00, 0x8, 657, "DECw_EA", "alu_r", + + SELMEM, 0xF600, 0x10, 634, "NOTb_EA", "alu_m", + SELMEM, 0xF600, 0x18, 635, "NEGb_EA", "alu_m", + SELMEM, 0xF700, 0x10, 642, "NOTw_EA", "alu_m", + SELMEM, 0xF700, 0x18, 643, "NEGw_EA", "alu_m", + SELMEM, 0xFE00, 0x0, 648, "INCb_EA", "alu_m", + SELMEM, 0xFE00, 0x8, 649, "DECb_EA", "alu_m", + SELMEM, 0xFF00, 0x0, 656, "INCw_EA", "alu_m", + SELMEM, 0xFF00, 0x8, 657, "DECw_EA", "alu_m", + + ALL, 0x8D00, 0, 141, "LEAw_EA_R", "lea", + + POINT, 0x9000, 0, 144, "NOP", "nop", + + ALL, 0x6900, 0, 105, "IMULw_EA_Iw_R","mul", + ALL, 0x6B00, 0, 107, "IMULb_EA_Ib_R","mul", + SELALL, 0xF600, 0x20, 636, "MULb_EA", "mul", + SELALL, 0xF600, 0x28, 637, "IMULb_EA", "mul", + SELALL, 0xF700, 0x20, 644, "MULw_EA", "mul", + SELALL, 0xF700, 0x28, 645, "IMULw_EA", "mul", + + SELALL, 0xF600, 0x30, 638, "DIVb_EA", "div", + SELALL, 0xF600, 0x38, 639, "IDIVb_EA", "div", + SELALL, 0xF700, 0x30, 646, "DIVw_EA", "div", + SELALL, 0xF700, 0x38, 647, "IDIVw_EA", "div", + + POINT, 0x2700, 0, 39, "DAA", "ascii/dec", + POINT, 0x2F00, 0, 47, "DAS", "ascii/dec", + POINT, 0x3700, 0, 55, "AAA", "ascii/dec", + POINT, 0x3F00, 0, 63, "AAS", "ascii/dec", + POINT, 0xD400, 0, 212, "AAM", "ascii/dec", + POINT, 0xD500, 0, 213, "AAD", "ascii/dec", + + SELALL, 0xD000, 0x00, 600, "ROLb_1_EA", "sh_rot_1", + SELALL, 0xD000, 0x08, 601, "RORb_1_EA", "sh_rot_1", + SELALL, 0xD000, 0x20, 604, "SHLb_1_EA", "sh_rot_1", + SELALL, 0xD000, 0x28, 605, "SHRb_1_EA", "sh_rot_1", + SELALL, 0xD000, 0x38, 607, "SARb_1_EA", "sh_rot_1", + SELALL, 0xD100, 0x00, 608, "ROLw_1_EA", "sh_rot_1", + SELALL, 0xD100, 0x08, 609, "RORw_1_EA", "sh_rot_1", + SELALL, 0xD100, 0x20, 612, "SHLw_1_EA", "sh_rot_1", + SELALL, 0xD100, 0x28, 613, "SHRw_1_EA", "sh_rot_1", + SELALL, 0xD100, 0x38, 615, "SARw_1_EA", "sh_rot_1", + + SELALL, 0xC000, 0x00, 568, "ROLb_Ib_EA", "sh_rot_i", + SELALL, 0xC000, 0x08, 569, "RORb_Ib_EA", "sh_rot_i", + SELALL, 0xC000, 0x20, 572, "SHLb_Ib_EA", "sh_rot_i", + SELALL, 0xC000, 0x28, 573, "SHRb_Ib_EA", "sh_rot_i", + SELALL, 0xC000, 0x38, 575, "SARb_Ib_EA", "sh_rot_i", + SELALL, 0xC100, 0x00, 576, "ROLw_Ib_EA", "sh_rot_i", + SELALL, 0xC100, 0x08, 577, "RORw_Ib_EA", "sh_rot_i", + SELALL, 0xC100, 0x20, 580, "SHLw_Ib_EA", "sh_rot_i", + SELALL, 0xC100, 0x28, 581, "SHRw_Ib_EA", "sh_rot_i", + SELALL, 0xC100, 0x38, 583, "SARw_Ib_EA", "sh_rot_i", + + SELALL, 0xD200, 0x00, 616, "ROLb_CL_EA", "sh_rot_cl", + SELALL, 0xD200, 0x08, 617, "RORb_CL_EA", "sh_rot_cl", + SELALL, 0xD200, 0x20, 620, "SHLb_CL_EA", "sh_rot_cl", + SELALL, 0xD200, 0x28, 621, "SHRb_CL_EA", "sh_rot_cl", + SELALL, 0xD200, 0x38, 623, "SARb_CL_EA", "sh_rot_cl", + SELALL, 0xD300, 0x00, 624, "ROLw_CL_EA", "sh_rot_cl", + SELALL, 0xD300, 0x08, 625, "RORw_CL_EA", "sh_rot_cl", + SELALL, 0xD300, 0x20, 628, "SHLw_CL_EA", "sh_rot_cl", + SELALL, 0xD300, 0x28, 629, "SHRw_CL_EA", "sh_rot_cl", + SELALL, 0xD300, 0x38, 631, "SARw_CL_EA", "sh_rot_cl", + + SELALL, 0xD000, 0x10, 602, "RCLb_1_EA", "sh_rot_c_1", + SELALL, 0xD000, 0x18, 603, "RCRb_1_EA", "sh_rot_c_1", + SELALL, 0xD100, 0x10, 610, "RCLw_1_EA", "sh_rot_c_1", + SELALL, 0xD100, 0x18, 611, "RCRw_1_EA", "sh_rot_c_1", + + SELALL, 0xC000, 0x10, 570, "RCLb_Ib_EA", "sh_rot_c_i", + SELALL, 0xC000, 0x18, 571, "RCRb_Ib_EA", "sh_rot_c_i", + SELALL, 0xC100, 0x10, 578, "RCLw_Ib_EA", "sh_rot_c_i", + SELALL, 0xC100, 0x18, 579, "RCRw_Ib_EA", "sh_rot_c_i", + + SELALL, 0xD200, 0x10, 618, "RCLb_CL_EA", "sh_rot_c_cl", + SELALL, 0xD200, 0x18, 619, "RCRb_CL_EA", "sh_rot_c_cl", + SELALL, 0xD300, 0x10, 626, "RCLw_CL_EA", "sh_rot_c_cl", + SELALL, 0xD300, 0x18, 627, "RCRw_CL_EA", "sh_rot_c_cl", + + POINT, 0xCC00, 0, 204, "INT_3", "int", + POINT, 0xCD00, 0, 205, "INT_TYPE", "int", + POINT, 0xCE00, 0, 206, "INTO", "int", + POINT, 0xCF00, 0, 207, "IRETf", "int", + + POINT, 0x9E00, 0, 158, "SAHF", "flag", + POINT, 0x9F00, 0, 159, "LAHF", "flag", + POINT, 0xF500, 0, 245, "CMC", "flag", + POINT, 0xF800, 0, 248, "CLC", "flag", + POINT, 0xF900, 0, 249, "STC", "flag", + POINT, 0xFC00, 0, 252, "CLD", "flag", + POINT, 0xFD00, 0, 253, "STD", "flag", + + SELALL, 0xD800, 0x00, 688, "FADDs_EA", "fp", + SELALL, 0xD800, 0x08, 689, "FMULs_EA", "fp", + SELALL, 0xD800, 0x10, 690, "FCOMs_EA", "fp", + SELALL, 0xD800, 0x18, 691, "FCOMPs_EA", "fp", + SELALL, 0xD800, 0x20, 692, "FSUBs_EA", "fp", + SELALL, 0xD800, 0x28, 693, "FSUBRs_EA", "fp", + SELALL, 0xD800, 0x30, 694, "FDIVs_EA", "fp", + SELALL, 0xD800, 0x38, 695, "FDIVRs_EA", "fp", + + SEL5, 0xD800, 0xC0, 696, "FADD_Si_S0", "fp", + SEL5, 0xD800, 0xC8, 697, "FMUL_Si_S0", "fp", + SEL5, 0xD800, 0xD0, 698, "FCOM_Si_S0", "fp", + SEL5, 0xD800, 0xD8, 699, "FCOMP_Si_S0", "fp", + SEL5, 0xD800, 0xE0, 700, "FSUB_Si_S0", "fp", + SEL5, 0xD800, 0xE8, 701, "FSUBR_Si_S0", "fp", + SEL5, 0xD800, 0xF0, 702, "FDIV_Si_S0", "fp", + SEL5, 0xD800, 0xF8, 703, "FDIVR_Si_S0", "fp", + + SELALL, 0xDA00, 0x00, 704, "FIADDs_EA", "fp", + SELALL, 0xDA00, 0x08, 705, "FIMULs_EA", "fp", + SELALL, 0xDA00, 0x10, 706, "FICOMs_EA", "fp", + SELALL, 0xDA00, 0x18, 707, "FICOMPs_EA", "fp", + SELALL, 0xDA00, 0x20, 708, "FISUBs_EA", "fp", + SELALL, 0xDA00, 0x28, 709, "FISUBRs_EA", "fp", + SELALL, 0xDA00, 0x30, 710, "FIDIVs_EA", "fp", + SELALL, 0xDA00, 0x38, 711, "FIDIVRs_EA", "fp", + + FPINVALID,0, 0, 712, "FP_INVALID", "fp", + + POINT, 0xDED9, 0, 713, "FUCOMPP", "fp", + + SELALL, 0xDB00, 0x00, 720, "FILDs_EA", "fp", + SELALL, 0xDB00, 0x10, 722, "FISTs_EA", "fp", + SELALL, 0xDB00, 0x18, 723, "FISTPs_EA", "fp", + SELALL, 0xDB00, 0x28, 725, "FLDer_EA", "fp", + SELALL, 0xDB00, 0x38, 727, "FSTPer_EA", "fp", + + POINT, 0xDBE0, 0, 728, "FENI_1", "fp", + POINT, 0xDBE1, 0, 729, "FDISI_2", "fp", + POINT, 0xDBE2, 0, 730, "FCLEX", "fp", + POINT, 0xDBE3, 0, 731, "FINIT", "fp", + POINT, 0xDBE4, 0, 732, "FSETPM", "fp", + + SELALL, 0xDC00, 0x00, 736, "FADDl_EA", "fp", + SELALL, 0xDC00, 0x08, 737, "FMULl_EA", "fp", + SELALL, 0xDC00, 0x10, 738, "FCOMl_EA", "fp", + SELALL, 0xDC00, 0x18, 739, "FCOMPl_EA", "fp", + SELALL, 0xDC00, 0x20, 740, "FSUBl_EA", "fp", + SELALL, 0xDC00, 0x28, 741, "FSUBRl_EA", "fp", + SELALL, 0xDC00, 0x30, 742, "FDIVl_EA", "fp", + SELALL, 0xDC00, 0x38, 743, "FDIVRl_EA", "fp", + + SEL5, 0xDC00, 0xC0, 744, "FADD_S0_Si", "fp", + SEL5, 0xDC00, 0xC8, 745, "FMUL_S0_Si", "fp", + SEL5, 0xDC00, 0xD0, 746, "FCOM_2_S0_Si","fp", + SEL5, 0xDC00, 0xD8, 747, "FCOMP_3_S0_Si","fp", + SEL5, 0xDC00, 0xE0, 748, "FSUB_S0_Si", "fp", + SEL5, 0xDC00, 0xE8, 749, "FSUBR_S0_Si", "fp", + SEL5, 0xDC00, 0xF0, 750, "FDIV_S0_Si", "fp", + SEL5, 0xDC00, 0xF8, 751, "FDIVR_S0_Si", "fp", + + SELALL, 0xDD00, 0x00, 752, "FLDl_EA", "fp", + SELALL, 0xDD00, 0x10, 754, "FSTl_EA", "fp", + SELALL, 0xDD00, 0x18, 755, "FSTPl_EA", "fp", + SELALL, 0xDD00, 0x20, 756, "FRSTOR_EA", "fp", + SELALL, 0xDD00, 0x30, 758, "FSAVE_EA", "fp", + SELALL, 0xDD00, 0x38, 759, "FSTSW_EA", "fp", + + SEL5, 0xDD00, 0xC0, 760, "FFREE_Si", "fp", + SEL5, 0xDD00, 0xC8, 761, "FXCH_4_Si_S0", "fp", + SEL5, 0xDD00, 0xD0, 762, "FSTl_Si", "fp", + SEL5, 0xDD00, 0xD8, 763, "FSTPl_Si", "fp", + + SELALL, 0xDE00, 0x00, 768, "FIADDw_EA", "fp", + SELALL, 0xDE00, 0x08, 769, "FIMULw_EA", "fp", + SELALL, 0xDE00, 0x10, 770, "FICOMw_EA", "fp", + SELALL, 0xDE00, 0x18, 771, "FICOMPw_EA", "fp", + SELALL, 0xDE00, 0x20, 772, "FISUBw_EA", "fp", + SELALL, 0xDE00, 0x28, 773, "FISUBRw_EA", "fp", + SELALL, 0xDE00, 0x30, 774, "FIDIVw_EA", "fp", + SELALL, 0xDE00, 0x38, 775, "FIDIVRw_EA", "fp", + + SEL5, 0xDE00, 0xC0, 776, "FADDP_Si_S0", "fp", + SEL5, 0xDE00, 0xC8, 777, "FMULP_Si_S0", "fp", + SEL5, 0xDE00, 0xD0, 778, "FCOMP_5_Si_S0","fp", + POINT, 0xDED9, 0, 779, "FCOMPP_Si_S0", "fp", + SEL5, 0xDE00, 0xE0, 780, "FSUBRP_Si_S0", "fp", + SEL5, 0xDE00, 0xE8, 781, "FSUBP_Si_S0", "fp", + SEL5, 0xDE00, 0xF0, 782, "FDIVRP_Si_S0", "fp", + SEL5, 0xDE00, 0xF8, 783, "FDIVP_Si_S0", "fp", + + SELALL, 0xDF00, 0x00, 784, "FILDw_EA", "fp", + SELALL, 0xDF00, 0x10, 786, "FISTw_EA", "fp", + SELALL, 0xDF00, 0x18, 787, "FISTPw_EA", "fp", + SELALL, 0xDF00, 0x20, 788, "FBLD_EA", "fp", + SELALL, 0xDF00, 0x28, 789, "FILDl_EA", "fp", + SELALL, 0xDF00, 0x30, 790, "FBSTP_EA", "fp", + SELALL, 0xDF00, 0x38, 791, "FISTPl_EA", "fp", + + SEL5, 0xDF00, 0xC0, 792, "FFREE_6_Si", "fp", + SEL5, 0xDF00, 0xC8, 793, "FXCH_7_S0_Si", "fp", + SEL5, 0xDF00, 0xD0, 794, "FSTP_8_Si","fp", + SEL5, 0xDF00, 0xD8, 795, "FSTP_9_Si","fp", + POINT, 0xDFE0, 0, 796, "FSTSW_AX", "fp", + + SELALL, 0xD900, 0x00, 800, "FLDs_EA", "fp", + SELALL, 0xD900, 0x10, 802, "FSTs_EA", "fp", + SELALL, 0xD900, 0x18, 803, "FSTPs_EA", "fp", + SELALL, 0xD900, 0x20, 804, "FLDENV_EA", "fp", + SELALL, 0xD900, 0x28, 805, "FLDCW_EA", "fp", + SELALL, 0xD900, 0x30, 806, "FSTENV_EA", "fp", + SELALL, 0xD900, 0x38, 807, "FSTCW_EA", "fp", + + SEL5, 0xD900, 0xC0, 808, "FLD_Si", "fp", + SEL5, 0xD900, 0xC8, 809, "FXCH_Si_S0", "fp", + POINT, 0xD9D0, 0, 810, "FNOP", "fp", + SEL5, 0xD900, 0xD8, 811, "FSTP_1_Si", "fp", + POINT, 0xD9E0, 0, 812, "FCHS", "fp", + POINT, 0xD9E1, 0, 813, "FABS", "fp", + POINT, 0xD9E4, 0, 814, "FTST", "fp", + POINT, 0xD9E5, 0, 815, "FXAM", "fp", + POINT, 0xD9E8, 0, 816, "FLD1", "fp", + POINT, 0xD9E9, 0, 817, "FLDL2T", "fp", + POINT, 0xD9EA, 0, 818, "FLDL2E", "fp", + POINT, 0xD9EB, 0, 819, "FLDLPI", "fp", + POINT, 0xD9EC, 0, 820, "FLDLG2", "fp", + POINT, 0xD9ED, 0, 821, "FLDLN2", "fp", + POINT, 0xD9EE, 0, 822, "FLDZ", "fp", + POINT, 0xD9F0, 0, 824, "F2XM1", "fp", + POINT, 0xD9F1, 0, 825, "FYL2X", "fp", + POINT, 0xD9F2, 0, 826, "FPTAN", "fp", + POINT, 0xD9F3, 0, 827, "FPATAN", "fp", + POINT, 0xD9F4, 0, 828, "FXTRACT", "fp", + POINT, 0xD9F5, 0, 829, "FPREM1", "fp", + POINT, 0xD9F6, 0, 830, "FDECSTP", "fp", + POINT, 0xD9F7, 0, 831, "FINCSTP", "fp", + POINT, 0xD9F8, 0, 832, "FPREM", "fp", + POINT, 0xD9F9, 0, 833, "FYL2XP1", "fp", + POINT, 0xD9FA, 0, 834, "FSQRT", "fp", + POINT, 0xD9FB, 0, 835, "FSINCOS", "fp", + POINT, 0xD9FC, 0, 836, "FRNDINT", "fp", + POINT, 0xD9FD, 0, 837, "F_SCALE", "fp", + POINT, 0xD9FE, 0, 838, "FSIN", "fp", + POINT, 0xD9FF, 0, 839, "FCOS", "fp", + + POINT, 0x9B00, 0, 155, "FWAIT", "fwait", + + POINT, 0xA400, 0, 164, "MOVSb", "movs", + POINT, 0xA500, 0, 165, "MOVSw", "movs", + + POINT, 0xA600, 0, 166, "CMPSb", "cmps", + POINT, 0xA700, 0, 167, "CMPSw", "cmps", + + POINT, 0xAE00, 0, 174, "SCASb", "scas", + POINT, 0xAF00, 0, 175, "SCASw", "scas", + + POINT, 0xAA00, 0, 170, "STOSb", "stos", + POINT, 0xAB00, 0, 171, "STOSw", "stos", + + POINT, 0xAC00, 0, 172, "LODSb", "lods", + POINT, 0xAD00, 0, 173, "LODSw", "lods", + + POINT, 0x6C00, 0, 108, "INSb", "ins", + POINT, 0x6D00, 0, 109, "INSw", "ins", + + POINT, 0x6E00, 0, 110, "OUTSb", "outs", + POINT, 0x6F00, 0, 111, "OUTSw", "outs", + + POINT, 0xD700, 0, 215, "XLATb", "xlat", + + POINT, 0xEA00, 0, 234, "JMPf_Ip", "jmp_far", + + POINT, 0x9A00, 0, 154, "CALLf_Ip", "call_far", + + POINT, 0xCA00, 0, 202, "RETf_Is", "ret_far", + POINT, 0xCB00, 0, 203, "RETf", "ret_far", + + SELMEM, 0xFF00, 0x28, 661, "JMPf_EA", "jmp_far_in", + + SELMEM, 0xFF00, 0x18, 659, "CALLf_EA", "call_far_in", + + POINT, 0x0600, 0, 6, "PUSH_ES", "push_s", + POINT, 0x0E00, 0, 14, "PUSH_CS", "push_s", + POINT, 0x1600, 0, 22, "PUSH_SS", "push_s", + POINT, 0x1E00, 0, 30, "PUSH_DS", "push_s", + + POINT, 0x0700, 0, 6, "POP_ES", "pop_s", + POINT, 0x1700, 0, 22, "POP_SS", "pop_s", + POINT, 0x1F00, 0, 30, "POP_DS", "pop_s", + + SELREG, 0x8C00, 0x00, 544, "MOVw_ES_EA", "mov_s,r", + SELREG, 0x8C00, 0x08, 545, "MOVw_CS_EA", "mov_s,r", + SELREG, 0x8C00, 0x10, 546, "MOVw_SS_EA", "mov_s,r", + SELREG, 0x8C00, 0x18, 547, "MOVw_DS_EA", "mov_s,r", + + SELREG, 0x8E00, 0x00, 552, "MOVw_EA_ES", "mov_r,s", + SELREG, 0x8E00, 0x10, 554, "MOVw_EA_SS", "mov_r,s", + SELREG, 0x8E00, 0x18, 555, "MOVw_EA_DS", "mov_r,s", + + SELMEM, 0x8E00, 0x00, 552, "MOVw_EA_ES", "mov_m,s", + SELMEM, 0x8E00, 0x10, 554, "MOVw_EA_SS", "mov_m,s", + SELMEM, 0x8E00, 0x18, 555, "MOVw_EA_DS", "mov_m,s", + + SELMEM, 0x8C00, 0x00, 999, "MOVw_ES_EA", "mov_s,m", + SELMEM, 0x8C00, 0x08, 999, "MOVw_CS_EA", "mov_s,m", + SELMEM, 0x8C00, 0x10, 999, "MOVw_SS_EA", "mov_s,m", + SELMEM, 0x8C00, 0x18, 999, "MOVw_DS_EA", "mov_s,m", + + ALLMEM, 0xC400, 0, 196, "LESw_EA_R", "mov_m,p", + ALLMEM, 0xC500, 0, 197, "LDSw_EA_R", "mov_m,p", + + POINT, 0xC800, 0, 200, "ENTER", "enter", + POINT, 0xC900, 0, 201, "LEAVE", "leave", + + POINT, 0xE400, 0, 228, "INb_Ib_AL", "io", + POINT, 0xE500, 0, 229, "INw_Iw_AX", "io", + POINT, 0xE600, 0, 230, "OUTb_Ib_AL", "io", + POINT, 0xE700, 0, 231, "OUTw_Iw_AX", "io", + POINT, 0xEC00, 0, 236, "INb_DX_AL", "io", + POINT, 0xED00, 0, 237, "INw_DX_AX", "io", + POINT, 0xEE00, 0, 238, "OUTb_DX_AL", "io", + POINT, 0xEF00, 0, 239, "OUTw_DX_AX", "io", + + POINT, 0x9C00, 0, 156, "PUSHF", "VM_sensitive", + POINT, 0x9D00, 0, 157, "POPF", "VM_sensitive", + POINT, 0xFA00, 0, 250, "CLI", "VM_sensitive", + POINT, 0xFB00, 0, 251, "STI", "VM_sensitive", + + ES_PREFIX,0, 0, 38, "ES_prefix", "other86", + DS_PREFIX,0, 0, 46, "DS_prefix", "other86", + SS_PREFIX,0, 0, 54, "SS_prefix", "other86", + CS_PREFIX,0, 0, 62, "CS_prefix", "other86", + POINT, 0x6000, 0, 96, "PUSHA", "other86", + POINT, 0x6100, 0, 97, "POPA", "other86", + ALLMEM, 0x6200, 0, 98, "BOUND", "other86", + + POINT, 0x6300, 0, 99, "ARPL", "other286", + + USE_ZEROF,0, 0, 0, "", "", + + ALL, 0x0200, 0, 258, "LARw_EA_R", "other286", + ALL, 0x0300, 0, 259, "LSLw_EA_R", "other286", + ALL, 0x0600, 0, 262, "CLTS", "other286", + SELALL, 0x0000, 0x00, 664, "SLDTw_EA", "other286", + SELALL, 0x0000, 0x08, 665, "STRw_EA", "other286", + SELALL, 0x0000, 0x10, 666, "LLDTw_EA", "other286", + SELALL, 0x0000, 0x18, 667, "LTRw_EA", "other286", + SELALL, 0x0000, 0x20, 668, "VERRw_EA", "other286", + SELALL, 0x0000, 0x28, 669, "VERWw_EA", "other286", + SELALL, 0x0100, 0x00, 672, "SGDTw_EA", "other286", + SELALL, 0x0100, 0x08, 673, "SIDTw_EA", "other286", + SELALL, 0x0100, 0x10, 674, "LGDTw_EA", "other286", + SELALL, 0x0100, 0x18, 675, "LIDTw_EA", "other286", + SELALL, 0x0100, 0x20, 676, "SMSWw_EA", "other286", + SELALL, 0x0100, 0x30, 678, "LMSWw_EA", "other286", + ALL, 0x0500, 0, 999, "LOADALL", "other286", + + USE_NORMAL,0, 0, 0, "", "", + + RANGE, 0x7000, 0x7001, 112, "JO_Ib", ".jcc", + RANGE, 0x7100, 0x7101, 113, "JNO_Ib", ".jcc", + RANGE, 0x7200, 0x7201, 114, "JC_Ib", ".jcc", + RANGE, 0x7300, 0x7301, 115, "JNC_Ib", ".jcc", + RANGE, 0x7400, 0x7401, 116, "JZ_Ib", ".jcc", + RANGE, 0x7500, 0x7501, 117, "JNZ_Ib", ".jcc", + RANGE, 0x7600, 0x7601, 118, "JBE_Ib", ".jcc", + RANGE, 0x7700, 0x7701, 119, "JNBE_Ib", ".jcc", + RANGE, 0x7800, 0x7801, 120, "JS_Ib", ".jcc", + RANGE, 0x7900, 0x7901, 121, "JNS_Ib", ".jcc", + RANGE, 0x7A00, 0x7A01, 122, "JP_Ib", ".jcc", + RANGE, 0x7B00, 0x7B01, 123, "JNP_Ib", ".jcc", + RANGE, 0x7C00, 0x7C01, 124, "JL_Ib", ".jcc", + RANGE, 0x7D00, 0x7D01, 125, "JNL_Ib", ".jcc", + RANGE, 0x7E00, 0x7E01, 126, "JLE_Ib", ".jcc", + RANGE, 0x7F00, 0x7F01, 127, "JNLE_Ib", ".jcc", + + RANGE, 0xE000, 0xE001, 224, "LOOPNZb_Ib", ".loop", + RANGE, 0xE100, 0xE101, 225, "LOOPNb_Ib", ".loop", + RANGE, 0xE200, 0xE201, 226, "LOOP_Ib", ".loop", + RANGE, 0xE300, 0xE301, 227, "JCXZb_Ib", ".loop", + + POINT, 0x9A00, 0, 154, "CALLf_Ip", ".genT", + POINT, 0xC200, 0, 194, "RET_Is", ".genT", + POINT, 0xC300, 0, 195, "RETn", ".genT", + POINT, 0xCA00, 0, 202, "RETf_Is", ".genT", + POINT, 0xCB00, 0, 203, "RETf", ".genT", + POINT, 0xCC00, 0, 204, "INT_3", ".genT", + POINT, 0xCD00, 0, 205, "INT_TYPE", ".genT", + POINT, 0xCE00, 0, 206, "INTO", ".genT", + POINT, 0xCF00, 0, 207, "IRETf", ".genT", + POINT, 0xE800, 0, 232, "CALLn_Iw", ".genT", + POINT, 0xE900, 0xE900, 233, "JMPn_Iw", ".genT", + POINT, 0xEA00, 0, 234, "JMPf_Ip", ".genT", + POINT, 0xEB00, 0xEB00, 235, "JMPn_Ib", ".genT", + SELALL, 0xFF00, 0x10, 658, "CALLn_EA", ".genT", + SELMEM, 0xFF00, 0x18, 659, "CALLf_EA", ".genT", + SELALL, 0xFF00, 0x20, 660, "JMPn_EA", ".genT", + SELMEM, 0xFF00, 0x28, 661, "JMPf_EA", ".genT", + + 0, 0, 0, 0, "", ""}; + +LOCAL print_stats IFN0() +{ + ULONG i, j, total, sub_total, super_total, command, from, to, item; + char *group; + ULONG *counts_array; + + previous_group = ""; + counts_array = &instr_counts[0]; + item = 0; + total = 0; + super_total = 0; + while (commands[item].command != 0) + { + command = commands[item].command; + from = commands[item].from; + to = commands[item].to; + group = commands[item].group; + switch (command) + { + case USE_NORMAL: + counts_array = &instr_counts[0]; + break; + + case USE_ZEROF: + counts_array = &zerof_instr_counts[0]; + break; + + case RANGE: + sub_total = 0; + for (i = from; i <= to; i++) + sub_total += counts_array[i]; + break; + + case ES_PREFIX: + sub_total = es_prefixes; + break; + + case CS_PREFIX: + sub_total = cs_prefixes; + break; + + case SS_PREFIX: + sub_total = ss_prefixes; + break; + + case DS_PREFIX: + sub_total = ds_prefixes; + break; + + case LOCK: + sub_total = lock_prefixes; + break; + + case REPNZ: + sub_total = repe_prefixes; + break; + + case REP: + sub_total = rep_prefixes; + break; + + case POINT: + sub_total = counts_array[from]; + break; + + case SELMEM: + sub_total = 0; + for (i = 0; i < 192; i++) + if ((i & 0x38) == to) + sub_total += counts_array[from + i]; + break; + + case ALLMEM: + sub_total = 0; + for (i = 0; i < 192; i++) + sub_total += counts_array[from + i]; + break; + + case SELREG: + sub_total = 0; + for (i = 192; i < 256; i++) + if ((i & 0x38) == to) + sub_total += counts_array[from + i]; + break; + + case SELALL: + sub_total = 0; + for (i = 0; i < 256; i++) + if ((i & 0x38) == to) + sub_total += counts_array[from + i]; + break; + + case SEL5: + sub_total = 0; + for (i = 0; i < 256; i++) + if ((i & 0xF8) == to) + sub_total += counts_array[from + i]; + break; + + case ALLREG: + sub_total = 0; + for (i = 192; i < 256; i++) + sub_total += counts_array[from + i]; + break; + + case ALL: + sub_total = 0; + for (i = 0; i < 256; i++) + sub_total += counts_array[from + i]; + break; + + case FPINVALID: + sub_total = 0; + break; + + default: + printf("Unknown command\n"); + } + +#if 0 + switch (command) + { + case RANGE: + for (i = from; i <= to; i++) + counts_array[i] = 0; + break; + + case POINT: + counts_array[from] = 0; + break; + + case SELMEM: + for (i = 0; i < 192; i++) + if ((i & 0x38) == to) + counts_array[from + i] = 0; + break; + + case ALLMEM: + for (i = 0; i < 192; i++) + counts_array[from + i] = 0; + break; + + case SELREG: + for (i = 192; i < 256; i++) + if ((i & 0x38) == to) + counts_array[from + i] = 0; + break; + + case SELALL: + for (i = 0; i < 256; i++) + if ((i & 0x38) == to) + counts_array[from + i] = 0; + break; + + case SEL5: + for (i = 0; i < 256; i++) + if ((i & 0xF8) == to) + counts_array[from + i] = 0; + break; + + case ALLREG: + for (i = 192; i < 256; i++) + counts_array[from + i] = 0; + break; + + case ALL: + for (i = 0; i < 256; i++) + counts_array[from + i] = 0; + break; + + default: + printf("Unknown command\n"); + } +#endif + + if (command != USE_NORMAL && command != USE_ZEROF) + { + if (strcmp(group, previous_group) != 0) + { + if (item != 0) + fprintf(stats_file, "%s TOTAL = %d\n", previous_group, total); + super_total += total; + total = 0; + fprintf(stats_file, "\n%s\n", group); + previous_group = group; + } + total += sub_total; + fprintf(stats_file,"\t%d\t%-20s%d\n", commands[item].number, + commands[item].string, + sub_total); + } + + item++; + } + fprintf(stats_file,"%s TOTAL = %d\n", previous_group, total); + fprintf(stats_file,"\nGRAND TOTAL = %d\n", super_total); + +#if 0 + for (i = 0; i < 0x10000; i++) + { + if (instr_counts[i]) + printf("%d normals at %x\n", instr_counts[i], i); + if (zerof_instr_counts[i]) + printf("%d zerofs at %x\n", zerof_instr_counts[i], i); + } +#endif +} + +LOCAL char stats_file_name[20]; +LOCAL ULONG stats_file_number; + +GLOBAL start_pclabs IFN0() +{ + IMPORT int tick_multiple; + do_condition_checks = 1; + tick_multiple = 10; + clear_stats(); + sprintf(&stats_file_name[0], "stats.%d", ++stats_file_number); + stats_file = fopen(&stats_file_name[0], "w"); +} + + +GLOBAL print_pclabs IFN0() +{ + IMPORT int tick_multiple; + do_condition_checks = 0; + tick_multiple = 0; + print_stats(); + fclose(stats_file); +} + +#endif /* PCLABS STATS */ + +/* extra functions called in FmDebug.c which support suspension and resumption + of a separate filter process. BCN 3406 */ +GLOBAL yoda_suspend_filter_process IFN0 () +{ +#ifdef host_suspend_filter_process + host_suspend_filter_process(); +#endif +} + +GLOBAL yoda_resume_filter_process IFN0 () +{ +#ifdef host_resume_filter_process + host_resume_filter_process(); +#endif +} + +GLOBAL yoda_kill_filter_process IFN0 () +{ +#ifdef host_kill_filter_process + host_kill_filter_process(); +#endif +} +#endif /* YODA */ diff --git a/private/mvdm/softpc.new/base/dirs b/private/mvdm/softpc.new/base/dirs new file mode 100644 index 000000000..cdd0ede43 --- /dev/null +++ b/private/mvdm/softpc.new/base/dirs @@ -0,0 +1,38 @@ +!IF 0 + +Copyright (c) 1989 Microsoft Corporation + +Module Name: + + dirs. + +Abstract: + + This file specifies the subdirectories of the current directory that + contain component makefiles. + + +Author: + + Steve Wood (stevewo) 17-Apr-1990 + +NOTE: Commented description of this file is in \nt\bak\bin\dirs.tpl + +NOTE: In an environment where the CCPU version was not always going to + be built, CCPU should probably be an optional directory. + +!ENDIF + +DIRS= bios \ + comms \ + dasm386 \ + debug \ + disks \ + dos \ + keymouse \ + support \ + system \ + video \ + + + diff --git a/private/mvdm/softpc.new/base/disks/diskbios.c b/private/mvdm/softpc.new/base/disks/diskbios.c new file mode 100644 index 000000000..16106fb8c --- /dev/null +++ b/private/mvdm/softpc.new/base/disks/diskbios.c @@ -0,0 +1,1474 @@ +#include "insignia.h" +#include "host_def.h" + +/* +* diskbios.c +* +* The fast disk bios & disk post routine plus some disk debugging routines +* +* This file combine the old diskbios.c & fast_dbios.c it is designed to +* sit alongside fdisk.c but doesn't interact with it. +* +* Post & debugging from the old diskbios by Jerry Kramskoy +* Fast disk bios by Ade Brownlow +* +* NB: This file does not comply with all of Insignias standards. +*/ + +#ifdef SCCSID +static char SccsID[] = "@(#)diskbios.c 1.36 04/12/95 Copyright Insignia Solutions Inc."; +#endif + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "AT_STUFF.seg" +#endif + +/* includes */ +#include +#include TypesH +#include "xt.h" +#include CpuH +#include "sas.h" +#include "ios.h" +#include "gmi.h" +#include "trace.h" +#include "fdisk.h" +#include "cmos.h" +#include "ica.h" +#include "error.h" +#include "config.h" +#include "dsktrace.h" +#include "idetect.h" +#include "debug.h" + +/* disk status BIOS variable location */ +#define DISK_STATUS1 0x474 + +/* id mismatch return */ +#define IDMISMATCH 1 + +/* status byte values */ +#define STATUS_RECORD_NOT_FOUND 0x04 +#define STATUS_BAD_COMMAND 0x01 +#define STATUS_NO_ERROR 0xe0 +#define STATUS_DMA_BOUNDRY 0x09 +#define STATUS_ERROR 0x01 +#define STATUS_CLEAR 0x00 +#define STATUS_INIT_FAIL 0x07 + +/* error conditions */ +#define ERROR_NO_ID 0x10 +#define ERROR_COMMAND_ABORT 0x04 +#define ERROR_CLEAR 0x00 +#define ERROR_READ_ONLY_MEDIA 0x03 /* this is really only for floppies but it has the desired effect on DOS */ + +/* command parameters structure */ +/* use ints to allow the compiler to chose the fastest type */ +typedef struct _com +{ + int drive; + int sectors; + int head; + int cylinder_low; + int cylinder_high; + int start_sector; + int xfersegment; + int xferoffset; +} command_params; + +/* this structure holds information about each drive */ +typedef struct _dt +{ + int connected; +} drivetable; + +/* disk parameter block ...... */ +typedef struct _dpb +{ + unsigned short cyls; + UTINY heads; + UTINY sectors; +} dpb_block; + +/********************************************************/ +/* local globals */ +LOCAL drivetable drivetab[2]; +LOCAL command_params com; +LOCAL dpb_block dpb[2]; + +/* again allow compiler choice of types 16 bit ints are large enough */ +LOCAL int maxsectors, maxoffset; +LOCAL int tfstatus; + +#ifndef PROD +/* +* disk trace control variable; global only for use by Yoda. +*/ +GLOBAL IU32 disktraceinfo; +#endif + +/* +* non-zero if drive 1 does not exist +*/ +LOCAL int drive1notwiredup; + + +/********************************************************/ +/* support functionallity */ + +void disk_post IPT0(); +LOCAL void hd_reset IPT2(int, drive, int, diag); + +LOCAL UTINY rerror IPT0(); +LOCAL void werror IPT1(UTINY, error); +LOCAL int check_drive IPT1(int, drive); +LOCAL long dosearchid IPT0(); +LOCAL int checkdatalimit IPT0(); +LOCAL void getdpb IPT1(int, drive); +LOCAL void wstatus IPT1(UTINY, value); +LOCAL UTINY rcmos IPT1(int, index); +LOCAL void wcmos IPT2(int, index, UTINY, value); +LOCAL UTINY rstatus IPT0(); +LOCAL void disk_reset IPT0(); +LOCAL void return_status IPT0(); +LOCAL void disk_read IPT0(); +LOCAL void disk_write IPT0(); +LOCAL void disk_verify IPT0(); +LOCAL void format IPT0(); +LOCAL void badcmd IPT0(); +LOCAL void get_drive_params IPT0(); +LOCAL void init_drive IPT0(); +LOCAL void disk_seek IPT0(); +LOCAL void test_ready IPT0(); +LOCAL void recalibrate IPT0(); +LOCAL void diagnostics IPT0(); +LOCAL void read_dasd IPT0(); +LOCAL void enable_disk_interrupts IPT0(); + +LOCAL void hd_reset IPT2(int, drive, int, diag); + +/********************************************************/ +/* POST & DEBUG defines*/ + +/* + * define the disk interrupt vector generated by the PIC + */ +#define IVTDISKINTRUPT 0x1d8 /* 4 * 0x76 */ + + /* + * value to send to fixed disk register (3f6) to enable head select 3 (thus + * enabling head addresses of 8-0xf) + */ +#define ENABLE_HD_SEL_3 8 /* enable head 3, + enable fixed disk * interrupts */ + + /* + * BIOS variables Interrupt vectors + */ +#define IVT13 0x4c /* 4 * 0x13 */ +#define IVT40 0x100 /* 4 * 0x40 */ +#define IVT41 0x104 /* 4 * 0x41 */ +#define IVT46 0x118 /* 4 * 0x46 */ + + /* + * BIOS data area (segment 40h) + */ +#define HF_NUM 0x475 +#define HF_STATUS 0x48c +#define HF_INT_FLAG 0x48e + +/* +PROCEDURE : disk_post() + +PURPOSE : called during POST to establish the number + of drives available, and to set the disk + subsystem up prior to booting DOS. Should be + called after configuration has been processed + for hard disk(s) (if any) + +PARAMETERS : none + +GLOBALS : + +RETURNED VALUE : none + +DESCRIPTION : reads the CMOS to see if any disks. + sets up IVT entries so that INT 13h + routes to hard disk BIOS rather than floppy + disk BIOS. sets INT 40h to route to floppy. + sets INT 'DISKINTRUPT' to route to disk interrupt service + routine. sets INT 41h to point to disk parameter + block (dpb) for fixed drive 0, and INT 46h to + point to the dpb for fixed drive 1 (or to same as + INT 41h if no drive 1). sets drive parameters for + the drive(s). + +*/ + +void disk_post IFN0() +{ + UTINY diag; + UTINY disks; + UTINY ndisks; +#if !(defined(NTVDM) && defined(MONITOR)) + USHORT diskette_offset; + USHORT diskette_seg; +#endif /* !(NTVDM && MONITOR) */ + int i; + + /* + * read diagnostic byte of CMOS + */ + diag = rcmos (CMOS_DIAG); + +#if !(defined(NTVDM) && defined(MONITOR)) + /* We don't want this section if running on NTVDM MONITOR */ + + drive1notwiredup = ~0; + + /* + * set up IVT entries + */ + + dt0 (DBIOS | CALL, 0, "disk_post() stealing IVT's\n") + + diskette_offset = sas_w_at(IVT13); + diskette_seg = sas_w_at(IVT13 + 2); + sas_storew (IVT13, DISKIO_OFFSET); + sas_storew (IVT13 + 2, SYSROM_SEG); + sas_storew (IVT40, diskette_offset); + sas_storew (IVT40 + 2, diskette_seg); + sas_storew (IVT41, DPB0_OFFSET); + sas_storew (IVT41 + 2, SYSROMORG_SEG); + sas_storew (IVT46, DPB0_OFFSET); + sas_storew (IVT46 + 2, SYSROMORG_SEG); + sas_storew (IVTDISKINTRUPT, DISKISR_OFFSET); + sas_storew (IVTDISKINTRUPT + 2, SYSROM_SEG); + + enable_disk_interrupts (); + + /* + * clear BIOS status variable + */ + wstatus (0); + + /* + * if CMOS is bad, go no further + */ + if (diag & (BAD_BAT + BAD_CKSUM)) + return; + + /* + * initially show ok to IPL off drive C + */ + wcmos (CMOS_DIAG, diag & ~HF_FAIL); + +#endif /* !(NTVDM && MONITOR) */ + +#ifdef NTVDM /* True for all NT VDMs */ + /* + * Microsoft NT VDM specfic change: + * Fake up no hard disks in CMOS and consequently BIOS RAM + * because we don't want apps accessing the real hard disk + * under NT. + * + */ + wcmos(CMOS_DISK, (half_word) (NO_HARD_C | NO_HARD_D)); + +#endif /* NTVDM */ + + /* + * read cmos disk byte for configured drives. Note we don't + * support extended drive types. We always use types 1 and 2 + * (or 0 if no drive) for drives C and D respectively + */ + disks = rcmos (CMOS_DISK); + + if (disks & 0xf0) + { + ndisks = 1; + if (disks & 0xf) + { + + /* + * BIOS happy to accept drive 1 if CMOS + * indicates it + */ + drive1notwiredup = 0; + ndisks++; + sas_storew (IVT46, DPB1_OFFSET); + sas_storew (IVT46 + 2, SYSROMORG_SEG); + } + + /* + * set BIOS variable indicating the number of drives + * configured according to the CMOS + */ + sas_store (HF_NUM, ndisks); + + /* + * reset the drive(s) + */ + for (i = 0; i < ndisks; i++) + hd_reset (i, diag); + } + else + { + sas_store (HF_NUM, 0); + wcmos (CMOS_DIAG, diag | HF_FAIL); + } +} + + +/* +FUNCTION : hd_reset(drive) +PURPOSE : set drive parameters for drive, and + recalibrate it. If the drive is not + attached to the disk controller, then + an error will be returned by the controller + (Drive not ready). If an error occurs on + drive 0, then set the CMOS to forbid IPL + from the hard disk. +EXTERNAL OBJECTS: +RETURN VALUE : +INPUT PARAMS : drive - 0 (drive C) + or 1 (drive D) +*/ +LOCAL void hd_reset IFN2(int, drive, int, diag) +{ + + /* + * set up drive id + */ + setDL (0x80 + drive); + + /* + * set the drive parameters + */ + setAH (0x9); + disk_io (); + + /* + * recalibrate the drive + */ + setAH (0x11); + disk_io (); + + if (getCF () && !drive) + wcmos (CMOS_DIAG, diag | HF_FAIL); +} + +#ifndef PROD +/* +FUNCTION : relevant() +PURPOSE : filter out unwanted tracing as requested by the + disk trace flag. +INPUT PARAMS : + i encoded flag indicating type of tracing information + asking to be output +*/ +LOCAL BOOL relevant IFN1(int, i) +{ + if ((i & disktraceinfo) == i) + return ~0; + else + return 0; +} + +LOCAL BOOL storing_trace = FALSE; +LOCAL int stored_trace_hndl, stored_trace_count = 0; + +#ifdef macintosh +GLOBAL int *stored_trace_data; +#else +LOCAL int stored_trace_data[1024]; +#endif +LOCAL int stored_tr_dptr = 0; +LOCAL int stored_infoid; +LOCAL char stored_tr_string[80]; + +void unload_stored_trace IFN1(int, hndl) +{ + int i,linecount; + + if (stored_infoid & DBIOS) + fprintf (trace_file, "DBIOS:"); + + if (stored_infoid & DHW) + fprintf (trace_file, "DHW :"); + + switch (hndl) + { + case INW_TRACE_HNDL: + case OUTW_TRACE_HNDL: + if (stored_trace_count == 1) + { + fprintf (trace_file, "%s : 0x%04x\n",stored_tr_string,stored_trace_data[0]); + } + else + { + fprintf (trace_file, "%d lots of %s : \n", + stored_trace_count,stored_tr_string); + linecount = 8; + for (i=0;i= 8) + { + fprintf(trace_file, "\n"); + if (stored_infoid & DBIOS) + fprintf (trace_file, "DBIOS:"); + + if (stored_infoid & DHW) + fprintf (trace_file, "DHW :"); + linecount = 0; + } + fprintf(trace_file, "0x%04x ",stored_trace_data[i]); + linecount++; + } + fprintf(trace_file, "\n"); + } + break; + default: + /* unknown handle */ + break; + } + stored_tr_dptr = 0; + stored_trace_count = 0; +} + +void add_to_stored_trace IFN1(int, data) +{ + stored_trace_data[stored_tr_dptr++]=data; +} + +#ifdef ANSI +void disktrace (int infoid, int nargs, int hndl, char *fmt, unsigned long a1, + unsigned long a2, unsigned long a3, unsigned long a4, + unsigned long a5) +#else +void disktrace (infoid, nargs, hndl, fmt, a1, a2, a3, a4, a5) +int infoid; +int nargs; +int hndl; +char *fmt; +unsigned long a1; +unsigned long a2; +unsigned long a3; +unsigned long a4; +unsigned long a5; +#endif /* ANSI */ +{ + + + if (relevant (infoid)) + { + switch(hndl) + { + case INW_TRACE_HNDL: + case OUTW_TRACE_HNDL: + if (storing_trace && (stored_trace_hndl != hndl)) + unload_stored_trace(stored_trace_hndl); + if (!storing_trace) + { + storing_trace = TRUE; + stored_trace_hndl = hndl; + strcpy(stored_tr_string, fmt); + stored_infoid = infoid; + } + add_to_stored_trace(a1); + stored_trace_count++; + return; + default: + case 0: + if (storing_trace) + unload_stored_trace(stored_trace_hndl); + storing_trace = FALSE; + break; + } + + if (infoid & DBIOS) + fprintf (trace_file, "DBIOS:"); + + if (infoid & DHW) + fprintf (trace_file, "DHW :"); + + switch (nargs) + { + case 0: + fprintf (trace_file, fmt); + break; + case 1: + fprintf (trace_file, fmt, a1); + break; + case 2: + fprintf (trace_file, fmt, a1, a2); + break; + case 3: + fprintf (trace_file, fmt, a1, a2, a3); + break; + case 4: + fprintf (trace_file, fmt, a1, a2, a3, a4); + break; + case 5: + fprintf (trace_file, fmt, a1, a2, a3, a4, a5); + break; + } + } +} + + +void setdisktrace IFN0() +{ + char l[30]; + int value; + +/* make the compiler happy */ +#if defined(NTVDM) && defined(MONITOR) + value = 0; +#endif + printf ("select disk trace mask\n"); + printf ("\tcmnd info\t%x\n",CMDINFO); + printf ("\texec info\t%x\n",XINFO); + printf ("\texec status\t%x\n",XSTAT); + printf ("\tphys.att\t%x\n",PAD); + printf ("\tio-att\t\t%x\n",IOAD); + printf ("\tportio\t\t%x\n",PORTIO); + printf ("\tints\t\t%x\n",INTRUPT); + printf ("\thw xinfo\t%x\n",HWXINFO); + printf ("\tdata dump\t%x\n",DDATA); + printf ("\tPhys IO\t\t%x\n",PHYSIO); + printf ("\thardware\t\t%x\n",DHW); + printf ("\tbios\t\t%x\n",DBIOS); +#ifdef WDCTRL_BOP + printf ("\twdctrl\t\t%x\n",WDCTRL); +#endif /* WDCTRL_BOP + printf (" .. ? "); + gets (l); + sscanf (l, "%x", &value); + + /* + * automatically select BIOS entry,exit tracing if BIOS + * tracing selected + */ + if (value & DBIOS) + value |= CALL; + disktraceinfo = value; +} +#endif /* nPROD */ + + +/********************************************************/ +/* BIOS mainline and functions */ + +#ifdef ANSI +LOCAL void (*disk_func[]) (void) = +#else +LOCAL void (*disk_func[]) () = +#endif +{ + disk_reset, /* 0x00 */ + return_status, /* 0x01 */ + disk_read, /* 0x02 */ + disk_write, /* 0x03 */ + disk_verify, /* 0x04 */ + format, /* 0x05 */ + badcmd, /* 0x06 */ + badcmd, /* 0x07 */ + get_drive_params, /* 0x08 */ + init_drive, /* 0x09 */ + disk_read, /* 0x0a */ + disk_write, /* 0x0b */ + disk_seek, /* 0x0c */ + disk_reset, /* 0x0d */ + badcmd, /* 0x0e */ + badcmd, /* 0x0f */ + test_ready, /* 0x10 */ + recalibrate, /* 0x11 */ + badcmd, /* 0x12 */ + badcmd, /* 0x13 */ + diagnostics, /* 0x14 */ + read_dasd, /* 0x15 */ + /* 0x16 - 0x19 are all floppy commands */ +}; + +#ifndef PROD +static char *BIOSnames[] = +{ + "reset disk (AH=0)", + "read last status (AH=1)", + "read sectors (AH=2)", + "write sectors (AH=3)", + "verify sectors (AH=4)", + "format track (AH=5)", + "unused (AH=6)", + "unused (AH=7)", + "return current drive parameters (AH=8)", + "set drive geometry for controller (AH=9)", + "read long (AH=0xa)", + "write long (AH=0xb)", + "seek (AH=0xc)", + "alternate disk reset (AH=0xd)", + "unused (AH=0xe)", + "unused (AH=0xf)", + "test drive ready (AH=0x10)", + "recalibrate (AH=0x11)", + "unused (AH=0x12)", + "unused (AH=0x13)", + "diagnostics (AH=0x14)", + "read dasd type (AH=0x15)" +}; +#endif /* nPROD */ + +/* Fixed disk BIOS mainline */ +void disk_io IFN0() +{ + register int BIOS_command; +#ifndef PROD + int ax,bx,cx,dx,es; +#endif + + + IDLE_disk(); + + + /* what function to perform ? */ + /* what command ?? */ + BIOS_command = getAH (); + +#ifndef PROD + + ax = getAX(); + bx = getBX(); + cx = getCX(); + dx = getDX(); + es = getES(); + + dt5(DBIOS, 0, " 0x15) + dt1(DBIOS|CALL, 0, "bad BIOS call (AH=%x)\n", BIOS_command) + else + dt1(DBIOS|CALL, 0, "BIOS call = %s\n", + (unsigned long)BIOSnames[BIOS_command]) + +#endif /* PROD */ + + /* clear up the status before we kick off */ + /* but only if this is NOT a read status command */ + if (BIOS_command != 0x01) + wstatus (STATUS_CLEAR); + + /* setup our command structure from the remaining registers */ + com.drive = getDL () & 0x7f; + com.sectors = getAL (); + com.head = getDH () & 0xf; + com.cylinder_low = getCH (); + com.cylinder_high = (getCL () & 0xc0) >> 6; + com.start_sector = getCL () & 0x3f; + com.xfersegment = getES () + ((getBX ()) >> 4); + com.xferoffset = getBX () & 0x0f; + + /* DMA boundary check */ + if (BIOS_command == 0x0a || BIOS_command == 0x0b) + { + maxsectors = 127; + maxoffset = 4; + } + else + { + maxsectors = 128; + maxoffset = 0; + } + + /* call our function if sensible ie the drive requested exists */ + /* and the BIOS command is in a sensible range */ + if (check_drive (com.drive) + && BIOS_command < 0x16 && BIOS_command >= 0x00) + { + /* call it */ + (*disk_func[BIOS_command]) (); + } + else + { + badcmd (); + } + + /* setup the applications return */ + if (BIOS_command != 0x15) + setAH (rstatus ()); + if (rstatus ()) + { + /* + * Command has failed - set the carry flag. We also + * do some tracing if the command is not 'status'. The + * latter is excluded as it is sometimes used as a 'poll' + * of a device. + */ +#ifndef PROD + if (BIOS_command != 8) { + assert0 (NO,"FAST DISK COMMAND FAILED \n"); + assert1 (NO,"STATUS %x ", rstatus ()); + assert1 (NO,"BIOS_command %x \n", BIOS_command); + } +#endif /* PROD */ + setCF (1); /* cmd fails */ + } + else + setCF (0); /* cmd ok */ + dt2(DBIOS|CALL, 0, "CF=%c, status=%x(hex)\n", + getCF()?'T':'F',(unsigned)rstatus()) +} + +/*0x?? badcommand catch all */ +LOCAL void badcmd IFN0() +{ + wstatus (STATUS_BAD_COMMAND); +} + +/*0x00 reset the hard disk system */ +LOCAL void disk_reset IFN0() +{ + register int i; + + /* interupts on */ + enable_disk_interrupts (); + + /* do reset for the attached drives */ + for (i = 0; i < 2; i++) + { + if (drivetab[i].connected) + { + host_fdisk_seek0 (i); + + com.drive = i; + init_drive (); + } + } + wstatus (STATUS_CLEAR); +} + +/*0x01 send back the status byte */ +LOCAL void return_status IFN0() +{ + setAL (rstatus ()); + dt1(DBIOS|CMDINFO, 0, "\treturned status = %x\n", (unsigned)rstatus()) + wstatus (STATUS_CLEAR); +} + +#ifdef ERROR +#undef ERROR +#endif + +#define ERROR() {\ + werror (ERROR_NO_ID | ERROR_COMMAND_ABORT); \ + wstatus (STATUS_ERROR); \ + return;\ + } + +/*0x02 disk read sector(s) */ +LOCAL void disk_read IFN0() +{ + long offset; + host_addr inbuf; + sys_addr pdata; + + /* find offset into the hd file */ + if ((offset = dosearchid ()) == IDMISMATCH) + ERROR(); + + dt3(DBIOS|CMDINFO, 0, "\t%d sectors to read, \n\tbuffer at [%x:%x]\n", com.sectors, (unsigned)getES(), (unsigned) getBX()) + + if (checkdatalimit ()) + { + sas_store(HF_INT_FLAG, 0); + + /* read to where ? */ + pdata = effective_addr (getES (), getBX ()); + + if (!(inbuf = (host_addr)sas_transbuf_address (pdata, com.sectors*512L))) + { + assert0 (NO,"No BUFFER in disk_read"); + ERROR(); + } + + dt1(DBIOS|XINFO,0, "\t\trd buffer from card -> memory (offset %x)\n", pdata ); + + if (!host_fdisk_rd (com.drive, offset, com.sectors,(char *) inbuf)) + ERROR(); + + /* now store what we read */ + sas_stores_from_transbuf (pdata, inbuf, com.sectors*512L); + } + else + { + /* status set by function */ + ERROR(); + } + wstatus (STATUS_CLEAR); + setAL ((unsigned char) com.sectors); +} + +/*0x03 disk write sector(s) */ +LOCAL void disk_write IFN0() +{ + long offset; + host_addr outbuf; + sys_addr pdata; + + /* check for read_only disk */ + if (!config_get_active(C_HARD_DISK1_NAME + com.drive)) + { + werror (ERROR_READ_ONLY_MEDIA); /* floppy write prot */ + wstatus (STATUS_ERROR); + return; + } + + /* find offset into the hd file */ + if ((offset = dosearchid ()) == IDMISMATCH) + ERROR(); + + /* check for segment wrap around */ + if (checkdatalimit ()) + { + sas_store(HF_INT_FLAG, 0); + + /* write from where */ + pdata = effective_addr (getES (), getBX ()); + + /* get the transfer buffer */ + if (!(outbuf = (host_addr)sas_transbuf_address (pdata, com.sectors*512L))) + { + assert0 (NO,"No BUFFER in disk_write\n"); + ERROR(); + } + + /* load our stuff to the transfer buffer */ + sas_loads_to_transbuf (pdata, outbuf, com.sectors*512L); + + if (!host_fdisk_wt (com.drive, offset, com.sectors, (char *)outbuf)) + ERROR(); + } + else + { + ERROR(); + } + wstatus (STATUS_CLEAR); + setAL ((unsigned char) com.sectors); +} + +/*0x04 disk verify sector */ +LOCAL void disk_verify IFN0() +{ + /* this is a dummy really */ + wstatus (STATUS_CLEAR); +} + +/*0x05 format track is this EVER used ?? */ +LOCAL void format IFN0() +{ + register int i = 0; + + /* 17 sectors/track */ + while (i < 17) + { + /* one sector at a time */ + com.sectors = 1; + + /* start at this sector */ + com.start_sector = i; + + /* write to disk */ + disk_write (); + + if (rstatus ()) + { + /* we have failed */ + return; + } + + i++; /* next sector */ + } +} + +/*0x06-0x07 bad commands */ + +/*0x08 get drive parameters */ +LOCAL void get_drive_params IFN0() +{ + /* valid drive or what ?? */ + if (check_drive (com.drive)) + { + long maxcylinder = 0; + + getdpb (com.drive); + + /* how many drives are there */ + if (drivetab[1].connected) + setDL (2); + else + setDL (1); + + /* number of heads 0 - max */ + setDH (dpb[com.drive].heads - 1); + + /* number of cylinders is max addressable - 0th - diagnostic */ + maxcylinder = dpb[com.drive].cyls - 2; + setCH (maxcylinder & 0xff); + setCL (dpb[com.drive].sectors | ((maxcylinder >> 8) << 6)); + + /* we are happy */ + wstatus (STATUS_CLEAR); + setAX (0); + } + else + { + /* oooooooops */ + wstatus (STATUS_INIT_FAIL); + setAX (STATUS_INIT_FAIL); + setDX (0); + setCX (0); + } +} + +/*0x09 initialise drives */ +LOCAL void init_drive IFN0() +{ + /* another dummy really */ + getdpb (com.drive); + if (drivetab[com.drive].connected) + wstatus (STATUS_CLEAR); + else + wstatus (STATUS_INIT_FAIL); +} + +/*0x0a read long mapped to 0x02 */ +/*0x0b write long mapped to 0x03 */ +/*0x0c seek */ +LOCAL void disk_seek IFN0() +{ + /* don't do anything physical here just do a search and set result */ + + com.sectors = 1; /* Awful frig to stop false fails */ + + if (dosearchid () == IDMISMATCH) + ERROR(); + + /* no problem */ + wstatus (STATUS_CLEAR); +} + +/*0x0d reset disk system mapped to 0x00*/ +/*0x0e-0x0f bad commands */ +/*0x10 give drive status */ +LOCAL void test_ready IFN0() +{ + register half_word status; + + /* read our status, check for a fault if there is a fault */ + /* then fix the status and tell them we failed */ + /* the only fault possible is an error state */ + status = rstatus (); + if (status & STATUS_ERROR) + { + /* read the error status */ + status = rerror (); + if (status & ERROR_NO_ID) + { + wstatus (STATUS_RECORD_NOT_FOUND); + } + else + { + if (status & ERROR_COMMAND_ABORT) + { + wstatus (STATUS_BAD_COMMAND); + dt1(DBIOS|CMDINFO, 0, "\tdrive %d not ready\n", com.drive) + } + else + { + wstatus (STATUS_NO_ERROR); + dt1(DBIOS|CMDINFO, 0, "\tdrive %d ready\n", com.drive) + } + } + } + else + { + wstatus (STATUS_CLEAR); + dt1(DBIOS|CMDINFO, 0, "\tdrive %d ready\n", com.drive) + } +} + +/*0x11 recalibrate */ +LOCAL void recalibrate IFN0() +{ + if (!drivetab[com.drive].connected) + wstatus (STATUS_ERROR); + else + wstatus (STATUS_CLEAR); + host_fdisk_seek0 (com.drive); +} + +/*0x12-0x13 bad commands */ +/*0x14 controller internal diagnostic */ +LOCAL void diagnostics IFN0() +{ + /* return the controller ok - what controller */ + setAH (0); + wstatus (STATUS_CLEAR); + dt0(DBIOS|CMDINFO, 0, "\tcontroller diags.ok\n") +} + +/*0x15 get disk type */ +LOCAL void read_dasd IFN0() +{ + register int blocks; + + wstatus (STATUS_CLEAR); + if ((!drivetab[com.drive].connected) && com.drive > 0) + { + /* drive not availiable */ + setAX (0); + + /* no blocks */ + setCX (0); + setDX (0); + setCF (0); + dt0(DBIOS|CMDINFO, 0, "\tdrive 1 not available\n") + return; + } + + /* get physical address of disk param block for drive */ + getdpb (com.drive); + + /* set the number of blocks */ + blocks = (dpb[com.drive].cyls - 1) * dpb[com.drive].heads * dpb[com.drive].sectors; + setCX (blocks / 256); + setDX (blocks % 256); + + /* fixed disk exists */ + setAH (3); + setCF (0); + dt2(DBIOS|CMDINFO, 0, "\tdrive (%d) has %d blocks available\n", com.drive, blocks) +} + +/*0x16 - 0x19 handled by floppy controller */ + +/********************************************************/ +/* Support functions */ + +/* read the status register */ +LOCAL UTINY rstatus IFN0() +{ + UTINY disk_stat; + + /* read the BIOS variable */ + disk_stat = sas_hw_at(DISK_STATUS1); + return (disk_stat); +} + +/* write the status register */ +LOCAL void wstatus IFN1(UTINY,value) +{ + /* set BIOS var */ + sas_store (DISK_STATUS1, value); +} + +LOCAL UTINY rcmos IFN1(int, index) +{ + UTINY value; + + cmos_outb (CMOS_PORT, index); + cmos_inb (CMOS_DATA, &value); + return value; +} + +LOCAL void wcmos IFN2(int,index,UTINY,value) +{ + cmos_outb (CMOS_PORT, index); + cmos_outb (CMOS_DATA, value); +} + +/* get the disk parameter block for a given drive */ +LOCAL void getdpb IFN1(int, drive) +{ + sys_addr ivt; + sys_addr pdpb; + unsigned short offset; + unsigned short segment; + + /* choose apropriate vector */ + if (!drive) + ivt = IVT41; + else + ivt = IVT46; + + /* read IVT to get address of disk parameter block */ + offset = sas_w_at(ivt); + segment = sas_w_at(ivt + 2); + pdpb = effective_addr ((unsigned long) segment, offset); + + /* read the relevant params */ + dpb[drive].cyls = sas_w_at(pdpb); + dpb[drive].heads = sas_hw_at(pdpb + 2); + dpb[drive].sectors = sas_hw_at(pdpb + 14); +} + +/* detect segment overflow when reading/writing disk */ +LOCAL int checkdatalimit IFN0() +{ + if (com.sectors > maxsectors) + { + wstatus (STATUS_DMA_BOUNDRY); + dt1(DBIOS|XINFO, 0, "\t\ttoo many sectors (%d(dec))to transfer\n", +com.sectors) + return (0); + } + else + { + if (com.sectors == maxsectors) + { + if (com.xferoffset > maxoffset) + { + dt2(DBIOS|XINFO, 0, "\t\tat max.sectors(%d(dec)), bad offset(%x(hex)) for transfer\n", com.sectors, com.xferoffset) + wstatus (STATUS_DMA_BOUNDRY); + return (0); + } + } + } + return (1); +} + +/* simulate search on hard disk for cyl,hd,sec id field */ +LOCAL long dosearchid IFN0() +{ + long maxhead, cylinder, bytes_per_cyl, bytes_per_track; + + maxhead = (dpb[com.drive].heads-1) & 0xf; + + /* head ok? (heads numbered from 0 - maxhead) */ + if (com.head > maxhead) + { + return (IDMISMATCH); + } + + /* + * sector ok? (assumes all tracks have been formatted with sector ids + * 1 - nsecspertrack which is DOS standard) + */ + if (com.start_sector == 0 || + com.start_sector > dpb[com.drive].sectors || + com.sectors <= 0) + { + return (IDMISMATCH); + } + + /* set up the correct cylinder */ + cylinder = (((unsigned long) com.cylinder_high) << 8) + + (unsigned long) com.cylinder_low; + + /* + * cylinder ok? (we've imposed an artificial limit on the maximum + * cylinder number based upon the file size) + */ + if (cylinder >= dpb[com.drive].cyls) + { + return (IDMISMATCH); + } + + bytes_per_track = dpb[com.drive].sectors * 512L; + bytes_per_cyl = bytes_per_track * (maxhead + 1); + + return (cylinder * bytes_per_cyl + com.head * + bytes_per_track + (com.start_sector - 1L) * 512L); +} + +/* check the drive is valid for the command */ +LOCAL int check_drive IFN1(int, drive) +{ + if (!drive) + return (1); + if ((drive > 1) || (drive == 1 && !drivetab[1].connected)) + { + badcmd (); + return (0); + } + return (1); +} + +/* write to the error flag */ +LOCAL UTINY error_register; +LOCAL void werror IFN1(UTINY,error) +{ + error_register = error; +} + +/* read the error register */ +LOCAL UTINY rerror IFN0() +{ + return (error_register); +} + +#define INTB01 (io_addr)0xa1 +#define INTA01 (io_addr)0x21 +LOCAL void enable_disk_interrupts IFN0() +{ + UTINY value; + + inb (INTB01, &value); + value &= 0xbf; + outb (INTB01, value); + inb (INTA01, &value); + value &= 0xfb; + outb (INTA01, value); +} + +/********************************************************/ +/* the following are called by fdisk_physattach and detach and just initialise this */ +/* cut down BIOS */ + +/* tell the turbo bios a drive is attached */ +GLOBAL void fast_disk_bios_attach IFN1(int, drive) +{ + drivetab[drive].connected = 1; +} + +/* tell the turbo bios a drive is unattached */ +GLOBAL void fast_disk_bios_detach IFN1(int, drive) +{ + drivetab[drive].connected = 0; +} + + +#ifdef WDCTRL_BOP + +/* ===================================== wdctrl_bop =========================== + * PURPOSE: + * BOP to allow fast (32-bit) disk access in Windows + * + * based on disk_read and disk_write + * + * INPUT: + * Intel registers set up as: + * EAX Start sector + * ECX Number of sectors + * DS:EBX intel buffer address (just EBX in flat mode) + * DL drive (80h or 81h) + * DH command (BDC_READ or BDC_WRITE) + * + * + * OUTPUT: + * CF set if error, clear on success + * ============================================================================ + */ + +#define BDC_READ 0 /* read n sectors, called in flat memory model */ +#define BDC_WRITE 1 /* write n sectors, called in flat memory model */ +#define WDCTRL_TEST 0xff /* read n sectors, called during real mode init */ + +GLOBAL void wdctrl_bop IFN0() +{ + + IUM16 command; + + IDLE_disk(); + + /* what command ?? */ + command = getDH(); + +#ifndef PROD + /* #ifndef PROD so the tests don't occur in PROD version */ + { + IUM32 cs = getCS(); + IUM32 eip = getEIP(); + + if (command == BDC_READ) + { + dt2(WDCTRL, 0, "WDCTRL READ: called from %04x:%08x\n", + cs, eip); + } + else if (command == BDC_WRITE) + { + dt2(WDCTRL, 0, "WDCTRL WRITE: called from %04x:%08x\n", + cs, eip); + } + else + { + dt3(WDCTRL, 0, "WDCTRL command %d: called from %04x:%08x\n", + command, cs, eip); + } + } +#endif + + /* clear up the status before we kick off */ + wstatus (STATUS_CLEAR); + + /* setup our command structure from the remaining registers */ + com.drive = getDL () & 0x7f; + com.sectors = getECX (); + com.start_sector = getEAX (); + com.xferoffset = getEBX(); + + dt4(WDCTRL, 0, "WDCTRL: drive=%d start_sector=%d num sectors=%d xfer addr %08x\n", + com.drive, com.start_sector, com.sectors, + com.xferoffset); + + maxsectors = 128; + maxoffset = 0; + + /* call our function if sensible ie the drive requested exists */ + /* and the BIOS command is in a sensible range */ + if (check_drive (com.drive) && + command >= BDC_READ && command <= BDC_WRITE) + { + long offset; + host_addr buf; + IU8 *phys_addr; + + /* check for segment overflow and that we aren't writing to + * a read-only disk + */ + if (checkdatalimit () && + ((command == BDC_READ) || + config_get_active(C_HARD_DISK1_NAME + com.drive))) + { + sas_store(HF_INT_FLAG, 0); + + /* Convert sector to offset in file */ + offset = com.start_sector * 512L; + + if (!(buf = (host_addr)sas_transbuf_address (com.xferoffset, com.sectors*512L))) + { + assert0 (NO,"No BUFFER in wdctrl_bop"); + ERROR(); + } + + if (command == BDC_READ) + { + if (!host_fdisk_rd (com.drive, offset, com.sectors, (char *) buf)) + { + ERROR(); + } + /* now store what we read into intel memory */ + sas_stores_from_transbuf(com.xferoffset, buf, com.sectors*512L); + } + else /* BDC_WRITE */ + { + /* load our stuff from intel memory to the transfer buffer */ + sas_loads_to_transbuf (com.xferoffset, buf, com.sectors*512L); + if (!host_fdisk_wt (com.drive, offset, com.sectors, (char *)buf)) + { + ERROR(); + } + } + } + else /* checkdatalimit failed */ + { + /* status set by function */ + ERROR(); + } + wstatus (STATUS_CLEAR); + setAL ((unsigned char) com.sectors); + } + else if (command == WDCTRL_TEST) + { + /* This path used by wdrminit.asm to check bop is there and is + * reading data OK. + */ + long offset; + host_addr buf; + sys_addr pdata; + + /* check for segment overflow and that we aren't writing to + * a read-only disk + */ + if (checkdatalimit ()) + { + sas_store(HF_INT_FLAG, 0); + + /* read/write where ? */ + com.xfersegment = getDS(); + dt2(WDCTRL, 0, "WDCTRL: addr %04:%08x\n", + com.xfersegment, com.xferoffset); + + pdata = effective_addr (com.xfersegment, com.xferoffset); + + /* Convert sector to offset in file */ + offset = com.start_sector * 512L; + + if (!(buf = (host_addr)sas_transbuf_address (pdata, com.sectors*512L))) + { + assert0 (NO,"No BUFFER in wdctrl_bop"); + ERROR(); + } + + if (!host_fdisk_rd (com.drive, offset, com.sectors, (char *) buf)) + { + ERROR(); + } + /* now store what we read */ + sas_stores_from_transbuf (pdata, buf, com.sectors*512L); + } + else /* checkdatalimit failed */ + { + /* status set by function */ + ERROR(); + } + wstatus (STATUS_CLEAR); + setAL ((unsigned char) com.sectors); + } +#ifndef PROD +/* These are for debugging scatter gather - I never had one and don't know + * if the intel side is correct... + */ +else if (command == 4) +{ + /* Just to let me know we've got a scatter/gather loop */ + dt0(WDCTRL, 0, "wdctrl_bop: scatter gather detected ********\n"); + force_yoda(); + return; +} +else if (command == 5) +{ + /* Just to let me know we've got a scatter/gather loop */ + dt0(WDCTRL, 0, "wdctrl_bop: scatter gather processing ********\n"); + force_yoda(); + return; +} +/* + * end of debugging commands + */ +#endif /* PROD */ + else + { + badcmd (); + } + + setAH (rstatus ()); + + if (rstatus ()) + { + /* + * Command has failed - set the carry flag. We also + * do some tracing if the command is not 'status'. The + * latter is excluded as it is sometimes used as a 'poll' + * of a device. + */ +#ifndef PROD + assert0 (NO,"FAST DISK COMMAND FAILED \n"); + assert1 (NO,"STATUS %x ", rstatus ()); + assert1 (NO,"command %x \n", command); +#endif /* PROD */ + setCF (1); /* cmd fails */ + } + else + { + setCF (0); /* cmd ok */ + } + + dt2(WDCTRL, 0, "CF=%c, status=%x(hex)\n", + getCF()?'1':'0',(unsigned)rstatus()); +} +#endif /* WDCTRL_BOP */ diff --git a/private/mvdm/softpc.new/base/disks/fdisk.c b/private/mvdm/softpc.new/base/disks/fdisk.c new file mode 100644 index 000000000..52b1b9cfd --- /dev/null +++ b/private/mvdm/softpc.new/base/disks/fdisk.c @@ -0,0 +1,1919 @@ +#include "insignia.h" +#include "host_def.h" + +/* + * INSIGNIA (SUB)MODULE SPECIFICATION ----------------------------- + * + * + * THIS PROGRAM SOURCE FILE IS SUPPLIED IN CONFIDENCE TO THE CUSTOMER, THE + * CONTENTS OR DETAILS OF ITS OPERATION MUST NOT BE DISCLOSED TO ANY + * OTHER PARTIES WITHOUT THE EXPRESS AUTHORISATION FROM THE DIRECTORS OF + * INSIGNIA SOLUTIONS LTD. + * + * + * DOCUMENT : + * + * RELATED DOCS : WD2010-05 datasheet WD11C00C-22 (RMAC) eng.spec + * (Intel 82062 ... very similar to WD2010) IBM PC XT286 tech.ref + * + * DESIGNER : Jerry Kramskoy + * + * REVISION HISTORY : First version : 14-Sep-88. + * + * SUBMODULE NAME : fdisk + * + * SOURCE FILE NAME : fdisk.c + * + * PURPOSE : emulate fixed disk controller and sector buffer + * manager components of AT dual card. + * + * SccsID = @(#)fdisk.c 1.35 08/31/93 Copyright Insignia Solutions Ltd. + * + * + * [1.INTERMODULE INTERFACE SPECIFICATION] + * + * [1.0 INCLUDE FILE NEEDED TO ACCESS THIS INTERFACE FROM OTHER SUBMODULES] + * + * INCLUDE FILE : fdisk.gi + * + * [1.1 INTERMODULE EXPORTS] + * + * PROCEDURES() : fdisk_inb((io_addr)port, (unsigned char *)value) + * (uchar)fdisk_read_dir((io_addr)port, (unsigned char *)value) (void) + * fdisk_outb((io_addr)port, (unsigned char )value) + * fdisk_inw((io_addr)port, (unsigned short *)value) (void) + * fdisk_outw((io_addr)port,(unsigned short)value) (void) + * (void) fdisk_reset() (int) fdisk_physattach((int)driveno, (char + * *)name) (void) fdisk_physdetach((int)driveno) (void) fdisk_ioattach() + * (void) fdisk_iodetach() + * + * DATA : none + * + * ------------------------------------------------------------------------- + * [1.2 DATATYPES FOR [1.1] (if not basic C types)] + * + * STRUCTURES/TYPEDEFS/ENUMS: + * + * ------------------------------------------------------------------------- + * [1.3 INTERMODULE IMPORTS] (not o/s objects or standard libs) + * + * PROCEDURES() : none + * + * DATA : none + * + * ------------------------------------------------------------------------- + * + * [1.4 DESCRIPTION OF INTERMODULE INTERFACE] + * + * [1.4.1 IMPORTED OBJECTS] + * + * FILES ACCESSED : disk image file(s) for C: (and D:) + * + * DEVICES ACCESSED : none + * + * SIGNALS CAUGHT : none + * + * SIGNALS ISSUED : none + * + * + * [1.4.2 EXPORTED OBJECTS] + * ========================================================================= + * PROCEDURE : fdisk_inb((io_addr)port, (unsigned char *)value) + * fdisk_outb((io_addr)port, (unsigned char)value) + * + * PURPOSE : i/o space read (write) of a taskfile register these + * should be byte accesses. + * + * fdisk_inw((io_addr)port, (unsigned short *)value) fdisk_outw((io_addr)port, + * (unsigned short)value) + * + * PURPOSE : i/o space read (write) of next index into sector + * buffer. (for port 1f0). Not normal usage for accessing taskfile. + * + * + * PARAMETERS + * + * port : the i/o address to read. Taskfile addresses are (hex): (1f0) + * - data register (see fdisk_inw) 1f1 - error register 1f2 + * - sector count register 1f3 - sector number register 1f4 + * - cylinder low register 1f5 - cylinder high register 1f6 + * - drive/head register 1f7 - status register + * + * value : (pointer to) byte (short) to receive the value contained in + * the specified register. + * + * GLOBALS : none. + * + * RETURNED VALUE : copy of returned value (inb, inw) + * + * DESCRIPTION : this procedure returns the contents of the specified + * register, having called any active state machine (which may update the + * status). Each disk command has a corresponding state machine, which gets + * initialised when the command is issued, and subsequently called as the + * command progresses. Only those commands involving data transfer between + * the host (cpu) and the adaptor can cause multiple calls to the state + * machine + * + * ERROR INDICATIONS : none + * + * ERROR RECOVERY : none + * ========================================================================= + * PROCEDURE : (unsigned char) fdisk_read_dir((io_addr)port, + * (unsigned char *)value) + * + * PURPOSE : return the value of the 7 bits in the fixed disk + * register pertinent to the fixed disk. (cooperates with floppy) + * + * PARAMETERS : as per fdisk_inb() + * + * GLOBALS : the taskfile + * + * RETURNED VALUE : value of digital input register (at port 0x3f7) + * + * DESCRIPTION : obvious + * + * ERROR INDICATIONS : none + * + * ERROR RECOVERY : none + * + * ========================================================================= + * PROCEDURE : fdisk_ioattach() fdisk_iodetach() + * + * PURPOSE : attach/detach the fixed disk components to the + * io-subsytem. plug/unplug the configured drives to the disk controller (if + * any). Patches drive parameter block table entries 0 and 1 in system ROM. + * + * PARAMETERS : none + * + * GLOBALS : the drive structure [fd, wiredup members] + * + * RETURNED VALUE : none + * + * DESCRIPTION : attaches/detaches to ios as usual. For the drive(s), + * the drive structure is used to see whether the disk image(s) are opened or + * non-existent. Based on existence, drive structure indicates plugged + * in/unplugged. On attach, disk parameter block table entries 1 and 2 (entry + * 1 for drive type 1 is used for the C drive (drive 0), and entry 2 for + * drive type 2 is used for the D drive (drive 1)) are edited to reflect the + * #.of cylinders available. + * + * ERROR INDICATIONS : none + * + * ERROR RECOVERY : none + * ========================================================================= + * PROCEDURE : fdisk_physattach(driveno, name) + * fdisk_physdetach(driveno) + * + * PURPOSE : validate and attach host resource(s) for drive(s) + * /detach host resource(s). + * + * PARAMETERS : driveno - 0 (drive 0 (C:)) or 1 + * (drive 1 (D:)) name - pointer to string for hard disk file + * name. If null string, then the indicated drive is taken to not exist. + * + * GLOBALS : the drive structure [fd, maxcyl members] + * + * RETURNED VALUE : none + * + * DESCRIPTION : for attaching, use host validation procedure to + * validate and open the specified drive image (if not the null string, else + * mark as no drive available). Use the #.of cylinders returned by the + * validation to set the max.cylinder number (= #.cyls - 1) into the drive + * structure for the drive. + * + * ERROR INDICATIONS : none + * + * ERROR RECOVERY : none + * + * ========================================================================= + * PROCEDURE : fdisk_reset() + * + * PURPOSE : power up the disk subsystem. + * + * PARAMETERS : none + * + * GLOBALS : the taskfile + * + * RETURNED VALUE : none + * + * DESCRIPTION : sets registers etc. to their powered-up, pre-POST + * values. + * + * ERROR INDICATIONS : none + * + * ERROR RECOVERY : none + * + * + * ========================================================================= + * [3.INTERMODULE INTERFACE DECLARATIONS] + * ========================================================================= + * + * [3.1 INTERMODULE IMPORTS] + */ +IMPORT int soft_reset; + +/* [3.1.1 #INCLUDES] */ + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_HDA.seg" +#endif + +#include +#include TypesH +#include StringH +#include "xt.h" +#include "trace.h" +#include CpuH +#include "error.h" +#include "config.h" +#include "ios.h" +#include "ica.h" +#include "dsktrace.h" +#include "debug.h" +#include "sas.h" +#include "quick_ev.h" + +/* [3.1.2 DECLARATIONS] */ + +/* [3.2 INTERMODULE EXPORTS] */ +#include "fdisk.h" + + +/* + * 5.MODULE INTERNALS : (not visible externally, global internally)] + * + * [5.1 LOCAL DECLARATIONS] + */ + +/* [5.1.1 #DEFINES] */ + +/* + * task file ports (9 registers accessed via 7 ports) + */ +#define TFBASE 0x1f0 + +#define TFERROR 0x1f1 +#define TFPCMP 0x1f1 +#define TFSCOUNT 0x1f2 +#define TFSNUM 0x1f3 +#define TFCYLLO 0x1f4 +#define TFCYLHI 0x1f5 +#define TFDRVHD 0x1f6 +#define TFSTATUS 0x1f7 +#define TFCMD 0x1f7 + +/* + * task file indices ... the 7 ports map out to 9 registers (by using the + * read/write io signal) arbitrarily set the write precomp register and the + * command registers at indices 8 and 9 + */ +#define WDERROR 1 +#define WDSCOUNT 2 +#define WDSNUM 3 +#define WDCYLLO 4 +#define WDCYLHI 5 +#define WDDRVHD 6 +#define WDSTAT 7 +#define WDPCMP 8 +#define WDCMD 9 + +/* + * wd2010 command register bits. + */ +#define WDCMD_I 0x08 +#define WDCMD_M 0x04 +#define WDCMD_L 0x02 +#define WDCMD_T 0x01 + +/* + * command decoding constants, where bits 7-4 of command are non-unique + */ +#define DIAG_OR_PARMS 9 +#define DIAG 0 +#define PARMS 1 + +/* + * wd2010 status register bits + */ +#define WDSTATBUSY 0x80 +#define WDSTATDRDY 0x40 +#define WDSTATWFAULT 0x20 +#define WDSTATSEEKCOMPLETE 0x10 +#define WDSTATDRQ 0x08 +#define WDSTATDC 0x04 +#define WDSTATCIP 0x02 +#define WDSTATERROR 0x01 + +/* + * wd2010 error register bits (bits 0,1,6,7 never get set for this emulation + * ... since these reflect bad ECC etc.) + */ +#define WDERRNOID 0x10 +#define WDERRABORT 0x04 + +/* + * io signal + */ +#define IOREAD 0 +#define IOWRITE ~IOREAD + +/* + * interrupt line value + */ +#define IRQDEASSERT 0 +#define IRQCLEAR 1 +#define IRQASSERT ~IRQDEASSERT + +/* + * state control for disk commands + */ +#define START 1 /* new command */ +#define CONTINUE 2 /* command in progress */ +#define BRDY 3 /* sector buffer ready */ +#define BCR 4 /* clear sector buffer counter */ + +#define IDMISMATCH ~0 /* bad seek */ + +/* [5.1.2 TYPEDEF, STRUCTURE, ENUM DECLARATIONS] */ + +/* + * following describes the disk geometry for a drive, and the file descriptor + * for the disk image. + */ +typedef struct _drvinfo +{ + long driveid; + long physattached; + long maxhead; + long maxcyl; + long maxsect; + long nsecspertrack; + long nbytespercyl; + long nbytespertrack; + long wiredup; + long curoffset; +} drvinfo_; + + +/* [5.1.3 PROCEDURE() DECLARATIONS] */ + +#ifdef ANSI +static void restore(int); +static void seek(int); +static void rsector(int); +static void wsector(int); +static void format(int); +static void rverify(int); +static void diagnose(int); +static void setparams(int); +static void bad(int); +static void irq(int); +static void rmac(unsigned short *, int); +static long dosearchid(void); +static void doseek(void); +static int disktobuffer(long); +static int buffertodisk(long); +#else +static void restore(); +static void seek(); +static void rsector(); +static void wsector(); +static void format(); +static void rverify(); +static void diagnose(); +static void setparams(); +static void bad(); +static void irq(); +static void rmac(); +static long dosearchid(); +static void doseek(); +static int disktobuffer(); +static int buffertodisk(); +#endif /* ANSI */ + +/* + * ----------------------------------------------------------------------- + * [5.2 LOCAL DEFINITIONS] + * + * [5.2.1 INTERNAL DATA DEFINITIONS + */ + +/* + * dual card can support 2 drives max. + */ +static drvinfo_ drives[2]; + +/* + * pointer to the currently selected drive. (gets set up whenever the + * drive/head register in the taskfile gets written to) + */ +static drvinfo_ *pseldrv; + +/* + * the fixed disk register (write only, 0x3f6) + */ +static unsigned char fixeddiskreg; + +/* + * the digital input register .. reflects state of head and drive selected + */ +static unsigned char digipreg; + +/* + * the wd2010 taskfile (element [0] is pad byte) ... 9 registers + dummy to + * allow direct table indexing + */ +LOCAL unsigned char taskfile[10]; + +/* + * command dispatch ... based on bits 7-4 of command register as index. + */ +LOCAL void (*dispatch[]) IPT1(int, state) = +{ + bad, + restore, + rsector, + wsector, + rverify, + format, + bad, + seek, + bad, + bad, /* further decoded */ + bad, + bad, + bad, + bad, + bad, + bad, +}; + +/* + * if a command is in progress, this points to the state machine for that + * command + */ +LOCAL void (*activecmd) IPT1(int, state); + +/* + * sector buffer variables + */ +static unsigned char sectindx; +static unsigned short sectbuffer[256]; + +/* [5.2.2 INTERNAL PROCEDURE DEFINITIONS] */ + +/* + * ========================================================================== + * FUNCTION : dosearchid() PURPOSE : simulate + * searching for id field. If out of range for configured + * geometry, return failure, else return appropriate file offset into disk + * image. N.B This assumes that ALL TRACKS have been FORMATTED WITH SECTOR + * ID's 1-#.sectors per track). EXTERNAL OBJECTS: drive info for + * selected drive; taskfile. RETURN VALUE : -1 if bad parameters + * for command else file offset (from byte 0) into hard disk image. INPUT + * PARAMS : RETURN PARAMS : + * ========================================================================== + */ +LOCAL long +dosearchid IFN0() +{ + long head; + long cylinder; + long sector; + + /* + * head ok? (heads numbered from 0 - maxhead) + */ + head = taskfile[WDDRVHD] & 0xf; + + if (head > 7 && !(fixeddiskreg & 0x8)) + return IDMISMATCH; + + if (head > pseldrv->maxhead) + return IDMISMATCH; + + /* + * sector ok? (assumes all tracks have been formatted with sector ids + * 1 - nsecspertrack which is DOS standard) + */ + sector = taskfile[WDSNUM]; + + if (sector > pseldrv->nsecspertrack || sector <= 0) + return IDMISMATCH; + + /* + * cylinder ok? (we've imposed an artificial limit on the maximum + * cylinder number based upon the file size) + */ + cylinder = ((unsigned long) taskfile[WDCYLHI] << 8) + + (unsigned long) taskfile[WDCYLLO]; + if (cylinder > pseldrv->maxcyl) + return IDMISMATCH; + + return (cylinder * pseldrv->nbytespercyl + head * + pseldrv->nbytespertrack + (sector - 1L) * 512L); +} + +/* + * ========================================================================== + * FUNCTION : updateposregs() PURPOSE : update the + * sector count and number registers. if this produces a track or cylinder + * transfer, then update the head/cylinder registers. This is a guestimate of + * what the WD1015 micro is doing when it handles these situations, and + * programs the WD2010. EXTERNAL OBJECTS: RETURN VALUE : INPUT PARAMS : + * RETURN PARAMS : + * ========================================================================== + */ +LOCAL void +updateposregs IFN0() +{ + (taskfile[WDSCOUNT])--; + if (++taskfile[WDSNUM] > pseldrv->nsecspertrack) + { + int head; + int cylinder; + + /* + * start at sector 1 of next track + */ + taskfile[WDSNUM] = 1; + head = taskfile[WDDRVHD] & 0xf; + if (++head > pseldrv->maxhead) + { + + /* + * need to select next cylinder and use head 0. + */ + taskfile[WDDRVHD] &= 0xf0; + + cylinder = ((unsigned int) taskfile[WDCYLHI] << 8) + taskfile[WDCYLLO]; + taskfile[WDCYLLO] = (++cylinder) & 0xff; + taskfile[WDCYLHI] = cylinder >> 8; + } else + { + + /* + * select next head to read next track + */ + taskfile[WDDRVHD] &= 0xf0; + taskfile[WDDRVHD] |= head; + if (head > 7) + fixeddiskreg |= 8; + } + } +} + +/* + * ========================================================================== + * FUNCTION : doseek() PURPOSE : 'seek' to + * requested cylinder. if requested drive not wired up, then drive will not + * be ready. (and seek will be incomplete). If cylinder exceeds max. get + * drive ready and seek complete, but will get 'id not found' when the track + * gets accessed. EXTERNAL OBJECTS: RETURN VALUE : INPUT PARAMS : + * RETURN PARAMS : + * ========================================================================== + */ +LOCAL void +doseek IFN0() +{ + + /* + * the drive ready status will be set up when the drive/head register + * gets written to. here, just set the seek complete bit in the + * status register appropriately + */ + if (taskfile[WDSTAT] & WDSTATDRDY) + { + dt0(DHW | HWXINFO, 0, "\t\t+SC\n") + taskfile[WDSTAT] |= WDSTATSEEKCOMPLETE; + } else + { + dt0(DHW | HWXINFO, 0, "\t\t-SC\n") + taskfile[WDSTAT] &= ~WDSTATSEEKCOMPLETE; + } +} + +/* + * ========================================================================== + * FUNCTION : restore() PURPOSE : EXTERNAL OBJECTS: + * RETURN VALUE : INPUT PARAMS : state - START or CONTINUE + * RETURN PARAMS : + * ========================================================================== + */ +LOCAL void +restore IFN1(int, state) +{ + UNUSED(state); + dt0(DHW | HWXINFO, 0, "\tRESTORE cmd\n") + doseek(); + if (!(taskfile[WDSTAT] & WDSTATDRDY)) + { + taskfile[WDSTAT] |= WDSTATERROR; + taskfile[WDERROR] = WDERRABORT; + dt0(DHW | HWXINFO, 0, "\t\t+ERROR,err=abort\n") + } + dt0(DHW | HWXINFO, 0, "\t\t-BUSY -CIP\n") + taskfile[WDSTAT] &= ~WDSTATBUSY; + taskfile[WDSTAT] &= ~WDSTATCIP; + rmac((unsigned short *) 0, BCR); + irq(IRQASSERT); +} + +/* + * ========================================================================== + * FUNCTION : seek() PURPOSE : emulate seek command. + * Just sets up appropriate status changes (error condition possibly) + * EXTERNAL OBJECTS: RETURN VALUE : INPUT PARAMS : state - + * START or CONTINUE RETURN PARAMS : + * ========================================================================== + */ +LOCAL void +seek IFN1(int, state) +{ + UNUSED(state); + dt0(DHW | HWXINFO, 0, "\tSEEK cmd\n") + + doseek(); + + /* + * if drive not ready, error + */ + if (!(taskfile[WDSTAT] & WDSTATDRDY)) + { + dt0(DHW | HWXINFO, 0, "\t\t+ERROR,err=abort\n") + taskfile[WDSTAT] |= WDSTATERROR; + taskfile[WDERROR] = WDERRABORT; + } + /* + * deassert 'busy' and 'command in progress'; reset the sector buffer + * counter; issue interrupt + */ + dt0(DHW | HWXINFO, 0, "\t\t-BUSY -CIP\n") + taskfile[WDSTAT] &= ~WDSTATBUSY; + taskfile[WDSTAT] &= ~WDSTATCIP; + rmac((unsigned short *) 0, BCR); + irq(IRQASSERT); +} + +/* + * ========================================================================== + * FUNCTION : rsector() PURPOSE : emulate read + * command. EXTERNAL OBJECTS: RETURN VALUE : INPUT PARAMS : state + * - START or CONTINUE or BRDY RETURN PARAMS : + * ========================================================================== + */ + +LOCAL void +fdisk_pause IFN1(long, junk) +{ + UNUSED(junk); + (*activecmd) (CONTINUE); +} + +LOCAL void +rsector IFN1(int, state) +{ + static int s; + long offset; + + if (state == START) + { + dt0(DHW | HWXINFO, 0, "\tREAD cmd\n") + s = 0; + } + while (1) + switch (s) + { + case 0: + doseek(); + if (!(taskfile[WDSTAT] & WDSTATDRDY)) + { + dt0(DHW | HWXINFO, 0, "\t\t(drv not ready)set err=abort\n") + taskfile[WDERROR] |= WDERRABORT; + s = 3; + continue; + } + s = 1; + case 1: + if ((offset = dosearchid()) == IDMISMATCH) + { + dt0(DHW | HWXINFO, 0, "\t\tset err=abort,noid\n") + taskfile[WDERROR] = WDERRNOID | WDERRABORT; + s = 3; + continue; + + } + s = 2; + case 2: + rmac((unsigned short *) 0, BCR); + + /* + * disk controller transfers disk data to sector + * buffer + */ + if (!disktobuffer(offset)) + { + dt0(DHW | HWXINFO, 0, "\t\tset err=abort,noid\n") + taskfile[WDERROR] = WDERRNOID | WDERRABORT; + s = 3; + continue; + + } + rmac((unsigned short *) 0, BCR); + updateposregs(); + + /* + * at this point, tell the host to unload the sector + * buffer, and wait for BRDY signal from sector + * buffer when unloaded. (this will occur once host + * has done 256 inw's or equivalent) + */ + taskfile[WDSTAT] |= WDSTATDRQ; + taskfile[WDSTAT] &= ~WDSTATBUSY; + dt0(DHW | HWXINFO, 0, "\t\t+DRQ -BUSY\n") + + if (taskfile[WDSCOUNT] + /* && (taskfile[WDCMD] & WDCMD_M) ??? M=1 case ??? */ + ) + { + /* more sectors to come */ + irq(IRQASSERT); + s = 30; + } else + { + /* last sector done */ + irq(IRQASSERT); + s = 31; + } + return; + case 3: + + /* + * flag error in status register + */ + taskfile[WDSTAT] |= WDSTATERROR; + taskfile[WDSTAT] |= WDSTATDRQ; + taskfile[WDSTAT] &= ~WDSTATBUSY; + dt0(DHW | HWXINFO, 0, "\t\t+DRQ +ERROR -BUSY\n") + irq(IRQASSERT); + s = 31; + return; + case 30: + + /* + * wait for buffer ready signal from sector buffer + */ + if (state == BRDY) + { + taskfile[WDSTAT] &= ~WDSTATDRQ; + taskfile[WDSTAT] |= WDSTATBUSY; + dt0(DHW | HWXINFO, 0, "\t\t-DRQ +BUSY\n") + irq(IRQDEASSERT); + /* + * Give CPU chance to run while we find the + * next disk sector. In particular the BIOS + * can read the disk status register before + * we raise the next interrupt. This is + * crucial as reading the disk status + * register deasserts the interrupt. + */ + add_q_event_i(fdisk_pause, HOST_FDISK_DELAY_1, 0); + s = 32; + } + return; + case 31: + if (state == BRDY) + { + taskfile[WDSTAT] &= ~WDSTATDRQ; + taskfile[WDSTAT] &= ~WDSTATCIP; + dt0(DHW | HWXINFO, 0, "\t\t-DRQ -CIP\n") + irq(IRQDEASSERT); + rmac((unsigned short *) 0, BCR); + } + return; + case 32: + s = 1; + continue; + } +} + +/* + * ========================================================================== + * FUNCTION : wsector() PURPOSE : handle the + * 'write' command. EXTERNAL OBJECTS: RETURN VALUE : INPUT PARAMS : + * state - START or CONTINUE or BRDY RETURN PARAMS : + * ========================================================================== + */ +LOCAL void +wsector IFN1(int, state) +{ + static int s; + long offset; + + if (state == START) + { + dt0(DHW | HWXINFO, 0, "\tWRITE cmd\n") + s = 0; + } + while (1) + switch (s) + { + case 0: + + /* + * tell host to fill sector buffer + */ + dt0(DHW | HWXINFO, 0, "\t\t+DRQ\n") + taskfile[WDSTAT] |= WDSTATDRQ; + s = 1; + return; + case 1: + + /* + * wait for sector buffer to be filled by host (don't + * issue IRQ first time around) + */ + if (state == BRDY) + { + dt0(DHW | HWXINFO, 0, "\t\t-DRQ\n") + taskfile[WDSTAT] &= ~WDSTATDRQ; + s = 2; + continue; + } + return; + case 2: + + /* + * check drive is ready, and can find sector to write + * to. + */ + doseek(); + if (!(taskfile[WDSTAT] & WDSTATDRDY)) + { + dt0(DHW | HWXINFO, 0, "\t\t(drv not ready)err=abort\n") + taskfile[WDERROR] |= WDERRABORT; + s = 10; + continue; + } else + { + if ((offset = dosearchid()) == IDMISMATCH) + { + dt0(DHW | HWXINFO, 0, "\t\terr=abort,noid\n") + taskfile[WDERROR] = WDERRNOID | WDERRABORT; + s = 10; + continue; + + } + s = 3; + continue; + } + case 3: + rmac((unsigned short *) 0, BCR); + + /* + * disk controller transfers sector buffer to disk + */ + if (!buffertodisk(offset)) + { + + /* + * any errors we report as missing ID + */ + dt0(DHW | HWXINFO, 0, "\t\terr=abort,noid\n") + taskfile[WDERROR] = WDERRNOID | WDERRABORT; + s = 10; + continue; + + } + rmac((unsigned short *) 0, BCR); + updateposregs(); + if (taskfile[WDSCOUNT]) + { + + /* + * more to go ... tell host to fill sector + * buffer again + */ + dt0(DHW | HWXINFO, 0, "\t\t+DRQ\n") + taskfile[WDSTAT] |= WDSTATDRQ; + irq(IRQASSERT); + s = 4; + return; + } else + /* + * all done + */ + s = 11; + continue; + case 4: + + /* + * wait for sector buffer to be filled by host + */ + if (state == BRDY) + { + dt0(DHW | HWXINFO, 0, "\t\t-DRQ\n") + taskfile[WDSTAT] &= ~WDSTATDRQ; + + /* + * prepare for next sector + */ + s = 2; + continue; + } + return; + case 10: + dt0(DHW | HWXINFO, 0, "\t\tset ERROR\n") + taskfile[WDSTAT] |= WDSTATERROR; + case 11: + dt0(DHW | HWXINFO, 0, "\t\t-BUSY -CIP\n") + taskfile[WDSTAT] &= ~WDSTATBUSY; + taskfile[WDSTAT] &= ~WDSTATCIP; + irq(IRQASSERT); + rmac((unsigned short *) 0, BCR); + return; + } +} + +/* + * ========================================================================== + * FUNCTION : format() PURPOSE : handle the + * 'format' command. almost a 'dummy' command, but needs to make host write + * to sector buffer. EXTERNAL OBJECTS: RETURN VALUE : INPUT PARAMS : + * state - START or CONTINUE or BRDY RETURN PARAMS : + * ========================================================================== + */ +LOCAL void +format IFN1(int, state) +{ + static int s; + + if (state == START) + { + dt0(DHW | HWXINFO, 0, "\tFORMAT cmd\n") + s = 0; + } + while (1) + switch (s) + { + case 0: + + /* + * initialise sector buffer tell application to write + * to sector buffer + */ + rmac((unsigned short *) 0, BCR); + dt0(DHW | HWXINFO, 0, "\t\t+DRQ\n") + taskfile[WDSTAT] |= WDSTATDRQ; + s = 1; + return; + case 1: + + /* + * wait for sector buffer to fill + */ + if (state == BRDY) + { + + /* + * no more data, thanks. + */ + doseek(); + dt0(DHW | HWXINFO, 0, "\t\t-DRQ\n") + taskfile[WDSTAT] &= ~WDSTATDRQ; + if (!(taskfile[WDSTAT] & WDSTATDRDY)) + { + + /* + * formatting thin air! + */ + s = 2; + continue; + } else + { + int cylinder; + + cylinder = ((unsigned int) taskfile[WDCYLHI] << 8) + + taskfile[WDCYLLO]; + if (cylinder > pseldrv->maxcyl) + + /* + * formatting the spindle! + */ + s = 2; + else + s = 3; + continue; + } + } + return; + case 2: + dt0(DHW | HWXINFO, 0, "\t\t+ERROR,err=abort") + taskfile[WDERROR] |= WDERRABORT; + taskfile[WDSTAT] |= WDSTATERROR; + s = 3; + case 3: + irq(IRQASSERT); + dt0(DHW | HWXINFO, 0, "\t\t-BUSY -CIP") + taskfile[WDSTAT] &= ~WDSTATBUSY; + taskfile[WDSTAT] &= ~WDSTATCIP; + rmac((unsigned short *) 0, BCR); + return; + } +} + +/* + * ========================================================================== + * FUNCTION : rverify() PURPOSE : handle the + * 'read verify' command. .. basically a dummy command. EXTERNAL OBJECTS: + * RETURN VALUE : INPUT PARAMS : state - START or CONTINUE + * RETURN PARAMS : + * ========================================================================== + */ +LOCAL void +rverify IFN1(int, state) +{ + + UNUSED(state); + /* + * if drive not ready, error + */ + dt0(DHW | HWXINFO, 0, "\tREAD VERIFY cmd\n") + doseek(); + if (!(taskfile[WDSTAT] & WDSTATDRDY)) + { + dt0(DHW | HWXINFO, 0, "\t\t+ERROR,err=abort\n") + taskfile[WDSTAT] |= WDSTATERROR; + taskfile[WDERROR] = WDERRABORT; + } + /* + * deassert 'busy' and 'command in progress'; reset the sector buffer + * counter; issue interrupt + */ + dt0(DHW | HWXINFO, 0, "\t\t-BUSY -CIP\n") + taskfile[WDSTAT] &= ~WDSTATBUSY; + taskfile[WDSTAT] &= ~WDSTATCIP; + rmac((unsigned short *) 0, BCR); + irq(IRQASSERT); +} + +/* + * ========================================================================== + * FUNCTION : diagnose() PURPOSE : handle the + * 'diagnostics' command. EXTERNAL OBJECTS: RETURN VALUE : INPUT + * PARAMS : state - START or CONTINUE RETURN PARAMS : + * ========================================================================== + */ +LOCAL void +diagnose IFN1(int, state) +{ + UNUSED(state); + dt0(DHW | HWXINFO, 0, "\tDIAGNOSTICS cmd\n") + + /* + * flag diagnostics as successful + */ + dt0(DHW | HWXINFO, 0, "\t\terr=1\n") + taskfile[WDERROR] = 1; + + /* + * deassert 'busy' and 'command in progress'; reset the sector buffer + * counter; issue interrupt + */ + dt0(DHW | HWXINFO, 0, "\t\t-BUSY -CIP\n") + taskfile[WDSTAT] &= ~WDSTATBUSY; + taskfile[WDSTAT] &= ~WDSTATCIP; + rmac((unsigned short *) 0, BCR); + irq(IRQASSERT); +} + +/* + * ========================================================================== + * FUNCTION : setparams() PURPOSE : handle the + * 'set parameters' command. EXTERNAL OBJECTS: task file. drives. RETURN + * VALUE : INPUT PARAMS : state - START or CONTINUE + * RETURN PARAMS : + * ========================================================================== + */ +LOCAL void +setparams IFN1(int, state) +{ + + UNUSED(state); + + dt0(DHW | HWXINFO, 0, "\tSET PARAMETERS cmd\n") + + /* + * legal head values are 0 to (nheads-1) + */ + pseldrv->maxhead = taskfile[WDDRVHD] & 0xf; + + /* + * legal sector ids are 1 to nsecspertrack + */ + pseldrv->nsecspertrack = taskfile[WDSCOUNT]; + + /* + * calculate some geometry constants ... the dual card is set up for + * 512 byte sectors. + */ + pseldrv->nbytespertrack = pseldrv->nsecspertrack * 512L; + pseldrv->nbytespercyl = pseldrv->nbytespertrack * (pseldrv->maxhead + 1L); + + + /* + * deassert 'busy' and 'command in progress'; reset the sector buffer + * counter; issue interrupt + */ + dt0(DHW | HWXINFO, 0, "\t\t-BUSY,-CIP,+SC\n") + taskfile[WDSTAT] &= ~WDSTATBUSY; + taskfile[WDSTAT] &= ~WDSTATCIP; + taskfile[WDSTAT] |= WDSTATSEEKCOMPLETE; + rmac((unsigned short *) 0, BCR); + irq(IRQASSERT); +} + +/* + * ========================================================================== + * FUNCTION : bad() PURPOSE : handle unrecognised + * disk commands EXTERNAL OBJECTS: RETURN VALUE : INPUT PARAMS : state + * - START or CONTINUE RETURN PARAMS : + * ========================================================================== + */ +LOCAL void +bad IFN1(int, state) +{ + UNUSED(state); + + dt0(DHW | HWXINFO, 0, "\tBAD cmd\n") + + taskfile[WDSTAT] |= WDSTATERROR; + taskfile[WDSTAT] &= ~WDSTATBUSY; + taskfile[WDSTAT] &= ~WDSTATCIP; + taskfile[WDERROR] = WDERRABORT; + dt0(DHW | HWXINFO, 0, "\t\t-BUSY -CIP +ERROR;err=abort\n") + rmac((unsigned short *) 0, BCR); + irq(IRQASSERT); +} + +/* + * ========================================================================== + * FUNCTION : wd2010() PURPOSE : main + * procedure for the disk controller component of the dual card. This does + * NOT handle sector buffer accesses. EXTERNAL OBJECTS: taskfile,sectbuf. + * RETURN VALUE : INPUT PARAMS : taskindx - index into + * taskfile value - pointer to byte value io + * IOREAD or IOWRITE RETURN PARAMS : *value - set + * if IOWRITE + * ========================================================================== + */ +LOCAL void +wd2010 IFN3(int, taskindx, half_word *, value, int, io) +{ + + /* + * ignore any task file writes if command in progress (unless new + * command) + */ + if ((taskfile[WDSTAT] & WDSTATCIP) && + io == IOWRITE && taskindx != WDCMD) + { + dt0(DHW | HWXINFO, 0, "\tcommand in progress .. write ignored\n") + return; + } + if (io == IOREAD) + { + + /* + * deassert the interrupt request line. + */ + if (taskindx == WDSTAT) + irq(IRQDEASSERT); + + /* + * if a command is in progress, then use this poll as an + * excuse to kick the controller again. + */ + if (taskfile[WDSTAT] & WDSTATCIP) + (*activecmd) (CONTINUE); + + + + /* + * for the status register, return the WD2010 status. The + * real maccoy actually returns the RMAC's status which + * differs from the WD2010 in usage of bit 1. For the WD2010, + * this is the 'command in progress' status. For the RMAC, + * this is derived from the Index signal returned from the + * drive. Since this gives the appearance of being randomish, + * (unless being explicitly examined over a long period of + * time), just use the WD2010 value. + */ + *value = taskfile[taskindx]; + + return; + } + /* + * must be writing to task file and no command is in progress. + */ + taskfile[taskindx] = *value; + if (taskindx == WDCMD) + { + int cmd, drdy; + + /* + * deassert interrupt request, clear error register, set + * 'command in progress' and busy. maintain same status of + * drive ready signal. + */ + irq(IRQDEASSERT); + taskfile[WDERROR] = 0; + drdy = taskfile[WDSTAT] & WDSTATDRDY; + if (drdy) + { + dt0(DHW | HWXINFO, 0, "\t\t+CIP -WF -SC -DRQ -DC -ERROR +BUSY +DRDY\n") + } else + { + dt0(DHW | HWXINFO, 0, "\t\t+CIP -WF -SC -DRQ -DC -ERROR +BUSY -DRDY\n") + } + taskfile[WDSTAT] = WDSTATCIP | WDSTATBUSY | drdy; + + /* + * decode the command + */ + cmd = *value >> 4; + if (cmd == DIAG_OR_PARMS) + { + if ((*value & 0xf) == DIAG) + activecmd = diagnose; + else if ((*value & 0xf) == PARMS) + activecmd = setparams; + else + activecmd = bad; + } else + activecmd = dispatch[cmd]; + + /* + * and start the command off + */ + (*activecmd) (START); + } else if (taskindx == WDDRVHD) + { + + /* + * digital input register reflects head select lines + */ + digipreg = (taskfile[WDDRVHD] & 0xf) >> 2; + + if (taskfile[WDDRVHD] & 0x10) + { + + /* + * drive 1 selected + */ + digipreg |= 2; + + /* + * second drive selected. does it exist? + */ + if (!drives[1].wiredup) + { + /* no */ + pseldrv = (drvinfo_ *) 0; + taskfile[WDSTAT] &= ~WDSTATDRDY; + dt0(DHW | HWXINFO, 0, "\t\t-DRDY\n") + } else + { + /* yes */ + pseldrv = &drives[1]; + taskfile[WDSTAT] |= WDSTATDRDY; + dt0(DHW | HWXINFO, 0, "\t\t+DRDY\n") + } + } else + { + + /* + * first drive selected + */ + + /* + * drive 1 selected + */ + digipreg |= 1; + + if (!drives[0].wiredup) + { + /* no */ + pseldrv = (drvinfo_ *) 0; + taskfile[WDSTAT] &= ~WDSTATDRDY; + dt0(DHW | HWXINFO, 0, "\t\t-DRDY\n") + } else + { + /* yes */ + pseldrv = drives; + taskfile[WDSTAT] |= WDSTATDRDY; + dt0(DHW | HWXINFO, 0, "\t\t+DRDY\n") + } + } + } +} + +/* + * ========================================================================== + * FUNCTION : irq() PURPOSE : assert/deassert the + * fixed disk interrupt line EXTERNAL OBJECTS: RETURN VALUE : INPUT + * PARAMS : line - IRQCLEAR,IRQASSERT or IRQDEASSERT + * RETURN PARAMS : + * ========================================================================== + */ + +void disk_int_call_back IFN1(long, junk) +{ + UNUSED(junk); + ica_hw_interrupt (1,6,1); +} + +LOCAL void +irq IFN1(int, line) +{ + static int intrq = IRQDEASSERT; + switch (line) + { + case IRQCLEAR: + dt0(DHW | INTRUPT, 0, "\t\t** -IRQ\n") + intrq = IRQDEASSERT; + break; + case IRQASSERT: + if (intrq != IRQASSERT) + { + dt0(DHW | INTRUPT, 0, "\t\t** +IRQ\n") + + intrq = IRQASSERT; + + /* + * check interrupts not masked out + */ + if (!(fixeddiskreg & 2)) + add_q_event_i (disk_int_call_back, HOST_FDISK_DELAY_2, 0); + } + break; + case IRQDEASSERT: + if (intrq == IRQASSERT) + { + dt0(DHW | INTRUPT, 0, "\t\t** -IRQ\n") + + intrq = IRQDEASSERT; + + /* JOKER always wants to deassert the real ICA line */ +#ifndef JOKER + if (!(fixeddiskreg & 2)) +#endif + ica_clear_int(1, 6); + } + } +} + +/* + * ========================================================================== + * FUNCTION : rmac() PURPOSE : emulate the buffer + * manager and controller (WD11C00C-22 (RMAC)) which looks after the sector + * buffer. EXTERNAL OBJECTS: RETURN VALUE : INPUT PARAMS : value + * - pointer to short to write/read with buffer. sig - READ,WRITE or + * BCR (BCR resets the buffer index .. simulates the BCR pulse) RETURN PARAMS + * : + * ========================================================================== + */ +LOCAL void +rmac IFN2(USHORT *, value, int, sig) +{ + + switch (sig) + { + case BCR: + dt0(DHW | HWXINFO, 0, "\t\tBCR raised to sector buffer\n") + sectindx = 0; + return; + case IOWRITE: + sectbuffer[sectindx] = *value; + break; + case IOREAD: + *value = sectbuffer[sectindx]; + } + if (!++sectindx) + { + if (activecmd) + { + dt0(DHW | HWXINFO, 0, "\t\t++sector buffer raises BRDY\n") + (*activecmd) (BRDY); + } + } +} + +/* + * ========================================================================== + * FUNCTION : disktobuffer() PURPOSE : read a sector + * from disk image into sector buffer EXTERNAL OBJECTS: drive structure + * RETURN VALUE : 0 - error reading file ~0 - ok. + * INPUT PARAMS : offset - file offset (from 0) + * ========================================================================== + */ +#define ONESECTOR 1 + +LOCAL int +disktobuffer IFN1(long, offset) +{ + dt1(DHW | HWXINFO,0, + "\t\tdisk data(offset %lx(hex)) -> sector buffer\n", offset) + return host_fdisk_rd(pseldrv->driveid, offset, ONESECTOR, (char *) sectbuffer); +} + +/* + * ========================================================================== + * FUNCTION : buffertodisk() PURPOSE : write the + * sector buffer to disk image EXTERNAL OBJECTS: drive structure + * RETURN VALUE : 0 - error reading file ~0 - ok. + * INPUT PARAMS : offset - file offset (from 0) + * ========================================================================== + */ +LOCAL int +buffertodisk IFN1(long, offset) +{ + dt1(DHW | HWXINFO,0, + "\t\tsector buffer -> disk (offset %lx(hex))\n", offset) + + return host_fdisk_wt(pseldrv->driveid, offset, ONESECTOR, (char *) sectbuffer); +} + +/* + * 7.INTERMODULE INTERFACE IMPLEMENTATION : + * + * [7.1 INTERMODULE DATA DEFINITIONS] + */ +/* + * [7.2 INTERMODULE PROCEDURE DEFINITIONS] + */ + +GLOBAL UTINY fdisk_read_dir IFN2(io_addr, port, UTINY *,value) +{ + switch (port) + { + case 0x3f7: + *value = digipreg; + dt1(DHW | PORTIO, 0, "read of DIR returns %x(hex)\n", (unsigned) *value) + break; + default: + break; + } + return *value; +} + +GLOBAL VOID fdisk_inb IFN2(io_addr, port, UTINY *,value) +{ + dt0(DHW, 0, "(\n") + + if (taskfile[WDSTAT] & WDSTATBUSY) + { + /* Controller is busy. Return status register contents. */ + *value = taskfile[WDSTAT]; + dt1(DHW | PORTIO, 0, "inb on port %x(hex) - controller busy\n", port) + + /* + * deassert the interrupt request line. + */ + if ((port - TFBASE) == WDSTAT) + irq(IRQDEASSERT); + + } + else + switch (port) + { + case TFBASE: + + /* + * sector buffer must be accessed only in 16 bit quantities + */ +#ifndef PROD + printf("(fdisk_inb()) inb on sector buffer ignored!\n"); +#endif + break; + default: + dt1(DHW | PORTIO, 0, "inb on port %x(hex)\n", port) + + wd2010(port - TFBASE, value, IOREAD); + + dt1(DHW | PORTIO, 0, "returns %x(hex)\n", (unsigned) *value) + } + dt0(DHW, 0, ")\n") +} + +GLOBAL VOID fdisk_inw IFN2(io_addr, port, USHORT *, value) +{ +#ifdef JOKER + /* This is the only way JOKER talks to disks, since + ** Ade's fast disk bios is currently infeasible. + ** Hence, speed is of interest here! + */ + if (port == TFBASE) + { + /* For speed, JOKER doesn't bother with calling rmac(IOREAD). */ + + *value = HostWordToIntelWord(sectbuffer[sectindx]); + + if (!++sectindx) /* sectindx is a byte value -- wraparound? */ + { + if (activecmd) + { + (*activecmd) (BRDY); + } + } + } + +#else /* JOKER */ + +#ifdef BIGEND + unsigned short temp; +#endif + switch (port) + { + case TFBASE: + +#ifdef LITTLEND + rmac(value, IOREAD); +#endif + +#ifdef BIGEND + rmac(&temp, IOREAD); + *value = ((temp << 8) & 0xff00) | (temp >> 8); +#endif + +#if 0 + dt1(DHW | PORTIO, 0, "inw on sector buffer returns %x(hex)\n", *value) +#else + dt1(DHW | PORTIO, INW_TRACE_HNDL, "inw on sector buffer", *value) +#endif + break; + default: + /* + * task file registers must be accessed as byte quantities + */ + dt1(DHW | PORTIO, 0, "inw on port %x(hex) ignored!\n", + (unsigned) port) + break; + } +#endif /* JOKER */ +} + + +GLOBAL VOID fdisk_outb IFN2(io_addr, port, UTINY, value) +{ + dt0(DHW, 0, "(\n") + switch (port) + { + case TFBASE: + + /* + * byte access to sector buffer is not a good idea + */ +#ifndef PROD + printf("(disk_outb()) outb to sector buffer ignored\n!"); +#endif + break; + case TFPCMP: + dt2(DHW | PORTIO, 0, "outb to port %x(hex),val %x(hex)\n", + (unsigned) port, (unsigned) value) + + wd2010(WDPCMP, &value, IOWRITE); + + dt0(DHW | PORTIO, 0, "\n") + break; + case TFCMD: + dt2(DHW | PORTIO, 0, "outb to port %x(hex),val %x(hex)\n", + (unsigned) port, (unsigned) value) + + wd2010(WDCMD, &value, IOWRITE); + + dt0(DHW | PORTIO, 0, "\n") + break; + case DISKETTE_FDISK_REG: + + /* + * Fixed disk register + */ + dt2(DHW | PORTIO, 0, "outb to port %x(hex),val %x(hex)\n", + (unsigned) port, (unsigned) value) + + if ((fixeddiskreg & 0x4) && !(value & 0x4)) + { + /* Turn reset off */ + taskfile[WDSTAT] = WDSTATDRDY | WDSTATSEEKCOMPLETE; + /* Error register in diagnostic mode */ + taskfile[WDERROR] = 0x01; /* No errors */ + /* Reset rest of taskfile */ + taskfile[WDSCOUNT] = taskfile[WDSNUM] = 0x01; + taskfile[WDCYLLO] = taskfile[WDCYLHI] = taskfile[WDDRVHD] = 0; + } + + fixeddiskreg = value; + + if (fixeddiskreg & 0x4) + { + /* Enable reset fixed disk function */ + taskfile[WDSTAT] = WDSTATBUSY | WDSTATDC | WDSTATERROR; + } + break; + default: + dt2(DHW | PORTIO, 0, "outb to port %x(hex),val %x(hex)\n", + (unsigned) port, (unsigned) value) + + wd2010(port - TFBASE, &value, IOWRITE); + dt0(DHW | PORTIO, 0, "\n") + } + dt0(DHW, 0, ")\n") +} + +GLOBAL VOID fdisk_outw IFN2(io_addr, port, USHORT, value) +{ +#ifdef BIGEND + unsigned short temp; +#endif + switch (port) + { + case TFBASE: +#if 0 + dt1(DHW | PORTIO, 0, "outw to sector buffer, val %x(hex)\n", + (unsigned) value) +#else + dt1(DHW | PORTIO, OUTW_TRACE_HNDL, "outw to sector buffer", + (unsigned) value) +#endif + +#ifdef LITTLEND + rmac(&value, IOWRITE); +#endif + +#ifdef BIGEND + temp = ((value << 8) & 0xff00) | (value >> 8); + rmac(&temp, IOWRITE); +#endif + + break; + default: + /* + * task file registers must be accessed as byte quantities + */ + dt1(DHW | PORTIO, 0, "outw to port %x(hex) ignored!\n", + (unsigned) port) + break; + } +} + +GLOBAL VOID fdisk_ioattach IFN0() +{ + unsigned short ncyls; + unsigned char nheads; + unsigned char nsects; + io_addr p; + + /* + * attach to io subsystem + */ + io_define_in_routines (HDA_ADAPTOR, fdisk_inb, fdisk_inw, 0, 0); + io_define_out_routines(HDA_ADAPTOR, fdisk_outb, fdisk_outw, 0, 0); + /* + * attach taskfile + */ + for (p = DISK_PORT_START; p <= DISK_PORT_END; p++) + io_connect_port(p, HDA_ADAPTOR, IO_READ_WRITE); + + /* + * attach Fixed disk register + */ + io_connect_port(DISKETTE_FDISK_REG, HDA_ADAPTOR, IO_WRITE); + + if (drives[0].physattached) + { + + /* + * indicate drive is wired up to controller + */ + drives[0].wiredup = ~0; + + /* + * patch 'ROM' table for drive type 0 with appropriate number + * of cylinders + */ + ncyls = drives[0].maxcyl + 1; + nheads = drives[0].maxhead + 1; + nsects = drives[0].maxsect + 1; +#ifdef REAL_ROM + host_write_enable((DPB0 & (~0xfff)), (DPB0 & (~0xfff)) + 0x1000); +#endif + patch_rom(DPB0, (unsigned char) (ncyls & 0xff)); + patch_rom(DPB0+1, (unsigned char) (ncyls >> 8)); + patch_rom(DPB0+2, nheads); + patch_rom(DPB0+0xe, nsects); +#ifdef REAL_ROM + host_write_protect((DPB0 & (~0xfff)), (DPB0 & (~0xfff)) + 0x1000); +#endif + dt1(DHW | IOAD, 0, "drive 0 wiredup, total cyls %d\n", + (unsigned) ncyls) + } + if (drives[1].physattached) + { + + /* + * indicate drive is wired up to controller + */ + drives[1].wiredup = ~0; + + /* + * patch 'ROM' table for drive type 0 with appropriate number + * of cylinders + */ + ncyls = drives[1].maxcyl + 1; + nheads = drives[1].maxhead + 1; + nsects = drives[1].maxsect + 1; +#ifdef REAL_ROM + host_write_enable((DPB1 & (~0xfff)), (DPB1 & (~0xfff)) + 0x1000); +#endif + patch_rom(DPB1, ncyls & 0xff); + patch_rom(DPB1 + 1, (ncyls >> 8)); + patch_rom(DPB1+2, nheads); + patch_rom(DPB1+0xe, nsects); +#ifdef REAL_ROM + host_write_protect((DPB1 & (~0xfff)), (DPB1 & (~0xfff)) + 0x1000); +#endif + dt1(DHW | IOAD, 0, "drive 1 wiredup, total cyls %d\n", + (unsigned) ncyls) + } +} + +GLOBAL VOID fdisk_iodetach IFN0() +{ + io_addr p; + + /* + * detach from io subsystem + */ + for (p = DISK_PORT_START; p <= DISK_PORT_END; p++) + io_disconnect_port(p, HDA_ADAPTOR); + + io_disconnect_port(DISKETTE_FDISK_REG, HDA_ADAPTOR); + + if (drives[0].physattached) + { + + /* + * indicate not wired up ... reset table in ROM to indicate + * 'bad drive type' + */ + drives[0].wiredup = 0; +#ifdef REAL_ROM + host_write_enable((DPB0 & (~0xfff)), (DPB0 & (~0xfff)) + 0x1000); +#endif + patch_rom(DPB0, 0); + patch_rom(DPB0 + 1, 0); + patch_rom(DPB0 + 2, 0); + patch_rom(DPB0 + 0xe, 0); +#ifdef REAL_ROM + host_write_protect((DPB0 & (~0xfff)), (DPB0 & (~0xfff)) + 0x1000); +#endif + dt0(DHW | IOAD, 0, "drive 0 unplugged\n") + } + if (drives[1].physattached) + { + + /* + * indicate not wired up ... reset table in ROM to indicate + * 'bad drive type' + */ + drives[1].wiredup = 0; +#ifdef REAL_ROM + host_write_enable((DPB1 & (~0xfff)), (DPB1 & (~0xfff)) + 0x1000); +#endif + patch_rom(DPB1, 0); + patch_rom(DPB1 + 1, 0); + patch_rom(DPB1 + 2, 0); + patch_rom(DPB1 + 0xe, 0); +#ifdef REAL_ROM + host_write_protect((DPB1 & (~0xfff)), (DPB1 & (~0xfff)) + 0x1000); +#endif + dt0(DHW | IOAD, 0, "drive 1 unplugged\n") + } +} + +GLOBAL VOID fdisk_physattach IFN1(int,driveno) +{ + int invalid = 0; + int ncyls; + int nheads; + int nsects; + + drives[driveno].driveid = driveno; + drives[driveno].physattached = 0; + + if (!*((CHAR *) config_inquire(C_HARD_DISK1_NAME + driveno, NULL))) + return; + + /* + * configuration specifies a disk image file ... validate it + */ + host_fdisk_get_params(driveno, &ncyls, &nheads, &nsects); + + /* + * set maximum available cylinder value (this is + * artificial. The real controller on an AT does not + * have this knowledge ... it fails on ID matching if + * it seeks to a non-existent cylinder + */ + drives[driveno].nsecspertrack = nsects; + drives[driveno].nbytespertrack = nsects * 512L; + drives[driveno].nbytespercyl = drives[driveno].nbytespertrack * nheads; + drives[driveno].maxcyl = --ncyls; + drives[driveno].maxhead = --nheads; + drives[driveno].maxsect = --nsects; + drives[driveno].physattached = ~0; + + fast_disk_bios_attach(driveno); +} + +#ifdef macintosh + +GLOBAL VOID fdisk_physdetach IFN1(int,driveno) +{ + if (drives[driveno].physattached) + { + host_fdisk_close(driveno); + + drives[driveno].physattached = 0; + + fast_disk_bios_detach (driveno); + + dt0(DHW|PAD, 0, "drive %d closed\n") + } +} +#endif /* macintosh */ + +GLOBAL VOID fdisk_reset IFN0() +{ + taskfile[WDERROR] = 0; + taskfile[WDSCOUNT] = 0; + taskfile[WDSNUM] = 0; + taskfile[WDCYLLO] = 0; + taskfile[WDCYLHI] = 0; + taskfile[WDDRVHD] = 0; + + /* + * show drive 1 selected ... head 0 selected + */ + digipreg = 1; + + /* + * show drive is ready if available + */ + if (drives[0].wiredup) + { + taskfile[WDSTAT] = WDSTATDRDY | WDSTATSEEKCOMPLETE; + + /* + * reposition file pointer for drive 0 at beginning of file + */ + host_fdisk_seek0(0); + } else + taskfile[WDSTAT] = 0; + + if (drives[1].wiredup) + + /* + * reposition file pointer for drive 1 at beginning of file + */ + host_fdisk_seek0(1); + + /* + * initialise sector buffer + */ + rmac((unsigned short *) 0, BCR); +} + + +GLOBAL VOID hda_init IFN0() +{ + fdisk_iodetach(); + fast_disk_bios_detach(0); + fast_disk_bios_detach(1); + + fdisk_physattach(0); + fdisk_physattach(1); + fdisk_ioattach(); + fdisk_reset(); +} + + + + + diff --git a/private/mvdm/softpc.new/base/disks/fla.c b/private/mvdm/softpc.new/base/disks/fla.c new file mode 100644 index 000000000..e9f1b9032 --- /dev/null +++ b/private/mvdm/softpc.new/base/disks/fla.c @@ -0,0 +1,1175 @@ +#include "insignia.h" +#include "host_def.h" +/* + * SoftPC Version 2.0 + * + * Title : Floppy Disk Adaptor Emulator + * + * Description : The following functions are defined in this module: + * + * fla_init() Initialise the fla + * fla_inb() Read byte from port + * fla_outb() Write byte to port + * + * The actual interface to the device that is acting as + * a floppy diskette (ie virtual file, slave PC or device + * driver for real diskette) is handled by the GFI layer. + * Hence the job of the FLA is to package up the command + * and pass it to GFI and simulate the result phase once + * GFI has executed the command. + * + * This module provides the Bios and CPU with an emulation + * of the entire Diskette Adaptor Card including the + * Intel 8272A FDC and the Digital Ouput Register. + * + * Author : Henry Nash / Jim Hatfield + * + * Notes : For a detailed description of the IBM Floppy Disk Adaptor + * and the INTEL Controller chip refer to the following + * documents: + * + * - IBM PC/XT Technical Reference Manual + * (Section 1-109 Diskette Adaptor) + * - INTEL Microsystems Components Handbook + * (Section 6-478 FDC 8272A) + * + * The interaction of the Sense Interrupt Status command with + * the Recalibrate and Seek commands and with chip reset is + * very complex. The FDC chip does NOT behave as its spec sheets + * say in some situations. We do the best we can here. If all + * Seek and Recalibrate commands on a drive are followed by + * Sense Interrupt Status before any other command to that + * drive then all should be OK. + * + */ + +#ifdef SCCSID +static char SccsID[]="@(#)fla.c 1.18 07/06/94 Copyright Insignia Solutions Ltd."; +#endif + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_FLOPPY.seg" +#endif + + +/* + * O/S include files. + */ +#include +#include TypesH + +/* + * SoftPC include files + */ +#include "xt.h" +#include CpuH +#include "ica.h" +#include "ios.h" +#include "fla.h" +#include "config.h" +#include "gfi.h" +#include "trace.h" +#include "debug.h" +#include "fdisk.h" +#include "quick_ev.h" + +/* + * ============================================================================ + * Global data + * ============================================================================ + */ + +/* + * The flag indicating that the FLA is busy and cannot accept asynchronous + * commands (eg motor off). + */ + +boolean fla_busy = TRUE; /* busy until initialised */ +boolean fla_ndma = FALSE; + +/* + * ============================================================================ + * Local static data and defines + * ============================================================================ + */ + +/* + * Static forward declarations. + */ +static void fdc_ndma_bufmgr_wt IPT1(half_word, value); +static void fla_atomicxqt IPT0(); +static void fla_ndmaxqt IPT0(); +static void fla_ndma_bump_sectid IPT0(); + +/* + * The command and result blocks that are used to communicate to the GFI + * layer. The result block is filled in by gfi during the execution phase. + */ + +static FDC_CMD_BLOCK fdc_command_block[MAX_COMMAND_LEN]; +static FDC_RESULT_BLOCK fdc_result_block[MAX_RESULT_LEN]; + +#define FDC_INVALID_CMD 0x80 /* Status after bad command */ +#define FDC_NORMAL_TERMINATION 0 + +/* + * The FLA supports the FDC status register. + */ + +static half_word fdc_status; + +/* + * The FLA holds the current active (if any) command in the following byte. + * This is used as an index into the FDC command data structure. + */ + +static half_word fdc_current_command; + +/* + * The FLA has an output interrupt line which is gated by a bit in the DOR. + */ + +static half_word fdc_int_line; + +/* + * The FLA knows when a Sense Interrupt Status is permitted. + */ + +static struct { + half_word full; /* Slot occupied */ + half_word res[2]; /* Result phase */ + } fdc_sis_slot[4]; /* One for each drive */ + +/* + * The FLA is responsible for maintaining the command and result phases + * of the FDC. Two variables hold the current pointer into the stack + * of command and result registers. + */ + +static half_word fdc_command_count; +static half_word fdc_result_count; + +/* + * The FLA will emulate non-DMA 8088 <==> FDC data transfers, but only allow DMA mode + * transfers to actually be sent to the GFI (potentially the back end of the SCSI might + * re-map this again). + * The following variable reflects whether the FDC has been put into non-DMA mode + * from the 8088 program's point of view + */ + + +/* The following sector buffer is used for non_dma transfers */ + +#ifdef macintosh +char *fla_ndma_buffer; /* so that host_init can 'see' it to malloc() it. */ +#else +static char fla_ndma_buffer[8192]; +#endif +static int fla_ndma_buffer_count; +static int fla_ndma_sector_size; + +/* + * The FLA stores the IBM Digital Output Register internally + */ + +#ifdef BIT_ORDER1 +typedef union { + half_word all; + struct { + HALF_WORD_BIT_FIELD motor_3_on:1; + HALF_WORD_BIT_FIELD motor_2_on:1; + HALF_WORD_BIT_FIELD motor_1_on:1; + HALF_WORD_BIT_FIELD motor_0_on:1; + HALF_WORD_BIT_FIELD interrupts_enabled:1; + HALF_WORD_BIT_FIELD not_reset:1; + HALF_WORD_BIT_FIELD drive_select:2; + } bits; + } DOR; +#endif + +#ifdef BIT_ORDER2 +typedef union { + half_word all; + struct { + HALF_WORD_BIT_FIELD drive_select:2; + HALF_WORD_BIT_FIELD not_reset:1; + HALF_WORD_BIT_FIELD interrupts_enabled:1; + HALF_WORD_BIT_FIELD motor_0_on:1; + HALF_WORD_BIT_FIELD motor_1_on:1; + HALF_WORD_BIT_FIELD motor_2_on:1; + HALF_WORD_BIT_FIELD motor_3_on:1; + } bits; + } DOR; +#endif + +DOR dor; +static IU8 drive_selected = 0; /* Device last used. */ + +/* Centralised handling of connection to ICA, so that very slow + * CPUs can find out if there is a floppy interrupt pending (see + * wait_int() in floppy.c). There is some confusion in the code anyway, + * because the fdc_int_line would appear to be the wire from the + * fdc to the ica, but the code doesn't quite manage to use it in + * this way. + */ + +GLOBAL IBOOL fdc_interrupt_pending = FALSE; + +LOCAL void fla_clear_int IFN0() +{ + /* if (fdc_int_line && dor.bits.interrupts_enabled) */ + + if (fdc_interrupt_pending) { + ica_clear_int(0, CPU_DISKETTE_INT); + } + + fdc_int_line = 0; + fdc_interrupt_pending = FALSE; +} + +LOCAL void fla_hw_interrupt IFN0() +{ + ica_hw_interrupt(0, CPU_DISKETTE_INT, 1); + fdc_interrupt_pending = TRUE; + + /* We would like to set fdc_int_line in this routine, + * but this wouldn't match the existing code. In particular + * there are calls which don't seem to include setting the + * fdc_int_line, and a call which sets up a quick_event to + * interrupt the ICA but which sets the fdc_int_line + * immediately. + */ +} + +/* + * ============================================================================ + * External functions + * ============================================================================ + */ + +/* This procedure is called from the host specific rfloppy routines + * as an equivalent to dma_enquire, when the intel program has selected + * non-dma mode for the FDC (via the SPECIFY command) + */ + +void fla_ndma_enquire IFN1(int *,transfer_count) +{ + *transfer_count = fla_ndma_buffer_count; +} + +/* This procedure is called from the host specific rfloppy routines + * when it wants to transfer diskette data read from the diskette to + * the 'non-dma buffer' (equivalent of dma_request). The Intel program will be fed from this non-dma buffer. + */ + +void fla_ndma_req_wt IFN2(char *,buf,int,n) +{ + char *p = fla_ndma_buffer; + + fla_ndma_buffer_count = n; + while(n--) + *p++ = *buf++; +} + +/* This procedure is called from the host specific rfloppy routines + * when it wants data destined for the diskette + */ + +void fla_ndma_req_rd IFN2(char *,buf,int,n) +{ + char *p = fla_ndma_buffer; + + while (n--) + *buf++ = *p++; +} + + +void fla_inb IFN2(io_addr, port, half_word *,value) +{ + + + note_trace0_no_nl(FLA_VERBOSE, "fla_inb() "); + fla_busy = TRUE; + + if (port == DISKETTE_STATUS_REG) + { + *value = fdc_status; + + /* + * After a read of this register assert the RQM bit, + * unless the 'not_reset' line is held low! + */ + + if (dor.bits.not_reset) + fdc_status |= FDC_RQM; + } + else + if (port == DISKETTE_DATA_REG) + { + /* + * Make sure the 'not reset' line in the DOR is high + */ + + if (!dor.bits.not_reset) + { + note_trace0_no_nl(FLA_VERBOSE, ""); + *value = 0; + return; + } + + /* + * Make sure that the RQM bit is up + */ + + if (!(fdc_status & FDC_RQM)) + { + note_trace0_no_nl(FLA_VERBOSE, ""); + *value = 0; + return; + } + + /* + * Make sure that the DIO bit is up + */ + + if (!(fdc_status & FDC_DIO)) + { + note_trace0_no_nl(FLA_VERBOSE, ""); + *value = 0; + return; + } + + /* + * The first byte of the result phase will clear the INT line + */ + + if (fdc_result_count == 0) + fla_clear_int(); + + /* + * Read the result bytes out of the result block one at a time. + */ + + *value = fdc_result_block[fdc_result_count++]; + + if (fdc_result_count >= gfi_fdc_description[fdc_current_command].result_bytes) + { + /* + * End of result phase - clear BUSY and DIO bits of status reg + */ + + fdc_status &= ~FDC_BUSY; + fdc_status &= ~FDC_DIO; + fdc_result_count = 0; + } + + /* + * After a read of the data register de-assert the RQM bit + */ + + fdc_status &= ~FDC_RQM; + } + + else if (port == DISKETTE_DIR_REG) + { + /* + * On the DUAL card, the bottom 7 bits of this register are + * supplied by the fixed disk adapter ... + */ + fdisk_read_dir(port, value); + + /* + * ... the top bit comes from the floppy disk adapter + */ + if (gfi_change(drive_selected)) + *value |= DIR_DISKETTE_CHANGE; + else + *value &= ~DIR_DISKETTE_CHANGE; + } + else if (port == DISKETTE_ID_REG) + { + /* + ** Do we have a Dual Card ? + ** This is an important question for the floppy BIOS. + ** If a Dual Card exists then the BIOS will do data rate changes + ** supporting hi and lo density media, without a Dual Card the BIOS + ** assumes that lo density media is always present. + ** I imagine this is because a "real" PC has limited floppy device + ** options and a hi density 3.5 inch unit will only exist with a + ** dual card. + ** This is not the case for SoftPC, any combination of floppy devices + ** seems to be quite OK. + ** I will try pretending we have a Dual Card whenever a high denisty + ** unit is present on A or B. + */ + switch( gfi_drive_type(0) ){ + case GFI_DRIVE_TYPE_12: + case GFI_DRIVE_TYPE_144: + case GFI_DRIVE_TYPE_288: + *value = DUAL_CARD_ID; break; + case GFI_DRIVE_TYPE_360: + case GFI_DRIVE_TYPE_720: + case GFI_DRIVE_TYPE_NULL: + switch( gfi_drive_type(1) ){ + case GFI_DRIVE_TYPE_12: + case GFI_DRIVE_TYPE_144: + case GFI_DRIVE_TYPE_288: + *value = DUAL_CARD_ID; break; + case GFI_DRIVE_TYPE_360: + case GFI_DRIVE_TYPE_720: + case GFI_DRIVE_TYPE_NULL: + *value = 0; break; + default: + always_trace0("ERROR: bad drive type"); + break; + } + break; + default: + always_trace0( "ERROR: Bad drive type." ); + break; + } +#ifndef PROD + if( *value==DUAL_CARD_ID ){ + note_trace0( FLA_VERBOSE, "Dual Card\n" ); + }else{ + note_trace0( FLA_VERBOSE, "No Dual Card\n" ); + } +#endif + } + else + { + *value = 0; + note_trace0_no_nl(FLA_VERBOSE, ""); + } + + note_trace2(FLA_VERBOSE, " port %x, returning %x", port, *value); + fla_busy = FALSE; + + +} + + +void fla_outb IFN2(io_addr, port, half_word, value) +{ + int i; + DOR new_dor; + + + note_trace2_no_nl(FLA_VERBOSE, "fla_outb(): port %x, value %x ", port, value); + fla_busy = TRUE; + + + + if (port == DISKETTE_STATUS_REG) + { + note_trace0(FLA_VERBOSE, ""); + } + + else if (port == DISKETTE_DCR_REG) + { + /* + ** Send the specified data rate to the floppy using the new + ** style gfi_high() function that now has a data rate parameter. + */ + note_trace2( FLA_VERBOSE, + "fla_outb:DCR:port=%x value=%x set data rate", + port, value ); + gfi_high(dor.bits.drive_select, value); + } + else if (port == DISKETTE_DATA_REG) + { + /* + * Make sure the 'not reset' line in the DOR is high + */ + + if (!dor.bits.not_reset) + { + note_trace0_no_nl(FLA_VERBOSE, ""); + return; + } + + /* + * Make sure that the RQM bit is up + */ + + if (!(fdc_status & FDC_RQM)) + { + note_trace0_no_nl(FLA_VERBOSE, ""); + return; + } + + /* + * Make sure that the DIO bit is down + */ + + if (fdc_status & FDC_DIO) + { + note_trace0_no_nl(FLA_VERBOSE, ""); + return; + } + + note_trace0(FLA_VERBOSE, ""); + + /* + * Output to the data register: must be programming up a command or issuing + * a data byte for a non-dma disk write. + * If the BUSY flag isn't set then it's the first byte. + */ + + if (!(fdc_status & FDC_BUSY)) + { + fdc_current_command = value & FDC_COMMAND_MASK; + fdc_command_count = 0; + fdc_status |= FDC_BUSY; + } + + if (!(fdc_status & FDC_NDMA)) + /* programming up a command + */ + { + if (gfi_fdc_description[fdc_current_command].cmd_bytes == 0) + { + /* + * Invalid command or Sense Int Status. + * If Sense Int Status, try to find some result phase data, + * else treat as an invalid command. In either case go + * straight into the result phase. + * Sense Int Status also clears Drive Busy bits and the INT line. + */ + + if (fdc_current_command == FDC_SENSE_INT_STATUS) + { + for (i = 0; i < 4; i++) + if (fdc_sis_slot[i].full) + break; + + if (i < 4) /* Found one! */ + { + fdc_sis_slot[i].full = 0; + fdc_result_block[0] = fdc_sis_slot[i].res[0]; + fdc_result_block[1] = fdc_sis_slot[i].res[1]; + + fla_clear_int(); /* Clear INT line */ + + fdc_status &= ~(1 << i); /* Clear Drive Busy */ + } + else + { + fdc_command_block[0] = 0; + fdc_result_block[0] = FDC_INVALID_CMD; + } + } + else + { + fdc_command_block[0] = 0; + fdc_result_block[0] = FDC_INVALID_CMD; + } + + fdc_status |= FDC_DIO; + } + else + { + fdc_command_block[fdc_command_count++] = value; + if (fdc_command_count >= gfi_fdc_description[fdc_current_command].cmd_bytes) + { + /* n.b; the field 'dma_required' is a misnomer ... it + * strictly should be 'data_required' + */ + if (!(gfi_fdc_description[fdc_current_command].dma_required)) + fla_atomicxqt(); + else + { + if (!fla_ndma) + fla_atomicxqt(); + else + fla_ndmaxqt(); + } + } + } + } + else + /* receiving a non-dma data byte + */ + { + /* pass written byte to buffer manager + */ + fdc_ndma_bufmgr_wt (value); + if (!fdc_int_line && dor.bits.interrupts_enabled) + fla_hw_interrupt(); + } + + + /* + * On write of the data register de-assert the RQM bit + */ + + fdc_status &= ~FDC_RQM; + } + + else + if (port == DISKETTE_DOR_REG) + { + note_trace0(FLA_VERBOSE, ""); + + new_dor.all = value; + if (!new_dor.bits.not_reset) + { + dor.all = new_dor.all; + dor.bits.motor_0_on = 0; + dor.bits.motor_1_on = 0; + dor.bits.motor_2_on = 0; + dor.bits.motor_3_on = 0; + fdc_status &= ~FDC_RQM; + fdc_int_line = 0; + } + else + { + if (!dor.bits.not_reset && new_dor.bits.not_reset) + { + /* + * Reset the FLA and GFI (and hence the real device). + * It is assumed that GFI reset will stop all drive motors. + * After the reset check to see if we need to turn any drive on. + * + * Note that reset effectively has a result phase since GFI + * will execute a Sense Interrupt Status command after it. + */ + + gfi_reset(fdc_result_block, new_dor.bits.drive_select); + + fdc_status = FDC_RQM; + fdc_command_count = 0; + fdc_result_count = 0; + + for (i = 0; i < 4; i++) + { + fdc_sis_slot[i].full = 1; + fdc_sis_slot[i].res[0] = 0xC0 + i; /* Empirically */ + fdc_sis_slot[i].res[1] = 0; + } + + fdc_int_line = 1; + } + + /* + * There are three ways in which an interrupt may be generated: + * + * 1) The not_reset line goes low to high when the enable_ints + * line is high. + * + * 2) The enable_ints line goes low to high when the INT line + * is high. + * + * 3) Both of the above! + */ + + if ((!dor.bits.not_reset && new_dor.bits.not_reset && new_dor.bits.interrupts_enabled) + ||(fdc_int_line && !dor.bits.interrupts_enabled && new_dor.bits.interrupts_enabled)) + fla_hw_interrupt(); + + /* + * If any drive motor bits have changed then issue GFI calls + */ + + if (!dor.bits.motor_0_on && new_dor.bits.motor_0_on) + gfi_drive_on(0); + else + if (dor.bits.motor_0_on && !new_dor.bits.motor_0_on) + gfi_drive_off(0); + + if (!dor.bits.motor_1_on && new_dor.bits.motor_1_on) + gfi_drive_on(1); + else + if (dor.bits.motor_1_on && !new_dor.bits.motor_1_on) + gfi_drive_off(1); + + if (!dor.bits.motor_2_on && new_dor.bits.motor_2_on) + gfi_drive_on(2); + else + if (dor.bits.motor_2_on && !new_dor.bits.motor_2_on) + gfi_drive_off(2); + + if (!dor.bits.motor_3_on && new_dor.bits.motor_3_on) + gfi_drive_on(3); + else + if (dor.bits.motor_3_on && !new_dor.bits.motor_3_on) + gfi_drive_off(3); + + /* Only store drive_select if actively used. */ + if (new_dor.bits.motor_0_on || new_dor.bits.motor_1_on) + { + drive_selected = new_dor.bits.drive_select; + } + dor.all = new_dor.all; + } + } + +#ifndef PROD + else + note_trace0(FLA_VERBOSE, ""); +#endif + + fla_busy = FALSE; + + +} + + +void trap_ndma IFN0() +{ + if (get_type_cmd(fdc_command_block) == FDC_SPECIFY) + { + if (get_c6_ND(fdc_command_block)) + { + + fla_ndma = TRUE; + put_c6_ND(fdc_command_block, 0); + note_trace0(FLA_VERBOSE, "DISABLING NON_DMA FDC REQ>"); + } + else + fla_ndma = FALSE; + } +} + +LOCAL void fla_int_call_back IFN1(long,junk) +{ + UNUSED(junk); + fla_hw_interrupt(); +} + +#ifdef NTVDM + +void fdc_command_completed (UTINY drive, half_word fdc_command) +{ + + if (gfi_fdc_description[fdc_command].int_required) { + if (!fdc_int_line && dor.bits.interrupts_enabled) + add_q_event_i(fla_int_call_back, HOST_FLA_DELAY, 0); + fdc_int_line = 1; + } + + /* + * If the command issued was Seek or Recalibrate, save + * the GFI result phase ready for Sense Int Status. + * Set the Drive Busy line (cleared by SIS). + * Any other command clears the SIS slot. + */ + + if (fdc_command == FDC_SEEK || fdc_command == FDC_RECALIBRATE) { + fdc_sis_slot[drive].full = 1; + fdc_sis_slot[drive].res[0] = fdc_result_block[0]; + fdc_sis_slot[drive].res[1] = fdc_result_block[1]; + fdc_status |= (1 << drive); + } + else + fdc_sis_slot[drive].full = 0; + + /* + * If there is no result phase then go back to READY. + */ + + if (gfi_fdc_description[fdc_command].result_bytes == 0) + fdc_status &= ~FDC_BUSY; + else + fdc_status |= FDC_DIO; +} + +/* + * This routine will 'automatically' execute the current FDC command. + * The GFI layer will actually perform the command/execution/result phases + * and return any result block. The Intel program. + */ + +static void fla_atomicxqt IFN0() +{ + int ret_stat; + UTINY drive; + + /* + * Call GFI to execute the command + */ + drive = get_type_drive(fdc_command_block); + trap_ndma(); + + ret_stat = gfi_fdc_command(fdc_command_block, fdc_result_block); + if (ret_stat != SUCCESS) + { + /* + * GFI failed due to timeout or protocol error - so we will + * fake up a real timeout by not generating an interrupt. + */ +/* we created a new thread to simulate the fdc while something is wrong. + * here we don't want to turn the busy signal off until we have a reset + * fdc_status &= ~FDC_BUSY; + * fdc_status &= ~FDC_DIO; + */ + note_trace1(FLA_VERBOSE, "fla_outb(): ", + ret_stat); + } + else + fdc_command_completed(drive, fdc_current_command); +} + +#else /* NTVDM */ + +/* + * This routine will 'automatically' execute the current FDC command. + * The GFI layer will actually perform the command/execution/result phases + * and return any result block. The Intel program. + */ + +static void fla_atomicxqt IFN0() +{ + int ret_stat; + int drive; + + /* + * Call GFI to execute the command + */ + + trap_ndma(); + + ret_stat = gfi_fdc_command(fdc_command_block, fdc_result_block); + if (ret_stat != SUCCESS) + { + /* + * GFI failed due to timeout or protocol error - so we will + * fake up a real timeout by not generating an interrupt. + */ + + fdc_status &= ~FDC_BUSY; + fdc_status &= ~FDC_DIO; + + note_trace1(FLA_VERBOSE, "fla_outb(): ", + ret_stat); + } + else + { + /* + * Command was successful, generate an interrupt if enabled. + */ + + if (gfi_fdc_description[fdc_current_command].int_required) + { + if (!fdc_int_line && dor.bits.interrupts_enabled) { + add_q_event_i(fla_int_call_back, HOST_FLA_DELAY, 0); + } + fdc_int_line = 1; + } + + /* + * If the command issued was Seek or Recalibrate, save + * the GFI result phase ready for Sense Int Status. + * Set the Drive Busy line (cleared by SIS). + * Any other command clears the SIS slot. + */ + + drive = get_type_drive(fdc_command_block); + + if (fdc_current_command == FDC_SEEK || fdc_current_command == FDC_RECALIBRATE) + { + fdc_sis_slot[drive].full = 1; + fdc_sis_slot[drive].res[0] = fdc_result_block[0]; + fdc_sis_slot[drive].res[1] = fdc_result_block[1]; + fdc_status |= (1 << drive); + } + else + fdc_sis_slot[drive].full = 0; + + /* + * If there is no result phase then go back to READY. + */ + + if (gfi_fdc_description[fdc_current_command].result_bytes == 0) + fdc_status &= ~FDC_BUSY; + else + fdc_status |= FDC_DIO; + } +} +#endif /* NTVDM */ + + +static void fdc_request_write_data_to_cpu IFN0() +{ + if (!fdc_int_line && dor.bits.interrupts_enabled) + fla_hw_interrupt(); +} + + +static void fdc_request_read_data_from_cpu IFN0() +{ + if (!fdc_int_line && dor.bits.interrupts_enabled) + fla_hw_interrupt(); +} + + +/* Prepare for processor data requests. + * i.e; based upon the current command, establish the minimum number of bytes + * likely to be involved in a transfer, based upon the N parameter. + * Set the fla_ndma_byte_count global appropriately. Set the ndma buffer + * count to zero, forcing a real command read to occur the first time + * the Intel program tries to read/write data to the FDC during its + * non-dma execution phase. + * Issue the first interrupt, and set FDC status register to mirror this + * and set non-dma bit in status register + */ + +static void fla_ndmaxqt IFN0() +{ + int n; + static int fla_ndma_sectsize[] = {128,256,512,1024,2048,4096,8192}; + + note_trace0(FLA_VERBOSE, "DOING FLA_NDMAXQT"); + + /* set the non-dma bit in the status register ... + * this clears at the end of the execution phase + */ + + fdc_status |= FDC_NDMA; + + fla_ndma_buffer_count = 0; + + switch (gfi_fdc_description[fdc_current_command].cmd_class) + { + case 0: /* sector read(s) */ + + n = get_c0_N(fdc_command_block); + if (n) + fla_ndma_sector_size = fla_ndma_sectsize[n]; + else + fla_ndma_sector_size = get_c0_DTL(fdc_command_block); + + /* kick of the execution phase by issuing + * an interrupt + */ + + fdc_request_write_data_to_cpu(); + + break; + + case 1: /* sector write(s) */ + + n = get_c0_N(fdc_command_block); + if (n) + fla_ndma_sector_size = fla_ndma_sectsize[n]; + else + fla_ndma_sector_size = get_c0_DTL(fdc_command_block); + + + /* kick of the execution phase by issuing + * an interrupt + */ + + fdc_request_read_data_from_cpu(); + + break; + + case 2: /* track read */ + always_trace0("\n FLA ... non-dma read track unimplemented"); + break; + + case 3: /* format track */ + always_trace0("\n FLA ... non-dma format unimplemented"); + break; + + default: + always_trace0("\n FLA ... unexpected command for non-dma"); + } +} + + +/* + * peek a quick look at the 'first' sector involved in this current + * FDC command, to establish whether abnormal termination would have occurred * with the non-DMA transfer, and flag accordingly + */ + +void fla_ndma_sector_peep IFN1(int *,all_clear) +/* all_clear -----> = 0 --> time out + * = 1 --> sector good + * = 2 --> abnormal termination + */ +{ + int true_command, status; + + /* build a 'read data' command using all current command + * parameters. + */ + + true_command = get_type_cmd(fdc_command_block); + put_type_cmd(fdc_command_block, FDC_READ_DATA); + + status = gfi_fdc_command(fdc_command_block, fdc_result_block); + + fla_ndma_buffer_count = 0; + + /* repair the command block + */ + + put_type_cmd(fdc_command_block, true_command); + + *all_clear = 0; + + if (status == SUCCESS) + { + if (get_r1_ST0_int_code(fdc_result_block) == FDC_NORMAL_TERMINATION) + *all_clear = 1; + else + *all_clear = 2; + } + +} + +/* This routine emulates the execution phase for sector writes + * ... Here we buffer up data destined for the diskette on a + * 'per sector' basis (the 'sector' size being determined by the + * 'N' parameter (or possibly the 'DTL' parameter (if N=0)) specified + * within the FDC command block. If the buffer is empty, the equivalent + * read command is issued to the GFI layer, mainly to determine whether + * the sector is kosher. + */ + +static void fdc_ndma_bufmgr_wt IFN1(half_word, value) +{ + int status; + int all_clear; + + note_trace1(FLA_VERBOSE, + "FDC_NDMA_BUFMGR_WT called .. buffered byte = %x", + (unsigned int) value); + + /* + * empty buffer!! if so, read the sector first to see if it exists, etc. + */ + + if (fla_ndma_buffer_count == 0) + { + fla_ndma_sector_peep(&all_clear); + switch (all_clear) + { + case 0: /* FDC dead */ + fdc_status &= ~FDC_BUSY; + fdc_status &= ~FDC_DIO; + return; + case 1: /* FDC cooking */ + /* ... increment the sector id (as the controller + * would do given half a chance!! + */ + fla_ndma_bump_sectid(); + break; + case 2: /* FDC does not like command parameters + * if it doesn't ... neither do i !! + */ + if (!fdc_int_line && dor.bits.interrupts_enabled) + fla_hw_interrupt(); + fdc_status &= ~FDC_NDMA; + fdc_status |= FDC_DIO; + return; + } + } + + /* is there room in the buffer ? ... flush out if not + * and recurse. + */ + + if (fla_ndma_buffer_count == fla_ndma_sector_size) + { + /* do the command ... the GFI layler will call 'fla_ndma_req_rd' + * to get the data in this full buffer + */ + + status = gfi_fdc_command(fdc_command_block, fdc_result_block); + + /* reset the buffer */ + + fla_ndma_buffer_count = 0; + + if (status != SUCCESS) + { + fdc_status &= ~FDC_BUSY; + fdc_status &= ~FDC_DIO; + } + else + { + if (get_r1_ST0_int_code(fdc_result_block) == FDC_NORMAL_TERMINATION) + fdc_ndma_bufmgr_wt(value); + else + { + if (!fdc_int_line && dor.bits.interrupts_enabled) + fla_hw_interrupt(); + fdc_status &= ~FDC_NDMA; + fdc_status |= FDC_DIO; + } + } + } + else + fla_ndma_buffer[fla_ndma_buffer_count++] = value; + +} + + +static void fla_ndma_bump_sectid IFN0() +{ + int i; + + i = get_c0_sector(fdc_command_block) + 1; + put_c0_sector(fdc_command_block, i); +} + +static void fla_ndma_unbump_sectid IFN0() +{ + int i; + + i = get_c0_sector(fdc_command_block) - 1; + put_c0_sector(fdc_command_block, i); +} + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * function will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_INIT.seg" +#endif + +void fla_init IFN0() +{ + io_addr i; + + note_trace0(FLA_VERBOSE, "fla_init() called"); + + /* + * Set up the IO chip select logic for this adaptor + * Assume that the DOR comes up with all bits zero. + */ + + io_define_inb(FLA_ADAPTOR, fla_inb); + io_define_outb(FLA_ADAPTOR, fla_outb); + + /* + * For the DUAL card, one of the registers must be left + * for the hard disk adapter to connect to + */ + + for(i = DISKETTE_PORT_START; i <= DISKETTE_PORT_END; i++) + { + if (i != DISKETTE_FDISK_REG) + io_connect_port(i, FLA_ADAPTOR, IO_READ_WRITE); + } + + fla_busy = TRUE; + + fdc_status = 0; + fdc_command_count = 0; + fdc_result_count = 0; + fdc_int_line = 0; + dor.all = 0; + + fla_ndma = FALSE; + fla_busy = FALSE; +} diff --git a/private/mvdm/softpc.new/base/disks/floppy.c b/private/mvdm/softpc.new/base/disks/floppy.c new file mode 100644 index 000000000..e6bd51f95 --- /dev/null +++ b/private/mvdm/softpc.new/base/disks/floppy.c @@ -0,0 +1,3306 @@ +#include "insignia.h" +#include "host_def.h" +/* + * SoftPC Revision 3.0 + * + * + * Title : Secondary SFD BIOS floppy diskette functions + * + * + * Description : This module defines the functions that the DISKETTE_IO + * operating system call switches to on the value of AH: + * + * (AH=00H) reset the floppy diskette system + * + * (AH=01H) return the status of the floppy diskette system + * + * (AH=02H) read sectors from a floppy diskette + * + * (AH=03H) write sectors to a floppy diskette + * + * (AH=04H) verify sectors on a floppy diskette + * + * (AH=05H) format a track on a floppy diskette + * + * (AH=06H) + * to invalid + * (AH=07H) + * + * (AH=08H) return floppy diskette system parameters + * + * (AH=09H) + * to invalid + * (AH=14H) + * + * (AH=15H) return floppy diskette drive parameters + * + * (AH=16H) return floppy diskette drive change line status + * + * (AH=17H) set media density for a format operation + * + * (AH=18H) set media type for a format operation + * + * + * Author : Ross Beresford + * + * + * Notes : For a detailed description of the IBM Floppy Disk Adaptor, + * and the INTEL Controller chips refer to the following + * documents: + * + * - IBM PC/XT Technical Reference Manual + * (Section 1-109 Diskette Adaptor) + * - INTEL Microsystems Components Handbook + * (Section 6-52 DMA Controller 8237A) + * - INTEL Microsystems Components Handbook + * (Section 6-478 FDC 8272A) + * + * Mods: + * Tim September 1991. nec_term() changed two error code returns. + * Helps Dos give correct error messages when no floppy in drive. + */ + +/* + * + * # # ## # ##### #### + * # # # # # # # + * # # # # # # #### + * # ## # ###### # # # + * ## ## # # # # # # + * # # # # # # #### + * + * READ THIS: IMPORTANT NOTICE ABOUT WAITS + * + * The motor and head settle time waits etc used to be done + * using a busy wait loop in a sub-CPU: this was what the + * waitf() call was for, and this accurately emulated what + * the real BIOS does. + * + * It was certainly a bad thing, however, as most + * floppies we support are "soft" in the sense that + * their underlying driver automatically waits for motor + * start-up etc (examples are the slave, virtual, and + * empty drive, and the real drive on the VAX ports). + * + * How should we deal with the few drives where we must + * actually wait the correct time for motor start-up etc + * before doing reads, writes, formats etc? The low + * density BIOS relies on the GFI real diskette server + * waiting for motor start-up in the driver itself (see + * for example sun3_wang.c and ip32_flop.c). For the + * moment the high density BIOS will do the same: it + * might be better, however, for new GFI level functions + * to be added to explicitly wait for driver events. + */ + + +/* + * static char SccsID[]="@(#)floppy.c 1.22 09/19/94 Copyright Insignia Solutions Ltd."; + */ + + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_FLOPPY.seg" +#endif + +#include +#include TypesH + +#include "xt.h" +#include CpuH +#include "sas.h" +#include "ios.h" +#include "bios.h" +#include "dma.h" +#include "config.h" +#include "fla.h" +#include "gfi.h" +#include "equip.h" +#include "floppy.h" +#include "trace.h" +#include "debug.h" +#include "tape_io.h" +#include "cmos.h" +#include "cmosbios.h" +#include "rtc_bios.h" + +/* + * Definition of the diskette operation function jump table + */ + +void ((*(fl_fnc_tab[FL_JUMP_TABLE_SIZE])) IPT1(int, drive)) = +{ + fl_disk_reset, + fl_disk_status, + fl_disk_read, + fl_disk_write, + fl_disk_verify, + fl_disk_format, + fl_fnc_err, + fl_fnc_err, + fl_disk_parms, + fl_fnc_err, + fl_fnc_err, + fl_fnc_err, + fl_fnc_err, + fl_fnc_err, + fl_fnc_err, + fl_fnc_err, + fl_fnc_err, + fl_fnc_err, + fl_fnc_err, + fl_fnc_err, + fl_fnc_err, + fl_disk_type, + fl_disk_change, + fl_format_set, + fl_set_media, +}; + +#ifdef NTVDM +extern UTINY number_of_floppy; +#endif /* NTVDM */ + +/* + * Functions defined later + */ + +LOCAL half_word get_parm IPT1(int, index); +LOCAL cmos_type IPT2(int, drive, half_word *, type); +LOCAL wait_int IPT0(); +LOCAL void nec_output IPT1(half_word, byte_value); +LOCAL results IPT0(); +LOCAL void send_spec IPT0(); +LOCAL void setup_end IPT1(int, sectors_transferred); +LOCAL void rd_wr_vf IPT3(int, drive, FDC_CMD_BLOCK *, fcbp, half_word, dma_type); +LOCAL void translate_new IPT1(int, drive); +LOCAL void fmt_init IPT1(int, drive); +LOCAL med_change IPT1(int, drive); +LOCAL chk_lastrate IPT1(int, drive); +LOCAL void send_rate IPT1(int, drive); +LOCAL fmtdma_set IPT0(); +LOCAL void nec_init IPT2(int, drive, FDC_CMD_BLOCK *, fcbp); +LOCAL nec_term IPT0(); +LOCAL dr_type_check IPT3(half_word, drive_type, word *, seg_ptr, + word *, off_ptr); +LOCAL read_dskchng IPT1(int, drive); +LOCAL void setup_state IPT1(int, drive); +LOCAL setup_dbl IPT1(int, drive); +LOCAL dma_setup IPT1(half_word, dma_mode); +LOCAL void rwv_com IPT2(word, md_segment, word, md_offset); +LOCAL retry IPT1(int, drive); +LOCAL void dstate IPT1(int, drive); +LOCAL num_trans IPT0(); +LOCAL void motor_on IPT1(int, drive); +LOCAL seek IPT2(int, drive, int, track); +LOCAL read_id IPT2(int, drive, int, head); +LOCAL turn_on IPT1(int, drive); +LOCAL void waitf IPT1(long, time); +LOCAL recal IPT1(int, drive); +LOCAL chk_stat_2 IPT0(); + +/* + * This macro defines the normal behaviour of the FDC after a reset. + * Sending a series of sense interrupt status commands following a + * reset, for each drive in the correct order, should elicit the + * expected result in ST0. + */ + +#define expected_st0(drive) (ST0_INTERRUPT_CODE_0 | ST0_INTERRUPT_CODE_1 | drive) + +LOCAL UTINY fl_nec_status[8]; + +#define LOAD_RESULT_BLOCK sas_loads(BIOS_FDC_STATUS_BLOCK, fl_nec_status,\ + sizeof(fl_nec_status)) + +LOCAL BOOL rate_unitialised = TRUE; + +/* + * Definition of the external functions + */ + + + +/* reports whether drive is high density, replaces old test for dual card +which assumed high density a or b implied high density a, which it doesn't +now we can have two drives of any 3.5 / 5.25 combination */ + +LOCAL BOOL high_density IFN1(int, drive) +{ + half_word drive_type; + + if (cmos_type(drive, &drive_type) == FAILURE) + return(FALSE); + switch (drive_type) + { + case GFI_DRIVE_TYPE_12: + case GFI_DRIVE_TYPE_144: + case GFI_DRIVE_TYPE_288: + return(TRUE); + default: + return(FALSE); + } +} + +void fl_disk_reset IFN1(int, drive) +{ + /* + * Reset the FDC and all drives. "drive" is not significant + * + * Register inputs: + * none + * Register outputs: + * AH diskette status + * CF status flag + */ + half_word motor_status, diskette_dor_reg, diskette_status; + + /* + * Switch on interrupt enable and clear the reset bit in the + * DOR to do the reset, then restore the reset bit + */ + + sas_load(MOTOR_STATUS, &motor_status); + diskette_dor_reg = (motor_status << 4) | (motor_status >> 4); + diskette_dor_reg &= ~DOR_RESET; + diskette_dor_reg |= DOR_INTERRUPTS; + outb(DISKETTE_DOR_REG, diskette_dor_reg); + + diskette_dor_reg |= DOR_RESET; + outb(DISKETTE_DOR_REG, diskette_dor_reg); + + /* + * Set SEEK_STATUS up to force a recalibrate on all drives + */ + + sas_store(SEEK_STATUS, 0); + + + /* + * Check FDC responds as expected, viz: a drive ready + * transition for each drive potentially installed; if + * not, then there is an error in the FDC. + */ + + if (wait_int() == FAILURE) + { + /* + * Problem with the FDC + * + * The reset implied by the outb(DISKETTE_DOR_REG) above + * should trigger a hardware interrupt, and the wait_int + * should have detected and processed it. + */ + always_trace0("FDC failed to interrupt after a reset - HW interrupts broken?"); + + sas_load(FLOPPY_STATUS, &diskette_status); + diskette_status |= FS_FDC_ERROR; + sas_store(FLOPPY_STATUS, diskette_status); + } + else + { + for(drive = 0; drive < MAX_DISKETTES; drive++) + { + nec_output(FDC_SENSE_INT_STATUS); + + if ( (results() == FAILURE) + || (get_r3_ST0(fl_nec_status) != expected_st0(drive))) + { + /* + * Problem with the FDC + */ + sas_load(FLOPPY_STATUS, &diskette_status); + diskette_status |= FS_FDC_ERROR; + sas_store(FLOPPY_STATUS, diskette_status); + + always_trace1("diskette_io: FDC error - drive %d moribund after reset", drive); + break; + } + } + + + /* + * If all drives OK, send the specify command to the + * FDC + */ + + if (drive == MAX_DISKETTES) + send_spec(); + } + + + /* + * Return, without setting sectors transferred + */ + + setup_end(IGNORE_SECTORS_TRANSFERRED); +} + +void fl_disk_status IFN1(int, drive) +{ + /* + * Set the diskette status, and return without setting + * sectors transferred. "drive" is not significant + * + * Register inputs: + * AH diskette status + * Register outputs: + * AH diskette status + * CF status flag + */ + UNUSED(drive); + + sas_store(FLOPPY_STATUS, getAH()); + setup_end(IGNORE_SECTORS_TRANSFERRED); +} + +void fl_disk_read IFN1(int, drive) +{ + /* + * Read sectors from the diskette in "drive" + * + * Register inputs: + * DH head number + * CH track number + * CL sector number + * AL number of sectors + * ES:BX buffer address + * Register outputs: + * AL number of sectors read + * AH diskette status + * CF status flag + */ + half_word motor_status; + FDC_CMD_BLOCK fdc_cmd_block[MAX_COMMAND_LEN]; + + /* + * Not a write operation + */ + + sas_load(MOTOR_STATUS, &motor_status); + motor_status &= ~MS_WRITE_OP; + sas_store(MOTOR_STATUS, motor_status); + + + /* + * Fill in skeleton FDC command block and use generic + * diskette transfer function to do the read + */ + + put_c0_cmd(fdc_cmd_block, FDC_READ_DATA); + put_c0_skip(fdc_cmd_block, 1); + put_c0_MFM(fdc_cmd_block, 1); + put_c0_MT(fdc_cmd_block, 1); + rd_wr_vf(drive, fdc_cmd_block, BIOS_DMA_READ); +} + +void fl_disk_write IFN1(int, drive) +{ + /* + * Write sectors to the diskette in "drive" + * + * Register inputs: + * DH head number + * CH track number + * CL sector number + * AL number of sectors + * ES:BX buffer address + * Register outputs: + * AL number of sectors written + * AH diskette status + * CF status flag + */ + half_word motor_status; + FDC_CMD_BLOCK fdc_cmd_block[MAX_COMMAND_LEN]; + + /* + * A write operation + */ + + sas_load(MOTOR_STATUS, &motor_status); + motor_status |= MS_WRITE_OP; + sas_store(MOTOR_STATUS, motor_status); + + + /* + * Fill in skeleton FDC command block and use generic + * diskette transfer function to do the write + */ + + put_c1_cmd(fdc_cmd_block, FDC_WRITE_DATA); + put_c1_pad(fdc_cmd_block, 0); + put_c1_MFM(fdc_cmd_block, 1); + put_c1_MT(fdc_cmd_block, 1); + rd_wr_vf(drive, fdc_cmd_block, BIOS_DMA_WRITE); +} + +void fl_disk_verify IFN1(int, drive) +{ + /* + * Verify sectors in the diskette in "drive" + * + * Register inputs: + * DH head number + * CH track number + * CL sector number + * AL number of sectors + * Register outputs: + * AL number of sectors verified + * AH diskette status + * CF status flag + */ + half_word motor_status; + FDC_CMD_BLOCK fdc_cmd_block[MAX_COMMAND_LEN]; + + + /* + * Not a write operation + */ + + sas_load(MOTOR_STATUS, &motor_status); + motor_status &= ~MS_WRITE_OP; + sas_store(MOTOR_STATUS, motor_status); + + + /* + * Fill in skeleton FDC command block and use generic + * diskette transfer function to do the verify + */ + + put_c0_cmd(fdc_cmd_block, FDC_READ_DATA); + put_c0_skip(fdc_cmd_block, 1); + put_c0_MFM(fdc_cmd_block, 1); + put_c0_MT(fdc_cmd_block, 1); + rd_wr_vf(drive, fdc_cmd_block, BIOS_DMA_VERIFY); +} + +/* +** The low level 3.5 inch floppy format wants to know these params. +** For the funny format function. +** Have a look at hp_flop3.c FDC_FORMAT_TRACK bit. +*/ +LOCAL int f_cyl, f_head, f_sector, f_N; +void GetFormatParams IFN4(int *, c, int *, h, int *, s, int *, n) +{ + *c = f_cyl; + *h = f_head; + *s = f_sector; + *n = f_N; +} + +void fl_disk_format IFN1(int, drive) +{ + /* + * Format the diskette in "drive" + * + * Register inputs: + * DH head number + * CH track number + * CL sector number + * AL number of sectors + * ES:BX address fields for the track + * Register outputs: + * AH diskette status + * CF status flag + */ + FDC_CMD_BLOCK fdc_cmd_block[MAX_COMMAND_LEN]; + half_word motor_status; + + /* + ** Set up format params so hp_flop3.c can find out what they are when + ** the format is about to happen. + ** cylinder, head, sector and Number of sectors. + */ + f_cyl = getCH(); + f_head = getDH(); + f_sector = getCL(); + f_N = getAL(); + + /* + * Establish the default format for the size of drive, unless + * this has already been set up via previous calls to + * diskette_io() + */ + + translate_new(drive); + fmt_init(drive); + + /* + * A write operation + */ + + sas_load(MOTOR_STATUS, &motor_status); + motor_status |= MS_WRITE_OP; + sas_store(MOTOR_STATUS, motor_status); + + + /* + * Don't proceed with the format if a DUAL card is installed + * and the media has been changed + */ + + if ((! high_density(drive)) || (med_change(drive) == SUCCESS)) + { + + /* + * Send the specify command to the FDC, and establish + * the data rate if necessary + */ + + send_spec(); + if (chk_lastrate(drive) != FAILURE) + send_rate(drive); + + /* + * Prepare for DMA transfer that will do the format + */ + + if (fmtdma_set() != FAILURE) + { + + /* + * Seek to the required track, and initialise + * the FDC for the format + */ + + put_c3_cmd(fdc_cmd_block, FDC_FORMAT_TRACK); + put_c3_pad1(fdc_cmd_block, 0); + put_c3_MFM(fdc_cmd_block, 1); + put_c3_pad(fdc_cmd_block, 0); + nec_init(drive, fdc_cmd_block); + + + /* + * Send the remainder of the format + * parameters to the FDC + */ + + nec_output(get_parm(DT_N_FORMAT)); + nec_output(get_parm(DT_LAST_SECTOR)); + nec_output(get_parm(DT_FORMAT_GAP_LENGTH)); + nec_output(get_parm(DT_FORMAT_FILL_BYTE)); + + + /* + * Complete the FDC command + */ + + (void )nec_term(); + } + } + + + /* + * Return without setting sectors transferred + */ + + translate_old(drive); + setup_end(IGNORE_SECTORS_TRANSFERRED); + +} + +void fl_fnc_err IFN1(int, drive) +{ + /* + * This routine sets the diskette status when an illegal + * function number or drive number is passed to diskette_io(); + * "drive" is not significant + * + * Register inputs: + * none + * Register outputs: + * AH diskette status + * CF status flag + */ + UNUSED(drive); + + setAH(FS_BAD_COMMAND); + sas_store(FLOPPY_STATUS, FS_BAD_COMMAND); + setCF(1); +} + +void fl_disk_parms IFN1(int, drive) +{ + /* + * Return the drive parameters + * + * Register inputs: + * none + * Register outputs: + * CL sectors/track + * CH maximum track number + * BL drive type + * BH 0 + * DL number of diskette drives + * DH maximum head number + * ES:DI parameter table address + * AX 0 + * CF 0 + */ + half_word disk_state, drive_type; + half_word parameter; + word segment, offset; + EQUIPMENT_WORD equip_flag; + + + /* + * Set up number of diskette drives attached + */ + + translate_new(drive); + setBX(0); + sas_loadw(EQUIP_FLAG, &equip_flag.all); + if (equip_flag.bits.diskette_present == 0) + setDL(0); + else + setDL(equip_flag.bits.max_diskette + 1); + + + /* + * Set up drive dependent parameters + */ + +#ifdef NTVDM + if ( (equip_flag.bits.diskette_present == 1) + && (drive < number_of_floppy)) +#else + if ( (equip_flag.bits.diskette_present == 1) + && (drive < MAX_FLOPPY)) +#endif /* NTVDM */ + { + + if (! high_density(drive)) + { + + /* + * Set up sectors/track, drive type and + * maximum track number + */ + + setCL(9); + sas_load(FDD_STATUS+drive, &disk_state); + if ((disk_state & DC_80_TRACK) == 0) + { + drive_type = GFI_DRIVE_TYPE_360; + setCH(MAXIMUM_TRACK_ON_360); + } + else + { + drive_type = GFI_DRIVE_TYPE_720; + setCH(MAXIMUM_TRACK_ON_720); + } + setBX(drive_type); + + + /* + * Set up maximum head and parameter table + * address, return OK + */ + + setDH(1); + (void )dr_type_check(drive_type, &segment, &offset); + setDI(offset); + setES(segment); + translate_old(drive); + setAX(0); + setCF(0); + return; + } + + + /* + * Dual card present: set maximum head number and + * try to establish a parameter table entry for + * the drive + */ + + setDH(1); + + if ( cmos_type(drive, &drive_type) != FAILURE + && drive_type != GFI_DRIVE_TYPE_NULL + && dr_type_check(drive_type, &segment, &offset) != FAILURE) + { + + + /* + * Set parameters from parameter table + */ + + setBL(drive_type); + sas_load(effective_addr(segment,offset) + + DT_LAST_SECTOR, ¶meter); + setCL(parameter); + sas_load(effective_addr(segment,offset) + + DT_MAXIMUM_TRACK, ¶meter); + setCH(parameter); + setDI(offset); + setES(segment); + translate_old(drive); + setAX(0); + setCF(0); + return; + } + + /* + * Establish drive type from status + */ + + sas_load(FDD_STATUS+drive, &disk_state); + if ((disk_state & FS_MEDIA_DET) != 0) + { + switch(disk_state & RS_MASK) + { + case RS_250: + if ((disk_state & DC_80_TRACK) == 0) + drive_type = GFI_DRIVE_TYPE_360; + else + drive_type = GFI_DRIVE_TYPE_144; + break; + case RS_300: + drive_type = GFI_DRIVE_TYPE_12; + break; + case RS_1000: + drive_type = GFI_DRIVE_TYPE_288; + break; + default: + drive_type = GFI_DRIVE_TYPE_144; + break; + } + (void )dr_type_check(drive_type, &segment, &offset); + + + /* + * Set parameters from parameter table + */ + + setBL(drive_type); + sas_load(effective_addr(segment,offset) + + DT_LAST_SECTOR, ¶meter); + setCL(parameter); + sas_load(effective_addr(segment,offset) + + DT_MAXIMUM_TRACK, ¶meter); + setCH(parameter); + setDI(offset); + setES(segment); + translate_old(drive); + setAX(0); + setCF(0); + return; + } + } + + + /* + * Arrive here if "drive" is invalid or if its type + * could not be determined + */ + + setCX(0); + setDH(0); + setDI(0); + setES(0); + translate_old(drive); + setAX(0); + setCF(0); + return; +} + +void fl_disk_type IFN1(int, drive) +{ + /* + * Return the diskette drive type for "drive" + * + * Register inputs: + * none + * Register outputs: + * AH drive type + * CF 0 + */ + half_word disk_state; + EQUIPMENT_WORD equip_flag; + + note_trace1( GFI_VERBOSE, "floppy:fl_disk_type():drive=%x:", drive ); + if (high_density(drive)) + { + /* + * Dual card present: set type if "drive" valid + */ + note_trace0( GFI_VERBOSE, "floppy:fl_disk_type():DUAL CARD" ); + + translate_new(drive); + + sas_load(FDD_STATUS+drive, &disk_state); + if (disk_state == 0) + setAH(DRIVE_IQ_UNKNOWN); + else if ((disk_state & DC_80_TRACK) != 0) + setAH(DRIVE_IQ_CHANGE_LINE); + else + setAH(DRIVE_IQ_NO_CHANGE_LINE); + translate_old(drive); + } + else + { + note_trace0( GFI_VERBOSE,"floppy:fl_disk_type():NO DUAL CARD" ); + /* + * Set no change line support if "drive" valid + */ + sas_loadw(EQUIP_FLAG, &equip_flag.all); + if (equip_flag.bits.diskette_present) + setAH(DRIVE_IQ_NO_CHANGE_LINE); + else + setAH(DRIVE_IQ_UNKNOWN); + } + + setCF(0); + +#ifndef PROD +switch( getAH() ){ +case DRIVE_IQ_UNKNOWN: note_trace0( GFI_VERBOSE, "unknown drive\n" ); break; +case DRIVE_IQ_CHANGE_LINE: note_trace0( GFI_VERBOSE, "change line\n" ); break; +case DRIVE_IQ_NO_CHANGE_LINE: note_trace0( GFI_VERBOSE, "no change line\n" ); break; +default: note_trace0( GFI_VERBOSE, "bad AH return value\n" ); break; +} +#endif + +} + +void fl_disk_change IFN1(int, drive) +{ + /* + * Return the state of the disk change line for "drive" + * + * Register inputs: + * none + * Register outputs: + * AH diskette status + * CF status flag + */ + half_word disk_state, diskette_status; + + note_trace1( GFI_VERBOSE, "floppy:fl_disk_change(%d)", drive); + if (! high_density(drive)) + { + /* + * Only dual card supports change line, so call + * the error function + */ + fl_fnc_err(drive); + } + else + { + translate_new(drive); + sas_load(FDD_STATUS+drive, &disk_state); + if (disk_state != 0) + { + /* + * If "drive" is high density, check for + * a disk change + */ + if ( ((disk_state & DC_80_TRACK) == 0) + || (read_dskchng(drive) != SUCCESS)) + { + sas_load(FLOPPY_STATUS, &diskette_status); + diskette_status = FS_MEDIA_CHANGE; + sas_store(FLOPPY_STATUS, diskette_status); + } + } + else + { + /* + * "drive" is invalid + */ + sas_load(FLOPPY_STATUS, &diskette_status); + diskette_status |= FS_TIME_OUT; + sas_store(FLOPPY_STATUS, diskette_status); + } + + + /* + * Return without setting sectors transferred + */ + + translate_old(drive); + setup_end(IGNORE_SECTORS_TRANSFERRED); + } +} + +void fl_format_set IFN1(int, drive) +{ + /* + * Establish type of media to be used for subsequent format + * operation + * + * Register inputs: + * AL media type + * Register outputs: + * AH diskette status + * CF status flag + */ + half_word media_type = getAL(), disk_state, diskette_status; + + translate_new(drive); + sas_load(FDD_STATUS+drive, &disk_state); + disk_state &= ~(FS_MEDIA_DET | FS_DOUBLE_STEP | RS_MASK); + sas_store(FDD_STATUS+drive, disk_state); + + if (media_type == MEDIA_TYPE_360_IN_360) + { + /* + * Need to set low data rate + */ + disk_state |= (FS_MEDIA_DET | RS_250); + sas_store(FDD_STATUS+drive, disk_state); + } + else + { + if (high_density(drive)) + { + + /* + * Need to check for media change + */ + + (void )med_change(drive); + sas_load(FLOPPY_STATUS, &diskette_status); + if (diskette_status == FS_TIME_OUT) + { + /* + * Return without setting sectors + * transferred + */ + translate_old(drive); + setup_end(IGNORE_SECTORS_TRANSFERRED); + return; + } + } + + switch(media_type) + { + case MEDIA_TYPE_360_IN_12: + /* + * Need to set low density and double step + */ + disk_state |= (FS_MEDIA_DET | FS_DOUBLE_STEP | RS_300); + sas_store(FDD_STATUS+drive, disk_state); + break; + case MEDIA_TYPE_12_IN_12: + /* + * Need to set high density + */ + disk_state |= (FS_MEDIA_DET | RS_500); + sas_store(FDD_STATUS+drive, disk_state); + break; + case MEDIA_TYPE_720_IN_720: + /* + * Set 300kbs data rate if multi-format + * supported on drive, otherwise 250kbs + */ + if ( ((disk_state & DC_DETERMINED) != 0) + && ((disk_state & DC_MULTI_RATE) != 0)) + disk_state |= (FS_MEDIA_DET | RS_300); + else + disk_state |= (FS_MEDIA_DET | RS_250); + sas_store(FDD_STATUS+drive, disk_state); + break; + + default: + /* + * Unsupported media type + */ + sas_load(FLOPPY_STATUS, &diskette_status); + diskette_status = FS_BAD_COMMAND; + sas_store(FLOPPY_STATUS, diskette_status); + break; + } + } + + /* + * Return without setting sectors transferred + */ + + translate_old(drive); + setup_end(IGNORE_SECTORS_TRANSFERRED); +} + +void fl_set_media IFN1(int, drive) +{ + /* + * Set the type of media and data rate to be used in the + * subsequent format operation + * + * Register inputs: + * CH maximum track number + * CL sectors/track + * Register outputs: + * ES:DI parameter table address + * AH diskette status + * CF status flag + */ + half_word max_track = getCH(), sectors = getCL(); + half_word dt_max_track, dt_sectors; + half_word drive_type, diskette_status, disk_state, data_rate; + half_word dt_drive_type; + half_word lastrate; + word md_segment, md_offset; +#ifdef NTVDM + sys_addr dt_start = dr_type_addr; + sys_addr dt_end = dr_type_addr + DR_CNT * DR_SIZE_OF_ENTRY; +#else + sys_addr dt_start = DR_TYPE_ADDR; + sys_addr dt_end = DR_TYPE_ADDR + DR_CNT * DR_SIZE_OF_ENTRY; +#endif + sys_addr md_table; + + translate_new(drive); + + /* + * Check for a media change on drives with a change line + */ + + sas_load(FDD_STATUS+drive, &disk_state); + if ((disk_state & DC_80_TRACK) != 0) + { + (void )med_change(drive); + + sas_load(FLOPPY_STATUS, &diskette_status); + if (diskette_status == FS_TIME_OUT) + { + /* + * Return without setting sectors + * transferred + */ + translate_old(drive); + setup_end(IGNORE_SECTORS_TRANSFERRED); + return; + } + + sas_store(FLOPPY_STATUS, FS_OK); + } + + /* + * Search the parameter table for the correct entry + */ + + if (cmos_type(drive, &drive_type) == FAILURE) + { + sas_store(FLOPPY_STATUS, FS_MEDIA_NOT_FOUND); + } + else if (drive_type != 0) + { + if (dr_type_check(drive_type, &md_segment, &md_offset) == FAILURE) + { + sas_store(FLOPPY_STATUS, FS_MEDIA_NOT_FOUND); + } + else + { + /* + * Try to find the parameter table entry which + * has both the right drive type and matches + * the max sector and max track numbers + */ + while (dt_start < dt_end) + { + sas_load(dt_start, &dt_drive_type); + if ((dt_drive_type & ~DR_WRONG_MEDIA) == drive_type) + { + sas_loadw(dt_start+sizeof(half_word), &md_offset); + md_table = effective_addr(md_segment, md_offset); + + sas_load(md_table + DT_LAST_SECTOR, &dt_sectors); + sas_load(md_table + DT_MAXIMUM_TRACK, &dt_max_track); + if (dt_sectors == sectors && dt_max_track == max_track) + break; + } + + dt_start += DR_SIZE_OF_ENTRY; + } + + if (dt_start >= dt_end) + { + /* + * Failed to find an entry + */ + sas_store(FLOPPY_STATUS, FS_MEDIA_NOT_FOUND); + } + else + { + /* + * Update disk state and store + * parameter table address + */ + + sas_load(md_table+DT_DATA_TRANS_RATE, &data_rate); + if (data_rate == RS_300) + data_rate |= FS_DOUBLE_STEP; + + data_rate |= FS_MEDIA_DET; + sas_load(FDD_STATUS+drive, &disk_state); + +/* CHECK - IN CASE OF 2 DRIVES + * check last rate against the new data rate set + * in the status byte. If they differ + * set BIOS RATE STATUS byte to reflect old rate status + * for this drive as it may have been altered by an + * access to the other drive. This may result in a call + * to send_rate not being performed because the old + * rate status (possibly for the other drive) matching the + * new data rate for this drive, when actually the last rate + * attempted for this drive was different. Thus the + * controller for this drive is at an old rate (for low + * density say) and we are assuming it has been previously + * set to the updated (high) state when it has not! + * In all this will ensure the updated data rate being sent + * for the drive concerned ! + */ + if ((disk_state & RS_MASK) != (data_rate & RS_MASK)) + { + sas_load(RATE_STATUS, &lastrate); + /*LINTIGNORE*/ + lastrate &= ~RS_MASK; + lastrate |= disk_state & RS_MASK; + sas_store(RATE_STATUS, lastrate); + } + + disk_state &= ~(FS_MEDIA_DET | FS_DOUBLE_STEP | RS_MASK); + disk_state |= data_rate; + sas_store(FDD_STATUS+drive, disk_state); + + setES(md_segment); + setDI(md_offset); + } + } + } + + /* + * Return without setting sectors transferred + */ + + translate_old(drive); + setup_end(IGNORE_SECTORS_TRANSFERRED); +} + +LOCAL dr_type_check IFN3(half_word, drive_type, word *, seg_ptr, word *, off_ptr) +{ + /* + * Return the address of the first parameter table entry + * that matches "drive_type" + */ + half_word dt_drive_type; + sys_addr dt_start, dt_end; + +#ifdef NTVDM + *seg_ptr = dr_type_seg; + + dt_start = dr_type_addr; + dt_end = dr_type_addr + DR_CNT * DR_SIZE_OF_ENTRY; +#else + *seg_ptr = DISKETTE_IO_1_SEGMENT; + + dt_start = DR_TYPE_ADDR; + dt_end = DR_TYPE_ADDR + DR_CNT * DR_SIZE_OF_ENTRY; +#endif /* NTVDM */ + + while (dt_start < dt_end) + { + sas_load(dt_start, &dt_drive_type); + if (dt_drive_type == drive_type) + { + sas_loadw(dt_start+sizeof(half_word), off_ptr); + return(SUCCESS); + } + + dt_start += DR_SIZE_OF_ENTRY; + } + + return(FAILURE); +} + +LOCAL void send_spec IFN0() +{ + /* + * Send a specify command to the FDC using data from the + * parameter table pointed to by @DISK_POINTER + */ + nec_output(FDC_SPECIFY); + nec_output(get_parm(DT_SPECIFY1)); + nec_output(get_parm(DT_SPECIFY2)); +} + +LOCAL void send_spec_md IFN2(word, segment, word, offset) +{ + /* + * Send a specify command to the FDC using data from the + * parameter table pointed to by "segment" and "offset" + */ + half_word parameter; + + nec_output(FDC_SPECIFY); + sas_load(effective_addr(segment, offset+DT_SPECIFY1), ¶meter); + nec_output(parameter); + sas_load(effective_addr(segment, offset+DT_SPECIFY2), ¶meter); + nec_output(parameter); +} + +LOCAL void translate_new IFN1(int, drive) +{ + /* + * Translates diskette state locations from compatible + * mode to new architecture + */ + half_word hf_cntrl, disk_state; + + sas_load(DRIVE_CAPABILITY, &hf_cntrl); + +#ifdef NTVDM + if (high_density(drive) && (drive < number_of_floppy)) +#else + if (high_density(drive) && (drive < MAX_FLOPPY)) +#endif /* NTVDM */ + { + sas_load(FDD_STATUS+drive, &disk_state); + if (disk_state == 0) + { + /* + * Try to establish drive capability + */ + drive_detect(drive); + } + else + { + /* + * Copy drive capability bits + */ + hf_cntrl >>= (drive << 2); + hf_cntrl &= DC_MASK; + disk_state &= ~DC_MASK; + disk_state |= hf_cntrl; + sas_store(FDD_STATUS+drive, disk_state); + } + } +} + +void translate_old IFN1(int, drive) +{ + /* + * Translates diskette state locations from new + * architecture to compatible mode + */ + half_word hf_cntrl, disk_state, mode, drive_type; + int shift_count = drive << 2; + + sas_load(DRIVE_CAPABILITY, &hf_cntrl); + sas_load(FDD_STATUS+drive, &disk_state); + +#ifdef NTVDM + if (high_density(drive) && (drive < number_of_floppy) && (disk_state != 0)) +#else + if (high_density(drive) && (drive < MAX_FLOPPY) && (disk_state != 0)) +#endif /* NTVDM */ + + { + /* + * Copy drive capability bits + */ + if ((hf_cntrl & (DC_MULTI_RATE << shift_count)) == 0) + { + hf_cntrl &= ~(DC_MASK << shift_count); + hf_cntrl |= (disk_state & DC_MASK) << shift_count; + sas_store(DRIVE_CAPABILITY, hf_cntrl); + } + + /* + * Copy media type bits + */ + + switch (disk_state & RS_MASK) + { + case RS_500: + /* + * Drive should be a 1.2M + */ + if ( (cmos_type(drive, &drive_type) != FAILURE) + && (drive_type == GFI_DRIVE_TYPE_12)) + { + mode = FS_12_IN_12; + if ((disk_state & FS_MEDIA_DET) != 0) + mode = media_determined(mode); + } + else + { + mode = FS_DRIVE_SICK; + } + break; + + case RS_300: + /* + * Should be double-stepping for 360K floppy + * in 1.2M drive + */ + mode = FS_360_IN_12; + if ((disk_state & FS_DOUBLE_STEP) != 0) + { + if ((disk_state & FS_MEDIA_DET) != 0) + mode = media_determined(mode); + } + else + { + mode = FS_DRIVE_SICK; + } + break; + + case RS_250: + /* + * Should be 360K floppy in 360K drive, + * ie 250kbs and 40 track + */ + if ((disk_state & DC_80_TRACK) == 0) + { + mode = FS_360_IN_360; + if ((disk_state & FS_MEDIA_DET) != 0) + mode = media_determined(mode); + } + else + { + mode = FS_DRIVE_SICK; + } + break; + + case RS_1000: + /* + * Drive should be a 2.88M + */ + if ( (cmos_type(drive, &drive_type) != FAILURE) + && (drive_type == GFI_DRIVE_TYPE_288)) + { + mode = FS_288_IN_288; + if ((disk_state & FS_MEDIA_DET) != 0) + mode = media_determined(mode); + } + else + { + mode = FS_DRIVE_SICK; + } + break; + + default: + /* + * Weird data rate + */ + mode = FS_DRIVE_SICK; + break; + } + + disk_state &= ~DC_MASK; + disk_state |= mode; + sas_store(FDD_STATUS+drive, disk_state); + } +} + +LOCAL void rd_wr_vf IFN3(int, drive, FDC_CMD_BLOCK *, fcbp, half_word, dma_type) +{ + /* + * Common read, write and verify; main loop for data rate + * retries + */ + half_word data_rate, dt_data_rate, drive_type, dt_drive_type; + half_word disk_state; + sys_addr dt_start, dt_end; + int sectors_transferred; + word md_segment, md_offset; + /* + * Establish initial data rate, then loop through each + * possible data rate + */ + translate_new(drive); + setup_state(drive); + while ((! high_density(drive)) || med_change(drive) == SUCCESS) + { + sas_load(FDD_STATUS+drive, &disk_state); + data_rate = disk_state & RS_MASK; + if (cmos_type(drive, &drive_type) != FAILURE) + { + /* + * Check CMOS value against what is really + * known about the drive + */ + /* + * The original code here had a very bad case of "Bad-C" + * if-if-else troubles, but replacing the code with + * the switch statement originally intended breaks + * 5.25" floppies. I have removed the redundant bits + * of the code, but BEWARE - there is a another + * fault somewhere to cancel out this one! + * William Roberts - 9/2/93 + */ + if (drive_type == GFI_DRIVE_TYPE_360) + { + if ((disk_state & DC_80_TRACK) != 0) + { + drive_type = GFI_DRIVE_TYPE_12; + } + /* else if (drive_type == GFI_DRIVE_TYPE_12) ... */ + } + + /* + ** dr_type_check() looks for the first matching drive + ** value in the small table and returns a + ** pointer to the coresponding entry in the big + ** parameter table. + ** The segment is used later on but the offset is + ** determined by a subsequent search of the table below. + ** These table live in ROM (see bios2.rom) fe00:c80 + */ + if ( (drive_type != GFI_DRIVE_TYPE_NULL) + && (dr_type_check(drive_type, &md_segment, &md_offset) != FAILURE)) + { + /* + * Try to find parameter table entry with + * right drive type and current data rate + */ +#ifdef NTVDM + dt_start = dr_type_addr; + dt_end = dr_type_addr + DR_CNT * DR_SIZE_OF_ENTRY; +#else + dt_start = DR_TYPE_ADDR; + dt_end = DR_TYPE_ADDR + DR_CNT * DR_SIZE_OF_ENTRY; +#endif /* NTVDM */ + while (dt_start < dt_end) + { + /* + ** get drive type from table + */ + sas_load(dt_start, &dt_drive_type); + if ((dt_drive_type & ~DR_WRONG_MEDIA) == drive_type) + { + /* + ** get data rate from table + */ + sas_loadw(dt_start+sizeof(half_word), &md_offset); + sas_load(effective_addr(md_segment, md_offset) + DT_DATA_TRANS_RATE, &dt_data_rate); + /* + ** if table rate matches that + ** selected by setup_state() + ** then try current table entry + ** parameters. + */ + if (data_rate == dt_data_rate) + break; + } + + dt_start += DR_SIZE_OF_ENTRY; + } + if (dt_start >= dt_end) + { + /* + * Assume media matches drive + */ +#ifdef NTVDM + md_segment = dr_type_seg; + md_offset = dr_type_off; + if ((disk_state & DC_80_TRACK) == 0) + md_offset += MD_TBL1_OFFSET; + else + md_offset += MD_TBL3_OFFSET; +#else + md_segment = DISKETTE_IO_1_SEGMENT; + if ((disk_state & DC_80_TRACK) == 0) + md_offset = MD_TBL1_OFFSET; + else + md_offset = MD_TBL3_OFFSET; +#endif /* NTVDM */ + + } + } + else + { + /* + * Assume media matches drive + */ +#ifdef NTVDM + md_segment = dr_type_seg; + md_offset = dr_type_off; + if ((disk_state & DC_80_TRACK) == 0) + md_offset += MD_TBL1_OFFSET; + else + md_offset += MD_TBL3_OFFSET; +#else + md_segment = DISKETTE_IO_1_SEGMENT; + if ((disk_state & DC_80_TRACK) == 0) + md_offset = MD_TBL1_OFFSET; + else + md_offset = MD_TBL3_OFFSET; +#endif /* NTVDM */ + } + } + else + { + /* + * Assume media matches drive + */ +#ifdef NTVDM + md_segment = dr_type_seg; + md_offset = dr_type_off; + if ((disk_state & DC_80_TRACK) == 0) + md_offset += MD_TBL1_OFFSET; + else + md_offset += MD_TBL3_OFFSET; +#else + md_segment = DISKETTE_IO_1_SEGMENT; + if ((disk_state & DC_80_TRACK) == 0) + md_offset = MD_TBL1_OFFSET; + else + md_offset = MD_TBL3_OFFSET; +#endif /* NTVDM */ + } + + /* + * Send a specify command to the FDC; change the + * rate if it has been updated + */ + send_spec_md(md_segment, md_offset); + if (chk_lastrate(drive) != FAILURE) + send_rate(drive); + + /* + * Decide whether double stepping is required for + * the data rate currently being tried + */ + + if (setup_dbl(drive) != FAILURE) + { + if (dma_setup(dma_type) == FAILURE) + { + translate_old(drive); + setup_end(IGNORE_SECTORS_TRANSFERRED); + return; + } + + /* + * Attempt the transfer + */ + nec_init(drive, fcbp); + rwv_com(md_segment, md_offset); + (void )nec_term(); + } + + /* + ** Will select next data rate in range specified by + ** setup_state() and try again. + ** When there are no more rates give up. + */ + if (retry(drive) == SUCCESS) + break; + } + + /* + * Determine the current drive state and return, setting + * the number of sectors actually transferred + */ + dstate(drive); + sectors_transferred = num_trans(); + translate_old(drive); + setup_end(sectors_transferred); +} + +LOCAL void setup_state IFN1(int, drive) +{ + half_word drive_type; /* Floppy unit type specified by CMOS */ + + /* + * Initialises start and end data rates + */ + half_word disk_state, start_rate, end_rate, lastrate; + + if (high_density(drive)) + { + sas_load(FDD_STATUS+drive, &disk_state); +#ifndef NTVDM + if ((disk_state & FS_MEDIA_DET) == 0) + { + + /* + * Set up first and last data rates to + * try + */ + if ( ((disk_state & DC_DETERMINED) != 0) + && ((disk_state & DC_MULTI_RATE) == 0) ) + { + /* not a multi-rate drive */ + start_rate = end_rate = RS_250; + } + else + { + /* multi-rate drive */ +/* + * The real BIOS always sets up start_rate=500 and end_rate=300 + * If we attempt this then some bug (not yet found) will cause the following + * sequence to fail (5.25") low density read followed by high density read. + * This gives rate transitions 500 -> 250 -> 300 -> 500 ... + * Read the drive type from CMOS and adjust the start and end rates to match. + * The CMOS drive type is set up during cmos_post() by calling config_inquire(). +*/ +if( cmos_type( drive, &drive_type ) != FAILURE ){ + switch( drive_type ){ + case GFI_DRIVE_TYPE_360: + case GFI_DRIVE_TYPE_12: + start_rate = RS_300; /* different to Real BIOS */ + end_rate = RS_500; + break; + case GFI_DRIVE_TYPE_720: + case GFI_DRIVE_TYPE_144: + start_rate = RS_500; /* same as Real BIOS */ + end_rate = RS_300; + break; +/* + * We don't know what the real BIOS does here. These values work + * fine. Any code in rd_wr_vf that gets confused will drop out to + * default high density values if neither of the following two + * rates work. + */ + + case GFI_DRIVE_TYPE_288: + start_rate = RS_1000; + end_rate = RS_300; + break; + default: + always_trace1( "setup_state(): Bad Drive from CMOS:%x", + drive_type ); + break; + } +}else{ + always_trace0( "setup_state(): CMOS read failure: Drive Type" ); +} + + } + +#else /* NTVDM */ + + if ((disk_state & FS_MEDIA_DET) == 0) + { + + if( cmos_type( drive, &drive_type ) != FAILURE ){ + switch( drive_type ){ + case GFI_DRIVE_TYPE_360: + case GFI_DRIVE_TYPE_720: + start_rate = + end_rate = RS_250; + break; + + case GFI_DRIVE_TYPE_12: + start_rate = RS_300; /* different to Real BIOS */ + end_rate = RS_500; + break; + case GFI_DRIVE_TYPE_144: + start_rate = RS_500; /* same as Real BIOS */ + end_rate = RS_250; + break; +/* + * We don't know what the real BIOS does here. These values work + * fine. Any code in rd_wr_vf that gets confused will drop out to + * default high density values if neither of the following two + * rates work. + */ + + case GFI_DRIVE_TYPE_288: + start_rate = RS_1000; + end_rate = RS_300; + break; + default: + always_trace1( "setup_state(): Bad Drive from CMOS:%x", + drive_type ); + break; + } + }else{ + always_trace0( "setup_state(): CMOS read failure: Drive Type" ); + } + +#endif /* NTVDM */ + + /* + * Set up disk state with current data + * rate; clear double stepping, which + * may be re-established by a call to + * setup_dbl() + */ + disk_state &= ~(RS_MASK | FS_DOUBLE_STEP); + disk_state |= start_rate; + sas_store(FDD_STATUS+drive, disk_state); + + /* + * Store final rate to try in rate data + */ + sas_load(RATE_STATUS, &lastrate); + lastrate &= ~(RS_MASK >> 4); + lastrate |= (end_rate >> 4); + sas_store(RATE_STATUS, lastrate); + } + } +} + +LOCAL void fmt_init IFN1(int, drive) +{ + /* + * If the media type has not already been set up, establish + * the default media type for the drive type + */ + half_word disk_state, drive_type; + + if (high_density(drive)) + { + sas_load(FDD_STATUS+drive, &disk_state); + if ((disk_state & FS_MEDIA_DET) == 0) + { + if ( (cmos_type(drive, &drive_type) != FAILURE) + && (drive_type != 0)) + { + disk_state &= ~(FS_MEDIA_DET | FS_DOUBLE_STEP | RS_MASK); + switch(drive_type) + { + case GFI_DRIVE_TYPE_360: + disk_state |= (FS_MEDIA_DET | RS_250); + break; + case GFI_DRIVE_TYPE_12: + case GFI_DRIVE_TYPE_144: + disk_state |= (FS_MEDIA_DET | RS_500); + break; + case GFI_DRIVE_TYPE_288: + disk_state |= (FS_MEDIA_DET | RS_1000); + break; + case GFI_DRIVE_TYPE_720: + if ((disk_state & (DC_DETERMINED|DC_MULTI_RATE)) + == (DC_DETERMINED|DC_MULTI_RATE)) + disk_state |= (FS_MEDIA_DET | RS_300); + else + disk_state |= (FS_MEDIA_DET | RS_250); + break; + default: + disk_state = 0; + break; + } + } + else + { + disk_state = 0; + } + sas_store(FDD_STATUS+drive, disk_state); + } + } +} + +LOCAL med_change IFN1(int, drive) +{ + /* + * Checks for media change, resets media change, + * checks media change again + */ + half_word disk_state, motor_status; + + if (high_density(drive)) + { + if (read_dskchng(drive) == SUCCESS) + return(SUCCESS); + + /* + * Media has been changed - set media state to + * undetermined + */ + sas_load(FDD_STATUS+drive, &disk_state); + disk_state &= ~FS_MEDIA_DET; + sas_store(FDD_STATUS+drive, disk_state); + + /* + * Start up the motor, since opening the + * door may have turned the motor off + */ + sas_load(MOTOR_STATUS, &motor_status); + motor_status &= ~(1 << drive); + sas_store(MOTOR_STATUS, motor_status); + motor_on(drive); + + /* + * This sequence of seeks should reset the + * disk change line, if the door is left + * alone + */ + fl_disk_reset(drive); + (void )seek(drive, 1); + (void )seek(drive, 0); + + /* + * If disk change line still active, assume drive + * is empty or door has been left open + */ + if (read_dskchng(drive) == SUCCESS) + sas_store(FLOPPY_STATUS, FS_MEDIA_CHANGE); + else + sas_store(FLOPPY_STATUS, FS_TIME_OUT); + } + return(FAILURE); +} + +LOCAL void send_rate IFN1(int, drive) +{ + /* + * Update the data rate for "drive" + */ + half_word lastrate, disk_state; + + if (high_density(drive)) + { + + /* + * Update the adapter data rate + */ + sas_load(RATE_STATUS, &lastrate); + lastrate &= ~RS_MASK; + sas_load(FDD_STATUS+drive, &disk_state); + disk_state &= RS_MASK; + lastrate |= disk_state; + sas_store(RATE_STATUS, lastrate); + + /* + * Establish the new data rate for the drive via + * the floppy adapter + */ + + outb(DISKETTE_DCR_REG, (disk_state >> 6)); + } +} + +LOCAL chk_lastrate IFN1(int, drive) +{ + /* + * Reply whether the adapter data rate is different to + * the disk state data rate + */ + half_word lastrate, disk_state; + + if (rate_unitialised) + { + rate_unitialised = FALSE; + return(SUCCESS); + } + + sas_load(RATE_STATUS, &lastrate); + sas_load(FDD_STATUS+drive, &disk_state); + return((lastrate & RS_MASK) != (disk_state & RS_MASK) + ? SUCCESS : FAILURE); +} + +LOCAL dma_setup IFN1(half_word, dma_mode) +{ + /* + * This routine sets up the DMA for read/write/verify + * operations + */ + DMA_ADDRESS dma_address; + reg byte_count; + + /* + * Disable interrupts + */ + + setIF(0); + + /* + * Set up the DMA adapter's internal state and mode + */ + + outb(DMA_CLEAR_FLIP_FLOP, dma_mode); + outb(DMA_WRITE_MODE_REG, dma_mode); + + /* + * Output the address to the DMA adapter as a page address + * and 16 bit offset + */ + if (dma_mode == BIOS_DMA_VERIFY) + dma_address.all = 0; + else + dma_address.all = effective_addr(getES(), getBX()); + outb(DMA_CH2_ADDRESS, dma_address.parts.low); + outb(DMA_CH2_ADDRESS, dma_address.parts.high); + outb(DMA_FLA_PAGE_REG, dma_address.parts.page); + + /* + * Calculate the number of bytes to be transferred from the + * number of sectors, and the sector size. Subtract one + * because the DMA count must wrap to 0xFFFF before it + * stops + */ + + byte_count.X = ((unsigned int)getAL() << (7 + get_parm(DT_N_FORMAT))) - 1; + outb(DMA_CH2_COUNT, byte_count.byte.low); + outb(DMA_CH2_COUNT, byte_count.byte.high); + + /* + * Enable interrupts + */ + + setIF(1); + + /* + * Set up diskette channel for the operation, checking + * for wrapping of the bottom 16 bits of the address + */ + + outb(DMA_WRITE_ONE_MASK_BIT, DMA_DISKETTE_CHANNEL); + if (((long)dma_address.words.low + (long)byte_count.X) > 0xffff) + { + sas_store(FLOPPY_STATUS, FS_DMA_BOUNDARY); + return(FAILURE); + } + + return(SUCCESS); +} + +LOCAL fmtdma_set IFN0() +{ + /* + * This routine sets up the DMA for format operations + */ + DMA_ADDRESS dma_address; + reg byte_count; + + /* + * Disable interrupts + */ + + setIF(0); + + /* + * Set up the DMA adapter's internal state and mode + */ + + outb(DMA_CLEAR_FLIP_FLOP, BIOS_DMA_WRITE); + outb(DMA_WRITE_MODE_REG, BIOS_DMA_WRITE); + + /* + * Output the address to the DMA adapter as a page address + * and 16 bit offset + */ + dma_address.all = effective_addr(getES(), getBX()); + outb(DMA_CH2_ADDRESS, dma_address.parts.low); + outb(DMA_CH2_ADDRESS, dma_address.parts.high); + outb(DMA_FLA_PAGE_REG, dma_address.parts.page); + + /* + * Calculate the number of bytes to be transferred from the + * number of sectors per track, given that 4 bytes (C,H,R,N) + * are needed to define each sector's address mark. Subtract + * one because the DMA count must wrap to 0xFFFF before it + * stops + */ + + byte_count.X = ((unsigned int)get_parm(DT_LAST_SECTOR) << 2) - 1; + outb(DMA_CH2_COUNT, byte_count.byte.low); + outb(DMA_CH2_COUNT, byte_count.byte.high); + + /* + * Enable interrupts + */ + + setIF(1); + + /* + * Set up diskette channel for the operation, checking + * for wrapping of the bottom 16 bits of the address + */ + +#ifndef NTVDM + /* we don't have to worry about this on NT */ + outb(DMA_WRITE_ONE_MASK_BIT, DMA_DISKETTE_CHANNEL); + if (((long)dma_address.words.low + (long)byte_count.X) > 0xffff) + { + sas_store(FLOPPY_STATUS, FS_DMA_BOUNDARY); + return(FAILURE); + } +#endif + + return(SUCCESS); +} + +LOCAL void nec_init IFN2(int, drive, FDC_CMD_BLOCK *, fcbp) +{ + /* + * This routine seeks to the requested track and + * initialises the FDC for the read/write/verify + * operation. + */ + + motor_on(drive); + if (seek(drive, (int)getCH()) != FAILURE) + { + nec_output(fcbp[0]); + put_c2_head(fcbp, getDH()); + put_c2_drive(fcbp, drive); + put_c2_pad1(fcbp, 0); + nec_output(fcbp[1]); + } +} + +LOCAL void rwv_com IFN2(word, md_segment, word, md_offset) +{ + /* + * This routine send read/write/verify parameters to the + * FDC + */ + half_word md_gap; + + /* + * Output track number, head number and sector number + */ + nec_output(getCH()); + nec_output(getDH()); + nec_output(getCL()); + + /* + * Output bytes/sector and sectors/track + */ + nec_output(get_parm(DT_N_FORMAT)); + nec_output(get_parm(DT_LAST_SECTOR)); + + /* + * Output gap length + */ + sas_load(effective_addr(md_segment, md_offset)+DT_GAP_LENGTH, &md_gap); + nec_output(md_gap); + + /* + * Output data length + */ + nec_output(get_parm(DT_DTL)); +} + +LOCAL nec_term IFN0() +{ + /* + * This routine waits for the operation then interprets + * the results from the FDC + */ + half_word diskette_status; + int wait_int_result; + + wait_int_result = wait_int(); + if (results() != FAILURE && wait_int_result != FAILURE) + { + /* + * Result phase completed + */ + if ((get_r0_ST0(fl_nec_status) & + (ST0_INTERRUPT_CODE_0 | ST0_INTERRUPT_CODE_1)) != 0) + { + /* + * Command did not terminate normally + */ + sas_load(FLOPPY_STATUS, &diskette_status); + if ((get_r0_ST0(fl_nec_status) & ST0_INTERRUPT_CODE_0) + == 0) + { + /* + * Problem with the FDC + */ + diskette_status |= FS_FDC_ERROR; + + always_trace0("diskette_io: FDC error - emetic command"); + } + else + { + /* + * Abnormal termination - set + * diskette status up accordingly + */ + if (get_r0_ST1(fl_nec_status) & + ST1_END_OF_CYLINDER) + { + diskette_status |= FS_SECTOR_NOT_FOUND; + } + else if (get_r0_ST1(fl_nec_status) & + ST1_DATA_ERROR) + { + diskette_status |= FS_CRC_ERROR; + } + else if (get_r0_ST1(fl_nec_status) & + ST1_OVERRUN) + { + diskette_status |= FS_DMA_ERROR; + } + else if (get_r0_ST1(fl_nec_status) & + ST1_NO_DATA) + { + diskette_status |= FS_FDC_ERROR; /* Tim Sept 91, was FS_SECTOR_NOT_FOUND */ + } + else if (get_r0_ST1(fl_nec_status) & + ST1_NOT_WRITEABLE) + { + diskette_status |= FS_WRITE_PROTECTED; + } + else if (get_r0_ST1(fl_nec_status) & + ST1_MISSING_ADDRESS_MARK) + { + diskette_status |= FS_BAD_ADDRESS_MARK; + } + else + { + /* + * Problem with the FDC + */ + diskette_status |= FS_TIME_OUT; /* Tim Sept 91, was FS_FDC_ERROR */ + always_trace0("diskette_io: FDC error - perverted result"); + } + } + sas_store(FLOPPY_STATUS, diskette_status); + } + } + sas_load(FLOPPY_STATUS, &diskette_status); + return((diskette_status == FS_OK) ? SUCCESS : FAILURE); +} + +LOCAL void dstate IFN1(int, drive) +{ + /* + * Determine the drive state after a successful operation + */ + half_word diskette_status, disk_state, drive_type; + + if (high_density(drive)) + { + sas_load(FLOPPY_STATUS, &diskette_status); + if (diskette_status == 0) + { + /* + * Command successful, both media and drive + * are now determined + */ + sas_load(FDD_STATUS+drive, &disk_state); + disk_state |= FS_MEDIA_DET; + if ((disk_state & DC_DETERMINED) == 0) + { + if ( ((disk_state & RS_MASK) == RS_250) + && (cmos_type(drive, &drive_type) != FAILURE) + && (drive_type != GFI_DRIVE_TYPE_144) + && (drive_type != GFI_DRIVE_TYPE_288) ) + { + /* + * No multi-format capability + */ + disk_state &= ~DC_MULTI_RATE; + disk_state |= DC_DETERMINED; + } + else + { + /* + * Multi-format capability + */ + disk_state |= (DC_DETERMINED | DC_MULTI_RATE); + } + } + sas_store(FDD_STATUS+drive, disk_state); + } + } +} + +LOCAL retry IFN1(int, drive) +{ + /* + * Determines whether a retry is necessary. If retry is + * required then state information is updated for retry + */ + half_word diskette_status, disk_state, data_rate, lastrate; + + sas_load(FLOPPY_STATUS, &diskette_status); + if (diskette_status != FS_OK && diskette_status != FS_TIME_OUT) + { + sas_load(FDD_STATUS+drive, &disk_state); + if ((disk_state & FS_MEDIA_DET) == 0) + { + sas_load(RATE_STATUS, &lastrate); + if ((data_rate = (disk_state & RS_MASK)) != + ((lastrate << 4) & RS_MASK)) + { + /* + * Last command failed, the media + * is still unknown, and there are + * more data rates to check, so set + * up next data rate + */ + data_rate = next_rate(data_rate); + + /* + * Reset state and go for retry + */ + disk_state &= ~(RS_MASK | FS_DOUBLE_STEP); + disk_state |= data_rate; + sas_store(FDD_STATUS+drive, disk_state); + sas_store(FLOPPY_STATUS, FS_OK); + return(FAILURE); + } + } + } + + /* + * Retry not worthwhile + */ + return(SUCCESS); +} + +LOCAL num_trans IFN0() +{ + /* + * This routine calculates the number of sectors that + * were actually transferred to/from the diskette + */ + half_word diskette_status; + int sectors_per_track, sectors_transferred = 0; + + sas_load(FLOPPY_STATUS, &diskette_status); + if (diskette_status == 0) + { + /* + * Number of sectors = final sector - initial sector + */ + LOAD_RESULT_BLOCK; + sectors_transferred = get_r0_sector(fl_nec_status) - getCL(); + + /* + * Adjustments for spanning heads or tracks + */ + sectors_per_track = (int)get_parm(DT_LAST_SECTOR); + LOAD_RESULT_BLOCK; + if (get_r0_head(fl_nec_status) != getDH()) + sectors_transferred += sectors_per_track; + else if (get_r0_cyl(fl_nec_status) != getCH()) + sectors_transferred += (sectors_per_track * 2); + } + + return(sectors_transferred); +} + +LOCAL void setup_end IFN1(int, sectors_transferred) +{ + /* + * Restore MOTOR_COUNT to parameter provided in table; + * set return status values and sectors transferred, + * where applicable + */ + half_word diskette_status; + + sas_store(MOTOR_COUNT, get_parm(DT_MOTOR_WAIT)); + + sas_load(FLOPPY_STATUS, &diskette_status); + setAH(diskette_status); + if (diskette_status != 0) + { + /* + * Operation failed + */ + if (sectors_transferred != IGNORE_SECTORS_TRANSFERRED) + setAL(0); + setCF(1); + } + else + { + /* + * Operation succeeded + */ + if (sectors_transferred != IGNORE_SECTORS_TRANSFERRED) + setAL(sectors_transferred); + setCF(0); + } +} + +LOCAL setup_dbl IFN1(int, drive) +{ + /* + * Check whether media requires to be double-stepped to + * be read at the current data rate + */ + half_word disk_state; + int track, max_track; + + if (high_density(drive)) + { + sas_load(FDD_STATUS+drive, &disk_state); + if ((disk_state & FS_MEDIA_DET) == 0) + { + /* + * First check track 0 to get out quickly if + * the media is unformatted + */ + sas_store(SEEK_STATUS, 0); + motor_on(drive); + (void )seek(drive, 0); + if (read_id(drive, 0) != FAILURE) + { + + /* + * Try reading ids from cylinder 2 to + * the last cylinder on both heads. If + * the putative track number disagrees + * with what is on the disk, then + * double stepping is required + */ + if ((disk_state & DC_80_TRACK) == 0) + max_track = 0x50; + else + max_track = 0xa0; + + for (track = 4; track < max_track; track++) + { + /* ensure motor stays on */ + sas_store(MOTOR_COUNT, MC_MAXIMUM); + + sas_store(FLOPPY_STATUS, FS_OK); + (void )seek(drive, track/2); + if (read_id(drive, track%2) == SUCCESS) + { + LOAD_RESULT_BLOCK; + sas_store(FDD_TRACK+drive, + get_r0_cyl(fl_nec_status)); + if ((track/2) != + get_r0_cyl(fl_nec_status)) + { + disk_state |= FS_DOUBLE_STEP; + sas_store(FDD_STATUS+drive, disk_state); + } + return(SUCCESS); + } + } + } + return(FAILURE); + } + } + + return(SUCCESS); +} + +LOCAL read_id IFN2(int, drive, int, head) +{ + /* + * Perform the read id function + */ + FDC_CMD_BLOCK fdc_cmd_block[MAX_COMMAND_LEN]; + + put_c4_cmd(fdc_cmd_block, FDC_READ_ID); + put_c4_pad1(fdc_cmd_block, 0); + put_c4_MFM(fdc_cmd_block, 1); + put_c4_pad(fdc_cmd_block, 0); + nec_output(fdc_cmd_block[0]); + + put_c4_drive(fdc_cmd_block, drive); + put_c4_head(fdc_cmd_block, head); + put_c4_pad2(fdc_cmd_block, 0); + nec_output(fdc_cmd_block[1]); + + return(nec_term()); +} + +LOCAL cmos_type IFN2(int, drive, half_word *, type) +{ + /* + * Returns diskette type from the soft CMOS + */ + half_word cmos_byte; + + /* + * Check the CMOS battery and checksum + */ + cmos_byte = cmos_read(CMOS_DIAG); + if ((cmos_byte & (BAD_CKSUM|BAD_BAT)) != 0) + return(FAILURE); + + /* + * Read the CMOS diskette drive type byte and return + * the nibble for the drive requested. The types for + * drive 0 and 1 are given in the high and low nibbles + * respectively. + */ + cmos_byte = cmos_read(CMOS_DISKETTE); + if (drive == 0) + cmos_byte >>= 4; + *type = cmos_byte & 0xf; + + return(SUCCESS); +} + +LOCAL half_word get_parm IFN1(int, index) +{ + /* + * Return the byte in the current diskette parameter table + * offset by "index" + */ + half_word value; + word segment, offset; + + sas_loadw(DISK_POINTER_ADDR, &offset); + sas_loadw(DISK_POINTER_ADDR + 2, &segment); + + sas_load(effective_addr(segment, offset+index), &value); + +#ifndef PROD + { + char *parm_name = "Unknown???"; + +#define DT_PARM_NAME(x,y) case x: parm_name = y; break; + + switch (index) { + DT_PARM_NAME(DT_SPECIFY1,"SPECIFY1"); + DT_PARM_NAME(DT_SPECIFY2,"SPECIFY2"); + DT_PARM_NAME(DT_MOTOR_WAIT,"MOTOR_WAIT"); + DT_PARM_NAME(DT_N_FORMAT,"N_FORMAT"); + DT_PARM_NAME(DT_LAST_SECTOR,"LAST_SECTOR"); + DT_PARM_NAME(DT_GAP_LENGTH,"GAP_LENGTH"); + DT_PARM_NAME(DT_DTL,"DTL"); + DT_PARM_NAME(DT_FORMAT_GAP_LENGTH,"FORMAT_GAP_LENGTH"); + DT_PARM_NAME(DT_FORMAT_FILL_BYTE,"FORMAT_FILL_BYTE"); + DT_PARM_NAME(DT_HEAD_SETTLE,"HEAD_SETTLE"); + DT_PARM_NAME(DT_MOTOR_START,"MOTOR_START"); + DT_PARM_NAME(DT_MAXIMUM_TRACK,"MAXIMUM_TRACK"); + DT_PARM_NAME(DT_DATA_TRANS_RATE,"DATA_TRANS_RATE"); + } + + note_trace5(FLOPBIOS_VERBOSE, + "diskette_io:get_parm(%04x:%04x+%02x) %s=%02x)", + segment, offset, index, parm_name, value); + } +#endif /* PROD */ + + return(value); +} + +LOCAL void motor_on IFN1(int, drive) +{ + /* + * Turn motor on and wait for motor start up time + */ + double_word time_to_wait; + + /* + * If motor was previously off - wait for the start-up time + */ + if (turn_on(drive) != FAILURE) + { + /* + * Notify OS that BIOS is about to wait for motor + * start up + */ +#ifndef JOKER + word savedAX, savedCX, savedDX, savedCS, savedIP; + + translate_old(drive); + + savedAX = getAX(); + savedCS = getCS(); + savedIP = getIP(); + + setAH(INT15_DEVICE_BUSY); + setAL(INT15_DEVICE_FLOPPY_MOTOR); +#ifdef NTVDM + setCS(int15_seg); + setIP(int15_off); +#else + setCS(RCPU_INT15_SEGMENT); + setIP(RCPU_INT15_OFFSET); +#endif /* NTVDM */ + + host_simulate(); + + setAX(savedAX); + setCS(savedCS); + setIP(savedIP); + + translate_new(drive); + + /* + * Quit if operating system handled wait and motor + * is still on + */ + if (getCF() && turn_on(drive) == FAILURE) + return; + +#endif /* JOKER */ + + /* + * Get time to wait in 1/8 second units - minimum + * wait time 1 second + */ + if ((time_to_wait = get_parm(DT_MOTOR_START)) < WAIT_A_SECOND) + time_to_wait = WAIT_A_SECOND; + + /* + * Convert time to wait into microseconds + */ + + time_to_wait *= 125000L; + + /* at this point the real BIOS sets CX,DX to time_to_wait; + we don't actually need to wait at all, so request + the minimum length wait */ + +#ifndef JOKER + + /* + * Ask OS to do wait + */ + savedAX = getAX(); + savedCX = getCX(); + savedDX = getDX(); + savedCS = getCS(); + savedIP = getIP(); + + setAH(INT15_WAIT); + setCX(0); + setDX(1); +#ifdef NTVDM + setCS(int15_seg); + setIP(int15_off); +#else + setCS(RCPU_INT15_SEGMENT); + setIP(RCPU_INT15_OFFSET); +#endif /* NTVDM */ + + host_simulate(); + + setAX(savedAX); + setCX(savedCX); + setDX(savedDX); + setCS(savedCS); + setIP(savedIP); + + /* + * Quit if wait succeeded + */ + if (!getCF()) + return; + +#endif /* JOKER */ + + /* + * Need to do fixed wait locally + */ + waitf(time_to_wait); + } +} + +LOCAL turn_on IFN1(int, drive) +{ + /* + * Turn motor on and return wait state + */ + half_word motor_status, drive_select_desired, motor_on_desired; + half_word drive_select, status_desired, old_motor_on, new_motor_on; + half_word diskette_dor_reg; + + /* + * Disable interrupts + */ + setIF(0); + + /* + * Make sure the motor stays on as long as possible + */ + sas_store(MOTOR_COUNT, MC_MAXIMUM); + + /* + * Get existing and desired drive select and motor on + */ + sas_load(MOTOR_STATUS, &motor_status); + drive_select = motor_status & MS_DRIVE_SELECT_MASK; + drive_select_desired = (drive << 4); + motor_on_desired = (1 << drive); + + if ( (drive_select != drive_select_desired) + || ((motor_on_desired & motor_status) == 0)) + { + /* + * Store desired motor status + */ + status_desired = motor_on_desired | drive_select_desired; + old_motor_on = motor_status & MS_MOTOR_ON_MASK; + motor_status &= ~MS_DRIVE_SELECT_MASK; + motor_status |= status_desired; + sas_store(MOTOR_STATUS, motor_status); + + /* + * Switch on motor of selected drive via a write + * to the floppy adapter's Digital Output Register + */ + new_motor_on = motor_status & MS_MOTOR_ON_MASK; + setIF(1); + diskette_dor_reg = motor_status << 4; + diskette_dor_reg |= (motor_status & MS_DRIVE_SELECT_MASK) >> 4; + diskette_dor_reg |= (DOR_INTERRUPTS | DOR_RESET); + outb(DISKETTE_DOR_REG, diskette_dor_reg); + + /* + * Flag success only if the motor was switched on, + * and not just reselected + */ + if (new_motor_on != old_motor_on) + return(SUCCESS); + } + + /* + * Enable interrupts + */ + setIF(1); + return(FAILURE); +} + +LOCAL void hd_wait IFN1(int, drive) +{ + /* + * Wait for head settle time + */ + half_word motor_status, disk_state; + word time_to_wait; +#ifndef JOKER + word savedAX, savedCX, savedDX, savedCS, savedIP; +#endif + + /* + * Get head settle time; for write operations, the minimum + * head settle times may need to be enforced + */ + time_to_wait = get_parm(DT_HEAD_SETTLE); + sas_load(MOTOR_STATUS, &motor_status); + if ((motor_status & MS_WRITE_OP) != 0) + { + if (time_to_wait == 0) + { + /* + * Use minimum wait times according to the + * media type + */ + sas_load(FDD_STATUS+drive, &disk_state); + if ((disk_state & RS_MASK) == RS_250) + time_to_wait = HEAD_SETTLE_360; + else + time_to_wait = HEAD_SETTLE_12; + } + } + else if (time_to_wait == 0) + return; + + /* + * Convert time to wait into microseconds + */ + + time_to_wait *= 1000; + + /* at this point the real BIOS sets CX,DX to time_to_wait; + we don't actually need to wait at all, so request + a zero length wait */ + +#ifndef JOKER + + /* + * Ask OS to do wait + */ + savedAX = getAX(); + savedCX = getCX(); + savedDX = getDX(); + savedCS = getCS(); + savedIP = getIP(); + + setAH(INT15_WAIT); + setCX(0); + setDX(1); + +#ifdef NTVDM + setCS(int15_seg); + setIP(int15_off); +#else + setCS(RCPU_INT15_SEGMENT); + setIP(RCPU_INT15_OFFSET); +#endif /* NTVDM */ + + host_simulate(); + + setAX(savedAX); + setCX(savedCX); + setDX(savedDX); + setCS(savedCS); + setIP(savedIP); + + /* + * Quit if wait succeeded + */ + if (!getCF()) + return; + +#endif /* JOKER */ + + /* + * Need to do fixed wait locally + */ + waitf(time_to_wait); +} + +LOCAL void nec_output IFN1(half_word, byte_value) +{ + /* + * This routine sends a byte to the FDC after testing for + * correct direction and controller ready. If the FDC does + * not respond after a few tries, it is assumed that there + * is a bug in our FDC emulation + */ + half_word diskette_status_reg; + int count; + + /* + * Wait for ready and correct direction + */ + count = 0; + do + { + if (count++ >= FDC_TIME_OUT) + { + always_trace0("diskette_io: FDC error - input repletion"); + return; + } + inb(DISKETTE_STATUS_REG, &diskette_status_reg); + } while ((diskette_status_reg & (DSR_RQM | DSR_DIO)) != DSR_RQM); + + /* + * Output the byte + */ + outb(DISKETTE_DATA_REG, byte_value); + + /* + * Do fixed wait for FDC update cycle time + */ + waitf(FDC_SETTLE); +} + +LOCAL seek IFN2(int, drive, int, track) +{ + /* + * This routine will move the head on the named drive + * to the named track. If the drive has not been accessed + * since the drive reset command was issued, the drive + * will be recalibrated + */ + half_word seek_status, disk_track, disk_state; + FDC_CMD_BLOCK fdc_cmd_block[MAX_COMMAND_LEN]; + int status; + + note_trace2(FLOPBIOS_VERBOSE, "diskette_io:seek(drive=%d,track=%d)", + drive, track); + + /* + * Check if recalibration required before seek + */ + sas_load(SEEK_STATUS, &seek_status); + if ((seek_status & (1 << drive)) == 0) + { + /* + * Update the seek status and recalibrate + */ + sas_store(SEEK_STATUS, seek_status | (1 << drive)); + if (recal(drive) != SUCCESS) + { + sas_store(FLOPPY_STATUS, FS_OK); + if (recal(drive) == FAILURE) + return(FAILURE); + } + + /* + * Drive will now be at track 0 + */ + sas_store(FDD_TRACK+drive, 0); + if (track == 0) + { + /* + * No need to seek + */ + hd_wait(drive); + return(SUCCESS); + } + } + + /* + * Allow for double stepping + */ + sas_load(FDD_STATUS+drive, &disk_state); + if ((disk_state & FS_DOUBLE_STEP) != 0) + track *= 2; + + /* + * Update current track number + */ + sas_load(FDD_TRACK+drive, &disk_track); + if (disk_track == track) + { + /* + * No need to seek + */ + return(SUCCESS); + } + sas_store(FDD_TRACK+drive, track); + + /* + * Do the seek and check the results + */ + put_c8_cmd(fdc_cmd_block, FDC_SEEK); + put_c8_pad(fdc_cmd_block, 0); + nec_output(fdc_cmd_block[0]); + put_c8_drive(fdc_cmd_block, drive); + put_c8_head(fdc_cmd_block, 0); + put_c8_pad1(fdc_cmd_block, 0); + nec_output(fdc_cmd_block[1]); + put_c8_new_cyl(fdc_cmd_block, track); + nec_output(fdc_cmd_block[2]); + status = chk_stat_2(); + + /* + * Wait for head settle time + */ + hd_wait(drive); + return(status); +} + +LOCAL recal IFN1(int, drive) +{ + /* + * Send recalibrate drive command to the FDC and check the + * results + */ + FDC_CMD_BLOCK fdc_cmd_block[MAX_COMMAND_LEN]; + + note_trace1(FLOPBIOS_VERBOSE, "diskette_io:recal(drive=%d)", drive); + + put_c5_cmd(fdc_cmd_block, FDC_RECALIBRATE); + put_c5_pad(fdc_cmd_block, 0); + nec_output(fdc_cmd_block[0]); + put_c5_drive(fdc_cmd_block, drive); + put_c5_pad1(fdc_cmd_block, 0); + nec_output(fdc_cmd_block[1]); + return(chk_stat_2()); +} + +LOCAL chk_stat_2 IFN0() +{ + /* + * This routine handles the interrupt received after + * recalibrate, seek or reset to the adapter. The + * interrupt is waited for, the interrupt status + * sensed, and the result returned to the caller + */ + half_word diskette_status; + + /* + * Check for interrupt + */ + if (wait_int() != FAILURE) + { + /* + * Sense the interrupt and check the results + */ + nec_output(FDC_SENSE_INT_STATUS); + if (results() != FAILURE) + { + + if ((get_r3_ST0(fl_nec_status) & (ST0_SEEK_END | ST0_INTERRUPT_CODE_0)) + != (ST0_SEEK_END | ST0_INTERRUPT_CODE_0)) + { + return(SUCCESS); + } + + /* + * Abnormal termination of command + */ + sas_load(FLOPPY_STATUS, &diskette_status); + diskette_status |= FS_SEEK_ERROR; + sas_store(FLOPPY_STATUS, diskette_status); + } + } + + return(FAILURE); +} + +LOCAL wait_int IFN0() +{ + /* + * Check whether an interrupt occurred; if it did, return + * SUCCESS; if there was a time out return FAILURE + */ + half_word seek_status, diskette_status; +#ifndef JOKER + word savedAX, savedCS, savedIP; + + /* + * Enable interrupts + */ + + setIF(1); + + /* + * Notify OS that BIOS is about to "wait" for a + * diskette interrupt. Any pending diskette + * interrupt will be serviced here, so there's + * no need for a subsequent sub-cpu call to + * wait for the interrupt + * + * [[WTR - is this true, we do do 2 host_simulates...? ]] + */ + savedAX = getAX(); + savedCS = getCS(); + savedIP = getIP(); + + setAH(INT15_DEVICE_BUSY); + setAL(INT15_DEVICE_FLOPPY); + +#ifdef NTVDM + setCS(int15_seg); + setIP(int15_off); +#else + setCS(RCPU_INT15_SEGMENT); + setIP(RCPU_INT15_OFFSET); +#endif /* NTVDM */ + + host_simulate(); + + setAX(savedAX); + setCS(savedCS); + setIP(savedIP); + + /* + * Call sub-cpu to do the "wait" for interrupt, saving + * registers that would otherwise be corrupted + */ + try_again: + savedCS = getCS(); + savedIP = getIP(); + +#ifdef NTVDM + setCS(wait_int_seg); + setIP(wait_int_off); +#else + setCS(RCPU_WAIT_INT_SEGMENT); + setIP(RCPU_WAIT_INT_OFFSET); +#endif /* NTVDM */ + + host_simulate(); + + setCS(savedCS); + setIP(savedIP); + + +#else /* JOKER */ + + + /* Since we can't have a recursive CPU call, we'd be + ** well stuffed but for the fact that the default diskette + ** interrupt on SoftPC is actually a BOP which calls the "C" + ** function diskette_int() in "floppy_io.c". So most, if not + ** all, of the action takes place on the host side anyway. + ** + ** FieldFloppyInterrupts() simply checks if an interrupt + ** was generated, and does what the diskette_int() does, + ** but without the recursive CPU call. + */ + + FieldFloppyInterrupts(); + +#endif /* JOKER */ + + + /* + * Check for success, or time out + */ + sas_load(SEEK_STATUS, &seek_status); + if ((seek_status & SS_INT_OCCURRED) == 0) + { + +#ifdef FLOPPIES_KEEP_TRYING + extern IBOOL fdc_interrupt_pending; + + /* If the CPU is very slow, or interrupt emulation + * has changed for the worst, then the low-priority + * floppy interrupt may not get through in the execution + * of the instructions allotted. This code looks at a + * global variable maintained by fla.c, which says whether + * or not the ICA has an un-processed diskette interrupt + * pending. + */ + if (fdc_interrupt_pending) { + always_trace0("fdc_interrupt_pending, so try again"); + goto try_again; + } +#endif /* FLOPPIES_KEEP_TRYING */ + + sas_load(FLOPPY_STATUS, &diskette_status); + diskette_status |= FS_TIME_OUT; + sas_store(FLOPPY_STATUS, diskette_status); + return(FAILURE); + } + else + { + seek_status &= ~SS_INT_OCCURRED; + sas_store(SEEK_STATUS, seek_status); + return(SUCCESS); + } +} + +LOCAL results IFN0() +{ + /* + * This routine will read anything that the FDC controller + * returns following an interrupt + */ + half_word diskette_status_reg, diskette_status; + int count; + UTINY val; + + /* + * Wait for ready and direction + */ + count = 0; + do + { + if (count++ >= FDC_TIME_OUT) + { + /* + * Expect to return here when there is a + * time out (not an FDC error) + */ + sas_load(FLOPPY_STATUS, &diskette_status); + diskette_status |= FS_TIME_OUT; + sas_store(FLOPPY_STATUS, diskette_status); + + LOAD_RESULT_BLOCK; + return(FAILURE); + } + inb(DISKETTE_STATUS_REG, &diskette_status_reg); + } while ((diskette_status_reg & (DSR_RQM | DSR_DIO)) + != (DSR_RQM | DSR_DIO)); + + /* + * Extract the results from the FDC + */ + count = 0; + do + { + /* + * Read a byte of result data + */ + inb(DISKETTE_DATA_REG, &val); + sas_store( BIOS_FDC_STATUS_BLOCK + count, val ); + count++; + + /* + * Do fixed wait for FDC update cycle time + */ + waitf(FDC_SETTLE); + + /* + * Check for further result bytes + */ + inb(DISKETTE_STATUS_REG, &diskette_status_reg); + } while ((diskette_status_reg & FDC_BUSY) && (count < MAX_RESULT_LEN)); + + LOAD_RESULT_BLOCK; + if ((diskette_status_reg & FDC_BUSY) && (count == MAX_RESULT_LEN)) + { + /* + * Problem with the FDC + */ + sas_load(FLOPPY_STATUS, &diskette_status); + diskette_status |= FS_FDC_ERROR; + sas_store(FLOPPY_STATUS, diskette_status); + + always_trace0("diskette_io: FDC error - output overdose"); + return(FAILURE); + } + + return(SUCCESS); +} + +LOCAL read_dskchng IFN1(int, drive) +{ + /* + * Reads the state of the disk change line for "drive" + */ + half_word diskette_dir_reg; + + /* + * Switch to the required drive + */ + motor_on(drive); + + /* + * Read the diskette changed bit from the Digital Input + * register + */ + inb(DISKETTE_DIR_REG, &diskette_dir_reg); + return(((diskette_dir_reg & DIR_DISKETTE_CHANGE) != 0) ? FAILURE : SUCCESS); +} + +void drive_detect IFN1(int, drive) +{ + /* + * Determines whether drive is 80 or 40 tracks + * and updates state information accordingly + */ + half_word disk_state; + int track; + + /* + * This method of determining the number of tracks on the + * drive depends on seeking to a track that lies beyond the + * last track of a 40 track drive, but is valid on an 80 + * track drive. + * + * At this point the real track number on a 40 track drive + * will be out of step with what the FDC thinks it is. + * + * By seeking downwards to track 0, and observing when a + * sense drive status reports that the drive is really at + * track 0, a 40 and 80 track drive can be distinguished. + */ + note_trace1( GFI_VERBOSE, "drive_detect():start: DRIVE %x", drive ); + motor_on(drive); + if ( (recal(drive) == SUCCESS) + && (seek(drive, FDD_CLONK_TRACK) == SUCCESS)) + { + track = FDD_JUDDER_TRACK + 1; + do + { + if (--track < 0) + { + /* + * 40 track drive + */ + note_trace0( GFI_VERBOSE, + "drive_detect(): 40 TRACK" ); + sas_load(FDD_STATUS+drive, &disk_state); + disk_state |= (DC_DETERMINED | FS_MEDIA_DET | RS_250); + sas_store(FDD_STATUS+drive, disk_state); + return; + } + + if (seek(drive, track) != SUCCESS) + { + always_trace0( "drive_detect(): FAILURE" ); + return; + } + + nec_output(FDC_SENSE_DRIVE_STATUS); + nec_output((half_word)drive); + (void )results(); + } while (get_r2_ST3_track_0(fl_nec_status) != 1); + + /* + * Drive reports that it is at track 0; what does + * the FDC think? + */ + if (track != 0) + { + note_trace0( GFI_VERBOSE, "drive_detect(): 40 TRACK" ); + /* + * Must be a 40 track drive + */ + sas_load(FDD_STATUS+drive, &disk_state); + disk_state |= (DC_DETERMINED | FS_MEDIA_DET | RS_250); + sas_store(FDD_STATUS+drive, disk_state); + return; + } + else + { + /* + * Must be an 80 track drive + */ + note_trace0( GFI_VERBOSE, "drive_detect(): 80 TRACK" ); + sas_load(FDD_STATUS+drive, &disk_state); + disk_state |= DC_80_TRACK; + sas_store(FDD_STATUS+drive, disk_state); + return; + } + } +} + +LOCAL void waitf IFN1(long, time) +{ + UNUSED(time); + /* + * Fixed wait of "time" microseconds + */ +} + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_INIT.seg" +#endif + +void fl_diskette_setup IFN0() +{ + /* + * Identify what types of drives are installed in the system + * and initialise the diskette BIOS state variables to known + * values. Do not change declaration of rtc_wait to rtc_wait_flag + * as there is a macro (yes MACRO!!) of the same name declared in + * rtc_bios.h. + */ + half_word rtc_wait, lastrate; + int drive; + + /* + * Disable RTC wait function + */ + sas_load(RTC_WAIT_FLAG_ADDR, &rtc_wait); + rtc_wait |= 1; + sas_store(RTC_WAIT_FLAG_ADDR, rtc_wait); + + /* + * Initialise other variables in the diskette data + * area + */ + sas_storew(FDD_STATUS, 0); + sas_storew(FDD_STATUS+1, 0); /* drive b as well */ + sas_load(RATE_STATUS, &lastrate); + rate_unitialised = TRUE; + lastrate &= ~(RS_MASK | (RS_MASK >> 4)); + lastrate |= RS_MASK; + sas_store(RATE_STATUS, lastrate); + sas_store(SEEK_STATUS, 0); + sas_store(MOTOR_COUNT, 0); + sas_store(MOTOR_STATUS, 0); + sas_store(FLOPPY_STATUS, 0); + + /* + * Try to determine the type of each drive + */ + for (drive = 0; drive < MAX_FLOPPY; drive++) + { + drive_detect(drive); + + + translate_old(drive); + } + + /* + * Force an immediate recalibrate + */ + sas_store(SEEK_STATUS, 0); + + /* + * Enable RTC wait function + */ + sas_load(RTC_WAIT_FLAG_ADDR, &rtc_wait); + rtc_wait &= ~1; + sas_store(RTC_WAIT_FLAG_ADDR, rtc_wait); + + /* + * Return without setting sectors transferred + */ + setup_end(IGNORE_SECTORS_TRANSFERRED); +} diff --git a/private/mvdm/softpc.new/base/disks/floppy_i.c b/private/mvdm/softpc.new/base/disks/floppy_i.c new file mode 100644 index 000000000..2033b5c2c --- /dev/null +++ b/private/mvdm/softpc.new/base/disks/floppy_i.c @@ -0,0 +1,496 @@ +#include "insignia.h" +#include "host_def.h" +/* + * SoftPC Revision 3.0 + * + * + * Title : Primary SFD BIOS floppy diskette functions + * + * + * Description : This module defines the floppy diskette BIOS functions + * that are invoked directly from BOP instructions: + * + * diskette_io() floppy diskette access functions + * + * diskette_post() floppy diskette POST function + * + * diskette_int() floppy diskette interrupt handler + * + * + * Author : Ross Beresford + * + * + * Notes : + * + */ + + +/* + * static char SccsID[]="@(#)floppy_io.c 1.14 03/02/94 Copyright Insignia Solutions Ltd."; + */ + + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_FLOPPY.seg" +#endif + +#include +#include TypesH +#include "xt.h" +#include "bios.h" +#include "ios.h" +#include CpuH +#include "error.h" +#include "config.h" +#include "gfi.h" +#include "fla.h" +#include "sas.h" +#include "floppy.h" +#include "equip.h" +#include "trace.h" +#include "ica.h" +#include "debug.h" + +#include "tape_io.h" + +#ifdef NTVDM +extern UTINY number_of_floppy; + +#endif /* NTVDM */ + +#ifndef PROD +/* + * Internal functions (for tracing) + */ + +static void rwvf_dump(op) +int op; +{ + fprintf(trace_file, "(drive=%d,head=%d,track=%d,sec=%d,nsecs=%d", + getDL(), getDH(), getCH(), getCL(), getAL()); + if (op != FL_DISK_VERF) + fprintf(trace_file, ",addr=%x:%x", getES(), getBX()); + fprintf(trace_file, ")\n"); +} + + +static void call_dump(op) +int op; +{ + half_word diskette_status; + + switch(op) + { + case FL_DISK_RESET: + fprintf(trace_file, "diskette_io:RESET()\n"); + break; + case FL_DISK_STATUS: + fprintf(trace_file, "diskette_io:STATUS"); + sas_load(FLOPPY_STATUS, &diskette_status); + fprintf(trace_file, "(status=0x%x)\n", diskette_status); + break; + case FL_DISK_READ: + fprintf(trace_file, "diskette_io:READ"); + rwvf_dump(op); + break; + case FL_DISK_WRITE: + fprintf(trace_file, "diskette_io:WRITE"); + rwvf_dump(op); + break; + case FL_DISK_VERF: + fprintf(trace_file, "diskette_io:VERIFY"); + rwvf_dump(op); + break; + case FL_DISK_FORMAT: + fprintf(trace_file, "diskette_io:FORMAT"); + rwvf_dump(op); + break; + case FL_DISK_PARMS: + fprintf(trace_file, "diskette_io:PARAMS(drive=%d)\n", getDL()); + break; + case FL_DISK_TYPE: + fprintf(trace_file, "diskette_io:TYPE(drive=%d)\n", getDL()); + break; + case FL_DISK_CHANGE: + fprintf(trace_file, "diskette_io:CHANGE(drive=%d)\n", getDL()); + break; + case FL_FORMAT_SET: + fprintf(trace_file, + "diskette_io:SET_FORMAT(drive=%d,type=", getDL()); + switch(getAL()) + { + case MEDIA_TYPE_360_IN_360: + fprintf(trace_file, "360K media in 360K drive)\n"); + break; + case MEDIA_TYPE_360_IN_12: + fprintf(trace_file, "360K media in 1.2M drive)\n"); + break; + case MEDIA_TYPE_12_IN_12: + fprintf(trace_file, "1.2M media in 1.2M drive)\n"); + break; + case MEDIA_TYPE_720_IN_720: + fprintf(trace_file, "720K media in 720K drive)\n"); + break; + case MEDIA_TYPE_720_IN_144: + fprintf(trace_file, "720K media in 1.44M drive)\n"); + break; + case MEDIA_TYPE_144_IN_144: + fprintf(trace_file, "1.44M media in 1.44M drive)\n"); + break; + default: + fprintf(trace_file, "SILLY)\n"); + break; + } + break; + case FL_SET_MEDIA: + fprintf(trace_file, + "diskette_io:SET_MEDIA(drive=%d,tracks=%d,sectors=%d)\n", + getDL(), getCH(), getCL()); + break; + + default: + fprintf(trace_file, "diskette_io:UNRECOGNISED(op=0x%x)\n", op); + break; + } +} + + +static void gen_dump() +{ + int status = getAH(); + + fprintf(trace_file, "status="); + if (status & FS_CRC_ERROR) + fprintf(trace_file, "FS_CRC_ERROR|"); + if (status & FS_FDC_ERROR) + fprintf(trace_file, "FS_FDC_ERROR|"); + if (status & FS_SEEK_ERROR) + fprintf(trace_file, "FS_SEEK_ERROR|"); + if (status & FS_TIME_OUT) + fprintf(trace_file, "FS_TIME_OUT|"); + switch (status & 0xf) + { + case FS_OK: + fprintf(trace_file, "FS_OK"); + break; + case FS_BAD_COMMAND: + fprintf(trace_file, "FS_BAD_COMMAND"); + break; + case FS_BAD_ADDRESS_MARK: + fprintf(trace_file, "FS_BAD_ADDRESS_MARK"); + break; + case FS_WRITE_PROTECTED: + fprintf(trace_file, "FS_WRITE_PROTECTED"); + break; + case FS_SECTOR_NOT_FOUND: + fprintf(trace_file, "FS_SECTOR_NOT_FOUND"); + break; + case FS_MEDIA_CHANGE: + fprintf(trace_file, "FS_MEDIA_CHANGE"); + break; + case FS_DMA_ERROR: + fprintf(trace_file, "FS_DMA_ERROR"); + break; + case FS_DMA_BOUNDARY: + fprintf(trace_file, "FS_DMA_BOUNDARY"); + break; + case FS_MEDIA_NOT_FOUND: + fprintf(trace_file, "FS_MEDIA_NOT_FOUND"); + break; + default: + fprintf(trace_file, "SILLY"); + break; + } + fprintf(trace_file, ")\n"); +} + + +static void return_dump(op) +int op; +{ + fprintf(trace_file, "diskette_io:RETURN("); + switch(op) + { + case FL_DISK_TYPE: + switch(getAH()) + { + case DRIVE_IQ_UNKNOWN: + fprintf(trace_file, "ABSENT"); + break; + case DRIVE_IQ_NO_CHANGE_LINE: + fprintf(trace_file, "NO CHANGE LINE"); + break; + case DRIVE_IQ_CHANGE_LINE: + fprintf(trace_file, "CHANGE LINE"); + break; + case DRIVE_IQ_RESERVED: + fprintf(trace_file, "RESERVED"); + break; + default: + fprintf(trace_file, "SILLY"); + break; + } + fprintf(trace_file, ")\n"); + break; + case FL_DISK_PARMS: + fprintf(trace_file, "addr=%x:%x,tracks=%d,sectors=%d,heads=%d,drives=%d,type=", + getES(), getDI(), getCH(), getCL(), getDH(), getDL()); + switch(getBL()) + { + case GFI_DRIVE_TYPE_NULL: + fprintf(trace_file, "NULL,"); + break; + case GFI_DRIVE_TYPE_360: + fprintf(trace_file, "360K,"); + break; + case GFI_DRIVE_TYPE_12: + fprintf(trace_file, "1.2M,"); + break; + case GFI_DRIVE_TYPE_720: + fprintf(trace_file, "720K,"); + break; + case GFI_DRIVE_TYPE_144: + fprintf(trace_file, "1.44M,"); + break; + case GFI_DRIVE_TYPE_288: + fprintf(trace_file, "2.88M,"); + break; + default: + fprintf(trace_file, "SILLY,"); + break; + } + gen_dump(); + break; + case FL_SET_MEDIA: + fprintf(trace_file, "addr=%x:%x,", getES(), getDI()); + gen_dump(); + break; + case FL_DISK_READ: + case FL_DISK_WRITE: + case FL_DISK_VERF: + case FL_DISK_FORMAT: + fprintf(trace_file, "nsecs=%d,", getAL()); + gen_dump(); + break; + case FL_DISK_CHANGE: + case FL_DISK_RESET: + case FL_DISK_STATUS: + case FL_FNC_ERR: + case FL_FORMAT_SET: + gen_dump(); + break; + default: + break; + } + +} +#endif /* nPROD */ + + +void diskette_io() +{ + /* + * Check for valid call and use secondary functions to + * perform the required operation + * + * Register inputs: + * AH operation required + * DL drive number + */ + half_word diskette_status; + int op = getAH(), drive = getDL(); + +#ifndef PROD + if (io_verbose & FLOPBIOS_VERBOSE) + call_dump(op); +#endif + +#ifndef JOKER + /* + * Enable interrupts + */ + + setIF(1); +#endif /* JOKER */ + + /* + * Check operation required, using known invalid function + * if operation is out of range + */ + + if (!fl_operation_in_range(op)) + op = FL_FNC_ERR; + + /* + * If the drive number is applicable in the operation, check it + */ + + if (op != FL_DISK_RESET && op != FL_DISK_STATUS && op != FL_DISK_PARMS) +#ifdef NTVDM + if (drive >= number_of_floppy) +#else + if (drive >= MAX_FLOPPY) +#endif /* NTVDM */ + op = FL_FNC_ERR; + + + /* + * Save previous diskette status, initialise current diskette + * status to OK + */ + + sas_load(FLOPPY_STATUS, &diskette_status); + setAH(diskette_status); + sas_store(FLOPPY_STATUS, FS_OK); + + /* + * Do the operation + */ + + (*fl_fnc_tab[op])(drive); + + + +#ifndef PROD + if (io_verbose & FLOPBIOS_VERBOSE) + return_dump(op); +#endif +} + + +#ifndef JOKER /* Floppies handled v. weirdly on JOKER */ + +void diskette_int() +{ + /* + * The diskette interrupt service routine. Mark the Seek Status to say + * the interrupt has occurred and terminate the interrupt. + */ + half_word seek_status; + word savedAX, savedCS, savedIP; + + note_trace0(FLOPBIOS_VERBOSE, "diskette_int()"); + sas_load(SEEK_STATUS, &seek_status); + sas_store(SEEK_STATUS, seek_status | SS_INT_OCCURRED); + + outb(ICA0_PORT_0, END_INTERRUPT); + + /* + * Enable interrupts + */ + + setIF(1); + + /* + * Notify OS that BIOS has completed a "wait" for + * a diskette interrupt + */ + savedAX = getAX(); + savedCS = getCS(); + savedIP = getIP(); + + setAH(INT15_INTERRUPT_COMPLETE); + setAL(INT15_DEVICE_FLOPPY); +#ifdef NTVDM + setCS(int15_seg); + setIP(int15_off); +#else + setCS(RCPU_INT15_SEGMENT); + setIP(RCPU_INT15_OFFSET); +#endif /* NTVDM */ + + host_simulate(); + + setAX(savedAX); + setCS(savedCS); + setIP(savedIP); +} + +#endif /* ndef JOKER */ + + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_INIT.seg" +#endif + +void diskette_post() +{ + /* + * This routine performs the diskette BIOS initialisation + * functionality in the POST. + */ + half_word diskette_id_reg, hf_cntrl, interrupt_mask; +#ifndef NTVDM + half_word disk_state; +#endif + EQUIPMENT_WORD equip_flag; + + note_trace0(FLOPBIOS_VERBOSE, "diskette_post()"); + + /* + * Set the diskette data rate to 250 kbs (low density) + */ + + outb(DISKETTE_DCR_REG, DCR_RATE_250); + + /* + * If there are any diskettes installed, check whether + * they are accessed via a DUAL card or the old-style + * adapter card + */ + + sas_loadw(EQUIP_FLAG, &equip_flag.all); + if (equip_flag.bits.diskette_present) + { + /* + * Enable diskette interrupts + */ + + inb(ICA0_PORT_1, &interrupt_mask); + interrupt_mask &= ~(1 << CPU_DISKETTE_INT); + outb(ICA0_PORT_1, interrupt_mask); + + /* + * If a DUAL diskette/fixed disk adapter is fitted, + * set the drive indicator for drive 0 accordingly + */ + + inb(DISKETTE_ID_REG, &diskette_id_reg); + sas_load(DRIVE_CAPABILITY, &hf_cntrl); + hf_cntrl &= ~DC_DUAL; + if ((diskette_id_reg & IDR_ID_MASK) == DUAL_CARD_ID) + hf_cntrl |= DC_DUAL; + sas_store(DRIVE_CAPABILITY, hf_cntrl); + +#ifndef NTVDM /* prevent floppies showing up in bios data area */ + /* + * Setup the diskette BIOS state according to the + * types of drives installed + */ + fl_diskette_setup(); + + /* + * If a second drive was discovered, update the + * equipment flag accordingly + */ + + sas_load(FDD_STATUS+1, &disk_state); + if (disk_state != 0) + { + sas_loadw(EQUIP_FLAG, &equip_flag.all); + equip_flag.bits.max_diskette = 1; + sas_storew(EQUIP_FLAG, equip_flag.all); + } +#endif /* NTVDM */ + } +} diff --git a/private/mvdm/softpc.new/base/disks/gfi.c b/private/mvdm/softpc.new/base/disks/gfi.c new file mode 100644 index 000000000..275956a4d --- /dev/null +++ b/private/mvdm/softpc.new/base/disks/gfi.c @@ -0,0 +1,379 @@ +#include "insignia.h" +#include "host_def.h" + +/* + * SoftPC Version 2.0 + * + * Title : Generic Floppy Interface (GFI) + * + * Description : GFI is a layer that insulates the Floppy Adaptor (FLA) + * from the type of device that is attached to VPC. It + * supports the slave PC, Virtual Diskette and a real + * device attached to the host. + * + * GFI provides a suite of functions which can + * be called to action Floppy commands. GFI will + * route these to the current resident device. + * + * + * Author : Henry Nash + * + * Notes : None + * + * Mods: (r3.2) : The system directory /usr/include/sys is not available + * on a Mac running Finder and MPW. Bracket references to + * such include files by "#ifdef macintosh #else + * #endif". + */ + +#ifdef SCCSID +static char SccsID[]="@(#)gfi.c 1.16 08/03/93 Copyright Insignia Solutions Ltd."; +#endif + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_FLOPPY.seg" +#endif + + +/* + * O/S include files. + */ +#include +#include TypesH + +/* + * SoftPC include files + */ +#include "xt.h" +#include CpuH +#include "sas.h" +#include "ios.h" +#include "bios.h" +#include "error.h" +#include "config.h" +#include "trace.h" +#include "fla.h" +#include "gfi.h" +#include "gfitest.h" +#include "error.h" +#include "debug.h" + +/* + * ============================================================================ + * External definitions + * ============================================================================ + */ + +/* + * The command/result phases of the FDC are described in the following database. + * + * The structure contains + * + * - number of command bytes + * - number of result bytes + * - number of GFI result bytes + * - command class + * - result class + * - if dma is required + * - if an interrupt is generated + * + * A command byte count of 0 indicates a command that is handled by the FLA + * itself and not passed to GFI. + * + * Note that Sense Interrupt Status is not considered a generic GFI command + * but as a terminating command for the seek and recalibrate commands. + * These two commands now have "result" phases as far as gfi is concerned + * since the gfi level will ensure that a Sense Interrupt Status is performed + * to provide the result phase. + */ + +FDC_DATA_ENTRY gfi_fdc_description[] = +{ + { 0, 1, 1, 0, 4, FALSE, FALSE }, /* invalid */ + { 0, 1, 1, 0, 4, FALSE, FALSE }, /* invalid */ + { 9, 7, 7, 2, 0, TRUE, TRUE }, /* read track */ + { 3, 0, 0, 6, 0, FALSE, FALSE }, /* specify */ + { 2, 1, 1, 7, 2, FALSE, FALSE }, /* sense drive status */ + { 9, 7, 7, 1, 0, TRUE, TRUE }, /* write data */ + { 9, 7, 7, 0, 0, TRUE, TRUE }, /* read data */ + { 2, 0, 2, 5, 0, FALSE, TRUE }, /* recalibrate */ + { 0, 2, 2, 0, 3, FALSE, FALSE }, /* sense int status */ + { 9, 7, 7, 1, 0, TRUE, TRUE }, /* write deleted data */ + { 2, 7, 7, 4, 0, FALSE, TRUE }, /* read ID */ + { 0, 1, 1, 0, 4, FALSE, FALSE }, /* invalid */ + { 9, 7, 7, 0, 0, TRUE, TRUE }, /* read deleted data */ + { 6, 7, 7, 3, 0, TRUE, TRUE }, /* format track */ + { 0, 1, 1, 0, 4, FALSE, FALSE }, /* invalid */ + { 3, 0, 2, 8, 3, FALSE, TRUE }, /* seek */ + { 0, 1, 1, 0, 4, FALSE, FALSE }, /* invalid */ + { 9, 7, 7, 0, 0, TRUE, TRUE }, /* scan equal */ + { 0, 1, 1, 0, 4, FALSE, FALSE }, /* invalid */ + { 0, 1, 1, 0, 4, FALSE, FALSE }, /* invalid */ + { 0, 1, 1, 0, 4, FALSE, FALSE }, /* invalid */ + { 0, 1, 1, 0, 4, FALSE, FALSE }, /* invalid */ + { 0, 1, 1, 0, 4, FALSE, FALSE }, /* invalid */ + { 0, 1, 1, 0, 4, FALSE, FALSE }, /* invalid */ + { 0, 1, 1, 0, 4, FALSE, FALSE }, /* invalid */ + { 9, 7, 7, 0, 0, TRUE, TRUE }, /* scan equal */ + { 0, 1, 1, 0, 4, FALSE, FALSE }, /* invalid */ + { 0, 1, 1, 0, 4, FALSE, FALSE }, /* invalid */ + { 0, 1, 1, 0, 4, FALSE, FALSE }, /* invalid */ + { 9, 7, 7, 0, 0, TRUE, TRUE }, /* scan equal */ + { 0, 1, 1, 0, 4, FALSE, FALSE }, /* invalid */ + { 0, 1, 1, 0, 4, FALSE, FALSE }, /* invalid */ +}; + +/* + * The function table that is built by the init function of the + * individual GFI servers. + */ + +GFI_FUNCTION_ENTRY gfi_function_table[MAX_DISKETTES]; + + +/* + * ============================================================================ + * External functions + * ============================================================================ + */ + +GLOBAL SHORT gfi_fdc_command +IFN2(FDC_CMD_BLOCK *,command_block,FDC_RESULT_BLOCK *,result_block) +{ + /* + * The main FDC command. Route to the correct module. + */ + + int i; + int ret_stat = SUCCESS; + +#ifndef PROD + if (io_verbose & GFI_VERBOSE) + gfi_test_command(command_block, result_block); +#endif + + if (get_type_cmd(command_block) == FDC_SPECIFY) + { + /* + * A specify command relates to all drives so call each in turn. + * Not that even the empty drive allows specifies. + */ + + for (i = 0; i < MAX_DISKETTES; i++) + { + put_type_drive(command_block, i); + /* some host floppies like to know the correct drive number */ + (*gfi_function_table[i].command_fn)(command_block, result_block); + } + } + else + /* + * All other commands specify the drive in the command. + */ + + ret_stat = (*gfi_function_table[get_type_drive(command_block)].command_fn)(command_block, result_block); + + return(ret_stat); +} + + +GLOBAL SHORT gfi_drive_on IFN1(UTINY,drive) +{ +#ifndef PROD + if (io_verbose & GFI_VERBOSE) + gfi_test_drive_on(drive); +#endif + + /* + * Route to the correct module. + */ + + return((*gfi_function_table[drive].drive_on_fn)(drive)); +} + +GLOBAL SHORT gfi_drive_off IFN1(UTINY,drive) +{ +#ifndef PROD + if (io_verbose & GFI_VERBOSE) + gfi_test_drive_off(drive); +#endif + + /* + * Route to the correct module. + */ + + return((*gfi_function_table[drive].drive_off_fn)(drive)); +} + + +GLOBAL SHORT gfi_reset IFN2(FDC_RESULT_BLOCK *,result_block, UTINY, drive) +{ + /* + * Reset the specified drive. + */ + +#ifndef PROD + if (io_verbose & GFI_VERBOSE) + gfi_test_reset(result_block); +#endif + + /* + * Reset the appropriate drive. + */ + + (*gfi_function_table[drive].reset_fn)(result_block, drive); + + /* + * The result phase returns the data for a subsequent Sense Interrupt + * Status, and should contain a "termination due to state change". + */ + + put_r3_ST0(result_block, 0); + put_r1_ST0_int_code(result_block, 3); + put_r3_PCN(result_block, 0); + + return(SUCCESS); +} + +/* +** Set the specified datarate. +*/ +GLOBAL SHORT gfi_high IFN2(UTINY,drive,half_word,datarate) +{ +#ifndef PROD + if (io_verbose & GFI_VERBOSE) + gfi_test_high(drive); +#endif + + /* + * Route to the correct module. + */ + + return((*gfi_function_table[drive].high_fn)(drive,datarate)); +} + + +GLOBAL SHORT gfi_drive_type IFN1(UTINY,drive) +{ +#ifndef PROD + if (io_verbose & GFI_VERBOSE) + gfi_test_drive_type(drive); +#endif + + /* + * Route to the correct module. + */ + + return((*gfi_function_table[drive].drive_type_fn)(drive)); +} + +GLOBAL SHORT gfi_change IFN1(UTINY,drive) +{ +#ifndef PROD + if (io_verbose & GFI_VERBOSE) + gfi_test_change(drive); +#endif + + /* + * Route to the correct module. + */ + + return((*gfi_function_table[drive].change_fn)(drive)); +} + +GLOBAL SHORT +gfi_floppy_valid +IFN4(UTINY, hostID, ConfigValues *,vals, NameTable *,table, CHAR *,err) +{ + UNUSED(table); +#ifdef SLAVEPC + if (hostID == C_SLAVEPC_DEVICE) + return host_slave_port_validate(host_expand_environment_vars( + vals->string), err); +#endif /* SLAVEPC */ + + return host_gfi_rdiskette_valid(hostID, vals, err); +} + +GLOBAL VOID +gfi_floppy_change IFN2(UTINY, hostID, BOOL, apply) +{ +#ifdef SLAVEPC + if (hostID == C_SLAVEPC_DEVICE) + { + gfi_slave_change(hostID, apply); + return; + } +#endif /* SLAVEPC */ + + host_gfi_rdiskette_change(hostID, apply); +} + +GLOBAL SHORT +gfi_floppy_active IFN3(UTINY, hostID, BOOL, active, CHAR *,err) +{ +#ifdef SLAVEPC + if (hostID == C_SLAVEPC_DEVICE) + return gfi_slave_active(hostID, active, err); +#endif /* SLAVEPC */ + + return host_gfi_rdiskette_active(hostID, active, err); +} + +GLOBAL VOID +gfi_attach_adapter IFN2(UTINY, adapter, BOOL, attach) +{ +#ifdef SLAVEPC + if (host_runtime_inquire(C_FLOPPY_SERVER) == GFI_SLAVE_SERVER) + { + if (adapter == 1) + return; /* No B adapter for slave PC */ + + /* First cleaup the other possible adapters */ + if (config_get_active(C_FLOPPY_A_DEVICE)) + config_activate(C_FLOPPY_A_DEVICE, FALSE); +#ifdef FLOPPY_B + if (config_get_active(C_FLOPPY_B_DEVICE)) + config_activate(C_FLOPPY_B_DEVICE, FALSE); +#endif /* FLOPPY_B */ + + /* Activate the SLAVEPC device handler */ + config_activate(C_SLAVEPC_DEVICE, attach); + return; + } + /* Must be a GFI_REAL_DISKETTE_SERVER */ + if (config_get_active(C_SLAVEPC_DEVICE)) + config_activate(C_SLAVEPC_DEVICE, FALSE); +#endif /* SLAVEPC */ + + config_activate(C_FLOPPY_A_DEVICE + adapter, attach); +} + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * function will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_INIT.seg" +#endif + +/* + * Initialize the GFI module. Fill the function table with the GFI + * "empty" server module (which will cause a timeout when accessed). + */ + +GLOBAL VOID gfi_init IFN0() +{ + int i; + + host_runtime_set(C_FLOPPY_SERVER, GFI_REAL_DISKETTE_SERVER); + + for (i = 0; i < MAX_DISKETTES; i++) + gfi_empty_active(C_FLOPPY_A_DEVICE+i,TRUE,NULL); +} diff --git a/private/mvdm/softpc.new/base/disks/gfi_ibm.c b/private/mvdm/softpc.new/base/disks/gfi_ibm.c new file mode 100644 index 000000000..696d42e62 --- /dev/null +++ b/private/mvdm/softpc.new/base/disks/gfi_ibm.c @@ -0,0 +1,530 @@ +#include "insignia.h" +#include "host_def.h" +#ifdef SLAVEPC + +/* max size of packet with headers and trailers */ +#define MEGAPKTPLUS 1040 + +/* + * VPC-XT Revision 1.0 + * + * Title : Client Remote Procedure Call Library for FDC, FDD + * + * Description : Interface to RS232 link to slave IBM PC. Packages + * up diskette requests, calls the remote procedure + * on the PC, and returns the results. + * + * Author : Jerry Kramskoy + * + * Notes : + */ + +/* from gfi_sflop.c */ +extern int megapkt; + +#include +#include TypesH + +#include "xt.h" +#include "config.h" +#include "gfi.h" +#include "gfisflop.h" +#include "host.h" +#include "error.h" +#include "trace.h" +#include "fla.h" +#include "debug.h" + +#ifdef SEGMENTATION +/* + * The following #define specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SLAVE_FLOPPY.seg" +#endif + +/* + * ============================================================================ + * Local static data and defines + * ============================================================================ + */ +#ifdef SCCSID +static char SccsID[]="@(#)gfi_IBM.c 1.9 8/10/92 Copyright Insignia Solutions Ltd."; +#endif + +/* + * ============================================================================ + * External functions + * ============================================================================ + */ + +/* +** Set the diskete data rate. +** 2 send paramaters: Command ID and data rate. +** 1 result parameter: Command ID. +*/ +datarate( drate, status ) +unsigned char drate; +int *status; +{ + unsigned char res_pkt[MEGAPKTPLUS]; + unsigned char cmd_pkt[MEGAPKTPLUS]; + int res_len; + + *status = LINERR; + cmd_pkt[0] = DATARATE; + cmd_pkt[1] = drate; + if (!host_rpc_action(2, cmd_pkt, &res_len, res_pkt)) + if (res_len == 1 && res_pkt[0] == DATARATE) + *status = FDCSUCCESS; + return(0); +} +/* +** Get the drive type. +** 1 send paramater: Command ID. +** 2 result parameters: Command ID and disk type. +*/ +drivetype( drive, dtype, status ) +int drive; +unsigned char *dtype; +int *status; +{ + unsigned char res_pkt[MEGAPKTPLUS]; + unsigned char cmd_pkt[MEGAPKTPLUS]; + int res_len; + + *status = LINERR; + cmd_pkt[0] = DRIVETYPE; + cmd_pkt[1] = (unsigned char)drive; + if (!host_rpc_action(2, cmd_pkt, &res_len, res_pkt)) + if (res_len == 2 && res_pkt[0] == DRIVETYPE){ + *status = FDCSUCCESS; + *dtype = res_pkt[1]; + } + return(0); +} +/* +** Get the diskette change status. +** 1 send paramater: Command ID. +** 2 result parameters: Command ID and changed. +*/ +diskchange( drive, changed, status ) +int drive, *changed, *status; +{ + unsigned char res_pkt[MEGAPKTPLUS]; + unsigned char cmd_pkt[MEGAPKTPLUS]; + int res_len; + + *status = LINERR; + cmd_pkt[0] = DISKCHANGE; + cmd_pkt[1] = (unsigned char)drive; + if (!host_rpc_action(2, cmd_pkt, &res_len, res_pkt)) + if (res_len == 2 && res_pkt[0] == DISKCHANGE){ + *status = FDCSUCCESS; + *changed = (int) res_pkt[1]; + } + return(0); +} + + clrintflag(status) + int *status; + { + unsigned char res_pkt[MEGAPKTPLUS]; + unsigned char cmd_pkt[MEGAPKTPLUS]; + int res_len; + + *status = LINERR; + cmd_pkt[0] = CLRINTFLAG; + if (!host_rpc_action(1, cmd_pkt, &res_len, res_pkt)) + if (res_len == 1 && res_pkt[0] == CLRINTFLAG) + *status = FDCSUCCESS; + return(0); + } + + + + + login(status) + int *status; + { + unsigned char res_pkt[MEGAPKTPLUS]; + unsigned char cmd_pkt[MEGAPKTPLUS]; + int res_len; + + *status = LINERR; + cmd_pkt[0] = LOGIN; + if (!host_rpc_reset()) + if (!host_rpc_action(1, cmd_pkt, &res_len, res_pkt)) + if (res_len == 1 && res_pkt[0] == LOGIN) + *status = FDCSUCCESS; + return(0); + } + + + + logout(status) + int *status; + { + unsigned char res_pkt[MEGAPKTPLUS]; + unsigned char cmd_pkt[MEGAPKTPLUS]; + int res_len; + + cmd_pkt[0] = LOGOUT; + *status = LINERR; + if (!host_rpc_action(1, cmd_pkt, &res_len, res_pkt)) + if (res_len == 1 && res_pkt[0] == LOGOUT) + *status = FDCSUCCESS; + return(0); + } + + + + + + wt_dma_controller(ndma, dirn, status) + int ndma, dirn, *status; + { + unsigned char res_pkt[MEGAPKTPLUS]; + unsigned char cmd_pkt[MEGAPKTPLUS]; + int res_len, err; + unsigned char *pkt_ptr; + unsigned short lndma; + err = 1; + if (ndma >= 0 && ndma <= 0xffff) + { + err = 0; + *status = LINERR; + lndma = (unsigned short) ndma; + pkt_ptr = (unsigned char *) &lndma; + cmd_pkt[0] = WTDMA; +#ifdef BIGEND + /* Bigendian e.g. mc68000 */ + cmd_pkt[1] = *pkt_ptr; + cmd_pkt[2] = *(pkt_ptr+1); +#else + /* Little endian e.g. VAX */ + cmd_pkt[1] = *(pkt_ptr+1); + cmd_pkt[2] = *pkt_ptr; +#endif + cmd_pkt[3] = (unsigned char) dirn; + if (!host_rpc_action(4, cmd_pkt, &res_len, res_pkt)) + if (res_len == 1 && res_pkt[0] == WTDMA) + *status = FDCSUCCESS; + } + return(err); + } + + + + + + wt_digital_output_register(dorbyte, block, status) + unsigned char dorbyte; + int block, *status; + { + unsigned char res_pkt[MEGAPKTPLUS]; + unsigned char cmd_pkt[MEGAPKTPLUS]; + int res_len; + + *status = LINERR; + cmd_pkt[0] = WTDOR; + cmd_pkt[1] = dorbyte; + cmd_pkt[2] = (unsigned char) block; + if (!host_rpc_action(3, cmd_pkt, &res_len, res_pkt)) + if (res_len == 2 && res_pkt[0] == WTDOR) + *status = (int) res_pkt[1]; + return(0); + } + + + + + + test_interrupt(intstate, status) + int *intstate, *status; + { + unsigned char res_pkt[MEGAPKTPLUS]; + unsigned char cmd_pkt[MEGAPKTPLUS]; + int res_len; + + *status = LINERR; + cmd_pkt[0] = TESTINT; + if (!host_rpc_action(1, cmd_pkt, &res_len, res_pkt)) + if (res_len == 2 && res_pkt[0] == TESTINT) + { + *intstate = (int) res_pkt[1]; + *status = FDCSUCCESS; + } + return(0); + } + + + wt_floppy_disk_controller(ncom, command, block, delay, status) + unsigned char *command; + int ncom, block, *status; + { + unsigned char res_pkt[MEGAPKTPLUS]; + unsigned char cmd_pkt[MEGAPKTPLUS]; + int res_len, err; + unsigned char *pkt_ptr; + int i; + +#ifndef PROD + if( io_verbose & GFI_VERBOSE ) + { + fprintf(trace_file,"gfi_IBM: cmd "); + for( i = 0; i < ncom; i++ ) + fprintf(trace_file,"%x ",*(command + i) ); + fprintf(trace_file,"\n"); + } +#endif + err = 1; + if (ncom > 0 && ncom < 10) + { + err = 0; + *status = LINERR; + cmd_pkt[0] = WTFDC; + cmd_pkt[1] = (unsigned char) ncom; + cmd_pkt[2] = (unsigned char) block; + cmd_pkt[3] = (unsigned char) delay; + pkt_ptr = &cmd_pkt[4]; + for (i=0; i= 3 && res_pkt[0] == RDFDC) + { + *nres = res_pkt[2]; + if (*nres>=0 && *nres<8) + { + *status = res_pkt[1]; + pkt_ptr = &res_pkt[3]; + for (i=0; i< *nres; i++) + *result++ = *pkt_ptr++; + } + } +#ifndef PROD + if( io_verbose & GFI_VERBOSE ) + { + fprintf(trace_file,"gfi_IBM: res "); + for( i = 0; i < *nres; i++ ) + fprintf(trace_file,"%x ",*(result - *nres + i) ); + fprintf(trace_file,"\n"); + + } +#endif + return(0); + } + + + + + + +static unsigned char *q; /* spare ptr */ + + wt_disk_buffer(ndwt, diskdata, ioff, status) + unsigned char *diskdata; + int ndwt, ioff, *status; + { + unsigned char res_pkt[MEGAPKTPLUS]; + unsigned char cmd_pkt[MEGAPKTPLUS]; + int res_len, err; + unsigned char *pkt_ptr; + int i; + + unsigned short lioff, nndwt; + err = 1; + if (ndwt <= megapkt) + { + err = 0; + *status = LINERR; + cmd_pkt[0] = WTDISKB; + + nndwt = (unsigned short) ndwt; + q = (unsigned char *) &nndwt; + + lioff = (unsigned short) ioff; + pkt_ptr = (unsigned char *) &lioff; +#ifdef BIGEND + /* Bigendian e.g. mc68000 */ + cmd_pkt[1] = *q++; + cmd_pkt[2] = *q; + cmd_pkt[3] = *pkt_ptr++; + cmd_pkt[4] = *pkt_ptr; +#else + /* Little endian e.g. VAX */ + cmd_pkt[1] = *(q+1); + cmd_pkt[2] = *q; + cmd_pkt[3] = *(pkt_ptr+1); + cmd_pkt[4] = *pkt_ptr; +#endif + pkt_ptr = &cmd_pkt[5]; + for (i=0; i 0 && nflags <= MAXFLAGS) + { + err = 0; + *status = LINERR; + cmd_pkt[0] = IBMFLAGS; + cmd_pkt[1] = (unsigned char) nflags; + pkt_ptr = &cmd_pkt[2]; + for (i=0; i #else + * #endif". + */ + +#ifdef SCCSID +static char SccsID[]="@(#)gfi_empty.c 1.13 08/03/93 Copyright Insignia Solutions Ltd."; +#endif + +#ifdef SEGMENTATION +/* + * The following #define specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_FLOPPY.seg" +#endif + + +/* + * O/S include files. + */ +#include +#include TypesH + +/* + * SoftPC include files + */ +#include "xt.h" +#include CpuH +#include "sas.h" +#include "bios.h" +#include "ios.h" +#include "trace.h" +#include "config.h" +#include "fla.h" +#include "gfi.h" +#include "trace.h" +#include "debug.h" + + +/* Routines called via vector table. These are all local now; +** The prototype typedefs are defined in gfi.h which is now th. only +** base floppy header file needed. GM. +*/ + +LOCAL SHORT gfi_empty_drive_on + IPT1( UTINY, drive ); +LOCAL SHORT gfi_empty_drive_off + IPT1( UTINY, drive ); +LOCAL SHORT gfi_empty_change + IPT1( UTINY, drive ); +LOCAL SHORT gfi_empty_drive_type + IPT1( UTINY, drive ); +LOCAL SHORT gfi_empty_high + IPT2( UTINY, drive, half_word, n); +LOCAL SHORT gfi_empty_reset + IPT2( FDC_RESULT_BLOCK *, res, UTINY, drive ); +LOCAL SHORT gfi_empty_command + IPT2( FDC_CMD_BLOCK *, ip, FDC_RESULT_BLOCK *, res ); +LOCAL VOID gfi_empty_init + IPT1( UTINY, drive ); + + +/* + * ============================================================================ + * External functions + * ============================================================================ + */ + + +/********************************************************/ + +/* Turn the empty floppy on and off. This forms an orthogonal interface +** with the host/generic floppy module which also has a XXX_active() func. +** 'Activating' the empty floppy means de-activating the real/slave one, +** and vice versa. +** +** NB: This is for SoftPC (gfi); the actual closing/opening must still be +** done in your floppy code! Also note that deactivating the empty floppy +** means activating the host one, but this is never done like that. +** GM. +*/ + +GLOBAL SHORT +gfi_empty_active IFN3(UTINY, hostID, BOOL, active, CHAR *, err) +{ +UTINY drive = hostID - C_FLOPPY_A_DEVICE; + +UNUSED( active ); +UNUSED( err ); + + gfi_empty_init(drive); + return(C_CONFIG_OP_OK); +} + +/********************************************************/ + + +LOCAL VOID gfi_empty_init IFN1(UTINY,drive) +{ + /* + * Initialise the floppy on the required drive: + * + * 0 - Drive A + * 1 - Drive B + */ + + gfi_function_table[drive].command_fn = gfi_empty_command; + gfi_function_table[drive].drive_on_fn = gfi_empty_drive_on; + gfi_function_table[drive].drive_off_fn = gfi_empty_drive_off; + gfi_function_table[drive].reset_fn = gfi_empty_reset; + gfi_function_table[drive].high_fn = gfi_empty_high; + gfi_function_table[drive].drive_type_fn = gfi_empty_drive_type; + gfi_function_table[drive].change_fn = gfi_empty_change; +} + +/********************************************************/ + +LOCAL SHORT +gfi_empty_command + IFN2(FDC_CMD_BLOCK *, command_block, FDC_RESULT_BLOCK *,result_block) +{ + int ret_stat = FAILURE; + half_word D; + + /* Clear result status registers */ + put_r0_ST0 (result_block, 0); + put_r0_ST1 (result_block, 0); + put_r0_ST2 (result_block, 0); + + switch (get_type_cmd (command_block)) + { + case FDC_READ_DATA: +#ifndef PROD + if (io_verbose & GFI_VERBOSE) + fprintf (trace_file, "\tGFI-empty: Read Data Command \n"); +#endif + break; + + case FDC_WRITE_DATA: +#ifndef PROD + if (io_verbose & GFI_VERBOSE) + fprintf (trace_file,"\tGFI-empty: Write Data Command\n"); +#endif + break; + + case FDC_READ_TRACK: +#ifndef PROD + if (io_verbose & GFI_VERBOSE) + fprintf(trace_file,"\tGFI-empty: Read Track Command \n"); +#endif + break; + + case FDC_SPECIFY: +#ifndef PROD + if (io_verbose & GFI_VERBOSE) + fprintf(trace_file, "\tGFI-empty: Specify command\n"); +#endif + break; + + case FDC_READ_ID: +#ifndef PROD + if (io_verbose & GFI_VERBOSE) + fprintf(trace_file, "\tGFI-empty: read id command\n"); +#endif + break; + + case FDC_RECALIBRATE: +#ifndef PROD + if (io_verbose & GFI_VERBOSE) + fprintf (trace_file, "\tGFI-empty: Recalibrate command\n"); +#endif + /* Controller tries 77 pulses to get drive to head 0, + but fails, so we set Equipment Check */ + D = get_c5_drive(command_block); + put_r1_ST0_unit(result_block, D); + put_r1_ST0_equipment(result_block, 1); + put_r1_ST0_seek_end(result_block, 1); + put_r1_ST0_int_code(result_block, 1); + ret_stat = SUCCESS; + break; + + case FDC_SENSE_DRIVE_STATUS: +#ifndef PROD + if (io_verbose & GFI_VERBOSE) + fprintf (trace_file, "\tGFI-empty: Sense Drive Status command\n"); +#endif + break; + + case FDC_SEEK: +#ifndef PROD + if (io_verbose & GFI_VERBOSE) + fprintf(trace_file, "\tGFI-empty: Seek command\n"); +#endif + break; + + case FDC_FORMAT_TRACK: +#ifndef PROD + if (io_verbose & GFI_VERBOSE) + fprintf(trace_file, "\tGFI-empty: Format Track command\n"); +#endif + break; + +#ifndef PROD + default: + if (io_verbose & GFI_VERBOSE) + fprintf(trace_file, "GFI-empty: Unimplemented command, type %x\n", + get_type_cmd (command_block)); +#endif + } + + return (ret_stat); + } + + +LOCAL SHORT gfi_empty_drive_on IFN1(UTINY,drive) +{ +#ifdef PROD + UNUSED(drive); +#endif + note_trace1(GFI_VERBOSE, "GFI-Empty: Drive on command - drive %x", drive); + return(SUCCESS); +} + +LOCAL SHORT gfi_empty_drive_off IFN1(UTINY,drive) +{ +#ifdef PROD + UNUSED(drive); +#endif + note_trace1(GFI_VERBOSE, "GFI-Empty: Drive off command - drive %x", drive); + return(SUCCESS); +} + +LOCAL SHORT gfi_empty_high IFN2(UTINY,drive, half_word, rate) +{ + UNUSED(rate); +#ifdef PROD + UNUSED(drive); +#endif + + note_trace1(GFI_VERBOSE, "GFI-Empty: Set high density command - drive %x", + drive); + return(FAILURE); +} + + +LOCAL SHORT gfi_empty_drive_type IFN1(UTINY,drive) +{ +#ifdef PROD + UNUSED(drive); +#endif + note_trace1(GFI_VERBOSE, "GFI-Empty: Drive type command - drive %x", drive); + return( GFI_DRIVE_TYPE_NULL ); +} + +LOCAL SHORT gfi_empty_change IFN1(UTINY,drive) +{ +#ifdef PROD + UNUSED(drive); +#endif + note_trace1(GFI_VERBOSE, "GFI-Empty: Disk changed command - drive %x", drive); + return(TRUE); +} + + +LOCAL SHORT gfi_empty_reset IFN2(FDC_RESULT_BLOCK *,result_block,UTINY, drive) +{ + UNUSED(drive); + + note_trace0(GFI_VERBOSE, "GFI-Empty: Reset command"); + + /* + * Fake up the Sense Interrupt Status result phase. We don't know the + * Present Cylinder No, so leave as zero. + */ + + put_r3_ST0(result_block, 0); + put_r3_PCN(result_block, 0); + + return(SUCCESS); +} diff --git a/private/mvdm/softpc.new/base/disks/gfi_sflp.c b/private/mvdm/softpc.new/base/disks/gfi_sflp.c new file mode 100644 index 000000000..d90e23be6 --- /dev/null +++ b/private/mvdm/softpc.new/base/disks/gfi_sflp.c @@ -0,0 +1,774 @@ +#include "insignia.h" +#include "host_def.h" +/*[ + Name: gfi_sflop.c + Derived From: 2.0 gfi_sflop.c + Author: Jerry Kramskoy + Created On: Unknown + Sccs ID: @(#)gfi_sflop.c 1.16 08/14/92 + Purpose: + Interface between FLA and the IBM PC. The PC acts as a server + for remote procedure calls from the base product to access + the 8272A controller. + Notes: Invalid FDC commands should be trapped by FLA + + (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved. + +]*/ +#ifdef SLAVEPC + +/* bigger than max pkt so as to accom extra header chars*/ +#define MEGAPKTPLUS 1040 + +USHORT megapkt = 512; /* packet size should be in range 120 < mega < 1024 */ + +#include +#include TypesH +#include TimeH + +#include "xt.h" +#include "bios.h" +#include "timeval.h" +#include "config.h" +#include "timer.h" +#include "dma.h" +#include "gfi.h" +#include "gfisflop.h" +#include "host.h" +#include "error.h" +#include "trace.h" +#include "fla.h" +#include "debug.h" + +#ifdef SEGMENTATION +/* + * The following #define specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SLAVE_FLOPPY.seg" +#endif + +/* + * ============================================================================ + * Local static data and defines + * ============================================================================ + */ +#undef NO + +#define DMA_DISKETTE_CHANNEL 2 +#define NO 2 +#define MRD 1 +#define MWT 0 + + +/* + * FDC command definitions + * ======================= + */ + +typedef struct { + int comid; /* FDC command numbers */ + int dma; /* see below */ + int intstatus; /* see below */ + int delay; /* delay needed */ + int n_resblk; /* number of result bytes */ + int n_comblk; /* number of command bytes */ + } FDC_CMD_INFO; + +/* + * dma flag + * = NO ... no dma for this command + * = MRD ... dma read (mem -> FDC) + * = MWT ... dma write (FDC -> mem) + */ + +/* interrupt status + * = 0 ... command does not generate an interrupt. + * = 1 ... command does generate interrupt which is cleared by + * reading the FDC + * = 2 ... command generates an interrupt ... a sense interrupt command + * must be issued to get the FDC results and re-enable further + * command input to the FDC + */ + +FDC_CMD_INFO fdc_cmd_info[] = { +/* + * com_id dma intstatus n_resblk + * delay n_comblk + */ + { RDDATA, MWT, 1, 0, 7, 9 }, + { RDDELDATA, MWT, 1, 0, 7, 9 }, + { WTDATA, MRD, 1, 0, 7, 9 }, + { WTDELDATA, MRD, 1, 0, 7, 9 }, + { RDTRACK, MWT, 1, 0, 7, 9 }, + { RDID, NO, 1, 0, 7, 2 }, + { FMTTRACK, MRD, 1, 0, 7, 6 }, + { SCANEQ, MRD, 1, 0, 7, 9 }, + { SCANLE, MRD, 1, 0, 7, 9 }, + { SCANHE, MRD, 1, 0, 7, 9 }, + { RECAL, NO, 2, 0, 2, 2 }, + { SENSINT, NO, 0, 0, 2, 1 }, + { SPECIFY, NO, 0, 1, 0, 3 }, + { SENSDRIVE, NO, 0, 0, 1, 2 }, + { SEEK, NO, 2, 0, 2, 3 }, +}; + +#define MAX_FDC_CMD sizeof(fdc_cmd_info)/sizeof(fdc_cmd_info[0]) + +LOCAL UTINY sensint = 8; +LOCAL half_word channel = DMA_DISKETTE_CHANNEL; + +LOCAL SHORT gfi_slave_drive_off IPT1( UTINY, drive ); +LOCAL SHORT gfi_slave_drive_on IPT1( UTINY, drive ); +LOCAL SHORT gfi_slave_change_line IPT1( UTINY, drive ); +LOCAL SHORT gfi_slave_drive_type IPT1( UTINY, drive ); +LOCAL SHORT gfi_slave_high IPT2( UTINY, drive, half_word, n); +LOCAL SHORT gfi_slave_reset IPT2( FDC_RESULT_BLOCK *, res, UTINY, drive ); +LOCAL SHORT gfi_slave_command IPT2( FDC_CMD_BLOCK *, ip, FDC_RESULT_BLOCK *, res); +LOCAL wt_diskdata IPT2(unsigned int,n,int *,status); +LOCAL void cominfo IPT2(FDC_CMD_BLOCK *,cmd_block,FDC_CMD_INFO *,cmd_info); + +LOCAL BOOL slave_opened; +LOCAL UTINY slave_type[MAX_DISKETTES]; +LOCAL SHORT old_a_type, old_b_type; + +/* + * ============================================================================ + * External functions + * ============================================================================ + */ +GLOBAL void gfi_slave_change IFN2(UTINY, hostID, BOOL, apply) +{ + int status; + + UNUSED(hostID); + + if (apply && slave_opened) + { + logout(&status); + host_runtime_set(C_FLOPPY_SERVER, GFI_REAL_DISKETTE_SERVER); + host_rpc_close(); + slave_opened = FALSE; + } +} + + +GLOBAL SHORT gfi_slave_active IFN3(UTINY, hostID, BOOL, active, CHAR *, err) +{ + GFI_FUNCTION_ENTRY *tabP; + int status; + SHORT result; + UTINY i; + BOOL slaveServer; + + UNUSED(hostID); + UNUSED(err); + + slaveServer = (host_runtime_inquire(C_FLOPPY_SERVER)==GFI_SLAVE_SERVER); + if (active) + { + CHAR *slaveName = host_expand_environment_vars((CHAR *) + config_inquire(C_SLAVEPC_DEVICE, NULL)); + + if (!*slaveName) + { + if (slaveServer) + { + gfi_empty_active(hostID,TRUE,err); + } + config_set_active(C_SLAVEPC_DEVICE, FALSE); + return C_CONFIG_OP_OK; + } + + /* + * When SoftPC has already started talking to SlavePC just + * return that the open operation is ok, no need to attempt + * to re-open the link. Maintain the flag telling us + * whether SlavePC is attached. + */ + if (!slave_opened) + { + if ( result = host_rpc_open(slaveName) ) + return result; /* failed to open */ + else + { + if (!host_rpc_reset()) + { + login(&status); + if (status != SUCCESS) + { + host_rpc_close(); + return EG_SLAVEPC_NO_LOGIN; + } + } + else + { + host_rpc_close(); + return EG_SLAVEPC_NO_RESET; + } + } + } + + slave_opened = TRUE; + + if (!slaveServer) + return C_CONFIG_OP_OK; + + for ( i = 0; i < MAX_DISKETTES; i ++) + { + if (gfi_slave_drive_type(i) == GFI_DRIVE_TYPE_NULL) + continue; + + tabP = &gfi_function_table[i]; + tabP->command_fn = gfi_slave_command; + tabP->drive_on_fn = gfi_slave_drive_on; + tabP->drive_off_fn = gfi_slave_drive_off; + tabP->reset_fn = gfi_slave_reset; + tabP->high_fn = gfi_slave_high; + tabP->drive_type_fn = gfi_slave_drive_type; + tabP->change_fn = gfi_slave_change_line; + } + } + else /* detach the floppy */ + { + gfi_slave_drive_type(0); + gfi_slave_drive_type(1); + + if (slave_opened) + { + logout(&status); + + status = host_rpc_close(); + slave_opened = FALSE; + } + + assert0(!status, "gfi_sfloppy: host_rpc_close() failed\n"); + + if (!slaveServer) + return C_CONFIG_OP_OK; + + for ( i = 0; i < MAX_DISKETTES; i ++) + gfi_empty_active(C_FLOPPY_A_DEVICE+i,TRUE,err); + + gfi_function_table[0].drive_type_fn = gfi_slave_drive_type; + + if (slave_type[1] != GFI_DRIVE_TYPE_NULL) + gfi_function_table[1].drive_type_fn = + gfi_slave_drive_type; + } + + return C_CONFIG_OP_OK; +} + +/****************************** on ***************************** + * purpose + * provide interface to slave PC for turning on drive motor + *************************************************************** + */ +LOCAL SHORT +gfi_slave_drive_on IFN1(UTINY, drive) +{ + int status; + static unsigned char DRIVE_A_ON = 0x1c; + static unsigned char DRIVE_B_ON = 0x2d; + + note_trace1( GFI_VERBOSE, "GFI-slavefloppy: DRIVE %x ON", drive ); +#ifndef PROD +#endif + timer_int_enabled = 0; + if( drive==0 ) + wt_digital_output_register(DRIVE_A_ON, 0, &status); + else if( drive==1 ) + wt_digital_output_register(DRIVE_B_ON, 0, &status); + else + always_trace0( "gfi_slave_drive_on(): ERROR: bad drive parameter" ); + timer_int_enabled = 1; + return(SUCCESS); +} + + + + + +/****************************** off ***************************** + * purpose + * provide interface to slave PC for turning off drive motor + **************************************************************** + */ +LOCAL SHORT +gfi_slave_drive_off IFN1(UTINY, drive) +{ + int status; + static unsigned char DRIVE_A_OFF = 0xc; + static unsigned char DRIVE_B_OFF = 0xd; + + note_trace1( GFI_VERBOSE, "GFI-slavefloppy: DRIVE %x OFF", drive ); +#ifndef PROD +#endif + timer_int_enabled = 0; + if( drive==0 ) + wt_digital_output_register(DRIVE_A_OFF, 0, &status); + else if( drive==1 ) + wt_digital_output_register(DRIVE_B_OFF, 0, &status); + else + always_trace0( "gfi_slave_drive_off(): ERROR: bad drive parameter" ); + timer_int_enabled = 1; + return(SUCCESS); +} + +/***************************** high **************************** + * purpose + * provide interface to slave PC for selecting specified data rate + *************************************************************** + */ +LOCAL SHORT +gfi_slave_high IFN2(UTINY, drive, half_word, rate) +{ +int status; + + UNUSED(drive); + + switch( rate ){ + case 0: datarate( DCR_RATE_500, &status ); break; + case 1: datarate( DCR_RATE_300, &status ); break; + case 2: datarate( DCR_RATE_250, &status ); break; + default: + always_trace0("ERROR:gfi_slave_high(): bad rate value"); + break; + } + if( status != SUCCESS ) + always_trace0( "ERROR: gfi_slave_high()" ); + return(status); +} + + +/************************** drive type ************************* + * purpose + * provide interface to slave PC for returning drive type + *************************************************************** + */ +LOCAL SHORT +gfi_slave_drive_type IFN1(UTINY, drive) +{ + int status; + unsigned char dtype; + + /* + * Return the last drive type if the slave device is + * not currently opened. + */ + if (!slave_opened) + return (slave_type[drive]); + + note_trace1( GFI_VERBOSE, "gfi_slave_drive_type(): drive %x", drive ); + drivetype( drive, &dtype, &status ); + note_trace2( GFI_VERBOSE, "dtype=%x status=%x", dtype, status ); +#ifndef PROD + switch( dtype ) + { + case GFI_DRIVE_TYPE_NULL: + note_trace0( GFI_VERBOSE, "Bad drive" ); + break; + case GFI_DRIVE_TYPE_360: + note_trace0( GFI_VERBOSE, "360k" ); + break; + case GFI_DRIVE_TYPE_12: + note_trace0( GFI_VERBOSE, "1.2M" ); + break; + case GFI_DRIVE_TYPE_720: + note_trace0( GFI_VERBOSE, "720k" ); + break; + case GFI_DRIVE_TYPE_144: + note_trace0( GFI_VERBOSE, "1.44M" ); + break; + default: always_trace0( "Unrecognised drive value" ); + break; + } +#endif /* !PROD */ + + if ( status != SUCCESS ) + always_trace0( "ERROR: gfi_slave_drive_type()" ); + + slave_type[drive] = dtype; + return dtype; + /* return(GFI_DRIVE_TYPE_360); */ +} + +/************************* diskette change ********************* + * purpose + * provide interface to slave PC for diskette change notification + *************************************************************** + */ +LOCAL SHORT +gfi_slave_change_line IFN1(UTINY, drive) +{ + int status, changed; + + diskchange( drive, &changed, &status ); + note_trace2( GFI_VERBOSE, "drive %x %s", + drive, changed ? "CHANGED" : "NOT CHANGED" ); + if( changed!=1 && changed!=0 ) + always_trace1( "ERROR: gfi_slave_change_line(): bad value:%x", changed ); + if( status != SUCCESS ) + always_trace0( "ERROR: gfi_slave_change_line()" ); + return( changed ); +} + + + +/****************************** reset ***************************** + * purpose + * provide interface to slave PC for resetting the FDC + ****************************************************************** + */ +LOCAL SHORT +gfi_slave_reset IFN2(FDC_RESULT_BLOCK *, r, UTINY, drive) +{ + int status, i; + static unsigned char DRIVE_RESET = 0x08; + static unsigned char DRIVE_A_OFF = 0x0c; + static unsigned char DRIVE_B_OFF = 0x0d; + static unsigned char RECALIBRATE[] = {7, 0}; + unsigned char res[10]; + unsigned char drive_off; + int nres; + + note_trace1( GFI_VERBOSE, "GFI-slavefloppy: Reset command drive %x", drive ); +#ifndef PROD +#endif + if( drive==0 ) + drive_off = DRIVE_A_OFF; + else if( drive==1 ) + drive_off = DRIVE_B_OFF; + else + always_trace0( "gfi_slave_reset(): ERROR: bad drive parameter"); + + clrintflag(&status); + if (status != FDCSUCCESS) + return(status); + wt_digital_output_register(DRIVE_RESET, 0, &status); + if (status == FDCSUCCESS) + { + timer_int_enabled = 0; + wt_digital_output_register(drive_off, 1, &status); + timer_int_enabled = 1; + if (status == FDCSUCCESS) + { + wt_floppy_disk_controller(1,&sensint,0, 0, &status); + if (status == FDCSUCCESS) + { + rd_floppy_disk_controller(&nres, res, &status); + if (status == FDCSUCCESS) + { + for (i=0; i 0) + { + nbytes = (ln > megapkt)? megapkt: ln; + dma_request(channel, diskdata, nbytes); + if (wt_disk_buffer(nbytes, diskdata, ioff, status)) + return(1); + else + if (*status != FDCSUCCESS) + break; + ln -= nbytes; + ioff += nbytes; + } + return(0); +} + + + + + +/******************************* rd_diskdata ********************************* + */ +rd_diskdata(n, status) +unsigned int n; +int *status; + +{ + char diskdata[1024]; + word nbytes, ln; + int ioff; + int errors=0; + + ln = (word) n; + ioff = 0; + note_trace1( GFI_VERBOSE, "Reading 0x%x bytes...", n ); + while (ln > 0) + { + nbytes = (ln > megapkt)? megapkt: ln; + if (rd_disk_buffer(nbytes, diskdata, ioff, status)){ + return(1); + } + dma_request(channel, diskdata, nbytes); + if (*status != FDCSUCCESS){ + ++errors; + break; + } + ln -= nbytes; + ioff += nbytes; + } +#ifndef PROD + if( errors>0 ){ + note_trace3( GFI_VERBOSE, + "Read 0x%x bytes of 0x%x with errors=%d",ioff , n, errors ); + }else + note_trace1( GFI_VERBOSE, "Read 0x%x bytes OK", ioff ); +#endif + return(0); +} + + +/****************************** cominfo ************************************* + */ + +LOCAL void cominfo IFN2(FDC_CMD_BLOCK *,cmd_block,FDC_CMD_INFO *,cmd_info) +{ + int i; + + for (i = 0; i < MAX_FDC_CMD; i++) + if (fdc_cmd_info[i].comid == get_c0_cmd(cmd_block)) + break; + + if (i >= MAX_FDC_CMD) + cmd_info->comid = -1; + else if (fdc_cmd_info[i].comid == SENSINT) + cmd_info->comid = -2; + else + *cmd_info = fdc_cmd_info[i]; +} +#endif /* SLAVEPC */ diff --git a/private/mvdm/softpc.new/base/disks/gfi_test.c b/private/mvdm/softpc.new/base/disks/gfi_test.c new file mode 100644 index 000000000..71cfec0c4 --- /dev/null +++ b/private/mvdm/softpc.new/base/disks/gfi_test.c @@ -0,0 +1,276 @@ +#include "insignia.h" +#include "host_def.h" +#ifndef PROD +/* + * VPC-XT Revision 1.0 + * + * Title : Generic Floppy Interface Test Module + * + * Description : This module acts as a pseudo GFI diskette server, simply + * tracing out the calls made and returning success. + * + * Author : Henry Nash + * + * Notes : None + * + * Mods: (r3.2) : The system directory /usr/include/sys is not available + * on a Mac running Finder and MPW. Bracket references to + * such include files by "#ifdef macintosh #else + * #endif". + */ + +#ifdef SCCSID +static char SccsID[]="@(#)gfi_test.c 1.9 08/03/93 Copyright Insignia Solutions Ltd."; +#endif + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_TEST_FLOPPY.seg" +#endif + + +/* + * O/S include files. + */ +#endif /* not PROD */ +#include +#include TypesH +#ifndef PROD + +/* + * SoftPC include files + */ +#include "xt.h" +#include CpuH +#include "sas.h" +#include "bios.h" +#include "config.h" +#include "ios.h" +#include "trace.h" +#include "fla.h" +#include "gfi.h" +#include "gfitest.h" + + +/* + * ============================================================================ + * Local static data and defines + * ============================================================================ + */ + +static void print_cmd(); + +/* + * ============================================================================ + * External functions + * ============================================================================ + */ + + +int gfi_test_command(command_block, result_block) +FDC_CMD_BLOCK *command_block; +FDC_RESULT_BLOCK *result_block; +{ + + UNUSED(result_block); + + fprintf(trace_file, "GFI: Command received - "); + switch(get_c0_cmd(command_block)) + { + case FDC_READ_TRACK : fprintf(trace_file, "Read a track\n"); + print_cmd(command_block); + break; + + case FDC_SPECIFY : fprintf(trace_file, "Specify\n"); + print_cmd(command_block); + break; + + case FDC_SENSE_DRIVE_STATUS : fprintf(trace_file, "Sense Drive Status\n"); + print_cmd(command_block); + break; + + case FDC_WRITE_DATA : fprintf(trace_file, "Write Data\n"); + print_cmd(command_block); + break; + + case FDC_READ_DATA : fprintf(trace_file, "Read Data\n"); + print_cmd(command_block); + break; + + case FDC_RECALIBRATE : fprintf(trace_file, "Recalibrate\n"); + print_cmd(command_block); + break; + + case FDC_SENSE_INT_STATUS : fprintf(trace_file, " Sense Interrupt Status\n"); + break; + + case FDC_WRITE_DELETED_DATA : fprintf(trace_file, "Write Deleted Data\n"); + print_cmd(command_block); + break; + + case FDC_READ_ID : fprintf(trace_file, "Read ID\n"); + print_cmd(command_block); + break; + + case FDC_READ_DELETED_DATA : fprintf(trace_file, "Read Deleted Data\n"); + print_cmd(command_block); + break; + + case FDC_FORMAT_TRACK : fprintf(trace_file, "Format a track\n"); + print_cmd(command_block); + break; + + case FDC_SEEK : fprintf(trace_file, "Seek\n"); + print_cmd(command_block); + break; + + case FDC_SCAN_EQUAL : fprintf(trace_file, "Scan Equal\n"); + print_cmd(command_block); + break; + + case FDC_SCAN_LOW_OR_EQUAL : fprintf(trace_file, "Scan Low or Equal\n"); + print_cmd(command_block); + break; + + case FDC_SCAN_HIGH_OR_EQUAL : fprintf(trace_file, "Scan High or Equal\n"); + print_cmd(command_block); + break; + + default : fprintf(trace_file, "Unknown command %x\n", get_c0_cmd(command_block)); + break; + } + + return(SUCCESS); +} + + +int gfi_test_drive_on(drive) +int drive; +{ + fprintf(trace_file, "GFI: Drive on command - drive %x\n", drive); + + return(SUCCESS); +} + +int gfi_test_drive_off(drive) +int drive; +{ + fprintf(trace_file, "GFI: Drive off command - drive %x\n", drive); + + return(SUCCESS); +} + +int gfi_test_high(drive) +int drive; +{ + fprintf(trace_file, "GFI: Set high density command - drive %x\n", drive); + + return(SUCCESS); +} + +int gfi_test_drive_type(drive) +int drive; +{ + fprintf(trace_file, "GFI: Drive type command - drive %x\n", drive); + + return(GFI_DRIVE_TYPE_360); +} + +int gfi_test_change(drive) +int drive; +{ + fprintf(trace_file, "GFI: Disk changed command - drive %x\n", drive); + + return(TRUE); +} + +int gfi_test_reset(result_block) +FDC_RESULT_BLOCK *result_block; +{ + UNUSED(result_block); + + fprintf(trace_file, "GFI: Reset command\n"); + + return(SUCCESS); +} + + +/* + * ============================================================================ + * Internal functions + * ============================================================================ + */ + +static void print_cmd(cmd_block) +FDC_CMD_BLOCK *cmd_block; +{ + switch(gfi_fdc_description[get_type_cmd(cmd_block)].cmd_class) + { + case 0 : fprintf(trace_file, "MT: %x MFM: %x Skip: %x Head: %x Drive: %x\n", + get_c0_MT(cmd_block), get_c0_MFM(cmd_block), + get_c0_skip(cmd_block), + get_c0_head(cmd_block), get_c0_drive(cmd_block)); + fprintf(trace_file, "Cyl: %x Hd: %x Sec: %x N: %x EOT: %x GPL: %x DTL: %x\n", + get_c0_cyl(cmd_block), get_c0_hd(cmd_block), + get_c0_sector(cmd_block), get_c0_N(cmd_block), + get_c0_EOT(cmd_block), get_c0_GPL(cmd_block), + get_c0_DTL(cmd_block)); + break; + + case 1 : fprintf(trace_file, "MT: %x MFM: %x Head: %x Drive: %x\n", + get_c1_MT(cmd_block), get_c1_MFM(cmd_block), + get_c1_head(cmd_block), get_c1_drive(cmd_block)); + fprintf(trace_file, "Cyl: %x Hd: %x Sec: %x N: %x EOT: %x GPL: %x DTL: %x\n", + get_c1_cyl(cmd_block), get_c1_hd(cmd_block), + get_c1_sector(cmd_block), get_c1_N(cmd_block), + get_c1_EOT(cmd_block), get_c1_GPL(cmd_block), + get_c1_DTL(cmd_block)); + break; + + case 2 : fprintf(trace_file, "MFM: %x Head: %x Drive: %x\n", + get_c2_MFM(cmd_block), get_c2_head(cmd_block), + get_c2_drive(cmd_block)); + fprintf(trace_file, "Cyl: %x Hd: %x Sec: %x N: %x EOT: %x GPL: %x DTL: %x\n", + get_c2_cyl(cmd_block), get_c2_hd(cmd_block), + get_c2_sector(cmd_block), get_c2_N(cmd_block), + get_c2_EOT(cmd_block), get_c2_GPL(cmd_block), + get_c2_DTL(cmd_block)); + break; + + case 3 : fprintf(trace_file, "MFM: %x Head: %x Drive: %x\n", + get_c3_MFM(cmd_block), get_c3_head(cmd_block), + get_c3_drive(cmd_block)); + fprintf(trace_file, "N: %x SC: %x GPL: %x Fill: %x\n", + get_c3_N(cmd_block), get_c3_SC(cmd_block), + get_c3_GPL(cmd_block), get_c3_filler(cmd_block)); + break; + + case 4 : fprintf(trace_file, "MFM: %x Head: %x Drive: %x\n", + get_c4_MFM(cmd_block), get_c4_head(cmd_block), + get_c4_drive(cmd_block)); + break; + + case 5 : fprintf(trace_file, "Drive: %x\n", get_c5_drive(cmd_block)); + break; + + case 6 : fprintf(trace_file, "SRT: %x HUT: %x HLT: %x ND: %x\n", + get_c6_SRT(cmd_block), get_c6_HUT(cmd_block), + get_c6_HLT(cmd_block), get_c6_ND(cmd_block)); + break; + + case 7 : fprintf(trace_file, "Head: %x Drive: %x\n", + get_c7_head(cmd_block), get_c7_drive(cmd_block)); + break; + + case 8 : fprintf(trace_file, "Head: %x Drive: %x New cyl: %x\n", + get_c8_head(cmd_block), get_c8_drive(cmd_block), + get_c8_new_cyl(cmd_block)); + break; + + } +} +#endif /* nPROD */ diff --git a/private/mvdm/softpc.new/base/disks/makefile b/private/mvdm/softpc.new/base/disks/makefile new file mode 100644 index 000000000..6ee4f43fa --- /dev/null +++ b/private/mvdm/softpc.new/base/disks/makefile @@ -0,0 +1,6 @@ +# +# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source +# file to this component. This file merely indirects to the real make file +# that is shared by all the components of NT OS/2 +# +!INCLUDE $(NTMAKEENV)\makefile.def diff --git a/private/mvdm/softpc.new/base/disks/sources b/private/mvdm/softpc.new/base/disks/sources new file mode 100644 index 000000000..90e547049 --- /dev/null +++ b/private/mvdm/softpc.new/base/disks/sources @@ -0,0 +1,67 @@ +!IF 0 + +Copyright (c) 1989 Microsoft Corporation + +Module Name: + + sources. + +Abstract: + + This file specifies the target component being built and the list of + sources files needed to build that component. Also specifies optional + compiler switches and libraries that are unique for the component being + built. + + +Author: + + Steve Wood (stevewo) 12-Apr-1990 + +NOTE: Commented description of this file is in \nt\bak\bin\sources.tpl + +!ENDIF + + +MAJORCOMP=spcbase +MINORCOMP=disks + +TARGETNAME=disks + +TARGETPATH=obj + + +NTPROFILEINPUT=yes + +# Pick one of the following and delete the others +TARGETTYPE=LIBRARY + + +TARGETLIBS= + +SOFTPC_TREE=$(BASEDIR)\private\mvdm\softpc.new + +INCLUDES=$(SOFTPC_TREE)\host\inc;$(SOFTPC_TREE)\base\inc;$(BASEDIR)\private\inc + +!IF $(ALPHA) +GPSIZE=0 +!ELSE +GPSIZE=0 +!ENDIF + + + +SOURCES=floppy.c \ + floppy_i.c \ + diskbios.c \ + fdisk.c \ + fla.c \ + gfi.c \ + gfi_ibm.c \ + gfi_mpty.c \ + gfi_sflp.c \ + gfi_test.c + +!INCLUDE $(SOFTPC_TREE)\obj.vdm\CDEFINE.INC + +UMTYPE=console diff --git a/private/mvdm/softpc.new/base/dos/emm_mngr.c b/private/mvdm/softpc.new/base/dos/emm_mngr.c new file mode 100644 index 000000000..847a1f4a5 --- /dev/null +++ b/private/mvdm/softpc.new/base/dos/emm_mngr.c @@ -0,0 +1,2129 @@ +#include "insignia.h" +#include "host_def.h" +/* INSIGNIA MODULE SPECIFICATION + ----------------------------- +SccsID : @(#)emm_mngr.c 1.24 08/31/93 Copyright Insignia Solutions Ltd. +FILE NAME : emm_mngr.c +MODULE NAME : 'Middle layer' of Expanded Memory Manager + + THIS PROGRAM SOURCE FILE IS SUPPLIED IN CONFIDENCE TO THE + CUSTOMER, THE CONTENTS OR DETAILS OF ITS OPERATION MUST + NOT BE DISCLOSED TO ANY OTHER PARTIES WITHOUT THE EXPRESS + AUTHORISATION FROM THE DIRECTORS OF INSIGNIA SOLUTIONS INC. + +DESIGNER : J.P.Box +DATE : April '88 + +PURPOSE : Contains all the routines that communicate with + the arrays and data structures that hold the + necessary Expanded Memory Manager Data. + + +The Following Routines are defined: + 1. init_expanded_memory() + 2. free_expanded_memory() + 3. get_new_handle() + 4. free_handle() + 5. reallocate_handle() + 6. handle_ok() + 7. set_no_pages() + 8. set_EM_pageno() + 9. set_map() + 10. set_name() + 11. get_no_pages() + 12. get_EM_pageno() + 13. get_map() + 14. get_name() + 15. alloc_page() + 16. free_page() + 17. map_page() + 18. unmap_page() + 19. map_saved() + 20. save_map() + 21. restore_map() + 22. copy_exchange_data() + 23. page_status() + The following routines just return variables to the top layer + 24. get_total_pages() + 25. get_unallocated_pages() + 26. get_base_address() + 27. get_total_handles() + 28. get_total_open_handles() + 29. get_no_phys_pages() + 30. get_page_seg() + 31. get_map_size() + +========================================================================= + +AMMENDMENTS : + +========================================================================= +*/ + + +#ifdef LIM + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_LIM.seg" +#endif + + + +#include +#include + +#if defined(NTVDM) && defined(MONITOR) +#include +#endif + +#include TypesH + +#include "xt.h" +#include CpuH +#include "sas.h" +#include "host_emm.h" +#include "emm.h" +#include "gmi.h" +#include "debug.h" +#ifndef PROD +#include "trace.h" +#endif +#include "timer.h" + +#ifdef NTVDM +#include "error.h" +#endif /* NTVDM */ + +typedef enum +{ + BYTE_OP, + WORD_OP, + STR_OP +} MM_LIM_op_type; + +#ifdef NTVDM +/* Local Variables */ +static long + handle[MAX_NO_HANDLES], /* Array containing unique ID's */ + /* for each handle, these are */ + /* usually pointers, but this */ + /* is host dependant */ + backfill; /* backfill memory size */ +static unsigned short + total_pages = 0, /* no. of EM pages available */ + unallocated_pages = 0, /* no. of unallocated EM pages */ + total_handles, /* no of handles available */ + total_open_handles, /* no. of allocated handles */ + *EM_page_mapped_array = NULL, /* EMM page mapped array */ + *EM_page_mapped = NULL, /* Expanded Memory pages */ + /* currently mapped in */ + page_offset, /* offset in handle data at */ + /* which page numbers start */ + map_size, /* no of bytes rq'd to store map*/ + no_phys_pages = 0, /* no. of phys. pages available */ + no_altreg_sets = 0; /* no of alternative reg sets */ +static unsigned short + physical_page[MAX_NO_PAGES]; /* array containing segment */ + /* addresses of physical pages */ + +static unsigned short + EM_start, EM_end; +static IU8 + * altreg_alloc_mask; /* altref allocate mask */ +static unsigned short + next_free_altreg_set, /* next free altreg set #, 0 based */ + free_altreg_sets, /* number of free altreg */ + active_altreg_set = 0; /* current active alt reg set */ +static char + name[NAME_LENGTH]; /* for storing handle name */ + +#define GET_EM_PAGE_MAPPED_PTR(set) (EM_page_mapped_array + \ + (set * no_phys_pages)) + +/* get emm parameters, initialize housekeeping structures and + * reserve page frames. + */ + +boolean lim_page_frame_init(PLIM_CONFIG_DATA lim_config_data) +{ + int i; + unsigned short altreg_alloc_mask_size; /* altreg allocation mask array size */ + + no_phys_pages = get_lim_page_frames(physical_page, lim_config_data); + + /* The first 4 pages must be continuous and locate above 640KB + * (the EMM primary page frame(physical pages 0, 1, 2 and 3)). + * It is then followed by other pages located above 640KB and then + * pages below 640KB(back fill) + */ + if (!no_phys_pages) + return FALSE; + + no_altreg_sets = lim_config_data->total_altreg_sets; + backfill = lim_config_data->backfill; + + + /* each mapping register set has no_phys_pages pages */ + EM_page_mapped_array = host_malloc(no_phys_pages * no_altreg_sets * + sizeof(short)); + if (EM_page_mapped_array == NULL) { + host_error(EG_MALLOC_FAILURE, ERR_CONT, ""); + return FALSE; + } + /* one bit for each altreg set */ + altreg_alloc_mask_size = (no_altreg_sets + 7) / 8; + altreg_alloc_mask = host_malloc(altreg_alloc_mask_size); + if (altreg_alloc_mask == NULL) { + host_free(EM_page_mapped_array); + host_error(EG_MALLOC_FAILURE, ERR_CONT, ""); + return FALSE; + } + + /* all altreg sets are free at this moment */ + for (i = 0; i < altreg_alloc_mask_size; i++) + altreg_alloc_mask[i] = 0; + + next_free_altreg_set = 0; + free_altreg_sets = no_altreg_sets; + return TRUE; +} +#else + + +/* Local Variables */ +static long +#ifdef macintosh + *handle; +#else + handle[MAX_NO_HANDLES]; /* Array containing unique ID's */ + /* for each handle, these are */ + /* usually pointers, but this */ + /* is host dependant */ +#endif /* !macintosh */ + +static short + total_pages = 0, /* no. of EM pages available */ + unallocated_pages = 0, /* no. of unallocated EM pages */ + total_handles, /* no of handles available */ + total_open_handles, /* no. of allocated handles */ + EM_page_mapped[MAX_NO_PAGES], /* Expanded Memory pages */ + /* currently mapped in */ + page_offset, /* offset in handle data at */ + /* which page numbers start */ + map_size, /* no of bytes rq'd to store map*/ + no_phys_pages; /* no. of phys. pages available */ + +static unsigned int + EM_start, /* start segment for EM mapping */ + EM_end; /* 1st segment past end of EM */ + +static unsigned short + physical_page[MAX_NO_PAGES]; /* array containing segment */ + /* addresses of physical pages */ + +static char + name[NAME_LENGTH]; /* for storing handle name */ + +#endif + +/* +=========================================================================== + +FUNCTION : init_expanded_memory + +PURPOSE : This routine calls the routine to allocate the expanded + memory pages and then sets up the arrays and variables that + are used by the Expanded Memory Manager(EMM). + +RETURNED STATUS : SUCCESS - manager initialised succesfully + FAILURE - Failure to allocate space for Expanded Memory + pages. + +DESCRIPTION : + +========================================================================= +*/ +GLOBAL int init_expanded_memory IFN2(int, size, /* size of area in megabytes */ + int, mem_limit /* limit of conventional memory + * 256, 512 or 640KB */ ) + +{ + short + pages_above_640, /* no of mappable locations */ + pages_below_640, /* available either side of 640*/ + EM_page_no, /* page no. within exp. memory */ + physical_page_no; /* page no. within map region */ + unsigned short + base; /* start segment of mappable */ + /* memory below 640 KB */ + + int i, j; /* loop counters */ + + + if (!no_phys_pages) + return FAILURE; + + /* get space for expanded memory pages */ + + if(host_initialise_EM(size) != SUCCESS) + { +#ifdef NTVDM + host_error(EG_EXPANDED_MEM_FAILURE, ERR_QU_CO, NULL); +#endif /* NTVDM */ + return(FAILURE); + } + +#ifdef macintosh + if (!handle) + { + handle = (long *)host_malloc(MAX_NO_HANDLES*sizeof(long)); + } +#endif /* macintosh */ + + /* Initialise EMM variables */ + +#ifndef NTVDM + EM_start = 0xd000; + EM_end = 0xe000; +#else + EM_start = physical_page[0]; + EM_end = physical_page[0] + EMM_PAGE_SIZE * 4; +#endif + total_pages = unallocated_pages = size * 0x100000 / EMM_PAGE_SIZE; + + /* always allow max handles (Used to be 32 handles/Meg expanded mem) */ + total_handles = MAX_NO_HANDLES; + total_open_handles = 0; + for(i = 0; i < total_handles; i++) + handle[i] = (long) NULL; + +#ifdef NTVDM + map_size = no_phys_pages * NSIZE; + page_offset = MAP_OFFSET + map_size; + pages_below_640 = backfill / EMM_PAGE_SIZE; + pages_above_640 = no_phys_pages - pages_below_640; + + /* initialize active mapping register to set 0 */ + EM_page_mapped = EM_page_mapped_array; + allocate_altreg_set(&active_altreg_set); + + for (i = 0; i < no_phys_pages; i++) + EM_page_mapped[i] = (unsigned short)EMPTY; + + if (get_new_handle(0) != 0) + return FAILURE; + set_no_pages(0, 0); +#else + + pages_above_640 = (effective_addr(EM_end,0) - effective_addr(EM_start,0)) / EMM_PAGE_SIZE; + pages_below_640 = ((640 - mem_limit) * 1024) / EMM_PAGE_SIZE; + no_phys_pages = pages_above_640 + pages_below_640; + + map_size = no_phys_pages * NSIZE; + page_offset = MAP_OFFSET + map_size; + + /* + * set up addresses and mapping status of physical pages + */ + for( i = 0; i < pages_above_640; i++ ) + { + physical_page[i] = EM_start + (i * EMM_PAGE_SIZE >> 4); + EM_page_mapped[i] = EMPTY; + } + base = mem_limit * 64; + + for(i = pages_above_640, j = 0; i < no_phys_pages; i++) + { + physical_page[i] = base + (j++ * EMM_PAGE_SIZE >> 4); + EM_page_mapped[i] = EMPTY; + } + /* + * Allocate handle 0 with any pages required for back filling + */ + if(get_new_handle(pages_below_640) != 0) + return(FAILURE); + + for(i = 0, physical_page_no = pages_above_640; i < pages_below_640; i++) + { + if((EM_page_no = alloc_page()) == FAILURE) + return (FAILURE); + + set_EMpage_no(0, i, EM_page_no); + + if(map_page(EM_page_no, physical_page_no++) == FAILURE) + return(FAILURE); + } + set_no_pages(0, pages_below_640); +#endif /* NTVDM */ + + /* + * Set up necessary variables in Top level EMM function code + */ + reset_emm_funcs(); + + /* + ** Map the address space taken up by LIM to RAM. + ** Without LIM it would be ROM. + ** The range seems to be fixed at segment D000 to F000. + ** Assumed that AT's have GMI and XT's do not. + ** XT's can use the old fashioned memset calls in + ** delta:manager:init_struc.c + */ +#ifdef NTVDM + /* every physical page must be connected as RAM */ + for (i = 0; i < pages_above_640; i++) + sas_connect_memory(effective_addr(physical_page[i], 0), + effective_addr(physical_page[i], EMM_PAGE_SIZE - 1), + SAS_RAM + ); +#else + + sas_connect_memory(effective_addr(EM_start,0) , effective_addr(EM_end,0) -1 , SAS_RAM ); +#endif + + sure_note_trace3(LIM_VERBOSE,"initialised EMM, total pages= %#x, pages above 640= %#x, pages below 640 = %#x",no_phys_pages, pages_above_640, pages_below_640); + + return(SUCCESS); +} + +/* +=========================================================================== + +FUNCTION : free_expanded_memory + +PURPOSE : This routine calls frees all memory allocated for the + expanded memory manager and resets the variables that + are used by the Expanded Memory Manager(EMM). + +RETURNED STATUS : SUCCESS - + +DESCRIPTION : If total_pages = 0, this indicates that expanded + memory hasn't been initialised, so the routine simply + does nothing and returns. + +========================================================================= +*/ +GLOBAL void free_expanded_memory IFN0() + +{ + short handle_no; + + if(total_pages == 0) + return; + + /* free space allocated for each handle */ + + handle_no = 0; + while(total_open_handles > 0) + { + while(!handle_ok(handle_no)) + handle_no++; + + free_handle(handle_no++); + } + /* + * Free space for expanded memory pages + */ + host_deinitialise_EM(); + + total_pages = 0; + + return; +} + +/* +=========================================================================== + +FUNCTION : get_new_handle() + +PURPOSE : Finds the next free handle no., allocates storage space + for recording the EMM data associated with this handle, + and stores the 'storage ID' in the handle array. + +RETURNED STATUS : SUCCESS - new handle allocated successfully + FAILURE - Error occurred in trying to allocate storage + space for handle data + +DESCRIPTION : see emm.h for a description of space required for + storing handle data e.g. PAGE_OFFSET & NSIZE + + +========================================================================= +*/ +GLOBAL short get_new_handle IFN1(short, no_pages) /* No.of pages to store in handle */ + +{ + short i; /* loop count */ + short handle_no; + int data_size; /* no. of bytes of data storage */ + long storage_ID; /* host dependant storage */ + /* identifier, usually a ptr. */ + + sure_note_trace2(LIM_VERBOSE,"new handle request, current total handles= %d, pages requested = %d",total_handles, no_pages); + + handle_no = 0; + + do + if (handle[handle_no] == (long) NULL) + break; + while(++handle_no < total_handles); + + if(handle_no >= total_handles) + return(FAILURE); + + data_size = page_offset + (no_pages * NSIZE); + + if ((storage_ID = host_allocate_storage(data_size)) == (long) NULL) + return(FAILURE); + + handle[handle_no] = storage_ID; + + for (i=0 ; i < no_phys_pages ; i++) { + set_map_no(handle_no, i, FREE); + } + + total_open_handles++; + + sure_note_trace1(LIM_VERBOSE,"allocation OK, return handle=%d",handle_no); + + return(handle_no); +} + +/* +=========================================================================== + +FUNCTION : free_handle + +PURPOSE : frees the storage space allocated to the handle number. + Decrements the handles open count + +RETURNED STATUS : SUCCESS - space freed + FAILURE - unable to free space + +DESCRIPTION : + +========================================================================= +*/ +GLOBAL int free_handle IFN1(short, handle_no) /* No.of handle to be freed */ + +{ + long storage_ID; /* host dependant storage */ + /* identifier, usually a ptr. */ + + sure_note_trace2(LIM_VERBOSE, "free handle %d request, total handles = %d",handle_no, total_handles); + + storage_ID = handle[handle_no]; + + if(host_free_storage(storage_ID) != SUCCESS) + return(FAILURE); + + handle[handle_no] = (long) NULL; + + total_open_handles--; + + return(SUCCESS); +} + +/* +=========================================================================== + +FUNCTION : reallocate_handle + +PURPOSE : changes the number of pages allocated to a given handle + +RETURNED STATUS : SUCCESS - handle reallocated + FAILURE - unable to get space for new handle data + +DESCRIPTION : + +========================================================================= +*/ +GLOBAL int reallocate_handle IFN3(short, handle_no, /* handle to be reallocated */ + short, old_page_count,/* current pages in handle */ + short, new_page_count)/* required pages for handle*/ + +{ + long storage_ID; /* host dependant storage */ + /* identifier, usually a ptr. */ + + short size, /* size of handle data area */ + new_size; /* size of new handle data area */ + + + size = page_offset + (old_page_count * NSIZE); + new_size = page_offset + (new_page_count * NSIZE); + storage_ID = handle[handle_no]; + + sure_note_trace3(LIM_VERBOSE,"reallocate pages for handle %d, old size=%#x, new size= %#x",handle_no, size, new_size); + + if((storage_ID = host_reallocate_storage(storage_ID, size, new_size)) == + (long) NULL) + return(FAILURE); + + handle[handle_no] = storage_ID; + + return(SUCCESS); +} + +/* +=========================================================================== + +FUNCTION : handle_ok + +PURPOSE : checks to see if the handle no. is valid - this should + be called before every routine that uses a handle number + to retrieve or set data in the handle data area + +RETURNED STATUS : TRUE - Handle no. is valid + FALSE - Handle no. is invalid + +DESCRIPTION : + +========================================================================= +*/ +GLOBAL boolean handle_ok IFN1(short, handle_no) + +{ +#ifdef NTVDM +/* some *** applicaitons feed us a negtive handle number. Catch it and + throw it to the hell*/ + + if ((unsigned short)handle_no >= (unsigned short)total_handles) { +#else + if(handle_no >= total_handles || handle_no < 0) { +#endif + + sure_note_trace1(LIM_VERBOSE,"invalid handle %d",handle_no); + return(FALSE); + } + + if(handle[handle_no] == (long) NULL){ + sure_note_trace1(LIM_VERBOSE,"invalid handle %d",handle_no); + return(FALSE); + } + + return(TRUE); +} + +/* +=========================================================================== + +FUNCTION : set_no_pages + +PURPOSE : sets the no of pages variable in the specified handle + +RETURNED STATUS : + +DESCRIPTION : + +========================================================================= +*/ +GLOBAL void set_no_pages IFN2(short, handle_no, short, no_pages) + +{ + long storage_ID; /* host dependant storage */ + /* identifier, usually a ptr. */ + byte *ptr; /* pointer to storage area */ + + storage_ID = handle[handle_no]; + ptr = USEBLOCK(storage_ID); + + *(short *)ptr = no_pages; + + FORGETBLOCK(storage_ID) + + return; +} + +/* +=========================================================================== + +FUNCTION : set_EMpage_no + +PURPOSE : sets Expanded Memory page that is used for the specified + logical page into the handle data storage area + +RETURNED STATUS : + +DESCRIPTION : + +========================================================================= +*/ +GLOBAL void set_EMpage_no IFN3(short, handle_no, + short, logical_page_no, + short, EM_page_no) + +{ + long storage_ID; /* host dependant storage */ + /* identifier, usually a ptr. */ + byte *ptr; /* pointer to storage area */ + + storage_ID = handle[handle_no]; + + ptr = USEBLOCK(storage_ID); + /* + * offset pointer to correct position + */ + + ptr += (page_offset +(logical_page_no * NSIZE)); + *(short *)ptr = EM_page_no; + + FORGETBLOCK(storage_ID) + + return; +} + +/* +=========================================================================== + +FUNCTION : set_map_no + +PURPOSE : sets Expanded Memory page number in the map section of + the handle data storage area + +RETURNED STATUS : + +DESCRIPTION : + +========================================================================= +*/ +GLOBAL void set_map_no IFN3(short, handle_no, + unsigned char, physical_page_no, + short, EM_page_no) + +{ + long storage_ID; /* host dependant storage */ + /* identifier, usually a ptr. */ + unsigned char *ptr; /* pointer to storage area */ + + storage_ID = handle[handle_no]; + + ptr = USEBLOCK(storage_ID); + /* + * offset pointer to correct position + */ + + ptr += (MAP_OFFSET +(physical_page_no * NSIZE)); + *(short *)ptr = EM_page_no; + + FORGETBLOCK(storage_ID) + + return; +} + +/* +=========================================================================== + +FUNCTION : set_name + +PURPOSE : writes a name into the name section of the handle data + storage area + +RETURNED STATUS : + +DESCRIPTION : + +========================================================================= +*/ +GLOBAL void set_name IFN2(short, handle_no, + char *, new_name) + +{ + long storage_ID; /* host dependant storage */ + /* identifier, usually a ptr. */ + unsigned char *ptr; /* pointer to storage area */ + + + storage_ID = handle[handle_no]; + + ptr = USEBLOCK(storage_ID); + /* + * offset pointer to correct position + */ + + ptr += NAME_OFFSET; + strncpy((char *)ptr, new_name, NAME_LENGTH); + + FORGETBLOCK(storage_ID) + + return; +} + +/* +=========================================================================== + +FUNCTION : get_no_pages + +PURPOSE : gets the number of pages assigned to the specified handle + +RETURNED STATUS : no of pages returned + +DESCRIPTION : + +========================================================================= +*/ +GLOBAL short get_no_pages IFN1(short, handle_no) + +{ + long storage_ID; /* host dependant storage */ + /* identifier, usually a ptr. */ + byte *ptr; /* pointer to storage area */ + short no_pages; /* no. of pages in handle */ + + storage_ID = handle[handle_no]; + + ptr = USEBLOCK(storage_ID); + + no_pages = *(short *)ptr; + + FORGETBLOCK(storage_ID) + + return(no_pages); +} + +/* +=========================================================================== + +FUNCTION : get_EMpage_no + +PURPOSE : returns the Expanded Memory page no. used for the + specified logical page in the given handle + +RETURNED STATUS : Expanded Memory page no. returned + +DESCRIPTION : + +========================================================================= +*/ +GLOBAL short get_EMpage_no IFN2(short, handle_no, + short, logical_page_no) + +{ + long storage_ID; /* host dependant storage */ + /* identifier, usually a ptr. */ + byte *ptr; /* pointer to storage area */ + short EM_page_no; /* Expanded Memory page number */ + + storage_ID = handle[handle_no]; + + ptr = USEBLOCK(storage_ID); + /* + * offset pointer to correct position + */ + + ptr += (page_offset +(logical_page_no * NSIZE)); + EM_page_no = *(short *)ptr; + + FORGETBLOCK(storage_ID) + + return(EM_page_no); +} + +/* +=========================================================================== + +FUNCTION : get_map_no + +PURPOSE : returns the Expanded Memory page no. saved in the map + attached to the given handle + +RETURNED STATUS : page no. in map returned + +DESCRIPTION : + +========================================================================= +*/ +GLOBAL short get_map_no IFN2(short, handle_no, + unsigned char, physical_page_no) + +{ + long storage_ID; /* host dependant storage */ + /* identifier, usually a ptr. */ + unsigned char *ptr; /* pointer to storage area */ + short EM_page_no; /* Expanded Memory page number */ + + storage_ID = handle[handle_no]; + + ptr = USEBLOCK(storage_ID); + /* + * offset pointer to correct position + */ + + ptr += (MAP_OFFSET +(physical_page_no * NSIZE)); + EM_page_no = *(short *)ptr; + + FORGETBLOCK(storage_ID) + + return(EM_page_no); +} + +/* +=========================================================================== + +FUNCTION : get_name + +PURPOSE : returns a pointer to the name assigned to the given handle + +RETURNED STATUS : + +DESCRIPTION : + +========================================================================= +*/ +GLOBAL char *get_name IFN1(short, handle_no) + +{ + long storage_ID; /* host dependant storage */ + /* identifier, usually a ptr. */ + unsigned char *ptr; /* pointer to storage area */ + + storage_ID = handle[handle_no]; + + ptr = USEBLOCK(storage_ID); + /* + * offset pointer to correct position + */ + + ptr += NAME_OFFSET; + strncpy(name, (char *)ptr, NAME_LENGTH); + + FORGETBLOCK(storage_ID) + + return(name); +} + +/* +=========================================================================== + +FUNCTION : alloc_page + +PURPOSE : allocates a page from expanded memory + +RETURNED : >=0 = SUCCESS - EM page no. returned + <0 = FAILURE - error occured in trying to allocate page + +DESCRIPTION : + +========================================================================= +*/ +GLOBAL short alloc_page IFN0() + +{ + short EM_page_no; /* EM_page_no to be returned */ + + + if ((EM_page_no = host_alloc_page()) == FAILURE) + return(FAILURE); + + unallocated_pages--; + + return(EM_page_no); +} + +/* +=========================================================================== + +FUNCTION : free_page + +PURPOSE : frees a page of expanded memory for further use + +RETURNED : SUCCESS - page freed successfully + FAILURE - unable to free page + +DESCRIPTION : + +========================================================================= +*/ +GLOBAL int free_page IFN1(short, EM_page_no) + +{ + + short physical_page_no; + + if (EM_page_no > total_pages) + return(FAILURE); + + /* Removed from mapped pages table */ + + for (physical_page_no=0; physical_page_no < no_phys_pages; physical_page_no++) { + + if (EM_page_mapped[physical_page_no] == EM_page_no) { + EM_page_mapped[physical_page_no] = UNMAPPED; + break; + } + + } + + if (host_free_page(EM_page_no) != SUCCESS) + return(FAILURE); + + unallocated_pages++; + + return(SUCCESS); +} + +#ifndef NTVDM +/* +======================================================================== + +FUNCTION : page_already_mapped + +PURPOSE : function to determine whether a EMM page is already + mapped to a different physical page within intel + memory + +RETURNED : count of number of pages in addition to the page + passed which are mapped to the same logical page. + The page number of one of these mirror pages is + also returned via the pointer passed as an argument. + +DESCRIPTION : + +======================================================================== +*/ + +GLOBAL ULONG +page_already_mapped IFN2(short, EM_page_no, + unsigned char *, physical_page_no) + +{ + unsigned char page, orig_page; + ULONG map_count; + + map_count = 0; + orig_page = *physical_page_no; + + for( page = 0; page < (unsigned char) no_phys_pages; page++ ) + { + if ((EM_page_mapped[page] == EM_page_no) && + (page != orig_page )) + { + sure_note_trace2( LIM_VERBOSE, + "log page %x mapped to phys page %x", + EM_page_no, page); + + *physical_page_no = page; + map_count++; + } + } + + return( map_count ); +} + + +LOCAL VOID +connect_MM_LIM_page IFN2( USHORT, segment, SHORT, EM_page_no ) +{ + ULONG eff_addr; + +#ifdef PROD + UNUSED(EM_page_no); +#endif + + assert2( NO, "Connecting multi-mapped page, %d, at %x", + EM_page_no, segment ); + + eff_addr = effective_addr( segment, 0 ); + sas_connect_memory( eff_addr, eff_addr + EMM_PAGE_SIZE - 1, + SAS_MM_LIM ); +} + +LOCAL VOID +disconnect_MM_LIM_page IFN4( USHORT, segment, SHORT, EM_page_no, + ULONG, map_count, unsigned char, physical_page_no ) +{ + ULONG eff_addr; + +#ifdef PROD + UNUSED(EM_page_no); +#endif + + sure_note_trace2(LIM_VERBOSE, + "Unmapping multi-mapped page, %d, at %x", + EM_page_no, segment ); + + eff_addr = effective_addr( segment, 0 ); + sas_connect_memory( eff_addr, eff_addr + EMM_PAGE_SIZE - 1, SAS_RAM ); + + if( map_count == 1 ) + { + /* + * We have to disconnect the last page of this group, + * by connecting it as SAS_RAM. + */ + + segment = physical_page[physical_page_no]; + eff_addr = effective_addr( segment, 0 ); + + sure_note_trace2(LIM_VERBOSE, + "Unmapping last multi-mapped page, %d, at %x", + EM_page_no, segment ); + + sas_connect_memory( eff_addr, eff_addr + EMM_PAGE_SIZE - 1, + SAS_RAM ); + } +} + +#endif /* !NTVDM */ + +/* +======================================================================== + +FUNCTION : map_page + +PURPOSE : maps a page from expanded memory into Intel physical + address space + +RETURNED : SUCCESS - page mapped successfully + FAILURE - unable to map page + +DESCRIPTION : + +======================================================================== +*/ +GLOBAL int map_page IFN2(short, EM_page_no, + unsigned char, physical_page_no) + +{ + USHORT segment; /* segment address of page in */ + /* physical address space */ + unsigned char phys_page; + ULONG map_count; + + segment = physical_page[physical_page_no]; + + /* + * make sure that a page is not already mapped in + * if it is - return it to Expanded Memory + */ + sure_note_trace2(LIM_VERBOSE, + "map page %#x to phys page %#x", + EM_page_no,physical_page_no); + + if(EM_page_mapped[physical_page_no] != EMPTY) + { + sure_note_trace1(LIM_VERBOSE, + "phys page already mapped to page %#x", + EM_page_mapped[physical_page_no]); + + if(EM_page_mapped[physical_page_no] == EM_page_no) + { + sure_note_trace0(LIM_VERBOSE, + "remap of same page, so do nothing"); + + return(SUCCESS); + } + +#ifndef NTVDM + /* + * We want to return the current contents of this physical + * page to the logical page ( to sync up the logical page ). + * We have to check first that this physical page is not a + * mirror of some other page - if it is we have to disconnect + * it from the group of pages it is mirroring. + */ + + phys_page = physical_page_no; + + if( map_count = page_already_mapped( + EM_page_mapped[physical_page_no], &phys_page)) + { + disconnect_MM_LIM_page( segment, EM_page_no, + map_count, phys_page ); + } + + /* + * We can now unmap the physical page and indicate + * that it is really unmapped. + */ + if(host_unmap_page(segment, + EM_page_mapped[physical_page_no]) != SUCCESS) + { + return(FAILURE); + } + EM_page_mapped [physical_page_no] = EMPTY; +#endif + + } +#ifndef NTVDM + + /* + * If this logical page is already mapped, make sure the + * new mapping has an up to date copy + */ + + phys_page = physical_page_no; + + if (page_already_mapped(EM_page_no, &phys_page)) + { + /* + * We now want to get the LIM logical page up to date with + * the physical pages that are currently mapped to it. We + * don't want to set EM_page_mapped [phys_page] to EMPTY + * after the host_unmap_page(). If we did we wouldn't notice + * that we had a multiply-mapped page and the patch up code + * wouldn't get called. + */ + + host_update_logical_page( physical_page[phys_page], + EM_page_no ); + + /* + * Connect new page and "mirror" page as MM_LIM. This may + * mean some pages get connected as MM_LIM multiple times + * - inefficient but not wrong otherwise. This connection + * has to be made for all hosts - even those that can do + * mapping themselves. This is to make sure that the CPU + * data structures associated with all pages get updated + * when a multi-mapped write occurs. + */ + + connect_MM_LIM_page( segment, EM_page_no ); + + connect_MM_LIM_page( physical_page[phys_page], EM_page_no ); + } +#endif + if(host_map_page(EM_page_no, segment) != SUCCESS) + return(FAILURE); + + EM_page_mapped[physical_page_no] = EM_page_no; + + sure_note_trace0(LIM_VERBOSE,"map OK"); + return(SUCCESS); +} + +/* +======================================================================== + +FUNCTION : unmap_page + +PURPOSE : unmaps a page from Intel physical address space back to + expanded memory + +RETURNED : SUCCESS - page unmapped successfully + FAILURE - error in unmapping page + +DESCRIPTION : + +======================================================================== +*/ +GLOBAL int unmap_page IFN1(unsigned char, physical_page_no) + +{ + short EM_page_no; /* EM_page_no currently mapped */ + unsigned short segment; /* segment address of page in */ + /* physical address space */ + SHORT phys_page; + ULONG map_count; + + sure_note_trace1( LIM_VERBOSE, + "unmap phys page %#x",physical_page_no); + + segment = physical_page[physical_page_no]; + + if((EM_page_no = EM_page_mapped[physical_page_no]) == EMPTY) + { + /* + * Already done + */ + sure_note_trace0( LIM_VERBOSE, + "already unmapped, so do nothing"); + + return(SUCCESS); + } + + phys_page = physical_page_no; + +#ifndef NTVDM + if( map_count = page_already_mapped( EM_page_no, (unsigned char *)&phys_page )) + { + disconnect_MM_LIM_page( segment, EM_page_no, + map_count, phys_page ); + } +#endif + + if(host_unmap_page(segment, EM_page_no) != SUCCESS) + return(FAILURE); + + EM_page_mapped[physical_page_no] = EMPTY; + + sure_note_trace0(LIM_VERBOSE,"unmap OK"); + return(SUCCESS); +} + +/* +=========================================================================== + +FUNCTION : map_saved + +PURPOSE : Checks to see if a map has been saved for the specified + handle + +RETURNED STATUS : TRUE - A map is saved for this handle + FALSE - No map has been saved + +DESCRIPTION : checks the first entry in the map for the value 'FREE' + +========================================================================= +*/ +GLOBAL boolean map_saved IFN1(short, handle_no) + +{ + long storage_ID; /* host dependant storage */ + /* identifier, usually a ptr. */ + unsigned char *ptr; /* pointer to storage area */ + short status; /* value read from map */ + + storage_ID = handle[handle_no]; + ptr = USEBLOCK(storage_ID); + + /* + * offset pointer to correct position + */ + + ptr += MAP_OFFSET; + status = *(short *)ptr; + + FORGETBLOCK(storage_ID) + + return((status == FREE) ? FALSE : TRUE); +} + + +/* +=========================================================================== + +FUNCTION : save_map + +PURPOSE : takes a copy of the EM_page_mapped array and store it in + the map section of the handle data storage area + +RETURNED STATUS : SUCCESS - everything OK + FAILURE - invalid segment no. passed in src array + +DESCRIPTION : if handle_no is >= 0 the map is stored in the data area + assigned to that handle + if handle_no == -1 the map is stored in the array pointed + to by dst_segment:dst_offset + if handle_no == -2 only the pages specified by the segment + addresses in the src array (pointed to by + src_segment:src_offset) are saved in the dst array + (pointed to by dst_segment:dst_offset). + +========================================================================= +*/ +GLOBAL int save_map IFN5(short, handle_no, + unsigned short, dst_segment, + unsigned short, dst_offset, + unsigned short, src_segment, + unsigned short, src_offset) + +{ + unsigned short offset, /* temp offset variable */ + segment; /* segment address to be saved */ + short i, /* loop counter */ + page_no, /* physical page no. */ + no_to_save; /* no of pages in src array */ + + if(handle_no >= 0) + for (i = 0; i < no_phys_pages; i++) + set_map_no(handle_no, i, EM_page_mapped[i]); + + else if(handle_no == -1) + for(i = 0; i < no_phys_pages; i++) + { + write_intel_word(dst_segment, dst_offset, EM_page_mapped[i]); + dst_offset +=2; + } + + else if(handle_no == -2) + { + offset = dst_offset; + for(i = 0; i < no_phys_pages; i++) + { +#ifdef NTVDM + write_intel_word(dst_segment, offset, LEAVE); +#else + write_intel_word(dst_segment, offset, EMPTY); +#endif + offset += 2; + } + read_intel_word(src_segment, src_offset, (word *)&no_to_save); + for (i = 0; i < no_to_save; i++) + { + src_offset += 2; + read_intel_word(src_segment, src_offset, &segment); + /* + * Find Physical page no. + */ + page_no = 0; + do + if(segment == physical_page[page_no]) + break; + while(++page_no < no_phys_pages); + + if(page_no >= no_phys_pages) + return (FAILURE); + /* + * Save EM page number in destination array + */ + offset = dst_offset + (page_no * 2); + write_intel_word(dst_segment, offset, EM_page_mapped[page_no]); + } + } + return(SUCCESS); +} + +/* +=========================================================================== + +FUNCTION : restore_map + +PURPOSE : reads the specified map and returns 2 arrays specifying + which pages have to be mapped out and which ones have to be + mapped in + +RETURNED STATUS : SUCCESS - Map read successfully + + +DESCRIPTION : A +ve handle number indicates that the map is stored + within the handle data area. + If the handle number is -ve the map will be read from the + data pointed to by segment:offset + + Only page out - if there is a page currently mapped in and + it is not being replaced by a copy of itself or an empty + page + Only page in - if new page is different to existing one + and it is not empty + +========================================================================= +*/ +#ifdef ANSI +GLOBAL int restore_map (short handle_no, + unsigned short segment, + unsigned short offset, + short pages_out[], + short pages_in[]) +#else +GLOBAL int restore_map (handle_no, segment, offset, pages_out, pages_in) +short handle_no; +unsigned short segment; +unsigned short offset; +short pages_out[]; +short pages_in[]; +#endif /* ANSI */ +{ + short i, /* loop counter */ + new_page, /* page number read from map */ + old_page; /* existing page number */ + + for(i = 0; i < no_phys_pages; i++) + { + if(handle_no >= 0) + new_page = get_map_no(handle_no, i); + else + { + read_intel_word(segment, offset, (word *)&new_page); + offset += 2; +#ifdef NTVDM + if(new_page < LEAVE || new_page >= total_pages) +#else + if(new_page < EMPTY || new_page >= total_pages) +#endif /* NTVDM */ + return(FAILURE); + } + old_page = EM_page_mapped[i]; + +/* + if(old_page != EMPTY && new_page != EMPTY && old_page != new_page ) +*/ +/* need to do unmap to empty state case to update the page copy in the LIM + space in case of new maps of that page to other LIM slots. */ +#ifdef NTVDM + if(old_page != EMPTY && old_page != new_page && new_page != LEAVE) +#else + if(old_page != EMPTY && old_page != new_page ) +#endif + pages_out[i] = old_page; + else + pages_out[i] = EMPTY; + +#ifdef NTVDM + if(new_page != EMPTY && new_page != old_page && new_page != LEAVE) +#else + if(new_page != EMPTY && new_page != old_page) +#endif + pages_in[i] = new_page; + else + pages_in[i] = EMPTY; + } + if(handle_no >= 0) + set_map_no(handle_no, 0, FREE); + + return(SUCCESS); +} + +/* +=========================================================================== + +FUNCTION : copy_exchange_data + +PURPOSE : copies or exchanges data between conventional and + expanded memory + +RETURNED STATUS : SUCCESS - everything ok + FAILURE - Error ocurred in copying data + +DESCRIPTION : type - uses a bit pattern, bit 0 represents destination, + bit 1 represents source, a set bit means expanded, a clear + bit means conventional memory + bit 2 represents exchange if set or move if it is clear + + e.g. 0 (0000) = move conventional to conventional + 1 (0001) = move conventional to expanded + 6 (0110) = exchange expanded to conventional + 7 (0111) = exchange expanded to expanded + +========================================================================= +*/ +GLOBAL int copy_exchange_data IFN8(unsigned char, type, + short, src_handle, + unsigned short, src_seg_page, + unsigned short, src_offset, + short, dst_handle, + unsigned short, dst_seg_page, + unsigned short, dst_offset, + unsigned long, length) + +{ + short dst_EMpage, /* EM page no . of destination */ + src_EMpage; /* EM page no. of source */ + int page_no; /* phys. page no. of mapped page*/ + + /* + * First check to see if the expanded memory page is mapped + * if it is - change the type to deal directly with the + * physical page that it is mapped to + */ + if( type & 1) + { + dst_EMpage = get_EMpage_no(dst_handle, dst_seg_page); + if((page_no = page_status(dst_EMpage)) != UNMAPPED ) + { + dst_seg_page = physical_page[page_no]; + type &= 6; + } + } + if( type & 2) + { + src_EMpage = get_EMpage_no(src_handle, src_seg_page); + if((page_no = page_status(src_EMpage)) != UNMAPPED ) + { + src_seg_page = physical_page[page_no]; + type &= 5; + } + } + + switch(type) + { + case 0: if(host_copy_con_to_con(length, src_seg_page, src_offset, + dst_seg_page, dst_offset) != SUCCESS) + return(FAILURE); + break; + + case 1: if(host_copy_con_to_EM(length, src_seg_page, src_offset, + dst_EMpage, dst_offset) != SUCCESS) + return(FAILURE); + break; + + case 2: if(host_copy_EM_to_con(length, src_EMpage, src_offset, + dst_seg_page, dst_offset) != SUCCESS) + return(FAILURE); + break; + + case 3: if(host_copy_EM_to_EM(length, src_EMpage, src_offset, + dst_EMpage, dst_offset) != SUCCESS) + return(FAILURE); + break; + + case 4: if(host_exchg_con_to_con(length, src_seg_page, src_offset, + dst_seg_page, dst_offset) != SUCCESS) + return(FAILURE); + break; + + case 5: if(host_exchg_con_to_EM(length, src_seg_page, src_offset, + dst_EMpage, dst_offset) != SUCCESS) + return(FAILURE); + break; + + case 6: if(host_exchg_con_to_EM(length, dst_seg_page, dst_offset, + src_EMpage, src_offset) != SUCCESS) + return(FAILURE); + break; + + case 7: if(host_exchg_EM_to_EM(length, src_EMpage, src_offset, + dst_EMpage, dst_offset) != SUCCESS) + return(FAILURE); + break; + + default: return(FAILURE); + } + return(SUCCESS); +} + +/* +======================================================================== + +FUNCTION : page_status + +PURPOSE : checks if a particular EM page is mapped or not + +RETURNED STATUS : page_no - physical page no returned if mapped + UNMAPPED - returned if not mapped + +DESCRIPTION : + +======================================================================== +*/ + +GLOBAL int page_status IFN1(short, EMpage_no) +{ + short physical_page_no = 0; + /* position of page in physical memory */ + + do + if(EM_page_mapped[physical_page_no] == EMpage_no) + break; + while(++physical_page_no < no_phys_pages ); + + if(physical_page_no >= no_phys_pages) + return(UNMAPPED); + else + return(physical_page_no); +} + +/* +======================================================================== + +FUNCTION : phys_page_from_addr + +PURPOSE : determines the physical page number of a LIM page + from its Intel address. + +RETURNED STATUS : The physical page containing the LIM address. + +DESCRIPTION : + +======================================================================= +*/ + +LOCAL SHORT +phys_page_from_addr IFN1( sys_addr, address ) + +{ + sys_addr start; + + start = effective_addr( EM_start, 0x0 ); + + return( (ULONG)(( address - start ) / EMM_PAGE_SIZE )); +} + +/* +======================================================================== + +FUNCTION : get_total_pages + get_unallocated_pages + get_base_address + get_total_handles + get_total_open_handles + get_no_phys_pages + get_page_seg + get_map_size + +PURPOSE : simply returns the reqested variables, to avoid + having to use globals + + +RETURNED STATUS : the following variables are returned , depending upon + the routine called:- + total_pages + unallocated_pages + base_address + total_handles + total_open_handles + no_phys_pages + physical_page[i] + map_size + +DESCRIPTION : + +======================================================================== +*/ + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_LIM2.seg" +#endif + +GLOBAL short get_total_pages IFN0() +{ + return(total_pages); +} + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_LIM.seg" +#endif + +GLOBAL short get_unallocated_pages IFN0() +{ + return(unallocated_pages); +} + +GLOBAL unsigned short get_base_address IFN0() +{ +#ifdef NTVDM + return(physical_page[0]); +#else + return(EM_start); +#endif +} + +GLOBAL short get_total_handles IFN0() +{ + return(total_handles); +} + +GLOBAL short get_total_open_handles IFN0() +{ + return(total_open_handles); +} + +GLOBAL short get_no_phys_pages IFN0() +{ + return(no_phys_pages); +} + +GLOBAL unsigned short get_page_seg IFN1(unsigned char, page_no) +{ + return(physical_page[page_no]); +} + +GLOBAL short get_map_size IFN0() +{ + return(map_size); +} + +#ifdef NTVDM +GLOBAL short get_segment_page_no(unsigned short segment) +{ +#if defined(LARGE_FRAME) && !defined(MONITOR) + short i + for (i = 0; i < no_phys_pages; i++) + if (physical_page[i] == segment) + break; + return(i); +#else + return((segment - physical_page[0]) / EMM_PAGE_SIZE); +#endif + +} +GLOBAL unsigned short get_no_altreg_sets(void) +{ + return(no_altreg_sets); +} + +GLOBAL unsigned short get_active_altreg_set(void) +{ + return(active_altreg_set); +} + +GLOBAL boolean altreg_set_ok(unsigned short set) +{ + return(set < no_altreg_sets && + (altreg_alloc_mask[set >> 3] & (1 << (set & 0x07)))); + +} + +#if defined (NTVDM) && defined(MONITOR) && !defined(PROD) +/* these functions are provided for monitor to verify that + * it has the same definitions of EMM_PAGE_SIZE and INTEL_PAGE_SIZE as + * ours. + */ + +GLOBAL unsigned short get_emm_page_size(void) +{ + return ((unsigned short)EMM_PAGE_SIZE); +} +GLOBAL unsigned short get_intel_page_size(void) +{ + return ((unsigned short) INTEL_PAGE_SIZE); +} +#endif + +/* allocate a free alt mapping register set */ + +GLOBAL boolean allocate_altreg_set(unsigned short *altreg_set) +{ + short byte_offset, bit_offset; + short *page_mapped_ptr; + IU8 mask; + int i; + /* this check is very important because we ** probably ** have + * several unused bits in the allocation mask array + */ + if (free_altreg_sets == 0) + return (FALSE); + + /* use quick and dirty way to allocate a set */ + if (next_free_altreg_set < no_altreg_sets) { + altreg_alloc_mask[next_free_altreg_set >> 3] |= + (0x1 << (next_free_altreg_set & 0x07)); + *altreg_set = next_free_altreg_set++; + } + else { + for (byte_offset = 0; byte_offset < no_altreg_sets; byte_offset++) { + if (altreg_alloc_mask[byte_offset] != 0xFF) { + mask = altreg_alloc_mask[byte_offset]; + bit_offset = 0; + while (mask & (1 << bit_offset)) + bit_offset++; + break; + } + } + altreg_alloc_mask[byte_offset] |= (1 << bit_offset); + *altreg_set = byte_offset * 8 + bit_offset; + } + /* a new alt reg set is just allocated, initialize its + * mapping register to the current active set + */ + page_mapped_ptr = GET_EM_PAGE_MAPPED_PTR(*altreg_set); + for (i = 0; i < no_phys_pages; i++) + page_mapped_ptr[i] = EM_page_mapped[i]; + return TRUE; +} +/* free the given alt mapping register set */ +GLOBAL boolean deallocate_altreg_set(short set) +{ + + /* can not deallocate set 0 or active set */ + if (set != 0 && set != active_altreg_set && set < no_altreg_sets && + altreg_alloc_mask[set >> 3] & (1 << (set &0x07))) { + + altreg_alloc_mask[set >> 3] &= (0xFE << (set & 0x07)); + free_altreg_sets++; + if (free_altreg_sets == (no_altreg_sets - 1)) + next_free_altreg_set = 1; + return TRUE; + } + return FALSE; +} + +/* This function activate the given alt mapping register set + * input: alt reg set to be activated. + * output: TRUE if the given set is activated. + * FALSE if the given set is not activated. + */ + +GLOBAL boolean activate_altreg_set(unsigned short set, short * page_in) +{ + int i; + short * page_out, *page_in_ptr; + short new_page, old_page, segment; + + + if (active_altreg_set == set && page_in == NULL) + return TRUE; + + /* get the mapping array to be mapped in*/ + page_in_ptr = GET_EM_PAGE_MAPPED_PTR(set); + + /* if no page-in override, use the altreg set current mapping */ + if (page_in == NULL) + page_in = page_in_ptr; + + /* the active altreg is being paged out */ + page_out = GET_EM_PAGE_MAPPED_PTR(active_altreg_set); + for ( i = 0; i < no_phys_pages; i++) { + new_page = page_in[i]; + old_page = page_out[i]; + segment = physical_page[i]; + + if (old_page != EMPTY && old_page != new_page) { + if (host_unmap_page(segment, old_page) != SUCCESS) + return FALSE; + } + if(new_page != EMPTY && new_page != old_page) { + if (host_map_page(new_page, segment) != SUCCESS) + return FALSE; + } + /* update the active-to-be set mapping */ + page_in_ptr[i] = new_page; + } + active_altreg_set = set; + EM_page_mapped = page_in_ptr; + return TRUE; +} +#endif /* NTVDM */ + +#ifndef NTVDM + +/* +======================================================================== + +FUNCTION : LIM_b_write, + LIM_w_write, + LIM_str_write + patch_pages + +PURPOSE : LIM byte, word & string - called from write check + failure code in the CPU when a write to a multi-mapped + LIM page is detected. + patch_pages - generic code called from the other + three routines. + +RETURNED STATUS : None. + +DESCRIPTION : + +======================================================================== +*/ + +LOCAL VOID +patch_one_page_partial IFN4( sys_addr, intel_addr, sys_addr, eff_addr, + MM_LIM_op_type, type, ULONG, data ) + +{ + ULONG check_len; + + UNUSED( intel_addr ); /* Used in patch_one_page_full() */ + + switch( type ) + { + case BYTE_OP: + check_len = 1; + break; + + case WORD_OP: + check_len = 2; + break; + + case STR_OP: + check_len = data; + break; + } + + sas_overwrite_memory( eff_addr, check_len ); +} + +LOCAL VOID +patch_one_page_full IFN4( sys_addr, intel_addr, sys_addr, eff_addr, + MM_LIM_op_type, type, ULONG, data ) + +{ + sys_addr check_addr; + ULONG check_len; + + switch( type ) + { + case BYTE_OP: + check_addr = eff_addr; + check_len = 1; + sas_store_no_check( eff_addr, data ); + break; + + case WORD_OP: + check_addr = eff_addr; + check_len = 2; + sas_storew_no_check( eff_addr, data ); + break; + + case STR_OP: + check_addr = eff_addr; + check_len = data; + do + { + sas_store_no_check( eff_addr, + sas_hw_at_no_check( + intel_addr )); + intel_addr++; + eff_addr++; + } + while( --data ); + break; + } + + sas_overwrite_memory( check_addr, check_len ); +} + +LOCAL VOID +patch_pages IFN6( MM_LIM_op_type, type, ULONG, offset, + SHORT, EM_page_no, SHORT, phys_page_no, + ULONG, data, sys_addr, intel_addr ) + +{ + LONG cnt01; + sys_addr eff_addr; + + for( cnt01 = 0; cnt01 < get_no_phys_pages(); cnt01++ ) + { + if(( EM_page_mapped[cnt01] == EM_page_no ) && + ( cnt01 != phys_page_no )) + { + eff_addr = effective_addr( get_page_seg(cnt01), + offset ); + + host_patch_one_page( intel_addr, eff_addr, type, data ); + + sure_note_trace1(LIM_VERBOSE, + "MM LIM write type %d", type ); + sure_note_trace2(LIM_VERBOSE, + "log page 0x%x, phs page 0x%x", + EM_page_no, cnt01 ); + } + } +} + +GLOBAL VOID +LIM_b_write IFN1( sys_addr, intel_addr ) + +{ + ULONG limdata; + SHORT EM_page_no, phys_page_no; + word offset; + + phys_page_no = phys_page_from_addr( intel_addr ); + + offset = intel_addr - + effective_addr( get_page_seg(phys_page_no), 0x0 ); + + EM_page_no = EM_page_mapped[phys_page_no]; + + /* + * Get the data written in order to patch up this + * page's buddy pages. + */ + + limdata = (ULONG) sas_hw_at_no_check( intel_addr ); + patch_pages( BYTE_OP, offset, EM_page_no, phys_page_no, + limdata, intel_addr ); + + /* + * Tell the CPU that this page has been written to. + */ + + sas_overwrite_memory( intel_addr, 1 ); +} + +GLOBAL VOID +LIM_w_write IFN1( sys_addr, intel_addr ) + +{ + ULONG limdata; + SHORT EM_page_no, phys_page_no; + word offset; + + phys_page_no = phys_page_from_addr( intel_addr ); + + offset = intel_addr - + effective_addr( get_page_seg(phys_page_no), 0x0 ); + + EM_page_no = EM_page_mapped[phys_page_no]; + + limdata = (ULONG) sas_w_at_no_check( intel_addr ); + patch_pages( WORD_OP, offset, EM_page_no, phys_page_no, + limdata, intel_addr ); + + sas_overwrite_memory( intel_addr, 2 ); +} + +GLOBAL VOID +LIM_str_write IFN2( sys_addr, intel_addr, ULONG, length ) + +{ + SHORT EM_page_no, phys_page_no; + word offset; + + phys_page_no = phys_page_from_addr( intel_addr ); + + offset = intel_addr - + effective_addr( get_page_seg(phys_page_no), 0x0 ); + + EM_page_no = EM_page_mapped[phys_page_no]; + + patch_pages( STR_OP, offset, EM_page_no, phys_page_no, + length, intel_addr ); + + sas_overwrite_memory( intel_addr, length ); +} +#endif /* !NTVDM */ + +#ifndef PROD +/* +=========================================================================== + +FUNCTION : print_handle_data + +PURPOSE : used for debugging only - prints all the data stored + for a given handle + +RETURNED STATUS : none + +DESCRIPTION : + +========================================================================= +*/ +GLOBAL void print_handle_data IFN1(short, handle_no) + +{ + long storage_ID; + byte *ptr; + short no_pages, i; + char *name_ptr; + short *map_ptr; + short *page_ptr; + + if ((storage_ID = handle[handle_no]) == 0) + { + printf("Unassigned handle - No. %d\n",handle_no); + return; + } + ptr = USEBLOCK(storage_ID); + name_ptr = (char *)ptr + NAME_OFFSET; + map_ptr = (short *)(ptr + MAP_OFFSET); + page_ptr = (short *)(ptr + page_offset); + + no_pages = *(short *)ptr; + printf("Handle No. %d\n",handle_no); + printf("No. of Pages = %d\n",no_pages); + printf("Name = '"); + for(i=0;i<8;i++) + printf("%c",*name_ptr++); + printf("'\n"); + printf("Map = "); + for(i=0;iDAY|MONTH|YEAR|SPECIALNo." + */ + +#define DAY 16 /* 1-31 5 bits */ +#define MONTH 7 /* 1-12 4 bits */ +#define YEAR 5 /* 0-9 4 bits */ +#define SPECIAL 0 /* 0 - 7 3 bits; 1=a,2=b,3=c,4=d,5=e,6=f,7=g */ + +#define BUILD_ID_CODE ((DAY & 0x1f) | ((MONTH & 0xf)<<5) | ((YEAR & 0xf)<<9 ) | ((SPECIAL & 7)<<13)) + + diff --git a/private/mvdm/softpc.new/base/inc/cdrom.h b/private/mvdm/softpc.new/base/inc/cdrom.h new file mode 100644 index 000000000..351222ff6 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/cdrom.h @@ -0,0 +1,255 @@ +/* + * SoftPC V 3.0 + * + * Title : CDROM definitions + * + * Description : Defintions for use of the CDROM + * + * Author : WTG Charnell + * + * Notes : + * + */ + +/* SccsID[]="@(#)cdrom.h 1.11 11/20/92 Copyright Insignia Solutions Ltd."; */ + +/********************************************************************** + * Structure Definitions + ************************/ + +#define PACKET struct extended_command_buffer +struct extended_command_buffer { + word function; /* Device driver command code */ + half_word id; /* Reserved - I.D. byte */ + half_word drive; /* Logical unit number of desired drive */ + half_word command_mode; /* Operational Mode, desired function */ + half_word address_mode; /* Addressing Mode, track,redbook,block */ + word size; /* Block size, Mode dependent operation */ + int address; /* Starting address, CDROM function */ + int count; /* bytes,word,blocks,sectors, etc. */ + half_word *buffer; /* pointer for data transfer */ +}; + +#define DRIVER_INFORMATION struct cdrom_device_driver + /* ASCII text */ +struct cdrom_device_driver { + unsigned char version[3]; /* Version number - driver */ + unsigned char period; /* Text separation */ + unsigned char edition[3]; /* Edit number - file system */ + unsigned char nul_string_1; /* End of string delimiter */ + unsigned char name[8]; /* Device Driver Name (type) */ + unsigned char nul_string_2; /* End of string delimiter */ + unsigned char drives; /* Number of drives installed */ + unsigned char nul_string_3; /* End of string delimiter */ + unsigned char protocol; /* Command Protocol */ + unsigned char nul_string_4; /* End of string delimiter */ +}; + +#define DRIVE_STATUS struct cdrom_drive_status +struct cdrom_drive_status { + unsigned char unit; /* Drive Unit Number of the CD-ROM */ + unsigned char ldc0; /* Last Drive Command - L.S.B. */ + unsigned char ldc1; /* " " " */ + unsigned char ldc2; /* " " " */ + unsigned char ldc3; /* Last Drive Command - M.S.B. */ + unsigned char status; /* Drive Status Byte */ + unsigned char error; /* Drive Error Byte */ + unsigned char comm; /* Drive Communication Error Code */ + unsigned char sector; /* Drive Address - sector number */ + unsigned char second; /* " " - second */ + unsigned char minute; /* " " - minute */ + unsigned char disc_no; /* Selected Disc Number - reserved */ + unsigned char tracks; /* Total number of tracks on disc */ + unsigned char track_no; /* Current Track - audio mode */ +}; + +#define SIMPLE struct original_command_buffer +struct original_command_buffer { + half_word function; /* Device driver command code */ + half_word handle; /* File or Volume handle */ + half_word player; /* Logical unit number of desired drive */ + half_word count; /* Number of block to read */ + int address; /* Starting address, CDROM function */ + half_word *string; /* Pointer address for driver status */ + half_word *buffer; /* Pointer address for data transfer */ +}; + +#define CD_ERR_INVALID_DRIVE_NUM 0x6 +#define CD_ERR_INVALID_ADDRESS 0x7 +#define CD_ERR_INVALID_COUNT 0x8 +#define CD_ERR_INVALID_FN_CODE 0x9 +#define CD_ERR_UNCORECTABLE_DATA_ERR 0x11 +#define CD_ERR_DRIVE_NOT_RESPONDING 0x12 +#define CD_ERR_ADAPTER_DRIVE_ERROR 0x13 +#define CD_ERR_MEDIA_CHANGED 0x14 +#define CD_ERR_DRIVE_NOT_READY 0x15 +#define CD_ERR_ADAPTER_ERROR 0x16 +#define CD_ERR_DRIVE_REPORTED_ERROR 0x18 +#define CD_ERR_ILLEGAL_DISC 0x19 +#define CD_ERR_BYTES_NOT_TRANSFERRED 0x80 +#define CD_ERR_FUNCTION_NOT_SUPPORTED 0x81 +#define CD_ERR_COMMAND_NOT_FOR_TRACK 0x82 +#define CD_ERR_DRIVE_IS_BUSY 0x83 +#define CD_ERR_BUS_IS_BUSY 0x84 +#define CD_ERR_DRIVER_NOT_INITIALISED 0x85 +#define CD_ERR_INVALID_FN_MODE 0x86 +#define CD_ERR_INVALID_ADDR_MODE 0x87 +#define CD_ERR_INVALID_BL_SIZE 0x88 + +/* + * The Bios Parameter Block has a variable structure dependant on the + * command being called. The 1st 13 bytes, however, are always the same: + * Byte 0: length of request header + * Byte 1: Unit # for this request + * Byte 2: Command Code + * Bytes 3&4: Returned Status Word + * Bytes 5-12: Reserved + * + * The driver fills in the Status Word (Bytes 3&4) to indicate success or + * failure of operations. The status word is made up as follows: + * Bit 15: Error (failure if set) + * Bits 12-14: Reserved + * Bit 9: Busy + * Bit 8: Done + * Bits 7-0: Error Code on failure + */ + +/* + * Shorthand for typical error returns in AX. The driver will copy this + * into the Return Status word for us. + */ +#define DRIVE_NOT_READY 0x8002 +#define BAD_FUNC 0x8003 +#define WRITE_ERR 0x800A +#define READ_ERR 0x800B +#define GEN_ERR 0x800C +#define RESERVE_ERR 0x800D +#define FUNC_OK 0x0100 /* Done, No error, no chars waiting */ + +#define BUSY_BIT 9 +#define ERROR_BIT 15 +#define DONE_BIT 8 + + +/**************************************************************************** +* Original CD ROM command/function definitions +* +****************************************************************************/ + +#define ORIG_CD_GET_VERSION 0x10 /* Return ASCI version number */ +#define ORIG_CD_GET_ERROR_COUNT 0x11 /* Read controller error counters */ +#define ORIG_CD_CLEAR_CTRL_ERRORS 0x12 /* Clear controller error counters */ +#define ORIG_CD_INIT_PLAYER 0x13 /* Initialize controller & drive nr */ +#define ORIG_CD_SPIN_UP 0x14 /* Enable spindle motor */ +#define ORIG_CD_SPIN_DOWN 0x15 /* Disable spindle motor */ +#define ORIG_CD_CNVRT_BLK_NO 0x16 /* virtual to logical blk nr */ +#define ORIG_CD_SEEK_ABS 0x17 /* Absolute seek to logical block # */ +#define ORIG_CD_READ_ABS 0x18 /* Absolute read! */ +#define ORIG_CD_READ_ABS_IGN 0x19 /* read, ignore data errors */ +#define ORIG_CD_CLEAR_DRIVE_ERRORS 0x1A /* Clear player errors */ +#define ORIG_CD_READ_STATUS 0x1B /* Read player status */ +#define ORIG_CD_READ_CHARACTERISTICS 0x1C /* Read player characteristics */ +#define ORIG_CD_FLUSH_BUFFER 0x1D /* Flush cached Data buffers */ +#define ORIG_CD_GET_LAST_STATUS 0x1E /* Read "last" player status */ + + +/**************************************************************************** +;* Extended CD ROM command/function definitions +;* +;*/ + +#define EXT_CD_REQUEST_DRIVER_INFO 0x80 /* Report host adapter or driver info */ +#define EXT_CD_READ_ERR_COUNTERS 0x81 /* Report summary of error condition */ +#define EXT_CD_CLEAR_ERR_COUNTERS 0x82 /* Reset device driver error counters */ +#define EXT_CD_RESET_CDROM_DRIVE 0x83 /* Reset the specified drive */ +#define EXT_CD_CLEAR_DRIVE_ERR 0x84 /* Attempt to clear drive error cond. */ +#define EXT_CD_FORBID_MEDIA_REMOVAL 0x85 /* Lock drive door - CM2xx function */ +#define EXT_CD_PERMIT_MEDIA_REMOVAL 0x86 /* UnLock drive door - CM2xx function */ +#define EXT_CD_REQUEST_CHARACTERISTICS 0x87 /* Report drive characteristics */ +#define EXT_CD_REQUEST_STATUS 0x88 /* Report drive status */ +#define EXT_CD_REQUEST_PREVIOUS_STATUS 0x89 /* Report previous status, this drive */ +#define EXT_CD_REQUEST_AUDIO_MODE 0x8A /* Report current mode - audio drive */ +#define EXT_CD_MODIFY_AUDIO_MODE 0x8B /* Change audio mode, this drive */ +#define EXT_CD_FLUSH_DATA_BUFFER 0x8C /* Remove ( i.e. clear ) data buffer */ +#define EXT_CD_EXTRA 0x8D /* Reserved - next info type function */ +#define EXT_CD_LOGICAL_RESERVE_DRIVE 0x8E /* Reserve drive for this application */ +#define EXT_CD_LOGICAL_RELEASE_DRIVE 0x8F /* Release drive for next application */ +#define EXT_CD_REQUEST_DISC_CAPACITY 0x90 /* Report physical status - this disc */ +#define EXT_CD_REQUEST_TRACK_INFO 0x91 /* Report specific track information */ +#define EXT_CD_SPIN_UP_DISC 0x92 /* Start the drive spindle motor */ +#define EXT_CD_SPIN_DOWN_DISC 0x93 /* Stop the drive spindle motor */ +#define EXT_CD_READ_DRIVE_DATA 0x94 /* Read Digital Data */ +#define EXT_CD_WRITE_DATA 0x95 /* Reserved - command */ +#define EXT_CD_SEEK_TO_ADDRESS 0x96 /* Seek to logical or physical addr. */ +#define EXT_CD_PLAY_AUDIO_TRACK 0x97 /* Play a single audio track */ +#define EXT_CD_PAUSE_AUDIO_TRACK 0x98 /* Suspend play of audio track */ +#define EXT_CD_RESUME_AUDIO_PLAY 0x99 /* Resume play of audio track */ +#define EXT_CD_REQUEST_HEAD_LOCATION 0x9A /* Report position of optical head */ +#define EXT_CD_SET_UNIT_NUMBER 0x9B /* Set Unit Number in EEPROM */ +#define EXT_CD_SET_SERIAL_NUMBER 0x9C /* Set Serial Number in EEPROM */ + +IMPORT void rqst_driver_info IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void read_error_counters IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void clear_error_counters IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void reset_drive IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void clear_drive_error IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void rqst_drive_char IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void rqst_drive_status IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void rqst_last_drive_status IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void rqst_audio_mode IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void change_audio_mode IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void cd_flush_buffers IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void reserve_drive IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void release_drive IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void rqst_disc_capacity IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void rqst_track_info IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void spin_up_drive IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void spin_down_drive IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void cd_read_data IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void cd_seek IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void play_audio IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void pause_audio IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void resume_audio IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void rqst_head_location IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void rqst_org_driver_info IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void read_ignore_err IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void cd_not_supported IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void rqst_audstat IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void rqst_UPC_code IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void rqst_play_position IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void rqst_TOC_entry IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT void rqst_TOC IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT LONG rqst_Volsize IPT0(); +IMPORT void rqst_Audio_info IPT2(PACKET *,c_buf,PACKET *,s_buf); +IMPORT SHORT host_rqst_device_status IPT0(); +IMPORT BOOL host_rqst_audio_status IPT0(); +IMPORT void host_eject_disk IPT0(); + +IMPORT VOID init_cd_dvr IPT0(); +IMPORT int check_for_changed_media IPT0(); +IMPORT int open_cdrom IPT0(); +IMPORT int close_cdrom IPT1(int, gen_fd); + +IMPORT VOID setup_cds_ea IPT0(); +IMPORT VOID get_cds_text IPT3(IU32, driveno, IU8 *, ptr, int, len); + +IMPORT VOID term_cdrom IPT1( IU8, drive_num); +IMPORT VOID init_bcd_driver IPT0(); + +#if defined(GEN_DRVR) +#define MAX_DRIVER 10 +#define CD_ROM_DRIVER_NUM 8 +#else +#define MAX_DRIVER 1 +#define CD_ROM_DRIVER_NUM 0 +#endif /* GEN_DRVR */ + +/* + * Used by get_cdrom_drive(). + */ + +#ifdef macintosh +#define UNKNOWN_DRIVE_NUMBER ('?' - 'A') +#else +#define UNKNOWN_DRIVE_NUMBER -1 +#endif /* macintosh */ diff --git a/private/mvdm/softpc.new/base/inc/cdrom_fn.h b/private/mvdm/softpc.new/base/inc/cdrom_fn.h new file mode 100644 index 000000000..090fd21a8 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/cdrom_fn.h @@ -0,0 +1,116 @@ +/*[ + * Product: SoftPC-AT Revision 3.0 + * Name: cdrom_fn.h + * Purpose: Interface & defines used by cdrom_fn.c + * + * Derived From: next_cdrom.c, 1.5, 23/9/92, Jason Proctor + * + * Sccs ID: @(#)cdrom_fn.h 1.3 04/14/94 + * + * (c)Copyright Insignia Solutions Ltd., 1992. All rights reserved. +]*/ + +/* CD addressing modes */ +#define kBlockAddressMode 0 +#define kRedbookAddressMode 1 +#define kTrackAddressMode 2 + +/* equate for special lead out track */ +#define kActualLeadOutTrack 0xaa +#define kLeadOutTrack 100 + +/* values for device status + * 0x282 => data only, read only, prefetch supported, no interleaving + * only cooked reading, no audio channel manipulation, + * supports Redbook addressing, doesn't support R-W sub-channels + */ +#define kDeviceStatus 0x282 +#define kAudioSupported (1<<4) +#define kNoDiskPresent (1<<11) + +/* data formats for read subchannel command */ +#define kCurrentPosDataFormat 1 +#define kMediaCatDataFormat 2 +#define kTrackStdDataFormat 3 + +/* bit mask for audio status bit */ +#define kAudioPlayInProgress 0x11 + + +/* TYPEDEFS */ + +struct toc_info +{ + UTINY control; + UTINY hour; + UTINY minute; + UTINY sec; + UTINY frame; +}; + +/* entire table of contents */ +/* naudio/ndata hacked out by Jase as we don't need them */ +struct toc_all +{ + UTINY firsttrack; + UTINY lasttrack; + struct toc_info info[101]; +}; + +typedef struct +{ + INT cdDeviceFD; + IUM32 cdAddressMode; + IUM32 cdCommandMode; + IUM32 cdBlockSize; + IUM32 cdBlockAddress; + IUM32 cdTransmitCount; + IUM32 cdReceiveCount; + struct toc_all cdTOC; + BOOL cdChangedMedia; + BOOL cdOpen; + BOOL cdReadTOC; + UTINY *cdBuffer; + UTINY cdTempBuffer [256]; + CHAR cdDeviceName [MAXPATHLEN]; + +} CDROMGlobalRec; + +/* conveniently small MSF record */ +typedef struct +{ + UTINY msfMinutes; + UTINY msfSeconds; + UTINY msfFrames; + +} MSFRec; + +/* utility routines */ + +extern void CreateMSF IPT2 (MSFRec *, startMSF, MSFRec *, endMSF); +extern IUM32 Redbook2HighSierra IPT1 (UTINY *, address); +extern void HighSierra2Redbook IPT2 (IUM32, block, MSFRec *, msf); + + +/* host interface stuff */ + +extern void host_set_cd_retn_stat IPT0 (); +extern void host_cd_media_changed IPT0 (); + +extern int host_scsi_test_unit_ready IPT0 (); +extern int host_scsi_seek IPT0 (); +extern int host_scsi_read IPT0 (); +extern int host_scsi_play_audio IPT0 (); +extern int host_scsi_pause_resume_audio IPT1 (BOOL, pause); +extern int host_scsi_read_UPC IPT0 (); +extern int host_scsi_read_position IPT1 (BOOL, full); +extern int host_scsi_audio_status IPT0 (); +extern int host_scsi_playback_status IPT0 (); +extern int host_scsi_set_blocksize IPT0 (); +extern int host_scsi_read_TOC IPT0 (); + +/* IMPORTED DATA */ + +/* imported from base/dos/cdrom.c */ +extern BOOL bl_red_book; +extern int cd_retn_stat; diff --git a/private/mvdm/softpc.new/base/inc/cga.h b/private/mvdm/softpc.new/base/inc/cga.h new file mode 100644 index 000000000..50a2511c5 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/cga.h @@ -0,0 +1,112 @@ + +/* + * VPC-XT Revision 1.0 + * + * Title : Colour Graphics Adaptor declarations + * + * Description : Definitions for users of the CGA + * + * Author : Henry Nash + * + * Notes : None + */ + +/* SccsID[]="@(#)cga.h 1.5 05/15/93 Copyright Insignia Solutions Ltd."; */ + +/* + * ============================================================================ + * Structure/Data definitions + * ============================================================================ + */ + +#ifdef HUNTER +# define MC6845_REGS 18 /* No. of registers in a MC6845 chip */ +#endif + + +#ifdef BIT_ORDER1 +typedef union /* Template for character attributes */ +{ + half_word all; + struct + { + HALF_WORD_BIT_FIELD blinking :1; /* Blinking attribute */ + HALF_WORD_BIT_FIELD background:3; /* Background colour R,G,B */ + HALF_WORD_BIT_FIELD bold :1; /* Intensity bit */ + HALF_WORD_BIT_FIELD foreground:3; /* Foreground colour R,G,B */ + } bits; + struct + { + HALF_WORD_BIT_FIELD background_and_blink:4; + HALF_WORD_BIT_FIELD foreground_and_bold :4; + } plane; +} ATTRIBUTE; +#endif + +#ifdef BIT_ORDER2 +typedef union /* Template for character attributes */ +{ + half_word all; + struct + { + HALF_WORD_BIT_FIELD foreground:3; /* Foreground colour R,G,B */ + HALF_WORD_BIT_FIELD bold :1; /* Intensity bit */ + HALF_WORD_BIT_FIELD background:3; /* Background colour R,G,B */ + HALF_WORD_BIT_FIELD blinking :1; /* Blinking attribute */ + } bits; + struct + { + HALF_WORD_BIT_FIELD foreground_and_bold :4; + HALF_WORD_BIT_FIELD background_and_blink:4; + } plane; +} ATTRIBUTE; +#endif + +/* + * ============================================================================ + * External declarations and macros + * ============================================================================ + */ + +#ifdef HUNTER + extern half_word MC6845[]; /* The MC6845 data register values */ + extern half_word mode_reg; /* MC6845 mode control register value */ +#endif + +extern void cga_init IPT0(); +extern void cga_term IPT0(); +extern void cga_inb IPT2(io_addr, address, half_word *, value); +extern void cga_outb IPT2(io_addr, address, half_word, value); + +typedef struct { + int mode; + int resolution; + int color_select; + int colormask; +} CGA_GLOBS; + +extern CGA_GLOBS CGA_GLOBALS; + +#define set_cga_mode(val) CGA_GLOBALS.mode = (val) +#define set_cga_resolution(val) CGA_GLOBALS.resolution = (val) +#define set_cga_color_select(val) CGA_GLOBALS.color_select = (val) +#define set_cga_colormask(val) CGA_GLOBALS.colormask = (val) + +#define get_cga_mode() (CGA_GLOBALS.mode) +#define get_cga_resolution() (CGA_GLOBALS.resolution) +#define get_cga_color_select() (CGA_GLOBALS.color_select) +#define get_cga_colormask() (CGA_GLOBALS.colormask) + +#if !defined(EGG) && !defined(A_VID) && !defined(C_VID) +/* This structure is defined solely so that we don't have to ifdef every +** reference to VGLOBS->dirty_flag and VGLOBS->screen_ptr in the base/host +** for a CGA-only build. +*/ +typedef struct +{ + ULONG dirty_flag; + UTINY *screen_ptr; +} CGA_ONLY_GLOBS; + +IMPORT CGA_ONLY_GLOBS *VGLOBS; +#endif /* !EGG */ diff --git a/private/mvdm/softpc.new/base/inc/chkmallc.h b/private/mvdm/softpc.new/base/inc/chkmallc.h new file mode 100644 index 000000000..d13f58942 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/chkmallc.h @@ -0,0 +1,29 @@ + +/*[ + * Product: SoftPC-AT Revision 3.0 + * + * Name: chkmalloc.h + * + * Author: Jerry Sexton + * + * Created On: 15th April 1991 + * + * Sccs ID: @(#)chkmalloc.h 1.1 4/15/91 + * + * Purpose: This header file defines a macro which programs can + * use to exit cleanly if malloc fails. + * + * (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved. + * +]*/ + +#include "error.h" + +/* + * Allocate `nitems' items of type `type' to `var' and exit cleanly on failure. + */ +#define check_malloc(var, nitems, type) \ + while ((var = (type *) host_malloc((nitems) * sizeof(type))) == NULL) \ + { \ + host_error(EG_MALLOC_FAILURE, ERR_CONT | ERR_QUIT, ""); \ + } diff --git a/private/mvdm/softpc.new/base/inc/ckmalloc.h b/private/mvdm/softpc.new/base/inc/ckmalloc.h new file mode 100644 index 000000000..e050d04e9 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/ckmalloc.h @@ -0,0 +1,50 @@ + +/*[ + * Product: SoftPC-AT Revision 3.0 + * + * Name: ckmalloc.h + * + * Author: Jerry Sexton + * + * Created On: 15th April 1991 + * + * Sccs ID: @(#)ckmalloc.h 1.4 08/10/92 + * + * Purpose: This header file defines a macro which programs can + * use to exit cleanly if malloc fails. + * + * (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved. + * +]*/ + +#include "error.h" +#include MemoryH + +/* + * Allocate `nitems' items of type `type' to `var' and exit cleanly on failure. + */ +#define check_malloc(var, nitems, type) \ + while ((var = (type *) host_malloc((nitems) * sizeof(type))) == NULL) \ + { \ + host_error(EG_MALLOC_FAILURE, ERR_CONT | ERR_QUIT, ""); \ + } + +/* + * Allocate `nitems' items of type `type' to `var' and exit cleanly on failure. + * Similar to above, but memory is guaranteed to be of value zero. + */ +#define check_calloc(var, nitems, type) \ + while ((var = (type *) host_calloc((nitems), sizeof(type))) == NULL) \ + { \ + host_error(EG_MALLOC_FAILURE, ERR_CONT | ERR_QUIT, ""); \ + } + +/* + * Re-allocate a previously allocated pointer 'in_var', of type 'type', to a pointer + * 'out_var' to 'nitems' of type 'type' + */ +#define check_realloc(out_var, in_var, nitems, type) \ + while ((out_var = (type *) host_realloc(in_var, (nitems) * sizeof(type))) == NULL) \ + { \ + host_error(EG_MALLOC_FAILURE, ERR_CONT | ERR_QUIT, ""); \ + } diff --git a/private/mvdm/softpc.new/base/inc/cmos.h b/private/mvdm/softpc.new/base/inc/cmos.h new file mode 100644 index 000000000..22ca51055 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/cmos.h @@ -0,0 +1,428 @@ +/* + * SoftPC-AT Revision 2.0 + * + * Title : IBM PC-AT CMOS and Real-Time Clock declarations + * + * Description : This module contains declarations that are used in + * accessing the Motorola MC146818 chip. + * + * Author(s) : Leigh Dworkin. + * + * Notes : For a detailed description of the IBM CMOS RAM + * and the Motorola MC146818A chip refer to the following + * documents: + * + * - IBM PC/AT Technical Reference Manual + * (Section 1-59 ) + * - Motorola Semiconductors Handbook + * (Section MC146818A) + * + */ + +/* SccsID[]="@(#)cmos.h 1.9 04/24/95 Copyright Insignia Solutions Ltd."; */ + +/* + * ============================================================================ + * Structure/Data definitions + * ============================================================================ + */ +/* define the CMOS ports */ + +#define CMOS_PORT_START 0x70 +#define CMOS_PORT_END 0x7f + +/* The following definitions are as in the AT BIOS Pg. 5-24 */ +#define CMOS_PORT 0x70 +#define CMOS_DATA 0x71 +#define NMI 0x80 + +/* define the internal cmos adresses */ +/* Real Time Clock */ +#define CMOS_SECONDS 0x0 +#define CMOS_SEC_ALARM 0x1 +#define CMOS_MINUTES 0x2 +#define CMOS_MIN_ALARM 0x3 +#define CMOS_HOURS 0x4 +#define CMOS_HR_ALARM 0x5 +#define CMOS_DAY_WEEK 0x6 +#define CMOS_DAY_MONTH 0x7 +#define CMOS_MONTH 0x8 +#define CMOS_YEAR 0x9 +#define CMOS_REG_A 0xa +#define CMOS_REG_B 0xb +#define CMOS_REG_C 0xc +#define CMOS_REG_D 0xd + + +/* General purpose CMOS */ +#define CMOS_DIAG 0xe +#define CMOS_SHUT_DOWN 0xf +#define CMOS_DISKETTE 0x10 + +#define CMOS_DISK 0x12 + +#define CMOS_EQUIP 0x14 +#define CMOS_B_M_S_LO 0x15 +#define CMOS_B_M_S_HI 0x16 +#define CMOS_E_M_S_LO 0x17 +#define CMOS_E_M_S_HI 0x18 +#define CMOS_DISK_1 0x19 +#define CMOS_DISK_2 0x1a + +#define CMOS_CKSUM_HI 0x2e +#define CMOS_CKSUM_LO 0x2f +#define CMOS_U_M_S_LO 0x30 +#define CMOS_U_M_S_HI 0x31 +#define CMOS_CENTURY 0x32 +#define CMOS_INFO128 0x33 + +/* define bits in individual bytes */ +/* register D */ +#define VRT 0x80 +#define REG_D_INIT (VRT) + +/* register C */ +#define C_IRQF 0x80 +#define C_PF 0x40 +#define C_AF 0x20 +#define C_UF 0x10 +#define C_CLEAR 0x00 +#define REG_C_INIT (C_CLEAR) + +/* register B */ +#define SET 0x80 +#define PIE 0x40 +#define AIE 0x20 +#define UIE 0x10 +#define SQWE 0x08 +#define DM 0x04 +#define _24_HR 0x02 +#define DSE 0x01 +#define REG_B_INIT (_24_HR) + +/* register A */ +#define UIP 0x80 +#define DV2 0x40 +#define DV1 0x20 +#define DV0 0x10 +#define RS3 0x08 +#define RS2 0x04 +#define RS1 0x02 +#define RS0 0x01 +#define REG_A_INIT (DV1|RS2|RS1) + +/* Diagnostic Status Byte 0x0e */ +/* As named in the BIOS */ +#define CMOS_CLK_FAIL 0x04 +#define HF_FAIL 0x08 +#define W_MEM_SIZE 0x10 +#define BAD_CONFIG 0x20 +#define BAD_CKSUM 0x40 +#define BAD_BAT 0x80 + +/* Shutdown Status Byte 0x0f */ +#define SOFT_OR_UNEXP 0x0 +#define AFTER_MEMSIZE 0x1 +#define AFTER_MEMTEST 0x2 +#define AFTER_MEMERR 0x3 +#define BOOT_REQ 0x4 +#define JMP_DWORD_ICA 0x5 +#define TEST3_PASS 0x6 +#define TEST3_FAIL 0x7 +#define TEST1_FAIL 0x8 +#define BLOCK_MOVE 0x9 +#define JMP_DWORD_NOICA 0xa + +/* Diskette Drive Type Byte 0x10 */ +#define FIRST_FLOPPY_NULL 0x0 +#define FIRST_FLOPPY_360 0x10 +#define FIRST_FLOPPY_12 0x20 +#define FIRST_FLOPPY_720 0x30 +#define FIRST_FLOPPY_144 0x40 +#define SECOND_FLOPPY_NULL 0x0 +#define SECOND_FLOPPY_360 0x01 +#define SECOND_FLOPPY_12 0x02 +#define SECOND_FLOPPY_720 0x03 +#define SECOND_FLOPPY_144 0x04 + +/* Fixed Disk Type Byte 0x12 */ +#define NO_HARD_C 0x0 +#define EXTENDED_C 0xf0 +#define NO_HARD_D 0x0 +#define EXTENDED_D 0x0f + +/* Equipment Byte 0x14 */ +#define ONE_DRIVE 0x0 +#define TWO_DRIVES 0x40 +#define OWN_BIOS 0x0 +#define CGA_40_COLUMN 0x10 +#define CGA_80_COLUMN 0x20 +#define MDA_PRINTER 0x30 +#define CO_PROCESSOR_PRESENT 0x02 +#define COPROCESSOR_NOT_PRESENT 0x00 +#define DISKETTE_PRESENT 0x01 +#define DISKETTE_NOT_PRESENT 0x00 + +/* Masks for the Equipment Byte */ +#define DRIVE_INFO 0x41 +#define DISPLAY_INFO 0x30 +#define NPX_INFO 0x02 +#define RESVD_INFO 0x8C + +/* Cmos initialisation data */ + +#define DIAG_INIT 0x0 +#define SHUT_INIT 0x0 +#define FLOP_INIT 0x20 +#define CMOS_RESVD 0x0 +#define DISK_INIT 0xf0 + +#define EQUIP_INIT 0x1 +#define BM_LO_INIT 0x80 +#define BM_HI_INIT 0x02 +#define EXP_LO 0x0 +#define EXP_HI 0x0 +#define DISK_EXTEND 0x14 +#define DISK2_EXTEND 0x0 + +#define CHK_HI_INIT 0x0 +#define CHK_LO_INIT 0x0 +#define EXT_LO_INIT 0x0 +#define EXT_HI_INIT 0x0 +#define CENT_INIT 0x19 +#define INFO_128_INIT 0x80 + +/* Useful bit masks */ +#define CMOS_ADDR_MASK 0x3f +#define CMOS_BIT_MASK 0x71 +#define NMI_DISABLE 0x80 +#define TOP_BIT 0x80 +#define REST 0x7f + +/* Bit masks used in the BIOS */ +/* This is used for CMOS_INFO128 */ +#define M640K 0x80 + +#define BAD_SHUT_DOWN 0x01 +#define BAD_REG_D 0x02 +#define BAD_DIAG 0x04 +#define BAD_EQUIP 0x08 +#define BAD_FLOPPY 0x10 +#define BAD_DISK 0x20 +#define BAD_BMS 0x40 +#define BAD_XMS 0x80 +#define BAD_CHECKSUM 0x100 + +#define CMOS_SIZE 64 + +/* Real Time Clock Periodic Interrupt Rates */ +#define MAX_PIR 51 +#define PIR_NONE 0 +#define PIR_2HZ 1 +#define PIR_4HZ 1 +#define PIR_8HZ 1 +#define PIR_16HZ 1 +#define PIR_32HZ 1 +#define PIR_64HZ 3 +#define PIR_128HZ 6 +#define PIR_256HZ 13 +#define PIR_512HZ 26 +#define PIR_1MHZ MAX_PIR +#define PIR_2MHZ MAX_PIR +#define PIR_4MHZ MAX_PIR +#define PIR_8MHZ MAX_PIR +#define PIR_16MHZ MAX_PIR +#define PIR_32MHZ MAX_PIR + +#define DONT_CARE 0xc0 + +/* + * ============================================================================ + * External declarations and macros + * ============================================================================ + */ + +/* + * void cmos_init() + * { + * This function performs several distinct initialisation + * tasks associated with the CMOS : + * + * cmos_io_attach() - attach the CMOS ports to the IO bus. + * cmos_hw_init() - initialise the MC146818A + * cmos_post() - perform the IBM POST specific to the CMOS + * } + */ +IMPORT VOID cmos_init IPT0(); + +/* + * void cmos_io_attach() + * { + * This function attaches the CMOS ports to the IO bus. + * Presently called from cmos_init(), this should be + * called at some sensible place on machine powerup. + * } + */ +IMPORT VOID cmos_io_attach IPT0(); + +/* + * void cmos_hw_init() + * { + * This function resets the MC146818A to its default state. + * } + */ +IMPORT VOID cmos_hw_init IPT0(); + +/* + * void cmos_post() + * { + * This function is a very poor emulation of what goes on in + * the IBM power on system test to do with the CMOS. This is + * called via cmos_init() from reset() in reset.c. Ideally, + * reset() should be renamed post() and should only call this + * third initialisation function, rather than _io_attach and + * _hw_init too. + * NB. There is no emulation of the strange behaviour of the + * notorious SHUT_DOWN byte, which allows a user program to + * jump to a known location in the POST, or anywhere in Intel + * memory, after having pulsed the keyboard reset line. + * } + */ +IMPORT VOID cmos_post IPT0(); + +/* + * void rtc_init() + * { + * This function sets up the 12/24 hour mode and binary/bcd + * mode for the data stored in the CMOS bytes. + * It also initialises the time bytes to the current host + * time, and sets up the alarm to go off at the time specified + * in the alarm bytes. + * } + */ +IMPORT VOID rtc_init IPT0(); + +/* + * void cmos_inb(port, value) + * io_addr port; + * half_word *value; + * { + * This function is invoked when a read is performed on an + * I/O address "port" in the range of the CMOS. + * + * The function maps the I/O address to the CMOS + * and returns the value of the requested + * register in "*value". + * } + */ +IMPORT VOID cmos_inb IPT2(io_addr, port, half_word *, value); + +/* + * void cmos_outb(port, value) + * io_addr port; + * half_word value; + * { + * This function is invoked when a write is performed to an + * I/O address "port" in the range of the CMOS, or + * may also be called directly from the BIOS. + * + * The function maps the I/O address to the CMOS + * and sets the requested register to "value". + * } + */ +IMPORT VOID cmos_outb IPT2(io_addr, port, half_word, value); + +#if defined(NTVDM) || defined(macintosh) +/* + * void cmos_pickup() + * { + * This is an extremely badly named function that picks up + * the data stored in the cmos.ram resource to emulate not + * losing data between invocations of SoftPC/AT. This is + * called from main() at application startup. + * } + */ +IMPORT VOID cmos_pickup IPT0(); +#endif /* defined(NTVDM) || defined(macintosh) */ + +/* void cmos_update() + * { + * This function is called from terminate() on application + * exit. It stores the data held in the cmos to the cmos.ram + * resource. + * } + */ +IMPORT VOID cmos_update IPT0(); + +/* void rtc_tick() + * { + * This function gets called from the base routine time_strobe() + * which gets called by the host 20 times a second. It toggles + * the periodic flag at 20Hz, the update flag at 1Hz in the + * CMOS register C and the update bit in CMOS register A. If + * periodic interrupts are enabled, a burst of interrupts are + * sent every 20th second. The chip is capable of up to 32 MHz, + * and we hope noone uses this feature!. + * NB. This is still to be tuned. The default DOS rate is 1MHz + * but we try to send 20 interrupts at 20Hz, and this blows the + * interrupt stack. Assuming programs use the BIOS interface + * (INT 15) it is possible to decrement a larger count less + * often, to fool the PC program. + * + * This is where the CMOS code checks for interrupts from + * the three available sources: periodic as described above, + * update triggered and alarm triggered. + * } + */ +IMPORT VOID rtc_tick IPT0(); + +/* + * void cmos_equip_update() + * { + * This routine updates the cmos bytes when the user changes + * graphics adapter from the User Interface. The EQUIP and + * CKSUM bytes are affected, and the user is not informed + * of the change. + * } + */ +IMPORT VOID cmos_equip_update IPT0(); + +/* +** int cmos_write_byte( cmos_byte:int, new_value:half_word ) +** Writes the specified value into the specified cmos address. +** Returns 0 if OK, 1 if cmos address out of range (there are 64 cmos bytes). +** +*/ +IMPORT int cmos_write_byte IPT2(int, cmos_byte, half_word, new_value); + +/* +** int cmos_read_byte( cmos_byte:int, *value:half_word ) +** Reads the specified value from the specified cmos address and returns it +** at the address specified by the value parameter. +** Returns 0 if OK, 1 if cmos address out of range (there are 64 cmos bytes). +** +*/ +IMPORT INT cmos_read_byte IPT2(int, cmos_byte, half_word *, value); + +/* + * Functions to read and write to the cmos resource file. + */ +IMPORT INT +host_read_resource IPT5( + INT, type, /* Unused */ + CHAR *, name, /* Name of resource */ + UTINY *, addr, /* Address to read data into */ + INT, maxsize, /* Max amount of data to read */ + INT, display_error);/* Controls message output */ + +IMPORT void host_write_resource IPT4( + INT,type, /* Unused */ + CHAR *,name, /* Name of resource */ + UTINY *,addr, /* Address of data to write */ + LONG,size); /* Quantity of data to write */ + +/* + * This variable works like timer_int_enabled and can be used to + * disable real time clock interrupts totally during debugging + */ +extern int rtc_int_enabled; diff --git a/private/mvdm/softpc.new/base/inc/cmosbios.h b/private/mvdm/softpc.new/base/inc/cmosbios.h new file mode 100644 index 000000000..9a8917b2c --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/cmosbios.h @@ -0,0 +1,22 @@ +/* @(#)cmosbios.h 1.3 08/10/92 Copyright Insignia Solutions Ltd. + +FILE NAME : cmosbios.h + + THIS INCLUDE SOURCE FILE IS SUPPLIED IN CONFIDENCE TO THE + CUSTOMER, THE CONTENTS OR DETAILS OF ITS OPERATION MUST + NOT BE DISCLOSED TO ANY OTHER PARTIES WITHOUT THE EXPRESS + AUTHORISATION FROM THE DIRECTORS OF INSIGNIA SOLUTIONS INC. + +DESIGNER : J.P.Box +DATE : OCT '88 + + +========================================================================= + +AMMENDMENTS : + +========================================================================= +*/ +extern void set_tod(); +extern half_word cmos_read(); +extern void cmos_write(); diff --git a/private/mvdm/softpc.new/base/inc/cntlbop.h b/private/mvdm/softpc.new/base/inc/cntlbop.h new file mode 100644 index 000000000..4e59a8338 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/cntlbop.h @@ -0,0 +1,79 @@ +/* + * VPC-XT Revision 1.0 + * + * Title : cntlbop.h + * + * Description : Definitions for use by the control bop functions. + * + * Author : J. Koprowski + * + * Notes : None + */ + + +/* SccsID[]=" @(#) @(#)cntlbop.h 1.4 08/10/92 01/20/89 Copyright Insignia Solutions Ltd."; */ + +/* + * ============================================================================ + * Structure/Data definitions + * ============================================================================ + */ + +/* + * Return codes from control bop type functions. + */ + +#ifndef SUCCESS +#define SUCCESS 0 /* Generic success code. */ +#endif + +#define ERR_NO_FUNCTION 1 /* Function not implemented. */ +#define ERR_WRONG_HOST 2 /* Function call was for a different + host. */ +#define ERR_INVALID_PARAMETER 3 /* Invalid parameter (out of range, + malformed etc.) */ +#define ERR_WRONG_HARDWARE 4 /* Hardware not present or + inappropriate. */ +#define ERR_OUT_OF_SPACE 5 /* Insufficient memory or disk space. */ +#define ERR_RESOURCE_SHORTAGE 6 /* Other resource shortage. */ + +/* + * N.B. Error codes seven through fifteen are reserved for general errors. + * Codes of sixteen and over are for use by the host routines and are + * specified in host_bop.h. + */ + +/* + * Control bop table structure. + */ +typedef struct +{ + unsigned int code; + void (*function)(); +} control_bop_array; + +/* + * Generic host type code used for base functions. + */ +#define GENERIC 1 + +#ifndef NULL +#define NULL 0L +#endif +/* + * ============================================================================ + * External declarations and macros + * ============================================================================ + */ + +extern void control_bop(); +extern control_bop_array host_bop_table[]; + +#if defined(DUMB_TERMINAL) && !defined(NO_SERIAL_UIF) +extern void flatog IPT0(); +extern void flbtog IPT0(); +extern void slvtog IPT0(); +extern void comtog IPT0(); +extern void D_kyhot IPT0(); +extern void D_kyhot2 IPT0(); +#endif /* DUMB_TERMINAL && !SERIAL_UIF */ diff --git a/private/mvdm/softpc.new/base/inc/config.h b/private/mvdm/softpc.new/base/inc/config.h new file mode 100644 index 000000000..1870b365c --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/config.h @@ -0,0 +1,419 @@ +#ifndef _CONFIG_H +#define _CONFIG_H +/*[ +************************************************************************** + + Name: config.h + Author: J.D. Richemont + Created On: + Sccs ID: @(#)config.h 1.44 04/24/95 + Purpose: General (base+host) configuration defines + typedefs. + + See SoftPC Version 3.0 Configuration Interface - Design Document + + (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved. + +WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING + Changing this file by adding a new config type requires some hosts + to recompile their message catalogs or nls stuff. Don't forget to + put this in the host impact field on the BCN. Also, please only add + new config types to the END of the current list, otherwise it is + a real pain to edit the host catalogs! +WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING + +************************************************************************** +]*/ + +/* Make sure error.h gets included - it is necessary for the typedefs referred +** to from the ANSI declarations. +*/ +#ifndef _INS_ERROR_H +#include "error.h" +#endif /* _INS_ERROR_H */ + +/* General messages returned from config funcs */ + +#define C_CONFIG_OP_OK 0 /* General 'all went well' message */ +#define C_CONFIG_NOT_VALID -1 /* the config item is not valid */ + +#define COMMENT_MARK '#' +#define PAD_CHAR ' ' +#define MIN_PAD_LEN 8 + +/* + * Below are the definitions of the masks used by with the flags field + * of the config structure. Note there are currently four unused bits + * 0x04 0x08 0x10 and 0x20 + * + * The first group is used as the config entry type. + * + * C_SYSTEM_ONLY - indicates resource comes from the system config file only + * C_DO_RESET - Changing this element by default will cause a SoftPC reboot + * C_EXPERT_OPTION - If missing from .spcconfig, take default without + * asking user. + */ +#define C_TYPE_MASK ((UTINY) 0x03) +#define C_NAME_RECORD ((UTINY) 0x00) +#define C_STRING_RECORD ((UTINY) 0x01) +#define C_NUMBER_RECORD ((UTINY) 0x02) +#define C_RECORD_DELETE ((UTINY) 0x03) + +#define C_EXPERT_OPTION ((UTINY) 0x10) +#define C_INIT_ACTIVE ((UTINY) 0x20) +#define C_SYSTEM_ONLY ((UTINY) 0x40) +#define C_DO_RESET ((UTINY) 0x80) + +/* + * Note: config processes the Configuration file in hostID order so the + * ordering of hostIDs is significant. + * + * These items are usually system only fields and must be validated + * before the later config items that refer to them + * + * EG if C_EXTEND_MAX_SIZE is not validated before then the check in + * C_EXTENDED_MEM_SIZE is against whatever crap max was malloced. + * + * ===================================================================== + * To avoid backwards compatibility problems, + * never change any of the numbers. + * ===================================================================== + */ + +#define C_FILE_DEFAULT 0 +#ifdef macintosh +#define C_PRINTER_DEFAULT 1 +#define C_PLOTTER_DEFAULT 2 +#define C_DATACOMM_DEFAULT 4 +#else /* macintosh */ +#define C_DEVICE_DEFAULT 1 +#endif /* macintosh */ +#define C_PIPE_DEFAULT 3 +#define C_DRIVE_MAX_SIZE 5 + +#define C_EXTEND_MAX_SIZE 6 +#define C_EXPAND_MAX_SIZE 7 + +/* Extended Mem Size validation depends on Extended MAX size */ +#define C_EXTENDED_MEM_SIZE 8 +#define C_MEM_SIZE C_EXTENDED_MEM_SIZE + +/* LIM size validation depends on Expanded MAX size */ +#define C_LIM_SIZE 9 +#define C_MEM_LIMIT 10 + + + +/* Spares for hosts to provide their own system only fields which need +** early validation. +*/ +#define C_HOST_SYSTEM_0 11 +#define C_HOST_SYSTEM_1 12 +#define C_HOST_SYSTEM_2 13 +#define C_HOST_SYSTEM_3 14 +#define C_HOST_SYSTEM_4 15 + +#define C_SECURE 16 +#define C_SECURE_MASK 17 + +#define C_CDROM_DEVICE 18 + +#define C_SWITCHNPX 24 + +#define C_HARD_DISK1_NAME 25 +#define C_HARD_DISK2_NAME 26 +#define C_FSA_DIRECTORY 27 + +/* + * Extra config options used by multiple-HFX + */ +#define C_FSA_DIR_D 28 +#define C_FSA_DIR_E 29 +#define C_FSA_DIR_F 30 +#define C_FSA_DIR_G 31 +#define C_FSA_DIR_H 32 +#define C_FSA_DIR_I 33 +#define C_FSA_DIR_J 34 +#define C_FSA_DIR_K 35 +#define C_FSA_DIR_L 36 +#define C_FSA_DIR_M 37 +#define C_FSA_DIR_N 38 +#define C_FSA_DIR_O 39 +#define C_FSA_DIR_P 40 +#define C_FSA_DIR_Q 41 +#define C_FSA_DIR_R 42 +#define C_FSA_DIR_S 43 +#define C_FSA_DIR_T 44 +#define C_FSA_DIR_U 45 +#define C_FSA_DIR_V 46 +#define C_FSA_DIR_W 47 +#define C_FSA_DIR_X 48 +#define C_FSA_DIR_Y 49 +#define C_FSA_DIR_Z 50 + +#define C_FLOPPY_A_DEVICE 51 +#define C_FLOPPY_B_DEVICE 52 +#define C_SLAVEPC_DEVICE 53 + +#define C_GFX_ADAPTER 54 +#define C_WIN_SIZE 55 + +#define C_MSWIN_WIDTH 56 +#define C_MSWIN_HEIGHT 57 +#define C_MSWIN_COLOURS 58 + +#define C_SOUND 59 + +/* + * All of the lpt hostID's must be kept sequential because + * the lpt code tends to do (hostID - C_LPT1_NAME) + * calculations to index into an array of structures. + */ +#define C_LPT1_TYPE 60 +#define C_LPT2_TYPE ( C_LPT1_TYPE+1 ) /*61*/ +#define C_LPT3_TYPE ( C_LPT1_TYPE+2 ) /*62*/ +#define C_LPT4_TYPE ( C_LPT1_TYPE+3 ) /*63*/ + +#define C_LPT1_NAME 64 +#define C_LPT2_NAME ( C_LPT1_NAME+1 ) /*65*/ +#define C_LPT3_NAME ( C_LPT1_NAME+2 ) /*66*/ +#define C_LPT4_NAME ( C_LPT1_NAME+3 ) /*67*/ + +#define C_LPTFLUSH1 68 +#define C_LPTFLUSH2 ( C_LPTFLUSH1+1 ) /*69*/ +#define C_LPTFLUSH3 ( C_LPTFLUSH1+2 ) /*70*/ +#define C_LPTFLUSH4 ( C_LPTFLUSH1+3 ) /*71*/ + +#define C_FLUSHTIME1 72 +#define C_FLUSHTIME2 ( C_FLUSHTIME1+1 ) /*73*/ +#define C_FLUSHTIME3 ( C_FLUSHTIME1+2 ) /*74*/ +#define C_FLUSHTIME4 ( C_FLUSHTIME1+3 ) /*75*/ + +#define C_LPT1_OTHER_NAME 76 +#define C_LPT2_OTHER_NAME ( C_LPT1_OTHER_NAME+1) /*77*/ +#define C_LPT3_OTHER_NAME ( C_LPT1_OTHER_NAME+2) /*78*/ +#define C_LPT4_OTHER_NAME ( C_LPT1_OTHER_NAME+3) /*79*/ + +/* com hostIDs need to be grouped, same reason as lpt hostIDs + */ +#define C_COM1_TYPE 80 +#define C_COM2_TYPE ( C_COM1_TYPE+1 ) /*81*/ +#define C_COM3_TYPE ( C_COM1_TYPE+2 ) /*82*/ +#define C_COM4_TYPE ( C_COM1_TYPE+3 ) /*83*/ + +#define C_COM1_NAME 84 +#define C_COM2_NAME ( C_COM1_NAME+1 ) /*85*/ +#define C_COM3_NAME ( C_COM1_NAME+2 ) /*86*/ +#define C_COM4_NAME ( C_COM1_NAME+3 ) /*87*/ + +#define C_COM1_XON 88 +#define C_COM2_XON ( C_COM1_XON+1) /*89*/ +#define C_COM3_XON ( C_COM1_XON+2) /*90*/ +#define C_COM4_XON ( C_COM1_XON+3) /*91*/ + +#define C_AUTOFREEZE 92 +#define C_AUTOFLUSH 93 +#define C_AUTOFLUSH_DELAY 94 +#define C_KEYBD_MAP 95 + +#define C_DOS_CMD 96 + +#define C_SOUND_DEVICE 97 +#define C_SOUND_LEVEL 98 + +#define C_RODISK_PANEL 99 + + +#define C_HU_FILENAME 100 +#define C_HU_MODE 101 +#define C_HU_BIOS 102 +#define C_HU_REPORT 103 +#define C_HU_SDTYPE 104 +#define C_HU_CHKMODE 105 +#define C_HU_CHATTR 106 +#define C_HU_SETTLNO 107 +#define C_HU_FUDGENO 108 +#define C_HU_DELAY 109 +#define C_HU_GFXERR 110 +#define C_HU_TS 111 +#define C_HU_NUM 112 + +/* Strings for Boolean value - we allow for 6 possibilities */ + +#define C_BOOL_VALUES 113 /* to 118 */ + +/* COMMS adapter destination types */ + +#define ADAPTER_TYPE_FILE 119 +#define ADAPTER_TYPE_PRINTER 120 +#define ADAPTER_TYPE_PLOTTER 121 +#define ADAPTER_TYPE_PIPE 122 +#define ADAPTER_TYPE_DATACOMM 123 +#define ADAPTER_TYPE_NULL 124 +#define ADAPTER_TYPE_DEVICE 125 + +#define C_MSWIN_RESIZE 126 + +/* Enable Windows PostScript printer flushing */ + +#define C_LPT1_PSFLUSH 127 +#define C_LPT2_PSFLUSH (C_LPT1_PSFLUSH + 1) +#define C_LPT3_PSFLUSH (C_LPT2_PSFLUSH + 1) +#define C_LPT4_PSFLUSH (C_LPT3_PSFLUSH + 1) + +#define C_COM1_PSFLUSH 131 +#define C_COM2_PSFLUSH (C_COM1_PSFLUSH + 1) +#define C_COM3_PSFLUSH (C_COM2_PSFLUSH + 1) +#define C_COM4_PSFLUSH (C_COM3_PSFLUSH + 1) + + +#if !defined(NTVDM) && !defined(macintosh) +#define C_CMOS 135 +#endif + +#if defined(NTVDM) +#define C_VDMLPT1_NAME 140 +#define C_VDMLPT2_NAME (C_VDMLPT1_NAME + 1) +#define C_VDMLPT3_NAME (C_VDMLPT1_NAME + 2) +#define C_COM_SYNCWRITE C_VDMLPT3_NAME + 1 +#define C_COM_TXBUFFER_SIZE C_COM_SYNCWRITE + 1 +#endif + + +/* Host-specific entries in the message catalogue start at + * the following number plus 1 - note that the value must + * fit into an IU8, so 255 is an upper limit + */ +#define LAST_BASE_CONFIG_DEFINE 240 + + + +/* Names of runtime vars that host_runtime_set/_inquire() will use. + * These do not appear in the message catalogue anywhere. + */ +typedef enum +{ + C_NPX_ENABLED=0, C_HD1_CYLS, C_HD2_CYLS, + C_AUTOFLUSH_ON, C_LPTFLUSH1_ON, C_LPTFLUSH2_ON, + C_LPTFLUSH3_ON, C_COM1_FLOW, C_COM2_FLOW, + C_COM3_FLOW, C_COM4_FLOW, C_SOUND_ON, + C_MOUSE_ATTACHED, C_FLOPPY_SERVER, + C_COM1_ATTACHED, C_COM2_ATTACHED, + C_DRIVEC_ATTACHED, C_DRIVED_ATTACHED, + C_LAST_RUNTIME +} RuntimeEnum; + +/*********** Definitions for states of things **************/ + +/* Graphics adapter types */ + +#define NO_ADAPTOR 0xff +#define MDA 0 +#define CGA 1 +#define CGA_MONO 2 +#define EGA 3 +#define HERCULES 4 +#define VGA 5 + + +/* Floppy drive states + * This is only used by the system that mainatins the interloack between + * slave PC and a real device emulation + */ +#define GFI_REAL_DISKETTE_SERVER 0 +#define GFI_SLAVE_SERVER 1 /* Please always be last */ + + +/*************** Structure definitions ******************/ + +typedef struct +{ + CHAR string[MAXPATHLEN]; + SHORT index; + BOOL rebootReqd; +} ConfigValues; + +typedef struct +{ + CHAR *string; + SHORT value; +} ntable; + +#define NameTable ntable + +typedef struct +{ + CHAR *optionName; + NameTable *table; + SHORT (*valid) IPT4( UTINY, hostID, ConfigValues, *vals, + NameTable, table[], CHAR, errString[] ); + VOID (*change) IPT2( UTINY, hostID, BOOL, apply); + SHORT (*active) IPT3( UTINY, hostID, BOOL, active, CHAR, errString[]); + UTINY hostID; + UTINY flags; +} OptionDescription; + +typedef struct _resource_node +{ + CHAR *line; /* resource string */ + CHAR *arg; /* a pointer to the argument */ + struct _resource_node *next; /* pointer to next node in list */ + SHORT allocLen; /* length of string allocated */ +} LineNode; + +/* Base Config functions declarations */ + +extern void config IPT0(); +extern void *config_inquire IPT2(UTINY, hostID, ConfigValues *, values); + +#if !defined(NTVDM) || (defined(NTVDM) && !defined(MONITOR)) +extern void config_get IPT2(UTINY, hostID, ConfigValues **, values); +extern void config_unget IPT1(UTINY, hostID); +extern void config_unget_all IPT0(); +extern SHORT config_put IPT2(UTINY, hostID, ErrDataPtr, errDataP); +extern void config_put_all IPT0(); +extern void IPT0config_get_all(); +extern BOOL config_reboot_check IPT0(); +extern SHORT config_check IPT2(UTINY, hostID, ErrDataPtr, errDataP); +extern void config_store IPT0(); +#endif + +extern void config_activate IPT2(UTINY, hostID, BOOL, reqState); +extern void config_set_active IPT2(UTINY, hostID, BOOL, state); +extern BOOL config_get_active IPT1(UTINY, hostID); +extern LineNode *add_resource_node IPT1(CHAR *, str); +extern CHAR *translate_to_string IPT2(SHORT, value, NameTable, table[]); +extern SHORT translate_to_value IPT2(CHAR *, string, NameTable, table[]); +extern UTINY find_hostID IPT1(CHAR *, name); +extern CHAR *find_optionname IPT1(UTINY, hostID); +extern void host_config_init IPT1(OptionDescription *, common_defs); + +#if !defined(NTVDM) || (defined(NTVDM) && !defined(MONITOR)) +extern SHORT host_read_resource_file IPT2(BOOL, system, ErrDataPtr, err_buf); +extern SHORT host_write_resource_file IPT2(LineNode *, head, + ErrDataPtr, err_buf); +#endif + +extern void *host_inquire_extn IPT2(UTINY, hostID, ConfigValues *, values); +extern SHORT host_runtime_inquire IPT1(UTINY, what); +extern void host_runtime_set IPT2(UTINY, what, SHORT, value); +extern void host_runtime_init IPT0(); +extern SHORT validate_item IPT4(UTINY, hostID, ConfigValues *, value, + NameTable *, table, CHAR, err[]); +extern CHAR *convert_to_external IPT1(UTINY, hostID); + +#ifndef host_expand_environment_vars +extern CHAR *host_expand_environment_vars IPT1(const char *, string); +#endif /* nhost_expand_environment_vars */ + +extern CHAR ptr_to_empty[]; + +#ifdef SWITCHNPX +extern IS32 Npx_enabled; +#endif /* SWITCHNPX */ + +/* Dumb Terminal UIF Flag */ +extern IBOOL Config_has_been_edited; + +#include "host_cfg.h" + +#endif /* _CONFIG_H */ diff --git a/private/mvdm/softpc.new/base/inc/cpu.h b/private/mvdm/softpc.new/base/inc/cpu.h new file mode 100644 index 000000000..9f665bb63 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/cpu.h @@ -0,0 +1,1460 @@ + +/* + * SoftPC Revision 3.0 + * + * Title : Definitions for the CPU + * + * Description : Structures, macros and definitions for access to the + * CPU registers + * + * Author : Henry Nash + * + * Notes : This file should be portable - but includes a file + * host_cpu.h which contains machine specific definitions + * of CPU register mappings etc. + */ + +/* SccsID[]="@(#)cpu.h 1.28 12/10/92 Copyright Insignia Solutions Ltd."; */ + +#if defined(NTVDM) && defined(MONITOR) + +#include "host_cpu.h" + +IMPORT VOID host_set_hw_int IPT0(); +IMPORT VOID host_clear_hw_int IPT0(); + +#ifdef CPU_30_STYLE + +/* + * These variables are obsolete - however they are referenced + * by:- + * + * 1. ica.c + */ + +extern word cpu_interrupt_map; +extern half_word cpu_int_translate[]; +extern word cpu_int_delay; +extern half_word ica_lock; +extern void (*(jump_ptrs[]))(); +extern void (*(b_write_ptrs[]))(); +extern void (*(w_write_ptrs[]))(); +extern void (*(b_fill_ptrs[]))(); +extern void (*(w_fill_ptrs[]))(); +extern void (*(b_move_ptrs[]))(); +extern void (*(w_move_ptrs[]))(); +extern half_word *haddr_of_src_string; + +/* + * Host functions to be provided for the base to use with respect to the CPU. + * These must be done in host_cpu.h because some hosts may want functions and + * others may want #defines. + */ + +/* + * This macro specifies the maximum recursion depth the CPU is required to support. + * (Note that a particular host may not actually use this value if it is capable + * of supporting abirtarily deep recursion). + */ +#define CPU_MAX_RECURSION 32 + +/* + * Interrupt types... + */ + +typedef enum { CPU_HW_RESET, + CPU_TIMER_TICK, + CPU_SW_INT, + CPU_HW_INT, + CPU_YODA_INT, + CPU_SIGIO_EVENT +} CPU_INT_TYPE; + +#ifdef CPU_PRIVATE +/* + Function returns for private i/f procedures handling segment loading. + */ + +#define SELECTOR_OK 0 +#define GP_ERROR 13 +#define NP_ERROR 11 +#define SF_ERROR 12 +#endif /* CPU_PRIVATE */ + +#ifdef CCPU + +/* Fuctions provided by CPU */ +IMPORT void c_cpu_init IPT0(); +IMPORT void c_cpu_interrupt IPT2(CPU_INT_TYPE, type, USHORT, number); +IMPORT void c_cpu_simulate IPT0(); +IMPORT void c_cpu_q_ev_set_count IPT1(ULONG, new_count); +IMPORT ULONG c_cpu_q_ev_get_count IPT0(); +IMPORT ULONG c_cpu_calc_q_ev_inst_for_time IPT1(ULONG, time); +IMPORT void c_cpu_EOA_hook IPT0(); +IMPORT void c_cpu_terminate IPT0(); + +#define cpu_init c_cpu_init +#define cpu_interrupt c_cpu_interrupt +#define cpu_simulate c_cpu_simulate +#define host_q_ev_set_count c_cpu_q_ev_set_count +#define host_q_ev_get_count c_cpu_q_ev_get_count +#ifndef host_calc_q_ev_inst_for_time +#define host_calc_q_ev_inst_for_time c_cpu_calc_q_ev_inst_for_time +#endif /* host_calc_q_ev_inst_for_time */ +#define cpu_EOA_hook c_cpu_EOA_hook +#define cpu_terminate c_cpu_terminate + +#ifndef CCPU_MAIN + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Provide Access to Byte Registers. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +IMPORT half_word c_getAL IPT0(); +IMPORT half_word c_getCL IPT0(); +IMPORT half_word c_getDL IPT0(); +IMPORT half_word c_getBL IPT0(); +IMPORT half_word c_getAH IPT0(); +IMPORT half_word c_getCH IPT0(); +IMPORT half_word c_getDH IPT0(); +IMPORT half_word c_getBH IPT0(); + +IMPORT void c_setAL IPT1(half_word, val); +IMPORT void c_setCL IPT1(half_word, val); +IMPORT void c_setDL IPT1(half_word, val); +IMPORT void c_setBL IPT1(half_word, val); +IMPORT void c_setAH IPT1(half_word, val); +IMPORT void c_setCH IPT1(half_word, val); +IMPORT void c_setDH IPT1(half_word, val); +IMPORT void c_setBH IPT1(half_word, val); + +#define getAL() c_getAL() +#define getCL() c_getCL() +#define getDL() c_getDL() +#define getBL() c_getBL() +#define getAH() c_getAH() +#define getCH() c_getCH() +#define getDH() c_getDH() +#define getBH() c_getBH() + +#define setAL(x) c_setAL(x) +#define setCL(x) c_setCL(x) +#define setDL(x) c_setDL(x) +#define setBL(x) c_setBL(x) +#define setAH(x) c_setAH(x) +#define setCH(x) c_setCH(x) +#define setDH(x) c_setDH(x) +#define setBH(x) c_setBH(x) + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Provide Access to Word Registers. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +IMPORT word c_getAX IPT0(); +IMPORT word c_getCX IPT0(); +IMPORT word c_getDX IPT0(); +IMPORT word c_getBX IPT0(); +IMPORT word c_getSP IPT0(); +IMPORT word c_getBP IPT0(); +IMPORT word c_getSI IPT0(); +IMPORT word c_getDI IPT0(); +IMPORT word c_getIP IPT0(); + +IMPORT void c_setAX IPT1(word, val); +IMPORT void c_setCX IPT1(word, val); +IMPORT void c_setDX IPT1(word, val); +IMPORT void c_setBX IPT1(word, val); +IMPORT void c_setSP IPT1(word, val); +IMPORT void c_setBP IPT1(word, val); +IMPORT void c_setSI IPT1(word, val); +IMPORT void c_setDI IPT1(word, val); +IMPORT void c_setIP IPT1(word, val); + +#define getAX() c_getAX() +#define getCX() c_getCX() +#define getDX() c_getDX() +#define getBX() c_getBX() +#define getSP() c_getSP() +#define getBP() c_getBP() +#define getSI() c_getSI() +#define getDI() c_getDI() +#define getIP() c_getIP() + +#define setAX(x) c_setAX(x) +#define setCX(x) c_setCX(x) +#define setDX(x) c_setDX(x) +#define setBX(x) c_setBX(x) +#define setSP(x) c_setSP(x) +#define setBP(x) c_setBP(x) +#define setSI(x) c_setSI(x) +#define setDI(x) c_setDI(x) +#define setIP(x) c_setIP(x) + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Provide Access to Segment Registers. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +IMPORT word c_getES IPT0(); +IMPORT word c_getCS IPT0(); +IMPORT word c_getSS IPT0(); +IMPORT word c_getDS IPT0(); + +IMPORT INT c_setES IPT1(word, val); +IMPORT INT c_setCS IPT1(word, val); +IMPORT INT c_setSS IPT1(word, val); +IMPORT INT c_setDS IPT1(word, val); + +#define getES() c_getES() +#define getCS() c_getCS() +#define getSS() c_getSS() +#define getDS() c_getDS() + +#define setES(x) c_setES(x) +#define setCS(x) c_setCS(x) +#define setSS(x) c_setSS(x) +#define setDS(x) c_setDS(x) + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Provide Access to Full(Private) Segment Registers. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#ifdef CPU_PRIVATE + +IMPORT word c_getES_SELECTOR IPT0(); +IMPORT word c_getCS_SELECTOR IPT0(); +IMPORT word c_getSS_SELECTOR IPT0(); +IMPORT word c_getDS_SELECTOR IPT0(); + +IMPORT word c_getCS_LIMIT IPT0(); +IMPORT word c_getDS_LIMIT IPT0(); +IMPORT word c_getES_LIMIT IPT0(); +IMPORT word c_getSS_LIMIT IPT0(); + +IMPORT long c_getCS_BASE IPT0(); +IMPORT long c_getDS_BASE IPT0(); +IMPORT long c_getES_BASE IPT0(); +IMPORT long c_getSS_BASE IPT0(); + +IMPORT half_word c_getCS_AR IPT0(); +IMPORT half_word c_getDS_AR IPT0(); +IMPORT half_word c_getES_AR IPT0(); +IMPORT half_word c_getSS_AR IPT0(); + +IMPORT void c_setES_SELECTOR IPT1(word, val); +IMPORT void c_setCS_SELECTOR IPT1(word, val); +IMPORT void c_setSS_SELECTOR IPT1(word, val); +IMPORT void c_setDS_SELECTOR IPT1(word, val); + +IMPORT void c_setCS_LIMIT IPT1(word, val); +IMPORT void c_setDS_LIMIT IPT1(word, val); +IMPORT void c_setES_LIMIT IPT1(word, val); +IMPORT void c_setSS_LIMIT IPT1(word, val); + +IMPORT void c_setCS_BASE IPT1(long, val); +IMPORT void c_setDS_BASE IPT1(long, val); +IMPORT void c_setES_BASE IPT1(long, val); +IMPORT void c_setSS_BASE IPT1(long, val); + +IMPORT void c_setCS_AR IPT1(half_word, val); +IMPORT void c_setDS_AR IPT1(half_word, val); +IMPORT void c_setES_AR IPT1(half_word, val); +IMPORT void c_setSS_AR IPT1(half_word, val); + +#define getES_SELECTOR c_getES_SELECTOR +#define getCS_SELECTOR c_getCS_SELECTOR +#define getSS_SELECTOR c_getSS_SELECTOR +#define getDS_SELECTOR c_getDS_SELECTOR + +#define getDS_LIMIT c_getDS_LIMIT +#define getCS_LIMIT c_getCS_LIMIT +#define getES_LIMIT c_getES_LIMIT +#define getSS_LIMIT c_getSS_LIMIT + +#define getDS_BASE c_getDS_BASE +#define getCS_BASE c_getCS_BASE +#define getES_BASE c_getES_BASE +#define getSS_BASE c_getSS_BASE + +#define getDS_AR c_getDS_AR +#define getCS_AR c_getCS_AR +#define getES_AR c_getES_AR +#define getSS_AR c_getSS_AR + +#define setES_SELECTOR c_setES_SELECTOR +#define setCS_SELECTOR c_setCS_SELECTOR +#define setSS_SELECTOR c_setSS_SELECTOR +#define setDS_SELECTOR c_setDS_SELECTOR + +#define setDS_LIMIT c_setDS_LIMIT +#define setCS_LIMIT c_setCS_LIMIT +#define setES_LIMIT c_setES_LIMIT +#define setSS_LIMIT c_setSS_LIMIT + +#define setDS_BASE c_setDS_BASE +#define setCS_BASE c_setCS_BASE +#define setES_BASE c_setES_BASE +#define setSS_BASE c_setSS_BASE + +#define setDS_AR c_setDS_AR +#define setCS_AR c_setCS_AR +#define setES_AR c_setES_AR +#define setSS_AR c_setSS_AR + +#endif /* CPU_PRIVATE */ + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Provide Access to Flags. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +IMPORT INT c_getAF IPT0(); +IMPORT INT c_getCF IPT0(); +IMPORT INT c_getDF IPT0(); +IMPORT INT c_getIF IPT0(); +IMPORT INT c_getOF IPT0(); +IMPORT INT c_getPF IPT0(); +IMPORT INT c_getSF IPT0(); +IMPORT INT c_getTF IPT0(); +IMPORT INT c_getZF IPT0(); +IMPORT INT c_getIOPL IPT0(); +IMPORT INT c_getNT IPT0(); +IMPORT word c_getSTATUS IPT0(); + +IMPORT void c_setAF IPT1(INT, val); +IMPORT void c_setCF IPT1(INT, val); +IMPORT void c_setDF IPT1(INT, val); +IMPORT void c_setIF IPT1(INT, val); +IMPORT void c_setOF IPT1(INT, val); +IMPORT void c_setPF IPT1(INT, val); +IMPORT void c_setSF IPT1(INT, val); +IMPORT void c_setTF IPT1(INT, val); +IMPORT void c_setZF IPT1(INT, val); +IMPORT void c_setIOPL IPT1(INT, val); +IMPORT void c_setNT IPT1(INT, val); + +#define getAF() c_getAF() +#define getCF() c_getCF() +#define getDF() c_getDF() +#define getIF() c_getIF() +#define getOF() c_getOF() +#define getPF() c_getPF() +#define getSF() c_getSF() +#define getTF() c_getTF() +#define getZF() c_getZF() +#define getIOPL() c_getIOPL() +#define getNT() c_getNT() +#define getSTATUS() c_getSTATUS() + +#define setAF(x) c_setAF(x) +#define setCF(x) c_setCF(x) +#define setDF(x) c_setDF(x) +#define setIF(x) c_setIF(x) +#define setOF(x) c_setOF(x) +#define setPF(x) c_setPF(x) +#define setSF(x) c_setSF(x) +#define setTF(x) c_setTF(x) +#define setZF(x) c_setZF(x) +#define setIOPL(x) c_setIOPL(x) +#define setNT(x) c_setNT(x) + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Provide Access to Machine Status Word. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +IMPORT INT c_getPE IPT0(); +IMPORT INT c_getMP IPT0(); +IMPORT INT c_getEM IPT0(); +IMPORT INT c_getTS IPT0(); +IMPORT word c_getMSW IPT0(); + +#define getPE() c_getPE() +#define getMP() c_getMP() +#define getEM() c_getEM() +#define getTS() c_getTS() +#define getMSW() c_getMSW() + +#ifdef CPU_PRIVATE + +IMPORT void c_setPE IPT1(INT, val); +IMPORT void c_setMP IPT1(INT, val); +IMPORT void c_setEM IPT1(INT, val); +IMPORT void c_setTS IPT1(INT, val); +IMPORT void c_setMSW IPT1(word, val); + +#define setPE(x) c_setPE(x) +#define setMP(x) c_setMP(x) +#define setEM(x) c_setEM(x) +#define setTS(x) c_setTS(x) +#define setMSW(x) c_setMSW(x) + +#endif /* CPU_PRIVATE */ + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Provide Access to Descriptor Registers. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +IMPORT sys_addr c_getGDT_BASE IPT0(); +IMPORT sys_addr c_getIDT_BASE IPT0(); +IMPORT sys_addr c_getLDT_BASE IPT0(); +IMPORT sys_addr c_getTR_BASE IPT0(); +IMPORT word c_getGDT_LIMIT IPT0(); +IMPORT word c_getIDT_LIMIT IPT0(); +IMPORT word c_getLDT_LIMIT IPT0(); +IMPORT word c_getTR_LIMIT IPT0(); +IMPORT word c_getLDT_SELECTOR IPT0(); +IMPORT word c_getTR_SELECTOR IPT0(); + +#define getGDT_BASE() c_getGDT_BASE() +#define getIDT_BASE() c_getIDT_BASE() +#define getLDT_BASE() c_getLDT_BASE() +#define getTR_BASE() c_getTR_BASE() +#define getGDT_LIMIT() c_getGDT_LIMIT() +#define getIDT_LIMIT() c_getIDT_LIMIT() +#define getLDT_LIMIT() c_getLDT_LIMIT() +#define getTR_LIMIT() c_getTR_LIMIT() +#define getLDT_SELECTOR() c_getLDT_SELECTOR() +#define getTR_SELECTOR() c_getTR_SELECTOR() + +#ifdef CPU_PRIVATE + +IMPORT void c_setGDT_BASE IPT1(sys_addr, val); +IMPORT void c_setIDT_BASE IPT1(sys_addr, val); +IMPORT void c_setLDT_BASE IPT1(sys_addr, val); +IMPORT void c_setTR_BASE IPT1(sys_addr, val); +IMPORT void c_setGDT_LIMIT IPT1(word, val); +IMPORT void c_setIDT_LIMIT IPT1(word, val); +IMPORT void c_setLDT_LIMIT IPT1(word, val); +IMPORT void c_setTR_LIMIT IPT1(word, val); +IMPORT void c_setLDT_SELECTOR IPT1(word, val); +IMPORT void c_setTR_SELECTOR IPT1(word, val); + +#define setGDT_BASE(x) c_setGDT_BASE(x) +#define setIDT_BASE(x) c_setIDT_BASE(x) +#define setLDT_BASE(x) c_setLDT_BASE(x) +#define setTR_BASE(x) c_setTR_BASE(x) +#define setGDT_LIMIT(x) c_setGDT_LIMIT(x) +#define setIDT_LIMIT(x) c_setIDT_LIMIT(x) +#define setLDT_LIMIT(x) c_setLDT_LIMIT(x) +#define setTR_LIMIT(x) c_setTR_LIMIT(x) +#define setLDT_SELECTOR(x) c_setLDT_SELECTOR(x) +#define setTR_SELECTOR(x) c_setTR_SELECTOR(x) + +#endif /* CPU_PRIVATE */ + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Provide Access to Current Privilege Level. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#ifdef CPU_PRIVATE + +IMPORT INT c_getCPL IPT0(); +IMPORT VOID c_setCPL IPT1(INT, val); + +#define getCPL() c_getCPL() +#define setCPL(x) c_setCPL(x) + +#endif /* CPU_PRIVATE */ + +#endif /* CCPU_MAIN */ + +#endif /* CCPU */ + +#ifdef A3CPU + +/* + * Function imports... + */ + +/* + * cpu_init() - Initialises the 3.0 CPU. + */ + +IMPORT VOID a3_cpu_init(); + +/* + * cpu_interrupt() - Interrupts the 3.0 CPU. + */ +#ifdef SWITCHED_CPU +IMPORT VOID a3_cpu_interrupt IPT2(CPU_INT_TYPE, type, IU16, number); +#else +IMPORT VOID a3_cpu_interrupt(); +#endif + +/* + * cpu_simulate() - Performs INTEL CPU emulation. + */ +IMPORT VOID _asm_simulate(); + +IMPORT VOID a3_cpu_q_ev_set_count(); +IMPORT ULONG a3_cpu_q_ev_get_count(); + +#ifndef SWITCHED_CPU + +IMPORT ULONG a3_cpu_calc_q_ev_inst_for_time(); + +/* + * cpu_EOA_hook() - Resets the 3.0 CPU prior to running the next application. + */ +IMPORT VOID a3_cpu_EOA_hook(); + +/* + * cpu_terminate() - Closes down the CPU. + */ +IMPORT VOID a3_cpu_terminate(); + +IMPORT VOID C_garbage_collect_odd_based_selectors IFN0(); + +/* + * Intel register Access... + */ + +#ifdef NTVDM +IMPORT half_word getAL(); +IMPORT half_word getBL(); +IMPORT half_word getCL(); +IMPORT half_word getDL(); +IMPORT half_word getAH(); +IMPORT half_word getBH(); +IMPORT half_word getCH(); +IMPORT half_word getDH(); + +IMPORT word getAX(); +IMPORT word getBX(); +IMPORT word getCX(); +IMPORT word getDX(); +IMPORT word getSP(); +IMPORT word getBP(); +IMPORT word getSI(); +IMPORT word getDI(); + +IMPORT word getIP(); + +IMPORT word getCS(); +IMPORT word getDS(); +IMPORT word getES(); +IMPORT word getSS(); + +IMPORT word getAF(); +IMPORT word getCF(); +IMPORT word getDF(); +IMPORT word getIF(); +IMPORT word a3_getIOPL(); +IMPORT word a3_getNT(); +IMPORT word getOF(); +IMPORT word getPF(); +IMPORT word getSF(); +IMPORT word getTF(); +IMPORT word getZF(); + +IMPORT word a3_getSTATUS(); + +IMPORT word a3_getEM(); +IMPORT word a3_getMP(); +IMPORT word a3_getPE(); +IMPORT word a3_getTS(); + +IMPORT word getMSW(); + +IMPORT sys_addr a3_getGDT_BASE(); +IMPORT word a3_getGDT_LIMIT(); + +IMPORT sys_addr a3_getIDT_BASE(); +IMPORT word a3_getIDT_LIMIT(); + +IMPORT sys_addr a3_getLDT_BASE(); +IMPORT word a3_getLDT_LIMIT(); +IMPORT word a3_getLDT_SELECTOR(); + +IMPORT sys_addr a3_getTR_BASE(); +IMPORT word a3_getTR_LIMIT(); +IMPORT word a3_getTR_SELECTOR(); + +IMPORT VOID setAL(); +IMPORT VOID setCL(); +IMPORT VOID setDL(); +IMPORT VOID setBL(); +IMPORT VOID setAH(); +IMPORT VOID setCH(); +IMPORT VOID setDH(); +IMPORT VOID setBH(); + +IMPORT VOID setAX(); +IMPORT VOID setCX(); +IMPORT VOID setDX(); +IMPORT VOID setBX(); +IMPORT VOID setSP(); +IMPORT VOID setBP(); +IMPORT VOID setSI(); +IMPORT VOID setDI(); + +IMPORT VOID setIP(); + +IMPORT INT setES(); +IMPORT INT setCS(); +IMPORT INT setSS(); +IMPORT INT setDS(); + +IMPORT VOID setCF(); +IMPORT VOID setPF(); +IMPORT VOID setAF(); +IMPORT VOID setZF(); +IMPORT VOID setSF(); +IMPORT VOID setTF(); +IMPORT VOID setIF(); +IMPORT VOID setDF(); +IMPORT VOID setOF(); +IMPORT VOID a3_setIOPL(); +IMPORT VOID a3_setNT(); + + +#else +IMPORT half_word a3_getAL(); +IMPORT half_word a3_getBL(); +IMPORT half_word a3_getCL(); +IMPORT half_word a3_getDL(); +IMPORT half_word a3_getAH(); +IMPORT half_word a3_getBH(); +IMPORT half_word a3_getCH(); +IMPORT half_word a3_getDH(); + +IMPORT word a3_getAX(); +IMPORT word a3_getBX(); +IMPORT word a3_getCX(); +IMPORT word a3_getDX(); +IMPORT word a3_getSP(); +IMPORT word a3_getBP(); +IMPORT word a3_getSI(); +IMPORT word a3_getDI(); + +IMPORT word a3_getIP(); + +IMPORT word a3_getCS(); +IMPORT word a3_getDS(); +IMPORT word a3_getES(); +IMPORT word a3_getSS(); + +IMPORT word a3_getAF(); +IMPORT word a3_getCF(); +IMPORT word a3_getDF(); +IMPORT word a3_getIF(); +IMPORT word a3_getIOPL(); +IMPORT word a3_getNT(); +IMPORT word a3_getOF(); +IMPORT word a3_getPF(); +IMPORT word a3_getSF(); +IMPORT word a3_getTF(); +IMPORT word a3_getZF(); + +IMPORT word a3_getSTATUS(); + +IMPORT word a3_getEM(); +IMPORT word a3_getMP(); +IMPORT word a3_getPE(); +IMPORT word a3_getTS(); + +IMPORT word a3_getMSW(); + +IMPORT sys_addr a3_getGDT_BASE(); +IMPORT word a3_getGDT_LIMIT(); + +IMPORT sys_addr a3_getIDT_BASE(); +IMPORT word a3_getIDT_LIMIT(); + +IMPORT sys_addr a3_getLDT_BASE(); +IMPORT word a3_getLDT_LIMIT(); +IMPORT word a3_getLDT_SELECTOR(); + +IMPORT sys_addr a3_getTR_BASE(); +IMPORT word a3_getTR_LIMIT(); +IMPORT word a3_getTR_SELECTOR(); + +IMPORT VOID a3_setAL(); +IMPORT VOID a3_setCL(); +IMPORT VOID a3_setDL(); +IMPORT VOID a3_setBL(); +IMPORT VOID a3_setAH(); +IMPORT VOID a3_setCH(); +IMPORT VOID a3_setDH(); +IMPORT VOID a3_setBH(); + +IMPORT VOID a3_setAX(); +IMPORT VOID a3_setCX(); +IMPORT VOID a3_setDX(); +IMPORT VOID a3_setBX(); +IMPORT VOID a3_setSP(); +IMPORT VOID a3_setBP(); +IMPORT VOID a3_setSI(); +IMPORT VOID a3_setDI(); + +IMPORT VOID a3_setIP(); + +IMPORT INT a3_setES(); +IMPORT INT a3_setCS(); +IMPORT INT a3_setSS(); +IMPORT INT a3_setDS(); + +IMPORT VOID a3_setCF(); +IMPORT VOID a3_setPF(); +IMPORT VOID a3_setAF(); +IMPORT VOID a3_setZF(); +IMPORT VOID a3_setSF(); +IMPORT VOID a3_setTF(); +IMPORT VOID a3_setIF(); +IMPORT VOID a3_setDF(); +IMPORT VOID a3_setOF(); +IMPORT VOID a3_setIOPL(); +IMPORT VOID a3_setNT(); +#endif /* NTVDM */ + + +#ifdef CPU_PRIVATE + +IMPORT word a3_p_getCPL(); +IMPORT word a3_p_getES_SELECTOR(); +IMPORT sys_addr a3_p_getES_BASE(); +IMPORT word a3_p_getES_LIMIT(); +IMPORT half_word a3_p_getES_AR(); +IMPORT VOID a3_p_setES_SELECTOR(); +IMPORT VOID a3_p_setES_BASE(); +IMPORT VOID a3_p_setES_LIMIT(); +IMPORT VOID a3_p_setES_AR(); +IMPORT word a3_p_getCS_SELECTOR(); +IMPORT sys_addr a3_p_getCS_BASE(); +IMPORT word a3_p_getCS_LIMIT(); +IMPORT half_word a3_p_getCS_AR(); +IMPORT VOID a3_p_setCS_SELECTOR(); +IMPORT VOID a3_p_setCS_BASE(); +IMPORT VOID a3_p_setCS_LIMIT(); +IMPORT VOID a3_p_setCS_AR(); +IMPORT word a3_p_getDS_SELECTOR(); +IMPORT sys_addr a3_p_getDS_BASE(); +IMPORT word a3_p_getDS_LIMIT(); +IMPORT half_word a3_p_getDS_AR(); +IMPORT VOID a3_p_setDS_SELECTOR(); +IMPORT VOID a3_p_setDS_BASE(); +IMPORT VOID a3_p_setDS_LIMIT(); +IMPORT VOID a3_p_setDS_AR(); +IMPORT word a3_p_getSS_SELECTOR(); +IMPORT sys_addr a3_p_getSS_BASE(); +IMPORT word a3_p_getSS_LIMIT(); +IMPORT half_word a3_p_getSS_AR(); +IMPORT VOID a3_p_setSS_SELECTOR(); +IMPORT VOID a3_p_setSS_BASE(); +IMPORT VOID a3_p_setSS_LIMIT(); +IMPORT VOID a3_p_setSS_AR(); +IMPORT VOID a3_p_setPE(); +IMPORT VOID a3_p_setMP(); +IMPORT VOID a3_p_setEM(); +IMPORT VOID a3_p_setTS(); +IMPORT VOID a3_p_setMSW(); +IMPORT VOID a3_p_setCPL(); +IMPORT VOID a3_p_setGDT_BASE(); +IMPORT VOID a3_p_setGDT_LIMIT(); +IMPORT VOID a3_p_setIDT_BASE(); +IMPORT VOID a3_p_setIDT_LIMIT(); +IMPORT VOID a3_p_setLDT_SELECTOR(); +IMPORT VOID a3_p_setLDT_BASE(); +IMPORT VOID a3_p_setLDT_LIMIT(); +IMPORT VOID a3_p_setTR_SELECTOR(); +IMPORT VOID a3_p_setTR_BASE(); +IMPORT VOID a3_p_setTR_LIMIT(); + +#endif /* CPU_PRIVATE */ +#endif /* SWITCHED_CPU */ + + +/* + * Macro definitions... + */ + +#define cpu_init a3_cpu_init +#define cpu_simulate _asm_simulate +#define host_q_ev_set_count a3_cpu_q_ev_set_count +#define host_q_ev_get_count a3_cpu_q_ev_get_count +#ifndef host_calc_q_ev_inst_for_time +#define host_calc_q_ev_inst_for_time a3_cpu_calc_q_ev_inst_for_time +#endif /* host_calc_q_ev_inst_for_time */ +#define cpu_EOA_hook a3_cpu_EOA_hook +#define cpu_terminate a3_cpu_terminate + +/* + * Intel register Access... + */ + +#ifndef getAX + +#define cpu_interrupt a3_cpu_interrupt + +#ifdef NTVDM + +#define getIOPL a3_getIOPL +#define getNT a3_getNT +#define getSTATUS a3_getSTATUS +#define getEM a3_getEM +#define getMP a3_getMP +#define getPE a3_getPE +#define getTS a3_getTS +#define getGDT_BASE a3_getGDT_BASE +#define getGDT_LIMIT a3_getGDT_LIMIT +#define getIDT_BASE a3_getIDT_BASE +#define getIDT_LIMIT a3_getIDT_LIMIT +#define getLDT_BASE a3_getLDT_BASE +#define getLDT_LIMIT a3_getLDT_LIMIT +#define getLDT_SELECTOR a3_getLDT_SELECTOR +#define getTR_BASE a3_getTR_BASE +#define getTR_LIMIT a3_getTR_LIMIT +#define getTR_SELECTOR a3_getTR_SELECTOR +#define setIOPL a3_setIOPL +#define setNT a3_setNT + + +#else + +#define getAL a3_getAL +#define getBL a3_getBL +#define getCL a3_getCL +#define getDL a3_getDL +#define getAH a3_getAH +#define getBH a3_getBH +#define getCH a3_getCH +#define getDH a3_getDH +#define getAX a3_getAX +#define getBX a3_getBX +#define getCX a3_getCX +#define getDX a3_getDX +#define getSP a3_getSP +#define getBP a3_getBP +#define getSI a3_getSI +#define getDI a3_getDI +#define getIP a3_getIP +#define getCS a3_getCS +#define getDS a3_getDS +#define getES a3_getES +#define getSS a3_getSS +#define getAF a3_getAF +#define getCF a3_getCF +#define getDF a3_getDF +#define getIF a3_getIF +#define getIOPL a3_getIOPL +#define getNT a3_getNT +#define getOF a3_getOF +#define getPF a3_getPF +#define getSF a3_getSF +#define getTF a3_getTF +#define getZF a3_getZF +#define getSTATUS a3_getSTATUS +#define getEM a3_getEM +#define getMP a3_getMP +#define getPE a3_getPE +#define getTS a3_getTS +#define getMSW a3_getMSW +#define getGDT_BASE a3_getGDT_BASE +#define getGDT_LIMIT a3_getGDT_LIMIT +#define getIDT_BASE a3_getIDT_BASE +#define getIDT_LIMIT a3_getIDT_LIMIT +#define getLDT_BASE a3_getLDT_BASE +#define getLDT_LIMIT a3_getLDT_LIMIT +#define getLDT_SELECTOR a3_getLDT_SELECTOR +#define getTR_BASE a3_getTR_BASE +#define getTR_LIMIT a3_getTR_LIMIT +#define getTR_SELECTOR a3_getTR_SELECTOR +#define setAL a3_setAL +#define setCL a3_setCL +#define setDL a3_setDL +#define setBL a3_setBL +#define setAH a3_setAH +#define setCH a3_setCH +#define setDH a3_setDH +#define setBH a3_setBH +#define setAX a3_setAX +#define setCX a3_setCX +#define setDX a3_setDX +#define setBX a3_setBX +#define setSP a3_setSP +#define setBP a3_setBP +#define setSI a3_setSI +#define setDI a3_setDI +#define setIP a3_setIP +#define setES a3_setES +#define setCS a3_setCS +#define setSS a3_setSS +#define setDS a3_setDS +#define setCF a3_setCF +#define setPF a3_setPF +#define setAF a3_setAF +#define setZF a3_setZF +#define setSF a3_setSF +#define setTF a3_setTF +#define setIF a3_setIF +#define setDF a3_setDF +#define setOF a3_setOF +#define setIOPL a3_setIOPL +#define setNT a3_setNT + +#endif /* NTVDM */ + +#endif /* getAX */ + +#ifdef CPU_PRIVATE + +#define getCPL a3_p_getCPL +#define getES_SELECTOR a3_p_getES_SELECTOR +#define getCS_SELECTOR a3_p_getCS_SELECTOR +#define getSS_SELECTOR a3_p_getSS_SELECTOR +#define getDS_SELECTOR a3_p_getDS_SELECTOR +#define getES_BASE a3_p_getES_BASE +#define getCS_BASE a3_p_getCS_BASE +#define getDS_BASE a3_p_getDS_BASE +#define getSS_BASE a3_p_getSS_BASE +#define getES_LIMIT a3_p_getES_LIMIT +#define getCS_LIMIT a3_p_getCS_LIMIT +#define getDS_LIMIT a3_p_getDS_LIMIT +#define getSS_LIMIT a3_p_getSS_LIMIT +#define getES_AR a3_p_getES_AR +#define getCS_AR a3_p_getCS_AR +#define getDS_AR a3_p_getDS_AR +#define getSS_AR a3_p_getSS_AR +#define setES_SELECTOR a3_p_setES_SELECTOR +#define setCS_SELECTOR a3_p_setCS_SELECTOR +#define setSS_SELECTOR a3_p_setSS_SELECTOR +#define setDS_SELECTOR a3_p_setDS_SELECTOR +#define setES_BASE a3_p_setES_BASE +#define setCS_BASE a3_p_setCS_BASE +#define setDS_BASE a3_p_setDS_BASE +#define setSS_BASE a3_p_setSS_BASE +#define setES_LIMIT a3_p_setES_LIMIT +#define setCS_LIMIT a3_p_setCS_LIMIT +#define setDS_LIMIT a3_p_setDS_LIMIT +#define setSS_LIMIT a3_p_setSS_LIMIT +#define setES_AR a3_p_setES_AR +#define setCS_AR a3_p_setCS_AR +#define setDS_AR a3_p_setDS_AR +#define setSS_AR a3_p_setSS_AR +#define setPE a3_p_setPE +#define setMP a3_p_setMP +#define setEM a3_p_setEM +#define setTS a3_p_setTS +#define setMSW a3_p_setMSW +#define setCPL a3_p_setCPL +#define setGDT_BASE a3_p_setGDT_BASE +#define setGDT_LIMIT a3_p_setGDT_LIMIT +#define setIDT_BASE a3_p_setIDT_BASE +#define setIDT_LIMIT a3_p_setIDT_LIMIT +#define setLDT_SELECTOR a3_p_setLDT_SELECTOR +#define setLDT_BASE a3_p_setLDT_BASE +#define setLDT_LIMIT a3_p_setLDT_LIMIT +#define setTR_SELECTOR a3_p_setTR_SELECTOR +#define setTR_BASE a3_p_setTR_BASE +#define setTR_LIMIT a3_p_setTR_LIMIT + +#endif /* CPU_PRIVATE */ + +#endif /* A3CPU */ + +#else /* CPU_30_STYLE */ + +/* + * CPU Data Area + * These externs are given before host_cpu.h is included so that the + * variables may be gathreed into a structure and the externs overridden +* by #defines in host_cpu.h + */ + +extern word protected_mode; /* =0 no proteced mode warning given + =1 proteced mode warning given */ +extern word cpu_interrupt_map; +extern half_word cpu_int_translate[]; +extern word cpu_int_delay; +extern half_word ica_lock; +extern void (*(jump_ptrs[]))(); +extern void (*(b_write_ptrs[]))(); +extern void (*(w_write_ptrs[]))(); +extern void (*(b_fill_ptrs[]))(); +extern void (*(w_fill_ptrs[]))(); +#ifdef EGATEST +extern void (*(b_fwd_move_ptrs[]))(); +extern void (*(w_fwd_move_ptrs[]))(); +extern void (*(b_bwd_move_ptrs[]))(); +extern void (*(w_bwd_move_ptrs[]))(); +#else +extern void (*(b_move_ptrs[]))(); +extern void (*(w_move_ptrs[]))(); +#endif /* EGATEST */ +extern half_word *haddr_of_src_string; + +/* + * ============================================================================ + * Structure/Data definitions + * ============================================================================ + */ + +/* + * The cpu opcode sliding frame + */ + +#ifdef BACK_M +typedef struct +{ + half_word FOURTH_BYTE; + half_word THIRD_BYTE; + half_word SECOND_BYTE; + half_word OPCODE; +} OPCODE_FRAME; + +typedef struct +{ + signed_char FOURTH_BYTE; + signed_char THIRD_BYTE; + signed_char SECOND_BYTE; + signed_char OPCODE; +} SIGNED_OPCODE_FRAME; +#else +typedef struct +{ + half_word OPCODE; + half_word SECOND_BYTE; + half_word THIRD_BYTE; + half_word FOURTH_BYTE; +} OPCODE_FRAME; + +typedef struct +{ + signed_char OPCODE; + signed_char SECOND_BYTE; + signed_char THIRD_BYTE; + signed_char FOURTH_BYTE; +} SIGNED_OPCODE_FRAME; +#endif /* BACK_M */ + +/* + * The new ICA uses the following for H/W ints: + */ + +#define CPU_HW_INT 0 +#define CPU_HW_INT_MASK (1 << CPU_HW_INT) + +/* + * CPU software interrupt definitions + */ + +#define CPU_SW_INT 8 +#define CPU_SW_INT_MASK (1 << CPU_SW_INT) + +/* + * ============================================================================ + * External declarations and macros + * ============================================================================ + */ + +extern OPCODE_FRAME *opcode_frame; /* C CPU and dasm only */ + +/* + * External declarations for the 80286 registers + */ + +extern reg A; /* Accumulator */ +extern reg B; /* Base */ +extern reg C; /* Count */ +extern reg D; /* Data */ +extern reg SP; /* Stack Pointer */ +extern reg BP; /* Base pointer */ +extern reg SI; /* Source Index */ +extern reg DI; /* Destination Index */ +extern reg IP; /* Instruction Pointer */ +extern reg CS; /* Code Segment */ +extern reg DS; /* Data Segment */ +extern reg SS; /* Stack Segment */ +extern reg ES; /* Extra Segment */ + +/* + * External function declarations. These may be defined to other things. + */ + +#ifndef host_simulate +extern void host_simulate IPT0(); +#endif /* host_simulate */ + +#ifndef host_cpu_reset +extern void host_cpu_reset IPT0(); +#endif /* host_cpu_reset */ + +#ifndef host_cpu_init +extern void host_cpu_init IPT0(); +#endif /* host_cpu_init */ + +#ifndef host_cpu_interrupt +extern void host_cpu_interrupt IPT0(); +#endif /* host_cpu_interrupt */ + +/* + * Definition of Descriptor Table + */ + +#ifdef BIGEND + +union sixteenbits +{ + word X; + + struct + { + half_word lower; + half_word upper; + } word; +}; + +#endif /* BIGEND */ + +#ifdef LITTLEND + +union sixteenbits +{ + word X; + + struct + { + half_word upper; + half_word lower; + } word; +}; + +#endif /* LITTLEND */ + +struct DESC_TABLE +{ + union sixteenbits misc; + union sixteenbits base; + union sixteenbits limit; +}; + +#define CPU_SIGALRM_EXCEPTION 15 /* SIGALRM signal +*/ +#define CPU_SIGALRM_EXCEPTION_MASK (1 << CPU_SIGALRM_EXCEPTION) + +#define CPU_TRAP_EXCEPTION 11 /* TRAP FLAG +*/ +#define CPU_TRAP_EXCEPTION_MASK (1 << CPU_TRAP_EXCEPTION) + +#define CPU_YODA_EXCEPTION 13 /* YODA FLAG +*/ +#define CPU_YODA_EXCEPTION_MASK (1 << CPU_YODA_EXCEPTION) + +#define CPU_SIGIO_EXCEPTION 14 /* SIGIO FLAG +*/ +#define CPU_SIGIO_EXCEPTION_MASK (1 << CPU_SIGIO_EXCEPTION) + +#define CPU_RESET_EXCEPTION 12 /* RESET FLAG +*/ +#define CPU_RESET_EXCEPTION_MASK (1 << CPU_RESET_EXCEPTION) + +#ifdef CCPU + +IMPORT void sw_host_simulate IPT0(); +IMPORT int selector_outside_table IPT2(word, selector, sys_addr *, descr_addr); +IMPORT void cpu_init IPT0(); + +/* + Define descriptor 'super' types. + */ +#define INVALID 0x00 +#define AVAILABLE_TSS 0x01 +#define LDT_SEGMENT 0x02 +#define BUSY_TSS 0x03 +#define CALL_GATE 0x04 +#define TASK_GATE 0x05 +#define INTERRUPT_GATE 0x06 +#define TRAP_GATE 0x07 +#define EXPANDUP_READONLY_DATA 0x11 +#define EXPANDUP_WRITEABLE_DATA 0x13 +#define EXPANDDOWN_READONLY_DATA 0x15 +#define EXPANDDOWN_WRITEABLE_DATA 0x17 +#define NONCONFORM_NOREAD_CODE 0x19 +#define NONCONFORM_READABLE_CODE 0x1b +#define CONFORM_NOREAD_CODE 0x1d +#define CONFORM_READABLE_CODE 0x1f + +/* Code Segment (Private) */ +extern half_word CS_AR; +extern sys_addr CS_base; +extern word CS_limit; + +/* Data Segment (Private) */ +extern half_word DS_AR; +extern sys_addr DS_base; +extern word DS_limit; + +/* Stack Segment (Private) */ +extern half_word SS_AR; +extern sys_addr SS_base; +extern word SS_limit; + +/* Extra Segment (Private) */ +extern half_word ES_AR; +extern sys_addr ES_base; +extern word ES_limit; + +/* Local Descriptor Table Register (Private) */ +extern sys_addr LDTR_base; /* Base Address */ +extern word LDTR_limit; /* Segment 'size' */ + +/* Task Register (Private) */ +extern sys_addr TR_base; /* Base Address */ +extern word TR_limit; /* Segment 'size' */ + +/* Interrupt status, defines any abnormal processing */ +extern int doing_contributory; +extern int doing_double_fault; + +/* HOST - decoded access rights */ +extern int ALC_CS; +extern int ALC_DS; +extern int ALC_ES; +extern int ALC_SS; + +#define X_REAL 0 +#define C_UPRO 1 +#define C_DNRO 6 +#define C_PROT 2 +#define C_UPRW 7 +#define C_DNRW 8 +#define S_UP 3 +#define S_DOWN 4 +#define S_BAD 5 +#define D_CODE 1 +#define D_UPRO 1 +#define D_DNRO 6 +#define D_UPRW 7 +#define D_DNRW 8 +#define D_BAD 2 + +/* + * + ******************************************************************* + * The 'C' cpu register access functions. * + ******************************************************************* + * + */ + +#define getCS_SELECTOR() CS.X +#define getDS_SELECTOR() DS.X +#define getSS_SELECTOR() SS.X +#define getES_SELECTOR() ES.X + +#define getCS_AR() CS_AR +#define getDS_AR() DS_AR +#define getSS_AR() SS_AR +#define getES_AR() ES_AR + +#define getCS_BASE() CS_base +#define getDS_BASE() DS_base +#define getSS_BASE() SS_base +#define getES_BASE() ES_base + +#define getCS_LIMIT() CS_limit +#define getDS_LIMIT() DS_limit +#define getSS_LIMIT() SS_limit +#define getES_LIMIT() ES_limit + +#define getLDT_BASE() LDTR_base +#define getLDT_LIMIT() LDTR_limit + +#define getTR_BASE() TR_base +#define getTR_LIMIT() TR_limit + +#define setCS_SELECTOR(val) CS.X = val +#define setDS_SELECTOR(val) DS.X = val +#define setSS_SELECTOR(val) SS.X = val +#define setES_SELECTOR(val) ES.X = val + +#define setCS_AR(val) CS_AR = val +#define setDS_AR(val) DS_AR = val +#define setSS_AR(val) SS_AR = val +#define setES_AR(val) ES_AR = val + +#define setCS_BASE(val) CS_base = val +#define setDS_BASE(val) DS_base = val +#define setSS_BASE(val) SS_base = val +#define setES_BASE(val) ES_base = val + +#define setCS_LIMIT(val) CS_limit = val +#define setDS_LIMIT(val) DS_limit = val +#define setSS_LIMIT(val) SS_limit = val +#define setES_LIMIT(val) ES_limit = val + +#define setLDT_BASE(val) LDTR_base = val +#define setLDT_LIMIT(val) LDTR_limit = val + +#define setTR_BASE(val) TR_base = val +#define setTR_LIMIT(val) TR_limit = val +/* + * The Machine Status Word structure + */ +typedef struct +{ + unsigned int :16; + unsigned int reserved:12; + unsigned int TS:1; + unsigned int EM:1; + unsigned int MP:1; + unsigned int PE:1; +} mreg; + +extern sys_addr address_line_mask; + +extern int CPL; /* Current Privilege Level */ + +/* Global Descriptor Table Register */ +extern sys_addr GDTR_base; /* Base Address */ +extern word GDTR_limit; /* Segment 'size' */ + +/* Interrupt Descriptor Table Register */ +extern sys_addr IDTR_base; /* Base Address */ +extern word IDTR_limit; /* Segment 'size' */ + +/* Local Descriptor Table Register */ +extern reg LDTR; /* Selector */ + +/* Task Register */ +extern reg TR; /* Selector */ + +extern mreg MSW; /* Machine Status Word */ + +extern int STATUS_CF; +extern int STATUS_SF; +extern int STATUS_ZF; +extern int STATUS_AF; +extern int STATUS_OF; +extern int STATUS_PF; +extern int STATUS_TF; +extern int STATUS_IF; +extern int STATUS_DF; +extern int STATUS_NT; +extern int STATUS_IOPL; + +/* +**========================================================================== +** The CCPU basic register access macros. These may be overridden in +** host-cpu.h. +**========================================================================== +*/ + +#ifndef getAX + +/* READ functions */ +#define getAX() (A.X) +#define getAH() (A.byte.high) +#define getAL() (A.byte.low) +#define getBX() (B.X) +#define getBH() (B.byte.high) +#define getBL() (B.byte.low) +#define getCX() (C.X) +#define getCH() (C.byte.high) +#define getCL() (C.byte.low) +#define getDX() (D.X) +#define getDH() (D.byte.high) +#define getDL() (D.byte.low) +#define getSP() (SP.X) +#define getBP() (BP.X) +#define getSI() (SI.X) +#define getDI() (DI.X) +#define getIP() (IP.X) +#define getCS() (CS.X) +#define getDS() (DS.X) +#define getES() (ES.X) +#define getSS() (SS.X) +#define getMSW() (m_s_w) +#define getDF() (STATUS_DF) +#define getIF() (STATUS_IF) +#define getTF() (STATUS_TF) +#define getPF() (STATUS_PF) +#define getAF() (STATUS_AF) +#define getSF() (STATUS_SF) +#define getZF() (STATUS_ZF) +#define getOF() (STATUS_OF) +#define getCF() (STATUS_CF) + +#define getCPL() (CPL) +#define getGDT_BASE() (GDTR_base) +#define getGDT_LIMIT() (GDTR_limit) +#define getIDT_BASE() (IDTR_base) +#define getIDT_LIMIT() (IDTR_limit) +#define getLDT_SELECTOR() (LDTR.X) +#define getTR_SELECTOR() (TR.X) +#define getMSW_reserved() (MSW.reserved) +#define getTS() (MSW.TS) +#define getEM() (MSW.EM) +#define getMP() (MSW.MP) +#define getPE() (MSW.PE) +#define getNT() (STATUS_NT) +#define getIOPL() (STATUS_IOPL) +#define getSTATUS() (getCF() | \ + getOF() << 11 | \ + getZF() << 6 | \ + getSF() << 7 | \ + getAF() << 4 | \ + getPF() << 2 | \ + getTF() << 8 | \ + getIF() << 9 | \ + getDF() << 10 | \ + getIOPL() << 12 | \ + getNT() << 14) + +extern ext_load_CS(); +extern ext_load_DS(); +extern ext_load_ES(); +extern ext_load_SS(); + +/* WRITE functions */ +#define setAX(val) (A.X = (val)) +#define setAH(val) (A.byte.high = (val)) +#define setAL(val) (A.byte.low = (val)) +#define setBX(val) (B.X = (val)) +#define setBH(val) (B.byte.high = (val)) +#define setBL(val) (B.byte.low = (val)) +#define setCX(val) (C.X = (val)) +#define setCH(val) (C.byte.high = (val)) +#define setCL(val) (C.byte.low = (val)) +#define setDX(val) (D.X = (val)) +#define setDH(val) (D.byte.high = (val)) +#define setDL(val) (D.byte.low = (val)) +#define setSP(val) (SP.X = (val)) +#define setBP(val) (BP.X = (val)) +#define setSI(val) (SI.X = (val)) +#define setDI(val) (DI.X = (val)) +#define setIP(val) (IP.X = (val)) +#define setCS(val) ext_load_CS (val) +#define setDS(val) ext_load_DS (val) +#define setES(val) ext_load_ES (val) +#define setSS(val) ext_load_SS (val) +#define setMSW(val) (m_s_w = (val)) +#define setDF(val) (STATUS_DF = (val)) +#define setIF(val) (STATUS_IF = (val)) +#define setTF(val) (STATUS_TF = (val)) +#define setPF(val) (STATUS_PF = (val)) +#define setAF(val) (STATUS_AF = (val)) +#define setSF(val) (STATUS_SF = (val)) +#define setZF(val) (STATUS_ZF = (val)) +#define setOF(val) (STATUS_OF = (val)) +#define setCF(val) (STATUS_CF = (val)) + +#define setCPL(val) (CPL = (val)) +#define setGDT_BASE(val) (GDTR_base = (val)) +#define setGDT_LIMIT(val) (GDTR_limit = (val)) +#define setIDT_BASE(val) (IDTR_base = (val)) +#define setIDT_LIMIT(val) (IDTR_limit = (val)) +#define setLDT_SELECTOR(val) (LDTR.X = (val)) +#define setTR_SELECTOR(val) (TR.X = (val)) +#define setMSW_reserved(val) (MSW.reserved = (val)) +#define setTS(val) (MSW.TS = (val)) +#define setEM(val) (MSW.EM = (val)) +#define setMP(val) (MSW.MP = (val)) +#define setPE(val) (MSW.PE = (val)) +#define setNT(val) (STATUS_NT = (val)) +#define setIOPL(val) (STATUS_IOPL = (val)) + +#endif /* getAX - default CCPU register access macros */ + +#endif /* CCPU */ + +#endif /* CPU_30_STYLE */ +#endif /* NTVDM && MONITOR */ diff --git a/private/mvdm/softpc.new/base/inc/cpu2.h b/private/mvdm/softpc.new/base/inc/cpu2.h new file mode 100644 index 000000000..3a864a080 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/cpu2.h @@ -0,0 +1,557 @@ + +/* + * SoftPC Revision 2.0 + * + * Title : Definitions for the CPU + * + * Description : Structures, macros and definitions for access to the + * CPU registers + * + * Author : Henry Nash + * + * Notes : This file should be portable - but includes a file + * host_cpu.h which contains machine specific definitions + * of CPU register mappings etc. + */ + +/* SccsID[]="@(#)cpu2.h 1.3 12/22/93 Copyright Insignia Solutions Ltd."; */ + +#include "host_cpu.h" + +IMPORT VOID host_set_hw_int IPT0(); +IMPORT VOID host_clear_hw_int IPT0(); + +/* + * CPU Data Area + * These externs are given before host_cpu.h is included so that the + * variables may be gathreed into a structure and the externs overridden +* by #defines in host_cpu.h + */ + +extern word protected_mode; /* =0 no proteced mode warning given + =1 proteced mode warning given */ +extern word cpu_interrupt_map; +extern half_word cpu_int_translate[]; +extern word cpu_int_delay; +extern half_word ica_lock; +extern void (*(jump_ptrs[]))(); +extern void (*(b_write_ptrs[]))(); +extern void (*(w_write_ptrs[]))(); +extern void (*(b_fill_ptrs[]))(); +extern void (*(w_fill_ptrs[]))(); +#ifdef EGATEST +extern void (*(b_fwd_move_ptrs[]))(); +extern void (*(w_fwd_move_ptrs[]))(); +extern void (*(b_bwd_move_ptrs[]))(); +extern void (*(w_bwd_move_ptrs[]))(); +#else +extern void (*(b_move_ptrs[]))(); +extern void (*(w_move_ptrs[]))(); +#endif /* EGATEST */ +extern half_word *haddr_of_src_string; + +/* + * ============================================================================ + * Structure/Data definitions + * ============================================================================ + */ + +/* + * The cpu opcode sliding frame + */ + +#ifdef BACK_M +typedef struct +{ + half_word FOURTH_BYTE; + half_word THIRD_BYTE; + half_word SECOND_BYTE; + half_word OPCODE; +} OPCODE_FRAME; + +typedef struct +{ + signed_char FOURTH_BYTE; + signed_char THIRD_BYTE; + signed_char SECOND_BYTE; + signed_char OPCODE; +} SIGNED_OPCODE_FRAME; +#else +typedef struct +{ + half_word OPCODE; + half_word SECOND_BYTE; + half_word THIRD_BYTE; + half_word FOURTH_BYTE; +} OPCODE_FRAME; + +typedef struct +{ + signed_char OPCODE; + signed_char SECOND_BYTE; + signed_char THIRD_BYTE; + signed_char FOURTH_BYTE; +} SIGNED_OPCODE_FRAME; +#endif /* BACK_M */ + +/* + * The new ICA uses the following for H/W ints: + */ + +#define CPU_HW_INT 0 +#define CPU_HW_INT_MASK (1 << CPU_HW_INT) + +/* + * CPU software interrupt definitions + */ + +#define CPU_SW_INT 8 +#define CPU_SW_INT_MASK (1 << CPU_SW_INT) + +/* + * ============================================================================ + * External declarations and macros + * ============================================================================ + */ + +extern OPCODE_FRAME *opcode_frame; /* C CPU and dasm only */ + +/* + * External declarations for the 80286 registers + */ + +extern reg A; /* Accumulator */ +extern reg B; /* Base */ +extern reg C; /* Count */ +extern reg D; /* Data */ +extern reg SP; /* Stack Pointer */ +extern reg BP; /* Base pointer */ +extern reg SI; /* Source Index */ +extern reg DI; /* Destination Index */ +extern reg IP; /* Instruction Pointer */ +extern reg CS; /* Code Segment */ +extern reg DS; /* Data Segment */ +extern reg SS; /* Stack Segment */ +extern reg ES; /* Extra Segment */ + +/* + * External function declarations. These may be defined to other things. + */ + +#ifndef host_simulate +extern void host_simulate IPT0(); +#endif /* host_simulate */ + +#ifndef host_cpu_reset +extern void host_cpu_reset IPT0(); +#endif /* host_cpu_reset */ + +#ifndef host_cpu_init +extern void host_cpu_init IPT0(); +#endif /* host_cpu_init */ + +#ifndef host_cpu_interrupt +extern void host_cpu_interrupt IPT0(); +#endif /* host_cpu_interrupt */ + +/* + * Definition of Descriptor Table + */ + +#ifdef BIGEND + +union sixteenbits +{ + word X; + + struct + { + half_word lower; + half_word upper; + } word; +}; + +#endif /* BIGEND */ + +#ifdef LITTLEND + +union sixteenbits +{ + word X; + + struct + { + half_word upper; + half_word lower; + } word; +}; + +#endif /* LITTLEND */ + +struct DESC_TABLE +{ + union sixteenbits misc; + union sixteenbits base; + union sixteenbits limit; +}; + +#define CPU_SIGALRM_EXCEPTION 15 /* SIGALRM signal +*/ +#define CPU_SIGALRM_EXCEPTION_MASK (1 << CPU_SIGALRM_EXCEPTION) + +#define CPU_TRAP_EXCEPTION 11 /* TRAP FLAG +*/ +#define CPU_TRAP_EXCEPTION_MASK (1 << CPU_TRAP_EXCEPTION) + +#define CPU_YODA_EXCEPTION 13 /* YODA FLAG +*/ +#define CPU_YODA_EXCEPTION_MASK (1 << CPU_YODA_EXCEPTION) + +#define CPU_SIGIO_EXCEPTION 14 /* SIGIO FLAG +*/ +#define CPU_SIGIO_EXCEPTION_MASK (1 << CPU_SIGIO_EXCEPTION) + +#define CPU_RESET_EXCEPTION 12 /* RESET FLAG +*/ +#define CPU_RESET_EXCEPTION_MASK (1 << CPU_RESET_EXCEPTION) + +#ifdef CCPU + +IMPORT void sw_host_simulate IPT0(); +IMPORT int selector_outside_table IPT2(word, selector, sys_addr *, descr_addr); +IMPORT void cpu_init IPT0(); + +/* + Define descriptor 'super' types. + */ +#define INVALID 0x00 +#define AVAILABLE_TSS 0x01 +#define LDT_SEGMENT 0x02 +#define BUSY_TSS 0x03 +#define CALL_GATE 0x04 +#define TASK_GATE 0x05 +#define INTERRUPT_GATE 0x06 +#define TRAP_GATE 0x07 +#define EXPANDUP_READONLY_DATA 0x11 +#define EXPANDUP_WRITEABLE_DATA 0x13 +#define EXPANDDOWN_READONLY_DATA 0x15 +#define EXPANDDOWN_WRITEABLE_DATA 0x17 +#define NONCONFORM_NOREAD_CODE 0x19 +#define NONCONFORM_READABLE_CODE 0x1b +#define CONFORM_NOREAD_CODE 0x1d +#define CONFORM_READABLE_CODE 0x1f + +/* Code Segment (Private) */ +extern half_word CS_AR; +extern sys_addr CS_base; +extern word CS_limit; + +/* Data Segment (Private) */ +extern half_word DS_AR; +extern sys_addr DS_base; +extern word DS_limit; + +/* Stack Segment (Private) */ +extern half_word SS_AR; +extern sys_addr SS_base; +extern word SS_limit; + +/* Extra Segment (Private) */ +extern half_word ES_AR; +extern sys_addr ES_base; +extern word ES_limit; + +/* Local Descriptor Table Register (Private) */ +extern sys_addr LDTR_base; /* Base Address */ +extern word LDTR_limit; /* Segment 'size' */ + +/* Task Register (Private) */ +extern sys_addr TR_base; /* Base Address */ +extern word TR_limit; /* Segment 'size' */ + +/* Interrupt status, defines any abnormal processing */ +extern int doing_contributory; +extern int doing_double_fault; + +/* HOST - decoded access rights */ +extern int ALC_CS; +extern int ALC_DS; +extern int ALC_ES; +extern int ALC_SS; + +#define X_REAL 0 +#define C_UPRO 1 +#define C_DNRO 6 +#define C_PROT 2 +#define C_UPRW 7 +#define C_DNRW 8 +#define S_UP 3 +#define S_DOWN 4 +#define S_BAD 5 +#define D_CODE 1 +#define D_UPRO 1 +#define D_DNRO 6 +#define D_UPRW 7 +#define D_DNRW 8 +#define D_BAD 2 + +/* + * + ******************************************************************* + * The 'C' cpu register access functions. * + ******************************************************************* + * + */ + +#define getCS_SELECTOR() CS.X +#define getDS_SELECTOR() DS.X +#define getSS_SELECTOR() SS.X +#define getES_SELECTOR() ES.X + +#define getCS_AR() CS_AR +#define getDS_AR() DS_AR +#define getSS_AR() SS_AR +#define getES_AR() ES_AR + +#define getCS_BASE() CS_base +#define getDS_BASE() DS_base +#define getSS_BASE() SS_base +#define getES_BASE() ES_base + +#define getCS_LIMIT() CS_limit +#define getDS_LIMIT() DS_limit +#define getSS_LIMIT() SS_limit +#define getES_LIMIT() ES_limit + +#define getLDT_BASE() LDTR_base +#define getLDT_LIMIT() LDTR_limit + +#define getTR_BASE() TR_base +#define getTR_LIMIT() TR_limit + +#define setCS_SELECTOR(val) CS.X = val +#define setDS_SELECTOR(val) DS.X = val +#define setSS_SELECTOR(val) SS.X = val +#define setES_SELECTOR(val) ES.X = val + +#define setCS_AR(val) CS_AR = val +#define setDS_AR(val) DS_AR = val +#define setSS_AR(val) SS_AR = val +#define setES_AR(val) ES_AR = val + +#define setCS_BASE(val) CS_base = val +#define setDS_BASE(val) DS_base = val +#define setSS_BASE(val) SS_base = val +#define setES_BASE(val) ES_base = val + +#define setCS_LIMIT(val) CS_limit = val +#define setDS_LIMIT(val) DS_limit = val +#define setSS_LIMIT(val) SS_limit = val +#define setES_LIMIT(val) ES_limit = val + +#define setLDT_BASE(val) LDTR_base = val +#define setLDT_LIMIT(val) LDTR_limit = val + +#define setTR_BASE(val) TR_base = val +#define setTR_LIMIT(val) TR_limit = val +/* + * The Machine Status Word structure + */ +typedef struct +{ + unsigned int :16; + unsigned int reserved:12; + unsigned int TS:1; + unsigned int EM:1; + unsigned int MP:1; + unsigned int PE:1; +} mreg; + +extern sys_addr address_line_mask; + +extern int CPL; /* Current Privilege Level */ + +/* Global Descriptor Table Register */ +extern sys_addr GDTR_base; /* Base Address */ +extern word GDTR_limit; /* Segment 'size' */ + +/* Interrupt Descriptor Table Register */ +extern sys_addr IDTR_base; /* Base Address */ +extern word IDTR_limit; /* Segment 'size' */ + +/* Local Descriptor Table Register */ +extern reg LDTR; /* Selector */ + +/* Task Register */ +extern reg TR; /* Selector */ + +extern mreg MSW; /* Machine Status Word */ + +extern int STATUS_CF; +extern int STATUS_SF; +extern int STATUS_ZF; +extern int STATUS_AF; +extern int STATUS_OF; +extern int STATUS_PF; +extern int STATUS_TF; +extern int STATUS_IF; +extern int STATUS_DF; +extern int STATUS_NT; +extern int STATUS_IOPL; + +/* +**========================================================================== +** The CCPU basic register access macros. These may be overridden in +** host-cpu.h. +**========================================================================== +*/ + +#ifndef getAX + +/* READ functions */ +#define getAX() (A.X) +#define getAH() (A.byte.high) +#define getAL() (A.byte.low) +#define getBX() (B.X) +#define getBH() (B.byte.high) +#define getBL() (B.byte.low) +#define getCX() (C.X) +#define getCH() (C.byte.high) +#define getCL() (C.byte.low) +#define getDX() (D.X) +#define getDH() (D.byte.high) +#define getDL() (D.byte.low) +#define getSP() (SP.X) +#define getBP() (BP.X) +#define getSI() (SI.X) +#define getDI() (DI.X) +#define getIP() (IP.X) +#define getCS() (CS.X) +#define getDS() (DS.X) +#define getES() (ES.X) +#define getSS() (SS.X) +#define getMSW() (m_s_w) +#define getDF() (STATUS_DF) +#define getIF() (STATUS_IF) +#define getTF() (STATUS_TF) +#define getPF() (STATUS_PF) +#define getAF() (STATUS_AF) +#define getSF() (STATUS_SF) +#define getZF() (STATUS_ZF) +#define getOF() (STATUS_OF) +#define getCF() (STATUS_CF) + +#define getCPL() (CPL) +#define getGDT_BASE() (GDTR_base) +#define getGDT_LIMIT() (GDTR_limit) +#define getIDT_BASE() (IDTR_base) +#define getIDT_LIMIT() (IDTR_limit) +#define getLDT_SELECTOR() (LDTR.X) +#define getTR_SELECTOR() (TR.X) +#define getMSW_reserved() (MSW.reserved) +#define getTS() (MSW.TS) +#define getEM() (MSW.EM) +#define getMP() (MSW.MP) +#define getPE() (MSW.PE) +#define getNT() (STATUS_NT) +#define getIOPL() (STATUS_IOPL) +#define getSTATUS() (getCF() | \ + getOF() << 11 | \ + getZF() << 6 | \ + getSF() << 7 | \ + getAF() << 4 | \ + getPF() << 2 | \ + getTF() << 8 | \ + getIF() << 9 | \ + getDF() << 10 | \ + getIOPL() << 12 | \ + getNT() << 14) + +extern ext_load_CS(); +extern ext_load_DS(); +extern ext_load_ES(); +extern ext_load_SS(); + +/* WRITE functions */ +#define setAX(val) (A.X = (val)) +#define setAH(val) (A.byte.high = (val)) +#define setAL(val) (A.byte.low = (val)) +#define setBX(val) (B.X = (val)) +#define setBH(val) (B.byte.high = (val)) +#define setBL(val) (B.byte.low = (val)) +#define setCX(val) (C.X = (val)) +#define setCH(val) (C.byte.high = (val)) +#define setCL(val) (C.byte.low = (val)) +#define setDX(val) (D.X = (val)) +#define setDH(val) (D.byte.high = (val)) +#define setDL(val) (D.byte.low = (val)) +#define setSP(val) (SP.X = (val)) +#define setBP(val) (BP.X = (val)) +#define setSI(val) (SI.X = (val)) +#define setDI(val) (DI.X = (val)) +#define setIP(val) (IP.X = (val)) +#define setCS(val) ext_load_CS (val) +#define setDS(val) ext_load_DS (val) +#define setES(val) ext_load_ES (val) +#define setSS(val) ext_load_SS (val) +#define setMSW(val) (m_s_w = (val)) +#define setDF(val) (STATUS_DF = (val)) +#define setIF(val) (STATUS_IF = (val)) +#define setTF(val) (STATUS_TF = (val)) +#define setPF(val) (STATUS_PF = (val)) +#define setAF(val) (STATUS_AF = (val)) +#define setSF(val) (STATUS_SF = (val)) +#define setZF(val) (STATUS_ZF = (val)) +#define setOF(val) (STATUS_OF = (val)) +#define setCF(val) (STATUS_CF = (val)) + +#define setCPL(val) (CPL = (val)) +#define setGDT_BASE(val) (GDTR_base = (val)) +#define setGDT_LIMIT(val) (GDTR_limit = (val)) +#define setIDT_BASE(val) (IDTR_base = (val)) +#define setIDT_LIMIT(val) (IDTR_limit = (val)) +#define setLDT_SELECTOR(val) (LDTR.X = (val)) +#define setTR_SELECTOR(val) (TR.X = (val)) +#define setMSW_reserved(val) (MSW.reserved = (val)) +#define setTS(val) (MSW.TS = (val)) +#define setEM(val) (MSW.EM = (val)) +#define setMP(val) (MSW.MP = (val)) +#define setPE(val) (MSW.PE = (val)) +#define setNT(val) (STATUS_NT = (val)) +#define setIOPL(val) (STATUS_IOPL = (val)) + +#endif /* getAX - default CCPU register access macros */ + +#endif /* CCPU */ + +/* + * No non-386 cpu can run in VM mode, so getVM is always zero. + * + * We also have definition of the GetInstructionPointer and GetStackPointer + * interfaces, which on a non-386 can only be the 16 bit versions. + */ + +#ifndef SPC386 +#define getVM() 0 +#define GetInstructionPointer() ((IU32)getIP()) +#define GetStackPointer() ((IU32getSP()) +#endif + +#ifdef CPU_PRIVATE +/* + * Map new "private" cpu interface -> old interface + */ + +#define setIDT_BASE_LIMIT(base,limit) { setIDT_BASE(base); setIDT_LIMIT(limit); } +#define setGDT_BASE_LIMIT(base,limit) { setGDT_BASE(base); setGDT_LIMIT(limit); } +#define setLDT_BASE_LIMIT(base,limit) { setLDT_BASE(base); setLDT_LIMIT(limit); } +#define setTR_BASE_LIMIT(base,limit) { setTR_BASE(base); setTR_LIMIT(limit); } + +#define setCS_BASE_LIMIT_AR(base,limit,ar) { setCS_BASE(base); setCS_LIMIT(limit); setCS_AR(ar); } +#define setES_BASE_LIMIT_AR(base,limit,ar) { setES_BASE(base); setES_LIMIT(limit); setES_AR(ar); } +#define setSS_BASE_LIMIT_AR(base,limit,ar) { setSS_BASE(base); setSS_LIMIT(limit); setSS_AR(ar); } +#define setDS_BASE_LIMIT_AR(base,limit,ar) { setDS_BASE(base); setDS_LIMIT(limit); setDS_AR(ar); } +#define setFS_BASE_LIMIT_AR(base,limit,ar) { setFS_BASE(base); setFS_LIMIT(limit); setFS_AR(ar); } +#define setGS_BASE_LIMIT_AR(base,limit,ar) { setGS_BASE(base); setGS_LIMIT(limit); setGS_AR(ar); } + +#endif /* CPU_PRIVATE */ diff --git a/private/mvdm/softpc.new/base/inc/cpu3.h b/private/mvdm/softpc.new/base/inc/cpu3.h new file mode 100644 index 000000000..0c544c540 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/cpu3.h @@ -0,0 +1,1219 @@ + +/* + * SoftPC Revision 3.0 + * + * Title : Definitions for the 3.x CPU + * + * Description : Structures, macros and definitions for access to the + * CPU registers + * + * Author : Wayne Plummer + * + * Derived from : cpu.h + * + * Notes : This file should be portable - but includes a file + * host_cpu.h which contains machine specific definitions + * of CPU register mappings etc. + */ + +/* SccsID[]="@(#)cpu3.h 1.5 12/22/93 Copyright Insignia Solutions Ltd."; */ + +#include "host_cpu.h" + +IMPORT VOID host_set_hw_int IPT0(); +IMPORT VOID host_clear_hw_int IPT0(); + +/* + * These variables are obsolete - however they are referenced + * by:- + * + * 1. ica.c + */ + +extern word cpu_interrupt_map; +extern half_word cpu_int_translate[]; +extern word cpu_int_delay; +extern half_word ica_lock; +extern void (*(jump_ptrs[]))(); +extern void (*(b_write_ptrs[]))(); +extern void (*(w_write_ptrs[]))(); +extern void (*(b_fill_ptrs[]))(); +extern void (*(w_fill_ptrs[]))(); +extern void (*(b_move_ptrs[]))(); +extern void (*(w_move_ptrs[]))(); +extern half_word *haddr_of_src_string; + +/* + * Host functions to be provided for the base to use with respect to the CPU. + * These must be done in host_cpu.h because some hosts may want functions and + * others may want #defines. + */ + +/* + * This macro specifies the maximum recursion depth the CPU is required to support. + * (Note that a particular host may not actually use this value if it is capable + * of supporting abirtarily deep recursion). + */ +#define CPU_MAX_RECURSION 32 + +/* + * Interrupt types... + */ + +typedef enum { CPU_HW_RESET, + CPU_TIMER_TICK, + CPU_SW_INT, + CPU_HW_INT, + CPU_YODA_INT, + CPU_SIGIO_EVENT +} CPU_INT_TYPE; + +#ifdef CPU_PRIVATE +/* + Function returns for private i/f procedures handling segment loading. + */ + +#define SELECTOR_OK 0 +#define GP_ERROR 13 +#define NP_ERROR 11 +#define SF_ERROR 12 +#endif /* CPU_PRIVATE */ + +#ifdef CCPU + +/* Fuctions provided by CPU */ +IMPORT void c_cpu_init IPT0 (); +IMPORT void c_cpu_interrupt IPT2(CPU_INT_TYPE, type, IU16, number); +IMPORT void c_cpu_simulate IPT0(); +IMPORT void c_cpu_q_ev_set_count IPT1(ULONG, new_count); +IMPORT ULONG c_cpu_q_ev_get_count IPT0(); +IMPORT ULONG c_cpu_calc_q_ev_inst_for_time IPT1(ULONG, time); +IMPORT void c_cpu_EOA_hook IPT0(); +IMPORT void c_cpu_terminate IPT0(); + +#define cpu_init c_cpu_init +#define cpu_interrupt c_cpu_interrupt +#define cpu_simulate c_cpu_simulate +#define host_q_ev_set_count c_cpu_q_ev_set_count +#define host_q_ev_get_count c_cpu_q_ev_get_count +#ifndef host_calc_q_ev_inst_for_time +#define host_calc_q_ev_inst_for_time c_cpu_calc_q_ev_inst_for_time +#endif /* host_calc_q_ev_inst_for_time */ +#define cpu_EOA_hook c_cpu_EOA_hook +#define cpu_terminate c_cpu_terminate + +#ifndef CCPU_MAIN + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Provide Access to Byte Registers. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +IMPORT half_word c_getAL IPT0(); +IMPORT half_word c_getCL IPT0(); +IMPORT half_word c_getDL IPT0(); +IMPORT half_word c_getBL IPT0(); +IMPORT half_word c_getAH IPT0(); +IMPORT half_word c_getCH IPT0(); +IMPORT half_word c_getDH IPT0(); +IMPORT half_word c_getBH IPT0(); + +IMPORT void c_setAL IPT1(half_word, val); +IMPORT void c_setCL IPT1(half_word, val); +IMPORT void c_setDL IPT1(half_word, val); +IMPORT void c_setBL IPT1(half_word, val); +IMPORT void c_setAH IPT1(half_word, val); +IMPORT void c_setCH IPT1(half_word, val); +IMPORT void c_setDH IPT1(half_word, val); +IMPORT void c_setBH IPT1(half_word, val); + +#define getAL() c_getAL() +#define getCL() c_getCL() +#define getDL() c_getDL() +#define getBL() c_getBL() +#define getAH() c_getAH() +#define getCH() c_getCH() +#define getDH() c_getDH() +#define getBH() c_getBH() + +#define setAL(x) c_setAL(x) +#define setCL(x) c_setCL(x) +#define setDL(x) c_setDL(x) +#define setBL(x) c_setBL(x) +#define setAH(x) c_setAH(x) +#define setCH(x) c_setCH(x) +#define setDH(x) c_setDH(x) +#define setBH(x) c_setBH(x) + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Provide Access to Word Registers. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +IMPORT word c_getAX IPT0(); +IMPORT word c_getCX IPT0(); +IMPORT word c_getDX IPT0(); +IMPORT word c_getBX IPT0(); +IMPORT word c_getSP IPT0(); +IMPORT word c_getBP IPT0(); +IMPORT word c_getSI IPT0(); +IMPORT word c_getDI IPT0(); +IMPORT word c_getIP IPT0(); + +IMPORT void c_setAX IPT1(word, val); +IMPORT void c_setCX IPT1(word, val); +IMPORT void c_setDX IPT1(word, val); +IMPORT void c_setBX IPT1(word, val); +IMPORT void c_setSP IPT1(word, val); +IMPORT void c_setBP IPT1(word, val); +IMPORT void c_setSI IPT1(word, val); +IMPORT void c_setDI IPT1(word, val); +IMPORT void c_setIP IPT1(word, val); + +#define getAX() c_getAX() +#define getCX() c_getCX() +#define getDX() c_getDX() +#define getBX() c_getBX() +#define getSP() c_getSP() +#define getBP() c_getBP() +#define getSI() c_getSI() +#define getDI() c_getDI() +#define getIP() c_getIP() + +#define setAX(x) c_setAX(x) +#define setCX(x) c_setCX(x) +#define setDX(x) c_setDX(x) +#define setBX(x) c_setBX(x) +#define setSP(x) c_setSP(x) +#define setBP(x) c_setBP(x) +#define setSI(x) c_setSI(x) +#define setDI(x) c_setDI(x) +#define setIP(x) c_setIP(x) + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Provide Access to Segment Registers. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +IMPORT word c_getES IPT0(); +IMPORT word c_getCS IPT0(); +IMPORT word c_getSS IPT0(); +IMPORT word c_getDS IPT0(); + +IMPORT INT c_setES IPT1(word, val); +IMPORT INT c_setCS IPT1(word, val); +IMPORT INT c_setSS IPT1(word, val); +IMPORT INT c_setDS IPT1(word, val); + +#define getES() c_getES() +#define getCS() c_getCS() +#define getSS() c_getSS() +#define getDS() c_getDS() + +#define setES(x) c_setES(x) +#define setCS(x) c_setCS(x) +#define setSS(x) c_setSS(x) +#define setDS(x) c_setDS(x) + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Provide Access to Full(Private) Segment Registers. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#ifdef CPU_PRIVATE + +IMPORT word c_getES_SELECTOR IPT0(); +IMPORT word c_getCS_SELECTOR IPT0(); +IMPORT word c_getSS_SELECTOR IPT0(); +IMPORT word c_getDS_SELECTOR IPT0(); + +IMPORT word c_getCS_LIMIT IPT0(); +IMPORT word c_getDS_LIMIT IPT0(); +IMPORT word c_getES_LIMIT IPT0(); +IMPORT word c_getSS_LIMIT IPT0(); + +IMPORT long c_getCS_BASE IPT0(); +IMPORT long c_getDS_BASE IPT0(); +IMPORT long c_getES_BASE IPT0(); +IMPORT long c_getSS_BASE IPT0(); + +IMPORT half_word c_getCS_AR IPT0(); +IMPORT half_word c_getDS_AR IPT0(); +IMPORT half_word c_getES_AR IPT0(); +IMPORT half_word c_getSS_AR IPT0(); + +IMPORT void c_setES_SELECTOR IPT1(word, val); +IMPORT void c_setCS_SELECTOR IPT1(word, val); +IMPORT void c_setSS_SELECTOR IPT1(word, val); +IMPORT void c_setDS_SELECTOR IPT1(word, val); + +IMPORT void c_setCS_LIMIT IPT1(word, val); +IMPORT void c_setDS_LIMIT IPT1(word, val); +IMPORT void c_setES_LIMIT IPT1(word, val); +IMPORT void c_setSS_LIMIT IPT1(word, val); + +IMPORT void c_setCS_BASE IPT1(long, val); +IMPORT void c_setDS_BASE IPT1(long, val); +IMPORT void c_setES_BASE IPT1(long, val); +IMPORT void c_setSS_BASE IPT1(long, val); + +IMPORT void c_setCS_AR IPT1(half_word, val); +IMPORT void c_setDS_AR IPT1(half_word, val); +IMPORT void c_setES_AR IPT1(half_word, val); +IMPORT void c_setSS_AR IPT1(half_word, val); + +#define getES_SELECTOR c_getES_SELECTOR +#define getCS_SELECTOR c_getCS_SELECTOR +#define getSS_SELECTOR c_getSS_SELECTOR +#define getDS_SELECTOR c_getDS_SELECTOR + +#define getDS_LIMIT c_getDS_LIMIT +#define getCS_LIMIT c_getCS_LIMIT +#define getES_LIMIT c_getES_LIMIT +#define getSS_LIMIT c_getSS_LIMIT + +#define getDS_BASE c_getDS_BASE +#define getCS_BASE c_getCS_BASE +#define getES_BASE c_getES_BASE +#define getSS_BASE c_getSS_BASE + +#define getDS_AR c_getDS_AR +#define getCS_AR c_getCS_AR +#define getES_AR c_getES_AR +#define getSS_AR c_getSS_AR + +#define setES_SELECTOR c_setES_SELECTOR +#define setCS_SELECTOR c_setCS_SELECTOR +#define setSS_SELECTOR c_setSS_SELECTOR +#define setDS_SELECTOR c_setDS_SELECTOR + +#define setDS_LIMIT c_setDS_LIMIT +#define setCS_LIMIT c_setCS_LIMIT +#define setES_LIMIT c_setES_LIMIT +#define setSS_LIMIT c_setSS_LIMIT + +#define setDS_BASE c_setDS_BASE +#define setCS_BASE c_setCS_BASE +#define setES_BASE c_setES_BASE +#define setSS_BASE c_setSS_BASE + +#define setDS_AR c_setDS_AR +#define setCS_AR c_setCS_AR +#define setES_AR c_setES_AR +#define setSS_AR c_setSS_AR + +#endif /* CPU_PRIVATE */ + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Provide Access to Flags. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +IMPORT INT c_getAF IPT0(); +IMPORT INT c_getCF IPT0(); +IMPORT INT c_getDF IPT0(); +IMPORT INT c_getIF IPT0(); +IMPORT INT c_getOF IPT0(); +IMPORT INT c_getPF IPT0(); +IMPORT INT c_getSF IPT0(); +IMPORT INT c_getTF IPT0(); +IMPORT INT c_getZF IPT0(); +IMPORT INT c_getIOPL IPT0(); +IMPORT INT c_getNT IPT0(); +IMPORT word c_getSTATUS IPT0(); + +IMPORT void c_setAF IPT1(INT, val); +IMPORT void c_setCF IPT1(INT, val); +IMPORT void c_setDF IPT1(INT, val); +IMPORT void c_setIF IPT1(INT, val); +IMPORT void c_setOF IPT1(INT, val); +IMPORT void c_setPF IPT1(INT, val); +IMPORT void c_setSF IPT1(INT, val); +IMPORT void c_setTF IPT1(INT, val); +IMPORT void c_setZF IPT1(INT, val); +IMPORT void c_setIOPL IPT1(INT, val); +IMPORT void c_setNT IPT1(INT, val); + +#define getAF() c_getAF() +#define getCF() c_getCF() +#define getDF() c_getDF() +#define getIF() c_getIF() +#define getOF() c_getOF() +#define getPF() c_getPF() +#define getSF() c_getSF() +#define getTF() c_getTF() +#define getZF() c_getZF() +#define getIOPL() c_getIOPL() +#define getNT() c_getNT() +#define getSTATUS() c_getSTATUS() + +#define setAF(x) c_setAF(x) +#define setCF(x) c_setCF(x) +#define setDF(x) c_setDF(x) +#define setIF(x) c_setIF(x) +#define setOF(x) c_setOF(x) +#define setPF(x) c_setPF(x) +#define setSF(x) c_setSF(x) +#define setTF(x) c_setTF(x) +#define setZF(x) c_setZF(x) +#define setIOPL(x) c_setIOPL(x) +#define setNT(x) c_setNT(x) + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Provide Access to Machine Status Word. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +IMPORT INT c_getPE IPT0(); +IMPORT INT c_getMP IPT0(); +IMPORT INT c_getEM IPT0(); +IMPORT INT c_getTS IPT0(); +IMPORT word c_getMSW IPT0(); + +#define getPE() c_getPE() +#define getMP() c_getMP() +#define getEM() c_getEM() +#define getTS() c_getTS() +#define getMSW() c_getMSW() + +#ifdef CPU_PRIVATE + +IMPORT void c_setPE IPT1(INT, val); +IMPORT void c_setMP IPT1(INT, val); +IMPORT void c_setEM IPT1(INT, val); +IMPORT void c_setTS IPT1(INT, val); +IMPORT void c_setMSW IPT1(word, val); + +#define setPE(x) c_setPE(x) +#define setMP(x) c_setMP(x) +#define setEM(x) c_setEM(x) +#define setTS(x) c_setTS(x) +#define setMSW(x) c_setMSW(x) + +#endif /* CPU_PRIVATE */ + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Provide Access to Descriptor Registers. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +IMPORT sys_addr c_getGDT_BASE IPT0(); +IMPORT sys_addr c_getIDT_BASE IPT0(); +IMPORT sys_addr c_getLDT_BASE IPT0(); +IMPORT sys_addr c_getTR_BASE IPT0(); +IMPORT word c_getGDT_LIMIT IPT0(); +IMPORT word c_getIDT_LIMIT IPT0(); +IMPORT word c_getLDT_LIMIT IPT0(); +IMPORT word c_getTR_LIMIT IPT0(); +IMPORT word c_getLDT_SELECTOR IPT0(); +IMPORT word c_getTR_SELECTOR IPT0(); + +#define getGDT_BASE() c_getGDT_BASE() +#define getIDT_BASE() c_getIDT_BASE() +#define getLDT_BASE() c_getLDT_BASE() +#define getTR_BASE() c_getTR_BASE() +#define getGDT_LIMIT() c_getGDT_LIMIT() +#define getIDT_LIMIT() c_getIDT_LIMIT() +#define getLDT_LIMIT() c_getLDT_LIMIT() +#define getTR_LIMIT() c_getTR_LIMIT() +#define getLDT_SELECTOR() c_getLDT_SELECTOR() +#define getTR_SELECTOR() c_getTR_SELECTOR() + +#ifdef CPU_PRIVATE + +IMPORT void c_setGDT_BASE IPT1(sys_addr, val); +IMPORT void c_setIDT_BASE IPT1(sys_addr, val); +IMPORT void c_setLDT_BASE IPT1(sys_addr, val); +IMPORT void c_setTR_BASE IPT1(sys_addr, val); +IMPORT void c_setGDT_LIMIT IPT1(word, val); +IMPORT void c_setIDT_LIMIT IPT1(word, val); +IMPORT void c_setLDT_LIMIT IPT1(word, val); +IMPORT void c_setTR_LIMIT IPT1(word, val); +IMPORT void c_setLDT_SELECTOR IPT1(word, val); +IMPORT void c_setTR_SELECTOR IPT1(word, val); + +#define setGDT_BASE(x) c_setGDT_BASE(x) +#define setIDT_BASE(x) c_setIDT_BASE(x) +#define setLDT_BASE(x) c_setLDT_BASE(x) +#define setTR_BASE(x) c_setTR_BASE(x) +#define setGDT_LIMIT(x) c_setGDT_LIMIT(x) +#define setIDT_LIMIT(x) c_setIDT_LIMIT(x) +#define setLDT_LIMIT(x) c_setLDT_LIMIT(x) +#define setTR_LIMIT(x) c_setTR_LIMIT(x) +#define setLDT_SELECTOR(x) c_setLDT_SELECTOR(x) +#define setTR_SELECTOR(x) c_setTR_SELECTOR(x) + +#endif /* CPU_PRIVATE */ + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Provide Access to Current Privilege Level. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#ifdef CPU_PRIVATE + +IMPORT INT c_getCPL IPT0(); +IMPORT VOID c_setCPL IPT1(INT, val); + +#define getCPL() c_getCPL() +#define setCPL(x) c_setCPL(x) + +#endif /* CPU_PRIVATE */ + +#endif /* CCPU_MAIN */ + +#endif /* CCPU */ + +#ifdef A3CPU + +/* + * Function imports... + */ + +/* + * cpu_init() - Initialises the 3.0 CPU. + */ + +IMPORT VOID a3_cpu_init IPT0(); + +/* + * cpu_interrupt() - Interrupts the 3.0 CPU. + */ +#ifdef SWITCHED_CPU +IMPORT VOID a3_cpu_interrupt IPT2(CPU_INT_TYPE, type, IU16, number); +#else +IMPORT VOID a3_cpu_interrupt(); +#endif + +/* + * cpu_simulate() - Performs INTEL CPU emulation. + */ +IMPORT VOID _asm_simulate(); + +IMPORT VOID a3_cpu_q_ev_set_count(); +IMPORT ULONG a3_cpu_q_ev_get_count(); + +#ifndef SWITCHED_CPU + +extern IU32 a3_cpu_calc_q_ev_inst_for_time IPT1 (IU32, time); + +/* + * cpu_EOA_hook() - Resets the 3.0 CPU prior to running the next application. + */ +IMPORT VOID a3_cpu_EOA_hook(); + +/* + * cpu_terminate() - Closes down the CPU. + */ +IMPORT VOID a3_cpu_terminate(); + +/* + * Intel register Access... + */ + +IMPORT half_word a3_getAL(); +IMPORT half_word a3_getBL(); +IMPORT half_word a3_getCL(); +IMPORT half_word a3_getDL(); +IMPORT half_word a3_getAH(); +IMPORT half_word a3_getBH(); +IMPORT half_word a3_getCH(); +IMPORT half_word a3_getDH(); + +IMPORT word a3_getAX(); +IMPORT word a3_getBX(); +IMPORT word a3_getCX(); +IMPORT word a3_getDX(); +IMPORT word a3_getSP(); +IMPORT word a3_getBP(); +IMPORT word a3_getSI(); +IMPORT word a3_getDI(); + +IMPORT word a3_getIP(); + +IMPORT word a3_getCS(); +IMPORT word a3_getDS(); +IMPORT word a3_getES(); +IMPORT word a3_getSS(); + +IMPORT word a3_getAF(); +IMPORT word a3_getCF(); +IMPORT word a3_getDF(); +IMPORT word a3_getIF(); +IMPORT word a3_getIOPL(); +IMPORT word a3_getNT(); +IMPORT word a3_getOF(); +IMPORT word a3_getPF(); +IMPORT word a3_getSF(); +IMPORT word a3_getTF(); +IMPORT word a3_getZF(); + +IMPORT word a3_getSTATUS(); + +IMPORT word a3_getEM(); +IMPORT word a3_getMP(); +IMPORT word a3_getPE(); +IMPORT word a3_getTS(); + +IMPORT word a3_getMSW(); + +IMPORT sys_addr a3_getGDT_BASE(); +IMPORT word a3_getGDT_LIMIT(); + +IMPORT sys_addr a3_getIDT_BASE(); +IMPORT word a3_getIDT_LIMIT(); + +IMPORT sys_addr a3_getLDT_BASE(); +IMPORT word a3_getLDT_LIMIT(); +IMPORT word a3_getLDT_SELECTOR(); + +IMPORT sys_addr a3_getTR_BASE(); +IMPORT word a3_getTR_LIMIT(); +IMPORT word a3_getTR_SELECTOR(); + +IMPORT VOID a3_setAL(); +IMPORT VOID a3_setCL(); +IMPORT VOID a3_setDL(); +IMPORT VOID a3_setBL(); +IMPORT VOID a3_setAH(); +IMPORT VOID a3_setCH(); +IMPORT VOID a3_setDH(); +IMPORT VOID a3_setBH(); + +IMPORT VOID a3_setAX(); +IMPORT VOID a3_setCX(); +IMPORT VOID a3_setDX(); +IMPORT VOID a3_setBX(); +IMPORT VOID a3_setSP(); +IMPORT VOID a3_setBP(); +IMPORT VOID a3_setSI(); +IMPORT VOID a3_setDI(); + +IMPORT VOID a3_setIP(); + +IMPORT INT a3_setES(); +IMPORT INT a3_setCS(); +IMPORT INT a3_setSS(); +IMPORT INT a3_setDS(); + +IMPORT VOID a3_setCF(); +IMPORT VOID a3_setPF(); +IMPORT VOID a3_setAF(); +IMPORT VOID a3_setZF(); +IMPORT VOID a3_setSF(); +IMPORT VOID a3_setTF(); +IMPORT VOID a3_setIF(); +IMPORT VOID a3_setDF(); +IMPORT VOID a3_setOF(); +IMPORT VOID a3_setIOPL(); +IMPORT VOID a3_setNT(); + +#ifdef CPU_PRIVATE + +IMPORT word a3_p_getCPL(); +IMPORT word a3_p_getES_SELECTOR(); +IMPORT sys_addr a3_p_getES_BASE(); +IMPORT word a3_p_getES_LIMIT(); +IMPORT half_word a3_p_getES_AR(); +IMPORT VOID a3_p_setES_SELECTOR(); +IMPORT VOID a3_p_setES_BASE(); +IMPORT VOID a3_p_setES_LIMIT(); +IMPORT VOID a3_p_setES_AR(); +IMPORT word a3_p_getCS_SELECTOR(); +IMPORT sys_addr a3_p_getCS_BASE(); +IMPORT word a3_p_getCS_LIMIT(); +IMPORT half_word a3_p_getCS_AR(); +IMPORT VOID a3_p_setCS_SELECTOR(); +IMPORT VOID a3_p_setCS_BASE(); +IMPORT VOID a3_p_setCS_LIMIT(); +IMPORT VOID a3_p_setCS_AR(); +IMPORT word a3_p_getDS_SELECTOR(); +IMPORT sys_addr a3_p_getDS_BASE(); +IMPORT word a3_p_getDS_LIMIT(); +IMPORT half_word a3_p_getDS_AR(); +IMPORT VOID a3_p_setDS_SELECTOR(); +IMPORT VOID a3_p_setDS_BASE(); +IMPORT VOID a3_p_setDS_LIMIT(); +IMPORT VOID a3_p_setDS_AR(); +IMPORT word a3_p_getSS_SELECTOR(); +IMPORT sys_addr a3_p_getSS_BASE(); +IMPORT word a3_p_getSS_LIMIT(); +IMPORT half_word a3_p_getSS_AR(); +IMPORT VOID a3_p_setSS_SELECTOR(); +IMPORT VOID a3_p_setSS_BASE(); +IMPORT VOID a3_p_setSS_LIMIT(); +IMPORT VOID a3_p_setSS_AR(); +IMPORT VOID a3_p_setPE(); +IMPORT VOID a3_p_setMP(); +IMPORT VOID a3_p_setEM(); +IMPORT VOID a3_p_setTS(); +IMPORT VOID a3_p_setMSW(); +IMPORT VOID a3_p_setCPL(); +IMPORT VOID a3_p_setGDT_BASE(); +IMPORT VOID a3_p_setGDT_LIMIT(); +IMPORT VOID a3_p_setIDT_BASE(); +IMPORT VOID a3_p_setIDT_LIMIT(); +IMPORT VOID a3_p_setLDT_SELECTOR(); +IMPORT VOID a3_p_setLDT_BASE(); +IMPORT VOID a3_p_setLDT_LIMIT(); +IMPORT VOID a3_p_setTR_SELECTOR(); +IMPORT VOID a3_p_setTR_BASE(); +IMPORT VOID a3_p_setTR_LIMIT(); + +#endif /* CPU_PRIVATE */ +#endif /* SWITCHED_CPU */ + + +/* + * Macro definitions... + */ + +#define cpu_init a3_cpu_init +#define cpu_simulate _asm_simulate +#define host_q_ev_set_count a3_cpu_q_ev_set_count +#define host_q_ev_get_count a3_cpu_q_ev_get_count +#ifndef host_calc_q_ev_inst_for_time +#define host_calc_q_ev_inst_for_time a3_cpu_calc_q_ev_inst_for_time +#endif /* host_calc_q_ev_inst_for_time */ +#define cpu_EOA_hook a3_cpu_EOA_hook +#define cpu_terminate a3_cpu_terminate + +/* + * Intel register Access... + */ + +#ifndef getAX + +#define cpu_interrupt a3_cpu_interrupt + +#define getAL a3_getAL +#define getBL a3_getBL +#define getCL a3_getCL +#define getDL a3_getDL +#define getAH a3_getAH +#define getBH a3_getBH +#define getCH a3_getCH +#define getDH a3_getDH +#define getAX a3_getAX +#define getBX a3_getBX +#define getCX a3_getCX +#define getDX a3_getDX +#define getSP a3_getSP +#define getBP a3_getBP +#define getSI a3_getSI +#define getDI a3_getDI +#define getIP a3_getIP +#define getCS a3_getCS +#define getDS a3_getDS +#define getES a3_getES +#define getSS a3_getSS +#define getAF a3_getAF +#define getCF a3_getCF +#define getDF a3_getDF +#define getIF a3_getIF +#define getIOPL a3_getIOPL +#define getNT a3_getNT +#define getOF a3_getOF +#define getPF a3_getPF +#define getSF a3_getSF +#define getTF a3_getTF +#define getZF a3_getZF +#define getSTATUS a3_getSTATUS +#define getEM a3_getEM +#define getMP a3_getMP +#define getPE a3_getPE +#define getTS a3_getTS +#define getMSW a3_getMSW +#define getGDT_BASE a3_getGDT_BASE +#define getGDT_LIMIT a3_getGDT_LIMIT +#define getIDT_BASE a3_getIDT_BASE +#define getIDT_LIMIT a3_getIDT_LIMIT +#define getLDT_BASE a3_getLDT_BASE +#define getLDT_LIMIT a3_getLDT_LIMIT +#define getLDT_SELECTOR a3_getLDT_SELECTOR +#define getTR_BASE a3_getTR_BASE +#define getTR_LIMIT a3_getTR_LIMIT +#define getTR_SELECTOR a3_getTR_SELECTOR +#define setAL a3_setAL +#define setCL a3_setCL +#define setDL a3_setDL +#define setBL a3_setBL +#define setAH a3_setAH +#define setCH a3_setCH +#define setDH a3_setDH +#define setBH a3_setBH +#define setAX a3_setAX +#define setCX a3_setCX +#define setDX a3_setDX +#define setBX a3_setBX +#define setSP a3_setSP +#define setBP a3_setBP +#define setSI a3_setSI +#define setDI a3_setDI +#define setIP a3_setIP +#define setES a3_setES +#define setCS a3_setCS +#define setSS a3_setSS +#define setDS a3_setDS +#define setCF a3_setCF +#define setPF a3_setPF +#define setAF a3_setAF +#define setZF a3_setZF +#define setSF a3_setSF +#define setTF a3_setTF +#define setIF a3_setIF +#define setDF a3_setDF +#define setOF a3_setOF +#define setIOPL a3_setIOPL +#define setNT a3_setNT + +#endif /* getAX */ + +#ifdef CPU_PRIVATE + +#define getCPL a3_p_getCPL +#define getES_SELECTOR a3_p_getES_SELECTOR +#define getCS_SELECTOR a3_p_getCS_SELECTOR +#define getSS_SELECTOR a3_p_getSS_SELECTOR +#define getDS_SELECTOR a3_p_getDS_SELECTOR +#define getES_BASE a3_p_getES_BASE +#define getCS_BASE a3_p_getCS_BASE +#define getDS_BASE a3_p_getDS_BASE +#define getSS_BASE a3_p_getSS_BASE +#define getES_LIMIT a3_p_getES_LIMIT +#define getCS_LIMIT a3_p_getCS_LIMIT +#define getDS_LIMIT a3_p_getDS_LIMIT +#define getSS_LIMIT a3_p_getSS_LIMIT +#define getES_AR a3_p_getES_AR +#define getCS_AR a3_p_getCS_AR +#define getDS_AR a3_p_getDS_AR +#define getSS_AR a3_p_getSS_AR +#define setES_SELECTOR a3_p_setES_SELECTOR +#define setCS_SELECTOR a3_p_setCS_SELECTOR +#define setSS_SELECTOR a3_p_setSS_SELECTOR +#define setDS_SELECTOR a3_p_setDS_SELECTOR +#define setES_BASE a3_p_setES_BASE +#define setCS_BASE a3_p_setCS_BASE +#define setDS_BASE a3_p_setDS_BASE +#define setSS_BASE a3_p_setSS_BASE +#define setES_LIMIT a3_p_setES_LIMIT +#define setCS_LIMIT a3_p_setCS_LIMIT +#define setDS_LIMIT a3_p_setDS_LIMIT +#define setSS_LIMIT a3_p_setSS_LIMIT +#define setES_AR a3_p_setES_AR +#define setCS_AR a3_p_setCS_AR +#define setDS_AR a3_p_setDS_AR +#define setSS_AR a3_p_setSS_AR +#define setPE a3_p_setPE +#define setMP a3_p_setMP +#define setEM a3_p_setEM +#define setTS a3_p_setTS +#define setMSW a3_p_setMSW +#define setCPL a3_p_setCPL +#define setGDT_BASE a3_p_setGDT_BASE +#define setGDT_LIMIT a3_p_setGDT_LIMIT +#define setIDT_BASE a3_p_setIDT_BASE +#define setIDT_LIMIT a3_p_setIDT_LIMIT +#define setLDT_SELECTOR a3_p_setLDT_SELECTOR +#define setLDT_BASE a3_p_setLDT_BASE +#define setLDT_LIMIT a3_p_setLDT_LIMIT +#define setTR_SELECTOR a3_p_setTR_SELECTOR +#define setTR_BASE a3_p_setTR_BASE +#define setTR_LIMIT a3_p_setTR_LIMIT + +#endif /* CPU_PRIVATE */ + +#endif /* A3CPU */ + +#ifdef SPC386 +/* + * New additions for SPC386 builds follow... + * eventually it would be nice to change the start of this file to conform + * to the new style when there is effort to spare. + * + * Wayne Plummer 19/3/93 (GISP project) + */ + +#ifdef CCPU +IMPORT void c_setSTATUS IPT1(IU16, val); +#define setSTATUS() c_setSTATUS() +#else +IMPORT VOID a3_setSTATUS IPT1(IU16, val); +#define setSTATUS a3_setSTATUS +#endif + + +#ifdef CCPU +IMPORT IU32 c_getEFLAGS IPT0(); +#define getEFLAGS() c_getEFLAGS() +#else +IMPORT IU32 a3_getEFLAGS(); +#define getEFLAGS a3_getEFLAGS +#endif + +#ifdef CCPU +IMPORT void c_setEFLAGS IPT1(IU32, val); +#define setEFLAGS() c_setEFLAGS() +#else +IMPORT VOID a3_setEFLAGS IPT1(IU32, val); +#define setEFLAGS a3_setEFLAGS +#endif + + +#ifdef CCPU +IMPORT IU32 c_getEAX IPT0(); +#define getEAX c_getEAX +#else +IMPORT IU32 a3_getEAX IPT0(); +#define getEAX a3_getEAX +#endif + +#ifdef CCPU +IMPORT IU32 c_getEBX IPT0(); +#define getEBX c_getEBX +#else +IMPORT IU32 a3_getEBX IPT0(); +#define getEBX a3_getEBX +#endif + +#ifdef CCPU +IMPORT IU32 c_getECX IPT0(); +#define getECX c_getECX +#else +IMPORT IU32 a3_getECX IPT0(); +#define getECX a3_getECX +#endif + +#ifdef CCPU +IMPORT IU32 c_getEDX IPT0(); +#define getEDX c_getEDX +#else +IMPORT IU32 a3_getEDX IPT0(); +#define getEDX a3_getEDX +#endif + +#ifdef CCPU +IMPORT IU32 c_getESP IPT0(); +#define getESP c_getESP +#else +IMPORT IU32 a3_getESP IPT0(); +#define getESP a3_getESP +#endif + +#ifdef CCPU +IMPORT IU32 c_getEBP IPT0(); +#define getEBP c_getEBP +#else +IMPORT IU32 a3_getEBP IPT0(); +#define getEBP a3_getEBP +#endif + +#ifdef CCPU +IMPORT IU32 c_getESI IPT0(); +#define getESI c_getESI +#else +IMPORT IU32 a3_getESI IPT0(); +#define getESI a3_getESI +#endif + +#ifdef CCPU +IMPORT IU32 c_getEDI IPT0(); +#define getEDI c_getEDI +#else +IMPORT IU32 a3_getEDI IPT0(); +#define getEDI a3_getEDI +#endif + +#ifdef CCPU +IMPORT IU32 c_getEIP IPT0(); +#define getEIP c_getEIP +#else +IMPORT IU32 a3_getEIP IPT0(); +#define getEIP a3_getEIP +#endif + +#ifdef CCPU +IMPORT IU16 c_getFS IPT0(); +#define getFS c_getFS +#else +IMPORT IU16 a3_getFS IPT0(); +#define getFS a3_getFS +#endif + +#ifdef CCPU +IMPORT IU16 c_getGS IPT0(); +#define getGS c_getGS +#else +IMPORT IU16 a3_getGS IPT0(); +#define getGS a3_getGS +#endif + +#ifdef CCPU +IMPORT IU16 c_getVM IPT0(); +#define getVM c_getVM +#else +IMPORT IU16 a3_getVM IPT0(); +#define getVM a3_getVM +#endif + +#ifdef CCPU +IMPORT IU16 c_getPG IPT0(); +#define getPG c_getPG +#else +IMPORT IU16 a3_getPG IPT0(); +#define getPG a3_getPG +#endif + +#ifdef CCPU +IMPORT VOID c_setEAX IPT1(IU32, val); +#define setEAX c_setEAX +#else +IMPORT IU32 a3_setEAX IPT1(IU32, val); +#define setEAX a3_setEAX +#endif + +#ifdef CCPU +IMPORT VOID c_setEBX IPT1(IU32, val); +#define setEBX c_setEBX +#else +IMPORT IU32 a3_setEBX IPT1(IU32, val); +#define setEBX a3_setEBX +#endif + +#ifdef CCPU +IMPORT VOID c_setECX IPT1(IU32, val); +#define setECX c_setECX +#else +IMPORT IU32 a3_setECX IPT1(IU32, val); +#define setECX a3_setECX +#endif + +#ifdef CCPU +IMPORT VOID c_setEDX IPT1(IU32, val); +#define setEDX c_setEDX +#else +IMPORT IU32 a3_setEDX IPT1(IU32, val); +#define setEDX a3_setEDX +#endif + +#ifdef CCPU +IMPORT VOID c_setESP IPT1(IU32, val); +#define setESP c_setESP +#else +IMPORT IU32 a3_setESP IPT1(IU32, val); +#define setESP a3_setESP +#endif + +#ifdef CCPU +IMPORT VOID c_setEBP IPT1(IU32, val); +#define setEBP c_setEBP +#else +IMPORT IU32 a3_setEBP IPT1(IU32, val); +#define setEBP a3_setEBP +#endif + +#ifdef CCPU +IMPORT VOID c_setESI IPT1(IU32, val); +#define setESI c_setESI +#else +IMPORT IU32 a3_setESI IPT1(IU32, val); +#define setESI a3_setESI +#endif + +#ifdef CCPU +IMPORT VOID c_setEDI IPT1(IU32, val); +#define setEDI c_setEDI +#else +IMPORT IU32 a3_setEDI IPT1(IU32, val); +#define setEDI a3_setEDI +#endif + +#ifdef CCPU +IMPORT VOID c_setEIP IPT1(IU32, val); +#define setEIP c_setEIP +#else +IMPORT IU32 a3_setEIP IPT1(IU32, val); +#define setEIP a3_setEIP +#endif + +#ifdef CCPU +IMPORT VOID c_setFS IPT1(IU16, val); +#define setFS c_setFS +#else +IMPORT IU32 a3_setFS IPT1(IU16, val); +#define setFS a3_setFS +#endif + +#ifdef CCPU +IMPORT VOID c_setGS IPT1(IU16, val); +#define setGS c_setGS +#else +IMPORT IU32 a3_setGS IPT1(IU16, val); +#define setGS a3_setGS +#endif + +#ifdef IRET_HOOKS +#ifdef CCPU +IMPORT VOID c_Cpu_set_hook_selector IPT1(IU16, selector); +#define Cpu_set_hook_selector c_Cpu_set_hook_selector +#else +IMPORT VOID a3_Cpu_set_hook_selector IPT1(IU16, selector); +#define Cpu_set_hook_selector a3_Cpu_set_hook_selector +#endif +#endif /* IRET_HOOKS */ + +#ifdef CPU_PRIVATE + +#ifdef CCPU +IMPORT IU32 c_getFS_BASE IPT0(); +#define getFS_BASE c_getFS_BASE +#else +IMPORT IU32 a3_p_getFS_BASE IPT0(); +#define getFS_BASE a3_p_getFS_BASE +#endif + +#ifdef CCPU +IMPORT IU16 c_getFS_LIMIT IPT0(); +#define getFS_LIMIT c_getFS_LIMIT +#else +IMPORT IU16 a3_p_getFS_LIMIT IPT0(); +#define getFS_LIMIT a3_p_getFS_LIMIT +#endif + +#ifdef CCPU +IMPORT IU8 c_getFS_AR IPT0(); +#define getFS_AR c_getFS_AR +#else +IMPORT IU8 a3_p_getFS_AR IPT0(); +#define getFS_AR a3_p_getFS_AR +#endif + +#ifdef CCPU +IMPORT IU32 c_getGS_BASE IPT0(); +#define getGS_BASE c_getGS_BASE +#else +IMPORT IU32 a3_p_getGS_BASE IPT0(); +#define getGS_BASE a3_p_getGS_BASE +#endif + +#ifdef CCPU +IMPORT IU16 c_getGS_LIMIT IPT0(); +#define getGS_LIMIT c_getGS_LIMIT +#else +IMPORT IU16 a3_p_getGS_LIMIT IPT0(); +#define getGS_LIMIT a3_p_getGS_LIMIT +#endif + +#ifdef CCPU +IMPORT IU8 c_getGS_AR IPT0(); +#define getGS_AR c_getGS_AR +#else +IMPORT IU8 a3_p_getGS_AR IPT0(); +#define getGS_AR a3_p_getGS_AR +#endif + +#ifdef CCPU +IMPORT void c_setFS_BASE IPT1(IU32, base); +#define setFS_BASE c_setFS_BASE +#else +IMPORT void a3_p_setFS_BASE IPT1(IU32, base); +#define setFS_BASE a3_p_setFS_BASE +#endif + +#ifdef CCPU +IMPORT void c_setFS_LIMIT IPT1(IU16, limit); +#define setFS_LIMIT c_setFS_LIMIT +#else +IMPORT void a3_p_setFS_LIMIT IPT1(IU16, limit); +#define setFS_LIMIT a3_p_setFS_LIMIT +#endif + +#ifdef CCPU +IMPORT void c_setFS_AR IPT1(IU8, ar); +#define setFS_AR c_setFS_AR +#else +IMPORT void a3_p_setFS_AR IPT1(IU8, ar); +#define setFS_AR a3_p_setFS_AR +#endif + + +#ifdef CCPU +IMPORT void c_setGS_BASE IPT1(IU32, base); +#define setGS_BASE c_setGS_BASE +#else +IMPORT void a3_p_setGS_BASE IPT1(IU32, base); +#define setGS_BASE a3_p_setGS_BASE +#endif + +#ifdef CCPU +IMPORT void c_setGS_LIMIT IPT1(IU16, limit); +#define setGS_LIMIT c_setGS_LIMIT +#else +IMPORT void a3_p_setGS_LIMIT IPT1(IU16, limit); +#define setGS_LIMIT a3_p_setGS_LIMIT +#endif + +#ifdef CCPU +IMPORT void c_setGS_AR IPT1(IU8, ar); +#define setGS_AR c_setGS_AR +#else +IMPORT void a3_p_setGS_AR IPT1(IU8, ar); +#define setGS_AR a3_p_setGS_AR +#endif + +#ifndef CCPU +/* + * These functions get the (E)IP or (E)SP correctly whatever size stack + * or code segment is in use. + */ +extern IU32 GetInstructionPointer IPT0(); +extern IU32 GetStackPointer IPT0(); +#endif /* CCPU */ +#endif /* CPU_PRIVATE */ +#endif /* SPC386 */ + +#ifdef IRET_HOOKS +/* + * The interfaces provided by the CPU so that the ICA can initiate and + * terminate an iret hook. + */ + +extern void Cpu_do_hook IPT2(IUM8, line, IBOOL, is_hooked); +extern void Cpu_inter_hook_processing IPT1(IUM8, line); +extern void Cpu_unhook IPT1(IUM8, line_number); +#ifdef GISP_CPU +extern void Cpu_set_hook_selector IPT1(IU16, selector); +extern void Cpu_hook_bop IPT0(); +#endif + +#endif /* IRET_HOOKS */ + +/* + * No non-386 cpu can run in VM mode, so getVM is always zero. + * The same is true for GISP, but it has its own version of this interface. + * + * We also have definition of the GetInstructionPointer and GetStackPointer + * interfaces, which on a non-386 can only be the 16 bit versions. + */ + +#ifndef SPC386 +#define getVM() 0 +#define GetInstructionPointer() ((IU32)getIP()) +#define GetStackPointer() ((IU32getSP()) +#endif + +#ifdef SWIN_CPU_OPTS +extern IBOOL Cpu_find_dcache_entry IPT2(IU16, seg, LIN_ADDR *, base); +#endif + +#ifdef CPU_PRIVATE +/* + * Map new "private" cpu interface -> old interface + */ + +#define setIDT_BASE_LIMIT(base,limit) { setIDT_BASE(base); setIDT_LIMIT(limit); } +#define setGDT_BASE_LIMIT(base,limit) { setGDT_BASE(base); setGDT_LIMIT(limit); } +#define setLDT_BASE_LIMIT(base,limit) { setLDT_BASE(base); setLDT_LIMIT(limit); } +#define setTR_BASE_LIMIT(base,limit) { setTR_BASE(base); setTR_LIMIT(limit); } + +#define setCS_BASE_LIMIT_AR(base,limit,ar) { setCS_BASE(base); setCS_LIMIT(limit); setCS_AR(ar); } +#define setES_BASE_LIMIT_AR(base,limit,ar) { setES_BASE(base); setES_LIMIT(limit); setES_AR(ar); } +#define setSS_BASE_LIMIT_AR(base,limit,ar) { setSS_BASE(base); setSS_LIMIT(limit); setSS_AR(ar); } +#define setDS_BASE_LIMIT_AR(base,limit,ar) { setDS_BASE(base); setDS_LIMIT(limit); setDS_AR(ar); } +#define setFS_BASE_LIMIT_AR(base,limit,ar) { setFS_BASE(base); setFS_LIMIT(limit); setFS_AR(ar); } +#define setGS_BASE_LIMIT_AR(base,limit,ar) { setGS_BASE(base); setGS_LIMIT(limit); setGS_AR(ar); } + +#endif /* CPU_PRIVATE */ diff --git a/private/mvdm/softpc.new/base/inc/cpu4.h b/private/mvdm/softpc.new/base/inc/cpu4.h new file mode 100644 index 000000000..6633bccce --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/cpu4.h @@ -0,0 +1,134 @@ + +/* + * SoftPC Revision 3.0 + * + * Title : Definitions for the 80386 CPU + * + * Description : Structures, macros and definitions for access to the + * CPU registers + * + * Author : Wayne Plummer + * + * Derived From : cpu.h + * + * Notes : This file should be portable - but includes a file + * host_cpu.h which contains machine specific definitions + * of CPU register mappings etc. + * + * SccsID : @(#)cpu4.h 1.12 10/21/94 + * + * (c)Copyright Insignia Solutions Ltd., 1991-1994. All rights reserved. + */ + +#include "host_cpu.h" + +IMPORT VOID host_set_hw_int IPT0(); +IMPORT VOID host_clear_hw_int IPT0(); + + +/* + * Host functions to be provided for the base to use with respect to the CPU. + * These must be done in host_cpu.h because some hosts may want functions and + * others may want #defines. + */ + +/* + * This macro specifies the maximum recursion depth the CPU is required to support. + * (Note that a particular host may not actually use this value if it is capable + * of supporting abirtarily deep recursion). + */ +#define CPU_MAX_RECURSION 32 + +/* + * Interrupt types... + */ + +#include +typedef enum CPU_INT_TYPE CPU_INT_TYPE; + +#ifdef CPU_PRIVATE +/* + Function returns for private i/f procedures handling segment loading. + */ + +#define GP_ERROR 13 +#define NP_ERROR 11 +#define SF_ERROR 12 +#endif /* CPU_PRIVATE */ + +/* + * Include the main part of the cpu interface, which at present is generated + */ +#include + +IMPORT void cpuEnableInterrupts IPT1(IBOOL, yes_or_no); + +#ifdef IRET_HOOKS +#ifdef CCPU +IMPORT VOID c_Cpu_set_hook_selector IPT1(IU16, selector); +#define Cpu_set_hook_selector c_Cpu_set_hook_selector +#else +IMPORT VOID a3_Cpu_set_hook_selector IPT1(IU16, selector); +#define Cpu_set_hook_selector a3_Cpu_set_hook_selector +#endif +#endif /* IRET_HOOKS */ + +/* + * These functions get the (E)IP or (E)SP correctly whatever size stack + * or code segment is in use. For anything but GISP, we always hold + * the IP as a 32 bit quantity, so we don't have to worry about the + * distinction. + */ + +#ifdef GISP_CPU +extern IU32 GetInstructionPointer IPT0(); +#else +#define GetInstructionPointer getEIP +#endif +extern IU32 GetStackPointer IPT0(); + + +#ifdef IRET_HOOKS +/* + * The interfaces provided by the CPU so that the ICA can initiate and + * terminate an iret hook. + */ + +extern void Cpu_do_hook IPT2(IUM8, line, IBOOL, is_hooked); +extern void Cpu_inter_hook_processing IPT1(IUM8, line); +extern void Cpu_unhook IPT1(IUM8, line_number); +#ifdef GISP_CPU +extern void Cpu_set_hook_selector IPT1(IU16, selector); +extern void Cpu_hook_bop IPT0(); +#endif + +#endif /* IRET_HOOKS */ + +/* + * This function lets ios.c determine whether it is OK for it to go + * ahead and do an in or out instruction, or whether the CPU wants to take + * it over instead. + */ + +/* However, it is sometimes defined as a macro */ + +#if !defined(CCPU) && !defined(PROD) +extern IBOOL IOVirtualised IPT4(io_addr, io_address, IU32 *, value, LIN_ADDR, offset, IU8, width); +#endif + +#ifndef CCPU +/* + * Npx functions: + */ +#ifndef PROD +GLOBAL IU32 a_getNpxControlReg IPT0(); +GLOBAL IU32 a_getNpxStatusReg IPT0(); +GLOBAL IU32 a_getNpxTagwordReg IPT0(); +GLOBAL char *a_getNpxStackReg IPT2(IU32, reg_num, char *, buffer); +#endif /* PROD */ + +#ifdef PIG +GLOBAL void a_setNpxControlReg IPT1(IU32, newControl); +GLOBAL void a_setNpxStatusReg IPT1(IU32, newStatus); +#endif /* PIG */ +#endif /* !CCPU */ diff --git a/private/mvdm/softpc.new/base/inc/cpu_vid.h b/private/mvdm/softpc.new/base/inc/cpu_vid.h new file mode 100644 index 000000000..2550a5fd1 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/cpu_vid.h @@ -0,0 +1,136 @@ +/*[ +====================================================================== + + SoftPC Revision 3.0 + + Title: + cpu_vid.h + + Description: + + This module supports the interface between the cpu + and the video emulation code. + + Author: + John Shanly + + Date: + 12 April 1991 + + SccsID @(#)cpu_vid.h 1.11 03/09/94 + + (c)Copyright Insignia Solutions Ltd., 1991. All rights reserved. + +====================================================================== +]*/ + +typedef struct +{ + void (*b_write) IPT2(ULONG, value, ULONG, offset); + void (*w_write) IPT2(ULONG, value, ULONG, offset); + +#ifndef NO_STRING_OPERATIONS + + void (*b_fill) IPT3(ULONG, value, ULONG, offset, ULONG, count); + void (*w_fill) IPT3(ULONG, value, ULONG, offset, ULONG, count); + void (*b_fwd_move) IPT4(ULONG, offset, ULONG, eas, ULONG, count, + ULONG, src_flag); + void (*b_bwd_move) IPT4(ULONG, offset, ULONG, eas, ULONG, count, + ULONG, src_flag); + void (*w_fwd_move) IPT4(ULONG, offset, ULONG, eas, ULONG, count, + ULONG, src_flag); + void (*w_bwd_move) IPT4(ULONG, offset, ULONG, eas, ULONG, count, + ULONG, src_flag); + +#endif /* NO_STRING_OPERATIONS */ + +} WRT_POINTERS; + +typedef struct +{ + void (*b_write) IPT2(IU8, eaOff, IU32, eaVal); + void (*w_write) IPT2(IU16, eaOff, IU32, eaVal); + void (*d_write) IPT2(IU32, eaOff, IU32, eaVal); + void (*b_fill) IPT3(IU32, eaOff, IU8, eaVal, IU32, count); + void (*w_fill) IPT3(IU32, eaOff, IU16, eaVal, IU32, count); + void (*d_fill) IPT3(IU32, eaOff, IU32, eaVal, IU32, count); + void (*b_fwd_move) IPT4(IU32, eaVal, IHPE, fromOff, IU32, count, IBOOL, src_flag); + void (*b_bwd_move) IPT4(IU32, eaVal, IHPE, fromOff, IU32, count, IBOOL, src_flag); + void (*w_fwd_move) IPT4(IU32, eaVal, IHPE, fromOff, IU32, count, IBOOL, src_flag); + void (*w_bwd_move) IPT4(IU32, eaVal, IHPE, fromOff, IU32, count, IBOOL, src_flag); + void (*d_fwd_move) IPT4(IU32, eaVal, IHPE, fromOff, IU32, count, IBOOL, src_flag); + void (*d_bwd_move) IPT4(IU32, eaVal, IHPE, fromOff, IU32, count, IBOOL, src_flag); +} EVID_WRT_POINTERS; + +typedef struct +{ + WRT_POINTERS mode_0[32]; + WRT_POINTERS mode_1[2]; + WRT_POINTERS mode_2[16]; +#ifdef VGG + WRT_POINTERS mode_3[16]; +#endif +} CHN_TABLE; + +typedef struct +{ + CHN_TABLE nch; +#ifdef VGG + CHN_TABLE ch4; +#endif +} MODE_TABLE; + +extern MODE_TABLE mode_table; + +typedef struct +{ + IU32 (*b_read) IPT1(ULONG, offset); + IU32 (*w_read) IPT1(ULONG, offset); + +#ifndef NO_STRING_OPERATIONS + void (*str_read) IPT3(IU8 *, dest, ULONG, offset, ULONG, count); +#endif /* NO_STRING_OPERATIONS */ + +} READ_POINTERS; + +typedef struct +{ + IU32 (*b_read) IPT1(IU32, eaOff); + IU32 (*w_read) IPT1(IU32, eaOff); + IU32 (*d_read) IPT1(IU32, eaOff); + void (*str_fwd_read) IPT3(IU8 *, dest, IU32, eaOff, IU32, count); + void (*str_bwd_read) IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +} EVID_READ_POINTERS; + +extern READ_POINTERS read_pointers; + +#ifndef Cpu_set_vid_wrt_ptrs +extern void Cpu_set_vid_wrt_ptrs IPT1( WRT_POINTERS *, ptrs ); +extern void Cpu_set_vid_rd_ptrs IPT1( READ_POINTERS *, ptrs ); +#endif /* Cpu_set_vid_wrt_ptrs */ + +#ifndef CPU_40_STYLE +#ifdef A3CPU + +#ifdef C_VID +extern WRT_POINTERS Glue_writes; +#endif /* C_VID */ + +#else /* A3CPU */ + +#ifdef C_VID +extern MEM_HANDLERS Glue_writes; +#endif /* C_VID */ + +#endif /* A3CPU */ +#endif /* CPU_40_STYLE */ + +extern WRT_POINTERS simple_writes; +extern WRT_POINTERS dth_md0_writes, dth_md1_writes, dth_md2_writes, dth_md3_writes; +extern WRT_POINTERS ch2_md0, ch2_md1, ch2_md2, ch2_md3, ch2_mdcopy; + +extern READ_POINTERS Glue_reads; + +extern READ_POINTERS simple_reads, pointers_RAM_off; +extern READ_POINTERS pointers_mode0_nch, pointers_mode0_ch4, pointers_mode0_ch2; +extern READ_POINTERS pointers_mode1_nch, pointers_mode1_ch4, pointers_mode1_ch2; diff --git a/private/mvdm/softpc.new/base/inc/d_inst.h b/private/mvdm/softpc.new/base/inc/d_inst.h new file mode 100644 index 000000000..11c3f1b3a --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/d_inst.h @@ -0,0 +1,425 @@ +/* + d_inst.h + + Define all Decoded Instruction Types. + */ + +/* + static char SccsID[]="@(#)d_inst.h 1.1 08/03/93 Copyright Insignia Solutions Ltd."; + */ + + +/* + The Decoded Intel Instructions. + ------------------------------- + + Number Field: col(-c)=32, width(-w)=3. + */ + +#define I_AAA (USHORT) 0 +#define I_AAD (USHORT) 1 +#define I_AAM (USHORT) 2 +#define I_AAS (USHORT) 3 +#define I_ADC8 (USHORT) 4 +#define I_ADC16 (USHORT) 5 +#define I_ADC32 (USHORT) 6 +#define I_ADD8 (USHORT) 7 +#define I_ADD16 (USHORT) 8 +#define I_ADD32 (USHORT) 9 +#define I_AND8 (USHORT) 10 +#define I_AND16 (USHORT) 11 +#define I_AND32 (USHORT) 12 +#define I_ARPL (USHORT) 13 +#define I_BOUND16 (USHORT) 14 +#define I_BOUND32 (USHORT) 15 +#define I_BSF16 (USHORT) 16 +#define I_BSF32 (USHORT) 17 +#define I_BSR16 (USHORT) 18 +#define I_BSR32 (USHORT) 19 +#define I_BSWAP (USHORT) 20 +#define I_BT16 (USHORT) 21 +#define I_BT32 (USHORT) 22 +#define I_BTC16 (USHORT) 23 +#define I_BTC32 (USHORT) 24 +#define I_BTR16 (USHORT) 25 +#define I_BTR32 (USHORT) 26 +#define I_BTS16 (USHORT) 27 +#define I_BTS32 (USHORT) 28 +#define I_CALLF16 (USHORT) 29 +#define I_CALLF32 (USHORT) 30 +#define I_CALLN16 (USHORT) 31 +#define I_CALLN32 (USHORT) 32 +#define I_CALLR16 (USHORT) 33 +#define I_CALLR32 (USHORT) 34 +#define I_CBW (USHORT) 35 +#define I_CDQ (USHORT) 36 +#define I_CLC (USHORT) 37 +#define I_CLD (USHORT) 38 +#define I_CLI (USHORT) 39 +#define I_CLTS (USHORT) 40 +#define I_CMC (USHORT) 41 +#define I_CMP8 (USHORT) 42 +#define I_CMP16 (USHORT) 43 +#define I_CMP32 (USHORT) 44 +#define I_CMPSB (USHORT) 45 +#define I_CMPSD (USHORT) 46 +#define I_CMPSW (USHORT) 47 +#define I_CMPXCHG8 (USHORT) 48 +#define I_CMPXCHG16 (USHORT) 49 +#define I_CMPXCHG32 (USHORT) 50 +#define I_CWD (USHORT) 51 +#define I_CWDE (USHORT) 52 +#define I_DAA (USHORT) 53 +#define I_DAS (USHORT) 54 +#define I_DEC8 (USHORT) 55 +#define I_DEC16 (USHORT) 56 +#define I_DEC32 (USHORT) 57 +#define I_DIV8 (USHORT) 58 +#define I_DIV16 (USHORT) 59 +#define I_DIV32 (USHORT) 60 +#define I_ENTER16 (USHORT) 61 +#define I_ENTER32 (USHORT) 62 +#define I_F2XM1 (USHORT) 63 +#define I_FABS (USHORT) 64 +#define I_FADD (USHORT) 65 +#define I_FADDP (USHORT) 66 +#define I_FBLD (USHORT) 67 +#define I_FBSTP (USHORT) 68 +#define I_FCHS (USHORT) 69 +#define I_FCLEX (USHORT) 70 +#define I_FCOM (USHORT) 71 +#define I_FCOMP (USHORT) 72 +#define I_FCOMPP (USHORT) 73 +#define I_FCOS (USHORT) 74 +#define I_FDECSTP (USHORT) 75 +#define I_FDIV (USHORT) 76 +#define I_FDIVP (USHORT) 77 +#define I_FDIVR (USHORT) 78 +#define I_FDIVRP (USHORT) 79 +#define I_FFREE (USHORT) 80 +#define I_FFREEP (USHORT) 81 +#define I_FIADD (USHORT) 82 +#define I_FICOM (USHORT) 83 +#define I_FICOMP (USHORT) 84 +#define I_FIDIV (USHORT) 85 +#define I_FIDIVR (USHORT) 86 +#define I_FILD (USHORT) 87 +#define I_FIMUL (USHORT) 88 +#define I_FINCSTP (USHORT) 89 +#define I_FINIT (USHORT) 90 +#define I_FIST (USHORT) 91 +#define I_FISTP (USHORT) 92 +#define I_FISUB (USHORT) 93 +#define I_FISUBR (USHORT) 94 +#define I_FLD (USHORT) 95 +#define I_FLD1 (USHORT) 96 +#define I_FLDCW (USHORT) 97 +#define I_FLDENV16 (USHORT) 98 +#define I_FLDENV32 (USHORT) 99 +#define I_FLDL2E (USHORT)100 +#define I_FLDL2T (USHORT)101 +#define I_FLDLG2 (USHORT)102 +#define I_FLDLN2 (USHORT)103 +#define I_FLDPI (USHORT)104 +#define I_FLDZ (USHORT)105 +#define I_FMUL (USHORT)106 +#define I_FMULP (USHORT)107 +#define I_FNOP (USHORT)108 +#define I_FPATAN (USHORT)109 +#define I_FPREM (USHORT)110 +#define I_FPREM1 (USHORT)111 +#define I_FPTAN (USHORT)112 +#define I_FRNDINT (USHORT)113 +#define I_FRSTOR16 (USHORT)114 +#define I_FRSTOR32 (USHORT)115 +#define I_FSAVE16 (USHORT)116 +#define I_FSAVE32 (USHORT)117 +#define I_FSCALE (USHORT)118 +#define I_FSETPM (USHORT)119 +#define I_FSIN (USHORT)120 +#define I_FSINCOS (USHORT)121 +#define I_FSQRT (USHORT)122 +#define I_FST (USHORT)123 +#define I_FSTCW (USHORT)124 +#define I_FSTENV16 (USHORT)125 +#define I_FSTENV32 (USHORT)126 +#define I_FSTP (USHORT)127 +#define I_FSTSW (USHORT)128 +#define I_FSUB (USHORT)129 +#define I_FSUBP (USHORT)130 +#define I_FSUBR (USHORT)131 +#define I_FSUBRP (USHORT)132 +#define I_FTST (USHORT)133 +#define I_FUCOM (USHORT)134 +#define I_FUCOMP (USHORT)135 +#define I_FUCOMPP (USHORT)136 +#define I_FXAM (USHORT)137 +#define I_FXCH (USHORT)138 +#define I_FXTRACT (USHORT)139 +#define I_FYL2X (USHORT)140 +#define I_FYL2XP1 (USHORT)141 +#define I_HLT (USHORT)142 +#define I_IDIV8 (USHORT)143 +#define I_IDIV16 (USHORT)144 +#define I_IDIV32 (USHORT)145 +#define I_IMUL8 (USHORT)146 +#define I_IMUL16 (USHORT)147 +#define I_IMUL32 (USHORT)148 +#define I_IMUL16T2 (USHORT)149 +#define I_IMUL16T3 (USHORT)150 +#define I_IMUL32T2 (USHORT)151 +#define I_IMUL32T3 (USHORT)152 +#define I_IN8 (USHORT)153 +#define I_IN16 (USHORT)154 +#define I_IN32 (USHORT)155 +#define I_INC8 (USHORT)156 +#define I_INC16 (USHORT)157 +#define I_INC32 (USHORT)158 +#define I_INSB (USHORT)159 +#define I_INSD (USHORT)160 +#define I_INSW (USHORT)161 +#define I_INT3 (USHORT)162 +#define I_INT (USHORT)163 +#define I_INTO (USHORT)164 +#define I_INVD (USHORT)165 +#define I_INVLPG (USHORT)166 +#define I_IRET (USHORT)167 +#define I_IRETD (USHORT)168 +#define I_JB16 (USHORT)169 +#define I_JB32 (USHORT)170 +#define I_JBE16 (USHORT)171 +#define I_JBE32 (USHORT)172 +#define I_JCXZ (USHORT)173 +#define I_JECXZ (USHORT)174 +#define I_JL16 (USHORT)175 +#define I_JL32 (USHORT)176 +#define I_JLE16 (USHORT)177 +#define I_JLE32 (USHORT)178 +#define I_JMPF16 (USHORT)179 +#define I_JMPF32 (USHORT)180 +#define I_JMPN (USHORT)181 +#define I_JMPR16 (USHORT)182 +#define I_JMPR32 (USHORT)183 +#define I_JNB16 (USHORT)184 +#define I_JNB32 (USHORT)185 +#define I_JNBE16 (USHORT)186 +#define I_JNBE32 (USHORT)187 +#define I_JNL16 (USHORT)188 +#define I_JNL32 (USHORT)189 +#define I_JNLE16 (USHORT)190 +#define I_JNLE32 (USHORT)191 +#define I_JNO16 (USHORT)192 +#define I_JNO32 (USHORT)193 +#define I_JNP16 (USHORT)194 +#define I_JNP32 (USHORT)195 +#define I_JNS16 (USHORT)196 +#define I_JNS32 (USHORT)197 +#define I_JNZ16 (USHORT)198 +#define I_JNZ32 (USHORT)199 +#define I_JO16 (USHORT)200 +#define I_JO32 (USHORT)201 +#define I_JP16 (USHORT)202 +#define I_JP32 (USHORT)203 +#define I_JS16 (USHORT)204 +#define I_JS32 (USHORT)205 +#define I_JZ16 (USHORT)206 +#define I_JZ32 (USHORT)207 +#define I_LAHF (USHORT)208 +#define I_LAR (USHORT)209 +#define I_LDS (USHORT)210 +#define I_LEA (USHORT)211 +#define I_LEAVE16 (USHORT)212 +#define I_LEAVE32 (USHORT)213 +#define I_LES (USHORT)214 +#define I_LFS (USHORT)215 +#define I_LGDT16 (USHORT)216 +#define I_LGDT32 (USHORT)217 +#define I_LGS (USHORT)218 +#define I_LIDT16 (USHORT)219 +#define I_LIDT32 (USHORT)220 +#define I_LLDT (USHORT)221 +#define I_LMSW (USHORT)222 +#define I_LOADALL (USHORT)223 +#define I_LOCK (USHORT)224 +#define I_LODSB (USHORT)225 +#define I_LODSD (USHORT)226 +#define I_LODSW (USHORT)227 +#define I_LOOP16 (USHORT)228 +#define I_LOOP32 (USHORT)229 +#define I_LOOPE16 (USHORT)230 +#define I_LOOPE32 (USHORT)231 +#define I_LOOPNE16 (USHORT)232 +#define I_LOOPNE32 (USHORT)233 +#define I_LSL (USHORT)234 +#define I_LSS (USHORT)235 +#define I_LTR (USHORT)236 +#define I_MOV_SR (USHORT)237 +#define I_MOV_CR (USHORT)238 +#define I_MOV_DR (USHORT)239 +#define I_MOV_TR (USHORT)240 +#define I_MOV8 (USHORT)241 +#define I_MOV16 (USHORT)242 +#define I_MOV32 (USHORT)243 +#define I_MOVSB (USHORT)244 +#define I_MOVSD (USHORT)245 +#define I_MOVSW (USHORT)246 +#define I_MOVSX8 (USHORT)247 +#define I_MOVSX16 (USHORT)248 +#define I_MOVZX8 (USHORT)249 +#define I_MOVZX16 (USHORT)250 +#define I_MUL8 (USHORT)251 +#define I_MUL16 (USHORT)252 +#define I_MUL32 (USHORT)253 +#define I_NEG8 (USHORT)254 +#define I_NEG16 (USHORT)255 +#define I_NEG32 (USHORT)256 +#define I_NOP (USHORT)257 +#define I_NOT8 (USHORT)258 +#define I_NOT16 (USHORT)259 +#define I_NOT32 (USHORT)260 +#define I_OR8 (USHORT)261 +#define I_OR16 (USHORT)262 +#define I_OR32 (USHORT)263 +#define I_OUT8 (USHORT)264 +#define I_OUT16 (USHORT)265 +#define I_OUT32 (USHORT)266 +#define I_OUTSB (USHORT)267 +#define I_OUTSD (USHORT)268 +#define I_OUTSW (USHORT)269 +#define I_POP16 (USHORT)270 +#define I_POP32 (USHORT)271 +#define I_POP_SR (USHORT)272 +#define I_POPA (USHORT)273 +#define I_POPAD (USHORT)274 +#define I_POPF (USHORT)275 +#define I_POPFD (USHORT)276 +#define I_PUSH16 (USHORT)277 +#define I_PUSH32 (USHORT)278 +#define I_PUSHA (USHORT)279 +#define I_PUSHAD (USHORT)280 +#define I_PUSHF (USHORT)281 +#define I_PUSHFD (USHORT)282 +#define I_RCL8 (USHORT)283 +#define I_RCL16 (USHORT)284 +#define I_RCL32 (USHORT)285 +#define I_RCR8 (USHORT)286 +#define I_RCR16 (USHORT)287 +#define I_RCR32 (USHORT)288 +#define I_RETF16 (USHORT)289 +#define I_RETF32 (USHORT)290 +#define I_RETN16 (USHORT)291 +#define I_RETN32 (USHORT)292 +#define I_ROL8 (USHORT)293 +#define I_ROL16 (USHORT)294 +#define I_ROL32 (USHORT)295 +#define I_ROR8 (USHORT)296 +#define I_ROR16 (USHORT)297 +#define I_ROR32 (USHORT)298 +#define I_R_INSB (USHORT)299 /* REP INS */ +#define I_R_INSD (USHORT)300 /* REP INS */ +#define I_R_INSW (USHORT)301 /* REP INS */ +#define I_R_OUTSB (USHORT)302 /* REP OUTS */ +#define I_R_OUTSD (USHORT)303 /* REP OUTS */ +#define I_R_OUTSW (USHORT)304 /* REP OUTS */ +#define I_R_LODSB (USHORT)305 /* REP LODS */ +#define I_R_LODSD (USHORT)306 /* REP LODS */ +#define I_R_LODSW (USHORT)307 /* REP LODS */ +#define I_R_MOVSB (USHORT)308 /* REP MOVS */ +#define I_R_MOVSD (USHORT)309 /* REP MOVS */ +#define I_R_MOVSW (USHORT)310 /* REP MOVS */ +#define I_R_STOSB (USHORT)311 /* REP STOS */ +#define I_R_STOSD (USHORT)312 /* REP STOS */ +#define I_R_STOSW (USHORT)313 /* REP STOS */ +#define I_RE_CMPSB (USHORT)314 /* REPE CMPS */ +#define I_RE_CMPSD (USHORT)315 /* REPE CMPS */ +#define I_RE_CMPSW (USHORT)316 /* REPE CMPS */ +#define I_RNE_CMPSB (USHORT)317 /* REPNE CMPS */ +#define I_RNE_CMPSD (USHORT)318 /* REPNE CMPS */ +#define I_RNE_CMPSW (USHORT)319 /* REPNE CMPS */ +#define I_RE_SCASB (USHORT)320 /* REPE SCAS */ +#define I_RE_SCASD (USHORT)321 /* REPE SCAS */ +#define I_RE_SCASW (USHORT)322 /* REPE SCAS */ +#define I_RNE_SCASB (USHORT)323 /* REPNE SCAS */ +#define I_RNE_SCASD (USHORT)324 /* REPNE SCAS */ +#define I_RNE_SCASW (USHORT)325 /* REPNE SCAS */ +#define I_SAHF (USHORT)326 +#define I_SAR8 (USHORT)327 +#define I_SAR16 (USHORT)328 +#define I_SAR32 (USHORT)329 +#define I_SBB8 (USHORT)330 +#define I_SBB16 (USHORT)331 +#define I_SBB32 (USHORT)332 +#define I_SCASB (USHORT)333 +#define I_SCASD (USHORT)334 +#define I_SCASW (USHORT)335 +#define I_SETB (USHORT)336 +#define I_SETBE (USHORT)337 +#define I_SETL (USHORT)338 +#define I_SETLE (USHORT)339 +#define I_SETNB (USHORT)340 +#define I_SETNBE (USHORT)341 +#define I_SETNL (USHORT)342 +#define I_SETNLE (USHORT)343 +#define I_SETNO (USHORT)344 +#define I_SETNP (USHORT)345 +#define I_SETNS (USHORT)346 +#define I_SETNZ (USHORT)347 +#define I_SETO (USHORT)348 +#define I_SETP (USHORT)349 +#define I_SETS (USHORT)350 +#define I_SETZ (USHORT)351 +#define I_SGDT16 (USHORT)352 +#define I_SGDT32 (USHORT)353 +#define I_SHL8 (USHORT)354 +#define I_SHL16 (USHORT)355 +#define I_SHL32 (USHORT)356 +#define I_SHLD16 (USHORT)357 +#define I_SHLD32 (USHORT)358 +#define I_SHR8 (USHORT)359 +#define I_SHR16 (USHORT)360 +#define I_SHR32 (USHORT)361 +#define I_SHRD16 (USHORT)362 +#define I_SHRD32 (USHORT)363 +#define I_SIDT16 (USHORT)364 +#define I_SIDT32 (USHORT)365 +#define I_SLDT (USHORT)366 +#define I_SMSW (USHORT)367 +#define I_STC (USHORT)368 +#define I_STD (USHORT)369 +#define I_STI (USHORT)370 +#define I_STOSB (USHORT)371 +#define I_STOSD (USHORT)372 +#define I_STOSW (USHORT)373 +#define I_STR (USHORT)374 +#define I_SUB8 (USHORT)375 +#define I_SUB16 (USHORT)376 +#define I_SUB32 (USHORT)377 +#define I_TEST8 (USHORT)378 +#define I_TEST16 (USHORT)379 +#define I_TEST32 (USHORT)380 +#define I_VERR (USHORT)381 +#define I_VERW (USHORT)382 +#define I_WAIT (USHORT)383 +#define I_WBINVD (USHORT)384 +#define I_XADD8 (USHORT)385 +#define I_XADD16 (USHORT)386 +#define I_XADD32 (USHORT)387 +#define I_XCHG8 (USHORT)388 +#define I_XCHG16 (USHORT)389 +#define I_XCHG32 (USHORT)390 +#define I_XLAT (USHORT)391 +#define I_XOR8 (USHORT)392 +#define I_XOR16 (USHORT)393 +#define I_XOR32 (USHORT)394 +#define I_ZBADOP (USHORT)395 +#define I_ZBOP (USHORT)396 /* Insignia's own BOP */ +#define I_ZFRSRVD (USHORT)397 /* Intel Floating Point reserved */ +#define I_ZRSRVD (USHORT)398 /* Intel reserved */ +#define I_ZZEXIT (USHORT)399 /* Insignia's PIG exit opcode */ + +#define MAX_DECODED_INST 399 + +/* + End of Decoded Intel Instructions. + ----------------------------------- + */ diff --git a/private/mvdm/softpc.new/base/inc/d_oper.h b/private/mvdm/softpc.new/base/inc/d_oper.h new file mode 100644 index 000000000..02a5a1a32 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/d_oper.h @@ -0,0 +1,406 @@ +/* + d_oper.h + + Define all Decoded Operand Types. + */ + +/* + static char SccsID[]="@(#)d_oper.h 1.1 05 Oct 1993 Copyright Insignia Solutions Ltd."; + */ + + +/* + The Decoded Intel Operands. + --------------------------- + + The naming convention used is similiar to that used in the Intel + documentation for the 386 or 486 processors. See Appendix A - The + Opcode Map, for details. + + Each decoded operand has an argument type, identifiers, + addressability indication and specific values associated with it. + The exact return values for each operand are listed below. The values + should only be accessed through the macros provided, the layout may + be changed in the future. The macros take a pointer to a DECODED_ARG + as their argument. + + + Operands are encoded in a two letter plus optional size form:- + + + + Addressing methods are denoted by upper case letters, viz:- + + C The operand is a control register. + + register identifier. DCD_IDENTIFIER + addressability(Read/Write). DCD_ADDRESSABILITY + + D The operand is a debug register. + + register identifier. DCD_IDENTIFIER + addressability(Read/Write). DCD_ADDRESSABILITY + + I The operand is an immediate value. + + immediate identifier. DCD_IDENTIFIER + addressability(Read/Write). DCD_ADDRESSABILITY + the value. DCD_IMMED1 + + J The operand is a relative offset. + + addressability(Read/Write). DCD_ADDRESSABILITY + the value. DCD_IMMED1 + + K The operand is two immediate values. + + addressability(Read/Write). DCD_ADDRESSABILITY + the first value. DCD_IMMED1 + the second value. DCD_IMMED2 + + M The operand is held in memory. + + addressing mode. DCD_IDENTIFIER + sub type of addressing mode. DCD_SUBTYPE + addressability(Read/Write). DCD_ADDRESSABILITY + segment register identifier. DCD_SEGMENT_ID + addressing displacement. DCD_DISP + + R The operand is a general register. + + register identifier. DCD_IDENTIFIER + addressability(Read/Write). DCD_ADDRESSABILITY + + S The operand is a segment register. + + register identifier. DCD_IDENTIFIER + addressability(Read/Write). DCD_ADDRESSABILITY + + T The operand is a test register. + + register identifier. DCD_IDENTIFIER + addressability(Read/Write). DCD_ADDRESSABILITY + + V The operand is a register in the co-processor stack. + + stack addressing mode. DCD_IDENTIFIER + addressability(Read/Write). DCD_ADDRESSABILITY + stack relative register identifier. DCD_INDEX + + Operand types are denoted by lower case letters, viz:- + + a operand pair in memory, as used by BOUND. + = 16 word operands. + = 32 double word operands. + + b byte. + + d double word. + + i floating point integer + 16 16-bit word integer + 32 32-bit short integer + 64 64-bit long integer + 80 80-bit packed decimal integer + + p far pointer. + = 16 16:16 ptr (ie 32-bit) + = 32 16:32 ptr (ie 48-bit) + + r floating point real + = 32 32-bit short real + = 64 64-bit long real + = 80 80-bit temp real + + w word. + + s six-byte descriptor. + + Additionally the 'M' addressing method has a form with no operand + type, but the following optional sizes:- + + 14 = 14-byte data block + 28 = 28-byte data block + 94 = 94-byte data block + 108 = 108-byte data block + + */ + +/* + The argument types:- + */ +#define A_ (UTINY) 0 +#define A_Rb (UTINY) 1 /* aka r8,r/m8 */ +#define A_Rw (UTINY) 2 /* aka r16,r/m16 */ +#define A_Rd (UTINY) 3 /* aka r32,r/m32 */ +#define A_Sw (UTINY) 4 /* aka Sreg */ +#define A_Cd (UTINY) 5 /* aka CRx */ +#define A_Dd (UTINY) 6 /* aka DRx */ +#define A_Td (UTINY) 7 /* aka TRx */ +#define A_M (UTINY) 8 /* aka m */ +#define A_M14 (UTINY) 9 /* aka m14byte */ +#define A_M28 (UTINY) 10 /* aka m28byte */ +#define A_M94 (UTINY) 11 /* aka m94byte */ +#define A_M108 (UTINY) 12 /* aka m108byte */ +#define A_Ma16 (UTINY) 13 /* aka m16&16 */ +#define A_Ma32 (UTINY) 14 /* aka m32&32 */ +#define A_Mb (UTINY) 15 /* aka m8,r/m8,moffs8 */ +#define A_Md (UTINY) 16 /* aka m32,r/m32,moffs32 */ +#define A_Mi16 (UTINY) 17 /* aka m16int */ +#define A_Mi32 (UTINY) 18 /* aka m32int */ +#define A_Mi64 (UTINY) 19 /* aka m64int */ +#define A_Mi80 (UTINY) 20 /* aka m80dec */ +#define A_Mp16 (UTINY) 21 /* aka m16:16 */ +#define A_Mp32 (UTINY) 22 /* aka m16:32 */ +#define A_Mr32 (UTINY) 23 /* aka m32real */ +#define A_Mr64 (UTINY) 24 /* aka m64real */ +#define A_Mr80 (UTINY) 25 /* aka m80real */ +#define A_Ms (UTINY) 26 /* aka m16&32 */ +#define A_Mw (UTINY) 27 /* aka m16,r/m16,moffs16 */ +#define A_I (UTINY) 28 /* aka imm8,imm16,imm32 */ +#define A_J (UTINY) 29 /* aka rel8,rel16,rel32 */ +#define A_K (UTINY) 30 /* aka ptr16:16,ptr16:32 */ +#define A_V (UTINY) 31 /* aka ST,push onto ST, ST(i) */ + +/* allowable DCD_IDENTIFIER'S for byte registers */ +#define A_AL (USHORT)0 +#define A_CL (USHORT)1 +#define A_DL (USHORT)2 +#define A_BL (USHORT)3 +#define A_AH (USHORT)4 +#define A_CH (USHORT)5 +#define A_DH (USHORT)6 +#define A_BH (USHORT)7 + +/* allowable DCD_IDENTIFIER'S for word registers */ +#define A_AX (USHORT)0 +#define A_CX (USHORT)1 +#define A_DX (USHORT)2 +#define A_BX (USHORT)3 +#define A_SP (USHORT)4 +#define A_BP (USHORT)5 +#define A_SI (USHORT)6 +#define A_DI (USHORT)7 + +/* allowable DCD_IDENTIFIER'S for double word registers */ +#define A_EAX (USHORT)0 +#define A_ECX (USHORT)1 +#define A_EDX (USHORT)2 +#define A_EBX (USHORT)3 +#define A_ESP (USHORT)4 +#define A_EBP (USHORT)5 +#define A_ESI (USHORT)6 +#define A_EDI (USHORT)7 + +/* allowable DCD_IDENTIFIER'S for segment registers */ +/* allowable DCD_SEGMENT_ID'S for segment addressing registers */ +#define A_ES (USHORT)0 +#define A_CS (USHORT)1 +#define A_SS (USHORT)2 +#define A_DS (USHORT)3 +#define A_FS (USHORT)4 +#define A_GS (USHORT)5 + +/* allowable DCD_IDENTIFIER'S for control registers */ +#define A_CR0 (USHORT)0 +#define A_CR1 (USHORT)1 +#define A_CR2 (USHORT)2 +#define A_CR3 (USHORT)3 +#define A_CR4 (USHORT)4 +#define A_CR5 (USHORT)5 +#define A_CR6 (USHORT)6 +#define A_CR7 (USHORT)7 + +/* allowable DCD_IDENTIFIER'S for debug registers */ +#define A_DR0 (USHORT)0 +#define A_DR1 (USHORT)1 +#define A_DR2 (USHORT)2 +#define A_DR3 (USHORT)3 +#define A_DR4 (USHORT)4 +#define A_DR5 (USHORT)5 +#define A_DR6 (USHORT)6 +#define A_DR7 (USHORT)7 + +/* allowable DCD_IDENTIFIER'S for test registers */ +#define A_TR0 (USHORT)0 +#define A_TR1 (USHORT)1 +#define A_TR2 (USHORT)2 +#define A_TR3 (USHORT)3 +#define A_TR4 (USHORT)4 +#define A_TR5 (USHORT)5 +#define A_TR6 (USHORT)6 +#define A_TR7 (USHORT)7 + +/* allowable DCD_IDENTIFIER'S for memory addressing type */ +/* */ +#define A_1600 (USHORT) 0 /* [BX + SI] */ +#define A_1601 (USHORT) 1 /* [BX + DI] */ +#define A_1602 (USHORT) 2 /* [BP + SI] */ +#define A_1603 (USHORT) 3 /* [BP + DI] */ +#define A_1604 (USHORT) 4 /* [SI] */ +#define A_1605 (USHORT) 5 /* [DI] */ +#define A_1606 (USHORT) 6 /* [d16] */ +#define A_1607 (USHORT) 7 /* [BX] */ + +#define A_1610 (USHORT) 8 /* [BX + SI + d8] */ +#define A_1611 (USHORT) 9 /* [BX + DI + d8] */ +#define A_1612 (USHORT)10 /* [BP + SI + d8] */ +#define A_1613 (USHORT)11 /* [BP + DI + d8] */ +#define A_1614 (USHORT)12 /* [SI + d8] */ +#define A_1615 (USHORT)13 /* [DI + d8] */ +#define A_1616 (USHORT)14 /* [BP + d8] */ +#define A_1617 (USHORT)15 /* [BX + d8] */ + +#define A_1620 (USHORT)16 /* [BX + SI + d16] */ +#define A_1621 (USHORT)17 /* [BX + DI + d16] */ +#define A_1622 (USHORT)18 /* [BP + SI + d16] */ +#define A_1623 (USHORT)19 /* [BP + DI + d16] */ +#define A_1624 (USHORT)20 /* [SI + d16] */ +#define A_1625 (USHORT)21 /* [DI + d16] */ +#define A_1626 (USHORT)22 /* [BP + d16] */ +#define A_1627 (USHORT)23 /* [BX + d16] */ + +/* */ +#define A_3200 (USHORT)24 /* [EAX] */ +#define A_3201 (USHORT)25 /* [ECX] */ +#define A_3202 (USHORT)26 /* [EDX] */ +#define A_3203 (USHORT)27 /* [EBX] */ +#define A_3205 (USHORT)28 /* [d32] */ +#define A_3206 (USHORT)29 /* [ESI] */ +#define A_3207 (USHORT)30 /* [EDI] */ + +#define A_3210 (USHORT)31 /* [EAX + d8] */ +#define A_3211 (USHORT)32 /* [ECX + d8] */ +#define A_3212 (USHORT)33 /* [EDX + d8] */ +#define A_3213 (USHORT)34 /* [EBX + d8] */ +#define A_3215 (USHORT)35 /* [EBP + d8] */ +#define A_3216 (USHORT)36 /* [ESI + d8] */ +#define A_3217 (USHORT)37 /* [EDI + d8] */ + +#define A_3220 (USHORT)38 /* [EAX + d32] */ +#define A_3221 (USHORT)39 /* [ECX + d32] */ +#define A_3222 (USHORT)40 /* [EDX + d32] */ +#define A_3223 (USHORT)41 /* [EBX + d32] */ +#define A_3225 (USHORT)42 /* [EBP + d32] */ +#define A_3226 (USHORT)43 /* [ESI + d32] */ +#define A_3227 (USHORT)44 /* [EDI + d32] */ + +/* */ +#define A_32S00 (USHORT)45 /* [EAX + si] */ +#define A_32S01 (USHORT)46 /* [ECX + si] */ +#define A_32S02 (USHORT)47 /* [EDX + si] */ +#define A_32S03 (USHORT)48 /* [EBX + si] */ +#define A_32S04 (USHORT)49 /* [ESP + si] */ +#define A_32S05 (USHORT)50 /* [d32 + si] */ +#define A_32S06 (USHORT)51 /* [ESI + si] */ +#define A_32S07 (USHORT)52 /* [EDI + si] */ + +#define A_32S10 (USHORT)53 /* [EAX + si + d8] */ +#define A_32S11 (USHORT)54 /* [ECX + si + d8] */ +#define A_32S12 (USHORT)55 /* [EDX + si + d8] */ +#define A_32S13 (USHORT)56 /* [EBX + si + d8] */ +#define A_32S14 (USHORT)57 /* [ESP + si + d8] */ +#define A_32S15 (USHORT)58 /* [EBP + si + d8] */ +#define A_32S16 (USHORT)59 /* [ESI + si + d8] */ +#define A_32S17 (USHORT)60 /* [EDI + si + d8] */ + +#define A_32S20 (USHORT)61 /* [EAX + si + d32] */ +#define A_32S21 (USHORT)62 /* [ECX + si + d32] */ +#define A_32S22 (USHORT)63 /* [EDX + si + d32] */ +#define A_32S23 (USHORT)64 /* [EBX + si + d32] */ +#define A_32S24 (USHORT)65 /* [ESP + si + d32] */ +#define A_32S25 (USHORT)66 /* [EBP + si + d32] */ +#define A_32S26 (USHORT)67 /* [ESI + si + d32] */ +#define A_32S27 (USHORT)68 /* [EDI + si + d32] */ + +/* memory address directly encoded in instruction */ +#define A_MOFFS16 (USHORT)69 /* [d16] */ +#define A_MOFFS32 (USHORT)70 /* [d32] */ + +/* , xlat addressing form */ +#define A_16XLT (USHORT)71 /* [BX + AL] */ +#define A_32XLT (USHORT)72 /* [EBX + AL] */ + +/* , string addressing forms */ +#define A_16STSRC (USHORT)73 /* [SI] */ +#define A_32STSRC (USHORT)74 /* [ESI] */ +#define A_16STDST (USHORT)75 /* [DI] */ +#define A_32STDST (USHORT)76 /* [EDI] */ + +/* allowable DCD_SUBTYPE'S for memory addressing sub type */ +/* */ +#define A_SINO (UTINY) 0 /* No SIB byte */ +#define A_SI00 (UTINY) 1 /* EAX */ +#define A_SI01 (UTINY) 2 /* ECX */ +#define A_SI02 (UTINY) 3 /* EDX */ +#define A_SI03 (UTINY) 4 /* EBX */ +#define A_SI04 (UTINY) 5 /* none */ +#define A_SI05 (UTINY) 6 /* EBP */ +#define A_SI06 (UTINY) 7 /* ESI */ +#define A_SI07 (UTINY) 8 /* EDI */ + +#define A_SI10 (UTINY) 9 /* EAX x 2 */ +#define A_SI11 (UTINY)10 /* ECX x 2 */ +#define A_SI12 (UTINY)11 /* EDX x 2 */ +#define A_SI13 (UTINY)12 /* EBX x 2 */ +#define A_SI14 (UTINY)13 /* undefined */ +#define A_SI15 (UTINY)14 /* EBP x 2 */ +#define A_SI16 (UTINY)15 /* ESI x 2 */ +#define A_SI17 (UTINY)16 /* EDI x 2 */ + +#define A_SI20 (UTINY)17 /* EAX x 4 */ +#define A_SI21 (UTINY)18 /* ECX x 4 */ +#define A_SI22 (UTINY)19 /* EDX x 4 */ +#define A_SI23 (UTINY)20 /* EBX x 4 */ +#define A_SI24 (UTINY)21 /* undefined */ +#define A_SI25 (UTINY)22 /* EBP x 4 */ +#define A_SI26 (UTINY)23 /* ESI x 4 */ +#define A_SI27 (UTINY)24 /* EDI x 4 */ + +#define A_SI30 (UTINY)25 /* EAX x 8 */ +#define A_SI31 (UTINY)26 /* ECX x 8 */ +#define A_SI32 (UTINY)27 /* EDX x 8 */ +#define A_SI33 (UTINY)28 /* EBX x 8 */ +#define A_SI34 (UTINY)29 /* undefined */ +#define A_SI35 (UTINY)30 /* EBP x 8 */ +#define A_SI36 (UTINY)31 /* ESI x 8 */ +#define A_SI37 (UTINY)32 /* EDI x 8 */ + +/* allowable DCD_IDENTIFIER'S for immediates */ +#define A_IMMC (USHORT)0 /* constant */ +#define A_IMMB (USHORT)1 /* byte */ +#define A_IMMW (USHORT)2 /* word */ +#define A_IMMD (USHORT)3 /* double word */ +#define A_IMMWB (USHORT)4 /* word <- byte */ +#define A_IMMDB (USHORT)5 /* double word <- byte */ + +/* allowable DCD_IDENTIFIER'S for co-processor registers */ +#define A_ST (USHORT)0 /* Stack Top */ +#define A_STP (USHORT)1 /* Push onto Stack Top */ +#define A_STI (USHORT)2 /* Stack Register relative to Stack Top */ + +/* allowable DCD_ADDRESSABILITY'S + + The operand addressability rules, bit encoded as follows:- + Bit 0 = 1 ==> is source argument. + Bit 1 = 1 ==> is destination argument. + */ +#define AA_ 0 +#define AA_R 1 +#define AA_W 2 +#define AA_RW 3 + + +/* + Macros to access operand values. + All take pointer to DECODED_ARG as their argument. + */ + +#define DCD_IDENTIFIER(p) ((p)->identifier) +#define DCD_ADDRESSABILITY(p) ((p)->addressability) +#define DCD_SUBTYPE(p) ((p)->sub_id) +#define DCD_SEGMENT_ID(p) ((p)->arg_values[0]) +#define DCD_DISP(p) ((p)->arg_values[1]) +#define DCD_IMMED1(p) ((p)->arg_values[0]) +#define DCD_IMMED2(p) ((p)->arg_values[1]) +#define DCD_INDEX(p) ((p)->arg_values[0]) diff --git a/private/mvdm/softpc.new/base/inc/dasm.h b/private/mvdm/softpc.new/base/inc/dasm.h new file mode 100644 index 000000000..48c38c47a --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/dasm.h @@ -0,0 +1,32 @@ +/* + dasm.h + + Define interface to dis-assembly function. + */ + +/* + static char SccsID[]="@(#)dasm.h 1.4 08/19/94 Copyright Insignia Solutions Ltd."; + */ + +extern IU16 dasm IPT4(char *, txt, IU16, seg, LIN_ADDR, off, SIZE_SPECIFIER, default_size); + +/* Also available is the internal interface which allows a private + * copy of Intel bytes to be dasm'ed even if they are not within M[] + * Hence the caller supplies the "sas_hw_at" fucntion an any suitable + * LIN_ADDR. The seg:off is used solely for printing. + * This is the routine called by dasm() with p = effective_addr(seg, off) + * and byte_at = sas_hw_at. This procedure can return -1 if it is unable + * to return a byte. + */ +#ifdef DASM_INTERNAL +#include +extern IU16 dasm_internal IPT8( + char *, txt, /* Buffer to hold dis-assembly text (-1 means not required) */ + IU16, seg, /* Segment for xxxx:... text in dis-assembly */ + LIN_ADDR, off, /* ditto offset */ + SIZE_SPECIFIER, default_size,/* 16BIT or 32BIT code segment */ + LIN_ADDR, p, /* linear address of start of instruction */ + read_byte_proc, byte_at, /* like sas_hw_at() to use to read intel */ + char *, fmt, /* sprintf format for first line seg:offset */ + char *, newline); /* strcat text to separate lines */ +#endif /* DASM_INTERNAL */ diff --git a/private/mvdm/softpc.new/base/inc/debug.h b/private/mvdm/softpc.new/base/inc/debug.h new file mode 100644 index 000000000..12e89d088 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/debug.h @@ -0,0 +1,385 @@ +/* + * SccsID = @(#)debug.h 1.5 01/23/95 Copyright Insignia Solutions Ltd. + * + * The following values are used to indicate which ega setting decided that + * the display should be disabled. The global variable display_disabled + * should be 1 (or more) of these values. + * + */ + +#define ASYNC_RESET 1 +#define SYNC_RESET 2 +#define VIDEO_DRIVERS_DISABLED 4 + +#ifndef YES +#define YES 1 +#define NO 0 +#endif + +#ifdef PROD +#define NON_PROD(x) +#define PROD_ONLY(x) x +#else +#define NON_PROD(x) x +#define PROD_ONLY(x) +#endif + +#ifndef PROD +#include +#include "trace.h" + +#ifndef newline +#define newline fprintf(trace_file, "\n") +#endif + +#ifndef file_id +#define file_id fprintf(trace_file, "%s:%d ", __FILE__, __LINE__ ) +#endif + +#define note_entrance0(str) if (io_verbose & EGA_ROUTINE_ENTRY) { file_id;fprintf(trace_file, str);newline; } +#define note_entrance1(str,p1) if (io_verbose & EGA_ROUTINE_ENTRY) { file_id;fprintf(trace_file, str,p1);newline; } +#define note_entrance2(str,p1,p2) if (io_verbose & EGA_ROUTINE_ENTRY) { file_id;fprintf(trace_file, str,p1,p2);newline; } +#define note_entrance3(str,p1,p2,p3) if (io_verbose & EGA_ROUTINE_ENTRY) { file_id;fprintf(trace_file, str,p1,p2,p3);newline; } +#define note_entrance4(str,p1,p2,p3,p4) if (io_verbose & EGA_ROUTINE_ENTRY) { file_id;fprintf(trace_file, str,p1,p2,p3,p4);newline; } +#define note_write_state0(str) if (io_verbose & EGA_WRITE_VERBOSE) { file_id;fprintf(trace_file, str);newline; } +#define note_write_state1(str,p1) if (io_verbose & EGA_WRITE_VERBOSE) { file_id;fprintf(trace_file, str,p1);newline; } +#define note_write_state2(str,p1,p2) if (io_verbose & EGA_WRITE_VERBOSE) { file_id;fprintf(trace_file, str,p1,p2);newline; } +#define note_write_state3(str,p1,p2,p3) if (io_verbose & EGA_WRITE_VERBOSE) { file_id;fprintf(trace_file, str,p1,p2,p3);newline; } +#define note_display_state0(str) if (io_verbose & EGA_DISPLAY_VERBOSE) { file_id;fprintf(trace_file, str);newline; } +#define note_display_state1(str,p1) if (io_verbose & EGA_DISPLAY_VERBOSE) { file_id;fprintf(trace_file, str,p1);newline; } +#define note_display_state2(str,p1,p2) if (io_verbose & EGA_DISPLAY_VERBOSE) { file_id;fprintf(trace_file, str,p1,p2);newline; } +#define note_display_state3(str,p1,p2,p3) if (io_verbose & EGA_DISPLAY_VERBOSE) { file_id;fprintf(trace_file, str,p1,p2,p3);newline; } +#define do_display_trace(str,thing_to_do) if (io_verbose & EGA_DISPLAY_VERBOSE) { file_id;fprintf(trace_file, str);newline;thing_to_do; } + +/* + * Generic tracing stuff to avoid nasty defines everywhere + */ + +#define note_trace0(trace_bit,str) if (io_verbose & (trace_bit)) { file_id; fprintf(trace_file, str); newline; } +#define note_trace1(trace_bit,str,p0) if (io_verbose & (trace_bit)) { file_id;fprintf(trace_file, str,p0);newline; } +#define note_trace2(trace_bit,str,p0,p1) if (io_verbose & (trace_bit)) { file_id;fprintf(trace_file, str,p0,p1);newline; } +#define note_trace3(trace_bit,str,p0,p1,p2) if (io_verbose & (trace_bit)) { file_id;fprintf(trace_file, str,p0,p1,p2);newline; } +#define note_trace4(trace_bit,str,p0,p1,p2,p3) if (io_verbose & (trace_bit)) { file_id;fprintf(trace_file, str,p0,p1,p2,p3);newline; } +#define note_trace5(trace_bit,str,p0,p1,p2,p3,p4) \ + if (io_verbose & (trace_bit)) { \ + file_id;fprintf(trace_file, str,p0,p1,p2,p3,p4);newline; } +#define note_trace6(trace_bit,str,p0,p1,p2,p3,p4,p5) \ + if (io_verbose & (trace_bit)) { \ + file_id;fprintf(trace_file, str,p0,p1,p2,p3,p4,p5);newline; } +#define note_trace7(trace_bit,str,p0,p1,p2,p3,p4,p5,p6) \ + if (io_verbose & (trace_bit)) { \ + file_id;fprintf(trace_file, str,p0,p1,p2,p3,p4,p5,p6);newline; } +#define note_trace8(trace_bit,str,p0,p1,p2,p3,p4,p5,p6,p7) \ + if (io_verbose & (trace_bit)) { \ + file_id;fprintf(trace_file, str,p0,p1,p2,p3,p4,p5,p6,p7); \ + newline; } + + +#define always_trace0(str) { \ + file_id;fprintf(trace_file, str);newline; } +#define always_trace1(str,p0) { \ + file_id;fprintf(trace_file, str,p0);newline; } +#define always_trace2(str,p0,p1) { \ + file_id;fprintf(trace_file, str,p0,p1);newline; } +#define always_trace3(str,p0,p1,p2) { \ + file_id;\ + fprintf(trace_file, str,p0,p1,p2);newline; } +#define always_trace4(str,p0,p1,p2,p3){ \ + file_id; \ + fprintf(trace_file, str,p0,p1,p2,p3); newline; } +#define always_trace5(str,p0,p1,p2,p3,p4){ \ + file_id; \ + fprintf(trace_file, str,p0,p1,p2,p3,p4); newline; } +#define always_trace6(str,p0,p1,p2,p3,p4,p5){ \ + file_id; \ + fprintf(trace_file, str,p0,p1,p2,p3,p4,p5); newline; } +#define always_trace7(str,p0,p1,p2,p3,p4,p5,p6){ \ + file_id; \ + fprintf(trace_file, str,p0,p1,p2,p3,p4,p5,p6); newline; } +#define always_trace8(str,p0,p1,p2,p3,p4,p5,p6,p7){ \ + file_id; \ + fprintf(trace_file,str,p0,p1,p2,p3,p4,p5,p6,p7);newline;} + +/* +** The _no_nl macros also print messages when appropriate, but they do +** not put a new line afterwards. +*/ +#define note_trace0_no_nl(trace_bit, str) \ + if (io_verbose & (trace_bit)){ \ + fprintf(trace_file, str); \ + fflush( trace_file ); \ + } +#define note_trace1_no_nl(trace_bit, str, p0) \ + if (io_verbose & (trace_bit)){ \ + fprintf(trace_file, str, p0); \ + fflush( trace_file ); \ + } +#define note_trace2_no_nl(trace_bit, str, p0, p1) \ + if (io_verbose & (trace_bit)){ \ + fprintf(trace_file, str, p0, p1); \ + fflush( trace_file ); \ + } + +#define sure_note_trace0(trace_bit,str) \ + if (io_verbose & (trace_bit)) {\ + host_block_timer();\ + file_id; fprintf(trace_file, str); newline; \ + host_release_timer();\ + } +#define sure_note_trace1(trace_bit,str,p0) \ + if (io_verbose & (trace_bit)) {\ + host_block_timer();\ + file_id;fprintf(trace_file, str,p0);newline; \ + host_release_timer();\ + } +#define sure_note_trace2(trace_bit,str,p0,p1) \ + if (io_verbose & (trace_bit)) {\ + host_block_timer();\ + file_id;fprintf(trace_file, str,p0,p1);newline; \ + host_release_timer();\ + } +#define sure_note_trace3(trace_bit,str,p0,p1,p2) \ + if (io_verbose & (trace_bit)) {\ + host_block_timer();\ + file_id;fprintf(trace_file, str,p0,p1,p2);newline; \ + host_release_timer();\ + } +#define sure_note_trace4(trace_bit,str,p0,p1,p2,p3) \ + if (io_verbose & (trace_bit)) {\ + host_block_timer();\ + file_id;fprintf(trace_file, str,p0,p1,p2,p3);newline; \ + host_release_timer();\ + } +#define sure_note_trace5(trace_bit,str,p0,p1,p2,p3,p4) \ + if (io_verbose & (trace_bit)) { \ + host_block_timer();\ + file_id;fprintf(trace_file, str,p0,p1,p2,p3,p4);\ + newline; \ + host_release_timer();\ + } +#define sure_note_trace6(trace_bit,str,p0,p1,p2,p3,p4,p5) \ + if (io_verbose & (trace_bit)) { \ + host_block_timer();\ + file_id;fprintf(trace_file, str,p0,p1,p2,p3,p4,p5);\ + newline; \ + host_release_timer();\ + } +#define sure_note_trace7(trace_bit,str,p0,p1,p2,p3,p4,p5,p6) \ + if (io_verbose & (trace_bit)) { \ + host_block_timer();\ + file_id;fprintf(trace_file, str,p0,p1,p2,p3,p4,p5,p6);\ + newline; \ + host_release_timer();\ + } +#define sure_note_trace8(trace_bit,str,p0,p1,p2,p3,p4,p5,p6,p7) \ + if (io_verbose & (trace_bit)) { \ + host_block_timer();\ + file_id;fprintf(trace_file, str,p0,p1,p2,p3,p4,p5,p6,p7); \ + newline; \ + host_release_timer();\ + } + +#define sub_note_trace0(trace_bit,str) \ + if (sub_io_verbose & (trace_bit))\ + { file_id; fprintf(trace_file, str); newline; } +#define sub_note_trace1(trace_bit,str,p0) \ + if (sub_io_verbose & (trace_bit))\ + { file_id;fprintf(trace_file, str,p0);newline; } +#define sub_note_trace2(trace_bit,str,p0,p1) \ + if (sub_io_verbose & (trace_bit))\ + { file_id;fprintf(trace_file, str,p0,p1);newline; } +#define sub_note_trace3(trace_bit,str,p0,p1,p2) \ + if (sub_io_verbose & (trace_bit))\ + { file_id;fprintf(trace_file, str,p0,p1,p2);newline; } +#define sub_note_trace4(trace_bit,str,p0,p1,p2,p3) \ + if (sub_io_verbose & (trace_bit))\ + { file_id;fprintf(trace_file, str,p0,p1,p2,p3);newline; } +#define sub_note_trace5(trace_bit,str,p0,p1,p2,p3,p4) \ + if (sub_io_verbose & (trace_bit))\ + {file_id;fprintf(trace_file, str,p0,p1,p2,p3,p4);newline; } +#define sub_note_trace6(trace_bit,str,p0,p1,p2,p3,p4,p5) \ + if (sub_io_verbose & (trace_bit))\ + {file_id;fprintf(trace_file, str,p0,p1,p2,p3,p4,p5);newline; } +#define sub_note_trace7(trace_bit,str,p0,p1,p2,p3,p4,p5,p6) \ + if (sub_io_verbose & (trace_bit))\ + {file_id;fprintf(trace_file, str,p0,p1,p2,p3,p4,p5,p6);newline; } +#define sub_note_trace8(trace_bit,str,p0,p1,p2,p3,p4,p5,p6,p7) \ + if (sub_io_verbose & (trace_bit))\ + {file_id;fprintf(trace_file, str,p0,p1,p2,p3,p4,p5,p6,p7);newline; } + +#define sure_sub_note_trace0(trace_bit,str) \ + if (sub_io_verbose & (trace_bit))\ + {\ + host_block_timer();\ + file_id; fprintf(trace_file, str); newline; \ + host_release_timer();\ + } +#define sure_sub_note_trace1(trace_bit,str,p0) \ + if (sub_io_verbose & (trace_bit))\ + {\ + host_block_timer();\ + file_id;fprintf(trace_file, str,p0);newline; \ + host_release_timer();\ + } +#define sure_sub_note_trace2(trace_bit,str,p0,p1) \ + if (sub_io_verbose & (trace_bit))\ + {\ + host_block_timer();\ + file_id;fprintf(trace_file, str,p0,p1);newline; \ + host_release_timer();\ + } +#define sure_sub_note_trace3(trace_bit,str,p0,p1,p2) \ + if (sub_io_verbose & (trace_bit))\ + {\ + host_block_timer();\ + file_id;fprintf(trace_file, str,p0,p1,p2);newline; \ + host_release_timer();\ + } +#define sure_sub_note_trace4(trace_bit,str,p0,p1,p2,p3) \ + if (sub_io_verbose & (trace_bit))\ + {\ + host_block_timer();\ + file_id;fprintf(trace_file, str,p0,p1,p2,p3);newline; \ + host_release_timer();\ + } +#define sure_sub_note_trace5(trace_bit,str,p0,p1,p2,p3,p4) \ + if (sub_io_verbose & (trace_bit))\ + {\ + host_block_timer();\ + file_id;fprintf(trace_file, str,p0,p1,p2,p3,p4);newline; \ + host_release_timer();\ + } +#define sure_sub_note_trace6(trace_bit,str,p0,p1,p2,p3,p4,p5) \ + if (sub_io_verbose & (trace_bit))\ + {\ + host_block_timer();\ + file_id;fprintf(trace_file, str,p0,p1,p2,p3,p4,p5);newline; \ + host_release_timer();\ + } +#define sure_sub_note_trace7(trace_bit,str,p0,p1,p2,p3,p4,p5,p6) \ + if (sub_io_verbose & (trace_bit))\ + {\ + host_block_timer();\ + file_id;fprintf(trace_file, str,p0,p1,p2,p3,p4,p5,p6);newline; \ + host_release_timer();\ + } +#define sure_sub_note_trace8(trace_bit,str,p0,p1,p2,p3,p4,p5,p6,p7) \ + if (sub_io_verbose & (trace_bit))\ + {\ + host_block_timer();\ + file_id;fprintf(trace_file, str,p0,p1,p2,p3,p4,p5,p6,p7);newline; \ + host_release_timer();\ + } + +#define assert0(test,str) if (!(test)) { file_id;fprintf(trace_file,str);newline; } +#define assert1(test,str,p1) if (!(test)) { file_id;fprintf(trace_file,str,p1);newline; } +#define assert2(test,str,p1,p2) if (!(test)) { file_id;fprintf(trace_file,str,p1,p2);newline; } +#define assert3(test,str,p1,p2,p3) if (!(test)) { file_id;fprintf(trace_file,str,p1,p2,p3);newline; } +#define assert4(test,str,p1,p2,p3,p4) if (!(test)) { file_id;fprintf(trace_file,str,p1,p2,p3,p4);newline; } +#define assert5(test,str,p1,p2,p3,p4,p5) if (!(test)) { file_id;fprintf(trace_file,str,p1,p2,p3,p4,p5);newline; } +#define assert6(test,str,p1,p2,p3,p4,p5,p6) if (!(test)) { file_id;fprintf(trace_file,str,p1,p2,p3,p4,p5,p6);newline; } +#define assert7(test,str,p1,p2,p3,p4,p5,p6,p7) if (!(test)) { file_id;fprintf(trace_file,str,p1,p2,p3,p4,p5,p6,p7);newline; } +#define assert8(test,str,p1,p2,p3,p4,p5,p6,p7,p8) if (!(test)) { file_id;fprintf(trace_file,str,p1,p2,p3,p4,p5,p6,p7,p8);newline; } + +#define assert0_do(test,str,do) if (!(test)) { file_id;fprintf(trace_file,str);newline;do; } +#define assert1_do(test,str,p1,do) if (!(test)) { file_id;fprintf(trace_file,str,p1);newline;do; } +#define assert2_do(test,str,p1,p2,do) if (!(test)) { file_id;fprintf(trace_file,str,p1,p2);newline;do; } +#define assert3_do(test,str,p1,p2,p3,do) if (!(test)) { file_id;fprintf(trace_file,str,p1,p2,p3);newline;do; } +#define assert4_do(test,str,p1,p2,p3,p4,do) if (!(test)) { file_id;fprintf(trace_file,str,p1,p2,p3,p4);newline;do; } +#define assert5_do(test,str,p1,p2,p3,p4,p5,do) if (!(test)) { file_id;fprintf(trace_file,str,p1,p2,p3,p4,p5);newline;do; } +#define assert6_do(test,str,p1,p2,p3,p4,p5,p6,do) if (!(test)) { file_id;fprintf(trace_file,str,p1,p2,p3,p4,p5,p6);newline;do; } +#define assert7_do(test,str,p1,p2,p3,p4,p5,p6,p7,do) if (!(test)) { file_id;fprintf(trace_file,str,p1,p2,p3,p4,p5,p6,p7);newline;do; } +#define assert8_do(test,str,p1,p2,p3,p4,p5,p6,p7,p8,do) if (!(test)) { file_id;fprintf(trace_file,str,p1,p2,p3,p4,p5,p6,p7,p8);newline;do; } + +#else /* PROD */ + +#ifdef HUNTER +#include +#include "trace.h" +#endif /* HUNTER */ + +#define init_debugging() +#define note_entrance0(str) +#define note_entrance1(str,p1) +#define note_entrance2(str,p1,p2) +#define note_entrance3(str,p1,p2,p3) +#define note_entrance4(str,p1,p2,p3,p4) +#define note_write_state0(str) +#define note_write_state1(str,p1) +#define note_write_state2(str,p1,p2) +#define note_write_state3(str,p1,p2,p3) +#define note_display_state0(str) +#define note_display_state1(str,p1) +#define note_display_state2(str,p1,p2) +#define note_display_state3(str,p1,p2,p3) +#define do_display_trace(str,thing_to_do) +#define note_trace0(trace_bit,str) +#define note_trace1(trace_bit,str,p0) +#define note_trace2(trace_bit,str,p0,p1) +#define note_trace3(trace_bit,str,p0,p1,p2) +#define note_trace4(trace_bit,str,p0,p1,p2,p3) +#define note_trace5(trace_bit,str,p0,p1,p2,p3,p4) +#define note_trace6(trace_bit,str,p0,p1,p2,p3,p4,p5) +#define note_trace7(trace_bit,str,p0,p1,p2,p3,p4,p5,p6) +#define note_trace8(trace_bit,str,p0,p1,p2,p3,p4,p5,p6,p7) +#define always_trace0(str) +#define always_trace1(str,p0) +#define always_trace2(str,p0,p1) +#define always_trace3(str,p0,p1,p2) +#define always_trace4(str,p0,p1,p2,p3) +#define always_trace5(str,p0,p1,p2,p3,p4) +#define always_trace6(str,p0,p1,p2,p3,p4,p5) +#define always_trace7(str,p0,p1,p2,p3,p4,p5,p6) +#define always_trace8(str,p0,p1,p2,p3,p4,p5,p6,p7) +#define note_trace0_no_nl(trace_bit,str) +#define note_trace1_no_nl(trace_bit,str,p0) +#define note_trace2_no_nl(trace_bit,str,p0,p1) +#define sure_note_trace0(trace_bit,str) +#define sure_note_trace1(trace_bit,str,p0) +#define sure_note_trace2(trace_bit,str,p0,p1) +#define sure_note_trace3(trace_bit,str,p0,p1,p2) +#define sure_note_trace4(trace_bit,str,p0,p1,p2,p3) +#define sure_note_trace5(trace_bit,str,p0,p1,p2,p3,p4) +#define sure_note_trace6(trace_bit,str,p0,p1,p2,p3,p4,p5) +#define sure_note_trace7(trace_bit,str,p0,p1,p2,p3,p4,p5,p6) +#define sure_note_trace8(trace_bit,str,p0,p1,p2,p3,p4,p5,p6,p7) +#define sub_note_trace0(trace_bit,str) +#define sub_note_trace1(trace_bit,str,p0) +#define sub_note_trace2(trace_bit,str,p0,p1) +#define sub_note_trace3(trace_bit,str,p0,p1,p2) +#define sub_note_trace4(trace_bit,str,p0,p1,p2,p3) +#define sub_note_trace5(trace_bit,str,p0,p1,p2,p3,p4) +#define sub_note_trace6(trace_bit,str,p0,p1,p2,p3,p4,p5) +#define sub_note_trace7(trace_bit,str,p0,p1,p2,p3,p4,p5,p6) +#define sub_note_trace8(trace_bit,str,p0,p1,p2,p3,p4,p5,p6,p7) +#define sure_sub_note_trace0(trace_bit,str) +#define sure_sub_note_trace1(trace_bit,str,p0) +#define sure_sub_note_trace2(trace_bit,str,p0,p1) +#define sure_sub_note_trace3(trace_bit,str,p0,p1,p2) +#define sure_sub_note_trace4(trace_bit,str,p0,p1,p2,p3) +#define sure_sub_note_trace5(trace_bit,str,p0,p1,p2,p3,p4) +#define sure_sub_note_trace6(trace_bit,str,p0,p1,p2,p3,p4,p5) +#define sure_sub_note_trace7(trace_bit,str,p0,p1,p2,p3,p4,p5,p6) +#define sure_sub_note_trace8(trace_bit,str,p0,p1,p2,p3,p4,p5,p6,p7) + +#define assert0(test,str) +#define assert1(test,str,p1) +#define assert2(test,str,p1,p2) +#define assert3(test,str,p1,p2,p3) +#define assert4(test,str,p1,p2,p3,p4) +#define assert5(test,str,p1,p2,p3,p4,p5) +#define assert6(test,str,p1,p2,p3,p4,p5,p6) +#define assert7(test,str,p1,p2,p3,p4,p5,p6,p7) +#define assert8(test,str,p1,p2,p3,p4,p5,p6,p7,p8) + +#define assert0_do(test,str,do) +#define assert1_do(test,str,p1,do) +#define assert2_do(test,str,p1,p2,do) +#define assert3_do(test,str,p1,p2,p3,do) +#define assert4_do(test,str,p1,p2,p3,p4,do) +#define assert5_do(test,str,p1,p2,p3,p4,p5,do) +#define assert6_do(test,str,p1,p2,p3,p4,p5,p6,do) +#define assert7_do(test,str,p1,p2,p3,p4,p5,p6,p7,do) +#define assert8_do(test,str,p1,p2,p3,p4,p5,p6,p7,p8,do) + +#endif /* PROD */ diff --git a/private/mvdm/softpc.new/base/inc/decode.h b/private/mvdm/softpc.new/base/inc/decode.h new file mode 100644 index 000000000..33f2aea54 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/decode.h @@ -0,0 +1,60 @@ +/* + decode.h + + Define all data types and functions supported by the Intel + instruction decoder. + */ + +/* + static char SccsID[]="@(#)decode.h 1.5 08/25/94 Copyright Insignia Solutions Ltd."; + */ + +#ifndef _DECODE_H_ +#define _DECODE_H_ + +typedef struct + { + UTINY arg_type; /* Decoded operand type. */ + USHORT identifier; /* Identifier within a specific type */ + UTINY sub_id; /* Sub-identifier */ + UTINY addressability; /* How the operand is addressed */ + ULONG arg_values[2]; /* Specific values for operand. */ + } DECODED_ARG; + +typedef struct + { + UTINY operand_size; /* Operand size for inst. */ + UTINY address_size; /* Address size for inst. */ + UTINY prefix_sz; /* Nr. of prefix bytes (maybe 0). */ + UTINY inst_sz; /* Nr. bytes in inst. (includes prefix bytes) */ + USHORT inst_id; /* Decoded instruction identifier. */ + DECODED_ARG args[3]; /* Three operands arg1, arg2, arg3 are */ + /* allowed. */ + } DECODED_INST; + +/* + The allowable types of address size. + */ +#define ADDR_16 (UTINY)0 +#define ADDR_32 (UTINY)1 + +/* + The allowable types of operand size. + */ +#define OP_16 (UTINY)0 +#define OP_32 (UTINY)1 + + +#ifdef ANSI +typedef IS32 (*read_byte_proc) (LIN_ADDR); +#else +typedef IS32 (*read_byte_proc) (); +#endif + +extern void decode IPT4( + LIN_ADDR, p, + DECODED_INST *, d_inst, + SIZE_SPECIFIER, default_size, + read_byte_proc, func +); +#endif /* _DECODE_H_ */ diff --git a/private/mvdm/softpc.new/base/inc/dfa.h b/private/mvdm/softpc.new/base/inc/dfa.h new file mode 100644 index 000000000..1aeddd8d3 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/dfa.h @@ -0,0 +1,143 @@ +/*[ + * Name: dfa.h + * + * Derived From: DEC 3.0 dfa.gi and pk_dfa.gi + * + * Author: Justin Koprowski + * + * Created On: 18th February 1992 + * + * Sccs ID: @(#)dfa.h 1.5 01/29/93 + * + * Purpose: DFA definitions + * + * (c)Copyright Insignia Solutions Ltd., 1992. All rights reserved. +]*/ + +/* DFA global functions */ + +IMPORT VOID dfa_run IPT1(USHORT, isymb); +IMPORT LONG dfa_load IPT2(CHAR *, file, LONG *, err); +IMPORT VOID dfa_init IPT0(); + +/* + * mapping to use for displaying IBM extended + * ASCII char. + */ + +typedef struct { + SHORT hostval;/* host character to use */ + SHORT cset; /* host character set to use */ +} gmap_; + +/* + * this gets initialised from the compiled + * description file (see dfa_build() in dfa.c) + * as does dispcap below + */ + +IMPORT gmap_ dfa_glist[256]; + +#define NALTCHARSETS 6+1 /* 6 alt.+base */ + +typedef struct { + CHAR *spcon; /* terminal start up string */ + CHAR *spcoff; /* terminal shutdown string */ + CHAR *shiftin; /* activate base char set */ + CHAR *shiftout; /* activate selected alt.char set */ + CHAR *alt[NALTCHARSETS]; /* select alt.char sets */ + CHAR *ctldisp; /* display control codes */ + CHAR *ctlact; /* interpret control codes */ +} dispcap_; + +IMPORT dispcap_ dispcap; + +#define DFA_NOFILE 1 +#define DFA_BADFILE 2 +#define DFA_NOMEM 3 + + +/* + * define structure of keyboard input machine header + * as found at front of its definition file + */ + +#define DFA_MAGIC 0x01d1 + +typedef struct { + SHORT magic; /* some daft signature */ + SHORT startstateid; /* the starting DFA state */ + SHORT nDFAstates; /* number of deterministic states */ + SHORT nalphabet; /* number of symbols in input alphabet */ + SHORT n_in_tlist; /* size of transition list block */ + SHORT n_in_alist; /* size of acceptance actions block */ + SHORT nindices; /* #.capability strings for display */ + SHORT sizeofcapstrings; /* #.bytes for all cap.strings */ +} machineHdr_, *machineHdrPtr_; + + +/* + * pseudocodes for semantic actions on machine accepting + * an input string + */ + +#define SEM_SELECTINTERP 0 +#define SEM_LOCK 1 +#define SEM_LOCK1 2 +#define SEM_UNLK 3 +#define SEM_UNLK1 4 +#define SEM_UNLK2 5 +#define SEM_TOGLOCK 6 +#define SEM_TOGLOCK1 7 +#define SEM_TOGLOCK2 8 +#define SEM_SWITCH 9 +#define SEM_KYHOT 10 +#define SEM_KYHOT2 11 +#define SEM_REFRESH 12 +#define SEM_UNPUT 13 +#define SEM_ALOCK1 14 +#define SEM_ASPC 15 +#define SEM_EXIT 16 +#define SEM_KYHOT3 17 +#define SEM_FLATOG 18 +#define SEM_FLBTOG 19 +#define SEM_SLVTOG 20 +#define SEM_COMTOG 21 +#define SEM_EDSPC 22 +#define SEM_LSTSET 23 + +/* + * indicate how transition list is packed for a given DFA state + * Indexed is an array of next state id's, indexed by the input + * symbol. + * Unindexed is an array of (state id, input symbol) pairs which + * are searched for match on input symbol. + */ + +#define PINDEXED 1 +#define PUNINDEXED 2 + +/* + * indicate the importance of a given DFA state. + * upon reaching an ENDSTATE, can undertake the semantic actions + * provided there are no further transitions from this state. + * if there are, then must wait to see what next input symbol is. + * If this doesn't match, we can definitely undertake these actions + */ + +#define STARTSTATE 1 +#define ENDSTATE 2 +#define INTERMEDIATE 0 +#define ILLEGAL 0xffff + +#define WILDC 0x101 + +typedef struct { + UTINY attrib; /* state attribute (start, end etc.) */ + UTINY howpacked; /* INDEXED or UNINDEXED */ + SHORT ntrans; /* #.members of transition list */ + ULONG nextstates; /* offset within packed trans.list area */ + /* to start of this list */ + ULONG actions; /* offset into action list area for */ + /* actions for this state (if acceptor) */ +} packedDFA_, *packedDFAPtr_; diff --git a/private/mvdm/softpc.new/base/inc/disk_geo.h b/private/mvdm/softpc.new/base/inc/disk_geo.h new file mode 100644 index 000000000..4c8a9d7f3 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/disk_geo.h @@ -0,0 +1,54 @@ +/*[ + * Name: disk_geom.h + * + * Derived From: n/a + * + * Author: Dave Howell. + * + * Created: September 1992. + * + * Sccs ID: @(#)disk_geom.h 1.1 01/12/93 + * + * Purpose: This header is the interface to disk_geom.c, and provides + * definitions of some disk geometry constants. + * + * Interface: n/a + * + * (c)Copyright Insignia Solutions Ltd., 1992. All rights reserved. + * +]*/ + +/* + * Interface to disk_geom.c + */ + +IMPORT BOOL do_geom_validation IPT4 ( unsigned long, dos_size, + SHORT *, nCylinders, + UTINY *, nHeads, + UTINY *, nSectors); + +/* + * Some manifest constants used in disk calculations. + */ + +#define ONEMEG 1024 * 1024 +#define HD_MAX_DISKALLOCUN 32 +#define HD_SECTORS_PER_TRACK 17 +#define HD_HEADS_PER_DRIVE 4 +#define HD_BYTES_PER_SECTOR 512 +#define HD_SECTORS_PER_CYL (HD_HEADS_PER_DRIVE * HD_SECTORS_PER_TRACK) +#define HD_BYTES_PER_CYL (HD_BYTES_PER_SECTOR * HD_SECTORS_PER_CYL) +#define HD_DISKALLOCUNSIZE (HD_BYTES_PER_CYL * 30) +#define SECTORS 0x0c /* offset in buffer for sectors in partition + * marker */ +#define MAX_PARTITIONS 5 +#define START_PARTITION 0x1be +#define SIZE_PARTITION 16 +#define SIGNATURE_LEN 2 + +#define checkbaddrive(d) if ( (d) != 0 && (d) != 1) host_error(EG_OWNUP,ERR_QUIT,"illegal driveid (host_fdisk)"); + + + + + diff --git a/private/mvdm/softpc.new/base/inc/dma.h b/private/mvdm/softpc.new/base/inc/dma.h new file mode 100644 index 000000000..64b04140a --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/dma.h @@ -0,0 +1,528 @@ +/* + * SoftPC-AT Revision 2.0 + * + * Title : IBM PC-AT DMA Adaptor declarations + * + * Description : This module contains declarations that are used in + * accessing the DMA Adaptor emulation + * + * Author(s) : Ross Beresford + * + * Notes : For a detailed description of the IBM DMA Adaptor, + * and the INTEL DMA Controller chips refer to the following + * documents: + * + * - IBM PC/AT Technical Reference Manual + * (Section 1-9 Direct Memory Access) + * - INTEL Microsystems Components Handbook + * (Section 2-52 DMA Controller 8237A) + * + * A more succinct account of the DMA adaptor follows: + * + + * DMA Adaptor: + * ----------- + * + * The DMA "adaptor" is really just a part of the AT System Board. This + * is its block diagram: + * + * +-----------+ + * 000-01F |8237A-5 | 0| A0-A7 + * IOS <-+------> | DMA | 1| -------------------------------------+ + * | | CNTRL | 2| +-------+ | + * | | 0 | 3| ---> |ALS 573| A8-A15| + * | +-----------+ | DMA | ----------------------+ + * | ^ |ADDRESS| | + * | \ | LATCH | +-------+ | + * | \ cascade +-------+ | LS612 | | + * |080-09F \ | | A16-A23| + * +----------------------------------------> | DMA | -------+ + * | \ | PAGE | A17-A23| + * | +-----------+ | REG | | + * | |8237A-5 | 4| +-------+ | + * +------> | DMA | 5| -------------------------------------+ + * 0C0-0DF | CNTRL | 6| +-------+ A9-A16| + * | 1 | 7| ---> |ALS 573| | + * +-----------+ | DMA | ----------------------+-> SAS + * |ADDRESS| A1-A8 + * | LATCH | + * +-------+ + + * DMA Controllers: + * --------------- + * + * The 8237A-5 DMA controller chips used are restricted to 4 DMA + * channels each: thus, 2 DMA controller chips are required to give the + * AT's 7 DMA channels. + * + * The 8237A-5 DMA controller chips support more than one device by + * "cascading" them: that is, connecting the control inputs of the + * "additional" device to the control outputs of the "initial" device. + * One channel in the initial device must be dedicated to serving + * each additional device by setting it to "cascade mode". + * + * On the AT system board, channel 4 of DMA Controller 1 is set to + * "cascade mode", and serves DMA Controller 0. + * + * Channels 0-3 (on DMA Controller 0) are used to support 8-bit I/O + * devices and provide transfers of up to 64K bytes: the 16-bit addresses + * generated by the DMA Controller are mapped directly onto bits A0-A15 + * of a 24 bit system address. + * + * Channels 5-7 (on DMA Controller 1) are used to support 16-bit I/O + * devices and provide transfers of up to 128K bytes: the 16-bit addresses + * generated by the DMA Controller are mapped onto bits A1-A16 of a + * 24 bit system address, and bit A0 is set to 0. + * + * The state of a controller is defined by a set of internal registers + * and a flip-flop: the internal registers are used in setting up and + * performing a DMA transfer; the First/Last Flip-Flop controls which + * byte of a 16 bit address is accessed from the I/O bus. + * + * The state information for a controller is represented by a DMA_CNTRL + * object. + + * DMA Address Latches: + * ------------------- + * + * Each DMA Controller has an ALS573 DMA Address Latch associated with + * it. These are required because of a restriction in the design of the + * DMA Controller: in order to reduce its pin count it does not directly + * output bits A8-A15 onto the address bus, but uses an external latch. + * + * Since the address latches do not have any separate functional + * identity, their state and behaviour is included in with the + * controllers. + + * DMA Page Registers: + * ------------------ + * + * An LS612 DMA Page Register chip is used to establish the constant top + * bits of the system address for a DMA transfer; each DMA channel has a + * byte register in the chip for this purpose. + * + * In DMA channels 0-3, bits A16-A23 of the 24 bit system address are + * established from bits D0-D7 of the page register for the channel. + * + * In DMA channels 5-7, bits A17-A23 of the 24 bit system address are + * established from bits D1-D7 of the page register for the channel: + * Bit D0 is not used for these channels, since bit A16 of the system + * address is established by the DMA controller for these channels. + * + * The state information for the page register chip is represented + * by a DMA_PAGE object. + */ + +/* SccsID[]="@(#)dma.h 1.7 11/10/92 Copyright Insignia Solutions Ltd."; */ + +/* + * ============================================================================ + * Structure/Data definitions + * ============================================================================ + */ + +/* + * DMA CONTROLLER + */ + +/* the number of channels per controller */ +#define DMA_CONTROLLER_CHANNELS 4 + +/* a flip-flop; it toggles between the values 0 and 1 */ +typedef unsigned int DMA_FLIP_FLOP; + +/* a DMA address; it is indexed by the flip-flop value */ +typedef half_word DMA_WORD[2]; + +/* a DMA command */ +#ifdef BIT_ORDER1 +typedef union +{ + half_word all; + struct + { + HALF_WORD_BIT_FIELD DACK_high:1; /* not supported */ + HALF_WORD_BIT_FIELD DREQ_high:1; /* not supported */ + HALF_WORD_BIT_FIELD extended_write:1; /* not supported */ + HALF_WORD_BIT_FIELD rotate_priority:1; + HALF_WORD_BIT_FIELD compressed_timing:1;/* not supported */ + HALF_WORD_BIT_FIELD controller_disable:1; + HALF_WORD_BIT_FIELD ch0_address_hold:1;/* not supported */ + HALF_WORD_BIT_FIELD mm_enable:1; /* not supported */ + } bits; +} DMA_COMMAND; +#endif +#ifdef BIT_ORDER2 +typedef union +{ + half_word all; + struct + { + HALF_WORD_BIT_FIELD mm_enable:1; /* not supported */ + HALF_WORD_BIT_FIELD ch0_address_hold:1;/* not supported */ + HALF_WORD_BIT_FIELD controller_disable:1; + HALF_WORD_BIT_FIELD compressed_timing:1; /* not supported */ + HALF_WORD_BIT_FIELD rotate_priority:1; + HALF_WORD_BIT_FIELD extended_write:1; /* not supported */ + HALF_WORD_BIT_FIELD DREQ_high:1; /* not supported */ + HALF_WORD_BIT_FIELD DACK_high:1; /* not supported */ + } bits; +} DMA_COMMAND; +#endif + +/* a DMA mode */ +#ifdef BIT_ORDER1 +typedef union +{ + half_word all; + struct + { + HALF_WORD_BIT_FIELD mode:2; /* single/block/demand/cascade */ + HALF_WORD_BIT_FIELD address_dec:1; /* inc or dec count */ + HALF_WORD_BIT_FIELD auto_init:1; /* autoinitialize ? */ + HALF_WORD_BIT_FIELD transfer_type:2; /* read/write/verify */ + HALF_WORD_BIT_FIELD scratch:2; /* channel select mapped here */ + } bits; +} DMA_MODE; +#endif +#ifdef BIT_ORDER2 +typedef union +{ + half_word all; + struct + { + HALF_WORD_BIT_FIELD scratch:2; /* channel select mapped here */ + HALF_WORD_BIT_FIELD transfer_type:2; /* read/write/verify */ + HALF_WORD_BIT_FIELD auto_init:1; /* autoinitialize ? */ + HALF_WORD_BIT_FIELD address_dec:1; /* inc or dec count */ + HALF_WORD_BIT_FIELD mode:2; /* single/block/demand/cascade */ + } bits; +} DMA_MODE; +#endif + +/* DMA Mode register mode bit settings */ +#define DMA_DEMAND_MODE 0 +#define DMA_SINGLE_MODE 1 +#define DMA_BLOCK_MODE 2 +#define DMA_CASCADE_MODE 3 + +/* DMA Mode register transfer type bit settings */ +#define DMA_VERIFY_TRANSFER 0 +#define DMA_WRITE_TRANSFER 1 +#define DMA_READ_TRANSFER 2 +#define DMA_ILLEGAL_TRANSFER 3 + +/* a DMA status */ +#ifdef BIT_ORDER1 +typedef union +{ + half_word all; + struct + { + HALF_WORD_BIT_FIELD request:4; /* request pending */ + HALF_WORD_BIT_FIELD terminal_count:4; /* terminal count reached */ + } bits; +} DMA_STATUS; +#endif +#ifdef BIT_ORDER2 +typedef union +{ + half_word all; + struct { + HALF_WORD_BIT_FIELD terminal_count:4; /* terminal count reached */ + HALF_WORD_BIT_FIELD request:4; /* request pending */ + } bits; +} DMA_STATUS; +#endif + +/* a DMA mask register (only the bottom 4 bits are meaningful) */ +typedef half_word DMA_MASK; + +/* a DMA Controller state */ +typedef struct +{ + DMA_WORD base_address[DMA_CONTROLLER_CHANNELS]; + DMA_WORD base_count[DMA_CONTROLLER_CHANNELS]; + DMA_WORD current_address[DMA_CONTROLLER_CHANNELS]; + DMA_WORD current_count[DMA_CONTROLLER_CHANNELS]; + DMA_WORD temporary_address[DMA_CONTROLLER_CHANNELS]; + DMA_WORD temporary_count[DMA_CONTROLLER_CHANNELS]; + DMA_STATUS status; + DMA_COMMAND command; + half_word temporary; + DMA_MODE mode[DMA_CONTROLLER_CHANNELS]; + DMA_MASK mask; + half_word request; + DMA_FLIP_FLOP first_last; +} DMA_CNTRL; + +/* + * DMA PAGE REGISTERS + */ + +/* the number of channels per page register chip */ +#define DMA_PAGE_CHANNELS 16 + +/* a DMA Page Register chip state */ +typedef struct +{ + half_word page[DMA_PAGE_CHANNELS]; +} DMA_PAGE; + +/* + * DMA ADAPTOR + */ + +/* the number of controllers per adaptor */ +#define DMA_ADAPTOR_CONTROLLERS 2 + +/* the numbering convention for the controllers */ +#define DMA_CONTROLLER 0 +#define DMA1_CONTROLLER 1 + +/* a DMA adaptor state */ +typedef struct +{ + DMA_CNTRL controller[DMA_ADAPTOR_CONTROLLERS]; + DMA_PAGE pages; +} DMA_ADAPT; + +/* the number of logical channels per adaptor */ +#define DMA_ADAPTOR_CHANNELS \ + (DMA_ADAPTOR_CONTROLLERS * DMA_CONTROLLER_CHANNELS) + +/* macros for converting between logical and physical channel numbers */ +#define dma_logical_channel(controller, channel) \ + (controller*DMA_CONTROLLER_CHANNELS + channel) +#define dma_physical_channel(channel) \ + (channel%DMA_CONTROLLER_CHANNELS) +#define dma_physical_controller(channel) \ + (channel/DMA_CONTROLLER_CHANNELS) + +/* macro for building a system address dependent on the channel */ +#define dma_system_address(channel, page, offset) \ + ( (channel < 4) \ + ? (((sys_addr)(page & 0xff) << 16) | ((sys_addr)(offset & 0xffff) << 0)) \ + : (((sys_addr)(page & 0xfe) << 16) | ((sys_addr)(offset & 0xffff) << 1)) ) + +/* macro for determining the DMA unit size dependent on the channel */ +#define dma_unit_size(channel) ( (channel < 4) ? 1 : 2) + +/* the channel assignments */ +#define DMA_RESERVED_CHANNEL_0 0 +#define DMA_SDLC_CHANNEL 1 +#define DMA_DISKETTE_CHANNEL 2 +#define DMA_DISK_CHANNEL 3 +#define DMA_CASCADE_CHANNEL 4 +#define DMA_RESERVED_CHANNEL_5 5 +#define DMA_RESERVED_CHANNEL_6 6 +#define DMA_RESERVED_CHANNEL_7 7 +#define DMA_FAKE_CHANNEL_1 8 +#define DMA_FAKE_CHANNEL_2 9 +#define DMA_FAKE_CHANNEL_3 10 +#define DMA_FAKE_CHANNEL_4 11 +#define DMA_FAKE_CHANNEL_5 12 +#define DMA_FAKE_CHANNEL_6 13 +#define DMA_FAKE_CHANNEL_7 14 +#define DMA_REFRESH_CHANNEL 15 + +/* these masks define the redundant bits of the I/O addresses */ +#define DMA_REDUNDANT_BITS 0x10 +#define DMA1_REDUNDANT_BITS 0x01 +#define DMA_PAGE_REDUNDANT_BITS 0x10 + +/* + * DMA Address - the following union is used only in the BIOS functions + * to help determine how a system address should be expressed in terms + * of its component parts. + * It is not used within the DMA emulation + */ +#ifdef BIGEND +typedef union +{ + sys_addr all; + half_word array[4]; + struct + { + half_word pad; + half_word page; + half_word high; + half_word low; + } parts; + struct + { + word high; + word low; + } words; +} DMA_ADDRESS; +#endif +#ifdef LITTLEND +typedef union +{ + sys_addr all; + half_word array[4]; + struct + { + half_word low; + half_word high; + half_word page; + half_word pad; + } parts; + struct + { + word low; + word high; + } words; +} DMA_ADDRESS; +#endif + +/* + * ============================================================================ + * External declarations and macros + * ============================================================================ + */ + +/* + * void dma_init() + * { + * This function performs several distinct initialisation + * tasks associated with the DMA adaptor: + * + * the DMA Controller chips and the DMA Page Register chip + * are connected to the I/O bus; + * + * a hardware reset is performed for each DMA Controller + * chip; + * } + */ +IMPORT VOID dma_init IPT0(); + +/* + * void dma_post() + * { + * the mode register for each DMA channel is set up to the + * normal value for an AT. + * } + */ +IMPORT VOID dma_post IPT0(); + +/* + * void dma_inb(port, value) + * io_addr port; + * half_word *value; + * { + * This function is invoked when a read is performed on an + * I/O address "port" in the range of one of the DMA + * Controller chips. dma_inb() may also be called directly + * from the BIOS. + * + * The function maps the I/O address to the particular DMA + * controller and returns the value of the requested + * register in "*value". + * } + */ +IMPORT VOID dma_inb IPT2(io_addr, port, half_word *, value); + +/* + * void dma_outb(port, value) + * io_addr port; + * half_word value; + * { + * This function is invoked when a write is performed to an + * I/O address "port" in the range of one of the DMA + * Controller chips. dma_outb() may also be called directly + * from the BIOS. + * + * The function maps the I/O address to the particular DMA + * controller and sets the requested register to "value". + * } + */ +IMPORT VOID dma_outb IPT2(io_addr, port, half_word, value); + +/* + * void dma_page_inb(port, value) + * io_addr port; + * half_word *value; + * { + * This function is invoked when a read is performed on an + * I/O address "port" in the range of the DMA Page Register + * chip. dma_page_inb() may also be called directly from the + * BIOS. + * + * The function maps the I/O address to a particular DMA + * page register and returns its value in "*value". + * } + */ +IMPORT VOID dma_page_inb IPT2(io_addr, port, half_word *, value); + +/* + * void dma_page_outb(port, value) + * io_addr port; + * half_word value; + * { + * This function is invoked when a write is performed to an + * I/O address "port" in the range of the DMA Page Register + * chip. dma_page_outb() may also be called directly from the + * BIOS. + * + * The function maps the I/O address to a particular DMA + * page register and sets it to "value". + * } + */ +IMPORT VOID dma_page_outb IPT2(io_addr, port, half_word, value); + +/* + * dma_request(channel, hw_buffer, length) + * half_word channel; + * char *hw_buffer; + * word length; + * { + * I/O devices call this function to initiate a DMA + * transfer. It is analogous to raising the DREQ line + * on the DMA controller for the channel. + * + * The DMA channel to be used is passed in "channel"; + * "hw_buffer" is the address in the device's memory + * space of the buffer that should be read from or written + * into the system address space; "length" is the maximum + * number of units to be transferred: the unit is a + * half_word for channels 0-3 and a word for channels 5-7. + * + * The function returns TRUE if more transfers can be + * accepted or FALSE if the terminal count has been + * reached. + * } + */ +IMPORT int dma_request IPT3(half_word, port, char *, hw_buffer, word, length); + +/* + * void dma_enquire(channel, address, length) + * half_word channel; + * sys_addr *address; + * word *length; + * { + * I/O devices call this function to find out how the + * DMA controller has been programmed up to do a transfer. + * + * The DMA channel to be accessed is passed in "channel"; + * the address in system address space that will be read + * or written in the transfer is returned in "*address"; + * "length" is the number of units that have been + * requested: the unit is a half_word for channels 0-3 + * and a word for channels 5-7. + * } + */ +IMPORT VOID dma_enquire IPT3(half_word, channel, sys_addr *, address, word *, length); + +#ifdef NTVDM +/* + * BOOL dmaGetAdaptor + * + * Used by MS for third party Vdds to retrieve current DMA settings + * + * entry: void + * exit : DMA_ADAPT * , pointer to the DMA_ADAPT structure + * + */ +DMA_ADAPT *dmaGetAdaptor(); +#endif /* NTVDM */ diff --git a/private/mvdm/softpc.new/base/inc/dpmi.h b/private/mvdm/softpc.new/base/inc/dpmi.h new file mode 100644 index 000000000..525537b4b --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/dpmi.h @@ -0,0 +1,137 @@ + +/* + * SoftPC AT Revision 2.0 + * + * Title : DPMI host definitions + * + * Description : Definitions for the DPMI TSR host + * + * Author : WTG Charnell + * + * Notes : None + */ + + + +/* SccsID[]="@(#)dpmi.h 1.1 08/06/93 Copyright Insignia Solutions Ltd."; */ + +#define LDT_INCR 8 +#define LDT_DESC_MASK 7 /* LDT desc , prot level 3 */ +#define LDT_SHIFT 3 +#define LDT_ALLOC_LIMIT 0x1fff /* max avail LDT selectors */ +#define MIN_EMM_BLOCK 0x14000 /* amount of EMM needed by TSR */ +#define MEM_HANDLE_BLOCK_SIZE 0x100 /* DPMI mem handles are obtained in blocks of this size */ +#define CALL_INST_SIZE 7 /* 32 bit far call = 7 bytes */ +#define PUSH_JMP_SIZE 8 /* PUSH word then far jmp = 8 bytes */ +#define STACKLET_SIZE 192 /* safe size according to DOSX */ +#define MAX_WP_HANDLE 4 /* maximnum active watchpoints (386 dbg regs) */ + +#define INIT_R0_SP 0x7e +#define INIT_LOCKED_SP 0xffe +#define RM_SEG_SIZE 0x900 +#define NUM_CALLBACKS 32 +#define METASTACK_LIMIT 20 + +#define DPMI_FN_VERB 0x1 +#define DPMI_MDSW_VERB 0x2 +#define DPMI_INT_VERB 0x4 +#define DPMI_GEN_VERB 0x8 +#define DPMI_STACK_VERB 0x10 +#define DPMI_ERROR_VERB 0x20 + + +typedef struct +{ + BOOL allocated; + BOOL rm_seg; +} LDT_alloct; + +typedef struct mem_alloc +{ + IU32 base_addr; + IU32 size; + IU32 handle; + IU16 selector; + struct mem_alloc *next; +} mem_alloct; + +typedef struct +{ + IU16 segment; + IU32 offset; +} DPMI_intvect; + +typedef struct +{ + IU16 CS; + IU16 DS; + IU16 ES; + IU16 SS; + IU32 SP; + IU32 IP; + IU32 DI; + IU32 SI; + IU32 BP; + IU32 AX; + IU32 BX; + IU32 CX; + IU32 DX; + IU32 Flags; + BOOL wrapping; + BOOL already_iretted; +} DPMI_saved_state; + +typedef struct +{ + DPMI_intvect rm_vec; + DPMI_intvect rm_call_struct; + DPMI_intvect pm_routine; + IU16 rm_stack_alias; + BOOL used; +} DPMI_callbackt; + +typedef struct +{ + DPMI_intvect wp_addr; + IU8 wp_size; + IU8 wp_type; + IU8 reg; + BOOL wp_hit; + BOOL used; +} DPMI_debugwpt; + +typedef struct +{ + IU32 DCR; + IU32 DSR; + IU32 DR[5]; +} debug_regt; + +extern IU16 allocate_one_desc IPT0(); + +extern VOID setup_LDT_desc IPT4( IU16, selector, IU32, base, IU32, limit, + IU16, access_rights); + +extern VOID DPMI_exc_ret IPT0(); + +extern VOID push_rm_sp IPT1(IU16, spval); + +extern VOID pop_rm_sp IPT0(); + +extern IU16 get_next_rm_sp IPT0(); + +extern VOID free_rm_sp_entry IPT0(); + +extern VOID push_locked_sp IPT1(IU16, spval); + +extern VOID pop_locked_sp IPT0(); + +extern IU16 get_next_locked_sp IPT0(); + +extern VOID free_locked_sp_entry IPT0(); + +extern VOID Reserve_one_desc IPT1(IU16, sel); + +extern VOID dpmi_trace IPT9(IU32, mask, char*, str, char*, p1, + char *, p2, char *, p3, char *, p4, char *, p5, char *, p6, + char *, p7); diff --git a/private/mvdm/softpc.new/base/inc/dsktrace.h b/private/mvdm/softpc.new/base/inc/dsktrace.h new file mode 100644 index 000000000..85d32f994 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/dsktrace.h @@ -0,0 +1,118 @@ +/* SccsId = @(#)dsktrace.h 1.9 04/12/95 */ +/* + * dsktrace.h + * + * Jerry Kramskoy + * (reworked due to CI by Ade Brownlow ) + * + */ + +/* to use disk traceing, must set the relevant bit(s) with the yoda + * 'it' command (e.g it 20), which then lets user select info required + * AJO 15/12/92; Can also use yoda trace command, for which these constants + * were changed from (1 << 2) to 0x4 style cos' Alpha/OSF/1 compiler won't + * initialise a constant expression of this kind. + */ + +/* trace fixed disk bios entry and exit + * (with status and CF on exit) + */ +#define CALL 0x1 /* reserved */ + +/* give info about BIOS command + */ +#define CMDINFO 0x2 + +/* give information about execution of BIOS command + * (gives results, and parameters of commands) + */ +#define XINFO 0x4 + +/* give execution status of BIOS command + * (flags errors during polls of disk controller, etc) + */ +#define XSTAT 0x8 + +/* trace physical attach,detach + */ +#define PAD 0x10 + +/* trace io attach,detach + */ +#define IOAD 0x20 + +/* trace inb's, outb's, etc + */ +#define PORTIO 0x40 + +/* trace fixed disk IRQ line + */ +#define INTRUPT 0x80 + +/* trace fixed disk hw activity + * (selects PORTIO, INTRUPT also) + */ +#define HWXINFO 0x100 + +/* disk data dump + */ +#define DDATA 0x200 + +/* trace host physical io (file pointer locn pre read(), write()) + */ +#define PHYSIO 0x400 + +/* to activate fixed disk controller tracing, must set DHW bit + */ +#define DHW 0x4000 + +/* to activate disk BIOS tracing, must set DBIOS bit + */ + +#define DBIOS 0x8000 + +/* wdctrl_bop reads/writes + */ +#define WDCTRL 0x10000 + +/* + * handles to be used when bundling up multiple trace output + */ +#define INW_TRACE_HNDL 1 +#define OUTW_TRACE_HNDL 2 + + +/* disk tracing macro + */ +#ifndef PROD +#define dt0(infoid,hndl,fmt) \ + {if (io_verbose & HDA_VERBOSE) disktrace(infoid,0,hndl,fmt,0,0,0,0,0);} +#define dt1(infoid,hndl,fmt,i) \ + {if (io_verbose & HDA_VERBOSE) disktrace(infoid,1,hndl,fmt,i,0,0,0,0);} +#define dt2(infoid,hndl,fmt,i,j) \ + {if (io_verbose & HDA_VERBOSE) disktrace(infoid,2,hndl,fmt,i,j,0,0,0);} +#define dt3(infoid,hndl,fmt,i,j,k) \ + {if (io_verbose & HDA_VERBOSE) disktrace(infoid,3,hndl,fmt,i,j,k,0,0);} +#define dt4(infoid,hndl,fmt,i,j,k,l) \ + {if (io_verbose & HDA_VERBOSE) disktrace(infoid,4,hndl,fmt,i,j,k,l,0);} +#define dt5(infoid,hndl,fmt,i,j,k,l,m) \ + {if (io_verbose & HDA_VERBOSE) disktrace(infoid,5,hndl,fmt,i,j,k,l,m);} +#else +#define dt0(infoid,hndl,fmt) ; +#define dt1(infoid,hndl,fmt,i) ; +#define dt2(infoid,hndl,fmt,i,j) ; +#define dt3(infoid,hndl,fmt,i,j,k) ; +#define dt4(infoid,hndl,fmt,i,j,k,l) ; +#define dt5(infoid,hndl,fmt,i,j,k,l,m) ; +#endif + +#ifndef PROD +VOID setdisktrace(); +IMPORT IU32 disktraceinfo; +#ifdef ANSI +void disktrace (int, int, int, char *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long); +#else +VOID disktrace(); +#endif /* ANSI */ +#endif + diff --git a/private/mvdm/softpc.new/base/inc/dterm.h b/private/mvdm/softpc.new/base/inc/dterm.h new file mode 100644 index 000000000..450efc924 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/dterm.h @@ -0,0 +1,53 @@ +/*[ + Name: DTerm.h + Derived From: Unknown + Author: Paul Murray + Created On: July 1990 + Sccs ID: 08/10/92 @(#)DTerm.h 1.6 + Purpose: MACROS, labels etc. used in the Dumb Terminal + + (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved. + +]*/ + +#define TBUFSIZ 20480 +#define HIWATER TBUFSIZ - 400 + +#define PC_DISPLAY_WIDTH 80 +#define PC_DISPLAY_HEIGHT 25 +#define PC_DISPLAY_HPELS 8 +#define PC_DISPLAY_VPELS 16 +#define MAX_DIRTY_COUNT 8001 /* Max number of dirty bits */ + +#define ERH_DUMBTERM 0 +#define DT_NORMAL 0 +#define DT_ERROR 1 +#define DT_SCROLL_UP 0 +#define DT_SCROLL_DOWN 1 +#define DT_CURSOR_OFF 0 +#define DT_CURSOR_ON 1 +#define CURSOR_MODE_BASE 0 + +#ifndef EHS_MSG_LEN +#define EHS_MSG_LEN 1024 +#endif + +#define DT_NLS_KEY_SIZE 80 /* Size of strings for key compares */ + +#define EMIT 1 +#define BUFFER 0 +#define ROWS1_24 124 /* default dumb term rows displayed (for 24 line + screen) */ +#define ROWS0_23 23 /* display rows 0 - 23 instead */ + +#define SCREEN_WIDTH 639 +#define SCREEN_HEIGHT 199 +#define TEXT_LINE_HEIGHT 8 +#define BLACK_BACKGROUND 0 + + +#define PC_CURSOR_BAD_ROW -1 +#define PC_CURSOR_BAD_COL -1 + +#define TICKS_PER_FLUSH 3 + diff --git a/private/mvdm/softpc.new/base/inc/egacpu.h b/private/mvdm/softpc.new/base/inc/egacpu.h new file mode 100644 index 000000000..395402c6f --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/egacpu.h @@ -0,0 +1,468 @@ + +/* + * SccsID = @(#)egacpu.h 1.22 10/24/94 Copyright Insignia Solutions Ltd. + */ + +typedef enum +{ + WRITE_MODE, + PLANES_ENABLED, + ROTATION, + CHAINED, + BIT_PROT, + FUNCTION, + SET_RESET, + ENABLE_SET_RESET, + RAM_ENABLED, + RAM_MOVED +} CHANGE_TYPE; + +typedef union +{ +#ifdef BIT_ORDER1 + struct + { + unsigned unused:27; + unsigned sr:1; + unsigned bp:1; + unsigned func:2; + unsigned pe:1; + } state; + struct + { + unsigned unused:27; + unsigned lookup:5; + } mode_0; + struct + { + unsigned unused:31; + unsigned lookup:1; + } mode_1; + struct + { + unsigned unused:28; + unsigned lookup:4; + } mode_2; + struct + { + unsigned unused:28; + unsigned lookup:4; + } mode_3; +#else + struct + { + unsigned pe:1; + unsigned func:2; + unsigned bp:1; + unsigned sr:1; + unsigned unused:27; + } state; + struct + { + unsigned lookup:5; + unsigned unused:27; + } mode_0; + struct + { + unsigned lookup:1; + unsigned unused:31; + } mode_1; + struct + { + unsigned lookup:4; + unsigned unused:28; + } mode_2; + struct + { + unsigned lookup:4; + unsigned unused:28; + } mode_3; +#endif +} MAGIC; + +typedef struct +{ + ULONG latches; + UTINY *VGA_rplane; + UTINY *VGA_wplane; + UTINY *scratch; + ULONG sr_masked_val; + ULONG sr_nmask; + ULONG data_and_mask; + ULONG data_xor_mask; + ULONG latch_xor_mask; + ULONG bit_prot_mask; + ULONG plane_enable; + ULONG plane_enable_mask; + ULONG *sr_lookup; + VOID (*fwd_str_read_addr)(); + VOID (*bwd_str_read_addr)(); + ULONG dirty_flag; + LONG dirty_low; + LONG dirty_high; + IU8 *video_copy; + VOID (*mark_byte)(); + VOID (*mark_word)(); + VOID (*mark_string)(); + ULONG read_shift_count; + ULONG read_mapped_plane; + ULONG colour_comp; + ULONG dont_care; + ULONG v7_vid_copy_off; + ULONG copy_func_pbp; + UTINY *route_reg1; + UTINY *route_reg2; + UTINY *screen_ptr; + ULONG rotate; +} VGA_GLOBALS; + +extern struct EGA_CPU_GLOBALS +{ +#ifndef HOST_VGA_GLOBALS + VGA_GLOBALS *globals; +#endif + ULONG saved_state; /* Last value of EGA_CPU.ega_state.state */ + ULONG saved_mode_chain; /* Last value of mode/chain combined */ + MAGIC ega_state; + ULONG fun_or_protection; /* true means write function is 1-3 and/or there + is bit protection, so latches must be used */ + ULONG calc_data_xor; /* Used to recalculate data_xor_mask when the + bit prot reg changes */ + ULONG calc_latch_xor; /* Used to recalculate latch_xor_mask when the + bit prot reg changes */ + ULONG set_reset; + ULONG sr_enable; + ULONG sr_value; + ULONG ram_enabled; + + UTINY write_mode; + UTINY chain; + UTINY doubleword; + UTINY *plane_offset; + UTINY *read_mapped_plane_ch2; +#ifdef V7VGA + UTINY seq_chain4; + UTINY seq_chain; +#endif +} EGA_CPU; + +#ifndef CPU_40_STYLE /* Vglobs done via access fns */ +#ifdef HOST_VGA_GLOBALS +/* Some hosts, such as the Mac, declare their own VGA_GLOBALS structure */ +IMPORT VGA_GLOBALS HostVGAGlobals; +#define VGLOBS (&HostVGAGlobals) /*Always used as a pointer*/ +#else +#define VGLOBS EGA_CPU.globals +#endif + +#define getVideolatches() VGLOBS->latches +#define setVideolatches(value) VGLOBS->latches = value +#define getVideorplane() VGLOBS->VGA_rplane +#define setVideorplane(value) VGLOBS->VGA_rplane = value +#define getVideowplane() VGLOBS->VGA_wplane +#define setVideowplane(value) VGLOBS->VGA_wplane = value +#define getVideoscratch() VGLOBS->scratch +#define setVideoscratch(value) VGLOBS->scratch = value +#define getVideosr_masked_val() VGLOBS->sr_masked_val +#define setVideosr_masked_val(value) VGLOBS->sr_masked_val = value +#define getVideosr_nmask() VGLOBS->sr_nmask +#define setVideosr_nmask(value) VGLOBS->sr_nmask = value +#define getVideodata_and_mask() VGLOBS->data_and_mask +#define setVideodata_and_mask(value) VGLOBS->data_and_mask = value +#define getVideodata_xor_mask() VGLOBS->data_xor_mask +#define setVideodata_xor_mask(value) VGLOBS->data_xor_mask = value +#define getVideolatch_xor_mask() VGLOBS->latch_xor_mask +#define setVideolatch_xor_mask(value) VGLOBS->latch_xor_mask = value +#define getVideobit_prot_mask() VGLOBS->bit_prot_mask +#define setVideobit_prot_mask(value) VGLOBS->bit_prot_mask = value +#define getVideoplane_enable() VGLOBS->plane_enable +#define setVideoplane_enable(value) VGLOBS->plane_enable = value +#define getVideoplane_enableMask() VGLOBS->plane_enable_mask +#define setVideoplane_enable_mask(value) VGLOBS->plane_enable_mask = value +#define getVideosr_lookup() VGLOBS->sr_lookup +#define setVideosr_lookup(value) VGLOBS->sr_lookup = value +#define getVideofwd_str_read_addr() VGLOBS->fwd_str_read_addr +#define setVideofwd_str_read_addr(value) VGLOBS->fwd_str_read_addr = value +#define getVideobwd_str_read_addr() VGLOBS->bwd_str_read_addr +#define setVideobwd_str_read_addr(value) VGLOBS->bwd_str_read_addr = value +#define getVideodirty_total() VGLOBS->dirty_flag +#define setVideodirty_total(value) VGLOBS->dirty_flag = value +#define getVideodirty_low() VGLOBS->dirty_low +#define setVideodirty_low(value) VGLOBS->dirty_low = value +#define getVideodirty_high() VGLOBS->dirty_high +#define setVideodirty_high(value) VGLOBS->dirty_high = value +#define getVideovideo_copy() VGLOBS->video_copy +#define setVideovideo_copy(value) VGLOBS->video_copy = value +#define getVideomark_byte() VGLOBS->mark_byte +#define setVideomark_byte(value) VGLOBS->mark_byte = value +#define getVideomark_word() VGLOBS->mark_word +#define setVideomark_word(value) VGLOBS->mark_word = value +#define getVideomark_string() VGLOBS->mark_string +#define setVideomark_string(value) VGLOBS->mark_string = value +#define getVideoread_shift_count() VGLOBS->read_shift_count +#define setVideoread_shift_count(value) VGLOBS->read_shift_count = value +#define getVideoread_mapped_plane() VGLOBS->read_mapped_plane +#define setVideoread_mapped_plane(value) VGLOBS->read_mapped_plane = value +#define getVideocolour_comp() VGLOBS->colour_comp +#define setVideocolour_comp(value) VGLOBS->colour_comp = value +#define getVideodont_care() VGLOBS->dont_care +#define setVideodont_care(value) VGLOBS->dont_care = value +#define getVideov7_bank_vid_copy_off() VGLOBS->v7_vid_copy_off +#define setVideov7_bank_vid_copy_off(value) VGLOBS->v7_vid_copy_off = value +#define getVideoscreen_ptr() VGLOBS->screen_ptr +#define setVideoscreen_ptr(value) VGLOBS->screen_ptr = value +#define getVideorotate() VGLOBS->rotate +#define setVideorotate(value) VGLOBS->rotate = value +#define getVideocalc_data_xor() calc_data_xor +#define setVideocalc_data_xor(value) calc_data_xor = value +#define getVideocalc_latch_xor() calc_latch_xor +#define setVideocalc_latch_xor(value) calc_latch_xor = value +#define getVideoread_byte_addr() +#define setVideoread_byte_addr(value) +#define getVideov7_fg_latches() fg_latches +#define setVideov7_fg_latches(value) fg_latches = value +#define getVideoGC_regs() +#define setVideoGC_regs(value) +#define getVideolast_GC_index() +#define setVideolast_GC_index(value) +#define getVideodither() +#define setVideodither(value) +#define getVideowrmode() +#define setVideowrmode(value) +#define getVideochain() +#define setVideochain(value) +#define getVideowrstate() +#define setVideowrstate(value) + +#else /* CPU_40_STYLE */ + +extern void setVideorplane IPT1(IU8 *, value); +extern IU8 * getVideorplane IPT0(); +extern void setVideowplane IPT1(IU8 *, value); +extern IU8 * getVideowplane IPT0(); +extern void setVideoscratch IPT1(IU8 *, value); +extern IU8 * getVideoscratch IPT0(); +extern void setVideosr_masked_val IPT1(IU32, value); +extern IU32 getVideosr_masked_val IPT0(); +extern void setVideosr_nmask IPT1(IU32, value); +extern IU32 getVideosr_nmask IPT0(); +extern void setVideodata_and_mask IPT1(IU32, value); +extern IU32 getVideodata_and_mask IPT0(); +extern void setVideodata_xor_mask IPT1(IU32, value); +extern IU32 getVideodata_xor_mask IPT0(); +extern void setVideolatch_xor_mask IPT1(IU32, value); +extern IU32 getVideolatch_xor_mask IPT0(); +extern void setVideobit_prot_mask IPT1(IU32, value); +extern IU32 getVideobit_prot_mask IPT0(); +extern void setVideoplane_enable IPT1(IU32, value); +extern IU32 getVideoplane_enable IPT0(); +extern void setVideoplane_enable_mask IPT1(IU32, value); +extern IU32 getVideoplane_enable_mask IPT0(); +extern void setVideosr_lookup IPT1(IUH *, value); +extern IUH * getVideosr_lookup IPT0(); +extern void setVideofwd_str_read_addr IPT1(IUH *, value); +extern IUH * getVideofwd_str_read_addr IPT0(); +extern void setVideobwd_str_read_addr IPT1(IUH *, value); +extern IUH * getVideobwd_str_read_addr IPT0(); +extern void setVideodirty_total IPT1(IU32, value); +extern IU32 getVideodirty_total IPT0(); +extern void setVideodirty_low IPT1(IS32, value); +extern IS32 getVideodirty_low IPT0(); +extern void setVideodirty_high IPT1(IS32, value); +extern IS32 getVideodirty_high IPT0(); +extern void setVideovideo_copy IPT1(IU8 *, value); +extern IU8 * getVideovideo_copy IPT0(); +extern void setVideomark_byte IPT1(IUH *, value); +extern IUH * getVideomark_byte IPT0(); +extern void setVideomark_word IPT1(IUH *, value); +extern IUH * getVideomark_word IPT0(); +extern void setVideomark_string IPT1(IUH *, value); +extern IUH * getVideomark_string IPT0(); +extern void setVideoread_shift_count IPT1(IU32, value); +extern IU32 getVideoread_shift_count IPT0(); +extern void setVideoread_mapped_plane IPT1(IU32, value); +extern IU32 getVideoread_mapped_plane IPT0(); +extern void setVideocolour_comp IPT1(IU32, value); +extern IU32 getVideocolour_comp IPT0(); +extern void setVideodont_care IPT1(IU32, value); +extern IU32 getVideodont_care IPT0(); +extern void setVideov7_bank_vid_copy_off IPT1(IU32, value); +extern IU32 getVideov7_bank_vid_copy_off IPT0(); +extern void setVideoscreen_ptr IPT1(IU8 *, value); +extern IU8 * getVideoscreen_ptr IPT0(); +extern void setVideorotate IPT1(IU32, value); +extern IU32 getVideorotate IPT0(); +extern void setVideocalc_data_xor IPT1(IU32, value); +extern IU32 getVideocalc_data_xor IPT0(); +extern void setVideocalc_latch_xor IPT1(IU32, value); +extern IU32 getVideocalc_latch_xor IPT0(); +extern void setVideoread_byte_addr IPT1(IUH *, value); +extern IUH * getVideoread_byte_addr IPT0(); +extern void setVideov7_fg_latches IPT1(IU32, value); +extern IU32 getVideov7_fg_latches IPT0(); +extern void setVideoGC_regs IPT1(IUH **, value); +extern IUH ** getVideoGC_regs IPT0(); +extern void setVideolast_GC_index IPT1(IU8, value); +extern IU8 getVideolast_GC_index IPT0(); +extern void setVideodither IPT1(IU8, value); +extern IU8 getVideodither IPT0(); +extern void setVideowrmode IPT1(IU8, value); +extern IU8 getVideowrmode IPT0(); +extern void setVideochain IPT1(IU8, value); +extern IU8 getVideochain IPT0(); +extern void setVideowrstate IPT1(IU8, value); +extern IU8 getVideowrstate IPT0(); + +#include "evidgen.h" /* generated by MkCpuInt */ + +#ifdef C_VID +extern struct VideoVector C_Video; /* in (generated) vglfunc.c */ + +#undef getVideolatches +#define getVideolatches() ((*(C_Video.GetVideolatches))()) +#undef setVideolatches +#define setVideolatches(value) ( (*(C_Video.SetVideolatches))(value)) +#undef SetWritePointers +#define SetWritePointers setWritePointers +#undef SetReadPointers +#define SetReadPointers setReadPointers +#undef SetMarkPointers +#define SetMarkPointers setMarkPointers +#endif /* C_VID */ +#endif /* CPU_40_STYLE */ + +#define write_state EGA_CPU.ega_state.state + +#define UNCHAINED 0 +#define CHAIN2 1 +#define CHAIN4 2 + +IMPORT ULONG sr_lookup[16]; + +#define N_WRITE_TYPES 24 + +#ifdef CPU_40_STYLE +extern IU32 latchval; /* used for following latch macros */ +#define get_latch(n) \ + (latchval = getVideolatches(),\ + (* ((UTINY *) (&latchval) + n))) + +#define get_latch0 get_latch(0) +#define get_latch1 get_latch(1) +#define get_latch2 get_latch(2) +#define get_latch3 get_latch(3) +#define get_latch01 \ + (latchval = getVideolatches(), \ + (* (USHORT *) (&latchval))) + +#define get_latch23 \ + (latchval = getVideolatches(), \ + (* (USHORT *) (&latchval + 2))) + +#define put_latch(n, value) \ + (* ((UTINY *) (&latchval) + n) = (value), \ + setVideolatches(latchval)) + +#define put_latch0(value) put_latch(0, value) +#define put_latch1(value) put_latch(1, value) +#define put_latch2(value) put_latch(2, value) +#define put_latch3(value) put_latch(3, value) + +#else /* CPU_40_STYLE */ + +#define get_latch(n) (* ((UTINY *) (&VGLOBS->latches) + n)) + +#define get_latch0 get_latch(0) +#define get_latch1 get_latch(1) +#define get_latch2 get_latch(2) +#define get_latch3 get_latch(3) +#define get_latch01 (* (USHORT *) (&VGLOBS->latches)) +#define get_latch23 (* (USHORT *) (&VGLOBS->latches + 2)) + +#define put_latch(n, value) * ((UTINY *) (&VGLOBS->latches) + n) = (value) + +#define put_latch0(value) put_latch(0, value) +#define put_latch1(value) put_latch(1, value) +#define put_latch2(value) put_latch(2, value) +#define put_latch3(value) put_latch(3, value) + +#endif /* CPU_40_STYLE */ + +/* + * macro to do the logical operations on cpu data and the latch values + */ + +#define do_logicals(val,latch) (((latch) & ((val & getVideodata_and_mask()) \ + ^ getVideodata_xor_mask())) | (val & ((latch) ^ getVideolatch_xor_mask()))) + + +/* Routines */ + +extern void ega_mode0_gen_chn_b_write IPT1(byte *,arg1); +extern void ega_mode0_gen_chn_w_write IPT1(byte *,arg1); +extern void ega_mode0_gen_chn_b_fill IPT2(byte *,arg1, byte *,arg2); +extern void ega_mode0_gen_chn_w_fill IPT2(byte *,arg1, byte *,arg2); +extern void ega_mode0_gen_chn_b_move IPT2(byte *,arg1, byte *,arg2); + +extern void ega_mode1_gen_chn_b_write IPT1(byte *,arg1); +extern void ega_mode1_gen_chn_w_write IPT1(byte *,arg1); +extern void ega_mode1_gen_chn_b_fill IPT2(byte *,arg1, byte *,arg2); +extern void ega_mode1_gen_chn_w_fill IPT2(byte *,arg1, byte *,arg2); +extern void ega_mode1_gen_chn_b_move IPT2(byte *,arg1, byte *,arg2); +extern void ega_mode1_gen_chn_w_move IPT2(byte *,arg1, byte *,arg2); + +extern void ega_mode2_gen_chn_b_write IPT1(byte *,arg1); +extern void ega_mode2_gen_chn_w_write IPT1(byte *,arg1); +extern void ega_mode2_gen_chn_b_fill IPT2(byte *,arg1, byte *,arg2); +extern void ega_mode2_gen_chn_w_fill IPT2(byte *,arg1, byte *,arg2); +extern void ega_mode2_gen_chn_b_move IPT2(byte *,arg1, byte *,arg2); +extern void ega_mode2_gen_chn_w_move IPT2(byte *,arg1, byte *,arg2); + +/* 1 plane masked write */ +extern void ega_mode0_copy1_mask_b_write0 IPT1(byte *,arg1); +extern void ega_mode0_copy1_mask_b_write1 IPT1(byte *,arg1); +extern void ega_mode0_copy1_mask_b_write2 IPT1(byte *,arg1); +extern void ega_mode0_copy1_mask_b_write3 IPT1(byte *,arg1); + +#ifdef VGG +extern boolean vga_mode0_gen_chn4_b_write IPT0(); +extern boolean vga_mode0_gen_chn4_w_write IPT0(); +extern boolean vga_mode0_gen_chn4_b_fill IPT0(); +extern boolean vga_mode0_gen_chn4_w_fill IPT0(); +extern boolean vga_mode0_gen_chn4_b_move IPT0(); +/* wr 1 */ +extern boolean vga_mode1_gen_chn4_b_write IPT0(); +extern boolean vga_mode1_gen_chn4_w_write IPT0(); +extern boolean vga_mode1_gen_chn4_b_fill IPT0(); +extern boolean vga_mode1_gen_chn4_w_fill IPT0(); +extern boolean vga_mode1_gen_chn4_b_move IPT0(); +extern boolean vga_mode1_gen_chn4_w_move IPT0(); +/* wr 2 */ +extern boolean vga_mode2_gen_chn4_b_write IPT0(); +extern boolean vga_mode2_gen_chn4_w_write IPT0(); +extern boolean vga_mode2_gen_chn4_b_fill IPT0(); +extern boolean vga_mode2_gen_chn4_w_fill IPT0(); +extern boolean vga_mode2_gen_chn4_b_move IPT0(); +extern boolean vga_mode2_gen_chn4_w_move IPT0(); +/* wr 3 */ +extern boolean vga_mode3_gen_chn4_b_write IPT0(); +extern boolean vga_mode3_gen_chn4_w_write IPT0(); +extern boolean vga_mode3_gen_chn4_b_fill IPT0(); +extern boolean vga_mode3_gen_chn4_w_fill IPT0(); +extern boolean vga_mode3_gen_chn4_b_move IPT0(); +extern boolean vga_mode3_gen_chn4_w_move IPT0(); + +extern boolean vga_mode3_gen_chn_b_write IPT0(); +extern boolean vga_mode3_gen_chn_w_write IPT0(); +extern boolean vga_mode3_gen_chn_b_fill IPT0(); +extern boolean vga_mode3_gen_chn_w_fill IPT0(); +extern boolean vga_mode3_gen_chn_b_move IPT0(); +extern boolean vga_mode3_gen_chn_w_move IPT0(); + +extern boolean vga_mode3_gen_b_write IPT0(); +extern boolean vga_mode3_gen_w_write IPT0(); +extern boolean vga_mode3_gen_b_fill IPT0(); +extern boolean vga_mode3_gen_w_fill IPT0(); +extern boolean vga_mode3_gen_b_move IPT0(); +extern boolean vga_mode3_gen_w_move IPT0(); +#endif /* VGG */ diff --git a/private/mvdm/softpc.new/base/inc/egagraph.h b/private/mvdm/softpc.new/base/inc/egagraph.h new file mode 100644 index 000000000..611ba0b51 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/egagraph.h @@ -0,0 +1,219 @@ +/* + * SccsID = @(#)egagraph.h 1.13 04/22/93 Copyright Insignia Solutions Ltd. + */ + +#ifdef EGG + +typedef union { + half_word as_byte; + struct { +#ifdef BIT_ORDER2 + unsigned screen_can_wrap : 1; + unsigned split_screen_used : 1; + unsigned ht_of_200_scan_lines : 1; + unsigned double_pix_wid : 1; + unsigned graph_shift_reg : 1; + unsigned cga_mem_bank : 1; + unsigned chained : 1; + unsigned text_mode : 1; +#else + unsigned text_mode : 1; + unsigned chained : 1; + unsigned cga_mem_bank : 1; + unsigned graph_shift_reg : 1; + unsigned double_pix_wid : 1; + unsigned ht_of_200_scan_lines : 1; + unsigned split_screen_used : 1; + unsigned screen_can_wrap : 1; +#endif + } as_bfld; +} DISPLAY_STATE; + +#define EGA_PALETTE_SIZE 16 +extern struct EGA_GLOBALS { + int actual_offset_per_line; /* in bytes */ +#ifdef VGG + _10_BITS screen_split; + boolean palette_change_required; + boolean colour_256; + boolean colour_select; /* 16/64 size palette choice (AR10:7) */ + half_word DAC_mask; + int mid_pixel_pad; /* video bits 4&5 when AR10:7 = 1 */ + int top_pixel_pad; /* video bits 7 & 6 unless 256 colour mode */ + half_word palette_ind[EGA_PALETTE_SIZE]; + boolean multiply_vert_by_two; +#else + _9_BITS screen_split; +#endif + int colours_used; + PC_palette palette[EGA_PALETTE_SIZE]; + byte border[3]; + int plane_mask; + int intensity; + boolean attrib_font_select; + int prim_font_index; /* index (0-3) of primary selected font */ + int sec_font_index; /* index (0-3) of secondary selected font */ + int underline_start; /* scanline to start drawing underline attr */ + DISPLAY_STATE display_state; + byte *regen_ptr[4]; +} EGA_GRAPH; + +#ifdef VGG +extern PC_palette *DAC; /* Size is `VGA_DAC_SIZE' */ +#endif + +#define get_screen_can_wrap() (EGA_GRAPH.display_state.as_bfld.screen_can_wrap) +#define get_200_scan_lines() (EGA_GRAPH.display_state.as_bfld.ht_of_200_scan_lines) +#define get_split_screen_used() (EGA_GRAPH.display_state.as_bfld.split_screen_used) +#define get_actual_offset_per_line() (EGA_GRAPH.actual_offset_per_line) +#define get_ptr_offset(ptr,offs) ((ptr) != NULL ? &((ptr)[offs]) : NULL) +#define get_regen_ptr1(offs) get_ptr_offset(EGA_GRAPH.regen_ptr[0],offs) +#define get_regen_ptr2(offs) get_ptr_offset(EGA_GRAPH.regen_ptr[1],offs) +#define get_regen_ptr3(offs) get_ptr_offset(EGA_GRAPH.regen_ptr[2],offs) +#define get_regen_ptr4(offs) get_ptr_offset(EGA_GRAPH.regen_ptr[3],offs) +#define get_regen_ptr(x,offs) get_ptr_offset(EGA_GRAPH.regen_ptr[x],offs) +#define get_plane_mask() (EGA_GRAPH.plane_mask) +#define get_intensity() (EGA_GRAPH.intensity) +#define plane0_enabled() (get_plane_mask() & 0x1) +#define plane01_enabled() (get_plane_mask() & 0x3) +#define plane1_enabled() (get_plane_mask() & 0x2) +#define plane2_enabled() (get_plane_mask() & 0x4) +#define plane23_enabled() (get_plane_mask() & 0xC) +#define plane3_enabled() (get_plane_mask() & 0x8) +#define all_planes_enabled() (get_plane_mask() & 0xf) +#define get_cga_mem_bank() (EGA_GRAPH.display_state.as_bfld.cga_mem_bank) +#define get_graph_shift_reg() (EGA_GRAPH.display_state.as_bfld.graph_shift_reg) +#define get_memory_chained() (EGA_GRAPH.display_state.as_bfld.chained) +#define get_double_pix_wid() (EGA_GRAPH.display_state.as_bfld.double_pix_wid) +#define get_munged_index() (EGA_GRAPH.display_state.as_byte) +#define is_it_cga() (EGA_GRAPH.display_state.as_byte & 0x60) +#define is_it_text() ((EGA_GRAPH.display_state.as_byte & 0x80) == 0x80) +#define get_attrib_font_select() (EGA_GRAPH.attrib_font_select) +#ifdef V7VGA +#define get_screen_split() (((EGA_GRAPH.screen_split.as_word)+1)<h_addr] = data (long,long,byte) + * 8 M[l_addr->h_addr] = data (long,long,word) + * 9 M[l_addr->h_addr] = data,data.. (long,long, (h_addr-l_addr+1)*byte) + * 10 Graphics Tick. + * 11 Scroll. + * 12 inw port (long) + * 13 read byte (set lda to addr) + * 14 read word (set lda to addr+1) + * 15 read string (set lda to laddr or haddr dp DF) + * 254 checkpoint + * 255 End. + * + * words & longs are Intel/Clipper format - ie low byte first. + */ + +#define READ 1 +#define OUTB 2 +#define OUTW 3 +#define INB 4 +#define WRITE_BYTE 5 +#define WRITE_WORD 6 +#define FILL_BYTE 7 +#define FILL_WORD 8 +#define MOVE_BYTE 9 +#define TICK 10 +#define SCROLL 11 +#define INW 12 +#define READ_BYTE 13 /* lda = addr */ +#define READ_WORD 14 /* lda = addr + 1 */ +#define READ_STRING 15 /* lda = haddr ?? */ + +#define MAX_DUMP_TYPE 15 +#define CHECKPT 254 +#define EOFile 255 diff --git a/private/mvdm/softpc.new/base/inc/egavideo.h b/private/mvdm/softpc.new/base/inc/egavideo.h new file mode 100644 index 000000000..e12aee9f6 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/egavideo.h @@ -0,0 +1,137 @@ + +/* SccsID = @(#)egavideo.h 1.13 11/22/93 Copyright Insignia Solutions */ + +#define ega_char_height 0x485 /* word on IBM, but second byte always 0 */ +#define ega_info 0x487 /* lots of useful info. */ +#define ega_info3 0x488 /* EGA switches + feature bits. == 0xf9 */ +#define EGA_SAVEPTR 0x4A8 /* offset into M of pointer to pointer table for parms etc */ +#define VGA_DCC 0x48A /* offset into M of index into dcc table */ + +/* fields of info & info3: */ +#define get_EGA_no_clear() (sas_hw_at_no_check(ega_info) & 0x80) +#define get_EGA_disp() ((sas_hw_at_no_check(ega_info) & 2)>>1) +#define get_EGA_mem() ((sas_hw_at_no_check(ega_info) & 0x60)>>5) +#define get_EGA_cursor_no_emulate() (sas_hw_at_no_check(ega_info) & 1) +#define set_EGA_cursor_no_emulate(val) \ + sas_store_no_check(ega_info, \ + (sas_hw_at_no_check(ega_info) & 0xfe) | (val)); + +#define get_EGA_feature() (sas_hw_at_no_check(ega_info3) & 0xf0)>>4 +#define get_EGA_switches() (sas_hw_at_no_check(ega_info3) & 0xf) +/* offset into each entry of each section of ega mode parameters */ +#define EGA_PARMS_COLS 0 +#define EGA_PARMS_ROWS 1 +#define EGA_PARMS_HEIGHT 2 +#define EGA_PARMS_LENGTH 3 /* Word */ +#define EGA_PARMS_SEQ 5 /* Sequencer regs 1-4 */ +#define EGA_PARMS_SEQ_SIZE 4 +#define EGA_PARMS_MISC 9 /* Misc. register */ +#define EGA_PARMS_CRTC 10 /* CRT regs 0-24 */ +#define EGA_PARMS_CRTC_SIZE 25 +#define EGA_PARMS_CURSOR 20 /* CRT regs 10 & 11 */ +#define EGA_PARMS_ATTR 35 /* Attribute regs 0-19 */ +#define EGA_PARMS_ATTR_SIZE 20 +#define EGA_PARMS_GRAPH 55 /* Graphics regs 0-8 */ +#define EGA_PARMS_GRAPH_SIZE 9 +#define EGA_PARMS_SIZE 64 /* Size of one entry in table */ +#define FONT_LOAD_MODE 0xB /* Screen 'mode' to use to load fonts */ +/* Location of default ega mode parameters */ +#define EGA_PARMS_OFFSET 0x0F09 +#define VGA_PARMS_OFFSET 0x0150 /* was F09 but now have more modes in parm table */ + +#define EGA_PALETTE_ENABLE 0x20 + +/* Offsets into the save table of the various pointers */ + +/* Offsets into the save table of the various pointers */ +#define PALETTE_OFFSET 4 +#define ALPHA_FONT_OFFSET 8 +#define GRAPH_FONT_OFFSET 12 + +/* Location of font definitions */ +#if 0 +#define EGA_CGMN 0xC2230 +#define EGA_CGDDOT 0xC3160 +#define EGA_HIFONT 0xC3990 /* 8x16 font for 640x480 ext */ +#define EGA_CGMN_OFF 0x2230 +#define EGA_CGMN_FDG_OFF 0x3030 +#define EGA_CGDDOT_OFF 0x3160 +#define EGA_HIFONT_OFF 0x3990 +#define EGA_INT1F_OFF 0x3560 +#endif + +#ifdef VGG +/* Flags controlling extra bits of VGA BIOS, not in EGA one */ +#define VGA_FLAGS 0x489 +#define S350 0 +#define S400 0x10 +#define S200 0x80 +#define PAL_LOAD_OFF 0x8 +#define VGA_MONO 0x4 +#define GREY_SCALE 0x2 +#define VGA_ACTIVE 0x1 +#define get_VGA_flags() sas_hw_at_no_check(VGA_FLAGS) +#define set_VGA_flags(val) sas_store_no_check(VGA_FLAGS, (val)) +#define get_VGA_lines() (sas_hw_at_no_check(VGA_FLAGS) & 0x90) +#define set_VGA_lines(val) sas_store_no_check(VGA_FLAGS, (sas_hw_at_no_check(VGA_FLAGS) & 0x6f) | (val)) +#define is_GREY() (sas_hw_at_no_check(VGA_FLAGS) & 2) +#define set_GREY(val) sas_store_no_check(VGA_FLAGS, (sas_hw_at_no_check(VGA_FLAGS) & 0xfd) | (val)) +#define is_PAL_load_off() (sas_hw_at_no_check(VGA_FLAGS) & 0x80) +#define set_PAL_load_off(val) sas_store_no_check(VGA_FLAGS, (sas_hw_at_no_check(VGA_FLAGS) & 0xf7) | (val)) +#define is_MONO() (sas_hw_at_no_check(VGA_FLAGS) & 4) + +/* Location of INT10 AX=1b, second stage info table */ +#define INT10_1B_DATA 0x01bc +#endif + +/* + * Defines for values indicating real number of scanlines on display + * These are the values returned by INT10 AH=1B, and are also used + * internally + */ +#define RS200 0 +#define RS350 1 +#define RS400 2 +#define RS480 3 + +#ifdef ANSI +extern int get_scanlines(void); +extern sys_addr find_mode_table(int,sys_addr *); +extern sys_addr follow_ptr(sys_addr); +#else +extern int get_scanlines(); +extern sys_addr find_mode_table(); +extern sys_addr follow_ptr(); +#endif /* ANSI */ + +#ifdef MSWDVR +IMPORT VOID host_mswin_disable IPT0(); +#endif + +#ifdef V7VGA +IMPORT VOID v7vga_extended_set_mode IPT0(); +IMPORT VOID v7vga_func_6f IPT0(); +#endif + +#ifdef VGG +IMPORT VOID vga_set_palette IPT0(); +IMPORT VOID vga_func_12 IPT0(); +IMPORT VOID init_vga_dac IPT1( int, table ); +#endif + +#if defined(NTVDM) && defined(MONITOR) + +#define F8x14 0 +#define F8x8pt1 1 +#define F8x8pt2 2 +#define F9x14 3 +#define F8x16 4 +#define F9x16 5 + +typedef struct { + word seg; + word off; +} NativeFontAddr; + +IMPORT NativeFontAddr nativeFontAddresses[6]; +#endif /* NTVDM & MONITOR */ diff --git a/private/mvdm/softpc.new/base/inc/emm.h b/private/mvdm/softpc.new/base/inc/emm.h new file mode 100644 index 000000000..70eec2e61 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/emm.h @@ -0,0 +1,311 @@ +/* SccsID = @(#)emm.h 1.12 08/31/93 Copyright Insignia Solutions Ltd. + +FILE NAME : emm.h + + THIS INCLUDE SOURCE FILE IS SUPPLIED IN CONFIDENCE TO THE + CUSTOMER, THE CONTENTS OR DETAILS OF ITS OPERATION MUST + NOT BE DISCLOSED TO ANY OTHER PARTIES WITHOUT THE EXPRESS + AUTHORISATION FROM THE DIRECTORS OF INSIGNIA SOLUTIONS INC. + +DESIGNER : J.P.Box +DATE : July '88 + + +========================================================================= + +AMMENDMENTS : + +========================================================================= +*/ +#define VERSION 0x40 /* memory manager version no. */ +#define EMM_PAGE_SIZE 0x4000 /* page size - 16k */ +#define MAX_NO_HANDLES 255 /* max. no. of handles supported*/ + /* under EMS 4.0 ( 0 - 255 ) */ +#ifdef NTVDM +#define MAX_NO_PAGES 36 + 12 /* below 640KB = 36 pages */ + /* above 640KB = 12 pages */ +#define MAX_ALTREG_SETS 255 /* allowable alt map register set */ +/* one byte represents 8 sets */ +#define ALTREG_ALLOC_MASK_SIZE (MAX_ALTREG_SETS + 7) / 8 +#define IMPOSSIBLE_ALTREG_SET 255 +#define INTEL_PAGE_SIZE 0x1000 /* Intel CPU page size */ +#define INTEL_PARAGRAPH_SIZE 0x10 /* Intel CPU paragraph size */ +#define EMM_INTEL_PAGE_RATIO 4 /* 1 EMM PAGE = 4 INTEL PAGEs */ +#define PAGE_PARA_RATIO 0x100 /* 1 INTEL PAGE = 0x100 PARAs */ +#define EMM_PAGE_TO_INTEL_PAGE(emm_page) \ + (emm_page * EMM_INTEL_PAGE_RATIO) +#define SEGMENT_TO_INTEL_PAGE(segment) \ + (segment / PAGE_PARA_RATIO) + +#else +#define MAX_NO_PAGES 32 /* max. no of locations for */ + /* mapping pages, (24 between */ + /* 256KB and 640KB and 8 between*/ + /* EM_start and EM_end */ +#endif + +#define MIN_FUNC_NO 0x40 /* Lowest function code */ +#ifndef PROD +#define MAX_FUNC_NO 0x5f /* Highest function code */ +#else /* (includes trace options) */ +#define MAX_FUNC_NO 0x5d /* Highest function code */ +#endif +#define NAME_LENGTH 8 /* Length of handle name */ +#define UNMAPPED -1 /* EM page is not mapped in */ +#define MSB ((IU32)0x80000000) /* used for pagemap operations */ +/* + * The following 3 defines are used in specifying the current + * or required mapping context + */ +#define EMPTY -1 /* No page mapped in */ +#define LEAVE -2 /* Leave existing page alone */ +#define FREE -3 /* indicates page map not used */ + +/* + * The following 4 defines are used in the function 26, + * Get Expanded Memory Hardware Information call + */ +#define RAW_PAGE_SIZE 1024 /* size in paragraphs(16 bytes) */ +#define ALT_REGISTER_SETS 0 /* Alternate register sets */ +#define DMA_CHANNELS 0 /* No of DMA channels supported */ +#define DMA_CHANNEL_OPERATION 0 + + +/* ERROR RETURNS from Top Layer */ + + +#ifdef NTVDM +#define EMM_SUCCESS 0 +#endif +#define EMM_HW_ERROR 0x81 /* memory allocation failure */ +#define BAD_HANDLE 0x83 /* couldn't find handle */ +#define BAD_FUNC_CODE 0x84 /* Function code not defined */ +#define NO_MORE_HANDLES 0x85 /* No handles available */ +#define MAP_SAVED 0x86 /* Mapping context saved */ +#define NOT_ENOUGH_PAGES 0x87 /* Not enough Total pages */ +#define NO_MORE_PAGES 0x88 /* No more pages available */ +#define BAD_LOG_PAGE 0x8a /* Invalid logical page no. */ +#define BAD_PHYS_PAGE 0x8b /* Invalid physical page no. */ +#define MAP_IN_USE 0x8d /* Mapping context already saved*/ +#define NO_MAP 0x8e /* The handle has no map saved */ +#define BAD_SUB_FUNC 0x8f /* Invalid sub-function code */ +#define NOT_SUPPORTED 0x91 /* This function not supported */ +#define MOVE_MEM_OVERLAP 0x92 /* Src and dest memory overlap */ +#define TOO_FEW_PAGES 0x93 /* Not enough pages in handle */ +#define OFFSET_TOO_BIG 0x95 /* Offset exceeds size of page */ +#define LENGTH_GT_1M 0x96 /* Region length exceeds 1 Mbyte*/ +#define XCHG_MEM_OVERLAP 0x97 /* Src and dest memory overlap */ +#define BAD_TYPE 0x98 /* Unsupported memory type */ + +#ifdef NTVDM +#define UNSUPPORTED_ALT_REGS 0x9A /* altreg set is not supported */ +#define NO_FREE_ALT_REGS 0x9B /* no free alt reg available */ +#define INVALID_ALT_REG 0x9d /* invalid alt reg was given */ +#endif + +#define NO_ALT_REGS 0x9c /* Alt. map regs not supported */ +#define HANDLE_NOT_FOUND 0xa0 /* Can't find specified name */ +#define NAME_EXISTS 0xa1 /* Handle name already used */ +#define WRAP_OVER_1M 0xa2 /* Attempt made to wrap over 1M */ +#define BAD_MAP 0xa3 /* Source array contents wrong */ +#define ACCESS_DENIED 0xa4 /* O/S denies access to this */ + + +#ifdef NTVDM +typedef struct _LIM_CONFIG_DATA { + boolean initialized; /* the structure contains meaningful data */ + unsigned short total_altreg_sets; /* total alt mapping register set */ + unsigned long backfill; /* back fill in bytes */ + unsigned short base_segment; /* back fill starting segment */ + boolean use_all_umb; /* use all available UMB for frame */ +} LIM_CONFIG_DATA, * PLIM_CONFIG_DATA; + +IMPORT boolean get_lim_configuration_data(PLIM_CONFIG_DATA lim_config_data); +IMPORT unsigned short get_no_altreg_sets(void); +IMPORT unsigned short get_active_altreg_set(void); +IMPORT boolean altreg_set_ok(unsigned short set); +IMPORT boolean allocate_altreg_set(unsigned short * set); +IMPORT boolean deallocate_altreg_set(unsigned short set); +IMPORT boolean activate_altreg_set(unsigned short set, short * page_in); +IMPORT short get_segment_page_no(unsigned short segment); +IMPORT unsigned short get_lim_page_frames(unsigned short * page_table, PLIM_CONFIG_DATA lim_config_data); +IMPORT boolean init_lim_configuration_data(PLIM_CONFIG_DATA lim_config_data); +IMPORT unsigned short get_lim_backfill_segment(void); + +#if defined(MONITOR) && !defined(PROD) +IMPORT unsigned short get_emm_page_size(void); +IMPORT unsigned short get_intel_page_size(void); +#endif + +#endif + + +/* Handle storage area layout + * + * __________________________________________________________ + * | N | . Handle Name . | Map Context |No. |No. | + * |_____|____________________|______________|_____|_____|___ + * + * name nsize + * offset <-----> + * |-----> + * | map offset + * |--------------------------> + * | page offset + * |-----------------------------------------> + * + * N No. of pages in handle + * Handle Name Optional 8 character name + * Map Context A 'snapshot' of the pages currently mapped + * requires a 2 byte entry for every physical + * page - (optional) + * No Expanded memory page number assigned to handle + */ +#define NSIZE 2 +#define NAME_OFFSET 2 +#define MAP_OFFSET (NAME_OFFSET + NAME_LENGTH) + +/* page_offset is set by the init_expanded_memory() routine */ + +/* + * External declarations for Top level routines + */ + +IMPORT void reset_emm_funcs IPT0(); + +/* + * External declarations for memory manager routines + */ + +#ifdef ANSI +extern int restore_map(short handle_no, unsigned short segment, + unsigned short offset, + short pages_out[], short pages_in[]); +#else /* ANSI */ +extern int restore_map(); +#endif /* ANSI */ + +IMPORT VOID LIM_b_write IPT1(sys_addr, intel_addr); +IMPORT VOID LIM_str_write IPT2(sys_addr, intel_addr, ULONG, length); +IMPORT VOID LIM_w_write IPT1(sys_addr, intel_addr); + +IMPORT boolean handle_ok IPT1(short, handle_no); +IMPORT short get_new_handle IPT1(short, no_pages); +IMPORT int free_handle IPT1(short, handle_no); +IMPORT void print_handle_data IPT1(short, handle_no); +IMPORT short get_total_handles IPT0(); +IMPORT short get_total_open_handles IPT0(); +IMPORT int reallocate_handle IPT3(short, handle_no, + short, old_page_count, + short, new_page_count); +#ifndef NTVDM +IMPORT ULONG page_already_mapped IPT2(short, EM_page_no, + unsigned char *, physical_page_no); +#endif + + +IMPORT short get_map_size IPT0(); +IMPORT boolean map_saved IPT1(short, handle_no); +IMPORT short get_map_no IPT2(short, handle_no, + unsigned char, physical_page_no); +IMPORT int save_map IPT5(short, handle_no, + unsigned short, dst_segment, + unsigned short, dst_offset, + unsigned short, src_segment, + unsigned short, src_offset); + +IMPORT int copy_exchange_data IPT8(unsigned char, type, + short, src_handle, + unsigned short, src_seg_page, + unsigned short, src_offset, + short, dst_handle, + unsigned short, dst_seg_page, + unsigned short, dst_offset, + unsigned long, length); + +IMPORT short alloc_page IPT0(); +IMPORT int page_status IPT1(short, EMpage_no); +IMPORT int free_page IPT1(short, EM_page_no); +IMPORT int map_page IPT2(short, EM_page_no, + unsigned char, physical_page_no); +IMPORT int unmap_page IPT1(unsigned char, physical_page_no); +IMPORT short get_no_pages IPT1(short, handle_no); +IMPORT void set_no_pages IPT2(short, handle_no, short, no_pages); +IMPORT short get_total_pages IPT0(); +IMPORT short get_unallocated_pages IPT0(); +IMPORT short get_no_phys_pages IPT0(); + +IMPORT int init_expanded_memory IPT2(int, size, int, mem_limit); +IMPORT void free_expanded_memory IPT0(); + +IMPORT unsigned short get_base_address IPT0(); +IMPORT unsigned short get_page_seg IPT1(unsigned char, page_no); + +IMPORT short get_EMpage_no IPT2(short, handle_no, short, logical_page_no); +IMPORT void set_EMpage_no IPT3(short, handle_no, short, logical_page_no, + short, EM_page_no); + +IMPORT void set_map_no IPT3(short, handle_no, + unsigned char, physical_page_no, + short, EM_page_no); + +IMPORT char * get_name IPT1(short, handle_no); +IMPORT void set_name IPT2(short, handle_no, char *, new_name); + +/* + * External declarations for host specific routines + */ + +IMPORT int host_initialise_EM IPT1(short, size); +IMPORT int host_deinitialise_EM IPT0(); +IMPORT long host_allocate_storage IPT1(int, no_bytes); +IMPORT int host_free_storage IPT1(long, storage_ID); +IMPORT long host_reallocate_storage IPT3(long, storage_ID, + int, size, int, new_size); +IMPORT int host_map_page IPT2(short, EM_page_no, + unsigned short, segment); +IMPORT int host_unmap_page IPT2(unsigned short, segment, + short, EM_page_no); +IMPORT short host_alloc_page IPT0(); +IMPORT int host_free_page IPT1(short, EM_page_no); +IMPORT int host_copy_con_to_con IPT5(int, length, + unsigned short, src_seg, unsigned short, src_off, + unsigned short, dst_seg, unsigned short, dst_off); +IMPORT int host_copy_con_to_EM IPT5(int, length, + unsigned short, src_seg, unsigned short, src_off, + unsigned short, dst_page, unsigned short, dst_off); +IMPORT int host_copy_EM_to_con IPT5(int, length, + unsigned short, src_page, unsigned short, src_off, + unsigned short, dst_seg, unsigned short, dst_off); +IMPORT int host_copy_EM_to_EM IPT5(int, length, + unsigned short, src_page, unsigned short, src_off, + unsigned short, dst_page, unsigned short, dst_off); +IMPORT int host_exchg_con_to_con IPT5(int, length, + unsigned short, src_seg, unsigned short, src_off, + unsigned short, dst_seg, unsigned short, dst_off); +IMPORT int host_exchg_con_to_EM IPT5(int, length, + unsigned short, src_seg, unsigned short, src_off, + unsigned short, dst_page, unsigned short, dst_off); +IMPORT int host_exchg_EM_to_EM IPT5(int, length, + unsigned short, src_page, unsigned short, src_off, + unsigned short, dst_page, unsigned short, dst_off); + + +#if defined(X86GFX) && defined(NTVDM) + +// for x86 platform, we don't have to update logical page +// as they are in a single section of view. +// If we did an unmap as for mips, then mirror pages will +// get unmapped which is not what we want. + +#define host_update_logical_page +#define host_patch_one_page patch_one_page_full + +#else /* (NTVDM AND X86GFX) */ + +#ifndef host_update_logical_page +#define host_update_logical_page host_unmap_page +#define host_patch_one_page patch_one_page_full +#endif + +#endif /* (NTVDM AND X86GFX) */ diff --git a/private/mvdm/softpc.new/base/inc/equip.h b/private/mvdm/softpc.new/base/inc/equip.h new file mode 100644 index 000000000..05eaea946 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/equip.h @@ -0,0 +1,115 @@ + +/* + * VPC-XT Revision 1.0 + * + * Title : Equipment word definitions + * + * Description : The equipment word shows what optional devices are + * attached to the PC + * + * Author : Ross Beresford + * + * Notes : None + */ + +/* SccsID[]="@(#)equip.h 1.3 08/10/92 Copyright Insignia Solutions Ltd."; */ + +/* + * ============================================================================ + * Structure/Data definitions + * ============================================================================ + */ + +#ifdef BIGEND +#ifdef BIT_ORDER1 +typedef union +{ + word all; + struct { + HALF_WORD_BIT_FIELD printer_count:2; + HALF_WORD_BIT_FIELD not_used:1; + HALF_WORD_BIT_FIELD game_io_present:1; + HALF_WORD_BIT_FIELD rs232_count:3; + HALF_WORD_BIT_FIELD unused:1; + + HALF_WORD_BIT_FIELD max_diskette:2; /* BEWARE - 0 RELATIVE */ + HALF_WORD_BIT_FIELD video_mode:2; + HALF_WORD_BIT_FIELD ram_size:2; + HALF_WORD_BIT_FIELD coprocessor_present:1; + HALF_WORD_BIT_FIELD diskette_present:1; + } bits; +} EQUIPMENT_WORD; +#endif +#ifdef BIT_ORDER2 +typedef union +{ + word all; + struct { + HALF_WORD_BIT_FIELD unused:1; + HALF_WORD_BIT_FIELD rs232_count:3; + HALF_WORD_BIT_FIELD game_io_present:1; + HALF_WORD_BIT_FIELD not_used:1; + HALF_WORD_BIT_FIELD printer_count:2; + + HALF_WORD_BIT_FIELD diskette_present:1; + HALF_WORD_BIT_FIELD coprocessor_present:1; + HALF_WORD_BIT_FIELD ram_size:2; + HALF_WORD_BIT_FIELD video_mode:2; + HALF_WORD_BIT_FIELD max_diskette:2; /* BEWARE - 0 RELATIVE */ + } bits; +} EQUIPMENT_WORD; +#endif +#endif + +#ifdef LITTLEND +#ifdef BIT_ORDER1 +typedef union +{ + word all; + struct { + HALF_WORD_BIT_FIELD max_diskette:2; /* BEWARE - 0 RELATIVE */ + HALF_WORD_BIT_FIELD video_mode:2; + HALF_WORD_BIT_FIELD ram_size:2; + HALF_WORD_BIT_FIELD coprocessor_present:1; + HALF_WORD_BIT_FIELD diskette_present:1; + + HALF_WORD_BIT_FIELD printer_count:2; + HALF_WORD_BIT_FIELD not_used:1; + HALF_WORD_BIT_FIELD game_io_present:1; + HALF_WORD_BIT_FIELD rs232_count:3; + HALF_WORD_BIT_FIELD unused:1; + } bits; +} EQUIPMENT_WORD; +#endif +#ifdef BIT_ORDER2 +typedef union +{ + word all; + struct { + HALF_WORD_BIT_FIELD diskette_present:1; + HALF_WORD_BIT_FIELD coprocessor_present:1; + HALF_WORD_BIT_FIELD ram_size:2; + HALF_WORD_BIT_FIELD video_mode:2; + HALF_WORD_BIT_FIELD max_diskette:2; /* BEWARE - 0 RELATIVE */ + + HALF_WORD_BIT_FIELD unused:1; + HALF_WORD_BIT_FIELD rs232_count:3; + HALF_WORD_BIT_FIELD game_io_present:1; + HALF_WORD_BIT_FIELD not_used:1; + HALF_WORD_BIT_FIELD printer_count:2; + } bits; +} EQUIPMENT_WORD; +#endif +#endif + +#define EQUIP_FLAG BIOS_VAR_START + 0x10 + +#define RAM_SIZE_16K 0 +#define RAM_SIZE_32K 1 +#define RAM_SIZE_48K 2 +#define RAM_SIZE_64K 3 + +#define VIDEO_MODE_UNUSED 0 +#define VIDEO_MODE_40X25_COLOUR 1 +#define VIDEO_MODE_80X25_COLOUR 2 +#define VIDEO_MODE_80X25_BW 3 diff --git a/private/mvdm/softpc.new/base/inc/error.h b/private/mvdm/softpc.new/base/inc/error.h new file mode 100644 index 000000000..73baa6f09 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/error.h @@ -0,0 +1,420 @@ +#ifdef NTVDM +#include "..\..\host\inc\error.h" + +#else +#ifndef _INS_ERROR_H +#define _INS_ERROR_H +/*[ + Name: error.h + Derived From: Base 2.0 + Author(s): M.McCusker and J.D.R. (config msgs) + Created On: Unknown + Sccs ID: @(#)error.h 1.45 06/22/95 + Purpose: Define the list of error messages and also the + interface to the host_error family of functions. + Notes: This file is guarded against multiple inclusion. + +MUST INCLUDE + insignia.h + +DESCRIPTION + This file provides an interface into the SoftPC error handling system. + + It defines the main generic base error messages in a large enum. + + It also defines a list of error headers and variants. 3.0 host_error + Now looks up the error code in a table of ERROR_STRUCTs to find what + header to print and also in which of the possible variants to format + the error panel. + + Header types are:- + EH_WARNING A warning message + EH_ERROR Runtime Error + EH_CONFIG Configuration File Problem + EH_INSTALL installation File Problem. + + Each variant has up to three separate strings that will be printed on + the panel. These strings change function depending on the error + variant. + + Variant types are:- + EV_SIMPLE Simple Error Pnael, Message Only. + EV_EXTRA_CHAR Extra Char panel, current default. + EV_BAD_FILE Config Error variant bad file. + EV_SYS_BAD_VALUE Config System Bad Entry. + EV_BAD_VALUE Config bad user config entry. + EV_BAD_INPUT Input also variant of EV_EXTRA_CHAR. + + Each variant interprets the ErrData structure a little differently. + The BAD VALUE/INPUT variants also allow input form the error panel + into string_1 of the ErrData Structure. For input if the user hits + the Continue button on the panel the input filed is strcpy'd to + string_1. string_1 MUST be a pointer to an adequately sized char[]. + + Name Parameters + EV_SIMPLE No parameters required. + EV_EXTRA_CHAR 1 - Extra Char. + EV_BAD_FILE 1 - Name of problem file. + EV_SYS_BAD_VALUE 1 - Current Value of entry. + 2 - Bad Option option name. + EV_BAD_VALUE 1 - Current value char array (i/o). + 2 - Bad Option Name. + 3 - System Default Value. + EV_BAD_INPUT 1 - Problem Line (i/o). + +IMPORTED DATA +Error Description Tables ERROR_STRUCT base_errors[]; + ERROR_STRUCT host_errors[]; + +base and host errors Tables indexed by the error code that provide + host_error_ext with the header and variant types. + +TYPEDEFS + +Parameter to extended error struct + { + char *string_1; + char *string_2; + char *string_3; + } ErrData, *ErrDataPtr; + +Error Function Pointers struct + { + SHORT (*error_conf)(); + SHORT (*error)(); + SHORT (*error_ext)(); + } ERRORFUNCS; + +Ancillary data per error struct + { + CHAR header; + CHAR variant; + } ERROR_STRUCT; + +The error code enum, See header file for details. + +GLOBAL FUNCTIONS + +Current Error Function Table IMPORT ERRORFUNCS *working_error_funcs; + +Error Macros host_error_conf(panel, num, opts, extra) + host_error(num, opts, extra) + host_error_ext(num, opts, data) + +host_error_conf + + SHORT host_error_conf + (int panel, int errCode, int buttons, char *extraChar) + + host_error_conf will not be supported by the 3.0 generic Motif UIF. + This call will just be a straight front end to a call of + host_error_ext. + + See Also host_error_ext. + +host_error + + SHORT host_error(int errCode, int buttons, char *extraChar) + + This function loads extraChar into string one of a local ErrData + structure and calls host_error_ext. + + See also host_error_ext. + +host_error_ext + + SHORT host_error_ext(int errCode, int buttons, ErrDataPtr errDataP) + + ErrCode is an index into either the base_errors array or the + host_errors array, 1-999 base, 1001-1999 host_errors. The header + code and the variant type is looked up in this array. + + A maximum of three buttons can be or'ed into the buttons parameter + which are: ERR_QUIT, ERR_CONT, ERR_RESET, ERR_DEF & ERR_CONFIG any + three of these can be used, NB ERR_CONFIG and ERR_DEF are exactly the + same ERR_CONFIG is provided for backwards compatibility. The + following macros are provided for convenience:- + ERR_QU_CO_RE + ERR_QU_CO_DE + ERR_QU_CO + ERR_QU_RE + ERR_QU_DE + ERR_STANDARD Here for compatibility + + After the panel is displayed, and the user chooses an option button is + interpreted as follows:- + ERR_QUIT - Call terminate(), doesn't return. + ERR_CONT - For some variants strcpy the input field. + ERR_RESET - Calls Reboot. + ERR_DEF } - No action. + ERR_CONFIG} + + Finally, host_error_ext returns the option the user selected. + + (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved. +]*/ + +/* + * ============================================================================ + * Structure/Data definitions + * ============================================================================ + */ + +/* + * Button bit mask values + */ + +#define ERR_QUIT 1 +#define ERR_CONT 2 +#define ERR_RESET 4 +#define ERR_DEF 8 +#define ERR_CONFIG 8 + +#define ERR_QU_CO_RE ( ERR_QUIT | ERR_CONT | ERR_RESET ) +#define ERR_QU_CO_DE ( ERR_QUIT | ERR_CONT | ERR_DEF ) +#define ERR_QU_CO ( ERR_QUIT | ERR_CONT ) +#define ERR_QU_RE ( ERR_QUIT | ERR_RESET ) +#define ERR_QU_DE ( ERR_QUIT | ERR_DEF ) + +#define ERR_STANDARD ( ERR_QU_CO_RE ) /* here for compatibility */ + +/* + * The following are the Generic Error messages displayed by + * SoftPC. Host Specific messages are defined in xxxx_error.h + * where xxxx is the machine ID. + */ + +/* + New messages MUST be added to the end of the list, or replace a + spare number. This rule prevents undue change to message catalogues, + both Insignia-generated ones and translations provided by OEMs. + + YOU MUST UPDATE message.c AND err_tble.c + YOU MUST REPORT A HOST IMPACT ON MESSAGE CATALOGUES + */ + +typedef enum +{ + EG_BAD_OP=0, + EG_SLAVEPC_NO_LOGIN, + EG_SLAVEPC_NO_RESET, + EG_SLAVEPC_BAD_LINE, + EG_MISSING_HDISK, + EG_REAL_FLOPPY_IN_USE, + EG_HDISK_BADPATH, + EG_HDISK_BADPERM, + EG_HDISK_INVALID, + EG_NO_ROOM_FOR_LIM, + EG_HDISK_CANNOT_CREATE, + EG_HDISK_READ_ONLY, + EG_OWNUP, + EG_FSA_NOT_FOUND, + EG_FSA_NOT_DIRECTORY, + EG_FSA_NO_READ_ACCESS, + EG_NO_ACCESS_TO_FLOPPY, + EG_NO_ROM_BASIC, + EG_SLAVE_ON_TTYA, + EG_TTYA_ON_SLAVE, + EG_SAME_HD_FILE, + EG_DFA_BADOPEN, + EG_EXPANDED_MEM_FAILURE, + EG_MISSING_FILE, + EG_CONT_RESET, + EG_INVALID_EXTENDED_MEM_SIZE, + EG_INVALID_EXPANDED_MEM_SIZE, + EG_INVALID_AUTOFLUSH_DELAY, + EG_INVALID_VIDEO_MODE, + EG_NO_GRAPHICS, /* Dumb terminal using spare slot */ + EG_REZ_UPDATE, + EG_NO_REZ_UPDATE, + EG_HFX_NO_USE, + EG_HFX_NO_NET, + EG_HFX_IN_USE, + EG_HFX_LOST_DIR, + EG_HFX_NOT_DIR, + EG_HFX_CANT_READ, + EG_HFX_DRIVE_NO_USE, + EG_HFX_DRIVE_ILL, + EG_NO_FONTS, + EG_UNSUPPORTED_VISUAL, + EG_NO_SOUND, + EG_SIG_PIPE, + EG_MALLOC_FAILURE, + EG_NO_REAL_FLOPPY_AT_ALL, + EG_SYS_MISSING_SPCHOME, + EG_SYS_MISSING_FILE, + EG_BAD_OPTION, + EG_WRITE_ERROR, /* Dumb terminal using spare slot */ + EG_CONF_MISSING_FILE, + EG_CONF_FILE_WRITE, + EG_DEVICE_LOCKED, + EG_DTERM_BADOPEN, + EG_DTERM_BADTERMIO, + EG_BAD_COMMS_NAME, + EG_BAD_VALUE, + EG_SYS_BAD_VALUE, + EG_SYS_BAD_OPTION, + EG_SYS_CONF_MISSING, + EG_BAD_CONF, + EG_CONF_MISSING, + EG_BAD_MSG_CAT, + EG_DEMO_EXPIRED, + EG_GATE_A20, + EG_NO_LOCKD, + EG_DATE_FWD, + EG_DATE_BACK, + + EG_NOT_CHAR_DEV, /* New generic floppy error. GM */ + EG_MSW_256_COLOURS, + EG_MSW_16_COLOURS, + + EG_HDISK_LOCKED, + EG_UNKNOWN_LOCK, + EG_NO_TERM_DESCR, + EG_DEFAULT_TERM, + + EG_ST_BAD_OPTION, /* New Serial Terminal config error messages */ + EG_ST_BAD_CONF, + EG_ST_CONF_MISSING, + + EG_UNSUPPORTED_DEPTH, /* BCN 1622 */ + + EG_INSUF_MEMORY, + + EG_BAD_DISK_READ, + EG_BAD_DISK_WRITE, + + EG_LICENSE_FAILURE, /* Licensing error messages. BCN XXXX */ + EG_LICENSE_EXPIRED, + EG_LICENSE_LOST, + EG_3_MINS_LEFT, + EG_TIMES_UP, + EG_UNAUTHORISED, + EG_LICENSE_EXCEEDED, + EG_INSTALL_ON_SERVER, + EG_FAILED_LMGRD, + EG_FAILED_INITTAB, + EG_UPDATE_LICFILE_FAILED, + EG_WRONG_MSWDVR, +#ifdef DOS_APP_LIC + EG_DAL_TOO_MUCH_NESTING, + EG_DAL_LIC_EXPIRED, + EG_DAL_LIC_EXCEEDED, +#endif + EG_FAILED_RCLOCAL, + +#ifdef SOFTWIN_API + EG_API_MISMATCH, +#endif /* SOFTWIN_API */ + + EG_OVERWRITE_DRIVE_C, + + EG_NO_SNDBLST_SUPPORT, + EG_DIRECTORY, +#ifdef HOST_HELP + EG_HELP_ERROR, + EG_HELP_NOT_INSTALLED, +#endif /* HOST_HELP */ +#ifdef SECURE + EG_SYS_INSECURE, +#endif + + EG_INFINITE_LOOP, + EG_DRIVER_MISMATCH, + EG_MISSING_INS_VXD, + NUM_BASE_ERRORS +} base_error_type; + +/* The error message EG_HDISK_NOT_FOUND was a duplicate of EG_MISSING_HDISK +** so was removed. This define is in case EG_HDISK_NOT_FOUND is being used +** in anyone's host. +*/ +#define EG_HDISK_NOT_FOUND EG_MISSING_HDISK + +typedef struct +{ + char header; + char varient; +} ERROR_STRUCT; + +typedef enum +{ + EH_WARNING=0, + EH_ERROR, + EH_CONFIG, + EH_INSTALL, + EH_LAST +} base_error_headers; + +typedef enum +{ + EV_SIMPLE=0, + EV_EXTRA_CHAR, + EV_BAD_FILE, + EV_SYS_BAD_VALUE, + EV_BAD_VALUE, + EV_BAD_INPUT, + EV_LAST +} base_error_varients; + +/* + * 'string_1' is always used for input when necessary. When it is + * used for input it must point to a buffer with ample space. + */ +typedef struct +{ + char *string_1; /* this must be a pointer to an ample buffer */ + char *string_2; + char *string_3; +} ErrData, *ErrDataPtr; + +/* + * ============================================================================ + * External declarations and macros + * ============================================================================ + */ + +#ifdef ANSI + +typedef struct +{ + SHORT (*error_conf)(int, int, int, char *); + SHORT (*error)(int, int, char *); + SHORT (*error_ext)(int, int, ErrDataPtr); +} ERRORFUNCS; + +#else /* ANSI */ + +typedef struct +{ + SHORT (*error_conf)(); + SHORT (*error)(); + SHORT (*error_ext)(); +} ERRORFUNCS; + +#endif /* ANSI */ + +IMPORT ERRORFUNCS *working_error_funcs; + +#define host_error_conf(panel, num, opts, extra)\ + (*working_error_funcs->error_conf)(panel, num, opts, extra) + +#define host_error(num, opts, extra)\ + (*working_error_funcs->error)(num, opts, extra) + +#define host_error_ext(num, opts, data)\ + (*working_error_funcs->error_ext)(num, opts, data) +/* Prototype for the host_get_system_error_function which + * sits in the source code. Added 8.3.95 + */ +IMPORT char * host_get_system_error IPT3 (char *, filename, int, line, int, errno); + + +/* + * Undefine these GWI defines if the host isn't using the GWI interface + */ + +#include "host_gwi.h" + +#endif /* _INS_ERROR_H */ +#endif /* ntvdm */ diff --git a/private/mvdm/softpc.new/base/inc/fdisk.h b/private/mvdm/softpc.new/base/inc/fdisk.h new file mode 100644 index 000000000..427d6ccf4 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/fdisk.h @@ -0,0 +1,44 @@ +/* @(#)fdisk.h 1.9 02/10/93 Copyright Insignia Solutions Ltd. + +FILE NAME : + + THIS INCLUDE SOURCE FILE IS SUPPLIED IN CONFIDENCE TO THE + CUSTOMER, THE CONTENTS OR DETAILS OF ITS OPERATION MUST + NOT BE DISCLOSED TO ANY OTHER PARTIES WITHOUT THE EXPRESS + AUTHORISATION FROM THE DIRECTORS OF INSIGNIA SOLUTIONS INC. + +DESIGNER : +DATE : + + +========================================================================= + +AMENDMENTS : + +========================================================================= +*/ + +IMPORT VOID disk_io IPT0(); +IMPORT VOID disk_post IPT0(); + +IMPORT VOID fdisk_inb IPT2(io_addr, port, UTINY *, value); +IMPORT UTINY fdisk_read_dir IPT2(io_addr, port, UTINY *, value); +IMPORT VOID fdisk_inw IPT2(io_addr, port, USHORT *, value); +IMPORT VOID fdisk_outb IPT2(io_addr, port, UTINY, value); +IMPORT VOID fdisk_outw IPT2(io_addr, port, USHORT, value); +IMPORT VOID fdisk_ioattach IPT0(); +IMPORT VOID fdisk_iodetach IPT0(); +IMPORT VOID fdisk_physattach IPT1(int, driveno); +IMPORT VOID fdisk_reset IPT0(); +IMPORT VOID hda_init IPT0(); +IMPORT VOID host_fdisk_get_params IPT4(int, driveid, int *, n_cyl, + int *, n_heads, int *, n_sects); +IMPORT VOID host_fdisk_term IPT0(); +IMPORT int host_fdisk_rd IPT4(int, driveid, int,offset, int, nsecs, char *,buf); +IMPORT int host_fdisk_wt IPT4(int, driveid, int,offset, int, nsecs, char *,buf); +IMPORT VOID host_fdisk_seek0 IPT1(int, driveid); +IMPORT int host_fdisk_create IPT2(char *, filename, ULONG, units); + +IMPORT VOID patch_rom IPT2(IU32, addr, IU8, val); +IMPORT VOID fast_disk_bios_attach IPT1( int, drive ); +IMPORT VOID fast_disk_bios_detach IPT1( int, drive ); diff --git a/private/mvdm/softpc.new/base/inc/fla.h b/private/mvdm/softpc.new/base/inc/fla.h new file mode 100644 index 000000000..11e0898c8 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/fla.h @@ -0,0 +1,122 @@ + +/* + * VPC-XT Revision 1.0 + * + * Title : Floppy Disk Adaptor definitions + * + * Description : This file contains those definitions that are used + * by modules calling the FLA as well as thw FLA itself. + * + * Author : Henry Nash + * + * Notes : This file is included by fla.f and should not be + * included directly. + */ + +/* @(#)fla.h 1.5 08/26/92 */ + +/* + * ============================================================================ + * External declarations and macros + * ============================================================================ + */ + +/* + * The FLA also supports the IBM Digital Output Register (DOR) that is used + * to control the physical drives. The bits are assigned as follows: + * + * Bits 0,1 - Drive select between drives 0-3 + * Bit 2 - Not Reset (ie reset when low) + * Bit 3 - Interrupts/DMA enabled + * Bits 4-7 - Motor on for drives 0-3 + * + */ + +#define DOR_RESET 0x04 +#define DOR_INTERRUPTS 0x08 + +/* + * The following define the command codes supported by the FDC + */ + +#define FDC_READ_TRACK 0x02 +#define FDC_SPECIFY 0x03 +#define FDC_SENSE_DRIVE_STATUS 0x04 +#define FDC_WRITE_DATA 0x05 +#define FDC_READ_DATA 0x06 +#define FDC_RECALIBRATE 0x07 +#define FDC_SENSE_INT_STATUS 0x08 +#define FDC_WRITE_DELETED_DATA 0x09 +#define FDC_READ_ID 0x0A +#define FDC_READ_DELETED_DATA 0x0C +#define FDC_FORMAT_TRACK 0x0D +#define FDC_SEEK 0x0F +#define FDC_SCAN_EQUAL 0x11 +#define FDC_SCAN_LOW_OR_EQUAL 0x19 +#define FDC_SCAN_HIGH_OR_EQUAL 0x1D + +#define FDC_COMMAND_MASK 0x1f /* Bits that specify the command */ + +/* + * The following mask specifies the Drive Ready Transition state in + * Status register 0 + */ + +#define FDC_DRIVE_READY_TRANSITION 0xC0 + +/* + * The FDC Status register bit positions: + */ + +#define FDC_RQM 0x80 +#define FDC_DIO 0x40 +#define FDC_NDMA 0x20 +#define FDC_BUSY 0x10 + +/* + * Extra registers required for SFD + */ + +#define DIR_DRIVE_SELECT_0 (1 << 0) +#define DIR_DRIVE_SELECT_1 (1 << 1) +#define DIR_HEAD_SELECT_0 (1 << 2) +#define DIR_HEAD_SELECT_1 (1 << 3) +#define DIR_HEAD_SELECT_2 (1 << 4) +#define DIR_HEAD_SELECT_3 (1 << 5) +#define DIR_WRITE_GATE (1 << 6) +#define DIR_DISKETTE_CHANGE (1 << 7) + +#define IDR_ID_MASK 0xf8 + +#define DCR_RATE_MASK 0x3 +#define DCR_RATE_500 0x0 +#define DCR_RATE_300 0x1 +#define DCR_RATE_250 0x2 +#define DCR_RATE_1000 0x3 + +#define DSR_RQM (1 << 7) +#define DSR_DIO (1 << 6) + +#define DUAL_CARD_ID 0x50 + +/* + * ============================================================================ + * External functions and data + * ============================================================================ + */ + +/* + * The flag that indiactes the FLA is busy, and cannot accept asynchronous + * commands (eg motor off). + */ + +extern boolean fla_busy; +extern boolean fla_ndma; + +/* + * The adaptor functions + */ + +extern void fla_init IPT0(); +extern void fla_inb IPT2(io_addr, port, half_word *, value); +extern void fla_outb IPT2(io_addr, port, half_word, value); diff --git a/private/mvdm/softpc.new/base/inc/flexlmif.h b/private/mvdm/softpc.new/base/inc/flexlmif.h new file mode 100644 index 000000000..0b002a2e0 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/flexlmif.h @@ -0,0 +1,55 @@ +/*[ + ***************************************************************************** + * Name: flexlmif.h + * + * Derived From: (original) + * + * Author: Bruce Anderson + * + * Created On: August 1993 + * + * Sccs ID: @(#)flexlmif.h 1.4 02/10/94 + * + * Coding Stds: 2.0 + * + * Purpose: interface for Flexlm dialog box + * + * Copyright Insignia Solutions Ltd., 1993. All rights reserved. + ***************************************************************************** +]*/ + +#ifdef LICENSING +typedef struct +{ + IBOOL demo_license ; +#ifdef SOFTWINDOWS_AND_SOFTPC /* Needed when we have SoftPC and SoftWindows */ + IBOOL softwindows ; +#endif + CHAR host_id[13] ; + CHAR server_name[64] ; /* Is this big enough? */ + CHAR serial_number[20] ; + IU16 number_users ; + IU16 date[3] ; /* day,month,year */ + CHAR authorization[21] ; /* Code with no white space. */ + IU16 port_number ; + IBOOL rootinstall; /* root is being given chance to install a license */ +} FLEXLM_DIALOG ; + + +extern void Flexlm_dialog_popup IPT1( FLEXLM_DIALOG * , data ) ; +extern void Flexlm_dialog_close IPT0( ) ; +extern void Flexlm_dialog_get IPT1( FLEXLM_DIALOG * , data ) ; +extern void Flexlm_dialog_set IPT1( FLEXLM_DIALOG * , data ) ; +extern IBOOL Flexlm_install_license IPT1(IBOOL, rootinst) ; +extern void Flexlm_start_lmgrd IPT0() ; +extern void Flexlm_error_dialog IPT1( CHAR *, name ) ; +extern IBOOL Flexlm_warning_dialog IPT1( CHAR *, name ) ; +extern CHAR *Flexlm_get_lic_filename IPT0( ) ; + +/* Callbacks */ +extern IBOOL Flexlm_dialog_validate_authorization IPT1( CHAR * , authorization ) ; +extern IBOOL Flexlm_dialog_validate_serial IPT1( CHAR * , serial ) ; +extern IBOOL Flexlm_dialog_cancel_installation IPT0( ) ; +extern IBOOL Flexlm_dialog_install_license IPT0( ) ; +extern IBOOL Flexlm_dialog_quit_SoftPC IPT0( ) ; +#endif /* LICENSING */ diff --git a/private/mvdm/softpc.new/base/inc/floppy.h b/private/mvdm/softpc.new/base/inc/floppy.h new file mode 100644 index 000000000..2998b6248 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/floppy.h @@ -0,0 +1,583 @@ +/* + * VPC-XT Revision 2.0 + * + * Title : High Density Floppy BIOS Definitions + * + * Description : Definitions used in the floppy diskette BIOS emulation + * + * Author : Ross Beresford + * + * Notes : + * + * + * + */ + +/* @(#)floppy.h 1.9 08/25/93 */ + + +/* + * FLOPPY DATA AREAS: we maintain the same data variables as the real + * BIOS in case applications know of their significance and use them. + */ + +/* + * THE SEEK STATUS: + * + * +---+---+---+---+---+---+---+---+ + * | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | + * +---+---+---+---+---+---+---+---+ + * ^ ^ ^ ^ ^ ^ ^ ^ + * | | | | | | | | + * | | | | | | | +- set if drive A needs recalibrating + * | | | | | | | + * | | | | | | +----- set if drive B needs recalibrating + * | | | | | | + * | | | | | +--------- (set if drive C needs recalibrating) + * | | | | | + * | | | | +------------- (set if drive D needs recalibrating) + * | | | | + * | | | +----------------- ) + * | | | ) + * | | +--------------------- )- unused + * | | ) + * | +------------------------- ) + * | + * +----------------------------- set when an interrupt is acknowledged + */ + +#define SEEK_STATUS (BIOS_VAR_START + 0x3e) + +#define SS_RECAL_ON_0 (1 << 0) +#define SS_RECAL_ON_1 (1 << 1) +#define SS_RECAL_ON_2 (1 << 2) +#define SS_RECAL_ON_3 (1 << 3) +#define SS_RECAL_MASK (SS_RECAL_ON_0|SS_RECAL_ON_1| \ + SS_RECAL_ON_2|SS_RECAL_ON_3) +#define SS_INT_OCCURRED (1 << 7) + +/* + * THE MOTOR STATUS: this variable reflects the state of the + * Digital Output Register in the floppy adapter + * + * +---+---+---+---+---+---+---+---+ + * | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | + * +---+---+---+---+---+---+---+---+ + * ^ ^ ^ ^ ^ ^ ^ ^ + * | | | | | | | | + * | | | | | | | +- set if drive A motor is running + * | | | | | | | + * | | | | | | +----- set if drive B motor is running + * | | | | | | + * | | | | | +--------- (set if drive C motor is running) + * | | | | | + * | | | | +------------- (set if drive D motor is running) + * | | | | + * | | | +----------------- ) number of the drive that is + * | | | )- currently selected in the + * | | +--------------------- ) floppy adapter + * | | + * | +------------------------- unused + * | + * +----------------------------- set during a write operation + */ + +#define MS_MOTOR_0_ON (1 << 0) +#define MS_MOTOR_1_ON (1 << 1) +#define MS_MOTOR_2_ON (1 << 2) +#define MS_MOTOR_3_ON (1 << 3) +#define MS_MOTOR_ON_MASK (MS_MOTOR_0_ON|MS_MOTOR_1_ON| \ + MS_MOTOR_2_ON|MS_MOTOR_3_ON) +#define MS_DRIVE_SELECT_0 (1 << 4) +#define MS_DRIVE_SELECT_1 (1 << 5) +#define MS_DRIVE_SELECT_MASK (MS_DRIVE_SELECT_0|MS_DRIVE_SELECT_1) +#define MS_WRITE_OP (1 << 7) + +/* + * THE MOTOR COUNT: this counter shows how many timer ticks must + * elapse before the drive motors can be turned off. The timer + * interrupt handler decrements this value once per timer tick. + */ + +#define MC_MAXIMUM (~0) + +/* + * THE FLOPPY STATUS: + * + * +---+---+---+---+---+---+---+---+ + * | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | + * +---+---+---+---+---+---+---+---+ + * ^ ^ ^ ^ ^ ^ ^ ^ + * | | | | | | | | + * | | | | | | | +- ) + * | | | | | | | ) + * | | | | | | +----- ) 0 if the last operation was + * | | | | | | )- carried out successfully; + * | | | | | +--------- ) otherwise one of various + * | | | | | ) error values + * | | | | +------------- ) + * | | | | + * | | | +----------------- set when there is a CRC error + * | | | + * | | +--------------------- set when the FDC has a bug + * | | + * | +------------------------- set when a seek terminates abnormally + * | + * +----------------------------- set when there is a time out + */ + +#define FLOPPY_STATUS (BIOS_VAR_START + 0x41) + +#define FS_OK 0x00 +#define FS_BAD_COMMAND 0x01 +#define FS_BAD_ADDRESS_MARK 0x02 +#define FS_WRITE_PROTECTED 0x03 +#define FS_SECTOR_NOT_FOUND 0x04 +#define FS_MEDIA_CHANGE 0x06 +#define FS_DMA_ERROR 0x08 +#define FS_DMA_BOUNDARY 0x09 +#define FS_MEDIA_NOT_FOUND 0x0C + +#define FS_CRC_ERROR (1 << 4) +#define FS_FDC_ERROR (1 << 5) +#define FS_SEEK_ERROR (1 << 6) +#define FS_TIME_OUT (1 << 7) + +#define FS_NONSENSICAL (~0) + +/* + * THE FDC STATUS: this array stores the result bytes returned from + * the floppy disk controller after a command has been executed. + */ + +/* + * THE RATE STATUS: this variable controls data rate scanning, + * which is used to determine which of various types of media is + * actually installed in a floppy drive. + * + * +---+---+---+---+ Current data rate (reflects status of the + * | 7 | 6 | 5 | 4 | Digital Control Register in the floppy + * +---+---+---+---+ adapter) + * + * +---+---+---+---+ + * | 3 | 2 | 1 | 0 | Last data rate to try + * +---+---+---+---+ + * ^ ^ ^ ^ + * | | | | + * | | | +- unused + * | | | + * | | +----- unused + * | | + * | +--------- ) 00 = 500 kbs data rate + * | )- 01 = 300 kbs data rate + * +------------- ) 10 = 250 kbs data rate + * 11 = 1000 kbs data rate + * + * next_rate() is used to cycle through the possible data rates + */ + +#define RATE_STATUS (BIOS_VAR_START + 0x8B) + +#define RS_300 (1 << 6) +#define RS_250 (1 << 7) +#define RS_500 (0) +#define RS_1000 (3 << 6) +#define RS_MASK (RS_300 | RS_250) + +#ifdef NTVDM +/* On NT, don't cycle through RS_1000. Why? */ +#define next_rate(rate) (rate == RS_1000? RS_500: \ + (rate == RS_500 ? RS_250: \ + (rate == RS_250 ? RS_300: RS_500))) +#else +#define next_rate(rate) (rate == RS_500 ? RS_250: \ + (rate == RS_250 ? RS_300: \ + (rate == RS_300 ? RS_1000: RS_500))) +#endif + +/* + * Unused high density floppy variables + */ + +#define HF_STATUS (BIOS_VAR_START + 0x8C) +#define HF_ERROR (BIOS_VAR_START + 0x8D) +#define HF_INT_FLAG (BIOS_VAR_START + 0x8E) + +/* + * THE DRIVE CAPABILITY INDICATORS: this variable describes what + * features are supported by floppy drives A and B + * + * NB if Drive A supports 80 tracks, the BIOS assumes that the + * floppy adapter is a dual fixed disk/diskette adapter + * + * +---+---+---+---+ + * | 7 | 6 | 5 | 4 | Drive B + * +---+---+---+---+ + * + * +---+---+---+---+ + * | 3 | 2 | 1 | 0 | Drive A + * +---+---+---+---+ + * ^ ^ ^ ^ + * | | | | + * | | | +- set if drive supports 80 tracks + * | | | + * | | +----- set for a multiple data rate drive + * | | + * | +--------- set if the drive capability is determined + * | + * +------------- unused + * + */ + +#define DRIVE_CAPABILITY (BIOS_VAR_START + 0x8F) + +#define DC_80_TRACK (1 << 0) +#define DC_DUAL DC_80_TRACK +#define DC_MULTI_RATE (1 << 1) +#define DC_DETERMINED (1 << 2) +#define DC_MASK (DC_80_TRACK|DC_MULTI_RATE|DC_DETERMINED) + +/* + * THE DRIVE STATUS: one byte each for drive A and B; within the + * BIOS functions, the format is as follows: + * + * <- media bits -> <- drive bits -> + * + * +---+---+---+---+---+---+---+---+ + * | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | + * +---+---+---+---+---+---+---+---+ + * ^ ^ ^ ^ ^ ^ ^ ^ + * | | | | | | | | + * | | | | | | | +- set if drive supports 80 tracks + * | | | | | | | + * | | | | | | +----- set for a multiple data rate drive + * | | | | | | + * | | | | | +--------- set if capability is determined + * | | | | | + * | | | | +------------- unused + * | | | | + * | | | +----------------- set when media is determined + * | | | + * | | +--------------------- set when double stepping is required + * | | + * | +------------------------- ) 00 = 500 kbs data rate + * | )- 01 = 300 kbs data rate + * +----------------------------- ) 10 = 250 kbs data rate + * 11 = 1000 kbs data rate + * + * + * Outside the BIOS functions, the status is converted to a different + * format to be compatible with earlier releases of the BIOS + * + * +---+---+---+---+---+---+---+---+ + * | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | + * +---+---+---+---+---+---+---+---+ + * ^ ^ ^ ^ ^ ^ ^ ^ + * | | | | | | | | + * | | | | | | | +- ) 000 = 360K in 360K undetermined + * | | | | | | | ) 001 = 360K in 1.2M undetermined + * | | | | | | | ) 010 = 1.2M in 1.2M undetermined + * | | | | | | +----- ) 011 = 360K in 360K media determined + * | | | | | | ) 100 = 360K in 1.2M media determined + * | | | | | | ) 101 = 1.2M in 1.2M media determined + * | | | | | | ) 110 = unused + * | | | | | +--------- ) 111 = drive invalid + * | | | | | + * | | | | +------------- unused + * | | | | + * | | | +----------------- set when media is determined + * | | | + * | | +--------------------- set when double stepping is required + * | | + * | +------------------------- ) 00 = 500 kbs data rate + * | )- 01 = 300 kbs data rate + * +----------------------------- ) 10 = 250 kbs data rate + * 11 = 1000 kbs data rate + */ + +#define FDD_STATUS (BIOS_VAR_START + 0x90) + +#define FS_MEDIA_DET (1 << 4) +#define FS_DOUBLE_STEP (1 << 5) + +#define FS_360_IN_360 0x0 +#define FS_360_IN_12 0x1 +#define FS_12_IN_12 0x2 +#define FS_288_IN_288 0x3 +#define FS_DRIVE_SICK 0x7 + +#define media_determined(state) ((state & 3) + 3) + +/* + * THE DRIVE TRACK: one byte each for drives A and B; records + * which track each drive last did a seek to + * + * FDD_CLONK_TRACK and FDD_JUDDER_TRACK are track numbers used + * in the determination of track capacity + */ + +#define FDD_TRACK (BIOS_VAR_START + 0x94) + +#define FDD_CLONK_TRACK 48 +#define FDD_JUDDER_TRACK 10 + +/* + * DISKETTE PARAMETER TABLES: the disk pointer in the interrupt + * vector table addresses a table of floppy disk characteristics + * applying to the current drive and media; the entries in the + * table are referenced by offsets + * + * Standard parameter tables are established in the ROM for common + * media and drive types; these are referenced from a drive type + * table also in ROM + */ + +#define DISK_POINTER_ADDR 0x78 + +#define DT_SPECIFY1 0 /* 1st FDC specify byte */ +#define DT_SPECIFY2 1 /* 2nd FDC specify byte */ +#define DT_MOTOR_WAIT 2 /* motor off wait time */ +#define DT_N_FORMAT 3 /* bytes/sector indicator */ +#define DT_LAST_SECTOR 4 /* sectors/track */ +#define DT_GAP_LENGTH 5 /* gap length */ +#define DT_DTL 6 /* data length */ +#define DT_FORMAT_GAP_LENGTH 7 /* gap length for format */ +#define DT_FORMAT_FILL_BYTE 8 /* fill byte for format */ +#define DT_HEAD_SETTLE 9 /* head settle time/ms */ +#define DT_MOTOR_START 10 /* motor start time/s */ +#define DT_MAXIMUM_TRACK 11 /* maximum track number */ +#define DT_DATA_TRANS_RATE 12 /* data transfer rate */ + +#define DT_SIZE_OLD 11 /* old table size */ +#define DT_SIZE_NEW 13 /* new table size */ + +#define MOTOR_WAIT 0x25 /* standard motor off wait time */ + +#define DR_CNT 9 /* number of drive types */ +#define DR_SIZE_OF_ENTRY (sizeof(half_word) + sizeof(word)) + /* size of drive type entry */ +#define DR_WRONG_MEDIA (1 << 7)/* set if "wrong" media for drive type */ + +/* + * SFD BIOS FLOPPY DISK EQUATES + */ + + +/* + * Drive intelligence level (returned by READ DASD TYPE function) + */ + +#define DRIVE_IQ_UNKNOWN 0 +#define DRIVE_IQ_NO_CHANGE_LINE 1 +#define DRIVE_IQ_CHANGE_LINE 2 +#define DRIVE_IQ_RESERVED 3 + + +/* + * Maximum track accessible for drive types + */ + +#define MAXIMUM_TRACK_ON_360 39 +#define MAXIMUM_TRACK_ON_12 79 +#define MAXIMUM_TRACK_ON_720 79 +#define MAXIMUM_TRACK_ON_144 79 + + +/* + * Media types + */ + +#define MEDIA_TYPE_360_IN_360 1 +#define MEDIA_TYPE_360_IN_12 2 +#define MEDIA_TYPE_12_IN_12 3 +#define MEDIA_TYPE_720_IN_720 4 +#define MEDIA_TYPE_720_IN_144 5 +#define MEDIA_TYPE_144_IN_144 6 + +/* + * Floppy disk controller status register formats + */ + +#define ST0_UNIT_SELECT_0 (1 << 0) +#define ST0_UNIT_SELECT_1 (1 << 1) +#define ST0_HEAD_ADDRESS (1 << 2) +#define ST0_NOT_READY (1 << 3) +#define ST0_EQUIPMENT_CHECK (1 << 4) +#define ST0_SEEK_END (1 << 5) +#define ST0_INTERRUPT_CODE_0 (1 << 6) +#define ST0_INTERRUPT_CODE_1 (1 << 7) + +#define ST1_MISSING_ADDRESS_MARK (1 << 0) +#define ST1_NOT_WRITEABLE (1 << 1) +#define ST1_NO_DATA (1 << 2) +#define ST1_UNUSED_AND_ALWAYS_0_0 (1 << 3) +#define ST1_OVERRUN (1 << 4) +#define ST1_DATA_ERROR (1 << 5) +#define ST1_UNUSED_AND_ALWAYS_0_1 (1 << 6) +#define ST1_END_OF_CYLINDER (1 << 7) + + +/* + * DMA adapter command codes + */ + +#define BIOS_DMA_READ 0x46 /* == write to memory */ +#define BIOS_DMA_WRITE 0x4A /* == read from memory */ +#define BIOS_DMA_VERIFY 0x42 /* == verify against memory */ + +/* + * Number of floppy drives that can really be supported + */ + +#define MAX_FLOPPY 0x02 + +/* + * Special value of sectors transferred count + */ + +#define IGNORE_SECTORS_TRANSFERRED -1 + +/* + * One second in motor time units (1/8 seconds) + */ + +#define WAIT_A_SECOND 8 + +/* + * Minimum head settle times in milliseconds + */ + +#define HEAD_SETTLE_360 20 +#define HEAD_SETTLE_12 15 + +/* + * FDC settle time in microseconds + */ + +#define FDC_SETTLE 45 + +/* + * Number of times to poll FDC for correct direction and controller + * ready before timing out + */ + +#define FDC_TIME_OUT 10 + +/* + * SFD BIOS FLOPPY FUNCTION DEFINITIONS + */ + +/* + * Primary external functions + */ + +#ifdef ANSI +extern void diskette_io(void); +extern void diskette_int(void); +extern void diskette_post(void); +#else +extern void diskette_io(); +extern void diskette_int(); +extern void diskette_post(); +#endif /* ANSI */ + +/* + * Secondary external functions + */ + +#ifdef ANSI +extern void fl_disk_reset(int); +extern void fl_disk_status(int); +extern void fl_disk_read(int); +extern void fl_disk_write(int); +extern void fl_disk_verify(int); +extern void fl_disk_format(int); +extern void fl_fnc_err(int); +extern void fl_disk_parms(int); +extern void fl_disk_type(int); +extern void fl_disk_change(int); +extern void fl_format_set(int); +extern void fl_set_media(int); +extern void fl_diskette_setup(void); +#else +extern void fl_disk_reset(); +extern void fl_disk_status(); +extern void fl_disk_read(); +extern void fl_disk_write(); +extern void fl_disk_verify(); +extern void fl_disk_format(); +extern void fl_fnc_err(); +extern void fl_disk_parms(); +extern void fl_disk_type(); +extern void fl_disk_change(); +extern void fl_format_set(); +extern void fl_set_media(); +extern void fl_diskette_setup(); +#endif /* ANSI */ + + +/* + * Other external functions and data + */ + +#ifdef ANSI +extern void drive_detect(int); +extern void translate_old(int); +extern void GetFormatParams(int *, int *, int *, int *); +#else +extern void drive_detect(); +extern void translate_old(); +extern void GetFormatParams(); +#endif /* ANSI */ + + +/* + * External functions in the host. + */ +#ifdef ANSI +extern void host_floppy_init(int, int); +extern void host_floppy_term(int, int); +extern void host_attach_floppies (void); +extern void host_detach_floppies (void); +extern void host_flip_real_floppy_ind (void); +#else +extern void host_floppy_init(); +extern void host_floppy_term(); +extern void host_attach_floppies (); +extern void host_detach_floppies (); +extern void host_flip_real_floppy_ind (); +#endif /* ANSI */ + +/* + * Secondary function jump table definitions + */ + +#define FL_DISK_RESET 0x00 +#define FL_DISK_STATUS 0x01 +#define FL_DISK_READ 0x02 +#define FL_DISK_WRITE 0x03 +#define FL_DISK_VERF 0x04 +#define FL_DISK_FORMAT 0x05 +#define FL_DISK_PARMS 0x08 +#define FL_FNC_ERR 0x14 +#define FL_DISK_TYPE 0x15 +#define FL_DISK_CHANGE 0x16 +#define FL_FORMAT_SET 0x17 +#define FL_SET_MEDIA 0x18 + +#define FL_JUMP_TABLE_SIZE 0x19 + +#define fl_operation_in_range(op) (op < FL_JUMP_TABLE_SIZE) + +extern void ((*(fl_fnc_tab[]))()); + +#ifdef NTVDM +/* + * NT can't assume the presence and placings of SoftPC ROMs. + * These variables initialised from ntio.sys + */ +extern word int15_seg, int15_off; +extern word wait_int_seg, wait_int_off; +extern word dr_type_seg, dr_type_off; +extern sys_addr dr_type_addr; +#endif /* NTVDM */ diff --git a/private/mvdm/softpc.new/base/inc/ga_defs.h b/private/mvdm/softpc.new/base/inc/ga_defs.h new file mode 100644 index 000000000..b87935e2d --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/ga_defs.h @@ -0,0 +1,45 @@ +/*[ +====================================================================== + + SoftPC Revision 3.0 + + Title: + ga_defs.h + + Description: + + This module contains defines to support the write mode + copy function tester for the VGA emulation. + + Author: + John Shanly + + Date: + 26 September 1990 + + SccsID "@(#)ga_defs.h 1.3 08/10/92 Copyright Insignia Solutions Ltd." + +====================================================================== +]*/ + +IMPORT IHP Gdp; + +IMPORT ULONG EasVal; +IMPORT ULONG Ead; +IMPORT ULONG Count; +IMPORT ULONG V1; +IMPORT ULONG V2; +IMPORT ULONG V3; +IMPORT ULONG V4; +IMPORT ULONG V5; + +IMPORT ULONG V6; +IMPORT ULONG V7; +IMPORT ULONG V8; +IMPORT ULONG V9; +IMPORT ULONG V10; +IMPORT ULONG V11; +IMPORT ULONG V12; +IMPORT ULONG V13; +IMPORT ULONG V14; +IMPORT ULONG V15; diff --git a/private/mvdm/softpc.new/base/inc/ga_mark.h b/private/mvdm/softpc.new/base/inc/ga_mark.h new file mode 100644 index 000000000..a2ccf75be --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/ga_mark.h @@ -0,0 +1,90 @@ +/*[ +====================================================================== + + SoftPC Revision 3.0 + + Title: + ga_mark.h + + Description: + + This header file allows C code to see generated routines. + + Author: + John Shanly + + Date: + 5 December 1990 + + SccsID : @(#)ga_mark.h 1.8 04/15/94 + + (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved. + +====================================================================== +]*/ + +extern void _mark_byte_nch IPT1(IU32, eaOff); +extern void _mark_word_nch IPT1(IU32, eaOff); +extern void _mark_string_nch IPT2(IU32, eaOff, IU32, count); + +extern void _mark_byte_ch4 IPT1(IU32, eaOff); +extern void _mark_word_ch4 IPT1(IU32, eaOff); +extern void _mark_string_ch4 IPT2(IU32, eaOff, IU32, count); + +extern void _simple_mark_sml IPT1(IU32, eaOff); +extern void _simple_mark_lge IPT2(IU32, eaOff, IU32, count); + +extern void _cga_mark_byte IPT1(IU32, eaOff); +extern void _cga_mark_word IPT1(IU32, eaOff); +extern void _cga_mark_string IPT2(IU32, eaOff, IU32, count); + +typedef struct +{ + IU32 (*b_mark) IPT1(IU32, eaOff); + IU32 (*w_mark) IPT1(IU32, eaOff); + void (*str_mark) IPT2(IU32, eaOff, IU32, count); +} MARK_POINTERS; + +typedef struct +{ + IU32 (*b_mark) IPT1(IU32, eaOff); + IU32 (*w_mark) IPT1(IU32, eaOff); + IU32 (*d_mark) IPT1(IU32, eaOff); + void (*str_mark) IPT2(IU32, eaOff, IU32, count); +} EVID_MARK_POINTERS; + +extern MARK_POINTERS simple_marks, cga_marks, nch_marks, ch4_marks; + +extern IU32 _simple_b_read(); +extern IU32 _simple_w_read(); +extern void _simple_str_read(); + +extern IU32 _rd_ram_dsbld_byte(); +extern IU32 _rd_ram_dsbld_word(); +extern void _rd_ram_dsbld_string(); +extern void _rd_ram_dsbld_fwd_string_lge(); +extern void _rd_ram_dsbld_bwd_string_lge(); + +extern IU32 _rdm0_byte_nch(); +extern IU32 _rdm0_word_nch(); +extern void _rdm0_string_nch(); +extern void _rdm0_fwd_string_nch_lge(); +extern void _rdm0_bwd_string_nch_lge(); + +extern IU32 _rdm0_byte_ch4(); +extern IU32 _rdm0_word_ch4(); +extern void _rdm0_string_ch4(); +extern void _rdm0_fwd_string_ch4_lge(); +extern void _rdm0_bwd_string_ch4_lge(); + +extern IU32 _rdm1_byte_nch(); +extern IU32 _rdm1_word_nch(); +extern void _rdm1_string_nch(); +extern void _rdm1_fwd_string_nch_lge(); +extern void _rdm1_bwd_string_nch_lge(); + +extern IU32 _rdm1_byte_ch4(); +extern IU32 _rdm1_word_ch4(); +extern void _rdm1_string_ch4(); +extern void _rdm1_fwd_string_ch4_lge(); +extern void _rdm1_bwd_string_ch4_lge(); diff --git a/private/mvdm/softpc.new/base/inc/gendrvr.h b/private/mvdm/softpc.new/base/inc/gendrvr.h new file mode 100644 index 000000000..c322bdb20 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/gendrvr.h @@ -0,0 +1,27 @@ + +/* + * SoftPC Version 2.0 + * + * Title : Pseudo terminal Interface Task. + * + * Desription : This module contains those function calls necessary to + * interface a PC driver to the pseudo terminal unix + * unix drivers. + * + * Author : Simon Frost/William Charnell + * + * Notes : None + * + */ + +/* +static char SccsID[]="@(#)gendrvr.h 1.4 09/24/92 Copyright Insignia Solutions Ltd."; +*/ + +#if defined (GEN_DRVR) || defined (CDROM) +extern void init_gen_drivers(); +#endif /* GEN_DRVR || CDROM */ + +#ifdef GEN_DRVR +extern void gen_driver_io(); +#endif /* GEN_DRVR */ diff --git a/private/mvdm/softpc.new/base/inc/get_env.h b/private/mvdm/softpc.new/base/inc/get_env.h new file mode 100644 index 000000000..650082257 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/get_env.h @@ -0,0 +1,22 @@ +/*[ + * Name: get_env.h + * + * Derived From: (original) + * + * Author: Keith Rautenmbach + * + * Created On: March 1995 + * + * Sccs ID: @(#)get_env.h 1.1 05/15/95 + * + * Purpose: Prototypes for the Soft486 getenv() wrappers + * + * (c) Copyright Insignia Solutions Ltd., 1995. All rights reserved +]*/ + + +/* These functions are in base/support/get_env.c */ + +extern IBOOL IBOOLgetenv IPT2(char *, name, IBOOL, default_value); +extern ISM32 ISM32getenv IPT2(char *, name, ISM32, default_value); +extern char *STRINGgetenv IPT2(char *, name, char *, default_value); diff --git a/private/mvdm/softpc.new/base/inc/getptis.h b/private/mvdm/softpc.new/base/inc/getptis.h new file mode 100644 index 000000000..c0b25959f --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/getptis.h @@ -0,0 +1,84 @@ +{ 0 , " CopierActionCopyZero "}, +{ 1 , " CopierActionCopyOne "}, +{ 2 , " CopierActionCopyTwo "}, +{ 3 , " CopierActionCopyThree "}, +{ 4 , " CopierActionCopyFour "}, +{ 5 , " CopierActionCopyFive "}, +{ 6 , " CopierActionCopySix "}, +{ 7 , " CopierActionCopyVariable "}, +{ 8 , " CopierActionPatchJcond "}, +{ 9 , " CopierActionBackoverMarker "}, +{ 10 , " CopierActionSubrId "}, +{ 11 , " CopierActionNpxExceptionData "}, +{ 12 , " CopierActionNeedNextIntelEip "}, +{ 13 , " CopierActionTupleImm "}, +{ 14 , " CopierActionTupleDisp "}, +{ 15 , " CopierActionTupleImm2 "}, +{ 16 , " CopierActionTupleRetEIP "}, +{ 17 , " CopierActionTearOffFlags "}, +{ 18 , " CopierActionSetsFt "}, +{ 19 , " CopierActionTrackFt "}, +{ 20 , " CopierActionSrcFt "}, +{ 21 , " CopierNoteSrcEAX "}, +{ 22 , " CopierNoteSrcAX "}, +{ 23 , " CopierNoteDstEAX "}, +{ 24 , " CopierNoteDstAX "}, +{ 25 , " CopierNoteDstAL "}, +{ 26 , " CopierNoteSrcEBX "}, +{ 27 , " CopierNoteSrcBX "}, +{ 28 , " CopierNoteDstEBX "}, +{ 29 , " CopierNoteDstBX "}, +{ 30 , " CopierNoteDstBL "}, +{ 31 , " CopierNoteSrcECX "}, +{ 32 , " CopierNoteSrcCX "}, +{ 33 , " CopierNoteDstECX "}, +{ 34 , " CopierNoteDstCX "}, +{ 35 , " CopierNoteDstCL "}, +{ 36 , " CopierNoteSrcEDX "}, +{ 37 , " CopierNoteSrcDX "}, +{ 38 , " CopierNoteDstEDX "}, +{ 39 , " CopierNoteDstDX "}, +{ 40 , " CopierNoteDstDL "}, +{ 41 , " CopierNoteSrcEBP "}, +{ 42 , " CopierNoteDstEBP "}, +{ 43 , " CopierNoteDstBP "}, +{ 44 , " CopierNoteSrcEDI "}, +{ 45 , " CopierNoteDstEDI "}, +{ 46 , " CopierNoteDstDI "}, +{ 47 , " CopierNoteSrcESI "}, +{ 48 , " CopierNoteDstESI "}, +{ 49 , " CopierNoteDstSI "}, +{ 50 , " CopierNoteAddConstraintEAX "}, +{ 51 , " CopierNoteRemoveConstraintEAX "}, +{ 52 , " CopierNoteAddConstraintAX "}, +{ 53 , " CopierNoteRemoveConstraintAX "}, +{ 54 , " CopierNoteAddConstraintEBX "}, +{ 55 , " CopierNoteRemoveConstraintEBX "}, +{ 56 , " CopierNoteAddConstraintBX "}, +{ 57 , " CopierNoteRemoveConstraintBX "}, +{ 58 , " CopierNoteAddConstraintECX "}, +{ 59 , " CopierNoteRemoveConstraintECX "}, +{ 60 , " CopierNoteAddConstraintCX "}, +{ 61 , " CopierNoteRemoveConstraintCX "}, +{ 62 , " CopierNoteAddConstraintEDX "}, +{ 63 , " CopierNoteRemoveConstraintEDX "}, +{ 64 , " CopierNoteAddConstraintDX "}, +{ 65 , " CopierNoteRemoveConstraintDX "}, +{ 66 , " CopierNoteAddSingleInstruction "}, +{ 67 , " CopierNoteProcessSingleInstruction "}, +{ 68 , " CopierNoteSrcESP "}, +{ 69 , " UnusedCopierNoteSrcSP "}, +{ 70 , " CopierNotePostDstSP "}, +{ 71 , " CopierNotePostDstESP "}, +{ 72 , " CopierNotePostCommitPop "}, +{ 73 , " CopierNoteHspTrackAbs "}, +{ 74 , " CopierNoteHspTrackOpnd "}, +{ 75 , " CopierNoteHspTrackReset "}, +{ 76 , " CopierNoteHspAdjust "}, +{ 77 , " CopierNotePigSynch "}, +{ 78 , " CopierNoteMissPigSynch "}, +{ 79 , " CopierNoteSrcUniverse "}, +{ 80 , " CopierNoteSetDF "}, +{ 81 , " CopierNoteClearDF "}, +{ 82 , " CopierNoteBPILabel "}, +{ 83 , " CopierActionLast "}, diff --git a/private/mvdm/softpc.new/base/inc/gfi.h b/private/mvdm/softpc.new/base/inc/gfi.h new file mode 100644 index 000000000..31b8d569b --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/gfi.h @@ -0,0 +1,618 @@ +/* + * SoftPC Version 2.0 + * + * Title : Generic Floppy Interface level definitions + * + * Description : Data structures for GFI + * + * Author : Henry Nash + various others + * + */ + +/* + static char SccsID[]="@(#)gfi.h 1.12 04/08/93 Copyright Insignia Solutions Ltd."; + */ + +/* + * ============================================================================ + * Structure/Data definitions + * ============================================================================ + */ + +#define MAX_COMMAND_LEN 9 /* max number of command bytes */ +#define MAX_RESULT_LEN 7 /* max number of result bytes */ + +typedef unsigned char FDC_CMD_BLOCK; +typedef unsigned char FDC_RESULT_BLOCK; + + +/* START: FDC COMMAND BLOCK DEFINITIONS >>>>>>>>>>>>>>>>>>>>>>>>>>> */ + +/* + * A simple access to the command type and drive + */ + +/* the command itself */ +#define get_type_cmd(ptr) (ptr[0] & 0x1f) +#define put_type_cmd(ptr,val) ptr[0] = (ptr[0] & ~0x1f) | ((val << 0) & 0x1f) +/* ...and the drive no */ +#define get_type_drive(ptr) (ptr[1] & 0x3) +#define put_type_drive(ptr,val) ptr[1] = (ptr[1] & ~0x3) | ((val << 0) & 0x3) + +/* + * Class 0 - read data, read deleted data, all scans + */ + +/* multi-track */ +#define get_c0_MT(ptr) ((ptr[0] & 0x80) >> 7) +#define put_c0_MT(ptr,val) ptr[0] = (ptr[0] & ~0x80) | ((val << 7) & 0x80) +/* always 1 - FM not used */ +#define get_c0_MFM(ptr) ((ptr[0] & 0x40) >> 6) +#define put_c0_MFM(ptr,val) ptr[0] = (ptr[0] & ~0x40) | ((val << 6) & 0x40) +/* skip data */ +#define get_c0_skip(ptr) ((ptr[0] & 0x20) >> 5) +#define put_c0_skip(ptr,val) ptr[0] = (ptr[0] & ~0x20) | ((val << 5) & 0x20) +/* the command itself */ +#define get_c0_cmd(ptr) (ptr[0] & 0x1f) +#define put_c0_cmd(ptr,val) ptr[0] = (ptr[0] & ~0x1f) | ((val << 0) & 0x1f) +/* padding */ +#define get_c0_pad(ptr) ((ptr[1] & 0xf8) >> 3) +#define put_c0_pad(ptr,val) ptr[1] = (ptr[1] & ~0xf8) | ((val << 3) & 0xf8) +/* which head */ +#define get_c0_head(ptr) ((ptr[1] & 0x4) >> 2) +#define put_c0_head(ptr,val) ptr[1] = (ptr[1] & ~0x4) | ((val << 2) & 0x4) +/* drive unit */ +#define get_c0_drive(ptr) (ptr[1] & 0x3) +#define put_c0_drive(ptr,val) ptr[1] = (ptr[1] & ~0x3) | ((val << 0) & 0x3) +/* cylinder number */ +#define get_c0_cyl(ptr) ptr[2] +#define put_c0_cyl(ptr,val) ptr[2] = val +/* head number - again ! */ +#define get_c0_hd(ptr) ptr[3] +#define put_c0_hd(ptr,val) ptr[3] = val +/* sector number */ +#define get_c0_sector(ptr) ptr[4] +#define put_c0_sector(ptr,val) ptr[4] = val +/* encoded bytes per sector */ +#define get_c0_N(ptr) ptr[5] +#define put_c0_N(ptr,val) ptr[5] = val +/* last sector on track */ +#define get_c0_EOT(ptr) ptr[6] +#define put_c0_EOT(ptr,val) ptr[6] = val +/* gap length */ +#define get_c0_GPL(ptr) ptr[7] +#define put_c0_GPL(ptr,val) ptr[7] = val +/* data length */ +#define get_c0_DTL(ptr) ptr[8] +#define put_c0_DTL(ptr,val) ptr[8] = val + +/* + * Class 1 - write data, write deleted data + */ + +/* multi-track */ +#define get_c1_MT(ptr) ((ptr[0] & 0x80) >> 7) +#define put_c1_MT(ptr,val) ptr[0] = (ptr[0] & ~0x80) | ((val << 7) & 0x80) +/* always 1 - FM not used */ +#define get_c1_MFM(ptr) ((ptr[0] & 0x40) >> 6) +#define put_c1_MFM(ptr,val) ptr[0] = (ptr[0] & ~0x40) | ((val << 6) & 0x40) +/* padding */ +#define get_c1_pad(ptr) ((ptr[0] & 0x20) >> 5) +#define put_c1_pad(ptr,val) ptr[0] = (ptr[0] & ~0x20) | ((val << 5) & 0x20) +/* the command itself */ +#define get_c1_cmd(ptr) (ptr[0] & 0x1f) +#define put_c1_cmd(ptr,val) ptr[0] = (ptr[0] & ~0x1f) | ((val << 0) & 0x1f) +/* padding */ +#define get_c1_pad1(ptr) ((ptr[1] & 0xf8) >> 3) +#define put_c1_pad1(ptr,val) ptr[1] = (ptr[1] & ~0xf8) | ((val << 3) & 0xf8) +/* which head */ +#define get_c1_head(ptr) ((ptr[1] & 0x4) >> 2) +#define put_c1_head(ptr,val) ptr[1] = (ptr[1] & ~0x4) | ((val << 2) & 0x4) +/* drive unit */ +#define get_c1_drive(ptr) (ptr[1] & 0x3) +#define put_c1_drive(ptr,val) ptr[1] = (ptr[1] & ~0x3) | ((val << 0) & 0x3) +/* cylinder number */ +#define get_c1_cyl(ptr) ptr[2] +#define put_c1_cyl(ptr,val) ptr[2] = val +/* head number - again ! */ +#define get_c1_hd(ptr) ptr[3] +#define put_c1_hd(ptr,val) ptr[3] = val +/* sector number */ +#define get_c1_sector(ptr) ptr[4] +#define put_c1_sector(ptr,val) ptr[4] = val +/* encoded bytes per sector */ +#define get_c1_N(ptr) ptr[5] +#define put_c1_N(ptr,val) ptr[5] = val +/* last sector on track */ +#define get_c1_EOT(ptr) ptr[6] +#define put_c1_EOT(ptr,val) ptr[6] = val +/* gap length */ +#define get_c1_GPL(ptr) ptr[7] +#define put_c1_GPL(ptr,val) ptr[7] = val +/* data length */ +#define get_c1_DTL(ptr) ptr[8] +#define put_c1_DTL(ptr,val) ptr[8] = val + +/* + * Class 2 - read a track + */ + +/* always 1 - FM not used */ +#define get_c2_MFM(ptr) ((ptr[0] & 0x40) >> 6) +#define put_c2_MFM(ptr,val) ptr[0] = (ptr[0] & ~0x40) | ((val << 6) & 0x40) +/* skip data */ +#define get_c2_skip(ptr) ((ptr[0] & 0x20) >> 5) +#define put_c2_skip(ptr,val) ptr[0] = (ptr[0] & ~0x20) | ((val << 5) & 0x20) +/* the command itself */ +#define get_c2_cmd(ptr) (ptr[0] & 0x1f) +#define put_c2_cmd(ptr,val) ptr[0] = (ptr[0] & ~0x1f) | ((val << 0) & 0x1f) +/* padding */ +/* padding */ +#define get_c2_pad1(ptr) ((ptr[1] & 0xf8) >> 3) +#define put_c2_pad1(ptr,val) ptr[1] = (ptr[1] & ~0xf8) | ((val << 3) & 0xf8) +/* which head */ +#define get_c2_head(ptr) ((ptr[1] & 0x4) >> 2) +#define put_c2_head(ptr,val) ptr[1] = (ptr[1] & ~0x4) | ((val << 2) & 0x4) +/* drive unit */ +#define get_c2_drive(ptr) (ptr[1] & 0x3) +#define put_c2_drive(ptr,val) ptr[1] = (ptr[1] & ~0x3) | ((val << 0) & 0x3) +/* cylinder number */ +#define get_c2_cyl(ptr) ptr[2] +#define put_c2_cyl(ptr,val) ptr[2] = val +/* head number - again ! */ +#define get_c2_hd(ptr) ptr[3] +#define put_c2_hd(ptr,val) ptr[3] = val +/* sector number */ +#define get_c2_sector(ptr) ptr[4] +#define put_c2_sector(ptr,val) ptr[4] = val +/* encoded bytes per sector */ +#define get_c2_N(ptr) ptr[5] +#define put_c2_N(ptr,val) ptr[5] = val +/* last sector on track */ +#define get_c2_EOT(ptr) ptr[6] +#define put_c2_EOT(ptr,val) ptr[6] = val +/* gap length */ +#define get_c2_GPL(ptr) ptr[7] +#define put_c2_GPL(ptr,val) ptr[7] = val +/* data length */ +#define get_c2_DTL(ptr) ptr[8] +#define put_c2_DTL(ptr,val) ptr[8] = val + +/* + * Class 3 - format a track + */ + +/* padding */ +#define get_c3_pad(ptr) ((ptr[0] & 0x80) >> 7) +#define put_c3_pad(ptr,val) ptr[0] = (ptr[0] & ~0x80) | ((val << 7) & 0x80) +/* always 1 - FM not used */ +#define get_c3_MFM(ptr) ((ptr[0] & 0x40) >> 6) +#define put_c3_MFM(ptr,val) ptr[0] = (ptr[0] & ~0x40) | ((val << 6) & 0x40) +/* padding */ +#define get_c3_pad1(ptr) ((ptr[0] & 0x20) >> 5) +#define put_c3_pad1(ptr,val) ptr[0] = (ptr[0] & ~0x20) | ((val << 5) & 0x20) +/* the command itself */ +#define get_c3_cmd(ptr) (ptr[0] & 0x1f) +#define put_c3_cmd(ptr,val) ptr[0] = (ptr[0] & ~0x1f) | ((val << 0) & 0x1f) +/* padding */ +#define get_c3_pad2(ptr) ((ptr[1] & 0xf8) >> 3) +#define put_c3_pad2(ptr,val) ptr[1] = (ptr[1] & ~0xf8) | ((val << 3) & 0xf8) +/* which head */ +#define get_c3_head(ptr) ((ptr[1] & 0x4) >> 2) +#define put_c3_head(ptr,val) ptr[1] = (ptr[1] & ~0x4) | ((val << 2) & 0x4) +/* drive unit */ +#define get_c3_drive(ptr) (ptr[1] & 0x3) +#define put_c3_drive(ptr,val) ptr[1] = (ptr[1] & ~0x3) | ((val << 0) & 0x3) +/* encoded bytes per sector */ +#define get_c3_N(ptr) ptr[2] +#define put_c3_N(ptr,val) ptr[2] = val +/* sectors per cylinder */ +#define get_c3_SC(ptr) ptr[3] +#define put_c3_SC(ptr,val) ptr[3] = val +/* gap length */ +#define get_c3_GPL(ptr) ptr[4] +#define put_c3_GPL(ptr,val) ptr[4] = val +/* filler byte */ +#define get_c3_filler(ptr) ptr[5] +#define put_c3_filler(ptr,val) ptr[5] = val + +/* + * Class 4 - read ID + */ + +/* padding */ +#define get_c4_pad(ptr) ((ptr[0] & 0x80) >> 7) +#define put_c4_pad(ptr,val) ptr[0] = (ptr[0] & ~0x80) | ((val << 7) & 0x80) +/* always 1 - FM not used */ +#define get_c4_MFM(ptr) ((ptr[0] & 0x40) >> 6) +#define put_c4_MFM(ptr,val) ptr[0] = (ptr[0] & ~0x40) | ((val << 6) & 0x40) +/* padding */ +#define get_c4_pad1(ptr) ((ptr[0] & 0x20) >> 5) +#define put_c4_pad1(ptr,val) ptr[0] = (ptr[0] & ~0x20) | ((val << 5) & 0x20) +/* the command itself */ +#define get_c4_cmd(ptr) (ptr[0] & 0x1f) +#define put_c4_cmd(ptr,val) ptr[0] = (ptr[0] & ~0x1f) | ((val << 0) & 0x1f) +/* padding */ +#define get_c4_pad2(ptr) ((ptr[1] & 0xf8) >> 3) +#define put_c4_pad2(ptr,val) ptr[1] = (ptr[1] & ~0xf8) | ((val << 3) & 0xf8) +/* which head */ +#define get_c4_head(ptr) ((ptr[1] & 0x4) >> 2) +#define put_c4_head(ptr,val) ptr[1] = (ptr[1] & ~0x4) | ((val << 2) & 0x4) +/* drive unit */ +#define get_c4_drive(ptr) (ptr[1] & 0x3) +#define put_c4_drive(ptr,val) ptr[1] = (ptr[1] & ~0x3) | ((val << 0) & 0x3) + +/* + * Class 5 - recalibrate + */ + +/* padding */ +#define get_c5_pad(ptr) ((ptr[0] & 0xe0) >> 5) +#define put_c5_pad(ptr,val) ptr[0] = (ptr[0] & ~0xe0) | ((val << 5) & 0xe0) +/* the command itself */ +#define get_c5_cmd(ptr) (ptr[0] & 0x1f) +#define put_c5_cmd(ptr,val) ptr[0] = (ptr[0] & ~0x1f) | ((val << 0) & 0x1f) +/* padding */ +#define get_c5_pad1(ptr) ((ptr[1] & 0xfc) >> 2) +#define put_c5_pad1(ptr,val) ptr[1] = (ptr[1] & ~0xfc) | ((val << 2) & 0xfc) +/* drive unit */ +#define get_c5_drive(ptr) (ptr[1] & 0x3) +#define put_c5_drive(ptr,val) ptr[1] = (ptr[1] & ~0x3) | ((val << 0) & 0x3) + +/* + * Class 6 - specify + */ + +/* the command itself */ +#define get_c6_cmd(ptr) (ptr[0] & 0x1f) +#define put_c6_cmd(ptr,val) ptr[0] = (ptr[0] & ~0x1f) | ((val << 0) & 0x1f) +/* step rate time */ +#define get_c6_SRT(ptr) ((ptr[1] & 0xf0) >> 4) +#define put_c6_SRT(ptr,val) ptr[1] = (ptr[1] & ~0xf0) | ((val << 4) & 0xf0) +/* head unload time */ +#define get_c6_HUT(ptr) (ptr[1] & 0xf) +#define put_c6_HUT(ptr,val) ptr[1] = (ptr[1] & ~0xf) | ((val << 0) & 0xf) +/* head load time */ +#define get_c6_HLT(ptr) ((ptr[2] & 0xfe) >> 1) +#define put_c6_HLT(ptr,val) ptr[2] = (ptr[2] & ~0xfe) | ((val << 1) & 0xfe) +/* non-dma mode - not supp. */ +#define get_c6_ND(ptr) (ptr[2] & 0x1) +#define put_c6_ND(ptr,val) ptr[2] = (ptr[2] & ~0x1) | ((val << 0) & 0x1) + +/* + * Class 7 - sense drive status + */ + +/* the command itself */ +#define get_c7_cmd(ptr) (ptr[0] & 0x1f) +#define put_c7_cmd(ptr,val) ptr[0] = (ptr[0] & ~0x1f) | ((val << 0) & 0x1f) +/* which head */ +#define get_c7_head(ptr) ((ptr[1] & 0x4) >> 2) +#define put_c7_head(ptr,val) ptr[1] = (ptr[1] & ~0x4) | ((val << 2) & 0x4) +/* drive unit */ +#define get_c7_drive(ptr) (ptr[1] & 0x3) +#define put_c7_drive(ptr,val) ptr[1] = (ptr[1] & ~0x3) | ((val << 0) & 0x3) + +/* + * Class 8 - seek + */ + +/* padding */ +#define get_c8_pad(ptr) ((ptr[0] & 0xe0) >> 5) +#define put_c8_pad(ptr,val) ptr[0] = (ptr[0] & ~0xe0) | ((val << 5) & 0xe0) +/* the command itself */ +#define get_c8_cmd(ptr) (ptr[0] & 0x1f) +#define put_c8_cmd(ptr,val) ptr[0] = (ptr[0] & ~0x1f) | ((val << 0) & 0x1f) +/* padding */ +#define get_c8_pad1(ptr) ((ptr[1] & 0xf8) >> 3) +#define put_c8_pad1(ptr,val) ptr[1] = (ptr[1] & ~0xf8) | ((val << 3) & 0xf8) +/* which head */ +#define get_c8_head(ptr) ((ptr[1] & 0x4) >> 2) +#define put_c8_head(ptr,val) ptr[1] = (ptr[1] & ~0x4) | ((val << 2) & 0x4) +/* drive unit */ +#define get_c8_drive(ptr) (ptr[1] & 0x3) +#define put_c8_drive(ptr,val) ptr[1] = (ptr[1] & ~0x3) | ((val << 0) & 0x3) +/* new cylinder no for seek */ +#define get_c8_new_cyl(ptr) ptr[2] +#define put_c8_new_cyl(ptr,val) ptr[2] = val + +/* END: FDC COMMAND BLOCK DEFINITIONS <<<<<<<<<<<<<<<<<<<<<<<<<<< */ + +/* START: FDC RESULT BLOCK DEFINITIONS >>>>>>>>>>>>>>>>>>>>>>>>>>>> */ + +/* + * Class 0 - read/write data, read/write deleted data, + * all scans, read/format a track + */ + +/* status register 0 */ +#define get_r0_ST0(ptr) ptr[0] +#define put_r0_ST0(ptr,val) ptr[0] = val +/* status register 1 */ +#define get_r0_ST1(ptr) ptr[1] +#define put_r0_ST1(ptr,val) ptr[1] = val +/* status register 2 */ +#define get_r0_ST2(ptr) ptr[2] +#define put_r0_ST2(ptr,val) ptr[2] = val +/* cylinder number */ +#define get_r0_cyl(ptr) ptr[3] +#define put_r0_cyl(ptr,val) ptr[3] = val +/* head number */ +#define get_r0_head(ptr) ptr[4] +#define put_r0_head(ptr,val) ptr[4] = val +/* sector number */ +#define get_r0_sector(ptr) ptr[5] +#define put_r0_sector(ptr,val) ptr[5] = val +/* encoded bytes per sector if N == 0 */ +#define get_r0_N(ptr) ptr[6] +#define put_r0_N(ptr,val) ptr[6] = val + +/* + * Class 1 - a split up way of looking at Status registers + * ST0 to ST2. + */ + +/* Termination code */ +#define get_r1_ST0_int_code(ptr) ((ptr[0] & 0xc0) >> 6) +#define put_r1_ST0_int_code(ptr,val) ptr[0] = (ptr[0] & ~0xc0) | ((val << 6) & 0xc0) +/* End of seek cmd */ +#define get_r1_ST0_seek_end(ptr) ((ptr[0] & 0x20) >> 5) +#define put_r1_ST0_seek_end(ptr,val) ptr[0] = (ptr[0] & ~0x20) | ((val << 5) & 0x20) +/* Equipment fault */ +#define get_r1_ST0_equipment(ptr) ((ptr[0] & 0x10) >> 4) +#define put_r1_ST0_equipment(ptr,val) ptr[0] = (ptr[0] & ~0x10) | ((val << 4) & 0x10) +/* Device not ready */ +#define get_r1_ST0_not_ready(ptr) ((ptr[0] & 0x8) >> 3) +#define put_r1_ST0_not_ready(ptr,val) ptr[0] = (ptr[0] & ~0x8) | ((val << 3) & 0x8) +/* State of head */ +#define get_r1_ST0_head_address(ptr) ((ptr[0] & 0x4) >> 2) +#define put_r1_ST0_head_address(ptr,val) ptr[0] = (ptr[0] & ~0x4) | ((val << 2) & 0x4) +/* Which drive */ +#define get_r1_ST0_unit(ptr) (ptr[0] & 0x3) +#define put_r1_ST0_unit(ptr,val) ptr[0] = (ptr[0] & ~0x3) | ((val << 0) & 0x3) +/* Access off end of cylinder */ +#define get_r1_ST1_end_of_cylinder(ptr) ((ptr[1] & 0x80) >> 7) +#define put_r1_ST1_end_of_cylinder(ptr,val) ptr[1] = (ptr[1] & ~0x80) | ((val << 7) & 0x80) +/* CRC error in data field/ID */ +#define get_r1_ST1_data_error(ptr) ((ptr[1] & 0x20) >> 5) +#define put_r1_ST1_data_error(ptr,val) ptr[1] = (ptr[1] & ~0x20) | ((val << 5) & 0x20) +/* timeout of device */ +#define get_r1_ST1_over_run(ptr) ((ptr[1] & 0x10) >> 4) +#define put_r1_ST1_over_run(ptr,val) ptr[1] = (ptr[1] & ~0x10) | ((val << 4) & 0x10) +/* sector not found */ +#define get_r1_ST1_no_data(ptr) ((ptr[1] & 0x4) >> 2) +#define put_r1_ST1_no_data(ptr,val) ptr[1] = (ptr[1] & ~0x4) | ((val << 2) & 0x4) +/* write protected */ +#define get_r1_ST1_write_protected(ptr) ((ptr[1] & 0x2) >> 1) +#define put_r1_ST1_write_protected(ptr,val) ptr[1] = (ptr[1] & ~0x2) | ((val << 1) & 0x2) +/* Cannot find adress mask/ID */ +#define get_r1_ST1_no_address_mark(ptr) (ptr[1] & 0x1) +#define put_r1_ST1_no_address_mark(ptr,val) ptr[1] = (ptr[1] & ~0x1) | ((val << 0) & 0x1) +/* Deleted data found in Read/Scan */ +#define get_r1_ST2_control_mark(ptr) ((ptr[2] & 0x40) >> 6) +#define put_r1_ST2_control_mark(ptr,val) ptr[2] = (ptr[2] & ~0x40) | ((val << 6) & 0x40) +/* CRC error in data field */ +#define get_r1_ST2_data_field_error(ptr) ((ptr[2] & 0x20) >> 5) +#define put_r1_ST2_data_field_error(ptr,val) ptr[2] = (ptr[2] & ~0x20) | ((val << 5) & 0x20) +/* cylinder miss-match */ +#define get_r1_ST2_wrong_cyclinder(ptr) ((ptr[2] & 0x10) >> 4) +#define put_r1_ST2_wrong_cyclinder(ptr,val) ptr[2] = (ptr[2] & ~0x10) | ((val << 4) & 0x10) +/* Match found in scan */ +#define get_r1_ST2_scan_equal_hit(ptr) ((ptr[2] & 0x8) >> 3) +#define put_r1_ST2_scan_equal_hit(ptr,val) ptr[2] = (ptr[2] & ~0x8) | ((val << 3) & 0x8) +/* Sector not found during scan command */ +#define get_r1_ST2_scan_not_satisfied(ptr) ((ptr[2] & 0x4) >> 2) +#define put_r1_ST2_scan_not_satisfied(ptr,val) ptr[2] = (ptr[2] & ~0x4) | ((val << 2) & 0x4) +/* Invalid cylinder found */ +#define get_r1_ST2_bad_cylinder(ptr) ((ptr[2] & 0x2) >> 1) +#define put_r1_ST2_bad_cylinder(ptr,val) ptr[2] = (ptr[2] & ~0x2) | ((val << 1) & 0x2) +/* Missing Address mark */ +#define get_r1_ST2_no_address_mark(ptr) (ptr[2] & 0x1) +#define put_r1_ST2_no_address_mark(ptr,val) ptr[2] = (ptr[2] & ~0x1) | ((val << 0) & 0x1) + +/* + * Class 2 - sense drive status + */ + +/* Device fault */ +#define get_r2_ST3_fault(ptr) ((ptr[0] & 0x80) >> 7) +#define put_r2_ST3_fault(ptr,val) ptr[0] = (ptr[0] & ~0x80) | ((val << 7) & 0x80) +/* Write protected diskette */ +#define get_r2_ST3_write_protected(ptr) ((ptr[0] & 0x40) >> 6) +#define put_r2_ST3_write_protected(ptr,val) ptr[0] = (ptr[0] & ~0x40) | ((val << 6) & 0x40) +/* Device is ready */ +#define get_r2_ST3_ready(ptr) ((ptr[0] & 0x20) >> 5) +#define put_r2_ST3_ready(ptr,val) ptr[0] = (ptr[0] & ~0x20) | ((val << 5) & 0x20) +/* Track zero found */ +#define get_r2_ST3_track_0(ptr) ((ptr[0] & 0x10) >> 4) +#define put_r2_ST3_track_0(ptr,val) ptr[0] = (ptr[0] & ~0x10) | ((val << 4) & 0x10) +/* Double sided diskette */ +#define get_r2_ST3_two_sided(ptr) ((ptr[0] & 0x8) >> 3) +#define put_r2_ST3_two_sided(ptr,val) ptr[0] = (ptr[0] & ~0x8) | ((val << 3) & 0x8) +/* Side address signal */ +#define get_r2_ST3_head_address(ptr) ((ptr[0] & 0x4) >> 2) +#define put_r2_ST3_head_address(ptr,val) ptr[0] = (ptr[0] & ~0x4) | ((val << 2) & 0x4) +/* Which unit is selected */ +#define get_r2_ST3_unit(ptr) (ptr[0] & 0x3) +#define put_r2_ST3_unit(ptr,val) ptr[0] = (ptr[0] & ~0x3) | ((val << 0) & 0x3) + +/* + * Class 3 - sense interrupt status + */ + +/* status register 0 */ +#define get_r3_ST0(ptr) ptr[0] +#define put_r3_ST0(ptr,val) ptr[0] = val +/* present cylinder number */ +#define get_r3_PCN(ptr) ptr[1] +#define put_r3_PCN(ptr,val) ptr[1] = val + +/* + * Class 4 - invalid codes + */ + +/* status register 0 */ +#define get_r4_ST0(ptr) ptr[0] +#define put_r4_ST0(ptr,val) ptr[0] = val + +/* END: FDC RESULT BLOCK DEFINITIONS <<<<<<<<<<<<<<<<<<<<<<<<<<<< */ + + +/* + * An entry data structure that holds information describing the number of bytes + * in the fdc command/result phases. The index is the fdc command code, see + * the INTEL Application note on the 8272A for a full description. + * + * The "result_byte" is the number of bytes in the standard FDC result phase + * while "gfi_result_byte" is the number of bytes in the pseudo result phase + * used by GFI and its server modules (ie some commands that do not normally + * have a result phase, use an implicit Sense Interrupt Status result phase). + */ + +typedef struct { + half_word cmd_bytes; /* number of command bytes */ + half_word result_bytes; /* number of result bytes */ + half_word gfi_result_bytes; /* number of GFI result bytes */ + half_word cmd_class; /* class of the command */ + half_word result_class; /* class of the result */ + boolean dma_required; /* dma required ? */ + boolean int_required; /* interrupts required ? */ + } FDC_DATA_ENTRY; + + +/* + * The following list the error codes that the GFI commands (see gfi.f) can + * return. 0 is considered to be success. + */ + +#define GFI_PROTOCOL_ERROR 1 +#define GFI_FDC_TIMEOUT 2 +#define GFI_FDC_LOGICAL_ERROR 3 + +/* + * GFI Drive types + */ + +#define GFI_DRIVE_TYPE_NULL 0 /* unidentified */ +#define GFI_DRIVE_TYPE_360 1 /* 360K 5.25" */ +#define GFI_DRIVE_TYPE_12 2 /* 1.2M 5.25" */ +#define GFI_DRIVE_TYPE_720 3 /* 720K 3.5" */ +#define GFI_DRIVE_TYPE_144 4 /* 1.44M 3.5" */ +#define GFI_DRIVE_TYPE_288 5 /* 2.88M 3.5" */ + +#ifdef NTVDM +#define GFI_DRIVE_TYPE_MAX 6 +#endif + + +/*************************************************************************** +** +** Definitions and prototypes for the gfi_function_table, +** the functions therein, and the orthogonal floppy interface functions. +** Using the typedef'd prototypes should make it much easier to avoid +** definition clashes. +** This is now the only base floppy header file, and if you use the +** generic unix_flop.c module, the only floppy header anywhere. The generic +** code is meant to help a new unix port get quick floppy support; it is +** not meant to replace fancy host floppy code. +** The improvements that I have made to the floppy system in general are +** also supposed to make life easier. +** +** GM. +**************************************************************************** +** +** +** +** The GFI has a structure containing pointers to functions that provide +** the diskette support for all possible drives (0-1) and drive types. +** Each floppy emmulator module has a function for loading this table +** with the module's own local functions which can then be used by the +** gfi system to emmulate the sort of device the module was designed for. +** +** This table (of two structures - one for each possible drive) +** is of course GLOBAL. +** +** The structure has the following fields: +** +** The GFI command function: GFI_FUNC_ENTRY.command_fn, +** The GFI drive on function: GFI_FUNC_ENTRY.drive_on_fn, +** The GFI drive off function: GFI_FUNC_ENTRY.drive_off_fn, +** The GFI reset function: GFI_FUNC_ENTRY.reset_fn, +** The GFI set high density function: GFI_FUNC_ENTRY.high_fn, +** The GFI drive type function: GFI_FUNC_ENTRY.drive_type_fn, +** The GFI disk changed function: GFI_FUNC_ENTRY.change_fn +** +** Structure definition: +** ----------------------- +*/ +typedef struct +{ + SHORT (*command_fn) IPT2( FDC_CMD_BLOCK *, ip, FDC_RESULT_BLOCK *, res ); + SHORT (*drive_on_fn) IPT1( UTINY, drive ); + SHORT (*drive_off_fn) IPT1( UTINY, drive ); + SHORT (*reset_fn) IPT2( FDC_RESULT_BLOCK *, res, UTINY, drive ); + SHORT (*high_fn) IPT2( UTINY, drive, half_word, n); + SHORT (*drive_type_fn) IPT1( UTINY, drive ); + SHORT (*change_fn) IPT1( UTINY, drive ); + +} GFI_FUNCTION_ENTRY; + +/* +** ============================================================================ +** External declarations and macros +** ============================================================================ +** +** +** +** The data structure describing the fdc command/result phases, and the +** function pointer table set up by calls to the individual init functions +** in each of the GFI server modules. +** +** +** +** These tables are in gfi.c +*/ + IMPORT GFI_FUNCTION_ENTRY gfi_function_table[]; + IMPORT FDC_DATA_ENTRY gfi_fdc_description[]; +/* +** The following functions form the interface between the GFI system +** and the floppy module (whichever). They are global, but the only access +** to the other functions gfi needs is via the gfi_function_table. +*/ + +IMPORT SHORT host_gfi_rdiskette_valid + IPT3(UTINY,hostID,ConfigValues *,vals,CHAR *,err); + +IMPORT SHORT host_gfi_rdiskette_active + IPT3(UTINY, hostID, BOOL, active, CHAR, *err); + +IMPORT SHORT gfi_empty_active + IPT3(UTINY, hostID, BOOL, active, CHAR, *err); + +IMPORT VOID host_gfi_rdiskette_change + IPT2(UTINY, hostID, BOOL, apply); + +#ifndef host_rflop_drive_type +/* new function to say what kind of drive we have +*/ +IMPORT SHORT host_rflop_drive_type IPT2 (INT, fd, CHAR *, name); +#endif /* host_rflop_drive_type */ + +/* The gfi global functions. These need to be global because they are the +** interface to the private host dependant floppy functions. Each one does +** little more than call the real function via the table. +*/ +/* The gfi_reset is special; not the same as the other floppy inits because +** it is called from main() to startup the gfi system by making both drives +** 'empty'. This means that it has no drive parameter. +*/ + +IMPORT SHORT gfi_drive_on IPT1( UTINY, drive ); +IMPORT SHORT gfi_drive_off IPT1( UTINY, drive ); +IMPORT SHORT gfi_low IPT1( UTINY, drive ); +IMPORT SHORT gfi_drive_type IPT1( UTINY, drive ); +IMPORT SHORT gfi_change IPT1( UTINY, drive ); +IMPORT VOID gfi_init IPT0(); +IMPORT SHORT gfi_reset IPT2( FDC_RESULT_BLOCK *, res, UTINY, drive ); +IMPORT SHORT gfi_high IPT2( UTINY, drive, half_word, n); +IMPORT SHORT gfi_fdc_command IPT2( FDC_CMD_BLOCK *, ip, FDC_RESULT_BLOCK *, res ); diff --git a/private/mvdm/softpc.new/base/inc/gfiempty.h b/private/mvdm/softpc.new/base/inc/gfiempty.h new file mode 100644 index 000000000..329fe1149 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/gfiempty.h @@ -0,0 +1,43 @@ + +/* + * VPC-XT Revision 1.0 + * + * Title : Generic Floppy Interface Empty definitions + * + * Description : "Empty" functions declarations for GFI + * + * Author : Henry Nash + * + * Notes : None + */ + +/* SccsID[]="@(#)gfiempty.h 1.3 08/10/92 Copyright Insignia Solutions Ltd."; */ + +/* + * ============================================================================ + * External declarations and macros + * ============================================================================ + */ + +#ifdef ANSI +extern void gfi_empty_init(int); +extern int gfi_empty_command(FDC_CMD_BLOCK *, FDC_RESULT_BLOCK *); +extern int gfi_empty_drive_on(int); +extern int gfi_empty_drive_off(int); +extern int gfi_empty_reset(FDC_RESULT_BLOCK *); +extern int gfi_empty_high(int, half_word); +extern int gfi_empty_low(int); +extern int gfi_empty_drive_type(int); +extern int gfi_empty_change(int); + +#else +extern void gfi_empty_init(); +extern int gfi_empty_command(); +extern int gfi_empty_drive_on(); +extern int gfi_empty_drive_off(); +extern int gfi_empty_reset(); +extern int gfi_empty_high(); +extern int gfi_empty_low(); +extern int gfi_empty_drive_type(); +extern int gfi_empty_change(); +#endif /* ANSI */ diff --git a/private/mvdm/softpc.new/base/inc/gfirflop.h b/private/mvdm/softpc.new/base/inc/gfirflop.h new file mode 100644 index 000000000..e283c3fcb --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/gfirflop.h @@ -0,0 +1,30 @@ +/*[ + Name: gfirflop.h + Derived From: 2.0 gfirflop.h + Author: Henry Nash / David Rees + Created On: Unknown + Sccs ID: 05/10/93 @(#)gfirflop.h 1.6 + Purpose: Real Diskette functions declarations for GFI + Notes: On the Sun version, these globals are exported + from 'sun3_wang.c'. + + (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved. +]*/ + +/* + * ============================================================================ + * External declarations and macros + * ============================================================================ + */ + +extern SHORT host_gfi_rdiskette_active IPT3(UTINY, hostID, BOOL, active, + CHAR *, err); +extern SHORT host_gfi_rdiskette_attach IPT1(UTINY, drive); +extern void host_gfi_rdiskette_detach IPT1(UTINY, drive); +extern void host_gfi_rdiskette_change IPT2(UTINY, hostID, BOOL, apply); +extern void host_gfi_rdiskette_init IPT1(UTINY, drive); +extern void host_gfi_rdiskette_term IPT1(UTINY, drive); +extern SHORT host_gfi_rdiskette_valid IPT3(UTINY, hostID, ConfigValues *, val, + CHAR *, err); + + diff --git a/private/mvdm/softpc.new/base/inc/gfisflop.h b/private/mvdm/softpc.new/base/inc/gfisflop.h new file mode 100644 index 000000000..e9df0f5ff --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/gfisflop.h @@ -0,0 +1,153 @@ +/* + * VPC-XT Revision 1.0 + * + * Title : GFI Slave PC interface + * + * Description : Definitions required for Remote Procedure Call + * interface, etc. + * + * Author : Jerry Kramskoy + * + * Notes : + */ + +/* SccsID[]="@(#)gfisflop.h 1.3 08/10/92 Copyright Insignia Solutions Ltd."; */ + +/* + * ============================================================================ + * Structure/Data definitions + * ============================================================================ + */ + + +/***************************************************************************** + * RS232 port linked to IBM PC + ***************************************************************************** + */ + +#define SLAVE_PC_PORT "/dev/ttya" + +/***************************************************************************** + * Remote Procedure Call (RPC) defines + ***************************************************************************** + */ +#define MAXMSG 120 /* maximum size for message data */ +#define MAXFLAGS 2 /* number of bytes in IBM flags */ + +/* command ids */ +#define LOGIN 0 +#define LOGOUT 1 +#define WTDMA 2 +#define WTDOR 3 +#define WTFDC 4 +#define RDFDC 5 +#define TESTINT 6 +#define WTDISKB 7 +#define RDDISKB 8 +#define CHKMOTOR 9 +#define CLRMSTAT 10 +#define BLOCKBIOS 11 +#define CLRINTFLAG 12 +#define DATARATE 13 +#define DRIVETYPE 14 +#define DISKCHANGE 15 +#define PRINTSTRING 100 +#define IBMFLAGS 101 +#define SIBMFLAG 102 +#define BADCALL 200 + +/* status returns */ +#define FDCSUCCESS 0 +#define FDCTIMOUT 1 +#define FDCFAIL 2 +#define LINERR 3 + +/* IBM debugging flags */ +#define FLAG0 0 +#define FLAG1 1 + +/* FLAG0 */ +#define WATCHPKTS 0x80 +#define D_RAWMSG 0x40 +#define D_LOGIN 0x20 +#define D_LOGOUT 0x10 +#define D_WTDOR 0x08 +#define D_WTDMA 0x04 +#define D_WTFDC 0x02 +#define D_RDFDC 0x01 +/* FLAG1 */ +#define D_TESTINT 0x80 +#define D_WTDBF 0x40 +#define D_RDDBF 0x20 +#define WATCHINT 0x10 +#define WATCHPORT 0x08 +#define PAUSE 0x04 +#define ALL 0xff +/***************************************************************************** + * FDC interface command identifiers + ***************************************************************************** + */ +#define RDDATA 6 +#define RDDELDATA 0xc +#define WTDATA 5 +#define WTDELDATA 9 +#define RDTRACK 2 +#define RDID 0xa +#define FMTTRACK 0xd +#define SCANEQ 0x11 +#define SCANLE 0x19 +#define SCANHE 0x1d +#define RECAL 7 +#define SENSINT 8 +#define SPECIFY 3 +#define SENSDRIVE 4 +#define SEEK 0xf +#define MOTORON 0x12 +#define MOTOROFF 0x13 +#define SLEEP 0x14 +#define DRVRESET 0x15 + +/* vpc gfi error codes + */ +#define LOGICAL 1 +#define PROTOCOL 2 +/**************************************************************************** + * I/O ports + **************************************************************************** + * Floppy Disk Controller (8257A) + */ +#define FDC_MAIN_STATUS_REG (unsigned short) 0x3F4 +#define FDC_DATA_REG (unsigned short) 0x3F5 + +/* DMA controller (8237A) + */ +#define DMA_INTERNAL_FFLOP (unsigned short) 0xC +#define DMA_MODE_REG (unsigned short) 0xB +#define DMA_BASADDR_CHAN2 (unsigned short) 0x4 +#define DMA_COUNT_CHAN2 (unsigned short) 0x5 /* base addr + word cnt reg (wt) */ +#define DMA_MASK_REG (unsigned short) 0xA + +/* DMA page register (channel 2) + */ +#define PAGE_REG_CHAN2 (unsigned short) 0x81 + +/* Digital Output Register + */ +#define DOR_PORT (unsigned short) 0x3F2 +/* ************************************************************************* + * FDC defines + *************************************************************************** + */ +#define FDC_TO_CPU (short) 0x40 /* DIO on */ +#define CPU_TO_FDC (short) 0x00 /* DIO off */ +#define DIO_MASK (short) 0x40 /* mask to get DIO from main stat.reg */ +#define RQM_MASK (short) 0x80 /* mask to get RQM from main stat reg */ +#define CB_MASK (short) 0x10 /* mask to get CB from main stat reg */ +/*************************************************************************** + * DMA defines + *************************************************************************** + */ +#define MEM_TO_FDC (short) 1 +#define FDC_TO_MEM (short) 0 +#define RDMODE (unsigned char ) 0x4a +#define WTMODE (unsigned char ) 0x46 diff --git a/private/mvdm/softpc.new/base/inc/gfitest.h b/private/mvdm/softpc.new/base/inc/gfitest.h new file mode 100644 index 000000000..1e0d96535 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/gfitest.h @@ -0,0 +1,29 @@ + +/* + * VPC-XT Revision 1.0 + * + * Title : Generic Floppy Interface Test definitions + * + * Description : Test functions declarations for GFI + * + * Author : Henry Nash + * + * Notes : None + */ + +/* SccsID[]="@(#)gfitest.h 1.4 10/29/92 Copyright Insignia Solutions Ltd."; */ + +/* + * ============================================================================ + * External declarations and macros + * ============================================================================ + */ + +IMPORT int gfi_test_command IPT2(FDC_CMD_BLOCK *, command_block, + FDC_RESULT_BLOCK *, result_block); +IMPORT int gfi_test_drive_on IPT1(int, drive); +IMPORT int gfi_test_drive_off IPT1(int, drive); +IMPORT int gfi_test_high IPT1(int, drive); +IMPORT int gfi_test_drive_type IPT1(int, drive); +IMPORT int gfi_test_change IPT1(int, drive); +IMPORT int gfi_test_reset IPT1(FDC_RESULT_BLOCK *, result_block); diff --git a/private/mvdm/softpc.new/base/inc/gfx_upd.h b/private/mvdm/softpc.new/base/inc/gfx_upd.h new file mode 100644 index 000000000..d58d6a64c --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/gfx_upd.h @@ -0,0 +1,281 @@ +/*[ + Name: gfx_upd.h + Derived From: Unknown + Author: Unknown + Created On: Unknown + Sccs ID: @(#)gfx_upd.h 1.27 07/09/93 + Purpose: Unknown + + (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved. + +]*/ + +/* + * PC palette structure. + */ +typedef struct +{ + half_word red; /* max = 0xff */ + half_word green; /* max = 0xff */ + half_word blue; /* max = 0xff */ +} PC_palette; + + +typedef boolean (*T_mark_byte) IPT1(int, off_in); +typedef boolean (*T_mark_word) IPT1(int, addr); +typedef boolean (*T_mark_fill) IPT2(int, laddr, int, haddr); +typedef boolean (*T_mark_wfill) IPT3(int, laddr, int, haddr, int, col); +typedef boolean (*T_mark_string) IPT2(int, laddr, int, haddr); +typedef void (*T_calc_update) IPT0(); +typedef boolean (*T_scroll_up) IPT6(int, start, int, width, int, height, int, attr, int, nlines,int,dummy); +typedef boolean (*T_scroll_down) IPT6(int, start, int, width, int, height, int, attr, int, nlines,int,dummy); + +typedef struct +{ + T_mark_byte mark_byte; /* handle byte written to regenmemory */ + T_mark_word mark_word; + T_mark_fill mark_fill; + T_mark_wfill mark_wfill; + T_mark_string mark_string; + T_calc_update calc_update; + T_scroll_up scroll_up; + T_scroll_down scroll_down; +} UPDATE_ALG; + +/* BCN 864 */ +/* moved from gfx_update.c so other people can use it */ +typedef struct { + int line_no; + int start; + int end; + long video_copy_offset; +#ifdef VGG + int v7frig; /* for those annoying V7 (and undocumented VGA) modes */ + /* with chars_per_line not a multiple of 4 */ +#endif /* VGG */ +} DIRTY_PARTS; + +typedef enum { + EGA_HI_SP, + EGA_HI_SP_WR, + EGA_MED_SP, + EGA_MED_SP_WR, + EGA_LO_SP, + EGA_LO_SP_WR, + EGA_HI, + EGA_HI_WR, + EGA_MED, + EGA_MED_WR, + EGA_LO, + EGA_LO_WR, + EGA_HI_FUN, + EGA_MED_FUN, + EGA_LO_FUN, + EGA_TEXT_40, + EGA_TEXT_40_WR, + EGA_TEXT_40_SP, + EGA_TEXT_40_SP_WR, + CGA_TEXT_40, + CGA_TEXT_40_WR, + CGA_TEXT_40_SP, + CGA_TEXT_40_SP_WR, + TEXT_40_FUN, + EGA_TEXT_80, + EGA_TEXT_80_WR, + EGA_TEXT_80_SP, + EGA_TEXT_80_SP_WR, + CGA_TEXT_80, + CGA_TEXT_80_WR, + CGA_TEXT_80_SP, + CGA_TEXT_80_SP_WR, + TEXT_80_FUN, + CGA_HI, + CGA_HI_FUN, + CGA_MED, + CGA_MED_FUN, + DUMMY_FUN +} DISPLAY_MODE; + + +typedef struct +{ + void (*init_screen) IPT0(); + void (*init_adaptor) IPT2(int,arg1, int,arg2); + void (*change_mode) IPT0(); + void (*set_screen_scale) IPT1(int,arg1); + void (*set_palette) IPT2(PC_palette *,arg1, int,arg2); + void (*set_border) IPT1(int,arg1); + void (*clr_screen) IPT0(); + void (*flush_screen) IPT0(); + void (*mark_refresh) IPT0(); + void (*graphics_tick) IPT0(); + void (*start_update) IPT0(); + void (*end_update) IPT0(); + boolean (*scroll_up) IPT6(int, start, int, width, int, height, + int, attr, int, nlines,int,dummy); + boolean (*scroll_down) IPT6(int,arg1,int,arg2,int,arg3,int,arg4,int, + arg5,int,arg6); + void (*paint_cursor) IPT3(int,arg1, int,arg2, half_word,arg3); +#ifdef GISP_SVGA + void (*hide_cursor) IPT3(int,arg1, int,arg2, half_word,arg3); +#endif /* GISP_SVGA */ +#ifdef EGG + void (*set_paint) IPT2(DISPLAY_MODE,arg1, int,arg2); + void (*change_plane_mask) IPT1(int,arg1); + void (*update_fonts) IPT0(); + void (*select_fonts) IPT2(int,arg1, int,arg2); + void (*free_font) IPT1(int,arg1); +#endif + void (*mode_select_changed) IPT1(int,arg1); + void (*color_select_changed) IPT1(int,arg1); + void (*screen_address_changed) IPT2(int,arg1, int,arg2); + void (*cursor_size_changed) IPT2(int,arg1, int,arg2); + void (*scroll_complete) IPT0(); +} VIDEOFUNCS; + +extern VIDEOFUNCS *working_video_funcs; + +#define host_init_screen()\ + (working_video_funcs->init_screen)() +#define host_init_adaptor(ad,ht)\ + (working_video_funcs->init_adaptor)(ad,ht) +#define host_change_mode()\ + (working_video_funcs->change_mode)() +#define host_set_screen_scale(sz)\ + (working_video_funcs->set_screen_scale)(sz) +#define host_set_palette(pltt,sz)\ + (working_video_funcs->set_palette)(pltt,sz) +#define host_set_border_colour(col)\ + (working_video_funcs->set_border)(col) +#define host_clear_screen()\ + (working_video_funcs->clr_screen)() +#define host_flush_screen()\ + (working_video_funcs->flush_screen)() +#define host_mark_screen_refresh()\ + (working_video_funcs->mark_refresh)() +#define host_graphics_tick()\ + (working_video_funcs->graphics_tick)() +#define host_start_update()\ + (working_video_funcs->start_update)() +#define host_end_update()\ + (working_video_funcs->end_update)() +#define host_scroll_up(l,t,r,b,a,c)\ + (working_video_funcs->scroll_up)(l,t,r,b,a,c) +#define host_scroll_down(l,t,r,b,a,c)\ + (working_video_funcs->scroll_down)(l,t,r,b,a,c) +#define host_paint_cursor(x,y,attr)\ + (working_video_funcs->paint_cursor)(x,y,attr) +#ifdef GISP_SVGA +#define host_hide_cursor(x,y,attr)\ + (working_video_funcs->hide_cursor)(x,y,attr) +#endif /* GISP_SVGA */ +#ifdef EGG +#define host_set_paint_routine(mode,ht)\ + (working_video_funcs->set_paint)(mode,ht) +#define host_change_plane_mask(mode)\ + (working_video_funcs->change_plane_mask)(mode) +#define host_update_fonts()\ + (working_video_funcs->update_fonts)() +#define host_select_fonts(f1,f2)\ + (working_video_funcs->select_fonts)(f1,f2) +#define host_free_font(ind)\ + (working_video_funcs->free_font)(ind) +#endif /* EGG */ + +/* Overrideable in host defs if not desired */ +#ifndef host_mode_select_changed +#define host_mode_select_changed(m)\ + (working_video_funcs->mode_select_changed)(m) +#endif + +/* Overrideable in host defs if not desired */ +#ifndef host_color_select_changed +#define host_color_select_changed(c)\ + (working_video_funcs->color_select_changed)(c) +#endif + +/* Overrideable in host defs if not desired */ +#ifndef host_screen_address_changed +#define host_screen_address_changed(start,end)\ + (working_video_funcs->screen_address_changed)(start,end) +#endif + +/* Overrideable in host defs if not desired */ +#ifndef host_cursor_size_changed +#define host_cursor_size_changed(hi, lo)\ + (working_video_funcs->cursor_size_changed)(hi, lo) +#endif + +/* Overrideable in host defs if not desired */ +#ifndef host_scroll_complete +#define host_scroll_complete()\ + (working_video_funcs->scroll_complete)() +#endif + +/* + * Undefine these GWI defines if the host isn't using the GWI interface + */ + +#include "host_gwi.h" + +extern void (*paint_screen)(); /* ptr to host routine to paint screen */ +#ifdef V7VGA +extern void (*paint_v7ptr)(); /* ptr to host routine to paint V7 h/w pointer */ +extern void (*clear_v7ptr)(); /* ptr to host routine to clear V7 h/w pointer */ +#endif /* V7VGA */ + +extern UPDATE_ALG update_alg; +extern byte *video_copy; +extern MEM_HANDLERS vid_handlers; + +extern boolean text_scroll_up IPT6(int, start, int, width, int, height, + int, attr, int, nlines,int,dummy); +extern boolean text_scroll_down IPT6(int, start, int, width, int, height, + int, attr, int, nlines,int,dummy); +extern boolean cga_text_scroll_up IPT6(int, start, int, width, int, height, + int, attr, int, nlines,int,dummy); +extern boolean cga_text_scroll_down IPT6(int, start, int, width, + int, height, int, attr, int, nlines,int,dummy); +extern boolean cga_graph_scroll_up IPT6(int, start, int, width, int, height, + int, attr, int, nlines, int, colour); +extern boolean cga_graph_scroll_down IPT6(int, start, int, width, + int, height, int, attr, int, nlines, int, colour); + +extern void dummy_calc IPT0(); +extern void text_update IPT0(); + +extern void cga_med_graph_update IPT0(); +extern void cga_hi_graph_update IPT0(); + +extern void ega_text_update IPT0(); +extern void ega_wrap_text_update IPT0(); +extern void ega_split_text_update IPT0(); +extern void ega_wrap_split_text_update IPT0(); + +extern void ega_graph_update IPT0(); +extern void ega_wrap_graph_update IPT0(); +extern void ega_split_graph_update IPT0(); +extern void ega_wrap_split_graph_update IPT0(); + +extern void vga_graph_update IPT0(); +extern void vga_split_graph_update IPT0(); + +#if defined(HERC) +extern void herc_update_screen IPT0(); +#endif + +extern boolean dummy_scroll IPT6(int,dummy1,int,dummy2,int,dummy3, + int,dummy4,int,dummy5,int,dummy6); +extern void bios_has_moved_cursor IPT2(int,arg1, int,arg2); +extern void base_cursor_shape_changed IPT0(); +extern void host_cga_cursor_has_moved IPT2(int,arg1, int,arg2); +extern void screen_refresh_required IPT0(); + +extern void host_ega_cursor_has_moved IPT2(int,arg1, int,arg2); +extern void flag_mode_change_required IPT0(); +extern void reset_graphics_routines IPT0(); +extern void reset_paint_routines IPT0(); + +#ifdef NTVDM +IMPORT void stream_io_update(void); +#endif diff --git a/private/mvdm/softpc.new/base/inc/gisp_sas.h b/private/mvdm/softpc.new/base/inc/gisp_sas.h new file mode 100644 index 000000000..bd6862c4f --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/gisp_sas.h @@ -0,0 +1,59 @@ +/*[ + * + * File : gisp_sas.h + * + * Derived from : next_sas.h + * + * Purpose : gisp specific Roms offsets + * and Rom specific symbols etc. + * + * Author : Rog + * Date : 3 Feb 1993 + * + * SCCS id : @(#)gisp_sas.h 1.5 02/22/94 + * + * (c) Copyright Insignia Solutions Ltd., 1992 All rights reserved + * + * Modifications : + * +]*/ + +#ifdef GISP_SVGA +#ifndef _GISP_SAS_H_ +#define _GISP_SAS_H_ + +/* Offsets of our stuff into the ROMS */ + +/* from VGA.ASM */ + +#define INT10CODEFRAG_OFF 0x0400 /* Code frag to perform INT 10 */ +#define FULLSCREENFLAG_OFFSET 0x0410 /* Use host BIOS ? */ +#define GISP_INT_10_ADDR_OFFSET 0x830 /* Int 10 moved to int 42 offset */ +#define HOST_BIOS_ROUTINE 0x0821 /* JMP addr to patch */ +#define HOST_INT_42_BIOS_ROUTINE 0x0841 /* Other JMP addr to patch :-) */ + + +#ifdef IRET_HOOKS +/* + * The offset in bios1 of the BOP that returns us to the monitor. + */ + +#define BIOS_IRET_HOOK_OFFSET 0x1c00 +#endif /* IRET_HOOKS */ + + +/* Data for the ROM moving stuff */ + +/* The address of the INT 10 entry point into the Host macines ROMS */ + +struct +HostVideoBiosEntrytag +{ + word segment; + word offset; +} HostVideoBiosEntry , HostVideoBiosInt42Entry; + +extern GLOBAL IBOOL LimBufferInUse IPT0(); + +#endif /* _GISP_SAS_H_ */ +#endif /* GISP_SVGA */ diff --git a/private/mvdm/softpc.new/base/inc/gispsvga.h b/private/mvdm/softpc.new/base/inc/gispsvga.h new file mode 100644 index 000000000..8f3aba8db --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/gispsvga.h @@ -0,0 +1,29 @@ +/*[ + * File Name : gispsvga.h + * + * Derived From : Template + * + * Author : Mike + * + * Creation Date : Feb 94 + * + * SCCS Version : @(#)gispsvga.h 1.1 02/22/94 + *! + * Purpose + * This file contains prototypes for global functions and variables that + * get declared when GISP_SVGA is defined, and that don't use types + * defined in HostHwVgaH. Those prototypes that do are in hwvga.h. + * + * Well that's the theory. Unfortunately almost all the prototypes + * are actually stil in hwvga.h, but should move here eventually! + * + *! (c)Copyright Insignia Solutions Ltd., 1994. All rights reserved. +]*/ + +#ifdef GISP_SVGA + +extern void romMessageAddress IPT0( ); +extern void gispROMInit IPT0( ); + + +#endif /* GISP_SVGA */ diff --git a/private/mvdm/softpc.new/base/inc/gmi.h b/private/mvdm/softpc.new/base/inc/gmi.h new file mode 100644 index 000000000..97c69e351 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/gmi.h @@ -0,0 +1,84 @@ +/* +* +* Interface to gmi routines. +* +*/ + +/* static char SccsID[]="@(#)gmi.h 1.8 04/26/93 Copyright Insignia Solutions Ltd."; */ +typedef enum +{ + RAM, + VIDEO, + ROM, + IN_FRAGMENT, + NEXT_FRAGMENT +} mem_type; + +typedef struct +{ + VOID (*b_write)(); + VOID (*w_write)(); + VOID (*b_fill)(); + VOID (*w_fill)(); + VOID (*b_move)IPT4(UTINY *, laddr, UTINY *, haddr, UTINY *, src, + UTINY, src_type); + VOID (*w_move)(); +} MEM_HANDLERS; + +#ifndef UNIVERSAL /* These are in host_cpu.h during a UNIVERSAL build. */ + +IMPORT void gmi_b_write IPT1(host_addr, intel_addr); +IMPORT void gmi_w_write IPT1(host_addr, intel_addr); +IMPORT void gmi_b_move IPT4(host_addr, intel_dest_start, + host_addr, intel_dest_end, host_addr, intel_src, boolean, direction); +IMPORT void gmi_w_move IPT4(host_addr, intel_dest_start, + host_addr, intel_dest_end, host_addr, intel_src, boolean, direction); +IMPORT void gmi_b_fill IPT2(host_addr, start, host_addr, end); +IMPORT void gmi_w_fill IPT2(host_addr, start, host_addr, end); +IMPORT boolean gmi_w_check IPT3(host_addr, laddr, host_addr, haddr, + host_addr *, endaddr); +IMPORT void gmi_init IPT1(sys_addr, size); + +#ifdef CCPU +IMPORT boolean gmi_connect_mem IPT3(sys_addr, laddr, sys_addr, haddr, + mem_type, type); +IMPORT boolean gmi_disconnect_mem IPT3(sys_addr, laddr, + sys_addr, haddr, mem_type, type); +IMPORT void gmi_define_mem IPT2(mem_type, type, MEM_HANDLERS *, handlers); +#else /* CCPU */ +IMPORT boolean gmi_connect_mem IPT3(host_addr, laddr, host_addr, haddr, + mem_type, type); +IMPORT boolean gmi_disconnect_mem IPT3(host_addr, laddr, host_addr, haddr, + mem_type, type); +IMPORT void gmi_define_mem IPT2(mem_type, type, MEM_HANDLERS *, handlers); +#endif /* CCPU */ + +#endif /* UNIVERSAL */ + +/* + * defines for direction argument of gmi_x_move(). + * Has the same meaning as the INtel direction flag. + */ +#define FORWARDS 0 +#define BACKWARDS 1 + +#ifdef EGATEST +#define gmi_redefine_mem(type,handlers) \ +b_write_ptrs[(int)type] = handlers.b_write; \ +w_write_ptrs[(int)type] = handlers.w_write; \ +b_fill_ptrs[(int)type] = handlers.b_fill; \ +w_fill_ptrs[(int)type] = handlers.w_fill; \ +b_fwd_move_ptrs[(int)type] = handlers.b_move_fwd; \ +b_bwd_move_ptrs[(int)type] = handlers.b_move_bwd; \ +w_fwd_move_ptrs[(int)type] = handlers.w_move_fwd; \ +w_bwd_move_ptrs[(int)type] = handlers.w_move_bwd; +#else +#define gmi_redefine_mem(type,handlers) \ +b_write_ptrs[(int)type] = handlers.b_write; \ +w_write_ptrs[(int)type] = handlers.w_write; \ +b_fill_ptrs[(int)type] = handlers.b_fill; \ +w_fill_ptrs[(int)type] = handlers.w_fill; \ +b_move_ptrs[(int)type] = handlers.b_move; \ +w_move_ptrs[(int)type] = handlers.w_move; +#endif /* EGATEST */ + diff --git a/private/mvdm/softpc.new/base/inc/gore.h b/private/mvdm/softpc.new/base/inc/gore.h new file mode 100644 index 000000000..dd8afa431 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/gore.h @@ -0,0 +1,155 @@ +/*[ +====================================================================== + + SoftPC Revision 3.0 + + Title: + gore.h + + Description: + + This is the header file for the Graphics Object Recognition + ( GORE ) system for communicating update information from + the VGA emulation to the host graphics system. + + Author: + John Shanly + + Date: + 6 November 1990 + + SccsID "@(#)gore.h 1.2 08/10/92 Copyright Insignia Solutions Ltd." + +====================================================================== +]*/ + +#ifdef INTERLEAVED + +#define B_POS_UNIT_DIFF 4 +#define B_NEG_UNIT_DIFF -4 +#define W_POS_UNIT_DIFF 8 +#define W_NEG_UNIT_DIFF -8 +#define CURR_LINE_DIFF 320 + +#else + +#define B_POS_UNIT_DIFF 1 +#define B_NEG_UNIT_DIFF -1 +#define W_POS_UNIT_DIFF 2 +#define W_NEG_UNIT_DIFF -2 +#define CURR_LINE_DIFF 80 + +#endif /* INTERLEAVED */ + + +typedef struct +{ + VOID (*b_wrt)(); + VOID (*w_wrt)(); + VOID (*b_str)(); + VOID (*w_str)(); +} GU_HANDLER; + +typedef struct +{ + ULONG obj_type; + ULONG offset; + ULONG tlx; + ULONG tly; + ULONG width; + ULONG height; +} OBJ_DATA; + +typedef struct _OBJECT +{ + OBJ_DATA data; + struct _OBJECT *next; + struct _OBJECT *prev; +} OBJECT, *OBJ_PTR; + +typedef struct +{ + ULONG curr_addr; + ULONG obj_start; + ULONG start; + ULONG end; + ULONG curr_line_end; + ULONG prev_line_start; + ULONG rect_width; + ULONG rect_height; + OBJ_PTR obj_ptr; + OBJ_PTR obj_ptr2; + ULONG count; +} GORE_DATA_WRT; + +typedef struct +{ + ULONG start; + ULONG end; + ULONG width; + OBJ_PTR obj_ptr; +} GORE_DATA_STR; + +typedef struct +{ + ULONG curr_line_diff; + ULONG max_vis_addr; + ULONG shift_count; + GORE_DATA_WRT gd_b_wrt; + GORE_DATA_WRT gd_w_wrt; + GORE_DATA_STR gd_b_str; + GORE_DATA_STR gd_w_str; +} GORE_DATA; + +typedef UTINY OBJ_TYPE; + +#define OBJ_PTR_NULL ((OBJ_PTR) 0) + +#define INITIAL_MAX_LIST_SIZE 1000 /* Arbitrary */ + +#define RANDOM_BW 0 +#define RANDOM_WW 1 +#define LINE_RIGHT_BW 2 +#define LINE_RIGHT_WW 3 +#define LINE_RIGHT_BS 4 +#define LINE_RIGHT_WS 5 +#define LINE_LEFT_BW 6 +#define LINE_LEFT_WW 7 +#define LINE_LEFT_BS 8 +#define LINE_LEFT_WS 9 +#define LINE_DOWN_BW 10 +#define LINE_DOWN_WW 11 +#define LINE_UP_BW 12 +#define LINE_UP_WW 13 +#define RECT_RIGHT_DOWN_BW 14 +#define RECT_RIGHT_DOWN_WW 15 +#define RECT_RIGHT_DOWN_BS 16 +#define RECT_RIGHT_DOWN_WS 17 +#define RECT_LEFT_DOWN_BW 18 +#define RECT_LEFT_DOWN_WW 19 +#define RECT_RIGHT_UP_BS 20 +#define RECT_RIGHT_UP_WS 21 +#define RECT_LEFT_UP_BS 22 +#define RECT_LEFT_UP_WS 23 +#define LINE_DOWN_LEFT_BW 24 +#define LINE_DOWN_RIGHT_BW 25 +#define LINE_DOWN_LEFT_WW 26 +#define LINE_DOWN_RIGHT_WW 27 +#define RECT_DOWN_RIGHT_BW 28 +#define RECT_DOWN_RIGHT_WW 29 +#define ANNULLED 30 +#define MAX_OBJ_TYPES 31 + +#define NOT_PENDING 0 +#define BW 1 +#define WW 2 +#define BS 3 +#define WS 4 + +IMPORT GU_HANDLER gu_handler; +IMPORT GORE_DATA gd; +IMPORT VOID (*paint_screen)(); +IMPORT VOID process_object_list(); +IMPORT ULONG trace_gore; +IMPORT ULONG stat_gore; +IMPORT OBJ_PTR start_object(); diff --git a/private/mvdm/softpc.new/base/inc/gvi.h b/private/mvdm/softpc.new/base/inc/gvi.h new file mode 100644 index 000000000..e4ef91c48 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/gvi.h @@ -0,0 +1,311 @@ +/* + * SoftPC Revision 3.0 + * + * Title : Generic Video Interface Module definitions + * + * Description : Definitions for users of the Generic Video Interface Module + * + * Author : Henry Nash / David Rees + * + * Notes : This file should be included by all external modules that + * use the GVI module. + */ + +/* SccsID[]="@(#)gvi.h 1.16 06/28/93 Copyright Insignia Solutions Ltd."; */ + +/* + * ============================================================================ + * Constant definitions + * ============================================================================ + */ + +#define GAP_WIDTH 0xC0 /* Width of the gap in bytes */ +#define ODD_START 0xBA000L /* Start of the odd bank */ +#define ODD_END 0xBBF3FL /* End of the odd bank */ +#define EVEN_START 0xB8000L /* Start of the even bank */ +#define EVEN_END 0xB9F3FL /* End of the even bank */ +#define ODD_OFFSET (ODD_START-EVEN_START) /* offset of odd bank to even bank */ + +#define SCAN_LINE_LENGTH 80 /* Length of a scan line in bytes */ + +#define CGA_CURS_HEIGHT 2 /* CGA 'usual' underscore cursor */ +#define CGA_CURS_START 7 /* CGA 'usual' underscore cursor */ + +#define MDA_CURS_HEIGHT 2 /* Default MDA cursor height */ +#define MDA_CURS_START 7 /* Default MDA cursor starting scan line */ + +#define CGA_HEIGHT 200 /* In host scan lines */ +#define EGA_HEIGHT 350 +#define HERC_HEIGHT 350 +#define VGA_HEIGHT 400 + + +/* + * Legal modes for the adapter + */ + +#define TEXT 0 /* Alpha numeric mode 80 by 25, or 40 by 25 */ +#define GRAPHICS 1 /* All Points Addressable 640x200 or 320x200 */ + +#define HIGH 0 /* APA 640x200, 2 colors */ +#define MEDIUM 1 /* APA 320x200, 4 colors */ +#define LOW 2 /* APA 160x100, 16 colors (not supported) */ + +#define VGA_DAC_SIZE 0x100 +#ifdef EGG +#ifdef VGG +#define MAX_NUM_FONTS 8 /* VGA support 8 fonts */ +#else +#define MAX_NUM_FONTS 4 /* EGA support 4 fonts */ +#endif /* VGG */ +#endif /* EGG */ + + +#ifdef HERC + +/* Hercules Page 0 */ + +#define P0_EVEN_START1 0x0000 /* Start of the even bank */ +#define P0_EVEN_END1 0x1E95 /* End of the even bank */ +#define P0_ODD_START1 0x2000 /* Start of the odd bank */ +#define P0_ODD_END1 0x3E95 /* End of the odd bank */ +#define P0_EVEN_START2 0x4000 /* Start of the even bank */ +#define P0_EVEN_END2 0x5E95 /* End of the even bank */ +#define P0_ODD_START2 0x6000 /* Start of the odd bank */ +#define P0_ODD_END2 0x7E95 /* End of the odd bank */ + +/* Hercules Page 1 */ + +#define P1_EVEN_START1 0x8000 /* Start of the even bank */ +#define P1_EVEN_END1 0x9E95 /* End of the even bank */ +#define P1_ODD_START1 0xA000 /* Start of the odd bank */ +#define P1_ODD_END1 0xBE95 /* End of the odd bank */ +#define P1_EVEN_START2 0xC000 /* Start of the even bank */ +#define P1_EVEN_END2 0xDE95 /* End of the even bank */ +#define P1_ODD_START2 0xE000 /* Start of the odd bank */ +#define P1_ODD_END2 0xFE95 /* End of the odd bank */ + +#define HERC_CURS_HEIGHT 2 /* Default Hercules MDA cursor height */ +#define HERC_CURS_START 13 /* Default Hercules MDA cursor starting scan line */ + +#endif /* HERC */ + +/* + * ============================================================================ + * External declarations and macros + * ============================================================================ + */ + +extern void gvi_init IPT1(half_word, v_adapter); +extern void gvi_term IPT0(); +extern void recalc_screen_params IPT0(); + +#ifdef EGG +IMPORT VOID ega_term IPT0(); +IMPORT VOID ega_init IPT0(); +#endif + +#ifdef VGG +IMPORT VOID vga_term IPT0(); +IMPORT VOID vga_init IPT0(); +#endif + +/* + * The screen memory limits in host and PC address space + */ + +extern sys_addr gvi_pc_low_regen; +extern sys_addr gvi_pc_high_regen; + +/* + * Variable to determine which video adapter is currently selected + */ + +extern half_word video_adapter; + +/* + * screen height varies on EGA. It is set in two parts; the top bit is controlled by + * a separate register to the lower 8 bits. The _9_BITS type is used to help emulate + * this type of setting. + */ + +typedef union { + word as_word; + struct + { +#ifdef BIT_ORDER1 + unsigned unused : 7, + top_bit : 1, + low_byte : 8; +#else + unsigned low_byte : 8, + top_bit : 1, + unused : 7; +#endif + } as_bfld; +} _9_BITS; + +/* + * VGA has greater resolution to VGA - some regs have an extra bit thrown in + * in some register to boost them to 10 bits. Split this into three parts as + * a super set of the 9_bit type. + */ + +typedef union { + word as_word; + struct + { +#ifdef BIT_ORDER1 + unsigned unused : 6, + top_bit : 1, + med_bit : 1, + low_byte : 8; +#else + unsigned low_byte : 8, + med_bit : 1, + top_bit : 1, + unused : 6; +#endif + } as_bfld; +} _10_BITS; +/* + * Definition of variables which reflect the state of the current adapter + */ + +typedef struct { + int mode_change_required; /* Display mode changed not just in EGA */ + int bytes_per_line; /* In TEXT mode the no. of bytes per line */ + int chars_per_line; /* In TEXT mode the no. of chars per line */ + int char_width; /* Width of a character in host pixels */ + int char_height; /* Height of a character in PC pixels */ + int screen_start; /* Address in adaptor memory of current screen */ +#ifdef VGG + _10_BITS screen_height; /* Height in pc scanlines of screen */ +#else + _9_BITS screen_height; /* Height in pc scanlines of screen */ +#endif + half_word *screen_ptr; /* pointer to start of regen buffer */ + int screen_length; /* Number of bytes in one screenfull */ + int display_disabled; /* 0 if it's OK to do screen output. */ + /* it is used to implement the VIDEO_ENABLE */ + /* bit in the mode select register */ + int cursor_start; /* scanlines from top of char block */ + int cursor_height; /* in scanlines from cursor start */ + int cursor_start1; /* start scanline of poss 2nd block */ + int cursor_height1; /* height of 2nd block or 0 if none */ + int cur_x,cur_y; /* Current cursor position */ + boolean PC_cursor_visible; /* flag for cursor visible or not */ + boolean word_addressing; /* if TRUE, bytes_per_line=2*chars_per_line */ +#ifdef VGG + boolean chain4_mode; + boolean doubleword_mode; /* if TRUE, bytes_per_line=4*chars_per_line */ + /* else bytes_per_line=chars_per_line */ +#ifdef V7VGA + boolean seq_chain4_mode; + boolean seq_chain_mode; +#endif /* V7VGA */ +#endif + int pix_width; /* Width of a PC pixel in host pixels */ + int pix_char_width; /* Width of PC character pixel in host pixels (is this used?) */ + int pc_pix_height; /* Height of PC pixel in pixels */ + int host_pix_height; /* Height of PC pixel in host pixels */ + int offset_per_line; /* mirrors bytes_per_line for mda and cga, but can vary for ega */ + int screen_limit; /* number of bytes in video_copy */ +} DISPLAY_GLOBS; + +extern DISPLAY_GLOBS PCDisplay; + +#define set_mode_change_required(val) PCDisplay.mode_change_required = (val) +#define set_word_addressing(val) PCDisplay.word_addressing = (val) +#define set_offset_per_line(val) PCDisplay.offset_per_line = (val) +#define set_offset_per_line_recal(val) { set_offset_per_line(val); recalc_screen_params(); } +#define set_word_addressing_recal(val) { set_word_addressing(val); recalc_screen_params(); } +#define set_cur_x(val) PCDisplay.cur_x = (val) +#define set_cur_y(val) PCDisplay.cur_y = (val) +#define set_cursor_start(val) PCDisplay.cursor_start = (val) +#define inc_cursor_start() (PCDisplay.cursor_start)++ +#define set_cursor_height(val) PCDisplay.cursor_height = (val) +#define set_cursor_start1(val) PCDisplay.cursor_start1 = (val) +#define set_cursor_height1(val) PCDisplay.cursor_height1 = (val) +#define set_cursor_visible(val) PCDisplay.PC_cursor_visible = (val) +#define set_display_disabled(val) PCDisplay.display_disabled = (val) +#define set_bit_display_disabled(val) PCDisplay.display_disabled |= (val) +#define clear_bit_display_disabled(val) PCDisplay.display_disabled &= ~(val) +#define set_bytes_per_line(val) PCDisplay.bytes_per_line = (val) +#define set_chars_per_line(val) PCDisplay.chars_per_line = (val) +#define set_horiz_total(val) { set_chars_per_line(val); recalc_screen_params(); } +#define set_char_width(val) PCDisplay.char_width = (val) +#define set_char_height(val) PCDisplay.char_height = (val) +#define set_char_height_recal(val) { set_char_height(val); recalc_screen_params(); } +#define set_screen_length(val) PCDisplay.screen_length = (val) +#define set_screen_limit(val) PCDisplay.screen_limit = (val) +#define set_screen_start(val) PCDisplay.screen_start = (val) +#define set_screen_height(val) PCDisplay.screen_height.as_word = (val) +#define set_screen_height_recal(val) { set_screen_height(val); recalc_screen_params(); } +#define set_screen_height_lo(val) PCDisplay.screen_height.as_bfld.low_byte = ((val) & 0xff) +#define set_screen_height_lo_recal(val) { set_screen_height_lo(val); recalc_screen_params(); } +#define set_screen_height_med(val) PCDisplay.screen_height.as_bfld.med_bit = ((val) & 0xff) +#define set_screen_height_med_recal(val) { set_screen_height_med(val); recalc_screen_params(); } +#define set_screen_height_hi(val) PCDisplay.screen_height.as_bfld.top_bit = ((val) & 1) +#define set_screen_height_hi_recal(val) { set_screen_height_hi(val); recalc_screen_params(); } +#define set_screen_ptr(ptr) PCDisplay.screen_ptr = (ptr) +#define set_pix_width(val) PCDisplay.pix_width = (val) +#define set_pc_pix_height(val) PCDisplay.pc_pix_height = (val) +#define set_host_pix_height(val) PCDisplay.host_pix_height = (val) +#define set_pix_char_width(val) PCDisplay.pix_char_width = (val) + +#define get_mode_change_required() (PCDisplay.mode_change_required) +#define get_offset_per_line() (PCDisplay.offset_per_line) +#define get_pix_width() (PCDisplay.pix_width) +#define get_pc_pix_height() (PCDisplay.pc_pix_height) +#define get_host_pix_height() (PCDisplay.host_pix_height) +#define get_pix_char_width() (PCDisplay.pix_char_width) +#define get_word_addressing() (PCDisplay.word_addressing) +#define get_cur_x() (PCDisplay.cur_x) +#define get_cur_y() (PCDisplay.cur_y) +#define get_cursor_start() (PCDisplay.cursor_start) +#define get_cursor_height() (PCDisplay.cursor_height) +#define get_cursor_start1() (PCDisplay.cursor_start1) +#define get_cursor_height1() (PCDisplay.cursor_height1) +#define is_cursor_visible() (PCDisplay.PC_cursor_visible != FALSE) +#define get_display_disabled() (PCDisplay.display_disabled) +#define get_bytes_per_line() (PCDisplay.bytes_per_line) +#define get_chars_per_line() (PCDisplay.chars_per_line) +#define get_char_width() (PCDisplay.char_width) +#define get_char_height() (PCDisplay.char_height) +#define get_screen_length() (PCDisplay.screen_length) +#define get_screen_start() (PCDisplay.screen_start) +#ifdef VGG +#define get_screen_height() ((video_adapter == VGA) ? ((PCDisplay.screen_height.as_word+1)<= gvi_pc_low_regen && addr <= gvi_pc_high_regen) diff --git a/private/mvdm/softpc.new/base/inc/harness.h b/private/mvdm/softpc.new/base/inc/harness.h new file mode 100644 index 000000000..b16dbd0e2 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/harness.h @@ -0,0 +1,93 @@ + +/* +* MODULE: harness.h +* +* PURPOSE: Some macros and typedefs etc for the test harness. +* This file should be #included into the C file +* which contains the function table. +* +* AUTHOR: Jason Proctor +* +* DATE: Fri Aug 11 1989 +*/ + +/* SccsID[]="@(#)harness.h 1.3 08/10/92 Copyright Insignia Solutions Ltd."; */ + +/* harness-wide system parameters */ +#define MAXLINE 64 +#define MAXFILE 16 +#define MAXARGS 8 + +/* defines for standard C return types */ +#define VOID 0 +#define CHAR 1 +#define SHORT 2 +#define INT 3 +#define LONG 4 +#define HEX 5 +#define LONGHEX 6 +#define FLOAT 7 +#define DOUBLE 8 +#define STRPTR 9 +#define BOOL 10 +#define SYS 11 + +/* states for argument extraction subroutine */ +#define NOTINQUOTE 0 +#define INSQUOTE 1 +#define INDQUOTE 2 + +/* typedef for master function table */ +typedef struct +{ + char *func_name; /* name of the function as a string */ + int nparams; /* how many params it takes */ + int return_type; /* what kind of animal it returns */ + int (*func) (); /* pointer to 'glue' function */ + int arg_type1; /* type of arg 1 */ + int arg_type2; /* .... etc .... */ + int arg_type3; + int arg_type4; + int arg_type5; + int arg_type6; + int arg_type7; + int arg_type8; +} Functable; + +/* typedef for linked list of variables */ +typedef struct Var_List +{ + struct Var_List *next; + struct Var_List *prev; + char *vname; + char *value; + int vsize; +} Varlist; + +/* typedef for return code union */ +/* can be reduced to just longs and doubles (I think) */ +/* due to return codes being held in registers/globals etc */ +typedef union +{ + int i; + long l; + char *p; + float f; + double d; +} Retcodes; + +/* macros for return code bits to make life easier */ +#define ret_char retcode.i +#define ret_short retcode.i +#define ret_int retcode.i +#define ret_long retcode.l +#define ret_hex retcode.i +#define ret_longhex retcode.l +#define ret_strptr retcode.p +#define ret_bool retcode.i +#define ret_sys retcode.i + +/* and these are treated as doubles */ +#define ret_float retcode.f +#define ret_double retcode.d + diff --git a/private/mvdm/softpc.new/base/inc/haw.h b/private/mvdm/softpc.new/base/inc/haw.h new file mode 100644 index 000000000..4971e2763 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/haw.h @@ -0,0 +1,346 @@ +/*[ + * Product: SoftWindows Revision 2.0 + * + * Name: haw.h + * + * Derived From: Original + * + * Authors: Rob Tizzard + * + * Created On: 16th April 1994 + * + * Purpose: All base/host definitions for the SoftWindows + * host audio wave driver interface. + * + * (c)Copyright Insignia Solutions Ltd., 1994. All rights reserved. + * +]*/ + + +#ifdef SCCSID +static char SccsID[]="@(#)haw.h 1.2 12/20/94"; +#endif + +/* Standard device sample formats */ + +#define HAW_INVALIDFORMAT 0x00000000 /* invalid format */ +#define HAW_FORMAT_1M08 0x00000001 /* 11.025 kHz, Mono, 8-bit */ +#define HAW_FORMAT_1S08 0x00000002 /* 11.025 kHz, Stereo, 8-bit */ +#define HAW_FORMAT_1M16 0x00000004 /* 11.025 kHz, Mono, 16-bit */ +#define HAW_FORMAT_1S16 0x00000008 /* 11.025 kHz, Stereo, 16-bit */ +#define HAW_FORMAT_2M08 0x00000010 /* 22.05 kHz, Mono, 8-bit */ +#define HAW_FORMAT_2S08 0x00000020 /* 22.05 kHz, Stereo, 8-bit */ +#define HAW_FORMAT_2M16 0x00000040 /* 22.05 kHz, Mono, 16-bit */ +#define HAW_FORMAT_2S16 0x00000080 /* 22.05 kHz, Stereo, 16-bit */ +#define HAW_FORMAT_4M08 0x00000100 /* 44.1 kHz, Mono, 8-bit */ +#define HAW_FORMAT_4S08 0x00000200 /* 44.1 kHz, Stereo, 8-bit */ +#define HAW_FORMAT_4M16 0x00000400 /* 44.1 kHz, Mono, 16-bit */ +#define HAW_FORMAT_4S16 0x00000800 /* 44.1 kHz, Stereo, 16-bit */ + +#define HAW_NAME_LEN 32 /* Device name length */ + +typedef struct { + IUM8 channels; /* Number of output channels */ + IBOOL pitch_control; /* If TRUE device has pitch control */ + IBOOL playbackrate_control; /* If TRUE device has playback rate control */ + IBOOL volume_control; /* If TRUE device has volume control */ + IBOOL lr_volume_control; /* If TRUE device has left & right volume control */ + IBOOL synchronous; /* If TRUE device plays sounds synchronously */ + IU32 formats; /* Standard output sample formats supported */ + IU8 dev_name[HAW_NAME_LEN]; /* Name of waveform output device */ +} HAWO_CAPS; + +/* + * ----------------------------------------------------------------------------- + * Host input capabilites. + * ----------------------------------------------------------------------------- + */ + +typedef struct { + IUM8 channels; /* Number of input channels */ + IBOOL synchronous; /* If TRUE device records sounds synchronously */ + IU32 formats; /* Standard output sample formats supported */ + IU8 dev_name[HAW_NAME_LEN]; /* Name of waveform input device */ +} HAWI_CAPS; + +/* + * ----------------------------------------------------------------------------- + * Host audio position structure. + * ----------------------------------------------------------------------------- + */ + +/* position_type field values */ + +#define HAW_POSN_MILLI_SEC (IUM8)1 +#define HAW_POSN_SAMPLE (IUM8)2 +#define HAW_POSN_BYTE_COUNT (IUM8)3 + +typedef struct { + + IUM8 position_type; + + union { + IU32 milli_sec; /* HAW_POSN_MILLI_SEC in milliseconds */ + IU32 sample; /* HAW_POSN_SAMPLE in number of wave samples*/ + IU32 byte_count; /* HAW_POSN_BYTE_COUNT in number of wave samples*/ + } u; + +} HAW_POSN; + +/* + * ----------------------------------------------------------------------------- + * Host audio formats. + * ----------------------------------------------------------------------------- + */ + +#define HAW_PCM_NOCOMPRESS (IUM8)0 /* Pulse Code Modulated, uncompressed. */ + +/* Adaptive Pulse Code Modulated (ADPCM) */ + +#define HAW_ADPCM_2 (IUM8)1 /* ADPCM, 2:1 compression */ +#define HAW_ADPCM_3 (IUM8)2 /* ADPCM, 3:1 compression */ +#define HAW_ADPCM_4 (IUM8)3 /* ADPCM, 4:1 compression */ + + +/* + * ----------------------------------------------------------------------------- + * Host audio function return codes. + * ----------------------------------------------------------------------------- + */ + +#define HAW_OK (IUM8)0 /* Sucessfully completed function. */ +#define HAW_NOTSUPPORTED (IUM8)1 /* Feature not supported */ +#define HAW_INVALID (IUM8)1 /* Feature not supported */ + +/* + * ----------------------------------------------------------------------------- + * Default pitch & playback rates for hosts which don't have the support. + * ----------------------------------------------------------------------------- + */ + +#define HAW_DEF_PITCH (HAW_FIXPNT) 0x00010000 /* 1.0 */ +#define HAW_DEF_PLAYBACK (HAW_FIXPNT) 0x00010000 /* 1.0 */ + +/* + * ----------------------------------------------------------------------------- + * Host channel values. + * ----------------------------------------------------------------------------- + */ + +#define HAW_MONO (IUM8) 1 +#define HAW_STEREO (IUM8) 2 + +/* + * ----------------------------------------------------------------------------- + * Host audio loop control constants. + * ----------------------------------------------------------------------------- + */ + +#define HAW_LOOP_START (IUM8)1 +#define HAW_LOOP_END (IUM8)2 + +/* + * ----------------------------------------------------------------------------- + * Host sample sizes. + * ----------------------------------------------------------------------------- + */ + +#define HAW_SAMPLE_8 (IUM8)8 +#define HAW_SAMPLE_16 (IUM8)16 + +/* + * ----------------------------------------------------------------------------- + * Host Miscilanous Structures + * ----------------------------------------------------------------------------- + */ + +typedef IU32 HAW_FIXPNT; /* Fixed point */ + +typedef struct { + LIN_ADDR callbackData; /* Call back data */ +} HAW_CALLBACK; + +/* + * ----------------------------------------------------------------------------- + * Host audio wave function prototypes. + * ----------------------------------------------------------------------------- + */ + +extern IUM8 hawo_num_devices IPT0(); + +extern void hawo_query_capabilities IPT2 + ( + IUM8, device, /* Output device */ + HAWO_CAPS, *pcaps /* Pointer to output capabilities structure. */ + ); + +extern IUM8 hawo_query_format IPT5 + ( + IUM8, device, /* Output device */ + IUM8, channels, /* channels required */ + IUM8, data_type, /* Data type, HAW_PCM_NOCOMPRESS, etc. */ + IU32, sample_rate, /* Samples per second. */ + IUM8, sample_size /* 8 or 16-bit data samples. */ + ); + +extern IUM8 hawo_open IPT5 + ( + IUM8, device, /* Output device */ + IUM8, channels, /* channels required */ + IUM8, data_type, /* Data type, HAW_PCM_NOCOMPRESS, etc. */ + IU32, sample_rate, /* Samples per second. */ + IUM8, sample_size /* 8 or 16-bit data samples. */ + ); + +extern HAW_FIXPNT hawo_get_pitch IPT1 + ( + IUM8, device /* Output device */ + ); + +extern HAW_FIXPNT hawo_get_playback_rate IPT1 + ( + IUM8, device /* Output device */ + ); + +extern IU32 hawo_get_def_volume IPT1 + ( + IUM8, device /* Output device */ + ); + +extern IUM8 hawo_set_pitch IPT2 + ( + IUM8, device, /* Output device */ + HAW_FIXPNT, pitch /* New pitch value */ + ); + +extern IUM8 hawo_set_playback_rate IPT2 + ( + IUM8, device, /* Output device */ + HAW_FIXPNT, playback_rate /* New playback value */ + ); + +extern IUM8 hawo_set_volume IPT2 + ( + IUM8, device, /* Output device */ + IU32, volume /* New volume value */ + ); + +extern void hawo_write IPT6 + ( + IUM8, device, /* Output device */ + LIN_ADDR, data_addr, /* Intel memory Pointer to wave data */ + IU32, data_size, /* Number of bytes of output data */ + IUM8, flags, /* Flags controlling loop playback */ + IU32, loops, /* Number of times to play loop */ + HAW_CALLBACK *, hawo_callback /* Callback function */ + ); + +extern void hawo_get_position IPT2 + ( + IUM8, device, /* Output device */ + HAW_POSN *, pinfo /* Pointer to audio position(time) structure */ + ); + +extern void hawo_pause IPT1 + ( + IUM8, device /* Output device */ + ); + +extern void hawo_restart IPT1 + ( + IUM8, device /* Output device */ + ); + +extern void hawo_reset IPT1 + ( + IUM8, device /* Output device */ + ); + +extern void hawo_close IPT1 + ( + IUM8, device /* Output device */ + ); + +extern IBOOL hawo_is_active IPT1 + ( + IUM8, device /* Output device */ + ); + +extern IUM8 hawo_break_loop IPT2 + ( + IUM8, device, /* Output device */ + IBOOL, at_end /* If TRUE action at end of loop, otherwise action immediately */ + ); + +extern IUM8 hawi_num_devices IPT0(); + +extern void hawi_query_capabilities IPT1 + ( + HAWI_CAPS, *pcaps /* Pointer to input capabilities structure. */ + ); + +extern IUM8 hawi_query_format IPT4 + ( + IUM8, channels, /* channels required */ + IUM8, data_type, /* Data type, HAW_PCM_NOCOMPRESS, etc. */ + IU32, sample_rate, /* Samples per second. */ + IUM8, sample_size /* 8 or 16-bit data samples. */ + ); + +extern IUM8 hawi_open IPT5 + ( + IUM8, channels, /* channels required */ + IUM8, data_type, /* Data type, HAW_PCM_NOCOMPRESS, etc. */ + IU32, sample_rate, /* Samples per second. */ + IUM8, sample_size, /* 8 or 16-bit data samples. */ + LIN_ADDR, buff_addr + ); + +extern void hawi_get_position IPT1 + ( + HAW_POSN *, pinfo /* Pointer to audio position(time) structure */ + ); + +extern void hawi_add_buffer IPT3 + ( + IU32, data_addr, /* Intel memory Pointer to wave data */ + IU32, data_size, /* Number of bytes in input data buffer */ + HAW_CALLBACK *, hawi_callback /* Callback function */ + ); + +extern void hawi_start IPT0(); + +extern void hawi_restart IPT0(); + +extern IBOOL hawi_is_active IPT0(); + +extern void hawi_close IPT0(); + +extern IBOOL hawo_hardware_acquire IPT1 + ( + IUM8, device /* Output device */ + ); + +extern IBOOL hawi_hardware_acquire IPT0(); + +extern void hawo_hardware_realease IPT1 + ( + IUM8, device /* Output device */ + ); + +extern void hawi_hardware_realease IPT0(); + +extern IBOOL hawo_enable IPT0(); +extern IBOOL hawi_enable IPT0(); + +extern IBOOL hawo_disable IPT0(); +extern IBOOL hawi_disable IPT0(); + +extern IBOOL hawo_WEP IPT0(); +extern IBOOL hawi_WEP IPT0(); + +extern void hawo_dec_int_cnt IPT1 + ( + IUM8, device /* Output device */ + ); + diff --git a/private/mvdm/softpc.new/base/inc/herc.h b/private/mvdm/softpc.new/base/inc/herc.h new file mode 100644 index 000000000..5b2966325 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/herc.h @@ -0,0 +1,37 @@ + +/* + * VPC-XT Revision 2.0 + * + * Title : Hercules Mono Display Adaptor declarations + * + * Description : Definitions for users of the Hercules MDA + * + * Author : P. Jadeja + * + * Notes : None + */ + + +/* SccsID[]=" @(#) @(#)herc.h 1.4 08/10/92 02/02/89 01/17/89 Copyright Insignia Solutions Ltd."; */ + +/* + * ============================================================================ + * Structure/Data definitions + * ============================================================================ + */ + +/* None */ + +/* + * ============================================================================ + * External declarations and macros + * ============================================================================ + */ + +#define HERC_SCAN_LINE_LENGTH 90 + +extern void herc_init IPT0(); +extern void herc_term IPT0(); +extern void herc_inb IPT2(io_addr, port, half_word *, value); +extern void herc_outb IPT2(io_addr, port, half_word, value); + diff --git a/private/mvdm/softpc.new/base/inc/hfx.h b/private/mvdm/softpc.new/base/inc/hfx.h new file mode 100644 index 000000000..afd709aa9 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/hfx.h @@ -0,0 +1,738 @@ +/* + * SoftPC Revision 3.0 + * + * Title : hfx.h + * + * Description : Definitions and external declarations for HFX. + * + * Author : J. Koprowski + L. Dworkin + * + * Sccs ID : @(#)hfx.h 1.32 05/24/95 + * + * Notes : + * + * Mods : + */ + +#ifdef HFX + +#ifdef SCCSID +/* static char SccsID[]="@(#)hfx.h 1.32 05/24/95 Copyright Insignia Solutions Ltd."; */ +#endif + +/****************************************************************/ +/* */ +/* Redirector type definitions and constants. */ +/* */ +/****************************************************************/ +/* + * Redirector CDS or current directory structure. + */ +#define DIRSTRLEN (64+3) +#define TEMPLEN (DIRSTRLEN*2) + +typedef struct { + char curdir_text[DIRSTRLEN]; /* text of assignment and curdir */ + word curdir_flags; /* various flags */ + double_word curdir_devptr; /* local pointer to DPB or net device */ + word curdir_id; /* cluster of current dir (net ID) */ + word whoknows; + word curdir_user_word; + word curdir_end; /* end of assignment */ +} CDS; + +/* Flag word masks */ +#define curdir_isnet 0x8000 +#define curdir_inuse 0x4000 +#define curdir_splice 0x2000 +#define curdir_local 0x1000 +#define curdir_sharing 0x0800 +#define curdir_iscdrom 0x0080 /* this works with MSCDEX 2.20 */ + +/* The location of the fake IFS header we place in ROM */ +/* to make DOS 4.01 happy. */ + +#define IFS_SEG 0xf000 +#define IFS_OFF 0x6000 + +#define REDIRIN 0x8 +#define RECVRIN 0x80 +#define MSNGRIN 0x4 +#define SRVRIN 0x40 + +#ifndef PROD +extern IU32 severity; +#include "trace.h" + +#define DEBUG_INPUT 0x1 +#define DEBUG_REG 0x2 +#define DEBUG_FUNC 0x4 +#define DEBUG_HOST 0x8 +#define DEBUG_INIT 0x10 +#define DEBUG_CHDIR 0x20 +#define hfx_trace0(trace_bit,str) if(severity&trace_bit){fprintf(trace_file,str);} +#define hfx_trace1(trace_bit,str,p1) if(severity&trace_bit){fprintf(trace_file,str,p1);} +#define hfx_trace2(trace_bit,str,p1,p2) if(severity&trace_bit){fprintf(trace_file,str,p1,p2);} +#define hfx_trace3(trace_bit,str,p1,p2,p3) if(severity&trace_bit){fprintf(trace_file,str,p1,p2,p3);} +#define hfx_trace4(trace_bit,str,p1,p2,p3,p4) if(severity&trace_bit){fprintf(trace_file,str,p1,p2,p3,p4);} +#else +#define hfx_trace0(trace_bit,str) +#define hfx_trace1(trace_bit,str,p1) +#define hfx_trace2(trace_bit,str,p1,p2) +#define hfx_trace3(trace_bit,str,p1,p2,p3) +#define hfx_trace4(trace_bit,str,p1,p2,p3,p4) +#endif /* !PROD */ + +typedef struct { + double_word SFLink; + word SFCount; + word SFTable; +} SF; + +typedef struct { + word sf_ref_count; + word sf_mode; + half_word sf_attr; + word sf_flags; + double_word sf_devptr; + word sf_firclus; + word sf_time; + word sf_date; + double_word sf_size; + double_word sf_position; + word sf_cluspos; + word sf_dirsecl; + word sf_dirsech; /* Grew to 32 bits in DOS 4+ */ + half_word sf_dirpos; + half_word sf_name[11]; + double_word sf_chain; + word sf_UID; + word sf_PID; + word sf_MFT; +/* + * New DOS 4+ fields. lst_clus field moved down here + * because dirsec field grew to 32 bits. + */ + word sf_lst_clus;/* moved down */ + double_word sf_ifs; /* file is in this file sys */ +} sf_entry; + +#define SF_REF_COUNT sft_ea + 0 +#define SF_MODE sft_ea + 2 +#define SF_ATTR sft_ea + 4 +#define SF_FLAGS sft_ea + 5 +#define SF_DEVPTR sft_ea + 7 +#define SF_FIRCLUS sft_ea + 11 /* 0xb */ +#define SF_TIME sft_ea + 13 /* 0xd */ +#define SF_DATE sft_ea + 15 /* 0xf */ +#define SF_SIZE sft_ea + 17 /* 0x11 */ +#define SF_POSITION sft_ea + 21 /* 0x15 */ +#define SF_CLUSPOS sft_ea + 25 /* 0x19 */ +#define SF_DIRSECL sft_ea + 27 /* 0x1b */ +#define SF_DIRSECH sft_ea + 29 /* 0x1d */ +#define SF_DIRPOS sft_ea + 31 /* 0x1f */ +#define SF_NAME sft_ea + 32 /* 0x20 */ +#define SF_CHAIN sft_ea + 43 /* 0x2b */ +#define SF_UID sft_ea + 47 /* 0x2f */ +#define SF_PID sft_ea + 49 /* 0x31 */ +#define SF_MFT sft_ea + 51 /* 0x33 */ +#define SF_LST_CLUS sft_ea + 53 /* 0x35 - moved down here for DOS 4+ */ +#define SF_IFS sft_ea + 55 /* 0x37 */ + +#define SF_NET_ID SF_CLUSPOS + +#define sf_default_number 0x5 +#define sf_busy 0xffff +#define sf_free 0 + +#define sf_isfcb 0x8000 +#define sf_isnet 0x8000 +#define sf_close_nodate 0x4000 +#define sf_pipe 0x2000 +#define sf_no_inherit 0x1000 +#define sf_net_spool 0x0800 + +#define devid_file_clean 0x40 +#define devid_file_mask_drive 0x3f + +#define devid_device 0x80 +#define devid_device_EOF 0x40 +#define devid_device_raw 0x20 +#define devid_device_special 0x10 +#define devid_device_clock 0x08 +#define devid_device_null 0x04 +#define devid_device_con_out 0x02 +#define devid_device_con_in 0x01 + +#define devid_block_dev 0x1f + +/* file modes */ +#define access_mask 0x0f +#define open_for_read 0x00 +#define open_for_write 0x01 +#define open_for_both 0x02 + +#define sharing_mask 0xf0 +#define sharing_compat 0x00 +#define sharing_deny_both 0x10 +#define sharing_deny_write 0x20 +#define sharing_deny_read 0x30 +#define sharing_deny_none 0x40 +#define sharing_net_FCB 0x70 +#define sharing_no_inherit 0x80 + +/* + * DOS 4+ Extended Open "Does exist" & "Doesn't exist" action values. + */ + +#define DX_MASK 0x03 +#define DX_FAIL 0x00 +#define DX_OPEN 0x01 +#define DX_REPLACE 0x02 + +#define NX_MASK 0x30 +#define NX_FAIL 0x00 +#define NX_CREATE 0x10 + +/* + * DOS error codes. + * N.B. error_not_error is specific to this implementation, although + * DOS assumes an error return of zero equals success. + */ +#define error_not_error 0 +#define error_invalid_function 1 +#define error_file_not_found 2 +#define error_path_not_found 3 +#define error_too_many_open_files 4 +#define error_access_denied 5 +#define error_invalid_handle 6 +#define error_arena_trashed 7 +#define error_not_enough_memory 8 +#define error_invalid_block 9 +#define error_bad_environment 10 +#define error_bad_format 11 +#define error_invalid_access 12 +#define error_invalid_data 13 +#define error_reserved 14 +#define error_invalid_drive 15 +#define error_current_directory 16 +#define error_not_same_device 17 +#define error_no_more_files 18 + +/* These are the universal int 24 mappings for the old INT 24 set of errors */ +#define error_write_protect 19 +#define error_bad_unit 20 +#define error_not_ready 21 +#define error_bad_command 22 +#define error_CRC 23 +#define error_bad_length 24 +#define error_Seek 25 +#define error_not_DOS_disk 26 +#define error_sector_not_found 27 +#define error_out_of_paper 28 +#define error_write_fault 29 +#define error_read_fault 30 +#define error_gen_failure 31 + +/* These are the new 3.0 error codes reported through INT 24 */ +#define error_sharing_violation 32 +#define error_lock_violation 33 +#define error_wrong_disk 34 +#define error_FCB_unavailable 35 +#define error_sharing_buffer_exceeded 36 + +/* New OEM network-related errors are 50-79 */ +#define error_not_supported 50 + +/* End of INT 24 reportable errors */ +#define error_file_exists 80 +#define error_DUP_FCB 81 +#define error_canot_make 82 +#define error_FAIL_I24 83 + +/* New 3.0 network related error codes */ +#define error_out_of_structures 84 +#define error_Already_assigned 85 +#define error_invalid_password 86 +#define error_invalid_parameter 87 +#define error_NET_write_fault 88 +/* + * error_is_not_directory is a code specific to this implementation. + * It enables more code to be put in the base. + */ +#define error_is_not_directory 89 + +/* Interrupt 24 error codes */ +#define error_I24_write_protect 0 +#define error_I24_bad_unit 1 +#define error_I24_not_ready 2 +#define error_I24_bad_command 3 +#define error_I24_CRC 4 +#define error_I24_bad_length 5 +#define error_I24_Seek 6 +#define error_I24_not_DOS_disk 7 +#define error_I24_sector_not_found 8 +#define error_I24_out_of_paper 9 +#define error_I24_write_fault 0xa +#define error_I24_read_fault 0xb +#define error_I24_gen_failure 0xc +/* NOTE: Code 0xD is used by MT-DOS */ +#define error_I24_wrong_disk 0xf + +/* The following are masks for the AH register on Int 24 */ +#define Allowed_FAIL 0x08 +#define Allowed_RETRY 0x10 +#define Allowed_IGNORE 0x20 +/* Note: ABORT is always allowed */ + +#define I24_operation 0x1 /* Z if READ, NZ if WRITE */ +#define I24_area 0x6 /* 00 if DOS + * 01 if FAT + * 10 if root DIR + * 11 if DATA */ +#define I24_class 0x80 /* Z if DISK, NZ if FAT */ + +/* + * The following are offsets within the fifty three byte structure that + * is used by search first and search next operations. + */ +#define DMA_DRIVE_BYTE 0 +#define DMA_SEARCH_NAME 1 +#define DMA_SATTRIB 12 +#define DMA_LASTENT 13 +#define DMA_DIRSTART 15 +#define DMA_LOCAL_CDS 17 +#define DMA_UNKNOWN 19 +#define DMA_NAME 21 +#define DMA_ATTRIBUTES 32 +#define DMA_TIME 43 +#define DMA_DATE 45 +#define DMA_CLUSTER 47 +#define DMA_FILE_SIZE 49 + +/* + * DOS access masks used by create and open. + */ +#define open_for_read 0x00 +#define open_for_write 0x01 +#define open_for_both 0x02 + +/* + * DOS file attribute masks. + */ +#define attr_read_only 0x1 +#define attr_hidden 0x2 +#define attr_system 0x4 +#define attr_volume_id 0x8 +#define attr_directory 0x10 +#define attr_archive 0x20 +#define attr_device 0x40 + +#define attr_bad 0x80 +#define attr_good 0x7f + +#define attr_all (attr_hidden|attr_system|attr_directory) +#define attr_ignore (attr_read_only|attr_archive|attr_device) +#define attr_changeable (attr_read_only|attr_hidden|attr_system|attr_archive) + +/* + * Disk information structure used by NetDiskInfo in the base, + * and host_diskinfo. + */ +typedef struct +{ + double_word total_clusters; /* Total number of blocks. */ + double_word clusters_free; /* Total number of blocks free. */ + double_word bytes_per_sector; + double_word sectors_per_cluster; +} DOS_DISK_INFO; + +/* + * Non-alphabetic DOS legal characters. !! Needs checking. !! + */ +#define NON_ALPHA_DOS_CHARS "01234567890_-@$%^&!#{}()~`'" + +/* + * DOS file name length limits. + */ +#define MAX_DOS_NAME_LENGTH 8 +#define MAX_DOS_EXT_LENGTH 3 +#define MAX_DOS_FULL_NAME_LENGTH 12 + +/* defines for host_lseek "whence" */ +#define REL_START 0 +#define REL_CUR 1 +#define REL_EOF 2 + +/****************************************************************/ +/* */ +/* HFX directory details structure. */ +/* */ +/****************************************************************/ + +typedef struct hfx_found_dir_entry +{ + half_word attr; + CHAR *host_name; + CHAR *dos_name; + LONG direntry; + struct hfx_found_dir_entry *next; +} HFX_FOUND_DIR_ENT; + +/* + * This structure is actually host specific because of the + * HFX_DIR field which is defined in host_hfx.h and which must + * therefore be included prior to this file. + */ + +typedef struct hfx_direntry +{ + HOST_DIR *dir; + CHAR *name; + CHAR *template; + LONG direntry; + HFX_FOUND_DIR_ENT *found_list_head; + HFX_FOUND_DIR_ENT *found_list_curr; + BOOL first_find; + struct hfx_direntry *next; + struct hfx_direntry *last; + half_word search_attr; + + /* AJO 26/11/92 + * The following is required to support architectures where + * pointers are longer than 32 bits. + */ +#if LONG_SHIFT > 2 + IU32 id; +#endif /* LONG_SHIFT > 2 */ +} HFX_DIR; + +/****************************************************************/ +/* */ +/* External function declarations. */ +/* */ +/****************************************************************/ +/* + * Functions for generating mapped file extensions. + */ +extern unsigned short calc_crc IPT2(unsigned char *, host_name, + unsigned short, name_length); +extern void crc_to_str IPT2(unsigned short, crc, unsigned char *, extension); + +/* + * Functions for retrieving system variables used by the redirector. + */ +extern void cds_info IPT3(word, seg, word, off, int, num_cds_entries); +extern void sft_info IPT2(word, seg, word, off); +extern double_word get_wfp_start IPT0(); +extern word get_curr_dir_end IPT0(); +extern double_word get_thiscds IPT2(word *, seg, word *, off); +extern double_word get_thissft IPT0(); +extern double_word get_es_di IPT0(); +extern double_word get_ds_si IPT0(); +extern double_word get_ds_dx IPT0(); +extern half_word get_sattrib IPT0(); +extern double_word get_ren_wfp IPT0(); +extern double_word get_dmaadd IPT1(int, format); +extern word get_current_pdb IPT0(); +extern double_word get_sftfcb IPT0(); +extern char *get_hfx_root IPT1(half_word, hfx_entry); +extern char *get_hfx_global IPT1(half_word, hfx_entry); +extern validate_hfxroot IPT1(char *, path); +extern void hfx_root_changed IPT1(char *, name); +extern word get_xoflag IPT0(); +extern void set_usercx IPT1(word, cx); + +/* + * Redirector net functions. + */ +extern word NetInstall IPT0(); +extern word NetRmdir IPT0(); +extern word NetMkdir IPT0(); +extern word NetChdir IPT0(); +extern word NetClose IPT0(); +extern word NetCommit IPT0(); +extern word NetRead IPT0(); +extern word NetWrite IPT0(); +extern word NetLock IPT0(); +extern word NetUnlock IPT0(); +extern word NetDiskInfo IPT0(); +extern word NetSet_file_attr IPT0(); +extern word NetGet_file_info IPT0(); +extern word NetRename IPT0(); +extern word NetDelete IPT0(); +extern word NetOpen IPT0(); +extern word NetCreate IPT0(); +extern word NetSeq_search_first IPT0(); +extern word NetSeq_search_next IPT0(); +extern word NetSearch_first IPT0(); +extern word NetSearch_next IPT0(); +extern word NetAbort IPT0(); +extern word NetAssoper IPT0(); +extern word NetPrinter_Set_String IPT0(); +extern word NetFlush_buf IPT0(); +extern word NetLseek IPT0(); +extern word NetReset_Env IPT0(); +extern word NetSpool_check IPT0(); +extern word NetSpool_close IPT0(); +extern word NetSpool_oper IPT0(); +extern word NetSpool_echo_check IPT0(); +extern word NetUnknown IPT0(); +extern word NetExtendedAttr IPT0(); +extern word NetExtendedOpen IPT0(); + +/* + * Redirector as called by BOP 2F instruction. + */ +extern void redirector IPT0(); + +/* + * Base utility functions found in hfx_util.c. + */ +extern void pad_filename IPT2(unsigned char *, instr, + unsigned char *, outstr); +extern void unpad_filename IPT2(unsigned char *, iname, + unsigned char *, oname); +extern boolean match IPT7(unsigned char *, host_path, + unsigned char *, template, half_word, sattrib, int, init, + unsigned char *, host_name, unsigned char *, dos_name, + half_word *, attr); +extern int find IPT7(HFX_DIR *, dir_ptr, unsigned char *, template, + half_word, sattrib, unsigned char *, host_name, + unsigned char *, dos_name, half_word *, attr, int, last_addr); +extern void cleanup_dirlist IPT0(); +extern boolean is_open_dir IPT1(HFX_DIR *, dir_ptr); +extern void tidy_up_dirptr IPT0(); +extern void rm_dir IPT1(HFX_DIR *, dir_ptr); + +#if LONG_SHIFT > 2 +/* AJO 26/11/92 + * Additional base utility functions required for architectures with pointers + * longer than 32bits; found in hfx_util.c. + */ +extern HFX_DIR *hfx_get_dir_from_id IPT1 (IU32, hfx_dir_id); +#endif /* LONG_SHIFT > 2 */ + +/* + * Base functions found in hfx_share.c. + */ +extern word check_access_sharing IPT3(word, fd, half_word, a_s_m, + boolean, rdonly); + +/* + * Base functions found in redirect.c. + */ +extern int net_use IPT2( half_word, drive, char *, name ); +extern int net_change IPT2( half_word, drive, char *, name ); +extern IBOOL is_global_hfx_drive IPT1( half_word, hfx_entry); +extern int get_lastdrive IPT0(); +extern half_word get_current_drive IPT0(); +extern VOID resolve_any_net_join IPT2(CHAR *,dos_path_in,CHAR *,dos_path_out); + +extern BOOL cds_is_sharing IPT1(CHAR *, dos_path); + +/* + * Host functions in xxx_hfx.c called from HFX. + */ +extern void host_concat IPT3(unsigned char *, path, unsigned char *, name, + unsigned char *, result); +extern word host_create IPT4(unsigned char *, name, word, attr, + half_word, create_new, word *, fd); +extern void host_to_dostime IPT3(time_t, secs_since_70, word *, date, + word *, time); +extern time_t host_get_datetime IPT2(word *, date, word *, thetime); +extern int host_set_time IPT2(word, fd, time_t, hosttime); +extern word host_open IPT6(unsigned char *, name, half_word, attrib, + word *, fd, double_word *, size, word *, date, word *, thetime); +extern word host_truncate IPT2(word, fd, long, size); +extern word host_close IPT1(word, fd); +extern word host_commit IPT1(word, fd); +extern word host_write IPT4(word, fd, unsigned char *, buf, word, num, + word *, count); +extern word host_read IPT4(word, fd, unsigned char *, buf, word, num, + word *, count); +extern word host_delete IPT1(unsigned char *, name); +extern word host_rename IPT2(unsigned char *, from, unsigned char *, to); +extern half_word host_getfattr IPT1(unsigned char *, name); +extern word host_get_file_info IPT4(unsigned char *, name, word *, thetime, + word *, date, double_word *, size); +extern word host_set_file_attr IPT2(unsigned char *, name, half_word, attr); +extern word host_lseek IPT4(word, fd, double_word, offset, int, whence, + double_word *, position); +extern word host_lock IPT3(word, fd, double_word, start, double_word, length); +extern word host_unlock IPT3(word, fd, double_word, start, double_word, length); +extern int host_check_lock IPT0(); +extern void host_disk_info IPT2(DOS_DISK_INFO *, disk_info, int, drive); +extern word host_rmdir IPT1(unsigned char *, host_path); +extern word host_mkdir IPT1(unsigned char *, host_path); +extern word host_chdir IPT1(unsigned char *, host_path); +extern void host_get_volume_id IPT2(unsigned char *, net_path, + unsigned char *, volume_id); +extern word host_gen_err IPT1(int, the_errno); +extern void init_fd_hname IPT0(); + +#ifndef host_opendir +extern HOST_DIR *host_opendir IPT1(const char *, host_path); +#endif /* host_opendir */ + +#ifndef host_readdir +extern struct host_dirent *host_readdir IPT1(HOST_DIR *, dirp); +#endif /* host_readdir */ + +#ifndef host_access +extern int host_access IPT2(unsigned char *, host_name, int, mode); +#endif /* host_access */ + +extern CHAR *host_machine_name IPT0(); +extern CHAR *host_get_file_name IPT1(CHAR *,pathname); +extern CHAR *host_make_file_path IPT3(CHAR *,buf, CHAR *,dirname, + CHAR *,filename); +extern time_t host_dos_to_host_time IPT2( IU16, date, IU16, time ); + +#ifndef hfx_rename +extern INT hfx_rename IPT2(CHAR *,from, CHAR *,to); +#endif /* hfx_rename */ + + + + +/* + * Host functions in xxx_map.c. + */ +extern int host_map_file IPT4(unsigned char *, host_name, + unsigned char *, match_name, unsigned char *, dos_name, + unsigned char *, curr_dir); +extern boolean host_validate_path IPT4(unsigned char *, net_path, + word *, start_pos, unsigned char *, host_path, word, new_file); +extern void host_get_net_path IPT3(unsigned char *, net_path, + unsigned char *, original_dos_path, word *, start_pos); + +/* + * Host functions in xxx_unix.c or equivalent. + */ +extern boolean host_file_is_directory IPT1(char *, name); +extern boolean host_validate_pathname IPT1(char *, name); +extern boolean host_check_read_access IPT1(char *, name); + +extern half_word dos_ver; + +/* + * The following are constants associated with redirector system + * variables. However, their location varies between DOS versions + * three and four, so variables need to be used. + */ +extern word DMAADD; +extern word CurrentPDB; +extern word SATTRIB; +extern word THISSFT; +extern word THISCDS; +extern word WFP_START; +extern word REN_WFP; +extern word CURR_DIR_END; +extern word SFT_STRUCT_LENGTH; + +/* ================================================================== */ + +/* + Instance Variables for HFX Driver, ie those variables which must + be set up for each Virtual Machine under Windows 3.x. The NIDDB + Manager (cf virtual.c) basically forces us to define these in one + memory area. + */ + +/* The instance structure (All variables tagged HFX_IN_) */ +typedef struct + { + half_word HFX_IN_primary_drive; + char ** HFX_IN_hfx_root_dir; + int HFX_IN_num_hfx_drives; /* no. of hfx drives in use */ + int HFX_IN_max_hfx_drives; /* no. of possible drives to use */ + word HFX_IN_old_flags[26]; + BOOL HFX_IN_inDOS; + BOOL HFX_IN_HfxInstalled; /* DOS has HFX driver (FSADRIVE) installed */ + + /* + Holds whether a drive is case sensitive or not, each drive masked + in: 0 = case sensitive + 1 = case insensitive + */ + IU32 HFX_IN_case_sense; + + /* + Holds whether the default case for file names should be upper or lower + case: 0 = lower case + 1 = upper case + */ + IU32 HFX_IN_upper_case; + + /* + Holds whether the drive is in global use by hfx: + 0 = not in use by hfx + 1 = in use by hfx + */ + IU32 HFX_IN_global_hfx_drive; + + /* + Holds the drive number related to the current HFX operation, + setup in test_for_us(). + */ + IU8 HFX_IN_curr_driveno; + HOST_DIR *HFX_IN_this_dir; + HFX_DIR *HFX_IN_head_dir_ptr; + HFX_DIR *HFX_IN_tail_dir_ptr; + UTINY HFX_IN_current_dir[MAX_PATHLEN]; /* UNIX HOST requirement */ + } HFX_INSTANCE_DATA, **HFX_INSTANCE_DATA_HANDLE; + +IMPORT HFX_INSTANCE_DATA_HANDLE hfx_handle; + +/* Define access to instance variables via handle */ +#define primary_drive ((*hfx_handle)->HFX_IN_primary_drive) +#define hfx_root_dir ((*hfx_handle)->HFX_IN_hfx_root_dir) +#define num_hfx_drives ((*hfx_handle)->HFX_IN_num_hfx_drives) +#define max_hfx_drives ((*hfx_handle)->HFX_IN_max_hfx_drives) +#define old_flags ((*hfx_handle)->HFX_IN_old_flags) +#define inDOS ((*hfx_handle)->HFX_IN_inDOS) +#define HfxInstalled ((*hfx_handle)->HFX_IN_HfxInstalled) +#define case_sense ((*hfx_handle)->HFX_IN_case_sense) +#define upper_case ((*hfx_handle)->HFX_IN_upper_case) +#define global_hfx_drive ((*hfx_handle)->HFX_IN_global_hfx_drive) +#define curr_driveno ((*hfx_handle)->HFX_IN_curr_driveno) +#define this_dir ((*hfx_handle)->HFX_IN_this_dir) +#define head_dir_ptr ((*hfx_handle)->HFX_IN_head_dir_ptr) +#define tail_dir_ptr ((*hfx_handle)->HFX_IN_tail_dir_ptr) +#define current_dir ((*hfx_handle)->HFX_IN_current_dir) + +/* ================================================================== */ + +enum +{ + DRIVE_FREE, + DRIVE_RESERVED, + DRIVE_INUSE +}; + +typedef IU8 drv_stat; + +IMPORT drv_stat get_hfx_drive_state IPT1(IU8, drive); +IMPORT void set_hfx_drive_state IPT2(IU8, drive, drv_stat, state); + + +#ifdef SWIN_HFX +/* + * Function called by Softwindows to check for network files, and + * function called by it to open a file. + */ + +extern IBOOL Hfx_is_net_file IPT1(sys_addr, fname); +extern IU32 Hfx_open_file IPT7(IU8, function, IU8, flags, sys_addr, fname, IU16 *,fd_p, IU16 *, date, IU16 *, time, IBOOL *, rdonly); +extern IU32 Hfx_file_exists IPT1(sys_addr, fname); + +/* + * An additional "unix like" file function, to duplicate a file handle. + * Returns -1 on failure. + */ + +extern IS16 host_duph IPT1(IS16, oldHandle); + +#endif /* SWIN_HFX */ +#endif /* HFX */ diff --git a/private/mvdm/softpc.new/base/inc/hg_cpu.h b/private/mvdm/softpc.new/base/inc/hg_cpu.h new file mode 100644 index 000000000..f38a7a6d8 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/hg_cpu.h @@ -0,0 +1,289 @@ +/*===========================================================================*/ + +/*[ + * File Name : hg_cpu.h + * + * Derived From : + * + * Author : Jane Sales + * + * Creation Date : 20th July, 1992 + * + * SCCS Version : @(#)hg_cpu.h 1.2 08/19/94 + *! + * Purpose + * This module contains the interface between the various modules of + * the hardware assisted CPU. + * + *! (c)Copyright Insignia Solutions Ltd., 1993. All rights reserved. +]*/ + +/*===========================================================================*/ + +struct h_cpu_registers + { + IU32 GDT_base; + IU16 GDT_limit; + IU32 IDT_base; + IU16 IDT_limit; + IU32 LDT_base; + IU16 LDT_limit; + IU16 LDT_selector; + IU32 TR_base; + IU16 TR_limit; + IU16 TR_selector; + IU16 CS_limit; + IU8 CS_ar; + IU16 DS_limit; + IU8 DS_ar; + IU16 ES_limit; + IU8 ES_ar; + IU16 SS_limit; + IU8 SS_ar; + IU16 FS_limit; + IU8 FS_ar; + IU16 GS_limit; + IU8 GS_ar; + IU8 CPL; + IU32 CR1; + IU32 CR2; + IU32 DR0; + IU32 DR1; + IU32 DR2; + IU32 DR3; + IU32 DR4; + IU32 DR5; + IU32 DR6; + IU32 DR7; + IU32 TR3; + IU32 TR4; + IU32 TR5; + IU32 TR6; + IU32 TR7; + struct hh_regs *tp; /* in hh_regs.h */ + }; + +/*==========================================================================*/ +/* macros for accessing registers in h_cpu_registers */ +/* Intel ports only, so these endian macros should be OK */ + +union bregs + { + ULONG h_l; + USHORT h_w[2]; + UTINY h_c[4]; + }; +#define WORD(n, v) ((*((union bregs *)(&v))).h_w[n]) +#define BYTE(n, v) ((*((union bregs *)(&v))).h_c[n]) + +#define EAX(c) (((c)->tp)->t_eax) +#define AX(c) WORD(0, ((c)->tp)->t_eax) +#define AH(c) BYTE(1, ((c)->tp)->t_eax) +#define AL(c) BYTE(0, ((c)->tp)->t_eax) +#define EBX(c) (((c)->tp)->t_ebx) +#define BX(c) WORD(0, ((c)->tp)->t_ebx) +#define BH(c) BYTE(1, ((c)->tp)->t_ebx) +#define BL(c) BYTE(0, ((c)->tp)->t_ebx) +#define ECX(c) (((c)->tp)->t_ecx) +#define CX(c) WORD(0, ((c)->tp)->t_ecx) +#define CH(c) BYTE(1, ((c)->tp)->t_ecx) +#define CL(c) BYTE(0, ((c)->tp)->t_ecx) +#define EDX(c) (((c)->tp)->t_edx) +#define DX(c) WORD(0, ((c)->tp)->t_edx) +#define DH(c) BYTE(1, ((c)->tp)->t_edx) +#define DL(c) BYTE(0, ((c)->tp)->t_edx) +#define DS(c) WORD(0, ((c)->tp)->t_ds) +#define ES(c) WORD(0, ((c)->tp)->t_es) +#define SS(c) WORD(0, ((c)->tp)->t_ss) +#define CS(c) WORD(0, ((c)->tp)->t_cs) +#define FS(c) WORD(0, ((c)->tp)->t_fs) +#define GS(c) WORD(0, ((c)->tp)->t_gs) +#define ESI(c) (((c)->tp)->t_esi) +#define SI(c) WORD(0, ((c)->tp)->t_esi) +#define EDI(c) (((c)->tp)->t_edi) +#define DI(c) WORD(0, ((c)->tp)->t_edi) +#define EFL(c) (((c)->tp)->t_eflags) +#define FL(c) WORD(0, ((c)->tp)->t_eflags) +#define IP(c) WORD(0, ((c)->tp)->t_eip) +#define EIP(c) (((c)->tp)->t_eip) +#define ESP(c) (((c)->tp)->t_esp) +#define SP(c) WORD(0, ((c)->tp)->t_esp) +#define EBP(c) (((c)->tp)->t_ebp) +#define BP(c) WORD(0, ((c)->tp)->t_ebp) +#define CR0(c) (((c)->tp)->t_cr0) +#define MSW(c) WORD(0, ((c)->tp)->t_cr0) + +#define GDT_base(c) ((c)->GDT_base) +#define GDT_limit(c) ((c)->GDT_limit) +#define IDT_base(c) ((c)->IDT_base) +#define IDT_limit(c) ((c)->IDT_limit) +#define LDT_base(c) ((c)->LDT_base) +#define LDT_limit(c) ((c)->LDT_limit) +#define LDT_selector(c) ((c)->LDT_selector) +#define TR_base(c) ((c)->TR_base) +#define TR_limit(c) ((c)->TR_limit) +#define TR_selector(c) ((c)->TR_selector) +#define CS_ar(c) ((c)->CS_ar) +#define CS_limit(c) ((c)->CS_limit) +#define DS_ar(c) ((c)->DS_ar) +#define DS_limit(c) ((c)->DS_limit) +#define ES_ar(c) ((c)->ES_ar) +#define ES_limit(c) ((c)->ES_limit) +#define SS_ar(c) ((c)->SS_ar) +#define SS_limit(c) ((c)->SS_limit) +#define FS_ar(c) ((c)->FS_ar) +#define FS_limit(c) ((c)->FS_limit) +#define GS_ar(c) ((c)->GS_ar) +#define GS_limit(c) ((c)->GS_limit) +#define CPL(c) ((c)->CPL) +#define CR1(c) ((c)->CR1) +#define CR2(c) ((c)->CR2) + +/*===========================================================================*/ +/* Bit definitions */ + +/* CR0 register */ + +#define M_PE 0x0001 /* Protection enable */ +#define M_MP 0x0002 /* Maths present */ +#define M_EM 0x0004 /* Emulation */ +#define M_TS 0x0008 /* Task switched */ +#define M_ET 0x0010 /* Extension type */ +#define M_NE 0x0020 /* Numeric error */ +#define M_WP 0x0100 /* Write protect */ +#define M_AM 0x0400 /* Alignment mask */ +#define M_NW 0x2000 /* Not write-through */ +#define M_CD 0x4000 /* Cache disable */ +#define M_PG 0x8000 /* Paging */ + +/* EFLAGS register */ + +#define PS_C 0x0001 /* carry bit */ +#define PS_P 0x0004 /* parity bit */ +#define PS_AC 0x0010 /* auxiliary carry bit */ +#define PS_Z 0x0040 /* zero bit */ +#define PS_N 0x0080 /* negative bit */ +#define PS_T 0x0100 /* trace enable bit */ +#define PS_IE 0x0200 /* interrupt enable bit */ +#define PS_D 0x0400 /* direction bit */ +#define PS_V 0x0800 /* overflow bit */ +#define PS_IOPL 0x3000 /* I/O privilege level */ +#define PS_NT 0x4000 /* nested task flag */ +#define PS_RF 0x10000 /* Reset flag */ +#define PS_VM 0x20000 /* Virtual 86 mode flag */ + +#define HWCPU_POSSIBLE 0 /* Emulation can continue */ +#define HWCPU_FAIL 1 /* O/S wouldn't run pc code */ +#define HWCPU_HALT 2 /* HALT opcode executed */ +#define HWCPU_IMPOSSIBLE 3 /* illegal opcode encountered */ + +#define HWCPU_TICKS 20 /* ticks per second */ + +typedef void (h_exception_handler_t) IPT2 (IU32, h_exception_num, IU32, h_error_code_t); +typedef void (COMMS_CB) IPT1(long, dummy); +extern VOID (*Hg_spc_entry) IPT0(); +extern IBOOL (*Hg_spc_async_entry) IPT0(); +extern VOID (*Hg_spc_return) IPT0(); +extern IBOOL Hg_SS_is_big; +/*===========================================================================*/ +/* functions */ + +extern struct hh_regs *hh_cpu_init IPT2 (IU32, size, IU32, monitor_address); +extern IS16 hh_cpu_simulate IPT0(); +extern void hh_mark_cpu_state_invalid IPT0(); +extern void hh_pm_pc_IDT_is_at IPT2 (IU32, address, IU32, length); +extern void hh_LDT_is_at IPT2 (IU32, address, IU32, length); +extern IU32 hh_cpu_calc_q_ev_inst_for_time IPT1 (IU32, time); +extern IBOOL hh_protect_memory IPT3 (IU32, address, IU32, size, IU32, access); +extern IBOOL hh_set_intn_handler IPT2 (IU32, hh_int_num, h_exception_handler_t, hh_intn_handler); +extern IBOOL hh_set_fault_handler IPT2 (IU32, hh_fault_num, h_exception_handler_t, hh_fault_handler); +extern VOID hh_enable_IF_checks IPT1(IBOOL, whenPM); +extern IU32 hh_resize_memory IPT1(IU32, size); +extern VOID hh_save_npx_state IPT1(IBOOL, reset); +#ifdef LIM +extern IU32 hh_LIM_allocate IPT2(IU32, n_pages, IHP *, addr); +extern IU32 hh_LIM_map IPT3(IU32, block, IU32, length, IHP, dst_addr); +extern IU32 hh_LIM_unmap IPT2(IHP, src_addr, IU32, length); +extern IU32 hh_LIM_deallocate IPT0(); +#endif /* LIM */ +extern VOID hh_restore_npx_state IPT1(IBOOL, do_diff); +#ifndef PROD +extern void hh_enable_slow_mode IPT0(); +#endif /* PROD */ +extern void hh_cpu_terminate IPT0(); + +extern VOID hg_resize_memory IPT1(IU32, size); +extern void hg_os_bop_handler IPT1 (unsigned int, BOPNum); +extern void hg_fault_handler IPT2 (IU32, fault_num, IU32, error_code); +extern void hg_fault_1_handler IPT2 (IU32, fault_num, IU32, error_code); +extern void hg_fault_6_handler IPT2 (IU32, fault_num, IU32, error_code); +extern void hg_fault_10_handler IPT2 (IU32, fault_num, IU32, error_code); +extern void hg_fault_13_handler IPT2 (IU32, fault_num, IU32, error_code); +extern void hg_fault_14_handler IPT2 (IU32, fault_num, IU32, error_code); + +/* The fpu fault handler (16) catches FPU exceptions, and generates SoftPC */ +/* interrupt ( 0x75 ) which corresponds to IRQ13. */ +extern void hg_fpu_fault_handler IPT2 (IU32, fault_num, IU32, error_code); + +extern IU32 hg_callback_handler IPT1 (IU32, status); + +extern VOID hg_set_default_fault_handler IPT2(IU32, hg_fault_num, + h_exception_handler_t, hg_handler); +extern IBOOL hg_set_intn_handler IPT2 (IU32, interrupt_number, + h_exception_handler_t *, function); +extern IBOOL hg_set_fault_handler IPT2 (IU32, exception_number, + h_exception_t *, function); +#ifdef IRET_HOOKS +extern void hg_add_comms_cb IPT2(COMMS_CB, next_batch, IUS32, timeout); +#endif + +extern VOID host_display_win_logo IPT0 (); + +/*===========================================================================*/ +/* the data itself */ + +extern struct h_cpu_registers *Cp; +extern IBOOL H_trace; + +/* + * We need to know if Windows is running as the fault handling is different + * if it is. The variable is set/unset by BOPs inserted into our + * modified DOSX, and by hg_cpu_reset. + */ +extern IBOOL H_windows; +extern IBOOL H_regs_changed; + +extern IU32 Pc_timeout; /* Value to return in if q_ev pending */ +extern IU32 Pc_q_ev_dec; /* Chunk to dec q_ev counter by */ + +extern IU32 Pc_woken; /* Reason callback handler was called */ +extern IU32 Pc_timeout; +extern IU32 Pc_if_set; +extern IU32 Pc_tick; + +extern IU32 Pc_run_timeout; /* Parameters "to" pc_run */ +extern IU32 Pc_run_option_none; +extern IU32 Pc_run_if_set; +extern IU32 Pc_run_pm_if_set; +extern IU32 Pc_run_tick; + +extern IU32 Pc_prot_none; /* Memory protection values */ +extern IU32 Pc_prot_read; +extern IU32 Pc_prot_write; +extern IU32 Pc_prot_execute; + +extern IU32 Pc_success; +extern IU32 Pc_no_space; +extern IU32 Pc_invalid_address; +extern IU32 Pc_failure; +extern IU32 Pc_invalid_argument; + + +/*===========================================================================*/ +/*===========================================================================*/ + + + + + + diff --git a/private/mvdm/softpc.new/base/inc/hg_sas.h b/private/mvdm/softpc.new/base/inc/hg_sas.h new file mode 100644 index 000000000..7a528fb8e --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/hg_sas.h @@ -0,0 +1,35 @@ +/*===========================================================================*/ + +/*[ + * File Name : hg_sas.h + * + * Derived From : + * + * Author : Jane Sales + * + * Creation Date : 29th August, 1992 + * + * SCCS Version : @(#)hg_sas.h 1.1 08/06/93 + *! + * Purpose + * The hardware CPU - SAS interface + * + *! (c)Copyright Insignia Solutions Ltd., 1992. All rights reserved. +]*/ + +/*===========================================================================*/ + +extern void a3_cpu_reset IPT0 (); +extern void intl_cpu_init IPT1 (IU32, size); +extern IBOOL hg_protect_memory IPT3 (IU32, address, IU32, size, IU32, access); + +extern void hh_enable_20_bit_wrapping IPT0 (); +extern void hh_disable_20_bit_wrapping IPT0 (); + +extern void m_set_sas_base IPT1 (IHP, address); + +/*===========================================================================*/ +/*===========================================================================*/ + + + diff --git a/private/mvdm/softpc.new/base/inc/hg_stat.h b/private/mvdm/softpc.new/base/inc/hg_stat.h new file mode 100644 index 000000000..91e9b11af --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/hg_stat.h @@ -0,0 +1,40 @@ +/*===========================================================================*/ +/*[ + * File Name : hg_stat.h + * + * Derived from : New. + * + * Author : Wayne Plummer + * + * Creation Date : 12 Apr 1993 + * + * SCCS Version : @(#)hg_stat.h 1.1 08/06/93 + *! + * Purpose + * This header file declares the variables and macros used + * for stats gathering in non-PROD builds of the GISP CPU. + * + *! (c) Copyright Insignia Solutions Ltd., 1993. All rights reserved. + * +]*/ + +/*===========================================================================*/ + +#ifdef PROD +#define PC_S_INC(NAME) +#else /* PROD */ +#define PC_S_INC(NAME) NAME++ + +IMPORT IU32 HG_S_SIM, HG_S_CALLB, HG_S_E20, HG_S_D20, HG_S_MINV, + HG_S_LDT, HG_S_IDT, HG_S_CQEV, HG_S_PROT, HG_S_EIF, + HG_S_INTC, HG_S_INTR, HG_S_PINT, HG_S_PFLT, HG_S_PVINT, + HG_S_PWINT, HG_S_PWFLT, HG_S_PPMINT, HG_S_INTNH, HG_S_FLTH, + HG_S_FLT1H, HG_S_FLT6H, HG_S_FLT6H_PFX, HG_S_FLT6H_BOP, + HG_S_FLT6H_NOTBOP, HG_S_FLT6H_LOCK, HG_S_FLT13H, HG_S_FLT14H, HG_S_BOPFB, + HG_S_BOPFB0, HG_S_BOPFB1, HG_S_BOPFB2, HG_S_BOPFB3, + HG_S_SQEV, HG_S_GQEV, HG_S_TDQEV, HG_S_HOOK, HG_S_IHOOK, + HG_S_UHOOK, HG_S_HOOKSEL, HG_S_HOOKBOP; + +#endif /* PROD */ + +/*===========================================================================*/ diff --git a/private/mvdm/softpc.new/base/inc/host.h b/private/mvdm/softpc.new/base/inc/host.h new file mode 100644 index 000000000..d4eac93ad --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/host.h @@ -0,0 +1,63 @@ +/* + * VPC-XT Revision 1.0 + * + * Title : host.h + * + * Description : Host specific declarations for the machine dependant + * modules of SoftPC. THIS IS A BASE INCLUDE FILE + * + * Author : Henry Nash + * + * Notes : Everything in here must portable !!! + */ + +/* SccsID[]="@(#)host.h 1.6 09/14/93 Copyright Insignia Solutions Ltd."; */ + +/* + * ============================================================================ + * External declarations and macros + * ============================================================================ + */ + +#ifdef PC_CONFIG +extern void pc_config(); +#endif + +IMPORT VOID host_flip_real_floppy_ind IPT2(int, drive, BOOL, active); + + +extern void host_floppy_init(); +extern void host_floppy_term(); +extern void host_reset(); + +extern boolean host_rdiskette_open_drive(); + + +/* Unix Utilities - xxxx_unix.c */ +extern char *host_get_cur_dir(); +#ifndef host_memset +extern void host_memset(); +#endif /* nhost_memset */ +extern int host_get_file_size(); +extern boolean host_file_is_directory(); +extern boolean host_validate_pathname(); +extern boolean host_check_rd_wt_access(); +extern boolean host_check_read_access(); +#ifdef SUSPEND +extern void suspend_softpc(); +#endif +#ifndef REAL_VGA +IMPORT VOID memset4 IPT3( IU32, data, ULONG *, laddr, ULONG, count ); +#endif +IMPORT VOID fill_alternate_bytes IPT3( IS8 *, start, IS8 *, end, IS8, value); +IMPORT VOID fill_both_bytes IPT3( IU16, data, IU16 *, dest, ULONG, len ); + +#ifdef SETUID_ROOT + +/* real/effective user ID stuff */ +IMPORT void host_init_uid IPT0 (); +IMPORT void host_set_root IPT0 (); +IMPORT void host_revert_uid IPT0 (); + +#endif /* SETUID_ROOT */ + diff --git a/private/mvdm/softpc.new/base/inc/host_cfg.h b/private/mvdm/softpc.new/base/inc/host_cfg.h new file mode 100644 index 000000000..4b8ea31e5 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/host_cfg.h @@ -0,0 +1,12 @@ +/*[ + host_cfg.h 1.2 08/10/92 + + (c)Copyright Insignia Solutions Ltd., 1992. All rights reserved. +]*/ + + + +#ifndef _HOST_CONFIG_H /* ensure we are only included once */ +#define _HOST_CONFIG_H + +#endif /* _HOST_CONFIG_H */ diff --git a/private/mvdm/softpc.new/base/inc/host_com.h b/private/mvdm/softpc.new/base/inc/host_com.h new file mode 100644 index 000000000..1454d4610 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/host_com.h @@ -0,0 +1,276 @@ +#ifndef _HOST_COM_H +#define _HOST_COM_H + +/*[ + Name: host_com.h + Derived From: Base 2.0 + Author: Ross Beresford + Created On: + Sccs ID: 12/13/94 @(#)host_com.h 1.10 + Purpose: + Definition of the interface between the generic communications + adapter emulation functions and the host specific functions. + THIS IS A BASE MODULE + + Users of the comms emulation functions must provide an + implementation of the following host specific functions: + +VOID host_com_reset(adapter) +int adapter; +{ + Initialise communications channel for "adapter" +} + +SHORT host_com_valid + (UTINY hostID, ConfigValues *val, NameTable *dummy, CHAR *errString) +{ + Routine to validate a comms entry, called by config system. +} + +VOID host_com_change(UTINY hostID, BOOL apply) +{ + Routine called by config to clean up after validation depending + on if apply is true or not. If not then the validation files + are to be closed, otherwise the active adapter is to be shutdown and + the validation data transfered. +} + +SHORT host_com_active(UTINY hostID, BOOL active, CHAR *errString) +{ + Connect the adapter to the outside world. Open or close + the adapter as appropiate. +} + +VOID host_com_close(adapter) +int adapter; +{ + Close communications channel for "adapter" +} + +VOID host_com_read(adapter, value, error_mask) +int adapter; +char *value; +int *error_mask; +{ + Read communications channel for "adapter", placing the result in the + character address pointed to by "value". Bits in "error_mask" may be + set to indicate that the character is invalid for the following + reason(s): + + HOST_COM_FRAMING_ERROR framing error + HOST_COM_OVERRUN_ERROR overrun error + HOST_COM_PARITY_ERROR parity error + HOST_COM_BREAK_RECEIVED break on input line + HOST_COM_NO_DATA value was not data +} + +VOID host_com_write(adapter, value) +int adapter; +char value; +{ + Write "value" to the communications channel for "adapter" +} + +VOID host_com_ioctl(adapter, request, arg) +int adapter; +int request; +long arg; +{ + Perform control function "request" qualified by "arg" on the + communications channel for "adapter". + + Request may take the following values: + + HOST_COM_SBRK :- Set break control for "adapter"; "arg" has no + significance + + HOST_COM_CBRK :- Clear break control for "adapter"; "arg" has no + significance + + HOST_COM_SDTR :- Set data terminal ready for "adapter"; "arg" has no + significance + + HOST_COM_CDTR :- Clear data terminal ready for "adapter"; "arg" has + no significance + + HOST_COM_SRTS :- Set request to send for "adapter"; "arg" has no + significance + + HOST_COM_CRTS :- Clear request to send for "adapter"; "arg" has no + significance + + HOST_COM_INPUT_READY :- Set the value pointed to by (int *) "arg" to + TRUE if there is input pending for "adapter" + + + HOST_COM_MODEM :- Set the value pointed to by (int *) "arg" to the + current modem status; the following bit fields are + significant and represent the state of the modem + input signals: + + HOST_COM_MODEM_CTS clear to send + HOST_COM_MODEM_RI ring indicator + HOST_COM_MODEM_DSR data set ready + HOST_COM_MODEM_RLSD received line signal detect + + HOST_COM_BAUD :- Change the baud rate to that corresponding to the + value of "arg"; the following values of "arg" are + significant: + + HOST_COM_B50 50 baud + HOST_COM_B75 75 baud + HOST_COM_B110 110 baud + HOST_COM_B134 134.5 baud + HOST_COM_B150 150 baud + HOST_COM_B300 300 baud + HOST_COM_B600 600 baud + HOST_COM_B1200 1200 baud + HOST_COM_B1800 1800 baud + HOST_COM_B2000 2000 baud + HOST_COM_B2400 2400 baud + HOST_COM_B3600 3600 baud + HOST_COM_B4800 4800 baud + HOST_COM_B7200 7200 baud + HOST_COM_B9600 9600 baud + HOST_COM_B19200 19200 baud + HOST_COM_B38400 38400 baud + HOST_COM_B57600 57600 baud + HOST_COM_B115200 115200 baud + + HOST_COM_FLUSH :- Flush output; "arg" has no significance + + HOST_COM_DATABITS :- Set the line discipline to use "arg" data bits. + + HOST_COM_STOPBITS :- Set the line discipline to use "arg" stop bits. + + HOST_COM_PARITY :- Set the line discipline to the parity setting + implied by "arg", which may take one of the + following values: + + HOST_COM_PARITY_NONE no parity + HOST_COM_PARITY_EVEN even parity + HOST_COM_PARITY_ODD odd parity + HOST_COM_PARITY_MARK parity stuck at 1 + HOST_COM_PARITY_SPACE parity stuck at 0 +} + +GLOBAL void host_com_enable_autoflush IFN1(IS32,adapter) +{ + Reset the autoflush disabled flag for the serial port. +} + +GLOBAL void host_com_disable_autoflush IFN1(IS32,adapter) +{ + Cancel any outstanding autoflush event for the serial port and set the + autoflush disabled flag for the serial port. +} + +#ifndef macintosh +GLOBAL void host_com_xon_change IFN2(IU8,hostID, IBOOL,apply) +{ + If the serial port is not active then do nothing. + If the serial port is active then change the flow control parameter of + the device. + If the serial port also has an asynchronous event manager defined then + change the mode of the event manager. +} +#endif macintosh + + (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved. +]*/ + +IMPORT VOID host_com_reset IPT1(int,adapter); + +IMPORT SHORT host_com_valid + IPT4(UTINY,hostID,ConfigValues *,val,NameTable *,dummy,CHAR *,errString); +IMPORT VOID host_com_change IPT2(UTINY,hostID, BOOL,apply); +IMPORT SHORT host_com_active IPT3(UTINY,hostID, BOOL,active, CHAR *,errString); +IMPORT VOID host_com_close IPT1(int,adapter); + +#if defined(NTVDM) && defined(FIFO_ON) +IMPORT UTINY host_com_read_char(int adapter, FIFORXDATA *buffer, UTINY count); +IMPORT VOID host_com_fifo_char_read(int adapter); +#endif + +IMPORT VOID host_com_read IPT3(int,adapter,UTINY *,value, int *,error_mask); +IMPORT VOID host_com_write IPT2(int,adapter, char,value); +IMPORT VOID host_com_ioctl IPT3(int,adapter, int,request, LONG,arg); + +#ifdef NTVDM +extern boolean host_com_check_adapter(int adapter); +extern void host_com_lock(int adapter); +extern void host_com_unlock(int adapter); +extern int host_com_char_read(int adapter, int da_int); +extern void host_com_disable_open(int adapter, int disableOpen); +extern void host_com_da_int_change(int adapter, int da_int_state, int da_data_state); +#define host_com_msr_callback(a,b) +#endif + +#ifdef PS_FLUSHING +IMPORT void host_com_enable_autoflush IPT1(IS32,adapter); +IMPORT void host_com_disable_autoflush IPT1(IS32,adapter); +#endif /* PS_FLUSHING */ + +#ifndef macintosh +IMPORT void host_com_xon_change IPT2(IU8,hostID, IBOOL,apply); +#endif /* macintosh */ + +#define HOST_COM_SBRK 0000001 +#define HOST_COM_CBRK 0000002 +#define HOST_COM_SDTR 0000003 +#define HOST_COM_CDTR 0000004 +#define HOST_COM_SRTS 0000005 +#define HOST_COM_CRTS 0000006 +#define HOST_COM_MODEM 0000007 +#define HOST_COM_BAUD 0000010 +#define HOST_COM_FLUSH 0000011 +#define HOST_COM_INPUT_READY 0000012 +#define HOST_COM_DATABITS 0000013 +#define HOST_COM_STOPBITS 0000014 +#define HOST_COM_PARITY 0000015 + +#ifdef NTVDM +#define HOST_COM_LSR 0000016 +#endif + +#define HOST_COM_FRAMING_ERROR (1 << 0) +#define HOST_COM_OVERRUN_ERROR (1 << 1) +#define HOST_COM_BREAK_RECEIVED (1 << 2) +#define HOST_COM_PARITY_ERROR (1 << 3) +#define HOST_COM_NO_DATA (1 << 4) +#ifdef NTVDM +#define HOST_COM_FIFO_ERROR (1 << 7) +#endif + +#define HOST_COM_MODEM_CTS (1 << 0) +#define HOST_COM_MODEM_RI (1 << 1) +#define HOST_COM_MODEM_DSR (1 << 2) +#define HOST_COM_MODEM_RLSD (1 << 3) + +#define HOST_COM_B50 0000001 +#define HOST_COM_B75 0000002 +#define HOST_COM_B110 0000003 +#define HOST_COM_B134 0000004 +#define HOST_COM_B150 0000005 +#define HOST_COM_B300 0000006 +#define HOST_COM_B600 0000007 +#define HOST_COM_B1200 0000010 +#define HOST_COM_B1800 0000011 +#define HOST_COM_B2000 0000012 +#define HOST_COM_B2400 0000013 +#define HOST_COM_B3600 0000014 +#define HOST_COM_B4800 0000015 +#define HOST_COM_B7200 0000016 +#define HOST_COM_B9600 0000017 +#define HOST_COM_B19200 0000020 +#define HOST_COM_B38400 0000021 +#define HOST_COM_B57600 0000022 +#define HOST_COM_B115200 0000023 + +#define HOST_COM_PARITY_NONE 0000000 +#define HOST_COM_PARITY_EVEN 0000001 +#define HOST_COM_PARITY_ODD 0000002 +#define HOST_COM_PARITY_MARK 0000003 +#define HOST_COM_PARITY_SPACE 0000004 + +#endif /* _HOST_COM_H */ diff --git a/private/mvdm/softpc.new/base/inc/host_fio.h b/private/mvdm/softpc.new/base/inc/host_fio.h new file mode 100644 index 000000000..5145c3136 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/host_fio.h @@ -0,0 +1,97 @@ +/*[ + * Name: host_fio.h + * Derived From: Original + * Author: Philippa Watson + * Created On: 7 February 1992 + * Sccs Id: @(#)host_fio.h 1.3 08/10/92 + * Purpose: Host-side definitions for standard file i/o. This + * version is placed in the base for hosts which support + * standard unix file i/o. + * Modified by Robert Kokuti 26/5/92, BCN 886 + * + * (c)Copyright Insignia Solutions Ltd., 1992. All rights reserved. + * +]*/ + +/* The HOST_FILE_DESC structure contains information to identify a file on disk +** For Unix, it corresponds to char *. +*/ + +#define HOST_FILE_DESC char * + +/* The HOST_FILE structure contains any file information which needs to be +** passed to the calls below. For Unix, it corresponds to the FILE structure. +*/ + +#define HOST_FILE FILE * + +/* host_fopen_for_read(HOST_FILE_DESC filename) opens the given file for reading and +** returns a HOST_FILE. If the returned value is zero then the open +** has failed, otherwise it has succeeded. +*/ + +#define host_fopen_for_read(filename) fopen(filename, "r") + +/* host_fopen_for_write(HOST_FILE_DESC filename) opens the given file for writing and +** returns a HOST_FILE. If the returned value is zero then the open +** has failed, otherwise it has succeeded. +*/ + +#define host_fopen_for_write(filename) fopen(filename, "w") + +/* host_fopen_for_write_plus(HOST_FILE_DESC filename) opens the given file for writing +** and reading and returns a HOST_FILE. If the returned value is zero +** then the open has failed, otherwise it has succeeded. +*/ + +#define host_fopen_for_write_plus(filename) fopen(filename, "w+") + +/* host_fcreate_disk_file(HOST_FILE_DESC filename) creates & opens the given file for writing +** and reading and returns a HOST_FILE. If the returned value is zero +** then the create & open has failed, otherwise it has succeeded. +*/ + +#define host_fcreate_disk_file(filename) fopen(filename, "w+") + +/* host_fclose(HOST_FILE file) closes the given file. This routine returns +** zero for success. Any other return value is failure. +*/ + +#define host_fclose(file) (fclose(file) != EOF) + +/* host_fseek_abs(HOST_FILE file, LONG location) seeks to the given absolute +** position in the file (i.e. relative to the start). It returns zero for +** success. Any other return value is a failure. +*/ + +#define host_fseek_abs(file, location) fseek(file, location, SEEK_SET) + +/* host_fwrite_buffer(unsigned char *buffer, int itemsize, int nitems, +** HOST_FILE file) writes nitems each of itemsize from the buffer to the +** file. It returns zero for success. Any other return value is a failure. +*/ + +#define host_fwrite_buffer(buffer, itemsize, nitems, file) \ + (fwrite(buffer, itemsize, nitems, file) != nitems) + +/* host_fread_buffer(unsigned char *buffer, int itemsize, int nitems, +** HOST_FILE file) reads nitems each of itemsize from the file into the +** buffer. It returns zero for success. Any other return value is a failure. +*/ + +#define host_fread_buffer(buffer, itemsize, nitems, file) \ + (fread(buffer, itemsize, nitems, file) != nitems) + +/* host_feof(HOST_FILE file) returns non-zero when end of file is read from +** the file. It returns zero otherwise. +*/ + +#define host_feof(file) feof(file) + +/* A useful define to avoid using lots of seek/write pairs. If the result is 0 +** then the seek and write were successful; otherwise one of them failed. +*/ + +#define host_fwrite_buffer_at(file, location, buffer, itemsize, nitems) \ + (host_fseek_abs(file, location) || \ + host_fwrite_buffer(buffer, itemsize, nitems, file)) diff --git a/private/mvdm/softpc.new/base/inc/host_gwi.h b/private/mvdm/softpc.new/base/inc/host_gwi.h new file mode 100644 index 000000000..96f4d64ad --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/host_gwi.h @@ -0,0 +1,13 @@ +/*[ + * Name: host_gwi.h + * + * Author: Simion Calcev + * + * Created On: 17th December 1991 + * + * Purpose: To undefine GWI defines for those hosts which don't + * want to support the GWI interface. + * + * (c)Copyright Insignia Solutions Ltd., 1991. All rights reserved. +]*/ + diff --git a/private/mvdm/softpc.new/base/inc/host_hun.h b/private/mvdm/softpc.new/base/inc/host_hun.h new file mode 100644 index 000000000..314d05049 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/host_hun.h @@ -0,0 +1,2 @@ +HOST_HUNT.H no Longer exists!!! - Renamed to be HOSTHUNT.h (conform to 8.3 naming +conventions. diff --git a/private/mvdm/softpc.new/base/inc/host_lpt.h b/private/mvdm/softpc.new/base/inc/host_lpt.h new file mode 100644 index 000000000..2b9127e1e --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/host_lpt.h @@ -0,0 +1,167 @@ +#ifdef PRINTER + +#ifndef _HOST_LPT_H +#define _HOST_LPT_H + +/*[ + Name: host_lpt.h + Derived From: Base 2.0 + Author: Ross Beresford + Created On: + Sccs ID: 11/14/94 @(#)host_lpt.h 1.8 + Purpose: + Definition of the interface between the generic printer + adapter emulation functions and the host specific functions. + THIS IS A BASE MODULE + + Users of the printer emulation functions must provide an + implementation of the following host specific functions. + In each of the calls, "adapter" is the index number for + the parallel port (ie 0 for LPT1: through to 2 for LPT3:) + +SHORT host_lpt_valid + (UTINY hostID, ConfigValues *val, NameTable *dummy, CHAR *errString) +{ + Routine to validate a comms entry, called by config system. +} + +VOID host_lpt_change(UTINY hostID, BOOL apply) +{ + Routine called by config to clean up after validation depending + on if apply is true or not. If not then the validation files + are to be closed, otherwise the active adapter is to be shutdown and + the validation data transfered. +} + +SHORT host_lpt_active(UTINY hostID, BOOL active, CHAR *errString) +{ + Connect the adapter to the outside world. Open or close + the adapter as appropiate. +} + +void host_lpt_close(adapter) +int adapter; +{ + Close connection to external printing device for the + parallel port +} + +unsigned long host_lpt_status(adapter) +int adapter; +{ + Return status of external printing device. The + following bits may be set in the return value; bits + marked FOR FUTURE USE are not yet used by the base + parallel port implementation. + + HOST_LPT_BUSY printer is busy - wait for this bit + to clear before sending further output + + HOST_LPT_PEND printer is out of paper + - FOR FUTURE USE + + HOST_LPT_SELECT printer is in the selected state + - FOR FUTURE USE + + HOST_LPT_ERROR printer is in an error state + - FOR FUTURE USE +} + +boolean host_print_byte(adapter, value) +int adapter; +half_word value; +{ + Output "value" to the external printing device +} + +void host_reset_print(adapter) +int adapter; +{ + + Hard reset the printer. This may involve... + Flush the output to the external printing + device +} + +boolean host_print_doc(adapter) +int adapter; +{ + Flush the output to the external printing device +} + +void host_print_auto_feed(adapter, auto_feed) +int adapter; +boolean auto_feed; +{ + If "auto_feed" is TRUE, then output an extra line + feed character for each carriage return output to + the external printing device. +} + +GLOBAL void host_lpt_enable_autoflush IFN1(IS32, adapter) +{ + Reset the autoflush disabled flag for the printer port. +} + +GLOBAL void host_lpt_disable_autoflush IFN1(IS32, adapter) +{ + Cancel any outstanding autoflush event for the printer port and set the + autoflush disabled flag for the printer port. +} + + (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved. + +Modifications: + + Change the name of host_print_doc() to host_reset_print(). + This reflects what is actually needed when it is called from printer.c. + If your port really wants to print a document when the reset + line becomes active, you can call your host_print_doc from + host_reset_print. + +]*/ + +IMPORT SHORT host_lpt_valid + IPT4(UTINY,hostID, ConfigValues *,val, NameTable *,dummy, CHAR *,errString); +IMPORT VOID host_lpt_change IPT2(UTINY,hostID, BOOL,apply); +IMPORT SHORT host_lpt_active + IPT3(UTINY,hostID, BOOL,active, CHAR *,errString); +IMPORT void host_lpt_close IPT1(int,adapter); +IMPORT unsigned long host_lpt_status IPT1(int,adapter); +IMPORT BOOL host_print_byte IPT2(int,adapter, byte, value); +IMPORT BOOL host_print_doc IPT1(int,adapter); +IMPORT void host_reset_print IPT1(int,adapter); +IMPORT void host_print_auto_feed IPT2(int,adapter, BOOL,auto_feed); + +#if defined(NTVDM) +IMPORT BOOLEAN host_set_lpt_direct_access(int adapter, BOOLEAN direct_access); +IMPORT UCHAR host_read_printer_status_port(int adapter); +#endif + +#ifdef PS_FLUSHING +IMPORT void host_lpt_enable_autoflush IPT1(IS32, adapter); +IMPORT void host_lpt_disable_autoflush IPT1(IS32, adapter); +#endif /* PS_FLUSHING */ + +#if defined (NTVDM) && defined(MONITOR) +IMPORT void host_printer_setup_table(sys_addr table_addr, word nPorts, word * lptStatusPortAddr); +#endif + +#define HOST_LPT_BUSY (1 << 0) +#define HOST_LPT_PEND (1 << 1) +#define HOST_LPT_SELECT (1 << 2) +#define HOST_LPT_ERROR (1 << 3) + +/* + * Printer port numbering convention. Internal numbering is 0 based, + * and number_for_adapter() converts to the PC world's convention. + */ +#define LPT1 0 +#define LPT2 1 +#define LPT3 2 + +#define number_for_adapter(adapter) (adapter + 1) + +#endif /* _HOST_LPT_H */ + +#endif /* PRINTER */ diff --git a/private/mvdm/softpc.new/base/inc/host_msw.h b/private/mvdm/softpc.new/base/inc/host_msw.h new file mode 100644 index 000000000..b03de3105 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/host_msw.h @@ -0,0 +1,659 @@ +/*[ + * Product: SoftPC-AT Revision 3.0 + * + * Name: host_msw.h + * + * Derived From: Alpha MS-Windows Driver by Ross Beresford + * + * Author: Rob Tizzard + * + * Created On: 1st November 1990 + * + * Sccs ID: @(#)host_msw.h 1.43 07/08/94 + * + * Purpose: All host dependent definitions for SoftPC MicroSoft + * Windows 3.0 driver. + * + * (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved. + * +]*/ + +#if defined(MSWDVR) && defined(XWINDOW) + +/* + * ----------------------------------------------------------------------------- + * X include files. + * ----------------------------------------------------------------------------- + */ + +#include +#include +#include +#include + +/* + * ----------------------------------------------------------------------------- + * GDIINFO data structure + * ----------------------------------------------------------------------------- + */ + +#define VERSION 0x0300 /* Windows version 3.0 */ +#define TECHNOLOGY DT_RASDISPLAY /* Raster Display */ +#define BITSPIXEL 4 /* Bits per pixel for display */ +#define PLANES 1 /* Number of planes for display */ +#define NUMCOLOURS 16 /* Number of static colours in display table */ +#define NUMFONTS 0 /* Number of driver fonts */ + +/* + * Basic dpLines value + */ +#ifdef SWIN_WIDE_LINES +#define LINES (LC_POLYLINE|LC_WIDE|LC_STYLED|LC_WIDESTYLED|LC_INTERIORS) +#else +#define LINES (LC_POLYLINE|LC_STYLED|LC_INTERIORS) +#endif + +#ifdef SWIN_GRAPHICS_PRIMS /* { */ +/* + * Basic dpCurves value + */ +#ifdef SWIN_WIDE_LINES +#define CURVES (CC_CIRCLES|CC_PIE|CC_CHORD|CC_ELLIPSES|CC_WIDE|CC_STYLED|CC_WIDESTYLED|CC_INTERIORS) +#else +#define CURVES (CC_CIRCLES|CC_PIE|CC_CHORD|CC_ELLIPSES|CC_STYLED|CC_INTERIORS) +#endif + +/* + * Basic dpPolygonals value + */ +#ifdef SWIN_WIDE_LINES +#define POLYGONALS (PC_ALTPOLYGON|PC_RECTANGLE|PC_WINDPOLYGON|PC_SCANLINE|PC_WIDE|PC_STYLED|PC_WIDESTYLED|PC_INTERIORS) +#else +#define POLYGONALS (PC_ALTPOLYGON|PC_RECTANGLE|PC_WINDPOLYGON|PC_SCANLINE|PC_STYLED|PC_INTERIORS) +#endif + +#else /* SWIN_GRAPHICS_PRIMS } { */ + +/* + * Basic dpCurves value + */ +#ifdef SWIN_WIDE_LINES +#define CURVES (CC_ELLIPSES|CC_WIDE|CC_STYLED|CC_WIDESTYLED|CC_INTERIORS) +#else +#define CURVES (CC_ELLIPSES|CC_STYLED|CC_INTERIORS) +#endif + +/* + * Basic dpPolygonals value + */ +#ifdef SWIN_WIDE_LINES +#define POLYGONALS (PC_RECTANGLE|PC_SCANLINE|PC_WIDE|PC_STYLED|PC_WIDESTYLED|PC_INTERIORS) +#else +#define POLYGONALS (PC_RECTANGLE|PC_SCANLINE|PC_STYLED|PC_INTERIORS) +#endif + +#endif /* SWIN_GRAPHICS_PRIMS } */ + +#ifdef SWIN_BOLD_TEXT_OPTS /* { */ +#define TEXTUAL (TC_CP_STROKE|TC_RA_ABLE|TC_EA_DOUBLE) +#else +#define TEXTUAL (TC_CP_STROKE|TC_RA_ABLE) +#endif /* SWIN_BOLD_TEXT_OPTS } */ + +#define CLIP CP_RECTANGLE /* Rectangle */ + +#ifdef SWIN_DEVBMP +#define RASTER (RC_BITBLT|RC_BITMAP64|RC_GDI20_OUTPUT|RC_SAVEBITMAP|RC_DI_BITMAP|RC_PALETTE|RC_DIBTODEV|RC_STRETCHBLT|RC_DEVBITS) +#else +#define RASTER (RC_BITBLT|RC_BITMAP64|RC_GDI20_OUTPUT|RC_SAVEBITMAP|RC_DI_BITMAP|RC_PALETTE|RC_DIBTODEV) +#endif /* SWIN_DEVBMP */ + +#define DCMANAGE DC_IGNOREDFNP /* Display */ +#define PALCOLOURS 0 /* Colours available in palette */ +#define PALCOLRESERVED 0 /* Reserved colours for brushes & pens */ +#define PALCOLOURRES 24 /* DAC RGB resolution */ + +/* X & Y dots per inch */ + +#define XDOTSPERINCH ((FLOAT) mswdvr.displayWidth / (FLOAT) mswdvr.displayWidthMM * 25.4) +#define YDOTSPERINCH ((FLOAT) mswdvr.displayHeight / (FLOAT) mswdvr.displayHeightMM * 25.4) + +/* + * ----------------------------------------------------------------------------- + * Image Data format + * ----------------------------------------------------------------------------- + */ + +#define FORMAT ZPixmap + +#define HOSTBYTEORDER MSBFirst +#define HOSTBITORDER MSBFirst + +#define MBYTEORDER MSBFirst +#define MBITORDER MSBFirst + +/* + * ----------------------------------------------------------------------------- + * Size of physical pen & brush data structures written to Intel memory + * ----------------------------------------------------------------------------- + */ + +#define PPEN_SIZE (sizeof(PEN_MAPPING)) +#define PBRUSH_SIZE (sizeof(BRUSH_MAPPING)) + +#ifdef SWIN_DEVBMP +/* + * ----------------------------------------------------------------------------- + * Size of device bitmap entry tables + * ----------------------------------------------------------------------------- + */ + +/* + * number of entries in table + */ +#define PPBITMAP_MAX 512 +/* + * number of bytes to pass back to Intel (GDI) to describe + * a device bitmap data structure (inc. PBITMAP structure) + */ +#define PPBITMAP_SIZE (32 + sizeof(word)) +#define BITMAP_FAILURE 0xffff /* indicates cannot realize device bitmap */ +#endif /* SWIN_DEVBMP */ + + +/* + * ----------------------------------------------------------------------------- + * Size of brush monochrome & colour tile data in bytes + * ----------------------------------------------------------------------------- + */ + +#define BRUSH_MONO_SIZE 8 +#define BRUSH_COLOUR_SIZE 64 + +/* + * ----------------------------------------------------------------------------- + * Number of scratch areas. + * ----------------------------------------------------------------------------- + */ + +#define MAX_SCRATCH_AREAS 2 + +/* + * ----------------------------------------------------------------------------- + * MS-Windows Driver Types + * ----------------------------------------------------------------------------- + */ + +/* Pixel, RGB & shift unit */ + +typedef double_word MSWPIXEL; +typedef double_word MSWCOLOUR; +typedef half_word SHIFTUNIT; + +/* type of host pixel values, never seen by Windows */ + +typedef unsigned long HOSTPIXEL; + +/* Colourmap & translate table data structure */ + +typedef struct { + HOSTPIXEL pixel; /* host pixel value */ + MSWCOLOUR rgb; /* RGB value */ +} MSWCOLOURMAP; + +#ifdef SWIN_GRAPHICS_PRIMS +/* + * PolyPoints data structure and used in general for windows points + * describing graphics operations + */ +typedef struct { + SHORT x; + SHORT y; +} WinPoint; + +#define MAXPOINTS 512 + +#endif /* SWIN_GRAPHICS_PRIMS */ + +/* Drawing Rectangle */ + +typedef XRectangle Rectangle; + +/* Window attributes */ + +typedef XWindowAttributes WindowAttributes; + +/* Structure used in mapping MSW bitmaps to X pixmaps */ + +typedef struct { + ULONG type; /* mapping type */ + BOOL translate; /* translate flag */ + Drawable mapping; /* mapped pixmap */ + LONG x; /* x origin of bitmap */ + LONG y; /* y origin of bitmap */ + word width; /* width of bitmap */ + word height; /* height of bitmap */ + word bytes_per_line; /* width in bytes */ + half_word planes; /* number of bitmap planes */ + half_word bitsPixel; /* bits per pixel */ + double_word bits; /* Segment and offset of bitmap */ + half_word *data; /* bitmap data address */ + word segmentIndex; /* index to next Huge bitmap segment */ + word scanSegment; /* scan lines per segment */ + word fillBytes; /* unused bytes within a segment */ + HOSTPIXEL foreground; /* pixel corresponding to 1 */ + HOSTPIXEL background; /* pixel corresponding to 0 */ + LONG active_x; /* active area origin x */ + LONG active_y; /* active area origin y */ + ULONG active_width; /* active area width */ + ULONG active_height; /* active area height */ + IU32 flags; /* creation flags */ +#ifdef SWIN_DEVBMP + BOOL deviceBitmap; /* flag to test whether device bitmap */ +#endif +} BITMAP_MAPPING; + +/* Structure used in mapping MSW brushes to X GCs */ + +#ifdef SWIN_MEMTOMEM_ROPS +typedef struct +{ + IU16 left; + IU16 top; + IU16 right; + IU16 bottom; +} Rect; +#endif /* SWIN_MEMTOMEM_ROPS */ + +/* + * The following structure is kept in GDI and must be kept AS SMALL AS POSSIBLE. + * This is the justification for use of the bit-fields (against Insignia + * coding standards) & why some of the fields appear in other than the + * obvious order - so that we can try to natural size align stuff (so that + * there are no padding bytes added by the compiler). Note that more fields + * could be moved into the pen/brush union but it doesn't end up saving + * space - and could actually make it worse. + * + * NOTE - the handle field must be first - code in X_mswobj.c assumes that + * it is the first item found in Intel memory & the pen/brush cache + * code also depends on it. + */ +typedef struct { + word handle; /* Unique brush identifier */ + word line_width; /* Pen line width */ + + unsigned int inuse:1; /* Is brush/pen in use */ + unsigned int tiled:1; /* Brush tiled flag */ + unsigned int width:4; /* Brush width */ + unsigned int height:4; /* Brush height */ + unsigned int monoPresent:1; /* Mono bitmap present ? */ + unsigned int colourPresent:1; /* Colour bitmap present ? */ + unsigned int objectGCHandle:4; /* Entry within GC Table */ + unsigned int penXbackground:1; /* pen background is X pixel! */ + +#ifdef SWIN_INVERTBRUSH_OPT + unsigned int invertedTile:1; /* brush tile is inverted */ +#endif /* SWIN_INVERTBRUSH_OPT */ + + int function; /* GC function */ + + union { + struct { /* BRUSHES only */ + unsigned int use_clip_mask:1; /* clip mask None or !None */ +#ifdef SWIN_MEMTOMEM_ROPS + unsigned int patPresent:1; /* pattern data present */ + unsigned int bmpBits:6; /* pattern from mono bitmap */ + unsigned int xRotation:4; /* x pattern rotation */ + unsigned int yRotation:4; /* y pattern rotation */ +#endif /* SWIN_MEMTOMEM_ROPS */ + } brush; + struct { /* PENS only */ + int line_style; /* GC line style */ + } pen; + } obj; + + MSWCOLOUR foreground; /* Foreground colour */ + MSWCOLOUR background; /* Backgound colour */ + + HOSTPIXEL fgPixel; /* Foreground pixel value */ + HOSTPIXEL bgPixel; /* Background pixel value */ + + half_word monoBitmap[BRUSH_MONO_SIZE]; /* Data for mono brush */ + half_word colourBitmap[BRUSH_COLOUR_SIZE];/* Data for colour brush */ + + GC gc; /* X GC to fill using brush */ + Pixmap mapping; /* Brush tile data mapping */ + Rectangle clip_area; /* Area used when clipping */ + +#ifdef SWIN_MEMTOMEM_ROPS + IU16 originX; /* Brush tile origin x coord */ + IU16 originY; /* Brush tile origin y coord */ + IS8 rop2; /* Tiling rop */ +#endif /* SWIN_MEMTOMEM_ROPS */ + + IU8 style; /* Brush style */ +} BRUSH_MAPPING; + +/* + * Define structure that holds the stuff that used to be in BRUSH_MAPPING but is + * taken out here to save space; this structure is cached in host memory and the + * non-BRUSH_MAPPING members are recalculated when required. + * + * NOTE - gdi field must be first in the structure that follows; the + * GET_BRUSH_PATTERN macro depends on it. + */ +typedef struct { + BRUSH_MAPPING gdi; /* copy of GDI bit of brush */ + XGCValues gcValues; /* X GC values for display */ + unsigned long valueMask; /* X GC value mask */ + IU8 patData[BRUSH_COLOUR_SIZE]; /* tiled brush pattern */ +} X_BRUSH_MAPPING; + +#ifdef SWIN_MEMTOMEM_ROPS +#define GET_BRUSH_PATTERN() (((X_BRUSH_MAPPING *)bp)->patData) +#endif /* SWIN_MEMTOMEM_ROPS */ + +/* + * Pens & brushes are all the same under X. + */ +#define PEN_MAPPING BRUSH_MAPPING +#define X_PEN_MAPPING X_BRUSH_MAPPING + +/* Main windows driver data structure */ + +typedef struct { + Display *display; /* X display */ + int screen; /* X screen */ + IS32 intel_version; /* version of Intel driver */ + Window parent; /* X Parent Window ID */ + Window window; /* X Output Window ID */ + Colormap colourmap; /* X colourmap */ + WindowAttributes windowAttr; /* X Output Window attributes */ + HOSTPIXEL *planeMasks; /* X pixel plane masks */ + HOSTPIXEL mergeMask; /* X merged pixel plane masks */ + HOSTPIXEL whitePixelValue; /* X White pixel values */ + HOSTPIXEL blackPixelValue; /* X Black pixel value */ + ULONG displayWidth; /* X Display width in pixels */ + ULONG displayHeight; /* X Display height in pixels */ + ULONG displayWidthMM; /* X Display width in MM */ + ULONG displayHeightMM; /* X Display height in MM */ + ULONG windowState; /* Windows driver state */ + half_word oldCrtModeByte; /* Saved CRT Mode Byte */ + BOOL crtModeByteSaved; /* CRT Mode Byte saved flag */ + BOOL sizeInitialised; /* Windows size initialised flag */ + BOOL envDefinedSize; /* Windows size defined flag */ + BOOL winPtr; /* Windows pointer active flag */ + BOOL cursorDisplayed; /* Cursor displayed flag */ + Cursor cursor; /* X ID of current cursor */ + int cursorCallbackActive; /* warp suppression */ + int cursorLastLocX; /* Last x position of cursor */ + int cursorLastLocY; /* Last y position of cursor */ + int cursorXLocX; /* x position of X pointer */ + int cursorXLocY; /* y position of X pointer */ + BOOL cursorXOutside; /* X pointer outside window */ + word version; /* Windows version */ + word nextSegment; /* Windows next segment increment */ + word flags; /* Windows flags */ + word deviceColourMatchSegment; /* Segment of Windows function DeviceColourMatch */ + word deviceColourMatchOffset; /* Offset of Windows function DeviceColourMatch */ + word bitsPixel; /* Windows bits per pixel */ + word numColours; /* Windows colours */ + word numPens; /* Windows pens */ + word palColours; /* Windows palette colours */ + word palColReserved; /* Windows reserved palette colours */ + word palColourRes; /* Windows palette colours */ + UTINY *colourToMono; /* Windows colour to mono conversion table */ + MSWPIXEL *colourTrans; /* Windows colour translation table */ + MSWPIXEL *invColourTrans; /* Windows inverse colour translation table */ + BOOL paletteModified; /* Windows palette modified flag */ + BOOL paletteEnabled; /* Windows palette enabled flag */ + BITMAP_MAPPING saveWindow; /* Windows background output Window */ + UTINY *scratchMemory; /* Windows driver global scratch area */ + ULONG scratchMemorySize; /* Windows driver global scratch area size */ + BOOL mode_change_exit; + + /* Store a tile pixmap and BRUSH_MAPPING structure for the brush improvement code */ + + PEN_MAPPING *ppen; + BRUSH_MAPPING *pbrush; + + X_PEN_MAPPING *pxpen; + X_BRUSH_MAPPING *pxbrush; + + Pixmap tile_mapping; + word tile_depth,tile_width,tile_height; + + /* Translation from host pixels to monochrome + * The HostToMono "function" enforces the 8-bit limit + */ + MSWPIXEL hostToMono[256]; +#ifdef SWIN_BACKING_STORE + IBOOL draw_direct; +#endif +} MSW_DATA; + +#define HostToMono(hostpixel) (mswdvr.hostToMono[(hostpixel)&0xff]) + +/* + * ----------------------------------------------------------------------------- + * Driver optimizations + * ----------------------------------------------------------------------------- + */ + +/* Enable Fast bitmap optimizations */ + +#define FASTBITMAP + +/* Enable Output flush optimizations */ + +#define FLUSHSCANLINES TRUE +#define FLUSHPOLYLINES TRUE +#define FLUSHRECTANGLES TRUE +#define FLUSHELLIPSES TRUE +#define FLUSHBITMAPS TRUE +#define FLUSHTEXT TRUE + +#endif /* MSWDVR_DEBUG */ + +/* + * ----------------------------------------------------------------------------- + * Host driver routines + * ----------------------------------------------------------------------------- + */ + +#if !(defined(MSWDVR_DEBUG) && defined(MSWDVR_MAIN)) + +/* For some reason, all of these function names are remapped with #defines. + * The MSWDVR_DEBUG mechanism further remaps them to point to the + * various debug routines instead, but this only happens in ms_windows.h + * + * To allow for fussy pre-processors, add a #define MSWDVR_MAIN which is + * used in ms_windows.c to disable this particular translation. + * + * The ideal solution would be to do away with this whole level of misdirection. + */ + +#define HostBitblt BltBitblt +#define HostColorInfo ColColorInfo +#define HostControl WinControl +#define HostDeviceBitmapBits DibDeviceBitmapBits +#define HostDisable WinDisable +#define HostEnable WinEnable +#define HostEventEnd PtrEventEnd +#define HostExtTextOut TxtExtTextOut +#define HostFastBorder BltFastBorder +#define HostSetDIBitsToDevice DibSetDIBitsToDevice +#define HostRealizeObject ObjRealizeObject +#define HostStrblt TxtStrblt +#define HostOutput OutOutput +#define HostPixel WinPixel +#define HostScanlr WinScanlr +#define HostSetCursor PtrSetCursor +#define HostSaveScreenBitmap SavSaveScreenBitmap +#define HostGetCharWidth TxtGetCharWidth +#define HostSetPalette ColSetPalette +#define HostGetPalette ColGetPalette +#define HostSetPalTrans ColSetPalTrans +#define HostGetPalTrans ColGetPalTrans +#define HostUpdateColors ColUpdateColors +#define HostPtrEnable PtrEnable +#define HostPtrDisable PtrDisable +#ifdef SWIN_DEVBMP +#define HostBitmapBits ObjBitmapBits +#define HostSelectBitmap ObjSelectBitmap +#endif /* SWIN_DEVBMP */ + + +#endif /* !(defined(MSWDVR_DEBUG) && defined(MSWDVR_MAIN)) */ + +/* The following don't get a debug wrapper - don't know why... */ + +#define HostLogo LgoLogo +#define HostFillGDIInfo WinFillGDIInfo +#define HostFillPDEVInfo WinFillPDEVInfo +#define HostMoveCursor PtrMoveCursor +#define HostCheckCursor PtrCheckCursor +#define HostStretchBlt BltStretchBlt + +/* + * ----------------------------------------------------------------------------- + * Debug Entry Points + * ----------------------------------------------------------------------------- + */ + +/* Functions */ + +#ifdef MSWDVR_DEBUG + +/* + * Low-level functions. + */ +extern VOID DReportColEnquire IPT2(MSWCOLOUR,colour,sys_addr,pcolour); +extern VOID DReportPixelEnquire IPT2(MSWPIXEL,pixel,MSWCOLOUR,rgb); +extern VOID DPrintBitmap IPT3(UTINY *,bitmap,ULONG,bytes_per_line,ULONG,height); +extern VOID DPrintMonoBitmap IPT4(UTINY *,bitmap,ULONG,bytes_per_line,ULONG,width,ULONG,height); +extern VOID DPrintImageDetails IPT1(XImage *,img); +extern VOID DPrintBitmapDetails IPT1(sys_addr,bm); +extern VOID DPrintDevBitmapDetails IPT1(sys_addr,bm); +extern VOID DPrintMessage IPT1(CHAR *,message); +extern VOID DPrintInteger IPT1(LONG,integer); +extern VOID DPrintColourmap IPT2(MSWCOLOURMAP *,colourmap,ULONG,colourmapSize); +extern VOID DPrintSrcDstRect IPT6(LONG,sx,LONG,sy,LONG,dx,LONG,dy,ULONG,xext,ULONG,yext); +extern VOID DPrintPBrush IPT1(sys_addr, lpBrush); +extern VOID DPrintPPen IPT1(sys_addr,PPen); +extern VOID DPrintDrawMode IPT2(sys_addr,DrawMode, BOOL, text); +extern VOID DPrintDevice IPT1(sys_addr,Device); +extern VOID DPrintlpPoints IPT2(sys_addr,lpPoints,word,Count); +extern VOID DPrintClipRect IPT1(sys_addr,lpClipRect); +extern VOID DPrintObject IPT3(word,style,sys_addr,lpInObj,sys_addr,lpOutObj); +extern VOID DPrintFontInfo IPT1(sys_addr,pfont); +extern VOID DPrintTextXForm IPT1(sys_addr,lpTextXForm); +extern VOID DPrintDIBHeader IPT2(sys_addr,lpDIBHeader,word,setOrget); +extern VOID DPrintTransTable IPT2(MSWPIXEL *,table,ULONG,tableSize); +extern VOID DDrawLogo IPT1(sys_addr,stkframe); + +/* + * High-level functions + */ +extern VOID DBitblt IPT11 ( sys_addr,lpDestDev, word,dstXOrg,word,dstYOrg, + sys_addr,lpSrcDev, word,srcXOrg,word,srcYOrg, + word,xext,word,yext,double_word,rop3, + sys_addr,lpPBrush,sys_addr,lpDrawMode); +extern VOID DColorInfo IPT3(sys_addr,lpDestDev,double_word,colorin,sys_addr,lpPColor); +extern VOID DControl IPT4(sys_addr,lpDestDev,word,wFunction,sys_addr,lpInData,sys_addr,lpOutData); +extern VOID DDisable IPT1(sys_addr,lpDestDev); +extern VOID DEnable IPT5(sys_addr,lpDestDev,word,wStyle,sys_addr,lpDestType,sys_addr, + lpOutputFile,sys_addr,lpData); +extern VOID DEnumDFonts IPT1(sys_addr,stkframe); +extern VOID DEnumObj IPT1(sys_addr,stkframe); +extern VOID DOutput IPT8(sys_addr,lpDestDev,word,lpStyle,word,Count,sys_addr,lpPoints, + sys_addr,lpPPen,sys_addr,lpPBrush,sys_addr,lpDrawMode,sys_addr,lpClipRect); +extern VOID DPixel IPT5(sys_addr,lpDestDev,word,x,word,y,double_word,PhysColor,sys_addr,lpDrawMode); +#ifdef SWIN_DEVBMP +extern VOID DBitmapBits IPT4(sys_addr,lpDevice,double_word,fFlags,double_word,dwCount,double_word,lpBits); +extern VOID DSelectBitmap IPT4(sys_addr,lpDevice,sys_addr,lpPrevBitmap,sys_addr,lpBitmap,double_word,fFlags); +#endif +extern VOID DRealizeObject IPT5(word,Style,sys_addr,lpInObj,sys_addr,lpOutObj,word,originX,word,originY); +extern VOID DStrblt IPT9(sys_addr,lpDestDev,word,DestxOrg,word,DestyOrg,sys_addr,lpClipRect, + sys_addr,lpString,word,Count,sys_addr,lpFont,sys_addr,lpDrawMode, sys_addr,lpTextXForm); +extern VOID DScanlr IPT5(sys_addr,lpDestDev,word,x,word,y,double_word,PhysColor,word,Style); +extern VOID DDeviceMode IPT1(sys_addr,stkframe); +extern VOID DInquire IPT1(sys_addr,stkframe); +extern VOID DSetCursor IPT1(sys_addr,lpCursorShape); +extern VOID DMoveCursor IPT1(sys_addr,stkframe); +extern VOID DCheckCursor IPT1(sys_addr,stkframe); +extern VOID DSaveScreenBitmap IPT5(word, command, word, x, word, y, word, xext, word, yext); +extern VOID DExtTextOut IPT12(sys_addr, dstdev, word, dx, word, dy, sys_addr, cliprect, sys_addr, + str, word, strlnth, sys_addr, pfont, sys_addr, drawmode, sys_addr, textxform, + sys_addr, txtcharwidths, sys_addr, opaquerect, word, options); +extern VOID DGetCharWidth IPT7(sys_addr,dstdev,sys_addr,buffer,word,first,word,last,sys_addr, + pfont,sys_addr,drawmode,sys_addr,textxform); +extern VOID DDeviceBitmap IPT1(sys_addr,stkframe); +extern VOID DDeviceBitmapBits IPT8(sys_addr,lpDestDev,word,setOrget,word,startScan,word, + numScans,sys_addr,lpDIBBits,sys_addr,lpDIBHeader,sys_addr, + lpDrawMode,sys_addr,lpColorInfo); +extern VOID DSetDIBitsToDevice IPT10(sys_addr, lpDestDev, word, screenXOrigin, word, + screenYOrigin, word, startScan, word, numScans, sys_addr, lpClipRect, + sys_addr, lpDrawMode, sys_addr, lpDIBBits, sys_addr, lpDIBHeader, + sys_addr, lpColorInfo); +extern VOID DFastBorder IPT11(sys_addr,lpDestDev,word,dx,word,dy,word,xext,word,yext, + word,hbt,word,vbt,double_word,rop3,sys_addr,pbrush, + sys_addr,drawmode,sys_addr,cliprect); +extern VOID DSetAttribute IPT1(sys_addr,stkframe); +extern VOID DSetPalette IPT3(word,wIndex,word,wCount,sys_addr,lpColorTable); +extern VOID DGetPalette IPT3(word,wIndex,word,wCount,sys_addr,lpColorTable); +extern VOID DSetPalTrans IPT1(sys_addr,lpTranslate); +extern VOID DGetPalTrans IPT1(sys_addr,lpTranslate); +extern VOID DUpdateColors IPT5(word,wStartX,word,wStartY,word,wExtX,word,wExtY,sys_addr,lpTranslate); +extern char * DGXopToString IPT1(int, gxop); +extern void DPrintLineStyle IPT1(int, style); +extern void DPrintBrushStyle IPT1(int, style); +extern void DPrintStyle IPT1(int, lpStyle); + +#else + +#define DPrintMonoBitmap(bitmap,bytes_per_line,width,height) +#define DReportColEnquire(p1,p2) +#define DReportPixelEnquire(p1,p2) +#define DPrintImageDetails(p1) +#define DPrintBitmapDetails(p1) +#define DPrintMessage(p1) +#define DPrintColourmap(p1,p2) +#define DPrintSrcDstRect(p1,p2,p3,p4,p5,p6) +#define DPrintGDIInfo +#define DPrintBitmap(p1,p2,p3) +#define DPrintPBrush(p1,p2) +#define DPrintPpen(p1) +#define DPrintDrawMode(p1,p2) +#define DPrintDevice(p1) +#define DPrintlpPoints(p1,p2) +#define DPrintClipRect(p1) +#define DPrintInteger(p1) +#define DPrintTransTable(p1,p2) +#define DGXopToString (p1) +#define DPrintLineStyle (p1) +#define DPrintBrushStyle (p1) +#define DPrintStyle (p1) + +#define DBitblt(p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11) +#define DColorInfo(p1,p2,p3) +#define DControl(p1,p2,p3,p4) +#define DDisable(p1) +#define DDeviceBitmapBits(p1,p2,p3,p4,p5,p6,p7,p8) +#define DEnable(p1,p2,p3,p4,p5) +#define DExtTextOut(p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12) +#define DFastBorder(p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11) +#define DGetPaletteEntries(p1,p2,p3) +#define DGetPaletteTranslate(p1,p2) +#define DOutput(p1,p2,p3,p4,p5,p6,p7,p8) +#define DPixel(p1,p2,p3,p4,p5) +#define DRealizeObject(p1,p2,p3,p4,p5) +#define DSaveScreenBitmap(p1,p2,p3,p4,p5) +#define DScanlr(p1,p2,p3,p4,p5) +#define DSetDIBitsToDevice(p1,p2,p3,p4,p5,p6,p7,p8,p9,p10) +#define DSetPaletteEntries(p1,p2,p3) +#define DSetPaletteTranslate(p1,p2) +#define DStrblt(p1,p2,p3,p4,p5,p6,p7,p8,p9) +#define DUpdateColors(p1,p2,p3,p4,p5) + +#endif diff --git a/private/mvdm/softpc.new/base/inc/host_nls.h b/private/mvdm/softpc.new/base/inc/host_nls.h new file mode 100644 index 000000000..9c07e78db --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/host_nls.h @@ -0,0 +1,94 @@ +/* + * Name: host_nls.h + * Derived From: HP 2.0 host_nls.h + * Author: Philippa Watson + * Created On: 23 January 1991 + * Sccs ID: @(#)host_nls.h 1.9 08/19/94 + * Purpose: Host side nls definitions. + * + * (c)Copyright Insignia Solutions Ltd., 1991. All rights reserved. + */ + +/* + * The following messages are the only ones that are not in the + * NLS message catalog. The first is used if SoftPC cannot open + * the message catalog. The second is used if a message is not found + * in the catalog. + */ +#define CAT_OPEN_MSG "Message file problem. Cannot find the native language support catalog\n" +#define CAT_ERROR_MSG "Message file problem. Cannot find the required error text in the native language support catalogs." +#define EMPTY "" + + +/* Offset for accessing config NLS strings - the config dynamically + fills the config definitions with entries retrieved from NLS + by accessing the message referenced by CONF_STR_OFFSET + hostID */ +#define CONF_STR_OFFSET 2001 + +/* NLS definitions used to indicate the type of situation */ +#define PNL_TITLE_GROUP 3001 +#define PNL_TITLE_WARNING 3001 +#define PNL_TITLE_ERROR 3002 +#define PNL_TITLE_CONF_PROB 3003 +#define PNL_TITLE_INST_PROB 3004 + +/* NLS definitions used in config to show what is not perfect */ +#define PNL_CONF_GROUP 3010 +#define PNL_CONF_PROB_FILE 3010 +#define PNL_CONF_VALUE_REQUIRED 3011 +#define PNL_CONF_CURRENT_VALUE 3012 +#define PNL_CONF_DEFAULT_VALUE 3013 +#define PNL_CONF_CHANGE_CURRENT 3014 +#define PNL_CONF_NEW_VALUE 3015 + +/* NLS definitions used to display the User interface buttons */ +#define PNL_BUTTONS_GROUP 3020 +#define PNL_BUTTONS_DEFAULT 3020 +#define PNL_BUTTONS_CONTINUE 3021 +#define PNL_BUTTONS_EDIT 3027 +#define PNL_BUTTONS_RESET 3022 +#define PNL_BUTTONS_QUIT 3023 +#define PNL_BUTTONS_ENTER 3024 +#define PNL_BUTTONS_OR 3025 +#define PNL_BUTTONS_COMMA 3026 + +/* NLS definitions used for reading the keyboard response to buttons on DT's */ +#define PNL_DT_KEYS_DEFAULT 3030 +#define PNL_DT_KEYS_CONTINUE 3031 +#define PNL_DT_KEYS_EDIT 3036 +#define PNL_DT_KEYS_RESET 3032 +#define PNL_DT_KEYS_QUIT 3033 +#define PNL_DT_KEYS_YES 3034 +#define PNL_DT_KEYS_NO 3035 +#define PNL_LIST_ON_MSG 3037 +#define PNL_LIST_OFF_MSG 3038 +#define PNL_LIST_COM_MSG 3039 +#define PNL_LIST_SLV_MSG 3040 +#define PNL_LIST_FPB_MSG 3041 +#define PNL_LIST_FPA_MSG 3042 +#define PNL_LIST_ED_MSG 3043 +#define PNL_LIST_PRK_MSG 3044 + +extern void host_nls_get_msg IPT3(int,msg_num, + CHAR *,msg_buff,int,buff_len); +#ifdef NTVDM +#define host_nls_get_msg_no_check host_nls_get_msg +#else +extern void host_nls_get_msg_no_check IPT3(int,msg_num, + CHAR *,msg_buff,int,buff_len); +extern int nls_init IPT0(); +#endif + +/* In order to stabilise the numbers used in the NLS catalogues, + * we now fix the C_* defines in config.h. The config_message + * array in X_nls.c therefore needs to hold both the string and + * and the official ID number. host_nls_scan_default is a utility + * function to replace the direct array lookups. + */ +typedef struct { + char *name; /* default string */ + IU8 hostID; /* config ID number, e.g. C_SWITCHNPX */ +} config_default; + +extern CHAR *host_nls_scan_default IPT2(int,msg_num, + config_default *,dflt); diff --git a/private/mvdm/softpc.new/base/inc/host_pth.h b/private/mvdm/softpc.new/base/inc/host_pth.h new file mode 100644 index 000000000..6d82a5a69 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/host_pth.h @@ -0,0 +1,44 @@ +/*[ + * Name: host_pth.h + * + * Deived from: (original) + * + * Author: John Cremer + * + * Created on: 11 Oct 93 + * + * Sccs ID: @(#)host_pth.h 1.1 10/13/93 + * + * Coding stds: 2.0 + * + * Purpose: Definitions and function declarations for host pathname + * editting routines. + * + * Copyright Insignia Solutions Ltd., 1993. All rights reserved. +]*/ + +typedef char HOST_PATH; /* host pathname string type */ + +extern HOST_PATH *HostPathAppendFileName IPT3( + HOST_PATH *,buf, /* buffer for resulting pathname */ + HOST_PATH *,dirPath, /* directory pathname */ + CHAR *,fileName /* file name to be appended */ +); + +extern HOST_PATH *HostPathAppendDirName IPT3( + HOST_PATH *,buf, /* buffer for resulting pathname */ + HOST_PATH *,dirPath, /* directory pathname */ + CHAR *,dirName /* directory name to be appended */ +); + +extern HOST_PATH *HostPathAppendPath IPT3( + HOST_PATH *,buf, /* buffer for resulting pathname */ + HOST_PATH *,dirPath, /* existing directory path */ + HOST_PATH *,path /* path to be appended */ +); + +extern HOST_PATH *HostPathMakeTempFilePath IPT3( + HOST_PATH *,buf, /* buffer for resulting pathname */ + HOST_PATH *,dirPath, /* directory path, or NULL */ + CHAR *,fileName /* file name, or NULL */ +); diff --git a/private/mvdm/softpc.new/base/inc/host_sas.h b/private/mvdm/softpc.new/base/inc/host_sas.h new file mode 100644 index 000000000..8cb7754f2 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/host_sas.h @@ -0,0 +1,201 @@ +/*[ + * Product: SoftPC-AT Revision 3.0 + * + * Name: host_sas.h + * + * Derived From: New + * + * Authors: A. Guthrie + * + * Created On: Wed Apr 24 18:33:01 BST 1991 + * + * Sccs ID: @(#)host_sas.h 1.18 08/10/92 + * + * Purpose: Defines the function pointer interface to host sas + * routines. + * + * (c)Copyright Insignia Solutions Ltd., 1991. All rights reserved. + * +]*/ +#if defined(BASE_SAS) && defined(HOST_SAS) + +#ifndef SAS_PREFIX +#define SAS_PREFIX() sas_ +#endif /* SAS_PREFIX */ + +#define IDENT(a) a +#define CAT(a,b) IDENT(a)b +#define sas_term CAT(SAS_PREFIX(),term) +#define sas_init CAT(SAS_PREFIX(),init) +#define sas_memory_size CAT(SAS_PREFIX(),memory_size) +#define sas_memory_type CAT(SAS_PREFIX(),memory_type) +#define sas_blockop CAT(SAS_PREFIX(),blockop) +#define sas_load CAT(SAS_PREFIX(),load) +#define sas_loadw CAT(SAS_PREFIX(),loadw) +#define sas_store CAT(SAS_PREFIX(),store) +#define sas_storew CAT(SAS_PREFIX(),storew) +#define sas_storedw CAT(SAS_PREFIX(),storedw) +#define sas_store_no_check CAT(SAS_PREFIX(),store_no_check) +#define sas_storew_no_check CAT(SAS_PREFIX(),storew_no_check) +#define sas_storedw_no_check CAT(SAS_PREFIX(),storedw_no_check) +#define sas_fills CAT(SAS_PREFIX(),fills) +#define sas_fillsw CAT(SAS_PREFIX(),fillsw) +#define sas_hw_at CAT(SAS_PREFIX(),hw_at) +#define sas_w_at CAT(SAS_PREFIX(),w_at) +#define sas_dw_at CAT(SAS_PREFIX(),dw_at) +#define sas_hw_at_no_check CAT(SAS_PREFIX(),hw_at_no_check) +#define sas_w_at_no_check CAT(SAS_PREFIX(),w_at_no_check) +#define sas_dw_at_no_check CAT(SAS_PREFIX(),dw_at_no_check) +#define sas_loads CAT(SAS_PREFIX(),loads) +#define sas_stores CAT(SAS_PREFIX(),stores) +#define sas_loads_no_check CAT(SAS_PREFIX(),loads_no_check) +#define sas_stores_no_check CAT(SAS_PREFIX(),stores_no_check) +#define sas_move_bytes_forward CAT(SAS_PREFIX(),move_bytes_forward) +#define sas_move_words_forward CAT(SAS_PREFIX(),move_words_forward) +#define sas_move_bytes_backward CAT(SAS_PREFIX(),move_bytes_backward) +#define sas_move_words_backward CAT(SAS_PREFIX(),move_words_backward) +#define sas_enable_20_bit_wrapping CAT(SAS_PREFIX(),enable_20_bit_wrapping) +#define sas_disable_20_bit_wrapping CAT(SAS_PREFIX(),disable_20_bit_wrapping) +#define sas_twenty_bit_wrapping_enabled CAT(SAS_PREFIX(),twenty_bit_wrapping_enabled) +#define sas_part_enable_20_bit_wrap CAT(SAS_PREFIX(),part_enable_20_bit_wrap) +#define sas_part_disable_20_bit_wrap CAT(SAS_PREFIX(),part_disable_20_bit_wrap) +#define sas_scratch_address CAT(SAS_PREFIX(),scratch_address) +#define sas_connect_memory CAT(SAS_PREFIX(),connect_memory) +#define sas_overwrite_memory CAT(SAS_PREFIX(),overwrite_memory) + +#endif /* BASE_SAS && HOST_SAS */ + +#ifndef BASE_SAS + +#ifdef HOST_SAS + +typedef struct +{ + VOID ( *do_sas_init ) (); + VOID ( *do_sas_term ) (); + sys_addr ( *do_sas_memory_size ) (); + half_word ( *do_sas_memory_type ) (); + VOID ( *do_sas_load ) (); + VOID ( *do_sas_loadw ) (); + VOID ( *do_sas_store ) (); + VOID ( *do_sas_storew ) (); + VOID ( *do_sas_storedw ) (); + VOID ( *do_sas_fills ) (); + VOID ( *do_sas_fillsw) (); + half_word ( *do_sas_hw_at ) (); + word ( *do_sas_w_at ) (); + double_word ( *do_sas_dw_at ) (); + VOID ( *do_sas_loads ) (); + VOID ( *do_sas_stores ) (); + VOID ( *do_sas_move_bytes_forward ) (); + VOID ( *do_sas_move_words_forward ) (); + VOID ( *do_sas_move_bytes_backward ) (); + VOID ( *do_sas_move_words_backward ) (); + host_addr ( *do_sas_get_byte_addr ) (); + host_addr ( *do_sas_inc_M_ptr ) (); + host_addr ( *do_sas_M_get_dw_ptr ) (); + VOID ( *do_sas_enable_20_bit_wrapping ) (); + VOID ( *do_sas_disable_20_bit_wrapping ) (); + host_addr ( *do_sas_scratch_address ) (); + VOID ( *do_sas_connect_memory ) (); + VOID ( *do_sas_store_no_check ) (); + VOID ( *do_sas_storew_no_check ) (); + VOID ( *do_sas_storedw_no_check ) (); + half_word ( *do_sas_hw_at_no_check ) (); + word ( *do_sas_w_at_no_check ) (); + half_word ( *do_sas_blockop ) (); + double_word ( *do_sas_dw_at_no_check ) (); + BOOL ( *do_sas_twenty_bit_wrapping_enabled ) (); + VOID ( *do_sas_part_enable_20_bit_wrap ) (); + VOID ( *do_sas_part_disable_20_bit_wrap ) (); + VOID ( *do_sas_loads_no_check ) (); + VOID ( *do_sas_stores_no_check ) (); + VOID ( *do_sas_overwrite_memory ) (); +} SAS_FUNCTIONS; + +IMPORT SAS_FUNCTIONS host_sas_funcs; + +#define sas_init( size ) \ + ( *host_sas_funcs.do_sas_init ) ( size ) +#define sas_term( ) \ + ( *host_sas_funcs.do_sas_term ) ( ) +#define sas_memory_size( ) \ + ( *host_sas_funcs.do_sas_memory_size ) ( ) +#define sas_memory_type( ) \ + ( *host_sas_funcs.do_sas_memory_type ) ( ) +#define sas_blockop( start, end, op ) \ + ( *host_sas_funcs.do_sas_blockop ) ( start, end, op ) +#define sas_load( addr, val ) \ + ( *host_sas_funcs.do_sas_load ) ( addr, val ) +#define sas_loadw( addr, val ) \ + ( *host_sas_funcs.do_sas_loadw ) ( addr, val ) +#define sas_store( addr, val ) \ + ( *host_sas_funcs.do_sas_store ) ( addr, val ) +#define sas_storew( addr, val ) \ + ( *host_sas_funcs.do_sas_storew ) ( addr, val ) +#define sas_storedw( addr, val ) \ + ( *host_sas_funcs.do_sas_storedw ) ( addr, val ) +#define sas_store_no_check( addr, val ) \ + ( *host_sas_funcs.do_sas_store_no_check ) ( addr, val ) +#define sas_storew_no_check( addr, val ) \ + ( *host_sas_funcs.do_sas_storew_no_check ) ( addr, val ) +#define sas_storedw_no_check( addr, val ) \ + ( *host_sas_funcs.do_sas_storedw_no_check ) ( addr, val ) +#define sas_fills( addr, val, len ) \ + ( *host_sas_funcs.do_sas_fills ) ( addr, val, len ) +#define sas_fillsw( addr, val, len ) \ + ( *host_sas_funcs.do_sas_fillsw ) ( addr, val, len ) +#define sas_hw_at( addr ) \ + ( *host_sas_funcs.do_sas_hw_at ) ( addr ) +#define sas_w_at( addr ) \ + ( *host_sas_funcs.do_sas_w_at ) ( addr ) +#define sas_dw_at( addr ) \ + ( *host_sas_funcs.do_sas_dw_at ) ( addr ) +#define sas_hw_at_no_check( addr ) \ + ( *host_sas_funcs.do_sas_hw_at_no_check ) ( addr ) +#define sas_w_at_no_check( addr ) \ + ( *host_sas_funcs.do_sas_w_at_no_check ) ( addr ) +#define sas_dw_at_no_check( addr ) \ + ( *host_sas_funcs.do_sas_dw_at_no_check ) ( addr ) +#define sas_loads( src, dest, len ) \ + ( *host_sas_funcs.do_sas_loads ) ( src, dest, len ) +#define sas_stores( dest, src, len ) \ + ( *host_sas_funcs.do_sas_stores ) ( dest, src, len ) +#define sas_move_bytes_forward( src, dest, len ) \ + ( *host_sas_funcs.do_sas_move_bytes_forward ) ( src, dest, len ) +#define sas_move_words_forward( src, dest, len ) \ + ( *host_sas_funcs.do_sas_move_words_forward ) ( src, dest, len ) +#define sas_move_bytes_backward( src, dest, len ) \ + ( *host_sas_funcs.do_sas_move_bytes_backward ) ( src, dest, len ) +#define sas_move_words_backward( src, dest, len ) \ + ( *host_sas_funcs.do_sas_move_words_backward ) ( src, dest, len ) +#define get_byte_addr( address ) \ + ( *host_sas_funcs.do_sas_get_byte_addr ) ( address ) +#define inc_M_ptr( buf, offset ) \ + ( *host_sas_funcs.do_sas_inc_M_ptr ) ( buf, offset ) +#define M_get_dw_ptr( offset ) \ + ( *host_sas_funcs.do_sas_M_get_dw_ptr ) ( offset ) +#define sas_enable_20_bit_wrapping() \ + ( *host_sas_funcs.do_sas_enable_20_bit_wrapping ) () +#define sas_disable_20_bit_wrapping() \ + ( *host_sas_funcs.do_sas_disable_20_bit_wrapping ) () +#define sas_part_enable_20_bit_wrap( flag, target, source) \ + ( *host_sas_funcs.do_sas_part_enable_20_bit_wrap ) ( flag, target, source) +#define sas_part_disable_20_bit_wrap( flag, target, source) \ + ( *host_sas_funcs.do_sas_part_disable_20_bit_wrap ) ( flag, target, source) +#define sas_twenty_bit_wrapping_enabled() \ + ( *host_sas_funcs.do_sas_twenty_bit_wrapping_enabled ) () +#define sas_scratch_address( length ) \ + ( *host_sas_funcs.do_sas_scratch_address ) ( length ) +#define sas_connect_memory( laddr, haddr, len ) \ + ( *host_sas_funcs.do_sas_connect_memory ) ( laddr, haddr, len ) +#define sas_loads_no_check( src, dest, len ) \ + ( *host_sas_funcs.do_sas_loads_no_check ) ( src, dest, len ) +#define sas_stores_no_check( dest, src, len ) \ + ( *host_sas_funcs.do_sas_stores_no_check ) ( dest, src, len ) +#define sas_overwrite_memory( dest, len ) \ + ( *host_sas_funcs.do_sas_overwrite_memory ) ( dest, len ) + +#endif /* HOST_SAS */ + +#endif /* BASE_SAS */ diff --git a/private/mvdm/softpc.new/base/inc/host_sig.h b/private/mvdm/softpc.new/base/inc/host_sig.h new file mode 100644 index 000000000..49b14fcf7 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/host_sig.h @@ -0,0 +1,20 @@ +/* + * File: host_sig.h + * + * Purpose: header file to provide typedefs and prototypes + * for use with the host signal functions. + * + * Author: John Shanly + * + * Date: July 2, 1992 + * + * SccsID @(#)host_sig.h 1.3 11/17/92 Copyright (1992 )Insignia Solutions Ltd + */ + +typedef void (*VOIDFUNC)(); + +#ifdef ANSI +GLOBAL void (*host_signal( int sig, VOIDFUNC handler )) (); +#else +GLOBAL void (*host_signal()) (); +#endif /* ANSI */ diff --git a/private/mvdm/softpc.new/base/inc/host_str.h b/private/mvdm/softpc.new/base/inc/host_str.h new file mode 100644 index 000000000..4f30c868f --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/host_str.h @@ -0,0 +1,24 @@ +/*[ + * Name: host_str.h + * + * Derived From: (original) + * + * Author: John Cremer + * + * Created On: Oct 93 + * + * Sccs ID: @(#)host_str.h 1.1 10/29/93 + * + * Coding Stds: 2.0 + * + * Purpose: Provide prototypes for additional string manipulation + * functions. + * + * Copyright Insignia Solutions Ltd., 1993. All rights reserved. +]*/ + + + +GLOBAL CHAR *HostStrdup IPT1( + CHAR *, s1 /* string to be duplicated */ +); diff --git a/private/mvdm/softpc.new/base/inc/host_uis.h b/private/mvdm/softpc.new/base/inc/host_uis.h new file mode 100644 index 000000000..b094294b1 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/host_uis.h @@ -0,0 +1,77 @@ +#ifndef _HOST_UIS_H +#define _HOST_UIS_H + +typedef enum +{ + PT_WARNING, + PT_ERROR, + PT_INFORM, + PT_QUESTION, + PT_WORKING, + PT_LAST +} PTInd; + +#define PM_WARNING pm_warning_image +#define PM_ERROR pm_error_image +#define PM_INFORM pm_inform_image +#define PM_QUESTION pm_question_image +#define PM_WORKING pm_working_image + +/* control button stuff */ +#define LEFT_RA_POSITION 25 /* 25 percent */ +#define CENTRE_LA_POSITION 37 /* 37 percent */ +#define CENTRE_RA_POSITION 62 /* 62 percent */ +#define RIGHT_LA_POSITION 75 /* 75 percent */ +#define NON_DEF_TOP_OFFSET 10 + +#ifdef HOST_HELP +/* + Control button positions for dialogs with four buttons - ie those + with OK, Reset, Cancel, and Help. +*/ +#define FIRST_RA_POSITION 23 /* percent */ +#define SECOND_LA_POSITION 27 +#define SECOND_RA_POSITION 48 +#define THIRD_LA_POSITION 52 +#define THIRD_RA_POSITION 73 +#define FOURTH_LA_POSITION 77 + +#endif /*HOST_HELP*/ + + +typedef struct +{ + XtAppContext context; + Widget toplevel; + Widget main_win; /* SoftPC main window */ + Widget pc_screen; /* SoftPC screen widget */ + BOOL ready; /* SoftPC uif Ready */ + LONG paneCount; + int decorNoSize, decorSize; + XmString panelTitles[PT_LAST]; +} UIS; + +IMPORT UIS uis; +IMPORT BOOL BatchMode; + +IMPORT LONG uis_event_loop IPT2(LONG *,loop, BOOL,wait_non_zero); +IMPORT XmString wordWrap IPT3(XmString,str,Dimension,width,XmFontList,fList); + +#ifdef HOST_HELP +IMPORT void callContextHelp IPT1(long, callContext) ; +IMPORT void callMainHelp IPT0() ; +IMPORT void callHelpOnHelp IPT0() ; +#endif + +IMPORT CHAR pm_warning_image[]; +IMPORT CHAR pm_error_image[]; +IMPORT CHAR pm_inform_image[]; +IMPORT CHAR pm_question_image[]; +IMPORT CHAR pm_working_image[]; + +IMPORT void MGInstallMwmCloseCallback(); + +IMPORT void UxPopupInterface(); +IMPORT void UxPopdownInterface(); + +#endif /* _HOST_UIS_H */ diff --git a/private/mvdm/softpc.new/base/inc/hosthunt.h b/private/mvdm/softpc.new/base/inc/hosthunt.h new file mode 100644 index 000000000..b9dd16787 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/hosthunt.h @@ -0,0 +1,39 @@ +/*[ + * Name: host_hunt.h + * Derived from: Original + * Author: Philippa Watson + * Created on: 27 June 1991 + * Sccs ID: @(#)hosthunt.h 1.5 09/27/93 + * Purpose: This file contains host-configurable items for Hunter. + * + * (c)Copyright Insignia Solutions Ltd., 1991. All rights reserved. + * +]*/ + +/* None of this file is needed for non-HUNTER builds. */ +#ifdef HUNTER + +/* +** Binary file access modes. +*/ + +#ifdef NTVDM +#define RB_MODE "rb" +#define WB_MODE "wb" +#define AB_MODE "ab" +#else +#define RB_MODE "r" +#define WB_MODE "w" +#define AB_MODE "a" +#endif + +/* + * Host to PC co-ordinate conversion, and vice-versa. + */ + +#define host_conv_x_to_PC(mode, x) x_host_to_PC(mode, x) +#define host_conv_y_to_PC(mode, y) y_host_to_PC(mode, y) +#define host_conv_PC_to_x(mode, x) x_PC_to_host(mode, x) +#define host_conv_PC_to_y(mode, y) y_PC_to_host(mode, y) + +#endif /* HUNTER */ diff --git a/private/mvdm/softpc.new/base/inc/hunter.h b/private/mvdm/softpc.new/base/inc/hunter.h new file mode 100644 index 000000000..1f977a24d --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/hunter.h @@ -0,0 +1,614 @@ +/* + * VPC-XT Revision 1.0 + * + * Title : Hunter -- the bug finder. + * + * Description : External definitions for the hunter globals and routines. + * + * Author : David Rees + * + * Notes : DAR r3.2 - retyped host_hunter_image_check to int to + * match changes in sun3_hunt.c, hunter.c + */ + +/* static char SccsID[]="@(#)hunter.h 1.10 09/01/92 Copyright Insignia Solutions Ltd."; */ + +/* This file has no effect unless HUNTER is defined. */ +#ifdef HUNTER + +/* + * ============================================================================ + * Structure/Data definitions + * ============================================================================ + */ + +/* +** Defines required by hunter base files +*/ + +/* EGA screen lengths (in scan lines) */ +#define CGA_SCANS 200 /* CGA graphics modes screen length */ +#define EGA_SCANS 350 /* EGA graphics mode screen length */ +#define VGA_SCANS 400 /* VGA modes screen length */ +#define VGA_GSCANS 480 /* VGA graphics modes screen length */ + +/* Macro to determine whether a given point is inside a no check box. The +** point is given in PC terms. +*/ +#define xy_inabox(x, y) (check_inside(x, y) >= 0) + +/* Report types */ +#define BRIEF 0 +#define ABBREV 1 +#define FULL 2 + +/* CGA screen dump sizes */ +#define HUNTER_REGEN_SIZE (16*1024) +#define HUNTER_BIOS_SIZE 0x90 +#define HUNTER_SD_SIZE (HUNTER_REGEN_SIZE + HUNTER_BIOS_SIZE) + +/* + * intel memory position defines for data stored in bios variables + * used relative to BIOS_VAR_START to get bd indexes + */ +#define VID_MODE 0x449 /* vd_video_mode */ +#define VID_COLS 0x44A /* vd_cols_on_screen */ +#define VID_LEN 0x44C /* vd_crt_len */ +#define VID_ADDR 0x44E /* vd_crt_start */ +#define VID_CURPOS 0x450 /* cursor table 8 pages */ +#define VID_CURMOD 0x460 /* vd_cursor_mode */ +#define VID_PAGE 0x462 /* vd_current_page */ +#define VID_INDEX 0x463 /* vd_addr_6845 */ +#define VID_THISMOD 0x465 /* vd_cursor_mode */ +#define VID_PALETTE 0x466 /* vd_crt_palette */ +#define VID_ROWS 0x484 /* vd_crt_rows - EGA only */ + +/* +** Screen dump mode bytes for EGA-type dumps. +*/ +#define EGA_SOURCE 0 /* Data gathered on EGA */ +#define VGA_SOURCE 1 /* Data gathered on VGA */ +#define V7VGA_SOURCE 2 /* Data gathered on Super7 VGA */ + +/* +** Structure for variables required by hunter base files +*/ +typedef struct +{ + word h_page_length; /* text bytes per page */ + half_word h_bd_page; /* Active page from bios dump */ + word h_sd_no; /* no of current screen */ + half_word spc_mode; /* Mode in current spc bios */ + half_word spc_page; /* Page in current spc bios */ + word spc_cols; /* Columns in current spc bios */ + half_word *h_regen; /* current regen */ + half_word *h_scrn_buffer; /* current screendump */ +#ifdef EGG + half_word *ega_r_planes; /* EGA current regen data */ + half_word *ega_s_planes; /* EGA current screen dump data */ + half_word e_sd_mode; /* Data pack mode */ + int h_line_compare; /* line compare from VGA reg */ + int h_max_scans; /* max scan lines from VGA reg */ + half_word h_bd_rows; /* Rows from bios dunp */ + half_word spc_rows; /* softPC bios rows */ +#endif /* EGG */ + word h_linecount; /* Line within script file */ + word h_scrn_length; /* text bytes per screen */ + half_word h_bd_mode; /* Mode from bios dump */ + half_word h_pixel_bits; /* bits per pixel increment */ + half_word h_report; + BOOL h_check_attr; /* Value of HUCHECK env. variable */ + word h_areas; /* No. of non-check areas on screen */ + BOOL h_txterr_prt; /* stop txt error printing */ + word h_gfxerr_max; /* Value of HUGFXERR env. variable */ + char h_filename_sd[MAXPATHLEN]; /* Ext filename, .sd */ + half_word h_bios_buffer[HUNTER_BIOS_SIZE];/* current bios dump */ + word h_bd_cols; /* Cols from bios dump */ + word h_bd_start; /* plane start address */ + half_word hc_mode; /* video mode of active display screen */ + half_word h_chk_mode; /* value of HUCHKMODE env var */ + BOOL h_gfxerr_prt; /* stop gfx error printing */ +} BASE_HUNT_VARS; + +IMPORT BASE_HUNT_VARS bh_vars; + +/* Macros for accessing the above base hunter variables. */ +#define hunter_page_length bh_vars.h_page_length +#define hunter_bd_page bh_vars.h_bd_page +#define hunter_sd_no bh_vars.h_sd_no +#define SPC_mode bh_vars.spc_mode +#define SPC_page bh_vars.spc_page +#define SPC_cols bh_vars.spc_cols +#define hunter_regen bh_vars.h_regen +#define hunter_scrn_buffer bh_vars.h_scrn_buffer +#ifdef EGG +#define ega_regen_planes bh_vars.ega_r_planes +#define ega_scrn_planes bh_vars.ega_s_planes +#define ega_sd_mode bh_vars.e_sd_mode +#define hunter_line_compare bh_vars.h_line_compare +#define hunter_max_scans bh_vars.h_max_scans +#define hunter_bd_rows bh_vars.h_bd_rows +#define SPC_rows bh_vars.spc_rows +#endif /* EGG */ +#define hunter_linecount bh_vars.h_linecount +#define hunter_scrn_length bh_vars.h_scrn_length +#define hunter_bd_mode bh_vars.h_bd_mode +#define hunter_pixel_bits bh_vars.h_pixel_bits +#define hunter_report bh_vars.h_report +#define hunter_check_attr bh_vars.h_check_attr +#define hunter_areas bh_vars.h_areas +#define hunter_txterr_prt bh_vars.h_txterr_prt +#define hunter_gfxerr_max bh_vars.h_gfxerr_max +#define hunter_filename_sd bh_vars.h_filename_sd +#define hunter_bios_buffer bh_vars.h_bios_buffer +#define hunter_bd_cols bh_vars.h_bd_cols +#define hunter_bd_start bh_vars.h_bd_start +#define current_mode bh_vars.hc_mode +#define hunter_chk_mode bh_vars.h_chk_mode +#define hunter_gfxerr_prt bh_vars.h_gfxerr_prt + +/* +** Functions required by base hunter stuff +*/ +#ifdef ANSI + +IMPORT SHORT check_inside(USHORT x, USHORT y); +IMPORT VOID save_error(int x, int y); +#ifndef hunter_fopen +IMPORT int hunter_getc(FILE *p); +#endif /* hunter_fopen */ + +#else /* ANSI */ + +IMPORT SHORT check_inside(); +IMPORT VOID save_error(); +#ifndef hunter_fopen +IMPORT int hunter_getc(); +#endif /* hunter_fopen */ + +#endif /* ANSI */ + +/*------------------------------------------------------------------------*/ + +#define HUNTER_TITLE "SoftPC -- TRAPPER " +#define HUNTER_TITLE_PREV "SoftPC -- TRAPPER PREVIEW " +#define HUNTER_FLIP_STR "Flip Screen" +#define HUNTER_DISP_STR "Display Errors" +#define HUNTER_CONT_STR "Continue" +#define HUNTER_NEXT_STR "Next" +#define HUNTER_PREV_STR "Previous" +#define HUNTER_ABORT_STR "Abort" +#define HUNTER_ALL_STR "All" +#define HUNTER_EXIT_STR "Exit error display" +#define HUNTER_AUTO_ON_STR "Select box carry On/Off" +#define HUNTER_AUTO_OFF_STR "Select box delete" +#define HUNTER_DELBOXES_STR "Delete all boxes" + +#define HUNTER_SETTLE_TIME 50 /* about 2.75 secs */ +#define HUNTER_SETTLE_NO 5 /* default # of settles before giveup */ +#define HUNTER_FUDGE_NO 0 /* default % increase for deltas */ +#define HUNTER_START_DELAY 50 /* default additional # of timetix before accepting 1st scancode (about 2.75 secs) */ +#define HUNTER_GFXERR_MAX 5 /* default no of grafix errors printed out */ +#define HUNTER_TXTERR_MAX 10 /* no of text errors o/p */ +#define HUNTER_FUDGE_NO_ULIM 65535 /* limit made as large as possible */ +#define HUNTER_START_DELAY_ULIM 65535 /* for config.c */ +#define HUNTER_GFXERR_ULIM 200 /* max no allowed in config.c */ +#define HUNTER_SETTLE_NO_ULIM 255 /* as large as possible */ +#define IMAGE_ERROR 0 +#define REGEN_ERROR 1 /* error type indicators for flipscr */ + +#define ABORT 0 +#define CONTINUE 1 +#define PAUSE 2 +#define PREVIEW 3 + +#define HUNTER_NEXT 1 +#define HUNTER_PREV 2 +#define HUNTER_ALL 3 +#define HUNTER_EXIT 4 + +#define MAX_BOX 8 + +#define VIDEO_MODES 7 /* No of std video modes */ +#define REQD_REGS 8 /* MC6845 r0 - r7 */ + +/* hunter checking equates */ +#define HUNTER_SHORT_CHK 0 +#define HUNTER_LONG_CHK 1 +#define HUNTER_MAX_CHK 2 + +/* declarations of environment variable variables */ + +extern half_word hunter_mode; /* ABORT, PAUSE or CONTINUE */ + +/* declarations of other globals */ + +extern boolean hunter_initialised; /* TRUE if hunter_init() done */ +extern boolean hunter_pause; /* TRUE if PAUSEd */ + +/* non_check region structure definition */ + +typedef struct box_rec { + boolean free; + boolean carry; + boolean drawn; + USHORT top_x, top_y; + USHORT bot_x, bot_y; + } BOX; + +/* video mode structure definition */ +typedef struct mode_rec { + char *mnemonic; + half_word mode_reg; + half_word R[REQD_REGS]; + } MR; + +/* +** Structure for all host functions called from Trapper base functions. +*/ + +typedef struct +{ +#ifdef ANSI + /* host initialisation */ + VOID (*init) (half_word hunter_mode); + + /* enable/disable menus according to flag */ + VOID (*activate_menus) (BOOL activate); + + /* for flip screen */ + VOID (*flip_indicate) (BOOL sd_file); + + /* for error display */ + VOID (*mark_error) (USHORT x, USHORT y); + VOID (*wipe_error) (USHORT x, USHORT y); + + /* for RCN menu */ + VOID (*draw_box) (BOX *box); + VOID (*wipe_box) (BOX *box); + + /* for host image checking - can only be done if data + ** can be read from the host screen + */ + ULONG (*check_image) (BOOL initial); + VOID (*display_image) (BOOL image_swapped); + VOID (*display_status) (CHAR *message); + +#else /* ANSI */ + + /* host initialisation */ + VOID (*init) (); + + /* enable/disable menus according to flag */ + VOID (*activate_menus) (); + + /* for flip screen */ + VOID (*flip_indicate) (); + + /* for error display */ + VOID (*mark_error) (); + VOID (*wipe_error) (); + + /* for RCN menu */ + VOID (*draw_box) (); + VOID (*wipe_box) (); + + /* for host image checking - can only be done if data + ** can be read from the host screen + */ + ULONG (*check_image) (); + VOID (*display_image) (); + VOID (*display_status) (); +#endif /* ANSI */ +} + HUNTER_HOST_FUNCS; + +IMPORT HUNTER_HOST_FUNCS hunter_host_funcs; + +/* +** Macros for calling all the host hunter functions +*/ + +#define hh_init(mode) (hunter_host_funcs.init) (mode) +#define hh_activate_menus(flag) (hunter_host_funcs.activate_menus) (flag) +#define hh_flip_indicate(sd) (hunter_host_funcs.flip_indicate) (sd) +#define hh_mark_error(x, y) (hunter_host_funcs.mark_error) (x, y) +#define hh_wipe_error(x, y) (hunter_host_funcs.wipe_error) (x, y) +#define hh_draw_box(box_ptr) (hunter_host_funcs.draw_box) (box_ptr) +#define hh_wipe_box(box_ptr) (hunter_host_funcs.wipe_box) (box_ptr) +#define hh_check_image(init) (hunter_host_funcs.check_image) (init) +#define hh_display_image(swap) (hunter_host_funcs.display_image) (swap) +#define hh_display_status(msg) (hunter_host_funcs.display_status) (msg) + +/* +** Structure for all base Trapper functions which may be called from the +** host. +*/ + +typedef struct +{ +#ifdef ANSI + /* Functions called by Trapper menu */ + VOID (*start_screen) (USHORT screen_no); /* Fast forward */ + VOID (*next_screen) (VOID); + VOID (*prev_screen) (VOID); + VOID (*show_screen) (USHORT screen_no, BOOL compare); + VOID (*continue_trap) (VOID); + VOID (*abort_trap) (VOID); + + /* Functions called by Errors menu */ + VOID (*flip_screen) (VOID); + VOID (*next_error) (VOID); + VOID (*prev_error) (VOID); + VOID (*all_errors) (VOID); + VOID (*wipe_errors) (VOID); + + /* Functions called by RCN menu */ + VOID (*delete_box) (VOID); + VOID (*carry_box) (VOID); + + /* Functions called from mouse event handling */ + VOID (*select_box) (USHORT x, USHORT y); + VOID (*new_box) (BOX *box); + +#else /* ANSI */ + + /* Functions called by Trapper menu */ + VOID (*start_screen) (); /* Fast forward */ + VOID (*next_screen) (); + VOID (*prev_screen) (); + VOID (*show_screen) (); + VOID (*continue_trap) (); + VOID (*abort_trap) (); + + /* Functions called by Errors menu */ + VOID (*flip_screen) (); + VOID (*next_error) (); + VOID (*prev_error) (); + VOID (*all_errors) (); + VOID (*wipe_errors) (); + + /* Functions called by RCN menu */ + VOID (*delete_box) (); + VOID (*carry_box) (); + + /* Functions called from mouse event handling */ + VOID (*select_box) (); + VOID (*new_box) (); +#endif /* ANSI */ +} + HUNTER_BASE_FUNCS; + +IMPORT HUNTER_BASE_FUNCS hunter_base_funcs; + +/* +** Macros to access the base functions defined above. +*/ + +#define bh_start_screen(scr_no) (hunter_base_funcs.start_screen) (scr_no) +#define bh_next_screen() (hunter_base_funcs.next_screen) () +#define bh_prev_screen() (hunter_base_funcs.prev_screen) () +#define bh_show_screen(scr_no, compare) \ + (hunter_base_funcs.show_screen) (scr_no, compare) +#define bh_continue() (hunter_base_funcs.continue_trap) () +#define bh_abort() (hunter_base_funcs.abort_trap) () +#define bh_flip_screen() (hunter_base_funcs.flip_screen) () +#define bh_next_error() (hunter_base_funcs.next_error) () +#define bh_prev_error() (hunter_base_funcs.prev_error) () +#define bh_all_errors() (hunter_base_funcs.all_errors) () +#define bh_wipe_errors() (hunter_base_funcs.wipe_errors) () +#define bh_delete_box() (hunter_base_funcs.delete_box) () +#define bh_carry_box() (hunter_base_funcs.carry_box) () +#define bh_select_box(x, y) (hunter_base_funcs.select_box) (x, y) +#define bh_new_box(box_ptr) (hunter_base_funcs.new_box) (box_ptr) + +/* +** Structure for the display adapter specific functions. +*/ + +typedef struct +{ +#ifdef ANSI + BOOL (*get_sd_rec) (int rec); /* Unpack a screen dump */ + BOOL (*init_compare) (VOID); /* Prepare for comparison */ + long (*compare) (int pending); /* Do a comparison */ + VOID (*bios_check) (VOID); /* Check the bios area */ + VOID (*pack_screen)(FILE *dmp_ptr); /* Pack the SoftPC screen */ + BOOL (*getspc_dump)(FILE *dmp_ptr, int rec); /* Unpk SoftPC screen */ + VOID (*flip_regen) (BOOL swapped); /* Swap dumped and real scrs */ + VOID (*preview_planes) (VOID); /* View the dump data in preview mode */ + +#ifdef EGG + VOID (*check_split) (VOID); /* Check for split screen */ + VOID (*set_line_compare) (int value); /* Set line compare register */ + int (*get_line_compare) (VOID); /* Get line compare reg value */ + int (*get_max_scan_lines) (VOID); /* Get max scan lines value */ +#endif /* EGG */ + +#else /* ANSI */ + + BOOL (*get_sd_rec) (); /* Unpack a screen dump */ + BOOL (*init_compare) (); /* Prepare for comparison */ + long (*compare) (); /* Do a comparison */ + VOID (*bios_check) (); /* Check the bios area */ + VOID (*pack_screen)(); /* Pack the SoftPC screen */ + BOOL (*getspc_dump)(); /* Unpk SoftPC screen */ + VOID (*flip_regen) (); /* Swap the dumped and real screen */ + VOID (*preview_planes) (); /* View the dump data in preview mode */ + +#ifdef EGG + VOID (*check_split) (); /* Check for split screen */ + VOID (*set_line_compare) (); /* Set line compare register */ + int (*get_line_compare) (); /* Get line compare reg value */ + int (*get_max_scan_lines) (); /* Get max scan lines value */ +#endif /* EGG */ + +#endif /* ANSI */ +} + HUNTER_VIDEO_FUNCS; + +IMPORT HUNTER_VIDEO_FUNCS *hv_funcs; + +/* +** Macros to access the hunter video functions +*/ +#define hv_get_sd_rec(rec) (hv_funcs->get_sd_rec)(rec) +#define hv_init_compare() (hv_funcs->init_compare)() +#define hv_compare(pending) (hv_funcs->compare)(pending) +#define hv_bios_check() (hv_funcs->bios_check)() +#define hv_pack_screen(file_ptr) (hv_funcs->pack_screen)(file_ptr) +#define hv_getspc_dump(file_ptr, rec) (hv_funcs->getspc_dump)(file_ptr, rec) +#define hv_flip_regen(swapped) (hv_funcs->flip_regen)(swapped) +#define hv_preview_planes() (hv_funcs->preview_planes)() + +#ifdef EGG +#define hv_check_split() (hv_funcs->check_split)() +#define hv_set_line_compare(value) (hv_funcs->set_line_compare)(value) +#define hv_get_line_compare() (hv_funcs->get_line_compare)() +#define hv_get_max_scan_lines() (hv_funcs->get_max_scan_lines)() +#endif /* EGG */ + +/* Macros for printfs. TTn for information; TEn for errors; TWn for warnings. +** Note - these macros have been designed to "swallow the semicolon" and +** evaluate as a single expression so it's quite ok to write the following +** code: +** if (something) +** TT0("dfhjjgjf"); +** else +** TE0("gfdg"); +*/ + +#define PS0(s) fprintf(trace_file, s) +#define PS1(s, a1) fprintf(trace_file, s, a1) +#define PS2(s, a1, a2) fprintf(trace_file, s, a1, a2) +#define PS3(s, a1, a2, a3) fprintf(trace_file, s, a1, a2, a3) +#define PS4(s, a1, a2, a3, a4) fprintf(trace_file, s, a1, a2, a3, a4) +#define PS5(s, a1, a2, a3, a4, a5) \ + fprintf(trace_file, s, a1, a2, a3, a4, a5) +#define PS6(s, a1, a2, a3, a4, a5, a6) \ + fprintf(trace_file, s, a1, a2, a3, a4, a5, a6) +#define PS7(s, a1, a2, a3, a4, a5, a6, a7) \ + fprintf(trace_file, \ + s, a1, a2, a3, a4, a5, a6, a7) +#define PS8(s, a1, a2, a3, a4, a5, a6, a7, a8) \ + fprintf(trace_file, \ + s, a1, a2, a3, a4, a5, a6, a7, a8) +#ifndef newline +#define newline PS0("\n") +#endif /* newline */ + +#define TP0(is, s) (VOID)( \ + PS0(is), \ + PS0(s), \ + newline \ + ) +#define TP1(is, s, a1) (VOID)( \ + PS0(is), \ + PS1(s, a1), \ + newline \ + ) +#define TP2(is, s, a1, a2) (VOID)( \ + PS0(is), \ + PS2(s, a1, a2), \ + newline \ + ) +#define TP3(is, s, a1, a2, a3) (VOID)( \ + PS0(is), \ + PS3(s, a1, a2, a3), \ + newline \ + ) +#define TP4(is, s, a1, a2, a3, a4) \ + (VOID)( \ + PS0(is), \ + PS4(s, a1, a2, a3, a4), \ + newline \ + ) +#define TP5(is, s, a1, a2, a3, a4, a5) \ + (VOID)( \ + PS0(is), \ + PS5(s, a1, a2, a3, a4, a5), \ + newline \ + ) +#define TP6(is, s, a1, a2, a3, a4, a5, a6) \ + (VOID)( \ + PS0(is), \ + PS6(s, a1, a2, a3, a4, a5, a6), \ + newline \ + ) +#define TP7(is, s, a1, a2, a3, a4, a5, a6, a7) \ + (VOID)( \ + PS0(is), \ + PS7(s, a1, a2, a3, a4, a5, a6, a7), \ + newline \ + ) +#define TP8(is, s, a1, a2, a3, a4, a5, a6, a7, a8) \ + (VOID)( \ + PS0(is), \ + PS8(s, a1, a2, a3, a4, a5, a6, a7, a8), \ + newline \ + ) + +#define TT0(s) TP0("TRAPPER: ", s) +#define TT1(s, a1) TP1("TRAPPER: ", s, a1) +#define TT2(s, a1, a2) TP2("TRAPPER: ", s, a1, a2) +#define TT3(s, a1, a2, a3) TP3("TRAPPER: ", s, a1, a2, a3) +#define TT4(s, a1, a2, a3, a4) TP4("TRAPPER: ", s, a1, a2, a3, a4) +#define TT5(s, a1, a2, a3, a4, a5) \ + TP5("TRAPPER: ", s, a1, a2, a3, a4, a5) +#define TT6(s, a1, a2, a3, a4, a5, a6) \ + TP6("TRAPPER: ", s, a1, a2, a3, a4, a5, a6) +#define TT7(s, a1, a2, a3, a4, a5, a6, a7) \ + TP7("TRAPPER: ", s, a1, a2, a3, a4, a5, a6, a7) +#define TT8(s, a1, a2, a3, a4, a5, a6, a7, a8) \ + TP8("TRAPPER: ", \ + s, a1, a2, a3, a4, a5, a6, a7, a8) + +#define TE0(s) TP0("TRAPPER error: ", s) +#define TE1(s, a1) TP1("TRAPPER error: ", s, a1) +#define TE2(s, a1, a2) TP2("TRAPPER error: ", s, a1, a2) +#define TE3(s, a1, a2, a3) TP3("TRAPPER error: ", s, a1, a2, a3) +#define TE4(s, a1, a2, a3, a4) TP4("TRAPPER error: ", s, a1, a2, a3, a4) +#define TE5(s, a1, a2, a3, a4, a5) \ + TP5("TRAPPER error: ", s, a1, a2, a3, a4, a5) +#define TE6(s, a1, a2, a3, a4, a5, a6) \ + TP6("TRAPPER error: ", s, a1, a2, a3, a4, a5, a6) +#define TE7(s, a1, a2, a3, a4, a5, a6, a7) \ + TP7("TRAPPER error: ", \ + s, a1, a2, a3, a4, a5, a6, a7) +#define TE8(s, a1, a2, a3, a4, a5, a6, a7, a8) \ + TP8("TRAPPER error: ", \ + s, a1, a2, a3, a4, a5, a6, a7, a8) + +#define TW0(s) TP0("TRAPPER warning: ", s) +#define TW1(s, a1) TP1("TRAPPER warning: ", s, a1) +#define TW2(s, a1, a2) TP2("TRAPPER warning: ", s, a1, a2) +#define TW3(s, a1, a2, a3) TP3("TRAPPER warning: ", s, a1, a2, a3) +#define TW4(s, a1, a2, a3, a4) TP4("TRAPPER warning: ", s, a1, a2, a3, a4) +#define TW5(s, a1, a2, a3, a4, a5) \ + TP5("TRAPPER warning: ", s, a1, a2, a3, a4, a5) +#define TW6(s, a1, a2, a3, a4, a5, a6) \ + TP6("TRAPPER warning: ", \ + s, a1, a2, a3, a4, a5, a6) +#define TW7(s, a1, a2, a3, a4, a5, a6, a7) \ + TP7("TRAPPER warning: ", \ + s, a1, a2, a3, a4, a5, a6, a7) +#define TW8(s, a1, a2, a3, a4, a5, a6, a7, a8) \ + TP8("TRAPPER warning: ", \ + s, a1, a2, a3, a4, a5, a6, a7, a8) +/* + * ============================================================================ + * Function definitions + * ============================================================================ + */ + +/* function in keybd_io, only called by hunter */ +extern int bios_buffer_size(); + +/* function in keyba, only called by hunter */ +extern int buffer_status_8042(); + +/* functions in hunter called from reset, timer */ +extern void hunter_init(); +extern void do_hunter(); + +#endif /* HUNTER */ diff --git a/private/mvdm/softpc.new/base/inc/hwvga.h b/private/mvdm/softpc.new/base/inc/hwvga.h new file mode 100644 index 000000000..c9d4a8364 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/hwvga.h @@ -0,0 +1,97 @@ +/*[ + * + * File : hwvga.h + * + * Derived from: (original) + * + * Purpose : interface definition for hardware vga routines + * + * Author : Rog + * Date : 23 Feb 1993 + * + * SCCS Garbage : @(#)hwvga.h 1.5 11/22/93 + * + * (c) Copyright Insignia Solutions Ltd., 1992 All rights reserved + * + * Modifications : + * Prototypes that don't depend on types + * defined in HostHwVgaH should go in gispsvga.h + * not here. This file does contain some + * prototypes from before this split was made. + * +]*/ + + +#ifdef GISP_SVGA +#ifndef _HWVGA_H_ +#define _HWVGA_H_ + +/* Video Mode types*/ + +#define ALPHA 0x00 +#define GRAPH 0x01 +#define UNIMP 0x03 +#define NA 0x04 + +/* Plane storage types */ +#define ALPHA_INTERLEAVED 0x0001 /* Mode3 et ak is ca00ca00ca00 etc */ +#define GRAPH_PACKED 0x0100 /* Vid modes are packed */ +/* Data */ + +typedef struct +{ + IS8 modeType; /* Current Video Mode Type */ + IS8 numPlanes; /* number of planes in use */ + BOOL runningFullScreen; /* Are we fs at the moment */ + BOOL fullScreenAvail; /* Can we go Full Screen */ + BOOL forcedFullScreen; /* Are we full screen coz we want it */ + VGAState * pSavedVGAState; /* Any saved VGA State */ + BOOL savedStateValid; + struct { + IU32 offset; + IU32 segment; + } hostSavePtr; + IU8 dccIndex; + IU32 planeStorage; /* Storage methods in planes */ +} +vInfo; + +extern vInfo videoInfo; + + +/* Prototypes */ + +BOOL videoModeIs IPT2( IU8 , videoMode , IU8 , videoType ); +BOOL hostIsFullScreen IPT0( ); +BOOL hostEasyMode IPT0( ); +void hostFindPlaneStorage IPT0( ); +void hostRepaintDecoration IPT0( ); +void enableFullScreenVideo IPT0( ); +void disableFullScreenVideo IPT1( BOOL , syncEmulation ); +void syncEmulationToHardware IPT1( pVGAState , currentVGAState ); +void readEmulationState IPT1( pVGAState , currentVGAState ); +void initHWVGA IPT0( ); +void getHostFontPointers IPT0( ); +void setupHwVGAGlobals IPT0( ); +void loadFontToVGA IPT5( sys_addr , table , int , count , int , charOff , int , fontNum , int , nBytes ); +void loadFontToEmulation IPT5( sys_addr , table , int , count , int , charOff , int , fontNum , int , nBytes ); +void hostFreeze IPT0(); +void hostUnfreeze IPT0(); +void mapHostROMs IPT0( ); + +#ifndef hostStartFullScreen +void hostStartFullScreen IPT0(); +#endif /* hostStartFullScreen */ + +#ifndef hostStopFullScreen +void hostStopFullScreen IPT0(); +#endif /* hostStopFullScreen */ + +#ifdef HUNTER +void hunterGetFullScreenInfo IPT0(); +#endif /* HUNTER */ + +extern BOOL NeedGISPROMInit; + +#endif /* _HWVGA_H_ */ +#endif /* GISP_SVGA */ diff --git a/private/mvdm/softpc.new/base/inc/ica.h b/private/mvdm/softpc.new/base/inc/ica.h new file mode 100644 index 000000000..75c606b13 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/ica.h @@ -0,0 +1,255 @@ +/* + * SoftPC Version 2.0 + * + * Title : Interrupt Controller Adapter definitions + * + * Description : Include file for users of the ICA + * + * Author : Jim Hatfield / David Rees + * + * Notes : Rewritten from an original by Henry Nash + */ + +/* SccsID[]="@(#)ica.h 1.25 10/19/95 Copyright Insignia Solutions Ltd."; */ + + +/* + * ============================================================================ + * External declarations and macros + * ============================================================================ + */ + +#define ICA_MASTER 0 +#define ICA_SLAVE 1 + +#define EGA_VTRACE_INT 2 +#define AT_EGA_VTRACE_INT 1 +#define AT_EGA_VTRACE_ADAPTER 1 + +/* + * Allow the host to override the default values if its wants to + */ +#ifndef HOST_CPU_MOUSE_INT +#define HOST_AT_CPU_MOUSE_INT 1 +#define HOST_AT_CPU_MOUSE_ADAPTER 1 +#define HOST_AT_MOUSE_INT_VEC 0x0a +#define HOST_CPU_MOUSE_INT 2 +#endif /* HOST_CPU_MOUSE_INT */ +/* + * CPU hardware interrupt definitions + */ +/* For the XT */ +#define CPU_TIMER_INT 0 +#define CPU_KB_INT 1 +#define CPU_MOUSE_INT HOST_CPU_MOUSE_INT +#define AT_CPU_MOUSE_INT HOST_AT_CPU_MOUSE_INT +#define AT_CPU_MOUSE_ADAPTER HOST_AT_CPU_MOUSE_ADAPTER +#define MOUSE_VEC HOST_AT_MOUSE_INT_VEC +#define CPU_RS232_SEC_INT 3 +#define CPU_RS232_PRI_INT 4 +#define CPU_DISK_INT 5 +#define CPU_DISKETTE_INT 6 +#define CPU_PRINTER_INT 7 + +/* Different lines for the AT */ +#define CPU_PRINTER2_INT 5 + +/* + * For the Slave Chip on the AT + */ +#define CPU_RTC_INT 0 + +#if defined (NOVELL) || defined (NOVELL_IPX) +#define NETWORK_INT 2 +#endif + +#if defined (SWIN_HAW) +#define SWIN_HAW_INT 3 +#endif + +#if defined (ASPI) +#define ASPI_INT 4 +#endif + +#define CPU_AT_NPX_INT 5 /* NPX exception */ +#define CPU_AT_DISK_INT 6 + + +#ifndef CPU_30_STYLE + +/* def of bits in the CPU_INTERRUPT_MAP ?? */ +#define CPU_HW_INT 0 +#define CPU_HW_INT_MASK (1 << CPU_HW_INT) + +/* + * CPU software interrupt definitions + */ + +#define CPU_SW_INT 8 +#define CPU_SW_INT_MASK (1 << CPU_SW_INT) +#endif /* 3.0 CPU */ + +#define DIVIDE_OVERFLOW_INT 0 + +#define END_INTERRUPT 0x20 + +extern void ica0_init IPT0(); +extern void ica1_init IPT0(); +extern void ica0_post IPT0(); +extern void ica1_post IPT0(); + +extern void ica_hw_interrupt_cancel IPT2(IU32, adapter, IU32, line_no); +extern IU8 ica_scan_irr IPT1(IU32, adapter); +extern void ica_interrupt_cpu IPT2(IU32, adapter, IU32, line); +extern void ica_eoi IPT3(IU32, adapter, IS32 *, line, IBOOL, rotate); + +#if defined (NTVDM) + +#ifdef MONITOR +extern void ica_iret_hook_called IPT1(IU32, line); +extern void ica_iret_hook_control IPT3(IU32, adapter, IU32, line, IBOOL, enable); +#endif + +VOID ica_RestartInterrupts(ULONG); +extern IS32 ica_intack IPT1(IU32 *, hook_addr); + +extern void ica_clear_int(IU32 adapter, IU32 line); +extern void ica_inb(io_addr port, IU8 *val); +extern void ica_outb(io_addr port, IU8 val); +extern void ica_hw_interrupt(IU32 adapter, IU32 line_no, IS32 call_count); + + + + +/* + * The NTVDM ica adapter structure has been moved to \nt\private\inc\vdm.h + * and is almost identical to the standard softpc ica adapter structure. + * It was Extracted to make it visible clearly from the monitor\kernel on + * x86 + * + * Notable differences: + * 1. added ica_delayedints field for ntvdm's implementaion of delayed ints + * 2. type definitions have change to match win32 + * 3. ADAPTER_STATE has been renamed to VDMVIRTUALICA + * 4. Does not implement CPU_40 iret hooks + * + */ +#include +extern VDMVIRTUALICA VirtualIca[]; + +#else /* ndef NTVDM */ + +extern void SWPIC_clear_int IPT2(IU32, adapter, IU32, line_no); +extern void SWPIC_init_funcptrs IPT0(); +extern void SWPIC_inb IPT2(io_addr, port, IU8 *, value); +extern void SWPIC_outb IPT2(io_addr, port, IU8, value); +extern void SWPIC_hw_interrupt IPT3(IU32, adapter, IU32, line_no, + IS32, call_count); + +#ifdef HOOKED_IRETS +extern IS32 ica_intack IPT1(IU32 *, hook_addr); +extern void ica_iret_hook_called IPT1(IU32, line); +extern void ica_enable_iret_hooks IPT0(); +extern void ica_disable_iret_hooks IPT0(); +extern void ica_iret_hook_control IPT3(IU32, adapter, IU32, line, IBOOL, enable); +#else /* !HOOKED_IRETS */ +extern IS32 ica_intack IPT0(); +#endif /* !HOOKED_IRETS */ + +#ifdef CPU_40_STYLE +typedef void (*ICA_CALLBACK) IPT1(IU32, parm); +extern IBOOL action_interrupt IPT4(IU32, adapter, IU32, line, ICA_CALLBACK, func, IU32, parm); +extern void cancel_action_interrupt IPT2(IU32, adapter, IU32, line); +extern void ica_async_hw_interrupt IPT3(IU32, adapter, IU32, line_no, + IS32, call_count); + +extern void ica_check_stale_iret_hook IPT0(); +#define MAX_ISR_DEPTH 3 /* max recursion level of ISR before ints blocked */ +#define MAX_INTR_DELTA_FOR_LOST_HOOK 85 +#endif /* CPU_40_STYLE */ + +typedef struct { + IBOOL ica_master; /* TRUE = Master; FALSE = Slave */ + + IU8 ica_irr; /* Interrupt Request Register */ + IU8 ica_isr; /* In Service Register */ + IU8 ica_imr; /* Interrupt Mask Register */ + IU8 ica_ssr; /* Slave Select Register */ + + IU16 ica_base; /* Interrupt base address for cpu */ + IU16 ica_hipri; /* Line no. of highest priority line */ + IU16 ica_mode; /* Various single-bit modes */ + + IS32 ica_count[8]; /* This is an extension of ica_irr for */ + /* our frig. Contains HOW MANY of each */ + /* interrupt is required */ + IU32 ica_int_line; /* Current pending interrupt */ + /* being counted down by the CPU */ + + IU32 ica_cpu_int; /* The state of the INT line to the CPU */ + +#ifdef CPU_40_STYLE /* callback structure for action_interrupt() */ + IU32 callback_parm[8]; /* callback parameter */ + ICA_CALLBACK callback_fn[8]; /* callback fn */ + IS32 isr_depth[8]; /* iret hook recursion level */ + IS32 isr_progress[8][MAX_ISR_DEPTH + 1]; /* isr aging by int */ + IS32 isr_time_decay[8][MAX_ISR_DEPTH]; /* isr aging by time */ +#endif + +} ADAPTER_STATE; + + +/* 'no callback' define for action_interrupt callbacks */ +#define NO_ICA_CALLBACK ((ICA_CALLBACK) 0L) + +#endif /* NTVDM */ + + +#if !defined(NTVDM) +#ifdef REAL_ICA + +extern void host_ica_hw_interrupt IPT3(IU32, adap, IU32, line, IS32, cnt); +extern void host_ica_hw_interrupt_delay IPT4(IU32, adap, IU32, line, IS32, cnt, IS32, delay); +extern void host_ica_clear_int IPT2(IU32, adap, IU32, line); + +#define ica_hw_interrupt(ms,line,cnt) host_ica_hw_interrupt(ms, line, cnt) +#define ica_hw_interrupt_delay(ms,line,cnt,delay) host_ica_hw_interrupt(ms, line, cnt) +#define ica_clear_int(ms, line) host_ica_clear_int(ms, line) + +#else /* REAL_ICA */ + +/* + * Change these. They come last. + */ + +#define ica_inb(port,val) ((*ica_inb_func) (port,val)) +#define ica_outb(port,val) ((*ica_outb_func) (port,val)) +#define ica_hw_interrupt(ms,line,cnt) ((*ica_hw_interrupt_func) (ms,line,cnt)) +#define ica_clear_int(ms,line) ((*ica_clear_int_func) (ms,line)) + + +/* + * PIC access functions needed for HW & SW + */ +extern void (*ica_inb_func) IPT2(io_addr, port, IU8 *, value); +extern void (*ica_outb_func) IPT2(io_addr, port, IU8, value); +extern void (*ica_hw_interrupt_func) IPT3(IU32, adapter, IU32, line_no, + IS32, call_count); +extern void (*ica_clear_int_func) IPT2(IU32, adapter, IU32, line_no); + +#endif /* REAL_ICA */ +#endif /* !NTVDM */ + +#ifdef GISP_CPU +/* + * Prototype functions for interfaces provided by the ICA. + */ + +typedef IBOOL HOOK_AGAIN_FUNC IPT1(IUM32, callers_ref); +extern void Ica_enable_hooking IPT3(IUM8, line_number, + HOOK_AGAIN_FUNC *, hook_again, IUM32, callers_ref); + +extern void Ica_hook_bop IPT1(IUM8, line_number); + +#endif /* GISP_CPU */ + diff --git a/private/mvdm/softpc.new/base/inc/idetect.h b/private/mvdm/softpc.new/base/inc/idetect.h new file mode 100644 index 000000000..0de583124 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/idetect.h @@ -0,0 +1,57 @@ +/* + * File: idetect.h + * + * Author: J.Roper + * + * Import Necessary items for IDLE DETECT + * + * SccsID @(#)idetect.h 1.6 08/25/93 Copyright Insignia Solutions Ltd + */ + +#ifndef NTVDM +extern int idle_no_video; +extern int idle_no_comlpt; +extern int idle_no_disk; +#endif + +void idetect(); +void idle_set(); +void idle_ctl(); + +#define IDLE_INIT 0 +#define IDLE_KYBD_POLL 1 +#define IDLE_TIME_TICK 2 +#define IDLE_WAITIO 3 + + +#ifdef NTVDM +/* + * NT VDM idling system based on waits - call funcs for counter idle indicators + * to allow them to cancel waits. + */ +VOID HostIdleNoActivity(VOID); + +#define IDLE_video() HostIdleNoActivity() +#define IDLE_comlpt() HostIdleNoActivity() +#define IDLE_disk() HostIdleNoActivity() + +/* exported just for kb_setup_vector intialization */ +extern word *pICounter; +extern word *pCharPollsPerTick; +extern word *pMinConsecutiveTicks; +extern word IdleNoActivity; +extern word ienabled; + +#else +#define IDLE_video() idle_no_video = 0 +#define IDLE_comlpt() idle_no_comlpt = 0 +#define IDLE_disk() idle_no_disk = 0 +#endif + +#define IDLE_tick() idetect(IDLE_TIME_TICK) +#define IDLE_poll() idetect(IDLE_KYBD_POLL) +#define IDLE_waitio() idetect(IDLE_WAITIO) +#define IDLE_init() idetect(IDLE_INIT) +#define IDLE_set(a,b) idle_set(a,b) +#define IDLE_ctl(a) idle_ctl(a) + diff --git a/private/mvdm/softpc.new/base/inc/ios.h b/private/mvdm/softpc.new/base/inc/ios.h new file mode 100644 index 000000000..4dada132a --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/ios.h @@ -0,0 +1,600 @@ +/* + * SoftPC-AT Version 2.0 + * + * Title : I/O Address Space definitions + * + * Description : Definitions for users of the I/O Address Space Module + * + * Author : Rod MacGregor (bless his cotton socks) + * + * Notes : None + */ + +/* SccsID[]= @(#)ios.h 1.25 09 Feb 1995 */ + +/* + * ============================================================================ + * Structure/Data definitions + * ============================================================================ + */ + +/* Size of i/o memory array in half-words */ + +#if defined( NTVDM ) || defined ( GISP_SVGA ) || defined ( SFELLOW ) +#define PC_IO_MEM_SIZE 0x10000 /* Must be a power of two! */ +#else +#define PC_IO_MEM_SIZE 0x400 /* Must be a power of two! */ +#endif + +#ifdef NTVDM +typedef struct _extioentry { + io_addr ioaddr; + char iadapter; + struct _extioentry *ioextnext; +} ExtIoEntry, *PExtIoEntry; +#endif /* NTVDM */ + + +/* + * The IO address range for the Monochrome Display Adapter. + */ + +#define MDA_PORT_START 0x3B0 +#define MDA_PORT_END 0x3BF + + +#ifdef HERC +#define HERC_PORT_START 0x3B0 +#define HERC_PORT_END 0x3BF +#endif + +/* + * Memory bounds for the colour graphics adaptor + */ + +#define CGA_PORT_START 0x3D0 +#define CGA_PORT_END 0x3DF + +/* + * The individual enhanced adaptor registers + */ + +#define EGA_SEQ_INDEX 0x3C4 +#define EGA_SEQ_DATA 0x3C5 +#define EGA_CRTC_INDEX 0x3D4 +#define EGA_CRTC_DATA 0x3D5 +#define EGA_GC_INDEX 0x3CE +#define EGA_GC_DATA 0x3CF +#define EGA_GC_POS1 0x3CC +#define EGA_GC_POS2 0x3CA +#define EGA_AC_INDEX_DATA 0x3C0 +#define EGA_AC_SECRET 0x3C1 /* mentioned in "programmer's guide to pc & ps/2 video systems" p36 tip */ +#define EGA_MISC_REG 0x3C2 +#define EGA_FEAT_REG 0x3DA +#define EGA_IPSTAT0_REG 0x3C2 +#define EGA_IPSTAT1_REG 0x3DA +#define VGA_MISC_READ_REG 0x3CC +#define VGA_FEAT_READ_REG 0x3CA + +/* + * Extra registers in VGA for controlling the DAC + */ + +#ifdef VGG +#define VGA_DAC_MASK 0x3C6 +#define VGA_DAC_RADDR 0x3C7 /* Address for reads */ +#define VGA_DAC_WADDR 0x3C8 /* Address for writes */ +#define VGA_DAC_DATA 0x3C9 /* DAC data */ +#endif + +/* + * The individual colour adaptor registers + */ + +#define CGA_INDEX_REG 0x3D4 +#define CGA_DATA_REG 0x3D5 +#define CGA_CONTROL_REG 0x3D8 +#define CGA_COLOUR_REG 0x3D9 +#define CGA_STATUS_REG 0x3DA + +/* + * Internal colour adaptor registers, accessed via data/index registers + */ + +#define CGA_R14_CURS_ADDRH 0xE +#define CGA_R15_CURS_ADDRL 0xF + +/* + * The diskette IO address range + */ + +#define DISKETTE_PORT_START 0x3F0 +#define DISKETTE_PORT_END 0x3F7 + +/* + * The supported diskette IO addresses + */ + +#define DISKETTE_ID_REG 0x3f1 +#define DISKETTE_DOR_REG 0x3F2 +#define DISKETTE_STATUS_REG 0x3F4 +#define DISKETTE_DATA_REG 0x3F5 +#define DISKETTE_FDISK_REG 0x3f6 +#define DISKETTE_DIR_REG 0x3f7 +#define DISKETTE_DCR_REG 0x3f7 + + +/* + * The hard disk IO address range + */ + +#define DISK_PORT_START 0x1F0 +#define DISK_PORT_END 0x1F8 + +/* The addresses of the four ports assigned to the HDA. */ + +#define HD_PORT_0 0x320 +#define HD_PORT_1 0x321 +#define HD_PORT_2 0x322 +#define HD_PORT_3 0x323 + + +/* + * PPI adapter + */ +/* On the AT, PPI_GENERAL is like the combination of + * PPI_GENERAL and PPI_SWITCHES on the XT. All the switch + * information is in the AT CMOS RAM ports 70-7f + */ +#define PPI_PORT_START 0x60 +#define PPI_PORT_END 0x6f + +#define PPI_KEYBOARD 0x60 +#define PPI_GENERAL 0x61 +#define PPI_SWITCHES 0x62 + +/* + * AT Keyboard adapter + */ + +#define KEYBA_PORT_START 0x60 +#define KEYBA_PORT_END 0x6e + +#define KEYBA_IO_BUFFERS 0x60 +#define KEYBA_STATUS_CMD 0x64 + +/* + * CMOS and Real Time Clock + */ +/* + * These are defined in cmos.h + * +#define CMOS_PORT_START 0x70 +#define CMOS_PORT_END 0x7f + +#define CMOS_PORT 0x70 +#define CMOS_DATA 0x71 + */ + +/* + * Timer adapter + */ + +#define TIMER_PORT_START 0x40 +#define TIMER_PORT_END 0x5F + +#define TIMER0_REG 0x40 +#define TIMER1_REG 0x41 +#define TIMER2_REG 0x42 +#define TIMER_MODE_REG 0x43 + +/* + * DMA registers + */ + +/* DMA controller I/0 space ranges */ +#define DMA_PORT_START 0x00 +#define DMA_PORT_END 0x1F + +#define DMA1_PORT_START 0xC0 +#define DMA1_PORT_END 0xDF + +/* DMA controller address registers */ +#define DMA_CH0_ADDRESS 0x00 +#define DMA_CH0_COUNT 0x01 +#define DMA_CH1_ADDRESS 0x02 +#define DMA_CH1_COUNT 0x03 +#define DMA_CH2_ADDRESS 0x04 +#define DMA_CH2_COUNT 0x05 +#define DMA_CH3_ADDRESS 0x06 +#define DMA_CH3_COUNT 0x07 + +#define DMA_CH4_ADDRESS 0xC0 +#define DMA_CH4_COUNT 0xC2 +#define DMA_CH5_ADDRESS 0xC4 +#define DMA_CH5_COUNT 0xC6 +#define DMA_CH6_ADDRESS 0xC8 +#define DMA_CH6_COUNT 0xCA +#define DMA_CH7_ADDRESS 0xCC +#define DMA_CH7_COUNT 0xCE + +/* DMA controller miscellaneous registers */ +#define DMA_SHARED_REG_A 0x08 +#define DMA_WRITE_REQUEST_REG 0x09 +#define DMA_WRITE_ONE_MASK_BIT 0x0A +#define DMA_WRITE_MODE_REG 0x0B +#define DMA_CLEAR_FLIP_FLOP 0x0C +#define DMA_SHARED_REG_B 0x0D +#define DMA_CLEAR_MASK 0x0E +#define DMA_WRITE_ALL_MASK_BITS 0x0F + +#define DMA1_SHARED_REG_A 0xD0 +#define DMA1_WRITE_REQUEST_REG 0xD2 +#define DMA1_WRITE_ONE_MASK_BIT 0xD4 +#define DMA1_WRITE_MODE_REG 0xD6 +#define DMA1_CLEAR_FLIP_FLOP 0xD8 +#define DMA1_SHARED_REG_B 0xDA +#define DMA1_CLEAR_MASK 0xDC +#define DMA1_WRITE_ALL_MASK_BITS 0xDE + +/* DMA page register I/O space range */ +#define DMA_PAGE_PORT_START 0x80 +#define DMA_PAGE_PORT_END 0x9F + +/* DMA page registers */ +#define DMA_CH0_PAGE_REG 0x87 +#define DMA_CH1_PAGE_REG 0x83 +#define DMA_FLA_PAGE_REG 0x81 +#define DMA_HDA_PAGE_REG 0x82 +#define DMA_CH5_PAGE_REG 0x8b +#define DMA_CH6_PAGE_REG 0x89 +#define DMA_CH7_PAGE_REG 0x8a +#define DMA_REFRESH_PAGE_REG 0x8f +#define MFG_PORT 0x80 +#define DMA_FAKE1_REG 0x84 +#define DMA_FAKE2_REG 0x85 +#define DMA_FAKE3_REG 0x86 +#define DMA_FAKE4_REG 0x88 +#define DMA_FAKE5_REG 0x8c +#define DMA_FAKE6_REG 0x8d +#define DMA_FAKE7_REG 0x8e + +/* + * Interrupt Control Registers + */ + +# define ICA0_PORT_START 0x20 +# define ICA0_PORT_END 0x3F + +# define ICA0_PORT_0 0x20 +# define ICA0_PORT_1 0x21 + +# define ICA1_PORT_START 0xA0 +# define ICA1_PORT_END 0xBF + +# define ICA1_PORT_0 0xA0 +# define ICA1_PORT_1 0xA1 + +/* + * RS232 Adaptors + */ + +#define RS232_COM1_PORT_START 0x3F8 +#define RS232_COM1_PORT_END 0x3FF +#define RS232_COM2_PORT_START 0x2F8 +#define RS232_COM2_PORT_END 0x2FF +#define RS232_COM3_PORT_START 0x3e8 +#define RS232_COM3_PORT_END 0x3eF +#define RS232_COM4_PORT_START 0x2e8 +#define RS232_COM4_PORT_END 0x2eF +#define RS232_PRI_PORT_START 0x3F8 +#define RS232_PRI_PORT_END 0x3FF +#define RS232_SEC_PORT_START 0x2F8 +#define RS232_SEC_PORT_END 0x2FF + +/* + * Parallel printer adaptors + */ + +#ifdef PRINTER +#define LPT1_PORT_START 0x3bc +#define LPT1_PORT_END 0x3c0 +#define LPT2_PORT_START 0x378 +#define LPT2_PORT_END 0x37c +#define LPT3_PORT_START 0x278 +#define LPT3_PORT_END 0x27c + +#define LPT_MASK 0xff0 +#endif /* PRINTER */ + +/* SoundBlaster I/O Ports */ + +#ifdef SWIN_SNDBLST_NULL +#define SNDBLST1_PORT_START 0x0220 +#define SNDBLST1_PORT_END 0x022F +#define SNDBLST2_PORT_START 0x0240 +#define SNDBLST2_PORT_END 0x026F +#endif + +/* + * PCI configuration ports. + */ + +#define PCI_CONFIG_ADDRESS 0xcf8 +#define PCI_CONFIG_DATA 0xcfc + +#ifndef SFELLOW +/* + * The following defines a key for each adaptor. This is used as a + * parameter to the io_connect_port() function. + */ + + +#define EMPTY_ADAPTOR 0 +#define DMA_ADAPTOR 1 +#define ICA0_ADAPTOR 2 +#define TIMER_ADAPTOR 3 +#define PPI_ADAPTOR 4 +#define NMI_ADAPTOR 5 +#define COM2_ADAPTOR 6 +#define HDA_ADAPTOR 7 +#define MDA_ADAPTOR 8 +#define CGA_ADAPTOR 9 +#define FLA_ADAPTOR 10 +#define COM1_ADAPTOR 11 +#define DMA_PAGE_ADAPTOR 12 +#define MOUSE_ADAPTOR 13 + +#define EGA_SEQ_ADAP_INDEX 15 +#define EGA_SEQ_ADAP_DATA 16 +#define EGA_GC_ADAP_INDEX 17 +#define EGA_GC_ADAP_DATA 18 +#define EGA_CRTC_ADAPTOR 19 +#define EGA_AC_ADAPTOR 20 +#define EGA_MISC_ADAPTOR 21 +#define EGA_FEAT_ADAPTOR 22 +#define EGA_IPSTAT0_ADAPTOR 23 +#define EGA_IPSTAT1_ADAPTOR 24 +#define ICA1_ADAPTOR 25 +#define AT_KEYB_ADAPTOR 26 +#define CMOS_ADAPTOR 27 +#ifdef HERC +#define HERC_ADAPTOR 28 +#endif +#if (NUM_SERIAL_PORTS > 2) +#define COM3_ADAPTOR 29 +#define COM4_ADAPTOR 30 +#endif +#ifdef PRINTER +#define LPT1_ADAPTER 31 +#define LPT2_ADAPTER 32 +#define LPT3_ADAPTER 33 +#endif /* PRINTER */ + +#ifdef VGG +#define VGA_DAC_INDEX_PORT 34 +#define VGA_DAC_DATA_PORT 35 +#endif + +#ifdef NTVDM /* Spare slots for user supplied VDDs */ +#define SPARE_ADAPTER1 36 +#define SPARE_ADAPTER2 37 +#define SPARE_ADAPTER3 38 +#define SPARE_ADAPTER4 39 +#define SPARE_ADAPTER5 40 +#define SPARE_ADAPTER6 41 +#define SPARE_ADAPTER7 42 +#define SPARE_ADAPTER8 43 + + +#define IO_MAX_NUMBER_ADAPTORS 44 /* make this equal to the highest used plus one please! */ + +#define NUMBER_SPARE_ADAPTERS (SPARE_ADAPTER8 - SPARE_ADAPTER1) + +#else /* NTVDM */ + +#ifdef GISP_SVGA +#define GISP_VGA_FUDGE_ADAPTER 36 +#define IO_MAX_NUMBER_ADAPTORS 37 +#else /* GISP_SVGA */ + +/* Adapter for SoundBlaster Null Driver */ + +#ifdef SWIN_SNDBLST_NULL +#define SNDBLST_ADAPTER 36 +#endif + +#ifndef IO_MAX_NUMBER_ADAPTORS +#define IO_MAX_NUMBER_ADAPTORS 37 /* make this equal to the highest used plus one please! */ +#endif + +#endif /* GISP_SVGA */ +#endif /* NTVDM */ +#else /* SFELLOW */ + +/* + * StringFellow doesn't need most of the emulated hardware, as + * it has the real thing. + */ + +#define EMPTY_ADAPTOR 0 +#define HW_ADAPTOR_DW 1 +#define HW_ADAPTOR_W 2 +#define HW_ADAPTOR_B 3 +#define KEY64_ADAPTOR 4 +#define KEY60_ADAPTOR 5 +#define DMA_ADAPTOR 6 +#define PPI_ADAPTOR 7 +#define CMOS_ADAPTOR 8 +#define MFG_ADAPTOR 9 +#define PCI_CONFIG_ADDRESS_ADAPTOR 10 +#define PCI_CONFIG_PORT_ADAPTOR 11 +#define PCI_CONFIG_DATA_ADAPTOR0 12 +#define PCI_CONFIG_DATA_ADAPTOR13 13 +#define PCI_CONFIG_DATA_ADAPTOR2 14 +#define PIC_SLAVE_ADAPTOR 15 +#define PIC_MASTER_ADAPTOR 16 +#define SF_EGA_GC_ADAP_INDEX 17 +#define SF_EGA_GC_ADAP_DATA 18 +#define IO_MAX_NUMBER_ADAPTORS 19 /* make this equal to the highest used plus one please! */ + +#endif /*SFELLOW */ + +/* + * The Bit masks for specifying Read/Write access when connecting ports + * to the IO bus. + */ + +#define IO_READ 1 +#define IO_WRITE 2 +#define IO_READ_WRITE (IO_READ | IO_WRITE) + +/* + * Values to return if no adaptor is connected to a port + */ + +#define IO_EMPTY_PORT_BYTE_VALUE 0xFF +#define IO_EMPTY_PORT_WORD_VALUE 0xFFFF + +/* + * ============================================================================ + * External declarations and macros + * ============================================================================ + */ + +IMPORT void inb IPT2(io_addr, io_address, half_word *, value); +IMPORT void outb IPT2(io_addr, io_address, half_word, value); +IMPORT void inw IPT2(io_addr, io_address, word *, value); +IMPORT void outw IPT2(io_addr, io_address, word, value); +#ifdef SPC386 +IMPORT void ind IPT2(io_addr, io_address, IU32 *, value); +IMPORT void outd IPT2(io_addr, io_address, IU32, value); +#endif /* SPC386 */ + +IMPORT void io_define_inb +( +#ifdef ANSI + half_word adapter, + void (*func) IPT2(io_addr, io_address, half_word *, value) +#endif /* ANSI */ +); + +#ifdef SFELLOW +IMPORT void io_define_inw +( +#ifdef ANSI + half_word adapter, + void (*func) IPT2(io_addr, io_address, word *, value) +#endif /* ANSI */ +); + +IMPORT void io_define_ind +( +#ifdef ANSI + half_word adapter, + void (*func) IPT2(io_addr, io_address, IU32 *, value) +#endif /* ANSI */ +); +#endif /* SFELLOW */ + +IMPORT void io_define_in_routines +( +#ifdef ANSI + half_word adapter, + void (*inb_func) IPT2(io_addr, io_address, half_word *, value), + void (*inw_func) IPT2(io_addr, io_address, word *, value), + void (*insb_func) IPT3(io_addr, io_address, half_word *, valarray, + word, count), + void (*insw_func) IPT3(io_addr, io_address, word *, valarray, + word, count) +#endif /* ANSI */ +); + +IMPORT void io_define_outb +( +#ifdef ANSI + half_word adapter, + void (*func) IPT2(io_addr, io_address, half_word, value) +#endif /* ANSI */ +); + +#ifdef SFELLOW +IMPORT void io_define_outw +( +#ifdef ANSI + half_word adapter, + void (*func) IPT2(io_addr, io_address, word, value) +#endif /* ANSI */ +); + +extern void io_define_outd +( +#ifdef ANSI + half_word adapter, + void (*func) IPT2(io_addr, io_address, IU32, value) +#endif /* ANSI */ +); +#endif /* SFELLOW */ + +IMPORT void io_define_out_routines +( +#ifdef ANSI + half_word adapter, + void (*outb_func) IPT2(io_addr, io_address, half_word, value), + void (*outw_func) IPT2(io_addr, io_address, word, value), + void (*outsb_func) IPT3(io_addr, io_address, half_word *, valarray, + word, count), + void (*outsw_func) IPT3(io_addr, io_address, word *, valarray, + word, count) +#endif /* ANSI */ +); + +#ifdef NTVDM +IMPORT IBOOL io_connect_port IPT3(io_addr, io_address, half_word, adapter, + half_word, mode); +#else +IMPORT void io_connect_port IPT3(io_addr, io_address, half_word, adapter, + half_word, mode); +#endif /* NTVDM */ + +IMPORT void io_disconnect_port IPT2(io_addr, io_address, half_word, adapter); +IMPORT void io_init IPT0(); + +/* Externs and macros for io_redefine_inb/outb */ +#ifdef MAC68K +IMPORT char *Ios_in_adapter_table; +IMPORT char *Ios_out_adapter_table; +#else +IMPORT char Ios_in_adapter_table[]; +IMPORT char Ios_out_adapter_table[]; +#endif + +IMPORT void (*Ios_inb_function []) + IPT2(io_addr, io_address, half_word *, value); +IMPORT void (*Ios_inw_function []) + IPT2(io_addr, io_address, word *, value); +extern void (*Ios_ind_function []) + IPT2(io_addr, io_address, IU32 *, value); +IMPORT void (*Ios_insb_function []) + IPT3(io_addr, io_address, half_word *, valarray, word, count); +IMPORT void (*Ios_insw_function []) + IPT3(io_addr, io_address, word *, valarray, word, count); + +IMPORT void (*Ios_outb_function []) + IPT2(io_addr, io_address, half_word, value); +IMPORT void (*Ios_outw_function []) + IPT2(io_addr, io_address, word, value); +extern void (*Ios_outd_function []) + IPT2(io_addr, io_address, IU32, value); +IMPORT void (*Ios_outsb_function[]) + IPT3(io_addr, io_address, half_word *, valarray, word, count); +IMPORT void (*Ios_outsw_function[]) + IPT3(io_addr, io_address, word *, valarray, word, count); + +/* FAST_FUNC_ADDR() used on the Mac to avoid routing by the jump table every time... */ +#ifndef FAST_FUNC_ADDR +#define FAST_FUNC_ADDR(func) func +#endif /* FAST_FUNC_ADDR */ + +#define io_redefine_outb(adaptor,func) Ios_outb_function[adaptor] = FAST_FUNC_ADDR(func) +#define io_redefine_inb(adaptor,func) Ios_inb_function[adaptor] = FAST_FUNC_ADDR(func) diff --git a/private/mvdm/softpc.new/base/inc/ipx.h b/private/mvdm/softpc.new/base/inc/ipx.h new file mode 100644 index 000000000..e86e26100 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/ipx.h @@ -0,0 +1,211 @@ + +/*[ + * Product: SoftPC-AT Revision 3.0 + * Name: ipx.h + * Derived From: Original + * Author: Jase + * Created On: Oct 6 1992 + * Sccs ID: 12/11/92 @(#)ipx.h 1.5 + * Purpose: Base defines & typedefs for IPX implementations. + * + * (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved. + * + * Rcs ID: + * $Source: /masterNeXT3.0/host/inc/RCS/next_novell.h,v $ + * $Revision: 1.2 $ + * $Date: 92/10/15 14:37:48 $ + * $Author: jason $ + ]*/ + +/* DEFINES */ + +/* IPX device file */ +#define sIPXDevice "/dev/ipx" + +/* IPX function selector codes */ +#define kIPXOpenSocket 0x00 +#define kIPXCloseSocket 0x01 +#define kIPXGetLocalTarget 0x02 +#define kIPXSendPacket 0x03 +#define kIPXListenForPacket 0x04 +#define kIPXScheduleEvent 0x05 +#define kIPXCancelEvent 0x06 +/* note missing 0x07 selector */ +#define kIPXGetIntervalMarker 0x08 +#define kIPXGetInternetAddress 0x09 +#define kIPXRelinquishControl 0x0a +#define kIPXDisconnectFromTarget 0x0b + +/* SPX function selector codes */ +#define kSPXInitialize 0x10 +#define kSPXEstablishConnection 0x11 +#define kSPXListenForConnection 0x12 +#define kSPXTerminateConnection 0x13 +#define kSPXAbortConnection 0x14 +#define kSPXGetConnectionStatus 0x15 +#define kSPXSendSequencedPacket 0x16 +#define kSPXListenForSequencedPacket 0x17 + +/* selector code bounds */ +#define kMinSelector 0x00 +#define kMaxSelector 0x17 + +/* in-use codes */ +#define kAvailable 0x00 +#define kCounting 0xfd +#define kListening 0xfe +#define kSending 0xff + +/* completion codes */ +#define kSuccess 0x00 +#define kWatchdogTerminate 0xed +#define kNoPathFound 0xfa +#define kEventCancelled 0xfc +#define kPacketOverflow 0xfd +#define kSocketTableFull 0xfe +#define kNotInUse 0xff +#define kSocketAlreadyOpen 0xff +#define kNoSuchSocket 0xff + +/* number of open sockets we support */ +/* currently at IPX maximum */ +#define kMaxOpenSockets 150 + +/* maximum size of IPX packet */ +#define kMaxPacketSize 576 + +/* packet buffer size */ +#define kPacketBufferSize 1536 + +/* maximum NCP data size - for IPXGetBufferSize function */ +#define kMaxNCPDataSize 1024 + +/* size of IPX header */ +#define kHeaderSize 30 + +/* event types */ +#define kNoEvent 0 +#define kIPXEvent 1 +#define kAESEvent 2 + +/********************************************************/ + +/* TYPEDEFS */ + +/* IPX structures */ + +typedef struct +{ + USHORT packetChecksum; + USHORT packetLength; + UTINY packetControl; + UTINY packetType; + UTINY packetDestNet [4]; + UTINY packetDestNode [6]; + UTINY packetDestSock [2]; + UTINY packetSrcNet [4]; + UTINY packetSrcNode [6]; + UTINY packetSrcSock [2]; + +} IPXHeaderRec; + +typedef struct +{ + UTINY net [4]; + UTINY node [6]; + UTINY sock [2]; + +} IPXAddressRec; + +/* DOS ECB record (from NetWare DOS Programmers Guide) */ +typedef struct ECB +{ + sys_addr ecbLinkAddress; + UTINY ecbESRAddress [4]; + UTINY ecbInUseFlag; + UTINY ecbCompletionCode; + USHORT ecbSocketNumber; + UTINY ecbIPXWorkspace [4]; + UTINY ecbDriverWorkspace [12]; + UTINY ecbImmediateAddress [6]; + USHORT ecbFragmentCount; + UTINY ecbFragmentAddress1 [4]; + USHORT ecbFragmentSize1; + UTINY ecbFragmentAddress2 [4]; + USHORT ecbFragmentSize2; + +} ECBRec; + +/* host IPX implementation structures */ + +typedef struct +{ + int socketFD; + USHORT socketNumber; + BOOL socketTransient; + +} SocketRec; + +/* linked-list of IPX or AES events */ +typedef struct Event +{ + struct Event *eventNext; + struct Event *eventPrev; + UTINY eventType; + sys_addr eventECB; + SocketRec *eventSocket; + USHORT eventClock; + +} EventRec; + +typedef struct +{ + BOOL ipxInitialised; + USHORT ipxSelector; + USHORT ipxClock; + UTINY ipxNetwork [4]; + UTINY ipxNode [6]; + UTINY ipxBuffer [kPacketBufferSize]; + SocketRec ipxSockets [kMaxOpenSockets]; + EventRec *ipxQueue; + EventRec *ipxEvent; + +} IPXGlobalRec; + +/********************************************************/ + +/* PROTOTYPES */ + +/* imports */ + +/* dispatchers */ +IMPORT VOID IPXBop IPT0 (); +IMPORT VOID IPXHost IPT0 (); + +/* host interface stuff */ +IMPORT BOOL host_ipx_init IPT0 (); + +IMPORT VOID host_ipx_tick IPT0 (); + +IMPORT VOID host_ipx_raise_exception IPT0 (); + +IMPORT BOOL host_ipx_open_socket IPT1 (SocketRec *, socket); +IMPORT VOID host_ipx_close_socket IPT1 (SocketRec *, socket); + +IMPORT VOID host_ipx_send_packet IPT1 (SocketRec *, socket); +IMPORT BOOL host_ipx_poll_socket IPT1 (SocketRec *, socket); + +IMPORT VOID host_ipx_load_packet IPT2 + (SocketRec *, socket, sys_addr, ecbAddress); +IMPORT BOOL host_ipx_save_packet IPT2 + (SocketRec *, socket, sys_addr, ecbAddress); + +IMPORT BOOL host_ipx_rip_query IPT1 (IPXAddressRec *, ipxAddr); + +/* base stuff accessed from host */ + +IMPORT EventRec *FindEvent IPT3 + (UTINY, linkType, sys_addr, ecbAddress, SocketRec *, linkSocket); + +/********************************************************/ + diff --git a/private/mvdm/softpc.new/base/inc/j_c_lang.h b/private/mvdm/softpc.new/base/inc/j_c_lang.h new file mode 100644 index 000000000..9ec76913b --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/j_c_lang.h @@ -0,0 +1,49 @@ +/* + * Name: j_c_lang.h + * + * Author: Simon Frost + * + * Created on: February 1994 + * + * SccsID: @(#)j_c_lang.h 1.2 08/19/94 + * + * Purpose: This file contains the necessary declarations for C + * files generated from J-code. + * + * (c)Copyright Insignia Solutions Ltd., 1994. All rights reserved. + */ +/* defines needed for basic types */ +#define jccc_parm1 r2 +#define jccc_parm2 r3 +#define jccc_parm3 r4 +#define jccc_parm4 r5 +#define jccc_gdp r1 +/* define variables (register replacements) used */ +extern IUH rnull ; /* holder for a null arg in calls and null return args */ +extern IUH r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10,r11,r12,r13,r14,r15, + r16,r17,r18,r19,r20,r21,r22,r23,r24,r25,r26,r27,r28,r29,r30,r31; + +/* prototypes for support functions - see j_c_lang.c ? how many are used */ +extern IUH mask IPT2(IUH, bitpos, IUH, len); +extern IUH rorl IPT2(IUH, src, IUH, rots); +extern IUH rorw IPT2(IUH, src, IUH, rots); +extern IUH rorb IPT2(IUH, src, IUH, rots); +extern IUH roll IPT2(IUH, src, IUH, rots); +extern IUH rolw IPT2(IUH, src, IUH, rots); +extern IUH rolb IPT2(IUH, src, IUH, rots); + +#ifdef LITTLEND +#define UOFF_15_8(a) (((IU8 *)(a))+1) +#define SOFF_15_8(a) (((IS8 *)(a))+1) +#define REGBYTE 0 +#define REGWORD 0 +#define REGLONG 0 +#endif +#ifdef BIGEND +#define UOFF_15_8(a) ((IU8 *)(a) + sizeof(IUH)-2) +#define SOFF_15_8(a) ((IS8 *)(a) + sizeof(IUH)-2) +#define REGBYTE (sizeof(IUH) -1) +#define REGWORD (sizeof(IUH)/2 -1) +#define REGLONG (sizeof(IUH)/4 -1) +#endif +#define __J_C_LANG /* mark as already included */ diff --git a/private/mvdm/softpc.new/base/inc/jcgensyn.h b/private/mvdm/softpc.new/base/inc/jcgensyn.h new file mode 100644 index 000000000..fb3671729 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/jcgensyn.h @@ -0,0 +1,24 @@ +# define NAME 257 +# define STRING 258 +# define CONSTANT 259 +# define DIGEST 260 +# define OPSUB0 261 +# define OPSUB1 262 +# define OPSUB2 263 +# define LSQUARE 264 +# define RSQUARE 265 +# define OR 266 +# define COMMA 267 +# define ARROW 268 +# define LCURL 269 +# define RCURL 270 +# define LBRACKET 271 +# define RBRACKET 272 +# define SEMICOLON 273 +# define LANGLE 274 +# define RANGLE 275 +# define COLON 276 +# define STAR 277 +# define DOT 278 +# define INVALID 279 +# define MODENAME 280 diff --git a/private/mvdm/softpc.new/base/inc/jformate.h b/private/mvdm/softpc.new/base/inc/jformate.h new file mode 100644 index 000000000..edea162aa --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/jformate.h @@ -0,0 +1,819 @@ +/*[ + * Name: jformatE.h + * + * Derived From: (original) + * + * Author: Jerry Kramskoy + * + * Created On: 16 April 1993 + * + * Sccs ID: @(#)jformatE.h 1.16 04/21/95 + * + * Purpose: describes the file format for the host binary + * emitted by 'jcc'. + * + * Design document:/HWRD/SWIN/JCODE/jcobjfmt + * + * Test document: + * + * (c) Copyright Insignia Solutions Ltd., 1993. All rights reserved +]*/ + + +/* + + History: + =================================================== + version 04/21/95: extended object file format. + =================================================== + + if JLD_OBJFILE_HDR.magic == JLD_OBJ_MAGIC, then no JLD_OBJFILE_EXT or JLD_SECTION_EXT records are present. + + If JLD_OBJFILE_HDR.magic == JLD_OBJ_MAGIC_X, this is an extended object file format ... + then a JLD_OBJFILE_EXT record immediately follows the JLD_OBJFILE_HDR, and + a JLD_SECTION_EXT record immediately follows a JLD_SECTION_HDR. + + For extended format, the first code segment in the file is ALWAYS aligned to a cache-line boundary. + + */ + + +/* + The object file contains the target-machine binary emitted via + jcc, along with header information. + + the input file to jcc may contain many sections of jcode. jcc emits + code/data into one of 8 selectable segments associated with one + section. These segment types (enum JLD_SEGTYPES) are: + + (IF NEW EXECUTABLE TYPES OF SEGMENT ARE ADDED, UPDATE the macro + JLD_IS_EXECUTABLE below) + + JLD_CODE -- inline host code derived from Jcode + JLD_CODEOUTLINE -- out of line host code derived from Jcode + JLD_DATA -- host data derived from Jcode + JLD_APILOOKUP -- api lookup data + + JLD_IMPORTS -- externals required for section + JLD_EXPORTS -- addresses exported from section to OTHER sections + JLD_STRINGSPACE -- string space to hold all symbol names defd/refd in section + JLD_INTELBIN -- intel binary as labelled Jcode data for debugging + JLD_INTELSYM -- intel symbolic as labelled Jcode data for debugging + JLD_SYMJCODE -- generated streamed Jcode as labelled Jcode data + for debugging + JLD_DEBUGTAB -- tuples of JADDRS pointing to labels in the above + three segment types and the generated host code + for debugging + JLD_D2SCRIPT -- debug test script information encoded as a stream + JLD_CLEANUP -- cleanup records + JLD_PATCH -- compiler-generated patch up requests + of data bytes in JDATA form, no labels. + + jcc allows separate compilations of sections from the input file + to produce separate object files. e.g; sections 1,2 ->file A + section 3 -> file B, and sections 4->20 in file C. + + This format describes the contents of one of these files. The file + layout is: + + ---------------------- + ! obj.file hdr ! + ---------------------- <=== extension file hdr, if present + ! section hdr for 1st! + ! section ! + ---------------------- <=== extension section 1 hdr, if present + ! segments for 1st ! + ! section ! + ---------------------- + ! section hdr for 2nd! + ! section ! + ---------------------- <=== extension section 2 hdr, if present + ! segments for 2nd ! + ! section ! + ---------------------- + ! ! + ! etc. ! + ! ! + ---------------------- + ! section hdr for Nth! + ! section ! + ---------------------- <=== extension section 3 hdr, if present + ! segments for Nth ! + ! section ! + ---------------------- + + Linking amalgamates the sections into one section for all the files + presented to the process. Files are processed in order of occurrence in + the command line. Per file the following actions occur ... + + The sections are processed in order of occurrence in the file. + This produces one section for the file. + + Within a section, segments are always processed in order, + from lowest enum value (JLD_CODE) upto, but excluding JLD_NSEGS. + + Normally, each segment has its own space allocation, so that all the contents + of JLD_DATA segments are grouped together in an area separate to, say, the + contents for JLD_IMPORTS. As a section is processed, the contents of its + different segment types are concatenated into their respective spaces. + However, different segment types can be GROUPED to SHARE the SAME space. + If segment type X is attributed with segment group X, then its space allocation + is taken from X's overall space. If segment type X is attributed with segment + group Y, then this causes the following to happen ... + + 1]. No memory is allocated for segment type X. + 2]. The size of segment type X is totalled in with the size of + segment type Y. + 3]. The segment contents for X get concatenated into Y. The order of + this concatenation is governed by where segment type X occurs in + the segment processing order, based upon its enum, as stated above. + + For example, suppose we only have 5 segment types ... A,B,C,D and E. Let's + suppose we set the segment attributes as {A, C, D all map to segment group of type A}, + {B maps to segment group of type B}, and {E maps to segment group of type E}. + Also suppose our segment types are enumerated in the order {B=0,C,A,E,D}. + Finally suppose we have a file with 2 sections, where + +1. (sect #1, segType A is 100 bytes long), +2. (sect #1, segType B is 200 bytes long), +3. (sect #1, segType C is 300 bytes long), +4. (sect #1, segType D is 400 bytes long), +5. (sect #1, segType E is 500 bytes long), +6. (sect #2, segType A is 110 bytes long), +7. (sect #2, segType B is 120 bytes long), +8. (sect #2, segType C is 130 bytes long), +9. (sect #2, segType D is 140 bytes long), +10. (sect #2, segType E is 0 bytes long), + + Overall sizing would add up the sizes of all segments, attributing the space + to the segment type of the group to which the segment belongs. Hence we get the + following total sizes ... + + segType A needs sz(1) + sz(3) + sz(4) + sz(6) + sz(8) + sz(9) = 1180 bytes + segType B needs sz(2) + sz(7) = 320 bytes + segType C needs 0 bytes (allocated out of segType A) + segType D needs 0 bytes (ditto) + segType E needs 500 bytes. + + We hence have a requirement for 'globally allocated segments' of types A,B and E + of sizes 1180,320 and 500 bytes respectively. + + As sect #1 is processed, we process segment types in the order B,C,A,E,D as per + the enum. We use the segment group associated with the segment type to select + which actual segment type to copy the segment contents into, so we would be + allocating (2) out of B, then (3) out of A, then (1) out of A, then (5) out of E, + and finally (4) out of A giving ... + + A: B: E: + ------------ ------------- -------------- + 0 ! cont(3) ! 0 ! cont(2) ! 0 ! cont(5) ! + ------------ ------------- -------------- + 300 ! cont(1) ! 200 ! free ! 500 ! free ! + ------------ ------------- -------------- + 400 ! cont(4) ! + ------------ + 800 ! free ! + ------------ + + + Then section #2 is processed in the same manner, and we allocate the space + the same way, allocating (7) out of B, then (8) out of A, then (6) out of A, then (10) out of E, + and finally (9) out of A giving ... + + A: B: E: + ------------ ------------- -------------- + 0 ! cont(3) ! 0 ! cont(2) ! 0 ! cont(5) ! + ------------ ------------- -------------- + 300 ! cont(1) ! 200 ! cont(7) ! 500 ! free ! + ------------ ------------- -------------- + 400 ! cont(4) ! 320 ! free ! + ------------ ------------- + 800 ! cont(8) ! + ------------ + 930 ! cont(6) ! + ------------ + 1040 ! cont(9) ! + ------------ + 1180 ! free ! + ------------ + + Currently, we are grouping JLD_CODE and JLD_CODEOUTLINE together, to share the + JLD_CODE segment type. This allows pc-relative branching to be used to access + the out-of-line code from the in-line code. If these weren't grouped, then the + JLD_CODEOUTLINE segment would load after all the inline code (given current enums) + and would probably be unreachable efficiently. + + Other files would concatenate into these segments in the exactly the same manner. + + If we are linking, rather than loading, then the output binary file contains 1 section, + with five segments, two which are empty, and the other three are of segment types + A,B and E, of sizes 1180, 320 and 500 respectively. LINKING MUST ALWAYS BE DONE, when + more than one section is involved. + + On loading, the order these segments occur in memory is also controlled by the segment + type enum. Lower value enums appear lower in memory. The loader only expects ONE linked + binary file, and hence will refuse to load if the file contains more than one section. + This section is executable PROVIDED that all unresolved references (i.e; + extant IMPORTs and Intel relocs) can be resolved dynamically at load time. The loader + can be called at any time, but for patching up of Intel relocatable values, this + must be after Windows has loaded within Softwin. + + + When loaded, the section is laid out, within the DATA space of the process, as + + -------------------- + ! code seg ! + -------------------- + ! data seg ! + -------------------- + ! api lookup seg ! + -------------------- +*/ + + +/*===========================================================================*/ +/* INTERFACE DATA TYPES */ +/*===========================================================================*/ +/* version 0 does NOT support extension records */ +#define JLD_VERSION_NUMBER 1 + +#define JLD_MAX_INPUTFILES 1000 + +/* segment types */ +/* ------------- */ + +/* These should be cast to IU16 values, before emitting in obj.file */ + +/* NOTE: the patch segment should follow the others, since the binary + * code generation assumes that any labels used in the PATCH segment + * are defined earlier. + */ + +typedef enum +{ + +JLD_CODE=0, /* inline host code derived from Jcode */ +JLD_CODEOUTLINE, /* out of line host code derived from Jcode */ +JLD_DATA, /* host data derived from Jcode */ +JLD_APILOOKUP, /* api lookup data */ +JLD_STRINGSPACE, /* string space to hold all symbol names defd/refd in section */ +JLD_EXPORTS, /* addresses exported from section to OTHER sections */ +JLD_IMPORTS, /* externals required for section */ + +/* segments providing information for debugging tools */ +JLD_INTELBIN, /* the original intel binary being turned into Jcode by + flowBm, packaged as a set of JDATA operations, one per` + byte of Intel instruction. The first byte of each Intel + instruction is preceeded by a JLABEL with a symbol of + the form "IBnnnn" for the nnnn'th Intel instruction + being processed. */ +JLD_INTELSYM, /* the binary from above disassembled and packaged as + JDATA operations, with labels of the form "ISnnnn" + preceeding the first byte of the nnnn'th Intel + instruction */ +JLD_SYMJCODE, /* the streamed Jcode generated, with labels of the form + "SJnnnn" inserted at the start of the code generated + from the nnnn'th Intel instruction */ +JLD_DEBUGTAB, /* a set of four JADDR operations for each Intel + instruction, the addresses in the tuple for the nnnn'th + Intel instruction, are thos of the labels "IBnnnn", + "ISnnnn", "JBnnnn", and "SJnnnn". The "JBnnnn" labels + are inserted in the real Jcode which will be compiled` into host binary. These tuples will allow debugging + software to do things like print the Intel binary and/or + symbolic instructions that generated a particular host + instruction. see typedef for JLD_DEBUGTUPLE below */ +JLD_D2SCRIPT, /* d2Bm script information for running the test "API" + compiled into the other segments */ + +JLD_CLEANUP, /* cleanup records */ +JLD_PATCH, /* compiler-generated patch up requests */ + +JLD_NSEGS, /* #.of above segments */ + +/* The following don't take any segment space in obj.file. + * they are only required to specify type of IMPORTed symbol + * in IMPORT_ENTRYs, for accessing static addresses (determined at + * process load time) + */ + +JLD_CCODE, /* IMPORT a 'C' static code address */ +JLD_CDATA, /* IMPORT a 'C' static data address */ + +JLD_ACODE, /* IMPORT an assembler static code address */ +JLD_ADATA, /* IMPORT an assembler static data address */ + +JLD_ALLSEGS /* total #.of different segments */ + +} JLD_SEGTYPES; + + +typedef enum +{ + RS_8=0, + RS_16, + RS_32, + RS_64, + RS_UU +} RELOC_SZ; + + + +typedef enum +{ + PATCHABLE=1, + EXPORTABLE=2, + DISCARDABLE=4, + ALLOCATE_ONLY=8 +} SEGATTR; + + +typedef struct +{ + IUH attributes; + JLD_SEGTYPES segmentGroup; + CHAR *name; +} JLD_SEGATTRIBUTES; + + +typedef struct +{ + IUH *ibPtr; + CHAR *isPtr; + IUH *jbPtr; + CHAR *sjPtr; +} JLD_DEBUGTUPLE; + + +typedef struct { + IU32 segLength[JLD_NSEGS]; /* #.bytes in each segment */ + IU32 segStart[JLD_NSEGS]; /* byte offset into file for each segment */ + IU32 nextSectHdrOffset; /* file offset to next header (0 if no more) */ +} JLD_SECTION_HDR; + +/* alignments for code layout */ + +typedef enum { + AL_INST=1, + AL_CACHE_LINE=2, + AL_PAGE_BOUNDARY=3 +} JLD_ALIGN; + +#define JLD_OBJ_MAGIC 0xafaffafa /* no extension records */ +#define JLD_OBJ_MAGIC_X 0xafaffafb /* contains extension records */ + +/* machine types */ +#define JLD_HPPA 1 +#define JLD_SPARC 2 +#define JLD_68K 3 +#define JLD_PPC 4 +#define JLD_MIPS 5 +#define JLD_AXP 6 +#define JLD_VAX 7 + +typedef struct { + IU32 magic; /* identify as jcode obj.file */ + IU32 jccVersion; /* compiler version */ + IU32 flowBmVersion; /* flowBm version */ + IU32 machine; /* machine to run this binary on */ + IU32 nSections; /* #.sections in file */ + IU32 firstSectHdrOffset; /* file offset to first section header */ +} JLD_OBJFILE_HDR; + + + + + + +/* ============================================================================================= */ +/* OBJECT FILE EXTENSIONS */ +/* ============================================================================================= */ + +typedef enum { /* version numbers for obj.file hdr extension record */ + OextVers1=1 /* add new version numbers as required */ +} JLD_OBJFILE_EXT_VERSIONS; + + + + +typedef enum { /* version numbers for section hdr extension record */ + SextVers1=1 /* add new version numbers as required */ +} JLD_SECTION_EXT_VERSIONS; + + + + +/* extension records */ + +typedef struct { + IU32 recLength; /* size of record, in bytes (includes this IU32) */ + IU32 version; /* version number for this record */ +} JLD_OBJFILE_EXT_Vers1; + +typedef struct { + IU32 recLength; /* size of record, in bytes (includes this IU32) */ + IU32 version; /* version number for this record */ + IU32 codeAlign; /* alignment for code segment ... (IU32)(JLD_ALIGN) */ + IU32 groupId; /* subroutine sorting group for this section */ + IU32 groupOrdinal; /* ordinal of this subroutine within sorting group */ +} JLD_SECTION_EXT_Vers1; + +/* NOTE: A new version derived from current structure MUST contain current structure + * at top of new structure !!!! ... DO NOT DELETE OLDER VERSION STRUCTURES + */ + + +/* the current structures that reflects the latest extensions should be indicated + * here ... ditto for version numbers. + */ +#define JLD_CURRENT_OBJEXT_VERSION OextVers1 +#define JLD_CURRENT_SECTION_EXT_VERSION SextVers1 + + +/* compiler and linker output current versions ... */ +typedef JLD_OBJFILE_EXT_Vers1 JLD_CURRENT_OBJEXT; +typedef JLD_SECTION_EXT_Vers1 JLD_CURRENT_SECTION_EXT; + +/* the linker/loader understands current and older versions */ + + + + + +/* ============================================================================================= */ +/* RELOCATION */ +/* ============================================================================================= */ + +typedef enum +{ + RT_ATTR_NONE=0, + RT_ATTR_IMPORT_OFFSET=1, + RT_ATTR_SEG_TYPE=2, + RT_ATTR_HEX=4 +} RTATTRS; + +/* attributes for relocation types */ +/* see SegRTAttr[] below. The 'name' is used by jld when printing out relocation + * type. The attrib field also controls how reloc.info is printed. + * If attribute RT_ATTR_IMPORT_OFFSET, then it expects to find an IMPORT_ENTRY with + * offset into STRINGSPACE, where name is stored. + * If RT_ATTR_SEGTYPE, then it interprets value as segment type. + * If RT_ATTR_HEX, it prints value as %08x. + */ + +#define JLD_NPATCHVALUES 2 + +typedef struct +{ + CHAR *name; + RTATTRS attrib[JLD_NPATCHVALUES]; +} JLDRTATTR; + +/* patch up request entry */ +/* these reside within segment type JLD_PATCH only */ +/* (sect_hdr->segLength[JLD_PATCH] / sizeof(PATCH_ENTRY) gives the number + * of relocation entries in the 'patching' segment. + */ + +typedef struct { + IU16 section; /* section id in which this PATCH_ENTRY occurs */ + IU16 segType; /* which segment requires the patch applied to it */ + IU16 relocSize; /* the size of the value to be patched in (RELOC_SZ) */ + IU16 chainCount; /* number of records compressed into following PATCH_ENTRY spaces + */ + IU32 segOffset; /* offset to place to patch in this seg */ + IU32 patchInfo; /* private info.to host patcher indicating instruction */ + /* (pair) format that needs patching */ + IU32 relocType; /* how to derive the value to be passed to the patcher */ + IU32 value1; /* relocation value (interpreted based on relocType) */ + IU32 value2; /* relocation value (interpreted based on relocType) */ +} PATCH_ENTRY; + +/* The PATCH_ENTRYs may be compressed, so that entries which differ only in + * the segOffset will be represented as a PATCH_ENTRY for the first segOffset + * followed by additional PATCH_ENTRY records used as arrays of IU32s for + * the additional offsets. The total number of IU32 entries represented + * is recorded in the leading PATCH_ENTRY in chainCount: a chainCount of + * zero means "no chain". The number JLD_CHAIN_MAX is the number of IU32s + * stored in a single PATCH_ENTRY. + */ +#define JLD_CHAIN_MAX 7 + + + /* relocType values */ + /* ---------------- */ +#define RT_RSVD 0 + +#define RT_SELID 1 +#define RT_RELOC1 2 +#define RT_RELOC2 3 +#define RT_RELOC3 4 +#define RT_RELOC4 5 +#define RT_RELOC5 6 +#define RT_HGLBL_ABS 7 +#define RT_HGLBL_PCREL 8 +#define RT_HLCL_ABS 9 +#define RT_HLCL_PCREL 10 +#define RT_HGLBL_SEGOFF 11 +#define RT_LAST 12 + + +/* +The following can be used to patch JLD_CODE, JLD_DATA and JLD_APILOOKUP segments to get +Intel information or related descriptor cache information. + +Relocation types Patch action (and when patched) +----------------- ------------------------------- +RT_RSVD Reserved for internal use by the linker. + +RT_SELID, value1. (Windows init.) Map value1 (nominal selector) -> + actual 16-bit selector. Patch in this value. + +RT_RELOC1, value1, value2. (Windows init.) Map value1 as above. Get ea24 + corresponding to base of this Intel segment. + Patch in 'ea24 + value2'. value2 is a 16-bit + Intel ip. + +RT_RELOC2, value1, value2. (Windows init.) Map value1 as above. Get ea24 + corresponding to base of this Intel segment. + Patch in 'ea24<<4 + value2'. + +RT_RELOC3, value1, 0 (Windows init). Map value1 as above. Get corresponding + compiled desc.cache entry address (host-sized addr) + and patch in. + +RT_RELOC4, value1, value2. (Windows init.) Map value1 as above. + Patch in 'mapped value<<16 + value2'. + + +RT_RELOC5, value1, value2. (Windows init.) Map value1 as above. Get ea32b + corresponding to base of this Intel segment. + Patch in 'ea32b {+} value2'. value2 is a 16-bit + Intel ip. + + + +The following can be used to patch JLD_CODE, JLD_CODEOUTLINE, JLD_DATA and JLD_APILOOKUP segments to +get host addresses (such as 'C' externals and procedures, or CPU infrastructure +offline code, or other jcode exports). pc-relative patchups (*_PCREL) are only legal when +within JLD_CODE, and then only when the value to be patched in corresponds to +a jcode export) + +RT_HGLBL_ABS, value1,value2. value1 is segment offset in corresponding IMPORTS segment + to byte 0 of entry. +RT_HGLBL_PCREL, value1,value2. value1 is segment offset in corresponding IMPORTS segment + to byte 0 of entry. + +The following can be used to patch JLD_CODE, JLD_CODEOUTLINE, JLD_DATA and JLD_APILOOKUP +segments with host addresses of other symbols LOCAL to the section. Here, 'value1' and +'value2' indicate the segment offset and type, in which some symbol X is DEFINED. The +PATCH_ENTRY identifies that the address of X needs to be patched into some LOCAL segment, +of type 'segType', at offset 'segOffset'. *_ABS will cause the loader to patch in the loaded +address of X. *_PCREL will cause the linker to patch in the relative displacement from the +patched object to X. + +RT_HLCL_ABS, value1,value2. value1 is segment offset in segment, whose type is given + by value2. +RT_HLCL_PCREL, value1,value2. value1 is segment offset in segment, whose type is given + by value2. + +The linker converts RT_HGLBL_ABS into RT_HGLBL_SEGOFF, when it sees a definition for the +symbol IMPORTED by the RT_HGLBL_ABS. +RT_HGLBL_SEGOFF,value1,value2. value1 is segment offset in segment, whose type is given + by value2. + + + +*/ + + +/* locally scoped definitions and references + * ----------------------------------------- + * This corresponds to all non-GLOBAL symbols defined and referenced within + * a section. 'jcc' handles these by use of RT_HLCL_* relocation requests + * for all references, where the entry embeds the seg.offset and type of the + * defn.address of the symbol (as determined by jcc). The linker/loader + * just needs to relocate this by a). its location within the overall + * global segment allocation, and then b). by the base address of that + * segment when loaded. + */ + + +/* globally scoped definitions + * --------------------------- + * all named symbols here can be accessed from other sections. + * these entries reside within segment type JLD_EXPORTS only + * (sect_hdr->segLength[JLD_EXPORTS] / sizeof(EXPORT_ENTRY) gives the number + * of entries in the 'exports' segment. + */ +typedef struct { + IU16 section; /* section in which this EXPORT_ENTRY occurs */ + IU16 segType; /* segment within which exported symbol is defined */ + IU32 nameOffset; /* offset within JLD_STRINGS segment to 'C' string for name */ + IU32 segOffset; /* offset into segment where symbol is defined */ +} EXPORT_ENTRY; + + + + + + +/* global references entry + * ----------------------- + * all named symbols here are defined in another section. + * these entries reside within segment type JLD_IMPORTS only + * (sect_hdr->segLength[JLD_IMPORTS] / sizeof(IMPORT_ENTRY) gives the number + * of relocation entries in the 'imports' segment. + * + * NB: this is the only segment allowed to mention segType values JLD_CCODE, JLD_CDATA, + * JLD_ACODE and JLD_ADATA. + */ +typedef struct { + IU16 section; /* section in which this IMPORT_ENTRY occurs */ + IU16 padding; /* for alignment... */ + IU32 nameOffset; /* offset within JLD_STRINGS segment to 'C' string for name */ +} IMPORT_ENTRY; + + + + +#define JLD_NOFILE_ERR 1 /* missing file */ +#define JLD_BADFILE_ERR 2 /* bad file format */ +#define JLD_UNRESOLVED_ERR 3 /* could not resolve all addresses */ +#define JLD_BADMACH_ERR 4 /* wrong machine type for binary */ +#define JLD_DUPSYMB_ERR 5 /* wrong machine type for binary */ +#define JLD_INTERNAL_ERR 6 /* screw up !! */ +#define JLD_SPACE_ERR 7 /* not enough memory */ +#define JLD_PATCH_ERR 8 /* patcher encountered relocation error */ +#define JLD_INTERSEGREL_ERR 9 /* relative relocation request between + * DIFFERENT segment types + */ +#define JLD_VERSION_MISMATCH 10 /* api.bin version no match */ + + +/* following typedef gives segment information */ +/* size of segments for all sections in all files (indexed by segment type) */ +/* pointers to loaded areas for these segments (indexed by segment type) */ +/* next free offset into loaded areas (indexed by segment type) */ +typedef struct +{ + IHPE free_base; /* base of original malloc */ + IHPE base; /* aligned base */ + IU32 size; + IU32 segOffset; + IU32 alignment; /* required alignment for this segment */ +} SEGINFO; + + +/* loader symbol table entry format (for a defined symbol) */ +typedef struct { + IU16 section; + IU16 segType; + IUH segOffset; + CHAR *file; +} LDSYMB; + + +/*===========================================================================*/ +/* INTERFACE GLOBALS */ +/*===========================================================================*/ +#ifdef JLD_PRIVATE /* ONLY defined from within lnkload.c */ + + +GLOBAL JLD_SEGATTRIBUTES SegAttributes[JLD_ALLSEGS] = +{ + /* JLD_CODE */ + {PATCHABLE|EXPORTABLE, JLD_CODE, "JC"}, + + /* JLD_CODEOUTLINE */ + /* Note: grouped with JLD_CODE segment for section */ + {PATCHABLE|EXPORTABLE, JLD_CODE, "JK"}, + + /* JLD_DATA */ + {PATCHABLE|EXPORTABLE, JLD_DATA, "JD"}, + + /* JLD_APILOOKUP */ + {PATCHABLE|EXPORTABLE|ALLOCATE_ONLY, JLD_APILOOKUP, "JA"}, + + /* JLD_STRINGSPACE */ + {DISCARDABLE, JLD_STRINGSPACE, "JS"}, + + /* JLD_EXPORTS */ + {DISCARDABLE, JLD_EXPORTS, "JX"}, + + /* JLD_IMPORTS */ + {DISCARDABLE, JLD_IMPORTS, "JI"}, + + /* JLD_INTELBIN */ + {0, JLD_INTELBIN, "IB"}, + + /* JLD_INTELSYM */ + {0, JLD_INTELSYM, "IS"}, + + /* JLD_SYMJCODE */ + {0, JLD_SYMJCODE, "SJ" }, + + /* JLD_DEBUGTAB */ + {PATCHABLE, JLD_DEBUGTAB, "DT"}, + + /* JLD_D2SCRIPT */ + {0, JLD_D2SCRIPT, "DS" }, + + /* JLD_CLEANUP */ + {PATCHABLE|ALLOCATE_ONLY, JLD_CLEANUP, "CR" }, + + /* JLD_PATCH */ + {DISCARDABLE, JLD_PATCH, "JP"}, + + /* JLD_NSEGS */ + {0, JLD_NSEGS, ""}, + + /* JLD_CCODE */ + {0, JLD_CCODE, "CC"}, + + /* JLD_CDATA */ + {0, JLD_CDATA, "CD"}, + + /* JLD_ACODE */ + {0, JLD_ACODE, "AC"}, + + /* JLD_ADATA */ + {0, JLD_ADATA, "AD"} +}; + + +/* How relocSize is printed out */ +GLOBAL CHAR *SegSizeAttr[RS_UU+1] = +{ + "08", /* RS_8 */ + "16", /* RS_16 */ + "32", /* RS_32 */ + "64", /* RS_64 */ + "??" /* RS_UU */ +}; + + +/* How relocType is printed out */ +/* if SYMBOLIC, then name extracted from namespace */ +GLOBAL JLDRTATTR SegRTAttr[RT_LAST+1] = +{ + {" rsvd", RT_ATTR_NONE, RT_ATTR_NONE}, + {" selid", RT_ATTR_HEX, RT_ATTR_NONE}, + {" reloc1", RT_ATTR_HEX, RT_ATTR_HEX}, + {" reloc2", RT_ATTR_HEX, RT_ATTR_HEX}, + {" reloc3", RT_ATTR_HEX, RT_ATTR_NONE}, + {" reloc4", RT_ATTR_HEX, RT_ATTR_HEX}, + {" reloc5", RT_ATTR_HEX, RT_ATTR_HEX}, + {" glb.abs", RT_ATTR_IMPORT_OFFSET, RT_ATTR_HEX}, + {" glb.pcr", RT_ATTR_IMPORT_OFFSET, RT_ATTR_HEX}, + {" lcl.abs", RT_ATTR_HEX, RT_ATTR_SEG_TYPE}, + {" lcl.pcr", RT_ATTR_HEX, RT_ATTR_SEG_TYPE}, + {"glb.segr", RT_ATTR_HEX, RT_ATTR_SEG_TYPE}, + {"????????", RT_ATTR_NONE, RT_ATTR_NONE} +}; + +#endif + +IMPORT JLD_SEGATTRIBUTES SegAttributes[]; +IMPORT CHAR *SegSizeAttr[]; +IMPORT JLDRTATTR SegRTAttr[]; + + +/* global segment allocation information */ +extern SEGINFO GlblSegInfo[JLD_NSEGS]; + +/* indicates lnk/load error occurred */ +IMPORT IBOOL JLdErr; + +/* indicates what the error was */ +IMPORT IU32 JLdErrCode; + +/* whether linking or loading */ +IMPORT IBOOL Loading; + +/* machine patcher is targeted for */ +IMPORT IUH PatchingMachine; + +/* tracing*/ +IMPORT IBOOL DumpImports; +IMPORT IBOOL DumpExports; +IMPORT IBOOL DumpPatch; +IMPORT IBOOL DumpCode; +IMPORT IBOOL DumpDebug; + + + + + + +/*===========================================================================*/ +/* INTERFACE PROCEDURES */ +/*===========================================================================*/ + +/* GroupSeg */ +/* Concatenate */ +IMPORT void PatchUp IPT0(); + + +/* following macro indicates whether a given segment is executable */ +#define JLD_IS_EXECUTABLE(segNo) ((segNo == JLD_CODE) || (segNo == JLD_CODEOUTLINE)) + diff --git a/private/mvdm/softpc.new/base/inc/keyba.h b/private/mvdm/softpc.new/base/inc/keyba.h new file mode 100644 index 000000000..646f20ea4 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/keyba.h @@ -0,0 +1,51 @@ + +/* + * SoftPC AT Revision 2.0 + * + * Title : Keyboard Adpator definitions + * + * Description : Definitions for users of the keyboard Adaptor + * + * Author : WTG Charnell + * + * Notes : None + */ + + + +/* @(#)keyba.h 1.10 08/10/92 Copyright Insignia Solutions Ltd."; */ + + +#define RESEND_CODE 0xfe +#define ACK_CODE 0xfa +#define BAT_COMPLETION_CODE 0xaa + +extern void kbd_inb IPT2( io_addr, port, half_word *, val ); +extern void kbd_outb IPT2( io_addr, port, half_word, val ); +#ifndef REAL_KBD +extern void ( *host_key_down_fn_ptr ) IPT1( int, key ); +extern void ( *host_key_up_fn_ptr ) IPT1( int, key ); +#endif +extern void ( *do_key_repeats_fn_ptr ) IPT0(); +extern void keyboard_init IPT0(); +extern void keyboard_post IPT0(); +extern void AT_kbd_init IPT0(); +extern void AT_kbd_post IPT0(); + +#ifdef HUNTER +/* +** AT Hunter uses these two functions. +** AT keyboard is different so slight mods for AT Hunter. +** +*/ +/* +** Puts a scan code (type is half_word) into Keyboard Buffer. +** Returns success; either TRUE or FALSE. +*/ +extern int hunter_codes_to_translate IPT1(half_word, scan_code); +/* +** Returns number of chars in the keyboard buffer that the BIOS +** reads. Will only be 1 or 0. +*/ +extern int buffer_status_8024(); +#endif diff --git a/private/mvdm/softpc.new/base/inc/keyboard.h b/private/mvdm/softpc.new/base/inc/keyboard.h new file mode 100644 index 000000000..22dc516b2 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/keyboard.h @@ -0,0 +1,215 @@ +/* + * SoftPC Revision 2.0 + * + * Title : keyboard.h + * + * Description : defines for keyboard translations + * + * Author : Simon Frost + * + * Notes : + * + */ + +/* SccsID[]="@(#)keyboard.h 1.7 10/08/92 Copyright Insignia Solutions Ltd."; */ + + +#define KH_BUFFER_SIZE 32 + +/* + * Constants + */ + +#define PC_KEY_UP 0x80 /* PC scan code up marker */ +#define OVERFLOW 0xFF /* PPI error indicator */ + +/* + * Keyboard shift state veriable + */ + +#define kb_flag 0x417 +/*#define kb_flag M[0x417]*/ + +/* + * Significance of bits in above + */ + +#define INS_STATE 0x80 /* insert state */ +#define CAPS_STATE 0x40 /* caps lock on */ +#define NUM_STATE 0x20 /* num lock on */ +#define SCROLL_STATE 0x10 /* scroll lock on */ +#define ALT_SHIFT 0x08 /* alt key depressed */ +#define CTL_SHIFT 0x04 /* control key depressed */ +#define LEFT_SHIFT 0x02 /* left shift key depressed */ +#define RIGHT_SHIFT 0x01 /* right shift key depressed */ +#define LR_SHIFT 0x03 /* both/either shift keys */ + +/* + * Second status byte + */ + +#define kb_flag_1 0x418 +/*#define kb_flag_1 M[0x418]*/ + +/* + * Bit significance + */ + +#define INS_SHIFT 0x80 /* Insert key depressed */ +#define CAPS_SHIFT 0x40 /* Caps Lock key depressed */ +#define NUM_SHIFT 0x20 /* Num lock depressed */ +#define SCROLL_SHIFT 0x10 /* scroll lock key depressed */ +#define HOLD_STATE 0x08 /* ctl-num lock pressed */ + +#define SYS_SHIFT 0x04 /* system key pressed and held */ +/* + * Third status byte Keyboard LED flags + */ + +#define kb_flag_2 0x497 +/*#define kb_flag_2 M[0x497]*/ + +/* + * Bit significance + */ + +#define KB_LEDS 0x07 /* Keyboard LED state bits */ +#define KB_FA 0x10 /* Acknowledgment received */ +#define KB_FE 0x20 /* Resend received flag */ +#define KB_PR_LED 0x40 /* Mode indicator update */ +#define KB_ERR 0x80 /* Keyboard transmit error flag */ + +/* + * Fourth status byte Keyboard mode status and type flags + */ + +#define kb_flag_3 0x496 +/*#define kb_flag_3 M[0x496]*/ + +/* + * Bit significance + */ + +#define LC_E1 0x01 /* Last code was the E1 code */ +#define LC_E0 0x02 /* Last code was the E0 code */ +#define R_CTL_SHIFT 0x04 /* Right control key down */ +#define GRAPH_ON 0x08 /* All graphics key down */ +#define KBX 0x10 /* KBX installed */ +#define SET_NUM_LK 0x20 /* Force Num lock */ +#define LC_AB 0x40 /* Last char was 1st ID char. */ +#define RD_ID 0x80 /* Doing a read ID */ + +/* + * Keyboard/LED commands + */ +#define KB_RESET 0xff /* self diagnostic command */ +#define KB_RESEND 0xfe /* resend command */ +#define KB_MAKE_BREAK 0xfa /* typamatic comand */ +#define KB_ENABLE 0xf4 /* keyboard enable */ +#define KB_TYPA_RD 0xf3 /* typamatic rate/delay cmd */ +#define KB_READ_ID 0xf2 /* read keyboard ID command */ +#define KB_ECHO 0xee /* echo command */ +#define LED_CMD 0xed /* LED write command */ + +/* + * 8042 commands + */ +#define DIS_KBD 0xad /* disable keyboard command */ +#define ENA_KBD 0xae /* enable keyboard command */ + +/* + * 8042 response + */ +#define KB_OVER_RUN 0xff /* over run scan code */ +#define KB_RESEND 0xfe /* resend request */ +#define KB_ACK 0xfa /* acknowledge from transmsn. */ + +/* + * enhanced keyboard scan codes + */ +#define ID_1 0xab /* 1st ID character for KBX */ +#define ID_2 0x41 /* 2nd ID character for KBX */ +#define ID_2A 0x54 /* alt. 2nd ID char. for KBX */ +#define F11_M 87 /* F11 make */ +#define F12_M 88 /* F12 make */ +#define MC_E0 224 /* general marker code */ +#define MC_E1 225 /* pause key marker code */ + + +/* + * Storage for ALT + keypad sequence entry + */ + +#define alt_input 0x419 +/*#define alt_input M[0x419]*/ + +/* + * Key definitions for U.S. keyboard + */ + +#define NUM_KEY 69 /* Num lock scan code */ +#define SCROLL_KEY 70 /* scroll lock scan code */ +#define ALT_KEY 56 /* alt key scan code */ +#define CTL_KEY 29 /* control key scan code */ +#define CAPS_KEY 58 /* caps lock scan code */ +#define LEFT_SHIFTKEY 42 /* left shift key code */ +#define RIGHT_SHIFTKEY 54 /* right shift key code */ +#define INS_KEY 82 /* insert key scan code */ +#define DEL_KEY 83 /* delete key scan code */ +#define COMMA_KEY 51 /* comma key scan code */ +#define DOT_KEY 52 /* fullstop key scan code */ + +#define SPACEBAR 57 /* space bar scan code */ +#define HOME_KEY 71 /* keypad home key scan code */ +#define TAB_KEY 15 /* Tab/Back tab key scan code */ +#define PRINT_SCR_KEY 55 /* print screen / * key code */ +#define KEY_PAD_PLUS 78 /* plus key on num keypad */ +#define KEY_PAD_MINUS 74 /* minus key on num keypad */ +#define TOP_1_KEY 2 /* number 1 at top */ +#define BS_KEY 14 /* backspace key */ +#define F1_KEY 59 /* 1st function key */ +#define UPARR8 72 /* up arrow / '8' */ +#define LARR4 75 /* left arrow / '4' */ +#define RARR6 77 /* right arrow / '6' */ +#define DOWNARR2 80 /* down arrow / '2' */ +#define KEY_PAD_ENTER 28 +#define KEY_PAD_SLASH 53 /* / on num keypad */ +#define F10_KEY 68 /* 10th function key */ +#define F11_KEY 87 +#define F12_KEY 88 +#define WT_KEY 86 +#define SYS_KEY 84 /* system key */ +/* Bit 7 = 1 if break key hit */ +#define bios_break 0x471 +/*#define bios_break M[0x471]*/ + +/* + * ============================================================================ + * Structure/Data definitions + * ============================================================================ + */ + +typedef struct +{ + void (*kb_prepare) IPT0(); + void (*kb_restore) IPT0(); + void (*kb_init) IPT0(); + void (*kb_shutdown) IPT0(); + void (*kb_light_on) IPT1(half_word,pattern); + void (*kb_light_off) IPT1(half_word,pattern); +} KEYBDFUNCS; + +extern KEYBDFUNCS *working_keybd_funcs; + +#define host_kybd_prepare() (*working_keybd_funcs->kb_prepare)() +#define host_kybd_restore() (*working_keybd_funcs->kb_restore)() +#define host_kb_init() (*working_keybd_funcs->kb_init)() +#define host_kb_shutdown() (*working_keybd_funcs->kb_shutdown)() +#define host_kb_light_on(pat) (*working_keybd_funcs->kb_light_on)(pat) +#define host_kb_light_off(pat) (*working_keybd_funcs->kb_light_off)(pat) + +/* + * Undefine these GWI defines if the host isn't using the GWI interface + */ + +#include "host_gwi.h" diff --git a/private/mvdm/softpc.new/base/inc/keycaps.h b/private/mvdm/softpc.new/base/inc/keycaps.h new file mode 100644 index 000000000..017f8ac86 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/keycaps.h @@ -0,0 +1,151 @@ +/*[ + Name: IBMKeyCaps.h + Derived From: New Development + Author: gvdl + Created On: 31 July 1991 + Sccs ID: 08/10/92 @(#)keycaps.h 1.3 + Purpose: Table of all keycaps indexed by matrix code. + + (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved. + +]*/ + +#ifdef UIF_TEST + +#define MISSING_KEY ((UTINY) 0x01) +#define BAD_DOWN ((UTINY) 0x02) +#define BAD_UP ((UTINY) 0x04) +#define DUP_KEY ((UTINY) 0x08) + +LOCAL CHAR *keycaps[] = +{ + "", + "`", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "0", + "-", + "=", + "", + "Backspace", + "Tab", + "q", + "w", + "e", + "r", + "t", + "y", + "u", + "i", + "o", + "p", + "[", + "]", + "\\", + "Caps", + "a", + "s", + "d", + "f", + "g", + "h", + "j", + "k", + "l", + ";", + "'", + "102 1/2Ret", + "Return", + "ShiftL", + "102 1/2ShL", + "z", + "x", + "c", + "v", + "b", + "n", + "m", + ",", + ".", + "/", + "", + "ShiftR", + "CntrlL", + "", + "AltL", + "Space", + "AltR", + "", + "CntrlR", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Insert", + "Delete", + "", + "", + "Left", + "Home", + "End", + "", + "Up", + "Down", + "PgUp", + "PgDn", + "", + "", + "Right", + "Num", + "kp7", + "kp4", + "kp1", + "", + "kp/", + "kp8", + "kp5", + "kp2", + "kp0", + "kp*", + "kp9", + "kp6", + "kp3", + "kp.", + "kp-", + "kp+", + "", + "kpEnter", + "", + "Esc", + "", + "F01", + "F02", + "F03", + "F04", + "F05", + "F06", + "F07", + "F08", + "F09", + "F10", + "F11", + "F12", + "PrtScr", + "Scroll", + "Pause", +}; + +#endif /* UIF_TEST */ diff --git a/private/mvdm/softpc.new/base/inc/kybdmtx.h b/private/mvdm/softpc.new/base/inc/kybdmtx.h new file mode 100644 index 000000000..85c3b2fd1 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/kybdmtx.h @@ -0,0 +1,45 @@ +/*[ + * Name: kybdmtx.h + * + * Derived From: DEC 3.0 kybdmtx.gi and kybdcpu.gi + * + * Author: Justin Koprowski + * + * Created On: 18th February 1992 + * + * Sccs ID: @(#)kybdmtx.h 1.2 08/10/92 + * + * Purpose: Host keyboard definitions + * + * (c)Copyright Insignia Solutions Ltd., 1992. All rights reserved. +]*/ + +/* the type of keyboard being used */ + +#define KY83 83 +#define KY101 101 +#define KY102 102 + +/* keyboard matrix actions */ + +#define KYINIT 0 +#define KYSWITCHUP 1 +#define KYSWITCHDN 2 +#define KYLOCK 3 +#define KYLOCK1 4 +#define KYUNLK 6 +#define KYUNLK1 7 +#define KYUNLK2 8 +#define KYTOGLOCK 9 +#define KYTOGLOCK1 10 +#define KYTOGLOCK2 11 +#define KYALOCK1 12 + +IMPORT VOID kyhot IPT0(); +IMPORT VOID kyhot2 IPT0(); +IMPORT VOID kyhot3 IPT0(); +IMPORT VOID kybdmtx IPT2(LONG, action, LONG, qualify); +IMPORT VOID kybdcpu101 IPT2(int, stat, unsigned int, pos); + +#define OPEN 0 +#define CLOSED 1 diff --git a/private/mvdm/softpc.new/base/inc/lm_attr.h b/private/mvdm/softpc.new/base/inc/lm_attr.h new file mode 100644 index 000000000..60ae3a2ef --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/lm_attr.h @@ -0,0 +1,72 @@ +/* This file comes from Highland Software ... Applies to FLEXlm Version 2.4c */ +/* @(#)lm_attr.h 1.1 05/19/93 */ +/****************************************************************************** + + COPYRIGHT (c) 1990, 1992 by Globetrotter Software Inc. + This software has been provided pursuant to a License Agreement + containing restrictions on its use. This software contains + valuable trade secrets and proprietary information of + Globetrotter Software Inc and is protected by law. It may + not be copied or distributed in any form or medium, disclosed + to third parties, reverse engineered or used in any manner not + provided for in said License Agreement except with the prior + written authorization from Globetrotter Software Inc. + + *****************************************************************************/ +/* + * Module: lm_attr.h v3.4 + * + * Description: Attribute tags for FLEXlm setup parameters. + * + * M. Christiano + * 5/3/90 + * + * Last changed: 8/13/92 + * + */ + +#define LM_A_DECRYPT_FLAG 1 /* (short) */ +#define LM_A_DISABLE_ENV 2 /* (short) */ +#define LM_A_LICENSE_FILE 3 /* (char *) */ +#define LM_A_CRYPT_CASE_SENSITIVE 4 /* (short) */ +#define LM_A_GOT_LICENSE_FILE 5 /* (short) */ +#define LM_A_CHECK_INTERVAL 6 /* (int) */ +#define LM_A_RETRY_INTERVAL 7 /* (int) */ +#define LM_A_TIMER_TYPE 8 /* (int) */ +#define LM_A_RETRY_COUNT 9 /* (int) */ +#define LM_A_CONN_TIMEOUT 10 /* (int) */ +#define LM_A_NORMAL_HOSTID 11 /* (short) */ +#define LM_A_USER_EXITCALL 12 /* PTR to func returning int */ +#define LM_A_USER_RECONNECT 13 /* PTR to func returning int */ +#define LM_A_USER_RECONNECT_DONE 14 /* PTR to func returning int */ +#define LM_A_USER_CRYPT 15 /* PTR to func returning (char *) */ +#define LM_A_USER_OVERRIDE 16 /* (char *) */ +#define LM_A_HOST_OVERRIDE 17 /* (char *) */ +#define LM_A_PERIODIC_CALL 18 /* PTR to func returning int */ +#define LM_A_PERIODIC_COUNT 19 /* (int) */ +#define LM_A_NO_DEMO 20 /* (short) */ +#define LM_A_NO_TRAFFIC_ENCRYPT 21 /* (short) */ +#define LM_A_USE_START_DATE 22 /* (short) */ +#define LM_A_MAX_TIMEDIFF 23 /* (int) */ +#define LM_A_DISPLAY_OVERRIDE 24 /* (char *) */ +#define LM_A_ETHERNET_BOARDS 25 /* (char **) */ +#define LM_A_ANY_ENABLED 26 /* (short) */ +#define LM_A_LINGER 27 /* (long) */ +#define LM_A_CUR_JOB 28 /* (LM_HANDLE *) */ +#define LM_A_SETITIMER 29 /* PTR to func returning void, eg PFV */ +#define LM_A_SIGNAL 30 /* PTR to func returning PTR to */ + /* function returning void, eg: + PFV (*foo)(); */ +#define LM_A_TRY_COMM 31 /* (short) Try old comm versions */ +#define LM_A_VERSION 32 /* (short) FLEXlm version */ +#define LM_A_REVISION 33 /* (short) FLEXlm revision */ +#define LM_A_COMM_TRANSPORT 34 /* (short) Communications transport */ + /* to use (LM_TCP/LM_UDP) */ +#define LM_A_CHECKOUT_DATA 35 /* (char *) Vendor-defined checkout */ + /* data */ + +#ifdef VMS +#define LM_A_EF_1 1001 /* (int) */ +#define LM_A_EF_2 1002 /* (int) */ +#define LM_A_EF_3 1003 /* (int) */ +#endif diff --git a/private/mvdm/softpc.new/base/inc/lm_clien.h b/private/mvdm/softpc.new/base/inc/lm_clien.h new file mode 100644 index 000000000..ecef2f3e4 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/lm_clien.h @@ -0,0 +1,555 @@ +/* This file comes from Highland Software ... Applies to FLEXlm Version 2.4c */ +/* @(#)lm_client.h 1.2 12/23/93 */ +/****************************************************************************** + + + COPYRIGHT (c) 1988, 1992 by Highland Software Inc. + This software has been provided pursuant to a License Agreement + containing restrictions on its use. This software contains + valuable trade secrets and proprietary information of + Highland Software Inc and is protected by law. It may + not be copied or distributed in any form or medium, disclosed + to third parties, reverse engineered or used in any manner not + provided for in said License Agreement except with the prior + written authorization from Highland Software Inc. + + *****************************************************************************/ +/* + * Module: lm_client.h v3.21 + * + * Description: Definitions for the license manager programs. + * + * M. Christiano + * 2/13/88 + * + * Last changed: 9/29/92 + * + */ + +#ifndef _LM_CLIENT_H_ +#define _LM_CLIENT_H_ + +#ifdef VMS +#include "param.h" +#else +#include +#endif + +#if defined (sgi) || defined (MIPS) +#include +#endif + +#if defined(MOTO_88K) +#define MAXPATHLEN 1024 +#endif +#if defined(sco) +#define MAXPATHLEN PATHSIZE +#endif + +/* + * FLEXlm version + */ + +#define FLEXLM_VERSION 2 +#define FLEXLM_REVISION 4 +#define FLEXLM_PATCH "a" +extern float FLEXlm_VERSION; /* Actual version #, in lmgr.a */ + +/* + * Codes returned from all client library routines + */ + +#define NOCONFFILE -1 /* Can't find license file */ +#define BADFILE -2 /* License file corrupted */ +#define NOSERVER -3 /* Cannot connect to a license server */ +#define MAXUSERS -4 /* Maximum number of users reached */ +#define NOFEATURE -5 /* No such feature exists */ +#define NOSERVICE -6 /* No TCP/IP service "license" */ +#define NOSOCKET -7 /* No socket to talk to server on */ +#define BADCODE -8 /* Bad encryption code */ +#define NOTTHISHOST -9 /* l_host failure code */ +#define LONGGONE -10 /* Software Expired */ +#define BADDATE -11 /* Bad date in license file */ +#define BADCOMM -12 /* Bad return from server */ +#define NO_SERVER_IN_FILE -13 /* No servers specified in license file */ +#define BADHOST -14 /* Bad SERVER hostname in license file */ +#define CANTCONNECT -15 /* Cannot connect to server */ +#define CANTREAD -16 /* Cannot read from server */ +#define CANTWRITE -17 /* Cannot write to server */ +#define NOSERVSUPP -18 /* Server does not support this feature */ +#define SELECTERR -19 /* Error in select system call */ +#define SERVBUSY -20 /* Application server "busy" (connecting) */ +#define OLDVER -21 /* Config file doesn't support this version */ +#define CHECKINBAD -22 /* Feature checkin failed at daemon end */ +#define BUSYNEWSERV -23 /* Server busy/new server connecting */ +#define USERSQUEUED -24 /* Users already in queue for this feature */ +#define SERVLONGGONE -25 /* Version not supported at server end */ +#define TOOMANY -26 /* Request for more licenses than supported */ +#define CANTREADKMEM -27 /* Cannot read /dev/kmem */ +#define CANTREADVMUNIX -28 /* Cannot read /vmunix */ +#define CANTFINDETHER -29 /* Cannot find ethernet device */ +#define NOREADLIC -30 /* Cannot read license file */ +#define TOOEARLY -31 /* Start date for feature not reached */ +#define NOSUCHATTR -32 /* No such attr for lm_set_attr/ls_get_attr */ +#define BADHANDSHAKE -33 /* Bad encryption handshake with server */ +#define CLOCKBAD -34 /* Clock difference too large between + client/server */ +#define FEATQUEUE -35 /* We are in the queue for this feature */ +#define FEATCORRUPT -36 /* Feature database corrupted in daemon */ +#define BADFEATPARAM -37 /* dup_select mismatch for this feature */ +#define FEATEXCLUDE -38 /* User/host on EXCLUDE list for feature */ +#define FEATNOTINCLUDE -39 /* User/host not in INCLUDE list for feature */ +#define CANTMALLOC -40 /* Cannot allocate dynamic memory */ +#define NEVERCHECKOUT -41 /* Feature never checked out (lm_status()) */ +#define BADPARAM -42 /* Invalid parameter */ +#define NOKEYDATA -43 /* No FLEXlm key data */ +#define BADKEYDATA -44 /* Invalid FLEXlm key data */ +#define FUNCNOTAVAIL -45 /* FLEXlm function not available */ +#define DEMOKIT -46 /* FLEXlm software is demonstration version */ +#define NOCLOCKCHECK -47 /* Clock check not available in daemon */ +#define BADPLATFORM -48 /* FLEXlm platform not enabled */ +#define DATE_TOOBIG -49 /* Date too late for binary format */ +#define EXPIREDKEYS -50 /* FLEXlm key data has expired */ +#define NOFLEXLMINIT -51 /* FLEXlm not initialized */ +#define NOSERVRESP -52 /* Server did not respond to message */ +#define CHECKOUTFILTERED -53 /* Request rejected by vendor-defined filter */ +#define NOFEATSET -54 /* No FEATURESET line present in license file */ +#define BADFEATSET -55 /* Incorrect FEATURESET line in license file */ +#define CANTCOMPUTEFEATSET -56 /* Cannot compute FEATURESET line */ +#define SOCKETFAIL -57 /* socket() call failed */ +#define SETSOCKFAIL -58 /* setsockopt() failed */ +#define BADCHECKSUM -59 /* message checksum failure */ +#define SERVBADCHECKSUM -60 /* server message checksum failure */ +#define SERVNOREADLIC -61 /* Cannot read license file from server */ +#define NONETWORK -62 /* Network software (tcp/ip) not available */ +#define NOTLICADMIN -63 /* Not a license administrator */ +#define REMOVETOOSOON -64 /* lmremove request too soon */ + +/* + * Values for the "flag" parameter in the lm_checkout() call + */ + +#define LM_CO_NOWAIT 0 /* Don't wait, report status */ +#define LM_CO_WAIT 1 /* Don't return until license is available */ +#define LM_CO_QUEUE 2 /* Put me in the queue, return immediately */ +#define LM_CO_LOCALTEST 3 /* Perform local checks, no checkout */ +#define LM_CO_TEST 4 /* Perform all checks, no checkout */ + +/* + * Parameter values for the checkout "group_duplicates" parameter + * In order to specify what constitutes a duplicate, 'or' together + * from the set { LM_DUP_USER LM_DUP_HOST LM_DUP_DISP LM_DUP_VENDOR}, + * or use: + * LM_DUP_NONE or LM_DUP_SITE. + */ +#define LM_DUP_NONE 0x4000 /* Don't allow any duplicates */ +#define LM_DUP_SITE 0 /* Nothing to match => everything matches */ +#define LM_DUP_USER 1 /* Allow dup if user matches */ +#define LM_DUP_HOST 2 /* Allow dup if host matches */ +#define LM_DUP_DISP 4 /* Allow dup if display matches */ +#define LM_DUP_VENDOR 8 /* Allow dup if vendor-defined matches */ +#define LM_COUNT_DUP_STRING "16384" /* For ls_vendor.c: LM_DUP_NONE */ +#define LM_NO_COUNT_DUP_STRING "3" /* For ls_vendor.c: _USER | _HOST */ + +#define RESERVED_SERVER "SERVER" +#define RESERVED_PROG "DAEMON" +#define RESERVED_FEATURE "FEATURE" +#define RESERVED_FEATURESET "FEATURESET" + +#define MAX_FEATURE_LEN 30 /* Longest featurename string */ +#define DATE_LEN 11 /* dd-mmm-yyyy */ +#define MAX_CONFIG_LINE 200 /* Maximum length of a configuration + file line */ +#define MAX_SERVER_NAME 32 /* Maximum FLEXlm length of hostname */ +#define MAX_HOSTNAME 64 /* Maximum length of a hostname */ +#define MAX_DISPLAY_NAME 32 /* Maximum length of a display name */ +#define MAX_USER_NAME 20 /* Maximum length of a user name */ +#define MAX_VENDOR_CHECKOUT_DATA 32 /* Maximum length of vendor-defined */ + /* checkout data */ +#define MAX_DAEMON_NAME 10 /* Max length of DAEMON string */ +#define MAX_SERVERS 5 /* Maximum number of servers */ +#define MAX_USER_DEFINED 64 /* Max size of vendor-defined string */ +#define MAX_VER_LEN 10 /* Maximum length of a version string */ +#define MAX_LONG_LEN 10 /* Length of a long after sprintf */ +#define MAX_SHORT_LEN 5 /* Length of a short after sprintf */ +#define MAX_INET 16 /* Maximum length of INET addr string */ +#define MAX_BINDATE_YEAR 2027 /* Binary date has 7-bit year */ + +/* + * License file location + */ + +#define LM_DEFAULT_ENV_SPEC "LM_LICENSE_FILE" /* How a user can specify */ + +#ifdef VMS +#define LM_DEFAULT_LICENSE_FILE "SYS$COMMON:[SYSMGR]FLEXLM.DAT" +#else +#define LM_DEFAULT_LICENSE_FILE "/usr/local/flexlm/licenses/license.dat" +#endif + +/* + * V1/V2 compatibility macros + */ +#define _lm_errno lm_cur_job->lm_errno +#define uerrno lm_cur_job->u_errno /* Unix errno corresponding to _lm_errno */ + +/* + * Structure types + */ + +#define VENDORCODE_BIT64 1 /* 64-bit code */ +#define VENDORCODE_BIT64_CODED 2 /* 64-bit code with feature data */ +#define LM_DAEMON_INFO_TYPE 101 /* DAEMON_INFO data structure */ +#define LM_JOB_HANDLE_TYPE 102 /* Job handle */ +#define LM_LICENSE_HANDLE_TYPE 103 /* License handle */ +#define LM_FEATURE_HANDLE_TYPE 104 /* Feature handle */ +/* + * Host identification data structure + */ +typedef struct hostid { /* Host ID data */ + short override; /* Hostid checking override type */ +#define NO_EXTENDED 1 /* Turn off extended hostid */ +#define DEMO_SOFTWARE 2 /* DEMO software, no hostid */ + short type; /* Type of HOST ID */ +#define NOHOSTID 0 +#define HOSTID_LONG 1 /* Longword hostid, eg, SUN */ +#define HOSTID_ETHER 2 /* Ethernet address, eg, VAX */ +#define HOSTID_ANY 3 /* Any hostid */ +#define HOSTID_USER 4 /* Username */ +#define HOSTID_DISPLAY 5 /* Display */ +#define HOSTID_HOSTNAME 6 /* Node name */ + union { + long data; +#define ETHER_LEN 6 /* Length of an ethernet address */ + unsigned char e[ETHER_LEN]; + char user[MAX_USER_NAME+1]; + char display[MAX_DISPLAY_NAME+1]; + char host[MAX_HOSTNAME+1]; + } id; +#define hostid_value id.data +#define hostid_eth id.e +#define hostid_user id.user +#define hostid_display id.display +#define hostid_hostname id.host + } HOSTID; +#define HOSTID_USER_STRING "USER=" +#define HOSTID_HOSTNAME_STRING "HOSTNAME=" +#define HOSTID_DISPLAY_STRING "DISPLAY=" + +#define MAX_CRYPT_LEN 20 /* use 8 bytes of encrypted return string to + produce a 16 char HEX representation + 4 */ + +/* + * Vendor encryption seed + */ + +typedef struct vendorcode { + short type; /* Type of structure */ + long data[2]; /* 64-bit code */ + } VENDORCODE; + +typedef struct vendorcode2 { + short type; /* Type of structure */ + long data[2]; /* 64-bit code */ + long keys[3]; + + + } VENDORCODE2; + +#define LM_CODE(name, x, y, k1, k2, k3) static VENDORCODE2 name = \ + { VENDORCODE_BIT64_CODED, \ + (x), (y), (k1), (k2), (k3) } + +#define LM_CODE_GLOBAL(name, x, y, k1, k2, k3) VENDORCODE2 name = \ + { VENDORCODE_BIT64_CODED, \ + (x), (y), (k1), (k2), (k3) } + +/* + * Server data from the license file FEATURE file + */ +typedef struct lm_server { /* License servers */ + char name[MAX_HOSTNAME+1]; /* Hostname */ + struct hostid id; /* hostid */ + struct lm_server *next; /* NULL =none */ + /* Fields below are only used in servers */ + int fd1; /* File descriptor for output */ + int fd2; /* File descriptor for input */ + int state; /* State of connection on fd1 */ + int us; /* "the host we are running on" flag */ + int port; /* What internet port # to use */ + long exptime; /* When this connection attempt + times out */ + } LM_SERVER; + +/* + * Feature data from the license file FEATURE file + */ +typedef struct config { /* Feature data line */ + char feature[MAX_FEATURE_LEN+1]; /* Ascii name */ + double version; /* Feature's version */ + char daemon[MAX_DAEMON_NAME+1]; /* DAEMON to serve */ + char date[DATE_LEN+1]; /* Expiration date */ + int users; /* Licensed # users */ + char code[MAX_CRYPT_LEN+1]; /* encryption code */ + char user_string[MAX_USER_DEFINED+1]; + /* User-defined string */ + struct hostid id; /* Licensed host */ + LM_SERVER *server; /* License server(s) */ + int lf; /* License file index */ + struct config *next; /* Ptr to next one */ + } CONFIG; + +/* + * License file pointer returned by l_open_file() + */ + +#ifndef FILE +#include +#endif + +typedef struct license_file { + struct license_file *next; + int type; /* Type of pointer */ +#define LF_NO_PTR 0 /* Nothing */ +#define LF_FILE_PTR 1 /* (FILE *) */ +#define LF_STRING_PTR 2 /* In-memory string */ + union { + FILE *f; + struct str { + char *s; + char *cur; + } str; + } ptr; + } LICENSE_FILE, *LF_POINTER; + +/* + * User customization - CLIENT LIBRARY use only + */ +typedef void (*PFV)(); + +typedef struct lm_options { + +#ifdef VMS + int ef_1; /* Three event flags for various timers */ + int ef_2; + int ef_3; +#endif + short decrypt_flag; /* Controls whether encryption/decryption + happens on lm_start */ + short disable_env; /* Don't allow LM_LICENSE_FILE as location */ + char config_file[MAXPATHLEN+1]; /* The license file */ + short crypt_case_sensitive; + /* If <>0, encryption code in license file + is case-sensitive. */ + short got_config_file; /* Flag to indicate whether config_file + is filled in */ + int check_interval; /* Check interval (sec) (- implies no check) */ + int retry_interval; /* Reconnection retry interval */ + int timer_type; + int retry_count; /* Number of reconnection retrys */ + int conn_timeout; /* How long to wait for connect to complete */ + short normal_hostid; /* 0 for extended, <> 0 for normal checking */ + int (*user_exitcall)(); /* Pointer to (user-supplied) exit handler */ + int (*user_reconnect)(); /* Pointer to (user) reconnection handler */ + int (*user_reconnect_done)(); + /* Pointer to reconnection-complete handler */ + char *(*user_crypt)(); /* Pointer to (user-supplied) encryption + routine */ + char user_override[MAX_USER_NAME+1]; /* Override username */ + char host_override[MAX_SERVER_NAME+1]; /* Override hostname */ + char display_override[MAX_DISPLAY_NAME+1]; /* Override display */ + char vendor_checkout_data[MAX_VENDOR_CHECKOUT_DATA+1]; + /* vendor-defined checkout data */ + int (*periodic_call)(); /* User-supplied call every few times + thru lm_timer() */ + int periodic_count; /* # of lm_timer() per periodic_call() */ + short no_demo; /* Do not allow demo software */ + short any_enabled; /* Allow "ANY" as hostid */ + short no_traffic_encrypt; /* Do not encrypt traffic */ + short use_start_date; /* Enforce the start date in the license file */ + int max_timediff; /* Maximum time diff: client/server (minutes) */ + char **ethernet_boards; /* User-supplied Ethernet device table */ + /* list of string ptrs, ending with a + NULL pointer */ + long linger_interval; /* How long license lingers after program exit + or checkin (seconds) */ + void (*setitimer)(); /* Substitute for setitimer() */ + PFV (*sighandler)(); /* Substitute for signal() */ + short try_old_comm; /* Does l_connect() try old comm version code */ + short cache_file; /* Does l_init_file() cache the LF data -- + lmgrd ONLY */ + } LM_OPTIONS; + +/* + * Data associated with a VENDOR (connection info, license file + * data pointers, etc.) - CLIENT LIBRARY use only + */ + +typedef struct lm_daemon_info { + short type; /* Structure ID */ + struct lm_daemon_info *next; /* Forward ptr */ + int commtype; /* Communications type */ +#define LM_TCP 1 /* TCP */ +#define LM_UDP 2 /* UDP */ + int socket; /* Socket file descriptor */ + int usecount; /* Socket use count */ + int serialno; /* Socket "serial #" */ + LM_SERVER *server; /* servers associated with socket */ + char daemon[MAX_DAEMON_NAME+1]; /* Which daemon socket refers to */ + long encryption; /* Handshake encryption code */ + int comm_version; /* Communications version of server */ + int comm_revision; /* Communications rev of server */ + int our_comm_version; /* Our current comm version */ + int our_comm_revision; /* Our current comm rev */ + short heartbeat; /* Send heartbeat messages (== 1 except + for utility programs) */ + } LM_DAEMON_INFO; + +/* + * Handles returned by FLEXlm + */ + +typedef struct lm_handle { + int type; /* Type of struct */ + LM_DAEMON_INFO *daemon; /* Daemon data */ + LM_OPTIONS *options; /* Options for this job */ + int lm_errno; /* Most recent error */ + int u_errno; /* unix error (errno) + corresponding to lm_errno */ + CONFIG *line; /* Pointer to list of license + file lines */ + char **lic_files; /* Array of license file names*/ + int lfptr; /* Current license file ptr */ + LF_POINTER license_file_pointers; + /* LF data pointers */ +#define LFPTR_INIT -1 +#define LFPTR_FILE1 0 + VENDORCODE code; /* Encryption code */ + } LM_HANDLE; /* Handle returned by certain calls */ + +typedef struct lm_license_handle { + int type; /* LM_LICENSE_HANDLE_TYPE */ + int handle; /* License handle from daemon */ + } LM_LICENSE_HANDLE; + +typedef struct lm_feature_handle { + int type; /* LM_FEATURE_HANDLE_TYPE */ + char *code; /* Encryption code from license + file line */ + } LM_FEATURE_HANDLE; + + +/* + * User data returned from the license server + */ +typedef struct lm_users { + struct lm_users *next; + char name[MAX_USER_NAME + 1]; + char node[MAX_SERVER_NAME + 1]; + char display[MAX_DISPLAY_NAME + 1]; + char vendor_def[MAX_VENDOR_CHECKOUT_DATA + 1]; + int nlic; /* Number of licenses */ + short opts; /* options flag */ +#define INQUEUE 0x1 /* User is in queue */ +#define HOSTRES 0x2 /* Reservation for a host "node" */ +#define USERRES 0x4 /* Reservation for user "name" */ +#define DISPLAYRES 0x8 /* Reservation for display "name" */ +#define GROUPRES 0x10 /* Reservation for group "name" */ +#define INTERNETRES 0x20 /* Reservation for internet "name" */ +#define lm_isres(x) ((x) & (HOSTRES | USERRES | DISPLAYRES | GROUPRES | INTERNETRES)) + /* This is a reservation */ + long time; /* Seconds value from timeval */ + double version; /* Version of software */ + long linger; /* Linger interval */ + LM_SERVER *server; /* License server */ + LM_LICENSE_HANDLE license; /* License handle */ + LM_FEATURE_HANDLE feature; /* feature handle */ + } LM_USERS; + + +typedef struct _lm_setup_data { /* OBSOLETE in FLEXlm v2.0 */ + short decrypt_flag; + int timer_type; + int check_interval, retry_count, retry_interval; + int (*reconnect)(), (*reconnect_done)(); + int (*exitcall)(); + char *(*crypt)(); + short crypt_case_sensitive; + int conn_timeout; + char config_file[MAXPATHLEN+1]; + short disable_env, normal_hostid; + char user_override[MAX_USER_NAME+1]; + char host_override[MAX_SERVER_NAME+1]; + int (*periodic_call)(), periodic_count; + short no_demo, no_traffic_encrypt; + short use_start_date; + int max_timediff; + char display_override[MAX_DISPLAY_NAME+1]; +#ifdef VMS + int ef_1, ef_2, ef_3; +#endif + } SETUP_DATA; + +/* + * These definitions are here so client software doesn't need + * + */ +#define LM_REAL_TIMER 1234 +#define LM_VIRTUAL_TIMER 4321 + +/* + * Some function types + */ + +extern CONFIG *lm_auth_data(); +extern char *lm_daemon(); +extern char *lm_display(); +extern char *lm_errstring(); +extern char **lm_feat_list(); +extern char *lm_feat_set(); +extern CONFIG *lm_get_config(); +extern HOSTID *lm_gethostid(); +extern HOSTID *lm_getid_type(); +extern char *lm_hostname(); +extern char *lm_lic_where(); +extern CONFIG *lm_next_conf(); +extern CONFIG *lm_test_conf(); +extern LM_USERS *lm_userlist(); +/* + * The current job handle + */ +extern LM_HANDLE *lm_cur_job; + +extern char *lm_username(); +typedef struct hosttype { + int code; /* machine type (see lm_hosttype.h) */ + char *name; /* Machine name, eg. sun 3/50 */ +#define MAX_HOSTTYPE_NAME 50 /* Longest hosttype name length */ + int flexlm_speed; /* Speed determined at run time */ + int vendor_speed; /* Speed claim by vendor */ + } HOSTTYPE; +extern HOSTTYPE *lm_hosttype(); + +/* + * Alternate definitions for SPARC COMPLIANT code + */ +#ifdef SPARC_COMPLIANT +#define LIS_HELLO LM_HELLO +#define LIS_REREAD LM_REREAD +#define LIS_TRY_ANOTHER LM_TRY_ANOTHER +#define LIS_OK LM_OK +#define LIS_NO_SUCH_FEATURE LM_NO_SUCH_FEATURE +#ifndef SPARC_COMPLIANT_FUNCS +#define SPARC_COMPLIANT_FUNCS +#define lm_daemon lis_daemon +#define lm_feat_list lis_feat_list +#define lm_flush_config lis_flush_config +#define lm_free_daemon_list lis_free_daemon_list +#define lm_get_config lis_get_config +#define lm_get_dlist lis_get_dlist +#define l_master_list lis_master_list +#define lm_next_conf lis_next_conf +#endif /* ndef SPARC_COMPLIANT_FUNCS */ +#endif /* SPARC_COMPLIANT */ + +#endif /* _LM_CLIENT_H_ */ diff --git a/private/mvdm/softpc.new/base/inc/lm_code.h b/private/mvdm/softpc.new/base/inc/lm_code.h new file mode 100644 index 000000000..7a8f94e1e --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/lm_code.h @@ -0,0 +1,58 @@ +/* This file comes from Highland Software ... Applies to FLEXlm Version 2.4c */ +/* @(#)lm_code.h 1.4 08/19/94 */ +/****************************************************************************** + + COPYRIGHT (c) 1990, 1992 by Globetrotter Software Inc. + This software has been provided pursuant to a License Agreement + containing restrictions on its use. This software contains + valuable trade secrets and proprietary information of + Globetrotter Software Inc and is protected by law. It may + not be copied or distributed in any form or medium, disclosed + to third parties, reverse engineered or used in any manner not + provided for in said License Agreement except with the prior + written authorization from Globetrotter Software Inc. + + *****************************************************************************/ +/* + * Module: lm_code.h v3.3 + * + * Description: Encryption codes to be used in a VENDORCODE macro + * for FLEXlm daemons, create_license, lm_init(), + * and lm_checkout() call - modify these values + * for your own use. (The VENDOR_KEYx values + * are assigned by Highland Software). + * + * example LM_CODE() macro: + * + * LM_CODE(var_name, ENCRYPTION_CODE_1, ENCRYPTION_CODE_2, + * VENDOR_KEY1, VENDOR_KEY2, VENDOR_KEY3); + * + */ + +/* + * VENDOR's private encryption seed + */ + +#define ENCRYPTION_CODE_1 0x75ac39bf +#define ENCRYPTION_CODE_2 0x4fd10552 + +/* + * Encryption keys for DOS application licensing + */ + +#define DAL_ENCRYPTION_CODE_1 0xf26b9ea0 +#define DAL_ENCRYPTION_CODE_2 0x4c251cb6 + +/* + * FLEXlm vendor keys + */ + +#define VENDOR_KEY1 0x2751aaa6 +#define VENDOR_KEY2 0x984ecf13 +#define VENDOR_KEY3 0x23916ef3 + +/* + * FLEXlm vendor name + */ + +#define VENDOR_NAME "insignia" diff --git a/private/mvdm/softpc.new/base/inc/loader.h b/private/mvdm/softpc.new/base/inc/loader.h new file mode 100644 index 000000000..c1da750f8 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/loader.h @@ -0,0 +1,107 @@ +/*[ + * Name: loader.h + * + * Author: Jerry Kramskoy + * + * Created On: 22 April 1993 + * + * Sccs ID: @(#)loader.h 1.8 03/02/95 + * + * Purpose: dynamic loader for jcode derived binary + * + * Design document:/HWRD/SWIN/JCODE/lnkload + * + * Test document: + * + * (c) Copyright Insignia Solutions Ltd., 1993. All rights reserved +]*/ + + + +/*===========================================================================*/ +/* INTERFACE DATA TYPES */ +/*===========================================================================*/ + + + + +/*===========================================================================*/ +/* INTERFACE GLOBALS */ +/*===========================================================================*/ + + +/*===========================================================================*/ +/* HOST PROVIDED PROCEDURES */ +/*===========================================================================*/ + +extern VOID host_set_data_execute IPT2(IU8, *base, IU32, size); + + +/*===========================================================================*/ +/* INTERFACE PROCEDURES */ +/*===========================================================================*/ + +/* link/load jcode object files */ + +typedef void (*VFUNC)(); + +extern IBOOL JLd IPT4(CHAR *, executable, IUH, version, IU32 *, err, + VFUNC, allocCallback); + +/* get load address of base of typed segment */ +extern IUH JSegBase IPT1(IUH, segType); + +/* get load address of base of typed segment */ +extern IUH JSegLength IPT1(IUH, segType); + +/* free up loader data structures once all address queries have been done */ +extern void JLdRelease IPT0(); + +/* free up segments regardless of discardable attribute */ +extern void JLdReleaseAll IPT0(); + +extern IUH JCodeSegBase IPT0(); +extern IUH JCodeSegLength IPT0(); +extern IUH JLookupSegBase IPT0(); +extern IUH JLookupSegLength IPT0(); +extern IUH JCleanupSegBase IPT0(); +extern IUH JCleanupSegLength IPT0(); + +/* interface notes + --------------- + + To load an already linked jcode object file: + + CHAR *ldReqs[] = { + "fileA" + }; + + IBOOL loadSuccess = Jld("fileA", &err); + if (!loadSuccess) + { + if (err == JLD_NOFILE_ERR) + missing file ... + else + if (err == JLD_BADFILE_ERR) + errors in obj.file ... + else + if (err == JLD_UNRESOLVED_ERR) + cant use, cos unresolved refs ... + else + if (err == JLD_BADMACH_ERR) + cant use, cos binary is for wrong machine type!!! + else + if (err == JLD_VERSION_MISMATCH) + cant use, cos binary does not match KRNL286.EXE + } + + + Then query for addresses ... + + apiLookUpBase = JSegBase(JLD_APILOOKUP); + + Once all addresses have been determined ... + + JLdRelease(); + +*/ diff --git a/private/mvdm/softpc.new/base/inc/lock.h b/private/mvdm/softpc.new/base/inc/lock.h new file mode 100644 index 000000000..b23ace10a --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/lock.h @@ -0,0 +1,40 @@ +/* + +FILE NAME : lock.h +DESCRIPTION : Interface for locking functions. + + THIS INCLUDE SOURCE FILE IS SUPPLIED IN CONFIDENCE TO THE + CUSTOMER, THE CONTENTS OR DETAILS OF ITS OPERATION MUST + NOT BE DISCLOSED TO ANY OTHER PARTIES WITHOUT THE EXPRESS + AUTHORISATION FROM THE DIRECTORS OF INSIGNIA SOLUTIONS INC. + +DESIGNER : J. Koprowski +DATE : June 1990 + + +========================================================================= + +AMENDMENTS : + +========================================================================= +*/ + +/* SccsID[]="@(#)lock.h 1.7 09/24/92 Copyright Insignia Solutions Ltd."; */ + +#ifdef ANSI +extern boolean gain_ownership(int); +extern void release_ownership(int); +extern void critical_region(void); +extern boolean host_place_lock(int, CHAR *); +extern boolean host_check_for_lock(int); +extern void host_clear_lock(int); +#else +extern boolean gain_ownership(); +extern void release_ownership(); +extern void critical_region(); +extern boolean host_place_lock(); +extern boolean host_check_for_lock(); +extern void host_clear_lock(); +#endif /* ANSI */ +extern int host_get_hostname_from_stat IPT4(struct stat *,filestat, CHAR *,hostname, CHAR *, pathname, int, fd); +IMPORT BOOL host_ping_lockd_for_file IPT1(CHAR *,path); diff --git a/private/mvdm/softpc.new/base/inc/low_intp.h b/private/mvdm/softpc.new/base/inc/low_intp.h new file mode 100644 index 000000000..049f069df --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/low_intp.h @@ -0,0 +1,71 @@ +/* File : low_intp.h + * + * Description : Low-level routines for emulators called from host_print_doc(). + * + * Author : David Rees + * + * SccsId : @(#)low_intp.h 1.6 09/23/94 + * + * Mods: + * + * Added LQ2500 emulation - insignia.h'ified, etc + * These routines are sort of printer independent. The idea is that when + * a new printer emulation is added, these routines can be added to, + * stubbed out, and change their behaviour depending on the currently + * selected printer. The same goes for the #DEFINEs. + */ + +/* constants */ + +#define CONDENSED 0x01 /* squash chars down to 60% */ +#define DOUBLE_WIDTH 0x02 /* expand chars up to 200% */ + +#define EMPHASIZED 0x01 /* like bold */ +#define DOUBLE_STRIKE 0x02 /* like bold */ +#define UNDERLINE 0x04 +#define ITALIC 0x08 +#define SUPER 0x10 /* super and sub script */ +#define SUB 0x20 + +#define PROPORTIONAL -1 +#define PICA 0 +#define ELITE 1 +#define CPI15 2 /* 15 Char per inch */ + +#define LQ_ROMAN 0 /* EPSON LQ font numbers */ +#define LQ_SANS_SERIF 1 +#define LQ_COURIER 2 +#define LQ_PRESTIGE 3 +#define LQ_SCRIPT 4 +#define MAX_FONT 4 + +/* printer emulation globals... */ + +IMPORT SHORT PrintError; /* set to tell emulations to abort */ +IMPORT SHORT HResolution; /* set by emulation to establish scaling ... */ +IMPORT SHORT VResolution; /* ... for MoveHead() routine. */ + +IMPORT SHORT CurrentCol; /* current print head position ... */ +IMPORT SHORT CurrentRow; /* ... at emulated printer resolution */ +IMPORT SHORT BufferWidth; /* width of chars in print buffer (ditto) */ + +/* Prototypes... */ + +IMPORT BOOL host_auto_LF_for_print(VOID); +IMPORT SHORT host_get_next_print_byte(VOID); + +IMPORT VOID host_PrintChar(IU8 ch); +IMPORT VOID host_PrintBuffer(IU8 mode); +IMPORT VOID host_EjectPage(VOID); +IMPORT VOID host_CancelBuffer(VOID); +IMPORT VOID host_DeleteCharacter(VOID); +IMPORT VOID host_SetScale(SHORT type); +IMPORT VOID host_ReSetScale(SHORT type); +IMPORT VOID host_SetStyle(SHORT type); +IMPORT VOID host_ReSetStyle(SHORT type); +IMPORT VOID host_SelectPitch(TINY Pitch); +IMPORT VOID host_SelectFont(TINY Font); +IMPORT VOID host_ProcessGraphics(TINY mode, SHORT colLeft); +IMPORT VOID host_LqClearUserDefined(VOID); +IMPORT VOID host_LqPrintUserDefined(IU8 ch); +IMPORT BOOL host_LqDefineUserDefined(SHORT offset, SHORT columns, IU8 ch); diff --git a/private/mvdm/softpc.new/base/inc/lq2500.h b/private/mvdm/softpc.new/base/inc/lq2500.h new file mode 100644 index 000000000..902ce204e --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/lq2500.h @@ -0,0 +1,73 @@ +/*[ + * Name: LQ2500.h + * + * Derived from: nowhere + * + * Author: Chris Paterson + * + * Created on: 11:44:05 25/7/1991 + * + * Purpose: This file is the interface to the base part of an LQ-2500 printer + * emulator. It takes a text stream from the host_get_next_print_byte + * routine in host code and calls a set of host dependent routines + * that provide a generic interface to the host's printing facilities. + * + * SccsId: @(#)LQ2500.h 1.3 09/02/94 + * (c) Copyright Insignia Solutions Ltd., 1991. All rights reserved. +]*/ + + +/* constants */ + +#define EPSON_STANDARD 0 /* character sets */ +#define EPSON_IBM 1 +#define USER_DEFINED 2 + +#define USA 0 +#define FRANCE 1 +#define GERMANY 2 +#define UK 3 +#define DENMARK_1 4 +#define SWEDEN 5 +#define ITALY 6 +#define SPAIN_1 7 +#define JAPAN 8 +#define NORWAY 9 +#define DENMARK_2 10 +#define SPAIN_2 11 +#define LATIN_AMERICA 12 +#define MAX_COUNTRY 12 + +#define FONT_NAME_SIZE 31 /* characters in a pstring */ + + +/* Types... */ + +/* LQ2500-specific initial settings struct... */ +typedef struct LQconfig { + IU8 autoLF; + UTINY font; // not used + TINY pitch; + IU8 condensed; + USHORT pageLength; // in half-inch units + USHORT leftMargin; // in columns + USHORT rightMargin; + TINY cgTable; + TINY country; + /* These are used by the host bit of the LQ2500: */ + SHORT monoSize; + SHORT propSize; + CHAR monoFont[FONT_NAME_SIZE+1]; // pascal strings + CHAR proportionalFont[FONT_NAME_SIZE+1]; +} LQconfig; + + +/* Globals... */ +IMPORT LQconfig SelecType; + + +/* Prototypes: */ + +IMPORT VOID Emulate_LQ2500(VOID); +IMPORT VOID Reset_LQ2500(VOID); + diff --git a/private/mvdm/softpc.new/base/inc/m_errorp.h b/private/mvdm/softpc.new/base/inc/m_errorp.h new file mode 100644 index 000000000..0de9097e1 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/m_errorp.h @@ -0,0 +1,15 @@ +#ifndef _x_ERROR_H +#define _x_ERROR_H + +struct _buttonCap { + swidget *w; + int opt; +}; + +LOCAL SHORT X_error_conf(); +LOCAL SHORT X_error(); +LOCAL SHORT X_error_ext(); + +#define BAD_FORM ((swidget) -1) + +#endif /* _x_ERROR_H */ diff --git a/private/mvdm/softpc.new/base/inc/m_fs.h b/private/mvdm/softpc.new/base/inc/m_fs.h new file mode 100644 index 000000000..f8f53f92d --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/m_fs.h @@ -0,0 +1,13 @@ +#ifndef _x_FS_H +#define _x_FS_H + +typedef enum { + NEW_DISK_SEL = 0, + OPEN_C_SEL, + OPEN_D_SEL, + OPEN_FSA_SEL, + KEYB_FILE_SEL, + LAST_SEL +} titleEnum; + +#endif /* _x_FS_H */ diff --git a/private/mvdm/softpc.new/base/inc/m_keybdp.h b/private/mvdm/softpc.new/base/inc/m_keybdp.h new file mode 100644 index 000000000..ffeb6120c --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/m_keybdp.h @@ -0,0 +1,148 @@ +/*[ + Name: M_keybdP.h + Derived From: Cut out of M_keybd.c + Author: gvdl + Created On: 30 July 1991 + Sccs ID: 08/10/92 @(#)M_keybdP.h 1.4 + Purpose: Default KeySym to AT matrix keycode mapping table. + + (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved. + +In the table below the index of the entry is the AT matrix code as returned +to the keyboard internal CPU. +]*/ + +/* + * Local variables used in X keycode to PC keycode conversion + */ +LOCAL KeySym KeySymTable[] = +{ + XK_BackSpace, /* 0 0x00 */ + XK_grave, /* 1 0x01 */ + XK_1, /* 2 0x02 */ + XK_2, /* 3 0x03 */ + XK_3, /* 4 0x04 */ + XK_4, /* 5 0x05 */ + XK_5, /* 6 0x06 */ + XK_6, /* 7 0x07 */ + XK_7, /* 8 0x08 */ + XK_8, /* 9 0x09 */ + XK_9, /* 10 0x0a */ + XK_0, /* 11 0x0b */ + XK_minus, /* 12 0x0c */ + XK_equal, /* 13 0x0d */ + 0, /* 14 0x0e */ + XK_BackSpace, /* 15 0x0f */ + XK_Tab, /* 16 0x10 */ + XK_q, /* 17 0x11 */ + XK_w, /* 18 0x12 */ + XK_e, /* 19 0x13 */ + XK_r, /* 20 0x14 */ + XK_t, /* 21 0x15 */ + XK_y, /* 22 0x16 */ + XK_u, /* 23 0x17 */ + XK_i, /* 24 0x18 */ + XK_o, /* 25 0x19 */ + XK_p, /* 26 0x1a */ + XK_bracketleft, /* 27 0x1b */ + XK_bracketright, /* 28 0x1c */ + XK_backslash, /* 29 0x1d */ + XK_Caps_Lock, /* 30 0x1e */ + XK_a, /* 31 0x1f */ + XK_s, /* 32 0x20 */ + XK_d, /* 33 0x21 */ + XK_f, /* 34 0x22 */ + XK_g, /* 35 0x23 */ + XK_h, /* 36 0x24 */ + XK_j, /* 37 0x25 */ + XK_k, /* 38 0x26 */ + XK_l, /* 39 0x27 */ + XK_semicolon, /* 40 0x28 */ + XK_apostrophe, /* 41 0x29 */ + 0, /* 42 0x2a */ + XK_Return, /* 43 0x2b */ + XK_Shift_L, /* 44 0x2c */ + 0, /* 45 0x2d */ + XK_z, /* 46 0x2e */ + XK_x, /* 47 0x2f */ + XK_c, /* 48 0x30 */ + XK_v, /* 49 0x31 */ + XK_b, /* 50 0x32 */ + XK_n, /* 51 0x33 */ + XK_m, /* 52 0x34 */ + XK_comma, /* 53 0x35 */ + XK_period, /* 54 0x36 */ + XK_slash, /* 55 0x37 */ + 0, /* 56 0x38 */ + XK_Shift_R, /* 57 0x39 */ + XK_Control_L, /* 58 0x3a */ + 0, /* 59 0x3b */ + XK_Alt_L, /* 60 0x3c */ + XK_space, /* 61 0x3d */ + XK_Alt_R, /* 62 0x3e */ + 0, /* 63 0x3f */ + XK_Control_R, /* 64 0x40 */ + 0, /* 65 0x41 */ + 0, /* 66 0x42 */ + 0, /* 67 0x43 */ + 0, /* 68 0x44 */ + 0, /* 69 0x45 */ + 0, /* 70 0x46 */ + 0, /* 71 0x47 */ + 0, /* 72 0x48 */ + 0, /* 73 0x49 */ + 0, /* 74 0x4a */ + XK_Insert, /* 75 0x4b */ + XK_Delete, /* 76 0x4c */ + 0, /* 77 0x4d */ + 0, /* 78 0x4e */ + XK_Left, /* 79 0x4f */ + XK_Home, /* 80 0x50 */ + XK_End, /* 81 0x51 */ + 0, /* 82 0x52 */ + XK_Up, /* 83 0x53 */ + XK_Down, /* 84 0x54 */ + XK_Prior, /* 85 0x55 */ + XK_Next, /* 86 0x56 */ + 0, /* 87 0x57 */ + 0, /* 88 0x58 */ + XK_Right, /* 89 0x59 */ + XK_Num_Lock, /* 90 0x5a */ + XK_KP_7, /* 91 0x5b */ + XK_KP_4, /* 92 0x5c */ + XK_KP_1, /* 93 0x5d */ + 0, /* 94 0x5e */ + XK_KP_Divide, /* 95 0x5f */ + XK_KP_8, /* 96 0x60 */ + XK_KP_5, /* 97 0x61 */ + XK_KP_2, /* 98 0x62 */ + XK_KP_0, /* 99 0x63 */ + XK_KP_Multiply, /* 100 0x64 */ + XK_KP_9, /* 101 0x65 */ + XK_KP_6, /* 102 0x66 */ + XK_KP_3, /* 103 0x67 */ + XK_KP_Decimal, /* 104 0x68 */ + XK_KP_Subtract, /* 105 0x69 */ + XK_KP_Add, /* 106 0x6a */ + 0, /* 107 0x6b */ + XK_KP_Enter, /* 108 0x6c */ + 0, /* 109 0x6d */ + XK_Escape, /* 110 0x6e */ + 0, /* 111 0x6f */ + XK_F1, /* 112 0x70 */ + XK_F2, /* 113 0x71 */ + XK_F3, /* 114 0x72 */ + XK_F4, /* 115 0x73 */ + XK_F5, /* 116 0x74 */ + XK_F6, /* 117 0x75 */ + XK_F7, /* 118 0x76 */ + XK_F8, /* 119 0x77 */ + XK_F9, /* 120 0x78 */ + XK_F10, /* 121 0x79 */ + XK_F11, /* 122 0x7a */ + XK_F12, /* 123 0x7b */ + XK_Print, /* 124 0x7c */ + XK_Scroll_Lock, /* 125 0x7d */ + XK_Pause, /* 126 0x7e */ +}; + diff --git a/private/mvdm/softpc.new/base/inc/m_lpcmp.h b/private/mvdm/softpc.new/base/inc/m_lpcmp.h new file mode 100644 index 000000000..9004022cf --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/m_lpcmp.h @@ -0,0 +1,20 @@ +#ifndef _M_LPCMp_H +#define _M_LPCMp_H + +typedef struct { + Widget menu, text; + UTINY nameID, typeID; + BOOL checked, active; +} lpcmEntry; + +#define MAX_BUTTONS 10 + +#ifdef ANSI +IMPORT VOID lpcmVerifyEntry(); +IMPORT VOID lpcmRefreshPanel(lpcmEntry entry[], UTINY numEntries); +#else /* ANSI */ +IMPORT VOID lpcmVerifyEntry(); +IMPORT VOID lpcmRefreshPanel(); +#endif /* ANSI */ + +#endif /* _M_LPCMp_H */ diff --git a/private/mvdm/softpc.new/base/inc/make_dis.h b/private/mvdm/softpc.new/base/inc/make_dis.h new file mode 100644 index 000000000..760be0e5e --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/make_dis.h @@ -0,0 +1,60 @@ +/*[ + * Name: make_disk.h + * Derived From: Original + * Author: Philippa Watson + * Created On: 7 February 1992 + * Sccs Id: @(#)make_disk.h 1.7 08/19/94 + * Purpose: Interface file for make_disk.c. + * + * (c)Copyright Insignia Solutions Ltd., 1992. All rights reserved. + * +]*/ + +#ifndef SOURCE +/* this set of macros allow to do some fancy stuff for HD creation + other than just simply read the data from the Data File (e.g de-compression on the fly) + The default set is, however, equivalent to the simple case. These macros may be + overwritten in host_fio.h. + */ +#define SOURCE HOST_FILE +#define SOURCE_DESC HOST_FILE_DESC +#define SOURCE_OPEN(source_desc) host_fopen_for_read(source_desc) +#define SOURCE_READ_HEADER(buffer, size, length, source) host_fread_buffer(buffer, size, length, source) +#define SOURCE_READ_DATA(buffer, size, length, source) host_fread_buffer(buffer, size, length, source) +#define SOURCE_END(source) host_feof(source) +#define SOURCE_CLOSE(source) host_fclose(source) +#define SOURCE_FSEEK_ABS(source, pos) host_fseek_abs(source, pos) +#define SOURCE_LAST_MOD_TIME(source) getDosTimeDate(source) +#endif /* ! SOURCE */ + +/* This function returns 0 if the disk is successfully created; non-zero +** otherwise. +*/ +IMPORT int MakeDisk IPT5( + HOST_FILE_DESC, diskFileDesc, /* C string, name of disk to create */ + unsigned, size, /* size in Mb, no upper limit */ + char, disktype, /* b for bootable, n non-bootable, + v just return DOS version ID. */ + SOURCE_DESC, dataFileDesc, /* file where the compressed Dos and */ + /* Insignia data lives */ + char, zeroFill ); /* z to fill disk with zeros, n don't.*/ + +IMPORT int MakeDiskWithDelete IPT6( + HOST_FILE_DESC, diskFileDesc, /* C string, name of disk to create */ + unsigned, size, /* size in Mb, no upper limit */ + char, disktype, /* b for bootable, n non-bootable, + v just return DOS version ID. */ + SOURCE_DESC, dataFileDesc, /* file where the compressed Dos and */ + /* Insignia data lives */ + char, zeroFill , /* z to fill disk with zeros, n don't, */ + /* dont and truncate the disk. */ + int , delete_source_b /* If true then delete HD source files after use. */ + ) ; + +#ifndef DeleteHDDataFile +IMPORT void DeleteHDDataFile IPT1( HOST_FILE_DESC , dataFileDesc ) ; +#endif /* ! DeleteHDDataFile */ +#ifndef FeedbackHDCreation +IMPORT void FeedbackHDCreation IPT1( int , file_number ) ; +#endif /* ! FeedbackHDCreation */ + diff --git a/private/mvdm/softpc.new/base/inc/mark_ima.h b/private/mvdm/softpc.new/base/inc/mark_ima.h new file mode 100644 index 000000000..a33f7d796 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/mark_ima.h @@ -0,0 +1,59 @@ +/*[ + Name: mark_image.h + Derived From: base 2.0 (markformicon) + Author: gvdl + Created On: 7 May 1991 + Sccs ID: 08/10/92 @(#)mark_image.h 1.3 + Purpose: Defines an image for hunter error marking. + Notes: insignia.h must be included prior to this file. + + Format_version: 1 + Width: 64 + Height: 64 + Depth: 1 + Valid_bits_per_item: 16 + + (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved. + +]*/ + +#define MARK_HEIGHT 64 +#define MARK_WIDTH 64 +#define MARK_DEPTH 1 +#define MARK_BYTES 8 + +LOCAL USHORT mark_image[256] = +{ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x000E, 0x0000, 0x0000, 0x7000, 0x000F, 0x0000, 0x0000, 0xF000, + 0x000F, 0x8000, 0x0001, 0xF000, 0x0007, 0xC000, 0x0003, 0xE000, + 0x0003, 0xE000, 0x0007, 0xC000, 0x0001, 0xE000, 0x0007, 0x8000, + 0x0000, 0xF000, 0x000F, 0x0000, 0x0000, 0x3800, 0x001C, 0x0000, + 0x0000, 0x1C00, 0x0038, 0x0000, 0x0000, 0x0C00, 0x0030, 0x0000, + 0x0000, 0x0200, 0x0040, 0x0000, 0x0000, 0x0100, 0x0080, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0100, 0x0080, 0x0000, 0x0000, 0x0200, 0x0040, 0x0000, + 0x0000, 0x0C00, 0x0030, 0x0000, 0x0000, 0x1C00, 0x0038, 0x0000, + 0x0000, 0x3800, 0x001C, 0x0000, 0x0000, 0xF000, 0x000F, 0x0000, + 0x0001, 0xE000, 0x0007, 0x8000, 0x0003, 0xE000, 0x0007, 0xC000, + 0x0007, 0xC000, 0x0003, 0xE000, 0x000F, 0x8000, 0x0001, 0xF000, + 0x000F, 0x0000, 0x0000, 0xF000, 0x000E, 0x0000, 0x0000, 0x7000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 +}; diff --git a/private/mvdm/softpc.new/base/inc/mda.h b/private/mvdm/softpc.new/base/inc/mda.h new file mode 100644 index 000000000..3e3eef02e --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/mda.h @@ -0,0 +1,34 @@ + +/* + * VPC-XT Revision 1.0 + * + * Title : Mono Display Adaptor declarations + * + * Description : Definitions for users of the MDA + * + * Author : David Rees + * + * Notes : None + */ + + +/* SccsID[]="@(#)mda.h 1.4 02/23/93 Copyright Insignia Solutions Ltd."; */ + +/* + * ============================================================================ + * Structure/Data definitions + * ============================================================================ + */ + +/* None */ + +/* + * ============================================================================ + * External declarations and macros + * ============================================================================ + */ + +IMPORT VOID mda_init IPT0(); +IMPORT VOID mda_term IPT0(); +IMPORT VOID mda_inb IPT2(io_addr, address, half_word *, value); +IMPORT VOID mda_outb IPT2(io_addr, address, half_word, value); diff --git a/private/mvdm/softpc.new/base/inc/mouse.h b/private/mvdm/softpc.new/base/inc/mouse.h new file mode 100644 index 000000000..d6ef9d7bd --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/mouse.h @@ -0,0 +1,104 @@ +/* + * VPC-XT Revision 1.0 + * + * Title : mouse.h + * + * Description : Microsoft Mouse + * + * Author : + * + * Notes : + */ + +/* SccsID[]="@(#)mouse.h 1.7 08/10/92 Copyright Insignia Solutions Ltd."; */ + +/* + * ============================================================================ + * External declarations and macros + * ============================================================================ + */ + +/* Mouse port number definitions. */ +#define MOUSE_PORT_0 0x023c +#define MOUSE_PORT_1 0x023d +#define MOUSE_PORT_2 0x023e +#define MOUSE_PORT_3 0x023f + +#define MOUSE_PORT_START 0x023c +#define MOUSE_PORT_END 0x023f + +/* Internal mouse status word bits. */ +#define LEFT_BUTTON_DOWN 0x04 +#define LEFT_BUTTON_CHANGE 0x20 +#define RIGHT_BUTTON_DOWN 0x01 +#define RIGHT_BUTTON_CHANGE 0x08 +#define MOVEMENT 0x40 + +/* Internal mode register word bits. */ +#define HOLD 0x20 + +/* Inport internal registers. */ +#define INTERNAL_MOUSE_STAT_REG 0x0 +#define INTERNAL_DATA1_REG 0x1 +#define INTERNAL_DATA2_REG 0x2 +#define INTERNAL_DATA3_REG 0x3 +#define INTERNAL_DATA4_REG 0x4 +#define INTERFACE_STATUS_REG 0x5 +#define INTERFACE_CONTROL_REG 0x6 +#define INTERNAL_MODE_REG 0x7 + +/* + * Maximum acceleration threshold - treated as unsigned word by supplied + * handler routine so 0xffff is large rather than -1. + */ +#define MAX_THRESHOLD 0xffff + + +/* Count of the number of different bop functions. */ +#define NUM_MOUSE_FUNCS (sizeof(mouse_functions)/sizeof(SHORT (*)())) + +/* + * Definitions below are copied from MS-Windows Intel mouse driver and are + * required to acknowledge mouse interrupts. + */ +#define ACK_PORT 0x0020 +#define ACK_SLAVE_PORT 0x00a0 +#define EOI 0x20 +#define PMODE_WINDOWS 1 +#define INPORT_MAX_INTERRUPTS 30 + +/* + * Machine word bit definitions. + */ +#define BIT0 (1 << 0) +#define BIT1 (1 << 1) +#define BIT2 (1 << 2) +#define BIT3 (1 << 3) +#define BIT4 (1 << 4) +#define BIT5 (1 << 5) +#define BIT6 (1 << 6) +#define BIT7 (1 << 7) +#define BIT8 (1 << 8) +#define BIT9 (1 << 9) +#define BIT10 (1 << 10) +#define BIT11 (1 << 11) +#define BIT12 (1 << 12) +#define BIT13 (1 << 13) +#define BIT14 (1 << 14) +#define BIT15 (1 << 15) + +/* Microsoft Inport mouse driver assumes mouse has 2 buttons so so do we. */ +#define INPORT_NUMBER_BUTTONS 2 + +/* Size of Intel MOUSEINFO structure. */ +#define MOUSEINFO_SIZE 14 + +/* Offset of fuunction parameters from frame pointer in Intel. */ +#define PARAM_OFFSET 6 + +IMPORT void mouse_init IPT0(); +IMPORT void mouse_inb IPT2(io_addr, port, half_word *, value); +IMPORT void mouse_outb IPT2(io_addr, port, half_word, value); +IMPORT void mouse_send IPT4(int, Delta_x, int, Delta_y, int, left, int, right); + +IMPORT ULONG mouse_last; /* remembers last time mouse was processed */ diff --git a/private/mvdm/softpc.new/base/inc/mouse16b.h b/private/mvdm/softpc.new/base/inc/mouse16b.h new file mode 100644 index 000000000..bf4702a5c --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/mouse16b.h @@ -0,0 +1,64 @@ +/*[ + * + * File : mouse16b.h + * + * Derived from: (original) + * + * Purpose : Header file to define the interface to + * the 32 side bit of the 16 bit mouse driver + * + * This is required because we still need the + * BOPs so that the inport emulation is kept + * up to date + * + * Author : Rog + * Date : 22 Feb 1992 + * + * SCCS Gumph : @(#)mouse16b.h 1.2 01/11/94 + * + * (c) Copyright Insignia Solutions Ltd., 1992 All rights reserved + * + * Modifications : + * +]*/ + + +#ifndef _MOUSE_16B_H_ +#define _MOUSE_16B_H_ + +/* prototypes */ + +void mouse16bInstall IPT0( ); +void mouse16bSetBitmap IPT3( MOUSE_SCALAR * , hotspotX , + MOUSE_SCALAR * , hotspotY , + word * , bitmapAddr ); +void mouse16bDrawPointer IPT1( MOUSE_CURSOR_STATUS , * cursorStat ); +void mouse16bShowPointer IPT1( MOUSE_CURSOR_STATUS , * cursorStat ); +void mouse16bHidePointer IPT0( ); + +/* Data */ + +/* Structure containing all the entry points into the 16 bit code */ + +struct mouseIOTag { + sys_addr mouse_io; + sys_addr mouse_video_io; + sys_addr mouse_int1; + sys_addr mouse_version; + sys_addr mouse_copyright; + sys_addr video_io; + sys_addr mouse_int2; + sys_addr entry_point_from_32bit; + sys_addr int33function0; + sys_addr int33function1; + sys_addr int33function2; + sys_addr int33function9; + sys_addr current_position_x; + sys_addr current_position_y; + sys_addr mouseINB; + sys_addr mouseOUTB; + sys_addr mouseOUTW; +} mouseIOData; + + +#endif _MOUSE_16B_H_ diff --git a/private/mvdm/softpc.new/base/inc/mouse_io.h b/private/mvdm/softpc.new/base/inc/mouse_io.h new file mode 100644 index 000000000..181d6ce35 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/mouse_io.h @@ -0,0 +1,1145 @@ +/* + * SoftPC Revision 3.0 + * + * Title : Mouse Driver Definitions + * + * Description : Definitions of constants and structures used in SoftPC's + * emulation of the Microsoft Mouse Driver + * + * Author : Ross Beresford + * + * Notes : Values were derived from the following sources: + * Microsoft Mouse User's Guide + * IBM PC-XT Technical Reference Manuals + * Microsoft InPort Technical Note + */ + +/* + * char SccsID[] = "@(#)mouse_io.h 1.27 12/21/94 Copyright Insignia Solutions Ltd." + */ + +/* + * CONSTANTS USED IN IO FUNCTION EMULATION + * ======================================= + */ + +/* + * function definitions + */ +#define MOUSE_RESET 0 +#define MOUSE_SHOW_CURSOR 1 +#define MOUSE_HIDE_CURSOR 2 +#define MOUSE_GET_POSITION 3 +#define MOUSE_SET_POSITION 4 +#define MOUSE_GET_PRESS 5 +#define MOUSE_GET_RELEASE 6 +#define MOUSE_SET_RANGE_X 7 +#define MOUSE_SET_RANGE_Y 8 +#define MOUSE_SET_GRAPHICS 9 +#define MOUSE_SET_TEXT 10 +#define MOUSE_READ_MOTION 11 +#define MOUSE_SET_SUBROUTINE 12 +#define MOUSE_LIGHT_PEN_ON 13 +#define MOUSE_LIGHT_PEN_OFF 14 +#define MOUSE_SET_RATIO 15 +#define MOUSE_CONDITIONAL_OFF 16 +#define MOUSE_UNRECOGNISED 17 +#define MOUSE_UNRECOGNISED_2 18 +#define MOUSE_SET_DOUBLE_SPEED 19 +#define MOUSE_SWAP_SUBROUTINE 20 +#define MOUSE_GET_STATE_SIZE 21 +#define MOUSE_SAVE_STATE 22 +#define MOUSE_RESTORE_STATE 23 +#define MOUSE_SET_ALT_SUBROUTINE 24 +#define MOUSE_GET_ALT_SUBROUTINE 25 +#define MOUSE_SET_SENSITIVITY 26 +#define MOUSE_GET_SENSITIVITY 27 +#define MOUSE_SET_INT_RATE 28 +#define MOUSE_SET_POINTER_PAGE 29 +#define MOUSE_GET_POINTER_PAGE 30 +#define MOUSE_DRIVER_DISABLE 31 +#define MOUSE_DRIVER_ENABLE 32 +#define MOUSE_SOFT_RESET 33 +#define MOUSE_SET_LANGUAGE 34 +#define MOUSE_GET_LANGUAGE 35 +#define MOUSE_GET_INFO 36 +#define MOUSE_GET_DRIVER_INFO 37 +#define MOUSE_GET_MAX_COORDS 38 +#define MOUSE_GET_MASKS_AND_MICKEYS 39 +#define MOUSE_SET_VIDEO_MODE 40 +#define MOUSE_ENUMERATE_VIDEO_MODES 41 +#define MOUSE_GET_CURSOR_HOT_SPOT 42 +#define MOUSE_LOAD_ACCELERATION_CURVES 43 +#define MOUSE_READ_ACCELERATION_CURVES 44 +#define MOUSE_SET_GET_ACTIVE_ACCELERATION_CURVE 45 +#define MOUSE_MICROSOFT_INTERNAL 46 +#define MOUSE_HARDWARE_RESET 47 +#define MOUSE_SET_GET_BALLPOINT_INFO 48 +#define MOUSE_GET_MIN_MAX_VIRTUAL_COORDS 49 +#define MOUSE_GET_ACTIVE_ADVANCED_FUNCTIONS 50 +#define MOUSE_GET_SWITCH_SETTINGS 51 +#define MOUSE_GET_MOUSE_INI 52 + +#define MOUSE_FUNCTION_MAXIMUM 53 + +#define mouse_function_in_range(function) \ + (function >= 0 && function < MOUSE_FUNCTION_MAXIMUM) + +#define MOUSE_SPECIAL_COPYRIGHT 0x4d +#define MOUSE_SPECIAL_VERSION 0x6d + +/* + * button definitions + */ +#define MOUSE_LEFT_BUTTON 0 +#define MOUSE_RIGHT_BUTTON 1 +#define MOUSE_LEFT_BUTTON_DOWN_BIT (1 << MOUSE_LEFT_BUTTON) +#define MOUSE_RIGHT_BUTTON_DOWN_BIT (1 << MOUSE_RIGHT_BUTTON) + +#define mouse_button_description(x) (x ? "DOWN" : "UP") + +#define MOUSE_BUTTON_MAXIMUM 2 + +#define mouse_button_in_range(button) \ + (button >= 0 && button < MOUSE_BUTTON_MAXIMUM) + +/* + * mickey to pixel ratio definitions + */ +#define MOUSE_RATIO_X_DEFAULT 8 +#define MOUSE_RATIO_Y_DEFAULT 16 +#define MOUSE_RATIO_SCALE_FACTOR 8 + +/* + * The upper limit of this has been commented out, as it is redundant + * when applied to a signed short. + */ +#define mouse_ratio_in_range(ratio) (ratio > 0/* && ratio <= 32767*/) + +/* + * mouse sensitivity definitions + */ +#define MOUSE_SENS_MULT 100 +#define MOUSE_SENS_MIN 1 +#define MOUSE_SENS_MIN_VAL (MOUSE_SENS_MULT* 1/32) +#define MOUSE_SENS_DEF 50 +#define MOUSE_SENS_DEF_VAL (MOUSE_SENS_MULT* 1) +#define MOUSE_SENS_MAX 100 +#define MOUSE_SENS_MAX_VAL (MOUSE_SENS_MULT* 14/4) + +#define mouse_sens_in_range(sens) (sens >= MOUSE_SENS_MIN && sens <= MOUSE_SENS_MAX) + +#define MOUSE_DOUBLE_DEF 50 + +/* + * text cursor definitions + */ + +#define MOUSE_TEXT_CURSOR_TYPE_SOFTWARE 0 +#define MOUSE_TEXT_CURSOR_TYPE_HARDWARE 1 + +#define MOUSE_TEXT_CURSOR_TYPE_DEFAULT MOUSE_TEXT_CURSOR_TYPE_SOFTWARE +#define MOUSE_TEXT_CURSOR_TYPE_MAXIMUM 2 + +#define mouse_text_cursor_type_in_range(type) \ + (type >= 0 && type < MOUSE_TEXT_CURSOR_TYPE_MAXIMUM) + +#define MOUSE_TEXT_SCREEN_MASK_DEFAULT 0xffff +#define MOUSE_TEXT_CURSOR_MASK_DEFAULT 0x7700 + +/* + * graphics cursor definitions + */ + +#define MOUSE_GRAPHICS_HOT_SPOT_X_DEFAULT -1 +#define MOUSE_GRAPHICS_HOT_SPOT_Y_DEFAULT -1 +#define MOUSE_GRAPHICS_CURSOR_WIDTH 16 +#define MOUSE_GRAPHICS_CURSOR_DEPTH 16 + +#define MOUSE_GRAPHICS_SCREEN_MASK_DEFAULT \ +{ 0x3fff, 0x1fff, 0x0fff, 0x07ff, \ + 0x03ff, 0x01ff, 0x00ff, 0x007f, \ + 0x003f, 0x001f, 0x01ff, 0x10ff, \ + 0x30ff, 0xf87f, 0xf87f, 0xfc3f } +#define MOUSE_GRAPHICS_CURSOR_MASK_DEFAULT \ +{ 0x0000, 0x4000, 0x6000, 0x7000, \ + 0x7800, 0x7c00, 0x7e00, 0x7f00, \ + 0x7f80, 0x7fc0, 0x7c00, 0x4600, \ + 0x0600, 0x0300, 0x0300, 0x0000 } + +/* + * call mask definitions + */ +#define MOUSE_CALL_MASK_POSITION_BIT (1 << 0) +#define MOUSE_CALL_MASK_LEFT_PRESS_BIT (1 << 1) +#define MOUSE_CALL_MASK_LEFT_RELEASE_BIT (1 << 2) +#define MOUSE_CALL_MASK_RIGHT_PRESS_BIT (1 << 3) +#define MOUSE_CALL_MASK_RIGHT_RELEASE_BIT (1 << 4) +#define MOUSE_CALL_MASK_SHIFT_KEY_BIT (1 << 5) +#define MOUSE_CALL_MASK_CTRL_KEY_BIT (1 << 6) +#define MOUSE_CALL_MASK_ALT_KEY_BIT (1 << 7) +#define MOUSE_CALL_MASK_SIGNIFICANT_BITS \ + (MOUSE_CALL_MASK_POSITION_BIT | \ + MOUSE_CALL_MASK_LEFT_PRESS_BIT | \ + MOUSE_CALL_MASK_LEFT_RELEASE_BIT | \ + MOUSE_CALL_MASK_RIGHT_PRESS_BIT | \ + MOUSE_CALL_MASK_RIGHT_RELEASE_BIT) +#define MOUSE_CALL_MASK_KEY_BITS \ + (MOUSE_CALL_MASK_SHIFT_KEY_BIT | \ + MOUSE_CALL_MASK_CTRL_KEY_BIT | \ + MOUSE_CALL_MASK_ALT_KEY_BIT) +#define NUMBER_ALT_SUBROUTINES 3 + + +/* + * virtual screen definitions + */ +#define MOUSE_VIRTUAL_SCREEN_ORIGIN_X 0 +#define MOUSE_VIRTUAL_SCREEN_ORIGIN_Y 0 +#define MOUSE_VIRTUAL_SCREEN_WIDTH 640 +#define MOUSE_VIRTUAL_SCREEN_DEPTH 200 +/* for CGA this is used all the time, for EGA it's replaced by a variable and only used for default initialisations */ + + +/* + * double speed definitions + */ +#define MOUSE_TIMER_INTERRUPTS_PER_SECOND 30 +#define MOUSE_DOUBLE_SPEED_THRESHOLD_DEFAULT 4 +#define MOUSE_DOUBLE_SPEED_SCALE 2 + +/* + * driver state definitions + */ +#define MOUSE_CURSOR_DISPLAYED 0 +#define MOUSE_CURSOR_DEFAULT (MOUSE_CURSOR_DISPLAYED - 1) + +#define MOUSE_UNINSTALLED 0 +#define MOUSE_INSTALLED (~MOUSE_UNINSTALLED) + +#define MOUSE_TYPE_INPORT 3 + +/* + * conditional off area definitions + */ +#define MOUSE_CONDITIONAL_OFF_MARGIN_X 24 +#define MOUSE_CONDITIONAL_OFF_MARGIN_Y 8 + +/* + * CONSTANTS USED IN BIOS ACCESS + * ============================= + */ + +/* + * Video io function numbers + */ +#define MOUSE_VIDEO_SET_MODE 0 +#ifdef V7VGA +#define MOUSE_V7_VIDEO_SET_MODE 0x6f05 +#endif /* V7VGA */ +#define MOUSE_VIDEO_SET_CURSOR 1 +#define MOUSE_VIDEO_READ_LIGHT_PEN 4 +#define MOUSE_VIDEO_WRITE_TELETYPE 14 +#define MOUSE_VIDEO_LOAD_FONT 17 + +/* + * Number of valid video modes + */ + +#ifdef EGG +#ifdef VGG +#define MOUSE_VIDEO_MODE_MAXIMUM 0x14 +#else +#define MOUSE_VIDEO_MODE_MAXIMUM 0x11 +#endif /* VGG */ +#else +#define MOUSE_VIDEO_MODE_MAXIMUM 8 +#endif + + +/* + * Video variable addresses in BIOS data area + */ +#define MOUSE_VIDEO_CRT_MODE 0x449 +#define MOUSE_VIDEO_CRT_START 0x44e +#define MOUSE_VIDEO_CARD_BASE 0x463 + +/* + * CONSTANTS USED IN ADAPTER ACCESS + * ================================ + */ + +/* + * graphics adapter (CGA or MDA) definitions + */ +#define MOUSE_CURSOR_HIGH_BYTE 0xe +#define MOUSE_CURSOR_LOW_BYTE 0xf + +#define MOUSE_GRAPHICS_MODE_PITCH 640 + +/* + * InPort (bus mouse) adapter definitions + */ +#define MOUSE_INPORT_ADDRESS_REG 0x23c +#define MOUSE_INPORT_DATA_REG 0x23d +#define MOUSE_INPORT_ID_REG 0x23e +#define MOUSE_INPORT_TEST_REG 0x23f + +#define MOUSE_INPORT_ADDRESS_RESET_BIT (1 << 7) + +#define MOUSE_INPORT_ADDRESS_STATUS 0x0 +#define MOUSE_INPORT_ADDRESS_DATA1 0x1 +#define MOUSE_INPORT_ADDRESS_DATA2 0x2 +#define MOUSE_INPORT_ADDRESS_DATA3 0x3 +#define MOUSE_INPORT_ADDRESS_DATA4 0x4 +#define MOUSE_INPORT_ADDRESS_IF_STATUS 0x5 +#define MOUSE_INPORT_ADDRESS_IF_CONTROL 0x6 +#define MOUSE_INPORT_ADDRESS_MODE 0x7 + +#define MOUSE_INPORT_MODE_HOLD_BIT (1 << 5) + +#define MOUSE_INPORT_STATUS_B3_STATUS_BIT (1 << 0) +#define MOUSE_INPORT_STATUS_B2_STATUS_BIT (1 << 1) +#define MOUSE_INPORT_STATUS_B1_STATUS_BIT (1 << 2) +#define MOUSE_INPORT_STATUS_B3_DELTA_BIT (1 << 3) +#define MOUSE_INPORT_STATUS_B2_DELTA_BIT (1 << 4) +#define MOUSE_INPORT_STATUS_B1_DELTA_BIT (1 << 5) +#define MOUSE_INPORT_STATUS_MOVEMENT_BIT (1 << 6) +#define MOUSE_INPORT_STATUS_COMPLETE_BIT (1 << 7) + +#define MOUSE_INPORT_STATUS_B1_TRANSITION_MASK \ + (MOUSE_INPORT_STATUS_B1_STATUS_BIT | MOUSE_INPORT_STATUS_B1_DELTA_BIT) + +#define MOUSE_INPORT_STATUS_B1_UP \ + (0 | 0) +#define MOUSE_INPORT_STATUS_B1_PRESSED \ + (MOUSE_INPORT_STATUS_B1_STATUS_BIT | MOUSE_INPORT_STATUS_B1_DELTA_BIT) +#define MOUSE_INPORT_STATUS_B1_DOWN \ + (MOUSE_INPORT_STATUS_B1_STATUS_BIT | 0) +#define MOUSE_INPORT_STATUS_B1_RELEASED \ + (0 | MOUSE_INPORT_STATUS_B1_DELTA_BIT) + +#define MOUSE_INPORT_STATUS_B3_TRANSITION_MASK \ + (MOUSE_INPORT_STATUS_B3_STATUS_BIT | MOUSE_INPORT_STATUS_B3_DELTA_BIT) + +#define MOUSE_INPORT_STATUS_B3_UP \ + (0 | 0) +#define MOUSE_INPORT_STATUS_B3_PRESSED \ + (MOUSE_INPORT_STATUS_B3_STATUS_BIT | MOUSE_INPORT_STATUS_B3_DELTA_BIT) +#define MOUSE_INPORT_STATUS_B3_DOWN \ + (MOUSE_INPORT_STATUS_B3_STATUS_BIT | 0) +#define MOUSE_INPORT_STATUS_B3_RELEASED \ + (0 | MOUSE_INPORT_STATUS_B3_DELTA_BIT) + +#define MOUSE_INPORT_ID_SIGNATURE 0xde + +#define MOUSE_INPORT_MODE_VALUE 0x09 + + +/* Conditions to determine if the mouse pointer emulation is enabled */ +/*@ACW*/ + +#define POINTER_EMULATION_OS 1 /* use O.S. pointer for input */ +#define POINTER_EMULATION_SOFTPC 0 /* use softpc pointer emulation */ + + + +/* + * DECLARATION OF PUBLIC FUNCTIONS + * =============================== + */ + +/* + * NB functions called via BOP instructions are declared in bios.h + */ +extern boolean mouse_tester(); + +/* + * DEFINITION OF OBJECT TYPES USED IN THE EMULATION + * ================================================ + */ + +/* + * A bit address relative to the start of the CGA regen buffer in + * graphics mode + */ +typedef sys_addr MOUSE_BIT_ADDRESS; + +/* + * A byte address relative to the start of the CGA regen buffer in + * text or graphics mode + */ +typedef sys_addr MOUSE_BYTE_ADDRESS; + +/* + * A scalar value + */ +typedef short MOUSE_SCALAR; + +/* + * A counter value + */ +typedef short MOUSE_COUNT; + +/* + * A state value + */ +typedef short MOUSE_STATE; + +/* + * A speed value in Mickeys per timer interval + */ +typedef short MOUSE_SPEED; + +/* + * A user subroutine call mask + */ +typedef unsigned short MOUSE_CALL_MASK; + +/* + * A word of screen data + */ + +typedef unsigned short MOUSE_SCREEN_DATA; + +/* + * 32 bits of screen data for graphics mode - 1 byte replicated four times + */ + +typedef IU32 MOUSE_SCREEN_DATA_GR; + +/* + * A vector + */ +typedef struct +{ + MOUSE_SCALAR x; + MOUSE_SCALAR y; +} MOUSE_VECTOR; + +/* + * A virtual screen position + */ +typedef struct +{ + MOUSE_SCALAR x; + MOUSE_SCALAR y; +} MOUSE_POINT; + +/* + * A virtual screen area + */ +typedef struct +{ + MOUSE_POINT top_left; + MOUSE_POINT bottom_right; +} MOUSE_AREA; + +/* + * A cursor status frame + */ +typedef struct +{ + MOUSE_POINT position; + MOUSE_STATE button_status; +} MOUSE_CURSOR_STATUS; + +/* + * A button status frame + */ +typedef struct +{ + MOUSE_POINT press_position; + MOUSE_POINT release_position; + MOUSE_COUNT press_count; + MOUSE_COUNT release_count; +} MOUSE_BUTTON_STATUS; + +/* + * A text cursor + */ +typedef struct +{ + MOUSE_SCREEN_DATA screen; + MOUSE_SCREEN_DATA cursor; +} MOUSE_SOFTWARE_TEXT_CURSOR; + +/* + * A graphics cursor + */ +typedef struct +{ + MOUSE_POINT hot_spot; + MOUSE_VECTOR size; + MOUSE_SCREEN_DATA screen[MOUSE_GRAPHICS_CURSOR_DEPTH]; + MOUSE_SCREEN_DATA cursor[MOUSE_GRAPHICS_CURSOR_DEPTH]; + MOUSE_SCREEN_DATA_GR screen_lo[MOUSE_GRAPHICS_CURSOR_DEPTH]; + MOUSE_SCREEN_DATA_GR screen_hi[MOUSE_GRAPHICS_CURSOR_DEPTH]; + MOUSE_SCREEN_DATA_GR cursor_lo[MOUSE_GRAPHICS_CURSOR_DEPTH]; + MOUSE_SCREEN_DATA_GR cursor_hi[MOUSE_GRAPHICS_CURSOR_DEPTH]; +} MOUSE_GRAPHICS_CURSOR; + +/* + * An InPort data frame + */ +typedef struct +{ + half_word status; + signed_char data_x; + signed_char data_y; +} MOUSE_INPORT_DATA; + +/* + * DEFINITION OF METHODS THAT MAY BE APPLIED TO THE OBJECT TYPES + * ============================================================= + */ + +/* + * MOUSE_POINT methods + */ + +/* + * Coerce the point object "*point_ptr" to lie within the + * area object "*area_ptr" + */ +#define point_coerce_to_area(point_ptr, area_ptr) \ +{ \ + if ((point_ptr)->x < (area_ptr)->top_left.x) \ + (point_ptr)->x = (area_ptr)->top_left.x; \ + else if ((point_ptr)->x > (area_ptr)->bottom_right.x) \ + (point_ptr)->x = (area_ptr)->bottom_right.x;\ + \ + if ((point_ptr)->y < (area_ptr)->top_left.y) \ + (point_ptr)->y = (area_ptr)->top_left.y; \ + else if ((point_ptr)->y > (area_ptr)->bottom_right.y) \ + (point_ptr)->y = (area_ptr)->bottom_right.y;\ +} + +/* + * Coerce the point object "*point_ptr" to lie on the grid + * defined by the vector object "*grid_ptr" + */ +#define point_coerce_to_grid(point_ptr, grid_ptr) \ +{ \ + (point_ptr)->x -= (point_ptr)->x % (grid_ptr)->x; \ + (point_ptr)->y -= (point_ptr)->y % (grid_ptr)->y; \ +} + +/* + * Copy "*source_ptr" to "*destination_ptr" + */ +#define point_copy(source_ptr, destination_ptr) \ +{ \ + (destination_ptr)->x = (source_ptr)->x; \ + (destination_ptr)->y = (source_ptr)->y; \ +} + +/* + * Move "*point_ptr" by "*offset_ptr" + */ +#define point_translate(point_ptr, offset_ptr) \ +{ \ + (point_ptr)->x += (offset_ptr)->x; \ + (point_ptr)->y += (offset_ptr)->y; \ +} + +/* + * Move "*point_ptr" back by "*offset_ptr" + */ +#define point_translate_back(point_ptr, offset_ptr) \ +{ \ + (point_ptr)->x -= (offset_ptr)->x; \ + (point_ptr)->y -= (offset_ptr)->y; \ +} + +/* + * Set "*point_ptr" from the "x_value" and "y_value" + */ +#define point_set(point_ptr, x_value, y_value) \ +{ \ + (point_ptr)->x = x_value; \ + (point_ptr)->y = y_value; \ +} + + + +/* + * MOUSE_AREA methods + */ + +/* + * Transform the area "*source_ptr" so that the top left point + * really does lie above and to the left of the bottom right + * point + */ +#define area_normalise(area_ptr) \ +{ \ + MOUSE_SCALAR temp; \ + \ + if ((area_ptr)->top_left.x > (area_ptr)->bottom_right.x)\ + { \ + temp = (area_ptr)->top_left.x; \ + (area_ptr)->top_left.x = (area_ptr)->bottom_right.x;\ + (area_ptr)->bottom_right.x = temp; \ + } \ + \ + if ((area_ptr)->top_left.y > (area_ptr)->bottom_right.y)\ + { \ + temp = (area_ptr)->top_left.y; \ + (area_ptr)->top_left.y = (area_ptr)->bottom_right.y;\ + (area_ptr)->bottom_right.y = temp; \ + } \ +} + +/* + * Copy "*source_ptr" to "*desination_ptr" + */ +#define area_copy(source_ptr, destination_ptr) \ + memcpy(destination_ptr,source_ptr, sizeof(MOUSE_AREA)) + +/* + * Answer whether "*area1_ptr" intersects "*area2_ptr" + */ +#define area_is_intersected_by_area(area1_ptr, area2_ptr) \ +( ((area1_ptr)->bottom_right.x > (area2_ptr)->top_left.x) \ + && ((area1_ptr)->bottom_right.y > (area2_ptr)->top_left.y) \ + && ((area1_ptr)->top_left.x < (area2_ptr)->bottom_right.x) \ + && ((area1_ptr)->top_left.y < (area2_ptr)->bottom_right.y)) + +/* + * Clip "*area1_ptr" so that it lies fully within "*area2_ptr" + */ +#define area_coerce_to_area(area1_ptr, area2_ptr) \ +{ \ + if ((area1_ptr)->top_left.x < (area2_ptr)->top_left.x) \ + (area1_ptr)->top_left.x = (area2_ptr)->top_left.x; \ + else if ((area1_ptr)->top_left.x > (area2_ptr)->bottom_right.x) \ + (area1_ptr)->top_left.x = (area2_ptr)->bottom_right.x; \ + \ + if ((area1_ptr)->bottom_right.x < (area2_ptr)->top_left.x) \ + (area1_ptr)->bottom_right.x = (area2_ptr)->top_left.x; \ + else if ((area1_ptr)->bottom_right.x > (area2_ptr)->bottom_right.x)\ + (area1_ptr)->bottom_right.x = (area2_ptr)->bottom_right.x;\ + \ + if ((area1_ptr)->top_left.y < (area2_ptr)->top_left.y) \ + (area1_ptr)->top_left.y = (area2_ptr)->top_left.y; \ + else if ((area1_ptr)->top_left.y > (area2_ptr)->bottom_right.y) \ + (area1_ptr)->top_left.y = (area2_ptr)->bottom_right.y; \ + \ + if ((area1_ptr)->bottom_right.y < (area2_ptr)->top_left.y) \ + (area1_ptr)->bottom_right.y = (area2_ptr)->top_left.y; \ + else if ((area1_ptr)->bottom_right.y > (area2_ptr)->bottom_right.y)\ + (area1_ptr)->bottom_right.y = (area2_ptr)->bottom_right.y;\ +} + +/* + * Return the width of "*area_ptr" + */ +#define area_width(area_ptr) \ +((area_ptr)->bottom_right.x - (area_ptr)->top_left.x) + +/* + * Return the depth of "*area_ptr" + */ +#define area_depth(area_ptr) \ +((area_ptr)->bottom_right.y - (area_ptr)->top_left.y) + + + + +/* + * MOUSE_VECTOR methods + */ + +/* + * Multiply "*vector1_ptr" by "*vector2_ptr" + */ +#define vector_multiply_by_vector(vector1_ptr, vector2_ptr) \ +{ \ + (vector1_ptr)->x *= (vector2_ptr)->x; \ + (vector1_ptr)->y *= (vector2_ptr)->y; \ +} + +/* + * Divide "*vector1_ptr" by "*vector2_ptr" + */ +#define vector_divide_by_vector(vector1_ptr, vector2_ptr) \ +{ \ + (vector1_ptr)->x /= (vector2_ptr)->x; \ + (vector1_ptr)->y /= (vector2_ptr)->y; \ +} + +/* + * Make "*vector1_ptr" the modulus of the division of "*vector1_ptr" + * by "*vector2_ptr" + */ +#define vector_mod_by_vector(vector1_ptr, vector2_ptr) \ +{ \ + (vector1_ptr)->x %= (vector2_ptr)->x; \ + (vector1_ptr)->y %= (vector2_ptr)->y; \ +} + +/* + * Scale "*vector_ptr" by scale factor "scale" + */ +#define vector_scale(vector_ptr, scale) \ +{ \ + (vector_ptr)->x *= scale; \ + (vector_ptr)->y *= scale; \ +} + +/* + * Set "*vector_ptr" from the "x_value" and "y_value" + */ +#define vector_set(vector_ptr, x_value, y_value) \ +{ \ + (vector_ptr)->x = x_value; \ + (vector_ptr)->y = y_value; \ +} + + + + +/* + * MOUSE_SCALAR methods + */ + +#define scalar_absolute(x) ((x) >= 0 ? (x) : -(x)) + + + + +/* + * MOUSE_SOFTWARE_TEXT_CURSOR and MOUSE_GRAPHICS_CURSOR methods + */ + +#define software_text_cursor_copy(source_ptr, destination_ptr) \ +{ \ + (destination_ptr)->screen = (source_ptr)->screen; \ + (destination_ptr)->cursor = (source_ptr)->cursor; \ +} + +#define graphics_cursor_copy(source_ptr, destination_ptr) \ + memcpy(destination_ptr,source_ptr, sizeof(MOUSE_GRAPHICS_CURSOR)) + +#define SHIFT_VAL ((IU32)0xff0000ff) + +/* + * Not all platforms support cursor larger than 16 x 16. Some do, some don't. + * We keep a list of vendors with the boolean cursor_is_big set to TRUE if + * 32 x 32 cursors are supported. + */ + +struct VENDOR_INFO +{ + char *vendor_name; + boolean cursor_is_big; +}; + + /* used to determine whether adapter is in text or graphics mode, by peeping at the BIOS mode variable */ +#define in_text_mode() (sas_hw_at_no_check(vd_video_mode) < 4 || sas_hw_at_no_check(vd_video_mode) == 7) + +typedef struct +{ + void (*restore_cursor) IPT0(); + void (*deinstall) IPT0(); + BOOL (*installed) IPT0(); + BOOL (*in_use) IPT0(); + void (*reset) IPT0(); + void (*set_position) IPT2(USHORT,newx, USHORT,newy); + void (*set_graphics) IPT3(MOUSE_SCALAR *,xptr,MOUSE_SCALAR *,yptr,word *,ba); + void (*cursor_display) IPT0(); + void (*cursor_undisplay) IPT0(); + void (*cursor_mode_change) IPT0(); +} HOSTMOUSEFUNCS; + +#if defined(HOST_MOUSE) || defined(NTVDM) + +IMPORT HOSTMOUSEFUNCS *working_mouse_funcs; + +#define host_mouse_restore_cursor()\ + (working_mouse_funcs->restore_cursor)() + +#define host_deinstall_host_mouse()\ + (working_mouse_funcs->deinstall)() + +#define host_mouse_installed()\ + (working_mouse_funcs->installed)() + +#define host_mouse_in_use()\ + (working_mouse_funcs->in_use)() + +#define host_mouse_reset()\ + (working_mouse_funcs->reset)() + +#define host_mouse_set_position(x,y)\ + (working_mouse_funcs->set_position)(x,y) + +#define host_mouse_set_graphics(x,y,z)\ + (working_mouse_funcs->set_graphics)(x,y,z) + +#define host_mouse_cursor_display()\ + (working_mouse_funcs->cursor_display)() + +#define host_mouse_cursor_undisplay()\ + (working_mouse_funcs->cursor_undisplay)() + +#define host_mouse_cursor_mode_change()\ + (working_mouse_funcs->cursor_mode_change)() + +#else /* HOST_MOUSE */ + +#define host_mouse_restore_cursor() + +#define host_deinstall_host_mouse() + +#define host_mouse_installed() FALSE + +#define host_mouse_in_use() FALSE + +#define host_mouse_reset() + +#define host_mouse_set_position(x,y) + +#define host_mouse_set_graphics(x,y,z) + +#define host_mouse_cursor_display() + +#define host_mouse_cursor_undisplay() + +#define host_mouse_cursor_mode_change() + +#endif /* HOST_MOUSE */ + +#ifdef NTVDM +VOID host_enable_delta_motion IPT0(); +VOID host_disable_delta_motion IPT0(); +#ifdef X86GFX +extern void host_mouse_conditional_off_enabled(void); +#else +extern void mouse_video_mode_changed(int new_mode); +#endif + +#endif /* NTVDM */ + + +/* + Define (if not already defined EGA register sizes). Unfortunately + a wide range of files include this file and historically it has + just become a large unstructured lump of definitions. Given many + users don't need the following Instance Variable Definitions, avoid + making all these files include egavideo.h by copying the relevant + definitions here. + */ + +#ifndef EGA_PARMS_SEQ_SIZE +#define EGA_PARMS_SEQ_SIZE 4 +#endif + +#ifndef EGA_PARMS_CRTC_SIZE +#define EGA_PARMS_CRTC_SIZE 25 +#endif + +#ifndef EGA_PARMS_ATTR_SIZE +#define EGA_PARMS_ATTR_SIZE 20 +#endif + +#ifndef EGA_PARMS_GRAPH_SIZE +#define EGA_PARMS_GRAPH_SIZE 9 +#endif + + +/* + Structure to represent the acceleration data. + */ +#define NR_ACCL_CURVES 4 +#define NR_ACCL_MICKEY_COUNTS 32 +#define NR_ACCL_SCALE_FACTORS 32 +#define NR_ACCL_NAME_CHARS 16 +typedef struct + { + half_word ac_length[NR_ACCL_CURVES]; + half_word ac_count[NR_ACCL_CURVES][NR_ACCL_MICKEY_COUNTS]; + half_word ac_scale[NR_ACCL_CURVES][NR_ACCL_SCALE_FACTORS]; + half_word ac_name[NR_ACCL_CURVES][NR_ACCL_NAME_CHARS]; + } ACCELERATION_CURVE_DATA; + +/* + Structure which represents the saved mouse state (context) for DOS + programs. + + button_transitions - For functions 5 & 6. + mouse_gear - Mickey to Pixel Ratio Declarations. NB all mouse gears are + scaled by MOUSE_RATIO_SCALE_FACTOR. + mouse_sens - Sensitivity. NB Sensitivity is multiplied in BEFORE Mickey to + Pixels ratios. + text_cursor_type - This is either HARDWARE or SOFTWARE. + black_hole - Conditional off area. + cursor_flag - Internal cursor flag. + cursor_status - Cursor button status and virtual screen position. + cursor_window - Virtual screen window constraining the cursor. + light_pen_mode - Light pen emulation mode. + mouse_motion - Accumulated Mickey counts for function 11. + mouse_raw_motion - Accumulated raw Mickey counts for func 39. + cursor_position, cursor_fractional_position - Integral and fractional parts + of raw cursor position. + cursor_page - Video page mouse pointer is currently on. + active_acceleration_curve - Currently active acceleration curve. In + range 1-4. + acceleration_curve_data - The acceleration curve data. + next_video_mode - Tracks enumerated video modes for func 41. + */ +typedef struct + { + MOUSE_BUTTON_STATUS MC_button_transitions[MOUSE_BUTTON_MAXIMUM]; + MOUSE_VECTOR MC_mouse_gear; + MOUSE_VECTOR MC_mouse_sens; + MOUSE_VECTOR MC_mouse_sens_val; + word MC_mouse_double_thresh; + MOUSE_STATE MC_text_cursor_type; + MOUSE_SOFTWARE_TEXT_CURSOR MC_software_text_cursor; + MOUSE_GRAPHICS_CURSOR MC_graphics_cursor; + word MC_user_subroutine_segment; + word MC_user_subroutine_offset; + MOUSE_CALL_MASK MC_user_subroutine_call_mask; + boolean MC_alt_user_subroutines_active; + word MC_alt_user_subroutine_segment[NUMBER_ALT_SUBROUTINES]; + word MC_alt_user_subroutine_offset[NUMBER_ALT_SUBROUTINES]; + MOUSE_CALL_MASK MC_alt_user_subroutine_call_mask[NUMBER_ALT_SUBROUTINES]; + MOUSE_AREA MC_black_hole; + MOUSE_SPEED MC_double_speed_threshold; + int MC_cursor_flag; + MOUSE_CURSOR_STATUS MC_cursor_status; + MOUSE_AREA MC_cursor_window; + boolean MC_light_pen_mode; + MOUSE_VECTOR MC_mouse_motion; + MOUSE_VECTOR MC_mouse_raw_motion; + MOUSE_POINT MC_cursor_position_default; + MOUSE_POINT MC_cursor_position; + MOUSE_POINT MC_cursor_fractional_position; + int MC_cursor_page; + int MC_active_acceleration_curve; + ACCELERATION_CURVE_DATA MC_acceleration_curve_data; + int MC_next_video_mode; + } MOUSE_CONTEXT; + +/* + Instance Variables for Mickey Mouse (MM) Driver, ie those variables which + must be set up for each Virtual Machine under Windows 3.x. The NIDDB Manager + (cf virtual.c) basically forces us to define these in one memory area. + + text_cursor_background - Area from which background can be restored. + graphics_cursor_background - Area from which background can be restored. + save_area - Actual area of screen covered by graphics cursor. + black_hole_default - Conditional off area. + ega_default_crtc - Pointers to default EGA register values. + ega_default_seq - + ega_default_graph - + ega_default_attr - + ega_default_misc - + ega_current_crtc - Current EGA register state, according to mouse driver. + ega_current_graph - + ega_current_seq - + ega_current_attr - + ega_current_misc - + cursor_EM_disabled - Indicates cursor should be disabled inside a + windowed Enhanced Mode DOS box. This overrides + the cursor_flag variable. + */ +typedef struct + { + MOUSE_CONTEXT MM_IN_mouse_context; + USHORT MM_IN_mouse_driver_disabled; + SHORT MM_IN_current_video_mode; + MOUSE_SCREEN_DATA MM_IN_text_cursor_background; + MOUSE_SCREEN_DATA MM_IN_graphics_cursor_background[MOUSE_GRAPHICS_CURSOR_DEPTH]; + boolean MM_IN_save_area_in_use; + MOUSE_POINT MM_IN_save_position; + MOUSE_AREA MM_IN_save_area; + boolean MM_IN_user_subroutine_critical; + MOUSE_CALL_MASK MM_IN_last_condition_mask; + word MM_IN_saved_AX; + word MM_IN_saved_BX; + word MM_IN_saved_CX; + word MM_IN_saved_DX; + word MM_IN_saved_SI; + word MM_IN_saved_DI; + word MM_IN_saved_ES; + word MM_IN_saved_BP; + word MM_IN_saved_DS; + MOUSE_AREA MM_IN_virtual_screen; + MOUSE_VECTOR MM_IN_cursor_grid; + MOUSE_VECTOR MM_IN_text_grid; + MOUSE_AREA MM_IN_black_hole_default; + word MM_IN_saved_int33_segment; + word MM_IN_saved_int33_offset; + word MM_IN_saved_int10_segment; + word MM_IN_saved_int10_offset; + word MM_IN_saved_int0A_segment; + word MM_IN_saved_int0A_offset; + IBOOL MM_IN_int10_chained; + +#ifdef MOUSE_16_BIT + IBOOL MM_IN_is_graphics_mode; +#endif /* MOUSE_16_BIT */ + +#ifdef EGG +#ifndef REAL_VGA +#ifdef VGG + UTINY MM_IN_vga_background + [MOUSE_GRAPHICS_CURSOR_DEPTH][MOUSE_GRAPHICS_CURSOR_WIDTH]; +#endif /* VGG */ + + MOUSE_SCREEN_DATA_GR MM_IN_ega_backgrnd_lo[MOUSE_GRAPHICS_CURSOR_DEPTH]; + MOUSE_SCREEN_DATA_GR MM_IN_ega_backgrnd_mid[MOUSE_GRAPHICS_CURSOR_DEPTH]; + MOUSE_SCREEN_DATA_GR MM_IN_ega_backgrnd_hi[MOUSE_GRAPHICS_CURSOR_DEPTH]; +#endif /* nREAL_VGA */ + + sys_addr MM_IN_ega_default_crtc; + sys_addr MM_IN_ega_default_seq; + sys_addr MM_IN_ega_default_graph; + sys_addr MM_IN_ega_default_attr; + sys_addr MM_IN_ega_default_misc; + half_word MM_IN_ega_current_crtc[EGA_PARMS_CRTC_SIZE]; + half_word MM_IN_ega_current_graph[EGA_PARMS_GRAPH_SIZE]; + half_word MM_IN_ega_current_seq[EGA_PARMS_SEQ_SIZE]; + half_word MM_IN_ega_current_attr[EGA_PARMS_ATTR_SIZE]; + half_word MM_IN_ega_current_misc; +#endif /* EGG */ + +#ifdef HERC + MOUSE_AREA MM_IN_HERC_graphics_virtual_screen; +#endif /* HERC */ + boolean MM_IN_cursor_EM_disabled; + } MM_INSTANCE_DATA, **MM_INSTANCE_DATA_HANDLE; + +/* + Define access to instance variables via handle. + */ + +IMPORT MM_INSTANCE_DATA_HANDLE mm_handle; + +#define button_transitions \ + ((*mm_handle)->MM_IN_mouse_context.MC_button_transitions) +#define mouse_gear \ + ((*mm_handle)->MM_IN_mouse_context.MC_mouse_gear) +#define mouse_sens \ + ((*mm_handle)->MM_IN_mouse_context.MC_mouse_sens) +#define mouse_sens_val \ + ((*mm_handle)->MM_IN_mouse_context.MC_mouse_sens_val) +#define mouse_double_thresh \ + ((*mm_handle)->MM_IN_mouse_context.MC_mouse_double_thresh) +#define text_cursor_type \ + ((*mm_handle)->MM_IN_mouse_context.MC_text_cursor_type) +#define software_text_cursor \ + ((*mm_handle)->MM_IN_mouse_context.MC_software_text_cursor) +#define graphics_cursor \ + ((*mm_handle)->MM_IN_mouse_context.MC_graphics_cursor) +#define user_subroutine_segment \ + ((*mm_handle)->MM_IN_mouse_context.MC_user_subroutine_segment) +#define user_subroutine_offset \ + ((*mm_handle)->MM_IN_mouse_context.MC_user_subroutine_offset) +#define user_subroutine_call_mask \ + ((*mm_handle)->MM_IN_mouse_context.MC_user_subroutine_call_mask) +#define alt_user_subroutines_active \ + ((*mm_handle)->MM_IN_mouse_context.MC_alt_user_subroutines_active) +#define alt_user_subroutine_segment \ + ((*mm_handle)->MM_IN_mouse_context.MC_alt_user_subroutine_segment) +#define alt_user_subroutine_offset \ + ((*mm_handle)->MM_IN_mouse_context.MC_alt_user_subroutine_offset) +#define alt_user_subroutine_call_mask \ + ((*mm_handle)->MM_IN_mouse_context.MC_alt_user_subroutine_call_mask) +#define black_hole \ + ((*mm_handle)->MM_IN_mouse_context.MC_black_hole) +#define double_speed_threshold \ + ((*mm_handle)->MM_IN_mouse_context.MC_double_speed_threshold) +#define cursor_flag \ + ((*mm_handle)->MM_IN_mouse_context.MC_cursor_flag) +#define cursor_status \ + ((*mm_handle)->MM_IN_mouse_context.MC_cursor_status) +#define cursor_window \ + ((*mm_handle)->MM_IN_mouse_context.MC_cursor_window) +#define light_pen_mode \ + ((*mm_handle)->MM_IN_mouse_context.MC_light_pen_mode) +#define mouse_motion \ + ((*mm_handle)->MM_IN_mouse_context.MC_mouse_motion) +#define mouse_raw_motion \ + ((*mm_handle)->MM_IN_mouse_context.MC_mouse_raw_motion) +#define cursor_position_default \ + ((*mm_handle)->MM_IN_mouse_context.MC_cursor_position_default) +#define cursor_position \ + ((*mm_handle)->MM_IN_mouse_context.MC_cursor_position) +#define cursor_fractional_position \ + ((*mm_handle)->MM_IN_mouse_context.MC_cursor_fractional_position) +#define cursor_page \ + ((*mm_handle)->MM_IN_mouse_context.MC_cursor_page) +#define active_acceleration_curve \ + ((*mm_handle)->MM_IN_mouse_context.MC_active_acceleration_curve) +#define acceleration_curve_data \ + ((*mm_handle)->MM_IN_mouse_context.MC_acceleration_curve_data) +#define next_video_mode \ + ((*mm_handle)->MM_IN_mouse_context.MC_next_video_mode) + +#define mouse_context ((*mm_handle)->MM_IN_mouse_context) +#define mouse_driver_disabled ((*mm_handle)->MM_IN_mouse_driver_disabled) +#define current_video_mode ((*mm_handle)->MM_IN_current_video_mode) +#define text_cursor_background ((*mm_handle)->MM_IN_text_cursor_background) +#define graphics_cursor_background ((*mm_handle)->MM_IN_graphics_cursor_background) +#define save_area_in_use ((*mm_handle)->MM_IN_save_area_in_use) +#define save_position ((*mm_handle)->MM_IN_save_position) +#define save_area ((*mm_handle)->MM_IN_save_area) +#define user_subroutine_critical ((*mm_handle)->MM_IN_user_subroutine_critical) +#define last_condition_mask ((*mm_handle)->MM_IN_last_condition_mask) +#define saved_AX ((*mm_handle)->MM_IN_saved_AX) +#define saved_BX ((*mm_handle)->MM_IN_saved_BX) +#define saved_CX ((*mm_handle)->MM_IN_saved_CX) +#define saved_DX ((*mm_handle)->MM_IN_saved_DX) +#define saved_SI ((*mm_handle)->MM_IN_saved_SI) +#define saved_DI ((*mm_handle)->MM_IN_saved_DI) +#define saved_ES ((*mm_handle)->MM_IN_saved_ES) +#define saved_BP ((*mm_handle)->MM_IN_saved_BP) +#define saved_DS ((*mm_handle)->MM_IN_saved_DS) +#define virtual_screen ((*mm_handle)->MM_IN_virtual_screen) +#define cursor_grid ((*mm_handle)->MM_IN_cursor_grid) +#define text_grid ((*mm_handle)->MM_IN_text_grid) +#define black_hole_default ((*mm_handle)->MM_IN_black_hole_default) +#define saved_int33_segment ((*mm_handle)->MM_IN_saved_int33_segment) +#define saved_int33_offset ((*mm_handle)->MM_IN_saved_int33_offset) +#define saved_int10_segment ((*mm_handle)->MM_IN_saved_int10_segment) +#define saved_int10_offset ((*mm_handle)->MM_IN_saved_int10_offset) +#define saved_int0A_segment ((*mm_handle)->MM_IN_saved_int0A_segment) +#define saved_int0A_offset ((*mm_handle)->MM_IN_saved_int0A_offset) +#define int10_chained ((*mm_handle)->MM_IN_int10_chained) + +#ifdef MOUSE_16_BIT +#define is_graphics_mode ((*mm_handle)->MM_IN_is_graphics_mode) +#endif /* MOUSE_16_BIT */ + +#ifdef EGG +#ifndef REAL_VGA +#ifdef VGG +#define vga_background ((*mm_handle)->MM_IN_vga_background) +#endif /* VGG */ + +#define ega_backgrnd_lo ((*mm_handle)->MM_IN_ega_backgrnd_lo) +#define ega_backgrnd_mid ((*mm_handle)->MM_IN_ega_backgrnd_mid) +#define ega_backgrnd_hi ((*mm_handle)->MM_IN_ega_backgrnd_hi) +#endif /* nREAL_VGA */ + +#define ega_default_crtc ((*mm_handle)->MM_IN_ega_default_crtc) +#define ega_default_seq ((*mm_handle)->MM_IN_ega_default_seq) +#define ega_default_graph ((*mm_handle)->MM_IN_ega_default_graph) +#define ega_default_attr ((*mm_handle)->MM_IN_ega_default_attr) +#define ega_default_misc ((*mm_handle)->MM_IN_ega_default_misc) +#define ega_current_crtc ((*mm_handle)->MM_IN_ega_current_crtc) +#define ega_current_graph ((*mm_handle)->MM_IN_ega_current_graph) +#define ega_current_seq ((*mm_handle)->MM_IN_ega_current_seq) +#define ega_current_attr ((*mm_handle)->MM_IN_ega_current_attr) +#define ega_current_misc ((*mm_handle)->MM_IN_ega_current_misc) +#endif /* EGG */ + +#ifdef HERC +#define HERC_graphics_virtual_screen ((*mm_handle)->MM_IN_HERC_graphics_virtual_screen) +#endif /* HERC */ + +#define cursor_EM_disabled ((*mm_handle)->MM_IN_cursor_EM_disabled) diff --git a/private/mvdm/softpc.new/base/inc/ms_windo.h b/private/mvdm/softpc.new/base/inc/ms_windo.h new file mode 100644 index 000000000..dd8003655 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/ms_windo.h @@ -0,0 +1,1203 @@ +/*[ + * Product: SoftPC-AT Revision 3.0 + * + * Name: ms_windows.h + * + * Derived From: Alpha MS-Windows Driver by Ross Beresford + * + * Author: Rob Tizzard + * + * Created On: 1st November 1990 + * + * SCCS ID: @(#)ms_windows.h 1.66 07/06/94 + * + * Purpose: This module defines the interface between the MS-Windows + * GDI and its dedicated display driver. + * + * Notes: The identifiers used in "windows.inc" are adopted here + * wherever possible; "windows.inc" is the definitions + * file supplied with the MS-Windows Software Development + * Kit. + * + * (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved. +]*/ + +#ifdef MSWDVR +/* + * ----------------------------------------------------------------------------- + * MS-Windows definitions + * ----------------------------------------------------------------------------- + */ + +/* Windows versions */ + +#define WINDOWS2 0x0100 +#define WINDOWS3 0x0300 + +/* Binary raster ops */ + +#define R2_BLACK 1 /* 0 */ +#define R2_NOTMERGEPEN 2 /* DPon */ +#define R2_MASKNOTPEN 3 /* DPna */ +#define R2_NOTCOPYPEN 4 /* PN */ +#define R2_MASKPENNOT 5 /* PDna */ +#define R2_NOT 6 /* Dn */ +#define R2_XORPEN 7 /* DPx */ +#define R2_NOTMASKPEN 8 /* DPan */ +#define R2_MASKPEN 9 /* DPa */ +#define R2_NOTXORPEN 10 /* DPxn */ +#define R2_NOP 11 /* D */ +#define R2_MERGENOTPEN 12 /* DPno */ +#define R2_COPYPEN 13 /* P */ +#define R2_MERGEPENNOT 14 /* PDno */ +#define R2_MERGEPEN 15 /* DPo */ +#define R2_WHITE 16 /* 1 */ + +/* Ternary raster operations - interesting byte only */ + +#define BLACKNESS 0x00 /* dest <- BLACK */ +#define NOTSRCERASE 0x11 /* dest <- (NOT source) AND (NOT dest) */ +#define MASKNOTSRC 0x22 /* dest <- (NOT source) AND dest */ +#define NOTSRCCOPY 0x33 /* dest <- (NOT source) */ +#define SRCERASE 0x44 /* dest <- source AND (NOT dest ) */ +#define DSTINVERT 0x55 /* dest <- (NOT dest) */ +#define SRCINVERT 0x66 /* dest <- source XOR dest */ +#define NOTMASKSRC 0x77 /* dest <- NOT (source AND dest) */ +#define SRCAND 0x88 /* dest <- source AND dest */ +#define NOTXORSRC 0x99 /* dest <- (NOT source) XOR dest */ +#define NOP 0xAA /* dest <- dest */ +#define MERGEPAINT 0xBB /* dest <- (NOT source) OR dest */ +#define SRCCOPY 0xCC /* dest <- source */ +#define MERGESRCNOT 0xDD /* dest <- source OR (NOT dest) */ +#define SRCPAINT 0xEE /* dest <- source OR dest */ +#define WHITENESS 0xFF /* dest <- WHITE */ + +#define PATINVERT 0x5A /* dest <- pattern XOR dest */ +#define OP6A 0x6A /* dest <- (src AND pattern) XOR dest */ +#define OPB8 0xB8 /* dest <- (p XOR dst) AND src) XOR p */ +#define MERGECOPY 0xC0 /* dest <- (source AND pattern) */ +#define OPE2 0xE2 /* dest <- (p XOR dst) AND src) XOR dst*/ +#define PATCOPY 0xF0 /* dest <- pattern */ +#define PATMERGE 0xFA /* dest <- dst OR pat */ +#define PATPAINT 0xFB /* dest <- DPSnoo */ + +#define ISBINARY(rop) ((rop & 0x0F) == ((rop & 0xF0) >> 4)) +#define TOBINARY(rop) ((rop & 0x0F) + 1) + +/* GDI data structure values */ + +#define GDIINFOSIZE 55 /* GDIINFO data structure size in words */ +#define NUMBRUSHES ~0 /* Number of brushes = infinite */ +#define NUMPENS NUMCOLOURS*5 /* Number pens = NUMCOLOURS * 5 styles */ +#define XSIZ 240 /* Display width in millimeters */ +#define YSIZ 175 /* Display depth in millimeters */ +#define XRES 640 /* Display width in pixels */ +#define YRES 350 /* Display depth in scan lines */ +#define HYPOTENUSE 61 /* Distance moving X and Y */ +#define Y_MAJOR_DIST 48 /* Distance moving Y only */ +#define X_MAJOR_DIST 38 /* Distance moving X only */ +#define MAX_STYLE_ERR HYPOTENUSE*2 /* Segment length for line styles */ + +/* GDI logical object definitions */ + +#define OBJ_PEN 1 +#define OBJ_BRUSH 2 +#define OBJ_FONT 3 +#ifdef SWIN_DEVBMP +#define OBJ_PBITMAP 5 + +/* + * BitmapBits parameter for the bit transfer operation + */ +#define DBB_SET 1 +#define DBB_GET 2 +#define DBB_COPY 4 +#endif /* SWIN_DEVBMP */ + +/* GDI Brush Style definitions */ + +#define BS_SOLID 0 +#define BS_HOLLOW 1 +#define BS_HATCHED 2 +#define BS_PATTERN 3 + +/* GDI Pen Style definitions */ + +#define LS_SOLID 0 +#define LS_DASHED 1 +#define LS_DOTTED 2 +#define LS_DOTDASHED 3 +#define LS_DASHDOTDOT 4 +#define LS_NOLINE 5 +#define LS_INSIDEFRAME 6 + +/* GDI Hatch Style definitions. */ + +#define HS_HORIZONTAL 0 /* ----- */ +#define HS_VERTICAL 1 /* ||||| */ +#define HS_FDIAGONAL 2 /* ///// */ +#define HS_BDIAGONAL 3 /* \\\\\ */ +#define HS_CROSS 4 /* +++++ */ +#define HS_DIAGCROSS 5 /* xxxxx */ + +/* GDI Pen Style definitions */ + +#define PS_SOLID 0 /* _______ */ +#define PS_DASH 1 /* ------- */ +#define PS_DOT 2 /* ....... */ +#define PS_DASHDOT 3 /* _._._._ */ +#define PS_DASHDOTDOT 4 /* _.._.._ */ +#define PS_NULL 5 /* */ + +/* GDI Background type */ + +#define TRANSPARENT 1 +#define OPAQUE 2 + +/* GDI Output Objects */ + +#define OS_ARC 3 +#define OS_SCANLINES 4 +#define OS_RECTANGLE 6 +#define OS_ELLIPSE 7 +#define OS_POLYLINE 18 +#define OS_WINDPOLYGON 20 +#define OS_ALTPOLYGON 22 +#define OS_PIE 23 +#define OS_CHORD 39 +#define OS_CIRCLE 55 +#define OS_ROUNDRECT 72 +#define OS_BEGINNSCAN 80 +#define OS_ENDNSCAN 81 + +/* GDI ScanLR flags */ + +#define SCAN_LEFT 2 +#define SCAN_RIGHT 0 +#define SCAN_COLOUR 1 +#define SCAN_NOTCOLOUR 0 + +/* GDI Save Screen Bitmap flags */ + +#define SSB_SAVE 0 +#define SSB_RESTORE 1 +#define SSB_IGNORE 2 + +/* GDI Font Offsets */ + +#define FONT_HEADER_SIZE 66 +#define FONT_CHARTABLE_OFFSET 52 + +/* GDI Extended Text Output options */ + +#define ETO_OPAQUE_FILL (1 << 1) +#define ETO_OPAQUE_CLIP (1 << 2) + +/* Brush Width & Height */ + +#define BRUSH_WIDTH 8 +#define BRUSH_HEIGHT 8 + +/* Windows 3.0 static colours */ + +#define STATICCOLOURS 20 + +/* RLE DIB formats */ + +#define BI_RGB 0x00 +#define BI_RLE8 0x01 +#define BI_RLE4 0x02 + +/* + * GDI Control Escapes. The list of code numbers extracted directly out + * of the Windows 3.1 DDK guide. + */ + +#define ABORTDOC (2) +#define BANDINFO (24) +#define BEGIN_PATH (4096) +#define CLIP_TO_PATH (4097) +#define DRAFTMODE (7) +#define DRAWPATTERNRECT (25) +#define ENABLEDUPLEX (28) +#define ENABLEPAIRKERNING (769) +#define ENABLERELATIVEWIDTHS (768) +#define END_PATH (4098) +#define ENDDOC (11) +#define ENUMPAPERBINS (31) +#define ENUMPAPERMETRICS (34) +#define ENUMPAPERMETRICS (34) +#define EPSPRINTING (33) +#define EXT_DEVICE_CAPS (4099) +#define FLUSHOUTPUT (6) +#define GETCOLORTABLE (5) +#define GETEXTENDEDTEXTMETRICS (256) +#define GETEXTENTTABLE (257) +#define GETFACENAME (513) +#define GETPAIRKERNTABLE (258) +#define GETPHYSPAGESIZE (12) +#define GETPRINTINGOFFSET (13) +#define GETSCALINGFACTOR (14) +#define GETSETPAPERBINS (29) +#define GETSETPAPERMETRICS (35) +#define GETSETPRINTORIENT (30) +#define GETTECHNOLOGY (20) +#define GETTRACKKERNTABLE (259) +#define GETVECTORBRUSHSIZE (27) +#define GETVECTORPENSIZE (26) +#define NEWFRAME (1) +#define NEXTBAND (3) +#define PASSTHROUGH (19) +#define QUERYESCSUPPORT (8) +#define RESETDEVICE (128) +#define RESTORE_CTM (4100) +#define SAVE_CTM (4101) +#define SET_ARC_DIRECTION (4102) +#define SET_BACKGROUND_COLOR (4103) +#define SET_BOUNDS (4109) +#define SET_CLIP_BOX (4108) +#define SET_POLY_MODE (4104) +#define SET_SCREEN_ANGLE (4105) +#define SET_SPREAD (4106) +#define SETABORTPROC (9) +#define SETALLJUSTVALUES (771) +#define SETCOLORTABLE (4) +#define SETCOPYCOUNT (17) +#define SETKERNTRACK (770) +#define SETLINECAP (21) +#define SETLINEJOIN (22) +#define SETMITERLIMIT (23) +/* #define SETPRINTERDC (9) printers only - same code == SETABORTPROC */ +#define STARTDOC (10) +#define TRANSFORM_CTM (4107) + +/* + * ----------------------------------------------------------------------------- + * GDIINFO data structure flags + * ----------------------------------------------------------------------------- + */ + +/* + * 'dpTechnology' values + */ +#define DT_PLOTTER (0) +#define DT_RASDISPLAY (1) +#define DT_RASPRINTER (2) +#define DT_RASCAMERA (3) +#define DT_CHARSTREAM (4) +#define DT_METAFILE (5) +#define DT_DISPFILE (6) + +/* + * 'dpLines' style flags + */ +#define LC_NONE 0x0000 +#define LC_POLYLINE 0x0002 +#define LC_WIDE 0x0010 +#define LC_STYLED 0x0020 +#define LC_WIDESTYLED 0x0040 +#define LC_INTERIORS 0x0080 + +/* + * 'dpPolygonals' style flags + */ +#define PC_NONE 0x0000 +#define PC_ALTPOLYGON 0x0001 +#define PC_RECTANGLE 0x0002 +#define PC_WINDPOLYGON 0x0004 +#define PC_SCANLINE 0x0008 +#define PC_WIDE 0x0010 +#define PC_STYLED 0x0020 +#define PC_WIDESTYLED 0x0040 +#define PC_INTERIORS 0x0080 + +/* + * 'dpCurves' style flags + */ +#define CC_NONE 0x0000 +#define CC_CIRCLES 0x0001 +#define CC_PIE 0x0002 +#define CC_CHORD 0x0004 +#define CC_ELLIPSES 0x0008 +#define CC_WIDE 0x0010 +#define CC_STYLED 0x0020 +#define CC_WIDESTYLED 0x0040 +#define CC_INTERIORS 0x0080 +#define CC_ROUNDRECT 0x0100 + +/* + * 'dpText' style flags + */ +#define TC_OP_CHARACTER 0x0001 /* see ddag sect 2.1.9.1 */ +#define TC_OP_STROKE 0x0002 /* see ddag sect 2.1.9.1 */ +#define TC_CP_STROKE 0x0004 +#define TC_CR_90 0x0008 +#define TC_CR_ANY 0x0010 +#define TC_SF_X_YINDEP 0x0020 +#define TC_SA_DOUBLE 0x0040 +#define TC_SA_INTEGER 0x0080 +#define TC_SA_CONTIN 0x0100 +#define TC_EA_DOUBLE 0x0200 +#define TC_IA_ABLE 0x0400 +#define TC_UA_ABLE 0x0800 +#define TC_SO_ABLE 0x1000 +#define TC_RA_ABLE 0x2000 +#define TC_VA_ABLE 0x4000 +#define TC_RESERVED 0x8000 + +/* + * 'dpClip' values + */ +#define CP_NONE (0) +#define CP_RECTANGLE (1) +#define CP_REGION (2) + +/* + * 'dpRaster' flag values + */ +#define RC_NONE 0x0000 +#define RC_BITBLT 0x0001 +#define RC_BANDING 0x0002 +#define RC_SCALING 0x0004 +#define RC_BITMAP64 0x0008 +#define RC_GDI20_OUTPUT 0x0010 +#define RC_GDI20_STATE 0x0020 +#define RC_SAVEBITMAP 0x0040 +#define RC_DI_BITMAP 0x0080 +#define RC_PALETTE 0x0100 +#define RC_DIBTODEV 0x0200 +#define RC_BIGFONT 0x0400 +#define RC_STRETCHBLT 0x0800 +#define RC_FLOODFILL 0x1000 +#define RC_STRETCHDIB 0x2000 +#define RC_OP_DX_OUTPUT 0x4000 +#define RC_DEVBITS 0x8000 + +/* + * 'dpDCManage' values. These are NOT OR-able values! + */ +#define DC_MULTIPLE (0) /* this is my name - MSWIN doesn't give one. -- pic */ +#define DC_SPDEVICE (1) +#define DC_1PDEVICE (2) +#define DC_IGNOREDFNP (4) +#define DC_ONLYONE (6) /* this is my name - MSWIN doesn't give one. -- pic */ + +/* + * 'dpCaps1' flag values. + */ +#define C1_TRANSPARENT 0x0001 +#define TC_TT_ABLE 0x0002 + +/* + * ----------------------------------------------------------------------------- + * PDEVICE data structure + * ----------------------------------------------------------------------------- + */ + +#ifdef SWIN_DEVBMP +#define PDEVICESIZE 36 /* size of intel data structure in bytes */ +#define PDEVICEBITMAP 0x4000 /* device type indication of a device bitmap */ +#else /* SWIN_DEVBMP */ +#define PDEVICESIZE 26 /* Data structure size in bytes */ +#endif /* SWIN_DEVBMP */ + +#define PDEVICEMAGIC 0x2000 /* Device type display */ + +/* + * ----------------------------------------------------------------------------- + * Windows return status codes + * ----------------------------------------------------------------------------- + */ + +#define MSWSUCCESS 1 +#define MSWFAILURE 0 +#define MSWSIMULATE -1 + +/* + * ----------------------------------------------------------------------------- + * GDI Logo Layout + * ----------------------------------------------------------------------------- + */ + +#define LOGOSTRPROD1 0 +#define LOGOSTRPROD2 (LOGOSTRPROD1 + 1) +#define LOGOSTRPRODMAX (LOGOSTRPROD2 + 1) +#define LOGOSTRCOPY1 (LOGOSTRPROD2 + 1) +#define LOGOSTRCOPY2 (LOGOSTRCOPY1 + 1) +#define LOGOSTRCOPY3 (LOGOSTRCOPY2 + 1) +#define LOGOSTRCOPY4 (LOGOSTRCOPY3 + 1) +#define LOGOSTRCOPY5 (LOGOSTRCOPY4 + 1) +#define LOGOSTRCOPY6 (LOGOSTRCOPY5 + 1) +#define LOGOSTRMAX (LOGOSTRCOPY6 + 1) + +#define LOGOMAGIC 1 + +#define LOGO_MERGE_Y 64 +#define LOGO_PROD_Y 196 +#define LOGO_COPY_Y 266 +#define LOGO_LEADING 16 + +/* + * ----------------------------------------------------------------------------- + * General definitions + * ----------------------------------------------------------------------------- + */ + +#ifndef min +#define min(a,b) ((a)>(b) ? (b) : (a)) +#endif + +#ifndef max +#define max(a,b) ((a)<(b) ? (b) : (a)) +#endif + +/* + * ----------------------------------------------------------------------------- + * Memory definitions + * ----------------------------------------------------------------------------- + */ + +/* Memory masks */ + +#define HGHNIBMASK 0xF0 +#define LOWNIBMASK 0x0F +#define HGHWORDMASK 0xFFFF0000 +#define LOWWORDMASK 0x0000FFFF +#define BYTEMASK ((half_word) ~(0)) +#define WORDMASK ((word) ~(0)) +#define DOUBLEWORDMASK ((double_word) ~(0)) + +/* Bits per byte, word, double word */ + +#define BITSPERNIBBLE 4 +#define BITSPERBYTE 8 +#define BITSPERWORD 16 +#define BITSPERRGB 24 + +#ifdef SWIN_TEXT_OPTS +IMPORT ULONG Seg_0_base32b; +#endif /* SWIN_TEXT_OPTS */ + +/* Components in byte */ + +#define NIBBLEPERBYTE 2 + +/* Macros for accessing Intel memory */ + +#define getbprm(stk,byt,var) var = sas_hw_at_no_check((stk)+(byt)); + +#define getprm(stk,wrd,var) var = sas_w_at_no_check(((stk)+((wrd)<<1))); + +#define getlprm(stk,wrd,var) var = sas_dw_at_no_check(stk+(wrd<<1)) +/* + { word prvtmpoff, prvtmpseg; \ + prvtmpoff = sas_w_at_no_check((stk)+((wrd)<<1)); \ + prvtmpseg = sas_w_at_no_check((stk)+(((wrd)+1)<<1)); \ + var = ((double_word) prvtmpseg << BITSPERWORD) + (double_word) prvtmpoff; \ + } +*/ +#define getptr(stk,wrd,var) { word prvtmpoff, prvtmpseg; \ + prvtmpoff = sas_w_at_no_check((stk)+((wrd)<<1)); \ + prvtmpseg = sas_w_at_no_check((stk)+(((wrd)+1)<<1)); \ + var = effective_addr(prvtmpseg, prvtmpoff); \ + } + +#define getrgbcol(stk,wrd,var) { \ + getlprm(stk,wrd,var); \ + ReverseRGB(var); \ + } + +#define putbprm(stk,byt,var) { \ + sas_store_no_check((stk)+(byt),(var)); \ + } +#define putprm(stk,wrd,var) sas_storew_no_check((stk)+((wrd)<<1), (var)) +#define putarry(addr,var) sas_storew_no_check((addr)+idx, (var)); \ + idx += WORD_SIZE +#define putlprm(stk,wrd,var) sas_storedw_no_check((stk)+((wrd)<<1), var) +/* + { \ + sas_storew_no_check((stk)+((wrd)<<1), ((var) & LOWWORDMASK)); \ + sas_storew_no_check((stk)+(((wrd)+1)<<1),((var) >> BITSPERWORD)); \ + } +*/ +#define putrgbcol(stk,wrd,var) { \ + ReverseRGB(var); \ + putlprm(stk,wrd,var); \ + } + +#define getSegment(addr) (word) ((addr & HGHWORDMASK) >> BITSPERWORD) +#define getOffset(addr) (word) (addr & LOWWORDMASK) + +/* Initial size of memory to malloc */ + +#define INITMEMALLOC 1024 + +/* Bit select macro */ + +#define BIT(num) ((0x01)<<(num)) + +/* BITS <-> BYTES conversion macros */ + +#define BITSTOBYTES8(x) (((x) + 0x7)>>3) +#define BITSTOBYTES16(x) ((((x) + 0xf) & ~0xf)>>3) +#define BITSTOBYTES32(x) ((((x) + 0x1f) & ~0x1f)>>3) +#define BYTESTOBITS(x) ((x)<<3) + +/* Expand memory allocation if needed */ + +#define ExpandMemory(addr, size, newsize, type) \ +\ +{ \ +type *tempAddr; \ +if ((size) < ((newsize) * sizeof(type))) {\ + size = (newsize) * sizeof(type); \ + while ((tempAddr = (type *) host_realloc((void *)addr, (size_t)size)) == NULL) \ + { \ + host_error(EG_MALLOC_FAILURE, ERR_CONT | ERR_QUIT, ""); \ + } \ + addr = tempAddr; \ + } } + +/* + * Converts a ROP3 to a ROP2, assuming no Source component. (i.e. Dest/Pat combinations only) + */ +#define ROP3toROP2(x) (((x)>>2)&0x0F)+1 + +/* + * ----------------------------------------------------------------------------- + * Window definitions + * ----------------------------------------------------------------------------- + */ + +/* CRT mode byte data address */ + +#define CRT_MODE_BYTE_ADDR 0x0449 + +/* + * Window_state defines whether the driver window is opened and + * mapped. At a SoftPC reset,the state should become UNENABLED; when + * the driver is first used,the driver window will be opened and + * mapped,and the state should become ENABLED. If the driver is disabled, + * the window is unmapped but not closed,and the state should become + * DISABLED. */ + +#define WINDOW_STATE_UNENABLED 0 +#define WINDOW_STATE_ENABLED (WINDOW_STATE_UNENABLED + 1) +#define WINDOW_STATE_DISABLED (WINDOW_STATE_ENABLED + 1) +#define WINDOW_STATE_ERROR (WINDOW_STATE_DISABLED + 1) + +/* Host Independent Functions */ + +IMPORT word WinFillGDIInfo IPT2(sys_addr,arg1,LONG,arg2); +IMPORT word WinFillPDEVInfo IPT2(sys_addr,arg1,LONG,arg2); + +/* Host dependent Functions */ + +IMPORT VOID WinOpen IPT0(); +IMPORT VOID WinClose IPT0(); +IMPORT VOID WinMap IPT0(); +IMPORT VOID WinUmap IPT0(); +IMPORT VOID WinDirtyUpdate IPT5(BOOL,arg1,LONG,arg2,LONG,arg3,ULONG,arg4,ULONG,arg5); +IMPORT VOID WinDirtyFlush IPT0(); +IMPORT VOID WinResize IPT0(); +IMPORT VOID WinSizeRestore IPT0(); +IMPORT void HostWEP IPT0(); + +/* + * ----------------------------------------------------------------------------- + * BitBlt & FastBorder definitions + * ----------------------------------------------------------------------------- + */ + +/* Maximum number of border rectangles */ + +#define BORDER_RECT_MAX 4 + +/* ROP Logical Operation Table Dimensions */ + +#define NUMROPS 256 +#define ROPTABLEWIDTH 16 + +/* Valid operands for ROP3 */ + +#define NONE 0 /* None */ +#define SRC 1 /* Source */ +#define DST 2 /* Destination */ +#define PAT 3 /* Patterned brush */ +#define SCTCH 4 /* Scratch area */ +#define SSCTCH 5 /* Subsidurary scratch area */ + +/* Valid logical operators for ROP3 */ + +#define NOT 0 +#define AND 1 +#define OR 2 +#define XOR 3 +#define SET 4 +#define CLEAR 5 +#define COPY 6 + +#ifdef SWIN_MEMTOMEM_ROPS +/* + * BCN 2482- these defines removed - 'D' conflicts with the + * CCPU register variable 'D' (DX reg). + * + * Defines for Bitblt operands defined by the rop3 value + * + * #define P ((IU8) 0xf0) + * #define S ((IU8) 0xcc) + * #define D ((IU8) 0xaa) + */ + +IMPORT VOID (*BmpRop3Supported[]) IPT5( + BITMAP_MAPPING *,srcBitmap, + BITMAP_MAPPING *,dstBitmap, + Rectangle *, srcRect, + Rectangle *, dstRect, + BRUSH_MAPPING *, bp + ); +IMPORT IU8 BmpOperandTable[]; + +IMPORT IU8 *convertedLine; +IMPORT ULONG convertedLineSize; + +extern VOID +BmpRop3MemToMem IPT6(BITMAP_MAPPING *,srcBitmap,BITMAP_MAPPING *,dstBitmap, +Rectangle *, srcRect, Rectangle *,dstRect, IU8, rop3, BRUSH_MAPPING *, bp); +extern BOOL +DirRectFill IPT6(BITMAP_MAPPING *,dstBitmap,BRUSH_MAPPING *,bp, +LONG,x,LONG,y,ULONG,xExt,ULONG, yExt); +#endif /* SWIN_MEMTOMEM_ROPS */ + +/* + * ----------------------------------------------------------------------------- + * Bitmap definitions + * ----------------------------------------------------------------------------- + */ + +/* Mapping types */ + +#define MAP_NULL 0 +#define MAP_BITMAP 1 +#define MAP_DISPLAY 2 + +/* BmpOpen flag parameter bit fields */ + +#define BMPNONE 0x0 +#define BMPTRANS 0x1 +#define BMPOVRRD 0x2 + +/* Bitmap formats */ + +#define MAX_BITMAP_TYPES 4 + +/* Note that BITMAP16 format is not currently supported (2/12/92) */ + +#define MONOCHROME 1 /* bits per pixel=1 */ +#define BITMAP4 4 /* bits per pixel=4 */ +#define BITMAP8 8 /* bits per pixel=8 */ +#define BITMAP16 16 /* bits per pixel=16 */ +#define BITMAP24 24 /* bits per pixel=24 */ + +/* Bitmap line conversion functions */ + +IMPORT VOID ConvBitmapFormat IPT2(BITMAP_MAPPING *,arg1, ULONG *,arg2); +IMPORT VOID Conv1To1 IPT3(UTINY *,arg1, UTINY *,arg2, ULONG,arg3); +IMPORT VOID Conv1To4 IPT3(UTINY *,arg1, UTINY *,arg2, ULONG,arg3); +IMPORT VOID Conv1To8 IPT3(UTINY *,arg1, UTINY *,arg2, ULONG,arg3); +IMPORT VOID Conv1To24 IPT3(UTINY *,arg1, UTINY *,arg2, ULONG,arg3); +IMPORT VOID Conv4To1 IPT3(UTINY *,arg1, UTINY *,arg2, ULONG,arg3); +IMPORT VOID Conv4To4 IPT3(UTINY *,arg1, UTINY *,arg2, ULONG,arg3); +IMPORT VOID Conv4To8 IPT3(UTINY *,arg1, UTINY *,arg2, ULONG,arg3); +IMPORT VOID Conv4To24 IPT3(UTINY *,arg1, UTINY *,arg2, ULONG,arg3); +IMPORT VOID Conv8To1 IPT3(UTINY *,arg1, UTINY *,arg2, ULONG,arg3); +IMPORT VOID Conv8To4 IPT3(UTINY *,arg1, UTINY *,arg2, ULONG,arg3); +IMPORT VOID Conv8To8 IPT3(UTINY *,arg1, UTINY *,arg2, ULONG,arg3); +IMPORT VOID Conv8To24 IPT3(UTINY *,arg1, UTINY *,arg2, ULONG,arg3); +IMPORT VOID Conv24To1 IPT3(UTINY *,arg1, UTINY *,arg2, ULONG,arg3); +IMPORT VOID Conv24To4 IPT3(UTINY *,arg1, UTINY *,arg2, ULONG,arg3); +IMPORT VOID Conv24To8 IPT3(UTINY *,arg1, UTINY *,arg2, ULONG,arg3); +IMPORT VOID Conv24To24 IPT3(UTINY *,arg1, UTINY *,arg2, ULONG,arg3); +IMPORT VOID DibConvE24ToI1 IPT3(UTINY *,arg1, UTINY *,arg2, ULONG,arg3); +IMPORT VOID DibConvE24ToI4 IPT3(UTINY *,arg1, UTINY *,arg2, ULONG,arg3); +IMPORT VOID DibConvE24ToI8 IPT3(UTINY *,arg1, UTINY *,arg2, ULONG,arg3); +IMPORT VOID DibConvE24ToI24 IPT3(UTINY *,arg1, UTINY *,arg2, ULONG,arg3); +IMPORT VOID DibConvI1ToE24 IPT3(UTINY *,arg1, UTINY *,arg2, ULONG,arg3); +IMPORT VOID DibConvI4ToE24 IPT3(UTINY *,arg1, UTINY *,arg2, ULONG,arg3); +IMPORT VOID DibConvI8ToE24 IPT3(UTINY *,arg1, UTINY *,arg2, ULONG,arg3); +IMPORT VOID DibConvI24ToE24 IPT3(UTINY *,arg1, UTINY *,arg2, ULONG,arg3); +IMPORT VOID ConvTrans1To1 IPT4(UTINY *,arg1, UTINY *,arg2, ULONG,arg3, MSWPIXEL *,arg4); +IMPORT VOID ConvTrans1To4 IPT4(UTINY *,arg1, UTINY *,arg2, ULONG,arg3, MSWPIXEL *,arg4); +IMPORT VOID ConvTrans1To8 IPT4(UTINY *,arg1, UTINY *,arg2, ULONG,arg3, MSWPIXEL *,arg4); +IMPORT VOID ConvTrans1To24 IPT4(UTINY *,arg1, UTINY *,arg2, ULONG,arg3, MSWPIXEL *,arg4); +IMPORT VOID ConvTrans4To1 IPT4(UTINY *,arg1, UTINY *,arg2, ULONG,arg3, MSWPIXEL *,arg4); +IMPORT VOID ConvTrans4To4 IPT4(UTINY *,arg1, UTINY *,arg2, ULONG,arg3, MSWPIXEL *,arg4); +IMPORT VOID ConvTrans4To8 IPT4(UTINY *,arg1, UTINY *,arg2, ULONG,arg3, MSWPIXEL *,arg4); +IMPORT VOID ConvTrans4To24 IPT4(UTINY *,arg1, UTINY *,arg2, ULONG,arg3, MSWPIXEL *,arg4); +IMPORT VOID ConvTrans8To1 IPT4(UTINY *,arg1, UTINY *,arg2, ULONG,arg3, MSWPIXEL *,arg4); +IMPORT VOID ConvTrans8To4 IPT4(UTINY *,arg1, UTINY *,arg2, ULONG,arg3, MSWPIXEL *,arg4); +IMPORT VOID ConvTrans8To8 IPT4(UTINY *,arg1, UTINY *,arg2, ULONG,arg3, MSWPIXEL *,arg4); +IMPORT VOID ConvTrans8To24 IPT4(UTINY *,arg1, UTINY *,arg2, ULONG,arg3, MSWPIXEL *,arg4); +IMPORT VOID ConvTrans24To1 IPT4(UTINY *,arg1, UTINY *,arg2, ULONG,arg3, MSWPIXEL *,arg4); +IMPORT VOID ConvTrans24To4 IPT4(UTINY *,arg1, UTINY *,arg2, ULONG,arg3, MSWPIXEL *,arg4); +IMPORT VOID ConvTrans24To8 IPT4(UTINY *,arg1, UTINY *,arg2, ULONG,arg3, MSWPIXEL *,arg4); +IMPORT VOID ConvTrans24To24 IPT4(UTINY *,arg1, UTINY *,arg2, ULONG,arg3, MSWPIXEL *,arg4); +IMPORT VOID DibConvTransE24ToI1 IPT4(UTINY *,arg1, UTINY *,arg2, ULONG,arg3, MSWPIXEL *,arg4); +IMPORT VOID DibConvTransE24ToI4 IPT4(UTINY *,arg1, UTINY *,arg2, ULONG,arg3, MSWPIXEL *,arg4); +IMPORT VOID DibConvTransE24ToI8 IPT4(UTINY *,arg1, UTINY *,arg2, ULONG,arg3, MSWPIXEL *,arg4); +IMPORT VOID DibConvTransE24ToI24 IPT4(UTINY *,arg1, UTINY *,arg2, ULONG,arg3, MSWPIXEL *,arg4); +IMPORT VOID DibConvTransI24ToE24 IPT4(UTINY *,arg1, UTINY *,arg2, ULONG,arg3, MSWPIXEL *,arg4); +IMPORT VOID DibConvTransI1ToE24 IPT4(UTINY *,arg1, UTINY *,arg2, ULONG,arg3, MSWPIXEL *,arg4); +IMPORT VOID DibConvTransI4ToE24 IPT4(UTINY *,arg1, UTINY *,arg2, ULONG,arg3, MSWPIXEL *,arg4); +IMPORT VOID DibConvTransI8ToE24 IPT4(UTINY *,arg1, UTINY *,arg2, ULONG,arg3, MSWPIXEL *,arg4); + +/* Host Independent Functions */ + +IMPORT VOID BmpPatternedBrush IPT4(sys_addr,arg1,BRUSH_MAPPING *,arg2,MSWPIXEL,arg3,MSWPIXEL,arg4); +IMPORT VOID BmpClip IPT8(SHORT *,arg1,SHORT *,arg2,SHORT *,arg3,SHORT *,arg4,USHORT *,arg5,USHORT *,arg6,USHORT,arg7,USHORT,arg8); +IMPORT VOID BmpBitmapToBitmap IPT9(BITMAP_MAPPING *,arg1,BITMAP_MAPPING *,arg2,ULONG,arg3,LONG,arg4,LONG,arg5,ULONG,arg6,ULONG,arg7,LONG,arg8,LONG,arg9); +IMPORT VOID BmpLoadBitmap IPT2(sys_addr,arg1,BITMAP_MAPPING *,arg2); +IMPORT VOID BmpLoadBitmapHeader IPT2(sys_addr,bmptr,BITMAP_MAPPING *,bitmap); +IMPORT VOID BmpSaveBitmap IPT1(BITMAP_MAPPING *,arg1); +IMPORT VOID BmpDestroyBitmap IPT1(BITMAP_MAPPING *,arg1); +IMPORT LONG BmpMSWType IPT1(sys_addr,bmptr); + +#ifdef SWIN_DEVBMP +IMPORT VOID BmpSetBitmapBits IPT3(sys_addr, lpDevice, double_word, lpBits, double_word, dwCount); +IMPORT VOID BmpGetBitmapBits IPT3(sys_addr, lpDevice, double_word, lpBits, double_word, dwCount); +IMPORT VOID BmpCopyBitmapBits IPT3(sys_addr, lpDevice, double_word, lpBits, double_word, dwCount); +#endif /* SWIN_DEVBMP */ + + +/* Array of Binary ROP Functions supported for BitmapToBitmap + * NB. 0 means "not supported" + */ + +IMPORT VOID (*MoveLine[]) IPT7(SHIFTUNIT *,srcbits, SHIFTUNIT *,dstbits, ULONG,srcoffset,ULONG,dstoffset,ULONG,lshift,ULONG,rshift,ULONG,width); + + +/* Host dependent Functions */ + +IMPORT BOOL BmpFastDspToBmp IPT11(sys_addr,bmptr,IU8,rop, + sys_addr,lpPBrush,HOSTPIXEL,fg,HOSTPIXEL,bg, + LONG,bx,LONG,by,ULONG,xext,ULONG,yext,LONG,dx,LONG,dy); +IMPORT BOOL BmpFastBmpToDsp IPT11(sys_addr,bmptr,IU8,rop, + sys_addr,lpPBrush,HOSTPIXEL,fg,HOSTPIXEL,bg, + LONG,bx,LONG,by,ULONG,xext,ULONG,yext,LONG,dx,LONG,dy); +#ifdef SWIN_MEMTOMEM_ROPS +extern BOOL BmpFastBmpToBmp IPT12(sys_addr,srcdev,sys_addr,dstdev, + IU8,rop,sys_addr,lpPBrush,HOSTPIXEL,fg,HOSTPIXEL,bg, + SHORT,sx,SHORT,sy,USHORT,xext,USHORT,yext, SHORT,dx,SHORT,dy); +#else +IMPORT BOOL BmpFastBmpToBmp IPT12(sys_addr,srcdev,sys_addr,dstdev, + IU8,rop,sys_addr,lpPBrush,HOSTPIXEL,fg,HOSTPIXEL,bg, + LONG,sx,LONG,sy,ULONG,xext,ULONG,yext, LONG,dx,LONG,dy); +#endif +IMPORT BOOL BmpFastDspToDsp IPT10(sys_addr,srcdev,sys_addr,dstdev, + IU8,rop,sys_addr,lpPBrush,LONG,sx,LONG,sy,ULONG,xext,ULONG,yext, + LONG,dx,LONG,dy); +IMPORT VOID BmpOpen IPT9(sys_addr,bmptr,HOSTPIXEL,fg,HOSTPIXEL,bg, + LONG,active_x,LONG,active_y,ULONG,active_width,ULONG,active_height, + ULONG,flags,BITMAP_MAPPING *,bm_return); +IMPORT VOID BmpClose IPT1(BITMAP_MAPPING *,bitmap); +IMPORT VOID BmpCancel IPT1(BITMAP_MAPPING *,bitmap); +IMPORT VOID BmpInit IPT0(); +IMPORT VOID BmpTerm IPT0(); +#ifdef SWIN_BMPTOXIM +IMPORT VOID BmpPutMSWBitmap IPT4(BITMAP_MAPPING *,bitmap, IU8,rop, + SHORT,src_x, SHORT,src_y); +#else +IMPORT VOID BmpPutMSWBitmap IPT4(BITMAP_MAPPING *,bitmap, IU8,rop, + LONG,src_x, LONG,src_y); +#endif +IMPORT VOID BmpGetMSWBitmap IPT5(BITMAP_MAPPING *,bitmap, IU8,rop, + LONG,dst_x, LONG,dst_y, BRUSH_MAPPING *,bp); +IMPORT VOID BmpFastSolidFill IPT6(BITMAP_MAPPING *,bm,BRUSH_MAPPING *,bp,LONG,x,LONG,y,IS32,xext,FAST IS32,yext); + +/* + * ----------------------------------------------------------------------------- + * Colour definitions + * ----------------------------------------------------------------------------- + */ + +/* Valid colour formats supported */ + +#define COLOUR2 2 +#define COLOUR8 8 +#define COLOUR16 16 +#define COLOUR256 256 +#define COLOURTRUE24 0xFFFF + +/* RGB shift values */ + +#define RGB_FLAGS_SHIFT 24 +#define RGB_RED_SHIFT 16 +#define RGB_GREEN_SHIFT 8 +#define RGB_BLUE_SHIFT 0 +#define RGB_SHIFT BITSPERBYTE + +/* RGB values */ + +#define RGB_BLACK (MSWCOLOUR) (0x00000000) +#define RGB_BLUE (MSWCOLOUR) (0x000000FF) +#define RGB_GREEN (MSWCOLOUR) (0x0000FF00) +#define RGB_RED (MSWCOLOUR) (0x00FF0000) +#define RGB_WHITE (MSWCOLOUR) (0x00FFFFFF) +#define RGB_FLAGS (MSWCOLOUR) (0xFF000000) + +/* Masks */ + +#define RGB_MASK (UTINY) (BYTEMASK) +#define PAL_INDEX_MASK ~(DOUBLEWORDMASK << mswdvr.bitsPixel) + +/* Colour to monochrome threshold */ + +#define BW_THRESHOLD (RGB_MASK*3)/2 + +/* Make sure no palette translation occurs for a colour */ + +#define ColNoTranslate(colour) (colour & ~(RGB_FLAGS)) + +/* RGB <-> BGR */ + +#define ReverseRGB(rgb) \ +\ +{ half_word loByte, miByte, hiByte; \ + if ((rgb & RGB_FLAGS) != RGB_FLAGS) { \ + hiByte = (rgb & RGB_RED) >> RGB_RED_SHIFT; \ + miByte = (rgb & RGB_GREEN) >> RGB_GREEN_SHIFT; \ + loByte = (rgb & RGB_BLUE) >> RGB_BLUE_SHIFT; \ + rgb = ((MSWCOLOUR) loByte << RGB_RED_SHIFT) | \ + ((MSWCOLOUR) miByte << RGB_GREEN_SHIFT) | \ + ((MSWCOLOUR) hiByte << RGB_BLUE_SHIFT); } } + +/* Swap macro */ + +#define swap(a, b) { ULONG tempDWord=a; a = b; b = tempDWord; } + +/* Host Independent Functions */ + +IMPORT VOID ColDitherBrush IPT2(MSWCOLOUR,arg1, BRUSH_MAPPING *,arg2); +IMPORT HOSTPIXEL ColPixel IPT1(MSWCOLOUR,arg1); +IMPORT MSWPIXEL ColLogPixel IPT1(MSWCOLOUR,arg1); +IMPORT MSWCOLOUR ColRGB IPT1(MSWPIXEL,arg1); +IMPORT MSWCOLOUR ColLogRGB IPT1(MSWPIXEL,arg1); + +/* Host dependent Functions */ + +IMPORT VOID ColSetColourmapEntry IPT2(MSWCOLOURMAP *,arg1, MSWCOLOUR,arg2); +IMPORT BOOL ColInit IPT0(); +IMPORT VOID ColTerm IPT0(); +IMPORT VOID ColTranslateBrush IPT1(BRUSH_MAPPING *,arg1); +IMPORT VOID ColTranslatePen IPT1(PEN_MAPPING *,arg1); +IMPORT VOID ColUpdatePalette IPT2(word,arg1, word,arg2); +IMPORT MSWPIXEL ColMono IPT1(MSWCOLOUR,arg1); + +/* + * ----------------------------------------------------------------------------- + * Text definitions + * ----------------------------------------------------------------------------- + */ + +/* Host independent Functions */ + +IMPORT VOID TxtMergeRectangle IPT2(Rectangle *,arg1, Rectangle *,arg2); + +/* Host dependent Functions */ + +IMPORT VOID TxtInit IPT0(); +IMPORT VOID TxtTerm IPT0(); +IMPORT VOID TxtOpaqueRectangle IPT3(BITMAP_MAPPING *,arg1, Rectangle *,arg2, MSWCOLOUR,arg3); +IMPORT VOID TxtPutTextBitmap IPT4(BITMAP_MAPPING *,arg1, BITMAP_MAPPING *,arg2, ULONG,arg3, ULONG,arg4); +IMPORT VOID TxtTextAccess IPT4(MSWCOLOUR,arg1, MSWCOLOUR,arg2, word,arg3, Rectangle *,arg4); + +/* + * ----------------------------------------------------------------------------- + * DIB definitions + * ----------------------------------------------------------------------------- + */ + +/* Host dependent Functions */ + +IMPORT VOID DibInit IPT0(); +IMPORT VOID DibTerm IPT0(); + +/* + * ----------------------------------------------------------------------------- + * Object definitions + * ----------------------------------------------------------------------------- + */ + +/* Host independent Functions */ + +IMPORT VOID ObjGetRect IPT2(sys_addr,arg1, Rectangle *,arg2); +#ifdef SWIN_DEVBMP +IMPORT word ObjPBitmapOpen IPT1(sys_addr, arg1); +IMPORT VOID ObjPBitmapRestore IPT2(sys_addr, arg1, word *, arg2); +IMPORT VOID ObjPBitmapSave IPT3(sys_addr, arg1, sys_addr, arg2, word, arg3); +IMPORT VOID ObjPBitmapClose IPT1(word, arg1); +IMPORT BITMAP_MAPPING *ObjPBitmapAccess IPT1(sys_addr, lpPBitmap); +#endif /* SWIN_DEVBMP */ + + +/* Host dependent Functions */ + +IMPORT VOID ObjInit IPT0(); +IMPORT VOID ObjTerm IPT0(); +IMPORT BRUSH_MAPPING *ObjPBrushAccess IPT4(sys_addr,pbr,BITMAP_MAPPING *,bmp,IU8,rop2,sys_addr,clip); +IMPORT PEN_MAPPING *ObjPPenAccess IPT5(sys_addr,pp,BITMAP_MAPPING *,bmp,IU8,rop2,sys_addr,clip,word,back_mode); +IMPORT word ObjPenOpen IPT1(sys_addr,arg1); +IMPORT VOID ObjPenClose IPT1(word,arg1); +IMPORT word ObjBrushOpen IPT3(sys_addr,arg1, word,arg2, word,arg3); +IMPORT VOID ObjBrushClose IPT1(word,arg1); +IMPORT VOID ObjPPenSave IPT2(sys_addr,arg1, word,arg2); +IMPORT VOID ObjPPenRestore IPT2(sys_addr,arg1, word *,arg2); +IMPORT VOID ObjPBrushSave IPT2(sys_addr,arg1, word,arg2); +IMPORT VOID ObjPBrushRestore IPT2(sys_addr,arg1, word *,arg2); +IMPORT BOOL ObjValidPPen IPT1(sys_addr,ppen); + +#ifdef SWIN_MEM_POLYLINE +IMPORT BOOL ObjDirPPen IPT1(sys_addr,ppen); +#endif /* SWIN_MEM_POLYLINE */ + + +/* + * ----------------------------------------------------------------------------- + * Pattern Library definitions + * ----------------------------------------------------------------------------- + */ + +/* Host independent Functions */ + +IMPORT VOID LibHatchedTile IPT4(BRUSH_MAPPING *,arg1, word,arg2, MSWPIXEL,arg3, MSWPIXEL,arg4); + +/* Host dependent Functions */ + +IMPORT VOID LibPatLibInit IPT0(); +IMPORT VOID LibPatLibTerm IPT0(); + +/* + * ----------------------------------------------------------------------------- + * Save screen bitmap definitions + * ----------------------------------------------------------------------------- + */ + +IMPORT VOID SavInit IPT0(); +IMPORT VOID SavTerm IPT0(); + +/* + * ----------------------------------------------------------------------------- + * Pointer definitions + * ----------------------------------------------------------------------------- + */ + +/* Host dependent Functions */ + +IMPORT VOID PtrInit IPT0(); +IMPORT VOID PtrTerm IPT0(); + +/* + * ----------------------------------------------------------------------------- + * Resource defintions + * ----------------------------------------------------------------------------- + */ + +/* Host dependent Functions */ + +IMPORT VOID ResInit IPT0(); +IMPORT VOID ResTerm IPT0(); +IMPORT VOID ResAllocateBitmapMapping IPT3(BITMAP_MAPPING *,arg1, ULONG,arg2, ULONG,arg3); +IMPORT VOID ResDeallcateBitmapMapping IPT1(BITMAP_MAPPING *, arg1); +IMPORT VOID ResAllocateBitmapMemory IPT1(BITMAP_MAPPING *,arg1); +IMPORT VOID ResDeallcateBitmapMemory IPT1(BITMAP_MAPPING *, arg1); + +/* + * ----------------------------------------------------------------------------- + * Global variables + * ----------------------------------------------------------------------------- + */ + +/* Windows driver global data area */ + +IMPORT MSW_DATA mswdvr; + +/* Bitmap line conversion function tables */ + +IMPORT VOID (*convFuncs[MAX_BITMAP_TYPES][MAX_BITMAP_TYPES])(); +IMPORT VOID (*convTransFuncs[MAX_BITMAP_TYPES][MAX_BITMAP_TYPES])(); +IMPORT VOID (*DibconvFuncsEToI[MAX_BITMAP_TYPES][MAX_BITMAP_TYPES])(); +IMPORT VOID (*DibconvFuncsIToE[MAX_BITMAP_TYPES][MAX_BITMAP_TYPES])(); +IMPORT VOID (*DibconvTransFuncsEToI[MAX_BITMAP_TYPES][MAX_BITMAP_TYPES])(); +IMPORT VOID (*DibconvTransFuncsIToE[MAX_BITMAP_TYPES][MAX_BITMAP_TYPES])(); + +/* Context information set in ms_windows.c to provide global information + * about the overall operation. Note that this information is independent + * of the host implementation and is therefore defined in the Base include + * file. + */ +typedef struct { + int dest_depth; /* format changes in BitBlt */ + IBOOL translate_palette; /* needed for index colours? */ + IBOOL dest_is_display; /* used by Mac etc */ +} MSW_CONTEXT; + +IMPORT MSW_CONTEXT msw_context; + +#ifdef SWIN_DEVBMP +IMPORT BITMAP_MAPPING *ppbitmap; +IMPORT ULONG ppbitmapEntries; +IMPORT ULONG ppbitmapSize; +#endif /* SWIN_DEVBMP */ + +IMPORT IBOOL mode_exit; /* tells us if exite due to video mode change */ + +/* + * ----------------------------------------------------------------------------- + * MS-Windows Driver Top Level Functions + * ----------------------------------------------------------------------------- + */ + +IMPORT VOID BltBitblt IPT11(sys_addr,lpDestDev,word,wDestX,word,wDestY,sys_addr,lpSrcDev,word,wSrcX,word,wSrcY,word,wXext,word,wYext,IU8,rop3,sys_addr,lpPBrush,sys_addr,lpDrawMode); + +IMPORT VOID BltStretchBlt IPT14(sys_addr,dstdev,word,dx,word,dy,word,xext,word,yext,sys_addr,arg6,word,arg7,word,arg8,word,arg9,word,arg10, + IU8,rop,sys_addr,pbrush,sys_addr,drawmode,sys_addr,cliprect); + +IMPORT VOID BltFastBorder IPT11(sys_addr,dstdev,word,dx,word,dy,word,xext, + word,yext,word,bt,word,vbt,IU8,rop,sys_addr,pbrush, + sys_addr,drawmode,sys_addr,cliprect); + +IMPORT VOID ColColorInfo IPT3(sys_addr,arg1,double_word,arg2,sys_addr,arg3); +IMPORT VOID ColSetPalette IPT3(word,arg1,word,arg2,sys_addr,arg3); +IMPORT VOID ColGetPalette IPT3(word,arg1,word,arg2,sys_addr,arg3); +IMPORT VOID ColSetPalTrans IPT1(sys_addr,arg1); +IMPORT VOID ColGetPalTrans IPT1(sys_addr,arg1); +IMPORT VOID ColUpdateColors IPT5(word,arg1,word,arg2,word,arg3,word,arg4,sys_addr,arg5); + +IMPORT VOID DibDeviceBitmapBits IPT8(sys_addr,arg1,word,arg2,word,arg3,word,arg4,double_word,arg5,sys_addr,arg6,sys_addr,arg7,sys_addr,arg8); +IMPORT VOID DibSetDIBitsToDevice IPT10(sys_addr,arg1,word,arg2,word,arg3,word,arg4,word,arg5,sys_addr,arg6,sys_addr,arg7,double_word,arg8,sys_addr,arg9,sys_addr,arg10); + +IMPORT VOID LgoLogo IPT1(sys_addr,arg1); + +IMPORT VOID ObjRealizeObject IPT5(word,arg1,sys_addr,arg2,sys_addr,arg3,word,arg4,word,arg5); + +IMPORT VOID OutOutput IPT8(sys_addr,arg1,word,arg2,word,arg3,sys_addr,arg4,sys_addr,arg5,sys_addr,arg6,sys_addr,arg7,sys_addr,arg8); + +IMPORT VOID PtrCheckCursor IPT0(); + +IMPORT VOID PtrMoveCursor IPT2(word,arg1,word,arg2); + +IMPORT VOID PtrSetCursor IPT1(sys_addr,arg1); + +IMPORT VOID SavSaveScreenBitmap IPT5(word,arg1,word,arg2,word,arg3,word,arg4,word,arg5); + +IMPORT VOID TxtExtTextOut IPT12(sys_addr,arg1,word,arg2,word,arg3,sys_addr,arg4,sys_addr,arg5,word,arg6,sys_addr,arg7,sys_addr,arg8,sys_addr,arg9, + sys_addr,arg10,sys_addr,arg11,word,arg12); + +IMPORT VOID TxtGetCharWidth IPT7(sys_addr,arg1,sys_addr,arg2,word,arg3,word,arg4,sys_addr,arg5,sys_addr,arg6,sys_addr,arg7); + +IMPORT VOID TxtStrblt IPT9(sys_addr,arg1,word,arg2,word,arg3,sys_addr,arg4,sys_addr,arg5,word,arg6,sys_addr,arg7,sys_addr,arg8,sys_addr,arg9); + +IMPORT VOID WinControl IPT4(sys_addr,arg1,word,arg2,sys_addr,arg3,sys_addr,arg4); +IMPORT VOID WinDisable IPT1(sys_addr,arg1); +IMPORT VOID WinEnable IPT5(sys_addr,arg1,word,arg2,sys_addr,arg3,sys_addr,arg4,sys_addr,arg5); +IMPORT VOID WinPixel IPT5(sys_addr,arg1,word,arg2,word,arg3,MSWCOLOUR,arg4,sys_addr,arg5); +IMPORT VOID WinScanlr IPT5(sys_addr,arg1,word,arg2,word,arg3,MSWCOLOUR,arg4,word,arg5); + +#ifdef SWIN_DEVBMP +IMPORT VOID ObjBitmapBits IPT4(sys_addr,lpDevice,double_word,fFlags,double_word,dwCount,double_word,lpBits); +IMPORT VOID ObjSelectBitmap IPT4(sys_addr,lpDevice,sys_addr,lpPrevBitmap,sys_addr,lpBitmap,double_word,fFlags); +#endif /* SWIN_DEVBMP */ + +/* + * ----------------------------------------------------------------------------- + * MS-Windows Driver Low Level Functions (Totally host dependent) + * ----------------------------------------------------------------------------- + */ + +IMPORT MSWCOLOUR LowGetPixel IPT3(BITMAP_MAPPING *,arg1,ULONG,arg2,ULONG,arg3); +IMPORT VOID LowSetPixel IPT5(BITMAP_MAPPING *,arg1,ULONG,arg2,ULONG,arg3,ULONG,arg4,MSWCOLOUR,arg5); +IMPORT VOID LowStretchArea IPT3(BITMAP_MAPPING *,arg1, BITMAP_MAPPING *,arg2, Rectangle *,arg3); +IMPORT VOID LowFillArea IPT2(BITMAP_MAPPING *,arg1, BRUSH_MAPPING *,arg2); +IMPORT VOID LowCopyArea IPT3(BITMAP_MAPPING *,arg1,BITMAP_MAPPING *,arg2, ULONG,arg3); +IMPORT VOID LowFillRectangle IPT6(BITMAP_MAPPING *,arg1, BRUSH_MAPPING *,arg2,LONG,arg3,LONG,arg4,ULONG,arg5,ULONG,arg6); +IMPORT VOID LowDrawRectangle IPT6(BITMAP_MAPPING *,arg1, PEN_MAPPING *,arg2,LONG,arg3,LONG,arg4,ULONG,arg5,ULONG,arg6); +IMPORT VOID LowFillRoundRect IPT8(BITMAP_MAPPING *,arg1, BRUSH_MAPPING *,arg2,LONG,arg3,LONG,arg4,ULONG,arg5,ULONG,arg6,ULONG,arg7,ULONG,arg8); +IMPORT VOID LowDrawRoundRect IPT8(BITMAP_MAPPING *,arg1,PEN_MAPPING *,arg2,LONG,arg3,LONG,arg4,ULONG,arg5,ULONG,arg6,ULONG,arg7,ULONG,arg8); +IMPORT VOID LowFillRectangles IPT4(BITMAP_MAPPING *,arg1, BRUSH_MAPPING *,arg2,Rectangle *,arg3, ULONG,arg4); +IMPORT VOID LowDrawLine IPT6(BITMAP_MAPPING *,arg1, PEN_MAPPING *,arg2, LONG,arg3,LONG,arg4,LONG,arg5,LONG,arg6); +IMPORT VOID LowFillEllipse IPT6(BITMAP_MAPPING *,arg1, BRUSH_MAPPING *,arg2, LONG,arg3,LONG,arg4,ULONG,arg5,ULONG,arg6); +IMPORT VOID LowDrawEllipse IPT6(BITMAP_MAPPING *,arg1, PEN_MAPPING *,arg2, LONG,arg3,LONG,arg4,ULONG,arg5,ULONG,arg6); +IMPORT VOID LowDrawScanline IPT5(BITMAP_MAPPING *,arg1, PEN_MAPPING *,arg2, LONG,arg3,LONG,arg4,ULONG,arg5); +IMPORT VOID LowFillScanline IPT5(BITMAP_MAPPING *,arg1, BRUSH_MAPPING *,arg2, LONG,arg3,LONG,arg4,ULONG,arg5); + +/* + *------------------------------------------------------------------------------ + * SmartCopy specific defines, global variables and externs + *------------------------------------------------------------------------------ + */ + +#ifndef HostProcessClipData +/* List of #defines from "windows.h" v3.10 */ + +#define CF_NULL 0 +#define CF_TEXT 1 +#define CF_BITMAP 2 +#define CF_METAFILEPICT 3 +#define CF_SYLK 4 +#define CF_DIF 5 +#define CF_TIFF 6 +#define CF_OEMTEXT 7 +#define CF_DIB 8 +#define CF_PALETTE 9 +#define CF_PENDATA 10 +#define CF_RIFF 11 +#define CF_WAVE 12 + +#define CF_OWNERDISPLAY 0x0080 +#define CF_DSPTEXT 0x0081 +#define CF_DSPBITMAP 0x0082 +#define CF_DSPMETAFILEPICT 0x0083 + +/* "Private" formats don't get GlobalFree()'d */ +#define CF_PRIVATEFIRST 0x0200 +#define CF_PRIVATELAST 0x02FF + +/* "GDIOBJ" formats do get DeleteObject()'d */ +#define CF_GDIOBJFIRST 0x0300 +#define CF_GDIOBJLAST 0x03FF + +#define POLL_UPDATE_HOST_CLIPBOARD 0 +#define POLL_UPDATE_WINDOWS_CLIPBOARD 1 +#define POLL_UPDATE_WINDOWS_DISPLAY 2 + +#ifndef HOST_CLIPBOARD_TIMEOUT +#define HOST_CLIPBOARD_TIMEOUT 40 +#endif + +/* types of clipbop */ + +#define GETPOLLADDR 0 +#define PROCESSCLIPBOARD 1 +#define POLLFORCINPUT 2 +#define GETCBDATA 3 +#define REMOVEPOLLADDR 4 +#define GETPOLLREASON 5 +#define EMPTYCLIPBOARD 6 +#define DONEPROCESSING 7 + +extern BOOL smcpyInitialised; /* SmartCopy initialised ? */ +extern BOOL smcpyMissedPoll; +extern int Reasonforpoll; /* Why has smartcopy been polled */ + +extern VOID HostProcessClipData(); +extern IBOOL HostClipboardChanged(); +extern VOID HostResetClipboardChange(); +extern VOID HostInitClipboardChange(); +extern VOID HostGetClipData(); +extern IBOOL HostAssessClipData(); +extern VOID HostGetPollReason(); +extern VOID msw_causepoll(); +extern IBOOL msw_stillpolling(); + +#endif /* HostProcessClipData */ +#endif /* MSWDVR */ diff --git a/private/mvdm/softpc.new/base/inc/msw_dbg.h b/private/mvdm/softpc.new/base/inc/msw_dbg.h new file mode 100644 index 000000000..b067fa35a --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/msw_dbg.h @@ -0,0 +1,356 @@ +/*[ + * Name: msw_dbg.h + * + * Derived From: debug.h + * + * Author: P. Ivimey-Cook + * + * Created On: 7/6/94 + * + * SCCS ID: @(#)msw_dbg.h 1.4 08/19/94 + * + * Coding Stds: 2.0 + * + * Purpose: + * + * + * Copyright Insignia Solutions Limited 1994. All rights reserved. + * +]*/ + +#ifndef MSW_DBG_H +#define MSW_DBG_H + +#include +#include "trace.h" + +/* + * ----------------------------------------------------------------------------- + * Error & debug entry points for display driver low level functions + * ----------------------------------------------------------------------------- + */ + +#ifndef PROD + +#define msw_error0(p1) { fputs("MSWDVR ERROR: ", trace_file); fprintf(trace_file,p1); fputc('\n', trace_file); } +#define msw_error1(p1,p2) { fputs("MSWDVR ERROR: ", trace_file); fprintf(trace_file,p1,p2); fputc('\n', trace_file); } +#define msw_error2(p1,p2,p3) { fputs("MSWDVR ERROR: ", trace_file); fprintf(trace_file,p1,p2,p3); fputc('\n', trace_file); } +#define msw_error3(p1,p2,p3,p4) { fputs("MSWDVR ERROR: ", trace_file); fprintf(trace_file,p1,p2,p3,p4); fputc('\n', trace_file); } + +#else + +#define msw_error0(p1) +#define msw_error1(pl,p2) +#define msw_error2(pl,p2,p3) +#define msw_error3(pl,p2,p3,p4) + +#endif + +#if !defined(PROD) && defined(MSWDVR_DEBUG) + +#ifndef newline +#define newline fprintf(trace_file, "\n") +#endif + +extern IU32 msw_verbose; /* general trace flags */ +extern IU32 msw_enterexit; /* enter / leave trace flags */ +extern int mswdvr_debug; + +/* + * Debug levels. Higher levels get more output. Controlled by + * variable 'mswdvr_debug'. + */ +#define MSWDLEV_SILENT 0 +#define MSWDLEV_MIN 1 +#define MSWDLEV_AVG 2 +#define MSWDLEV_MAX 3 + +/* cf: unused?? I think so. PIC + * #define QUIET 1 + * #define MILD (QUIET + 1) + * #define VERBOSE (MILD + 1) + */ + +/* + * Functional Unit flags: Basically the frontend API calls. + */ +#define MSW_MISC_VERBOSE 0x00000001 /* Any Functional unit not otherwise covered */ +#define MSW_BITBLT_VERBOSE 0x00000002 /* BitBlt call */ +#define MSW_COLOUR_VERBOSE 0x00000004 /* ColorInfo call */ +#define MSW_CONTROL_VERBOSE 0x00000008 /* Control call */ +#define MSW_ENAB_DISAB_VERBOSE 0x00000010 /* Enable and Disable calls */ +#define MSW_ENUM_VERBOSE 0x00000020 /* EnumDFonts and EnumObj calls */ +#define MSW_OUTPUT_VERBOSE 0x00000040 /* Output call */ +#define MSW_PIXEL_VERBOSE 0x00000080 /* Pixel call */ +#define MSW_BITMAP_VERBOSE 0x00000100 /* Bitmap, BitmapBits calls */ +#define MSW_REALIZEOBJECT_VERBOSE 0x00000200 /* RealizeObject call */ +#define MSW_SCANLR_VERBOSE 0x00000400 /* ScanLR call */ +#define MSW_DEVICEMODE_VERBOSE 0x00000800 /* DeviceMode call */ +#define MSW_INQUIRE_VERBOSE 0x00001000 /* Inquire call */ +#define MSW_CURSOR_VERBOSE 0x00002000 /* {Set,Move,Check}Cursor calls */ +#define MSW_TEXT_VERBOSE 0x00004000 /* StrBlt, ExtTextOut, GetCharWidth calls */ +#define MSW_DEVICEBITMAP_VERBOSE 0x00008000 /* DeviceBitmap, DeviceBitmapBits, SetDIBits, SaveScreenBitmap calls */ +#define MSW_FASTBORDER_VERBOSE 0x00010000 /* FastBorder call */ +#define MSW_ATTRIBUTE_VERBOSE 0x00020000 /* SetAttribute call */ +#define MSW_PALETTE_VERBOSE 0x00040000 /* {Get,Set} Palette call */ + +/* + * Other (lower-level) Verbose flags + */ +#define MSW_MEMTOMEM_VERBOSE 0x00080000 /* Code dealing with memory bitmaps specifically */ +#define MSW_LOWLEVEL_VERBOSE 0x00100000 /* Code performing low level ops - e.g. XLib calls */ +#define MSW_CONVERT_VERBOSE 0x00200000 /* (Bitmap) Conversion code */ +#define MSW_INTELIO_VERBOSE 0x00400000 /* Code dealing with reading/writing M */ +#define MSW_OBJECT_VERBOSE 0x00800000 /* Object routines (e.g. ObjPBrushAccess() */ +#define MSW_RESOURCE_VERBOSE 0x01000000 /* Resource routines (e.g. ResAllocateXXX() */ +#define MSW_WINDOW_VERBOSE 0x02000000 /* Routines dealing with windows e.g. WinOpen(), WinUMap() */ +#define MSW_CACHE_VERBOSE 0x04000000 /* Routines dealing with GDI brush/pen cache */ + +/* + * Generic tracing stuff to avoid nasty defines everywhere + */ + +#define msw_cond(bit) ((msw_verbose & (bit)) != 0) +#define msw_cond_lev(bit, lev) (((msw_verbose & (bit)) != 0) && (mswdvr_debug >= (lev))) +#define msw_cond_enter(bit) ((msw_enterexit & (bit)) != 0) +#define msw_cond_leave(bit) ((msw_enterexit & (bit)) != 0) +#define msw_entering_msg(fn) fprintf(trace_file, "Entering: %s ", fn) +#define msw_exiting_msg(fn) fprintf(trace_file, "Exiting : %s ", fn) + +#define msw_do_trace(trace_bit, call) if (msw_cond(trace_bit)) { call; } +#define msw_do_lev_trace(trace_bit, lev,call) if (msw_cond_lev(trace_bit,lev)) { call; } + +#define msw_trace_enter(trace_bit,fnname) \ + if (msw_cond_enter(trace_bit)) { \ + msw_entering_msg(fnname); \ + newline; \ + } +#define msw_trace_enter0(trace_bit,fnname,str) \ + if (msw_cond_enter(trace_bit)) { \ + msw_entering_msg(fnname); \ + fprintf(trace_file,str); \ + newline; \ + } +#define msw_trace_enter1(trace_bit,fnname,str,p0) \ + if (msw_cond_enter(trace_bit)) { \ + msw_entering_msg(fnname); \ + fprintf(trace_file,str,p0); \ + newline; \ + } +#define msw_trace_enter2(trace_bit,fnname,str,p0,p1) \ + if (msw_cond_enter(trace_bit)) { \ + msw_entering_msg(fnname); \ + fprintf(trace_file,str,p0,p1); \ + newline; \ + } +#define msw_trace_enter3(trace_bit,fnname,str,p0,p1,p2) \ + if (msw_cond_enter(trace_bit)) { \ + msw_entering_msg(fnname); \ + fprintf(trace_file,str,p0,p1,p2); \ + newline; \ + } +#define msw_trace_enter4(trace_bit,fnname,str,p0,p1,p2,p3) \ + if (msw_cond_enter(trace_bit)) { \ + msw_entering_msg(fnname); \ + fprintf(trace_file,str,p0,p1,p2,p3); \ + newline; \ + } +#define msw_trace_enter5(trace_bit,fnname,str,p0,p1,p2,p3,p4) \ + if (msw_cond_enter(trace_bit)) { \ + msw_entering_msg(fnname); \ + fprintf(trace_file,str,p0,p1,p2,p3,p4); \ + newline; \ + } +#define msw_trace_enter6(trace_bit,fnname,str,p0,p1,p2,p3,p4,p5) \ + if (msw_cond_enter(trace_bit)) { \ + msw_entering_msg(fnname); \ + fprintf(trace_file,str,p0,p1,p2,p3,p4,p5); \ + newline; \ + } +#define msw_trace_enter7(trace_bit,fnname,str,p0,p1,p2,p3,p4,p5,p6) \ + if (msw_cond_enter(trace_bit)) { \ + msw_entering_msg(fnname); \ + fprintf(trace_file,str,p0,p1,p2,p3,p4,p5,p6); \ + newline; \ + } +#define msw_trace_enter8(trace_bit,fnname,str,p0,p1,p2,p3,p4,p5,p6,p7) \ + if (msw_cond_enter(trace_bit)) { \ + msw_entering_msg(fnname); \ + fprintf(trace_file,str,p0,p1,p2,p3,p4,p5,p6,p7); \ + newline; \ + } +#define msw_trace_enter9(trace_bit,fnname,str,p0,p1,p2,p3,p4,p5,p6,p7,p8) \ + if (msw_cond_enter(trace_bit)) { \ + msw_entering_msg(fnname); \ + fprintf(trace_file,str,p0,p1,p2,p3,p4,p5,p6,p7,p8); \ + newline; \ + } +#define msw_trace_enter10(trace_bit,fnname,str,p0,p1,p2,p3,p4,p5,p6,p7,p8,p9) \ + if (msw_cond_enter(trace_bit)) { \ + msw_entering_msg(fnname); \ + fprintf(trace_file,str,p0,p1,p2,p3,p4,p5,p6,p7,p8,p9); \ + newline; \ + } +#define msw_trace_enter11(trace_bit,fnname,str,p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10) \ + if (msw_cond_enter(trace_bit)) { \ + msw_entering_msg(fnname); \ + fprintf(trace_file,str,p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10); \ + newline; \ + } +#define msw_trace_enter12(trace_bit,fnname,str,p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11) \ + if (msw_cond_enter(trace_bit)) { \ + msw_entering_msg(fnname); \ + fprintf(trace_file,str,p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11); \ + newline; \ + } + +#define msw_trace_leave(trace_bit,fnname) if (msw_cond_leave(trace_bit)) { msw_exiting_msg(fnname);newline; } +#define msw_trace_leave0(trace_bit,fnname,str) if (msw_cond_leave(trace_bit)) { msw_exiting_msg(fnname);fprintf(trace_file,str); newline;} +#define msw_trace_leave1(trace_bit,fnname,str, r0) if (msw_cond_leave(trace_bit)) { msw_exiting_msg(fnname);fprintf(trace_file,str, r0); newline;} + +#define msw_trace0(trace_bit,str) if (msw_cond(trace_bit)) { fprintf(trace_file, str); newline; } +#define msw_trace1(trace_bit,str,p0) if (msw_cond(trace_bit)) { fprintf(trace_file, str,p0);newline; } +#define msw_trace2(trace_bit,str,p0,p1) if (msw_cond(trace_bit)) { fprintf(trace_file, str,p0,p1);newline; } +#define msw_trace3(trace_bit,str,p0,p1,p2) if (msw_cond(trace_bit)) { fprintf(trace_file, str,p0,p1,p2);newline; } +#define msw_trace4(trace_bit,str,p0,p1,p2,p3) if (msw_cond(trace_bit)) { fprintf(trace_file, str,p0,p1,p2,p3);newline; } +#define msw_trace5(trace_bit,str,p0,p1,p2,p3,p4) if (msw_cond(trace_bit)) { fprintf(trace_file, str,p0,p1,p2,p3,p4);newline; } +#define msw_trace6(trace_bit,str,p0,p1,p2,p3,p4,p5) if (msw_cond(trace_bit)) { fprintf(trace_file, str,p0,p1,p2,p3,p4,p5);newline; } +#define msw_trace7(trace_bit,str,p0,p1,p2,p3,p4,p5,p6) if (msw_cond(trace_bit)) { fprintf(trace_file, str,p0,p1,p2,p3,p4,p5,p6);newline; } +#define msw_trace8(trace_bit,str,p0,p1,p2,p3,p4,p5,p6,p7) \ + if (msw_cond(trace_bit)) { fprintf(trace_file, str,p0,p1,p2,p3,p4,p5,p6,p7); newline; } +#define msw_trace9(trace_bit,str,p0,p1,p2,p3,p4,p5,p6,p7,p8) \ + if (msw_cond(trace_bit)) { fprintf(trace_file, str,p0,p1,p2,p3,p4,p5,p6,p7,p8); newline; } + +#define msw_lev_trace0(trace_bit,lev,str) if (msw_cond_lev(trace_bit,lev)) { fprintf(trace_file, str); newline; } +#define msw_lev_trace1(trace_bit,lev,str,p0) if (msw_cond_lev(trace_bit,lev)) { fprintf(trace_file, str,p0);newline; } +#define msw_lev_trace2(trace_bit,lev,str,p0,p1) if (msw_cond_lev(trace_bit,lev)) { fprintf(trace_file, str,p0,p1);newline; } +#define msw_lev_trace3(trace_bit,lev,str,p0,p1,p2) if (msw_cond_lev(trace_bit,lev)) { fprintf(trace_file, str,p0,p1,p2);newline; } +#define msw_lev_trace4(trace_bit,lev,str,p0,p1,p2,p3) if (msw_cond_lev(trace_bit,lev)) { fprintf(trace_file, str,p0,p1,p2,p3);newline; } +#define msw_lev_trace5(trace_bit,lev,str,p0,p1,p2,p3,p4) \ + if (msw_cond_lev(trace_bit,lev)) { fprintf(trace_file, str,p0,p1,p2,p3,p4);newline; } +#define msw_lev_trace6(trace_bit,lev,str,p0,p1,p2,p3,p4,p5) \ + if (msw_cond_lev(trace_bit,lev)) { fprintf(trace_file, str,p0,p1,p2,p3,p4,p5);newline; } +#define msw_lev_trace7(trace_bit,lev,str,p0,p1,p2,p3,p4,p5,p6) \ + if (msw_cond_lev(trace_bit,lev)) { fprintf(trace_file, str,p0,p1,p2,p3,p4,p5,p6);newline; } +#define msw_lev_trace8(trace_bit,lev,str,p0,p1,p2,p3,p4,p5,p6,p7) \ + if (msw_cond_lev(trace_bit,lev)) { fprintf(trace_file, str,p0,p1,p2,p3,p4,p5,p6,p7); newline; } +#define msw_lev_trace9(trace_bit,lev,str,p0,p1,p2,p3,p4,p5,p6,p7,p8) \ + if (msw_cond_lev(trace_bit,lev)) { fprintf(trace_file, str,p0,p1,p2,p3,p4,p5,p6,p7,p8); newline; } + + +/* +** The _no_nl macros also print messages when appropriate, but they do +** not put a new line afterwards. +*/ +#define msw_trace0_no_nl(trace_bit, str) \ + if (msw_cond(trace_bit)){ \ + fprintf(trace_file, str); \ + fflush( trace_file ); \ + } +#define msw_trace1_no_nl(trace_bit, str, p0) \ + if (msw_cond(trace_bit)){ \ + fprintf(trace_file, str, p0); \ + fflush( trace_file ); \ + } +#define msw_trace2_no_nl(trace_bit, str, p0, p1) \ + if (msw_cond(trace_bit)){ \ + fprintf(trace_file, str, p0, p1); \ + fflush( trace_file ); \ + } +#define msw_trace3_no_nl(trace_bit, str, p0, p1, p2) \ + if (msw_cond(trace_bit)){ \ + fprintf(trace_file, str, p0, p1, p2); \ + fflush( trace_file ); \ + } +#define msw_trace4_no_nl(trace_bit, str, p0, p1, p2, p3) \ + if (msw_cond(trace_bit)){ \ + fprintf(trace_file, str, p0, p1, p2, p3); \ + fflush( trace_file ); \ + } + +#define msw_lev_trace0_no_nl(trace_bit, lev, str) \ + if (msw_cond(trace_bit,lev)){ \ + fprintf(trace_file, str); \ + fflush( trace_file ); \ + } +#define msw_lev_trace1_no_nl(trace_bit, lev, str, p0) \ + if (msw_cond(trace_bit,lev)){ \ + fprintf(trace_file, str, p0); \ + fflush( trace_file ); \ + } +#define msw_lev_trace2_no_nl(trace_bit, lev, str, p0, p1) \ + if (msw_cond(trace_bit,lev)){ \ + fprintf(trace_file, str, p0, p1); \ + fflush( trace_file ); \ + } +#define msw_lev_trace3_no_nl(trace_bit, lev, str, p0, p1, p2) \ + if (msw_cond(trace_bit,lev)){ \ + fprintf(trace_file, str, p0, p1, p2); \ + fflush( trace_file ); \ + } +#define msw_lev_trace4_no_nl(trace_bit, lev, str, p0, p1, p2, p3) \ + if (msw_cond(trace_bit,lev)){ \ + fprintf(trace_file, str, p0, p1, p2, p3); \ + fflush( trace_file ); \ + } + +#else /* !defined(PROD) && !defined(MSWDVR_DEBUG) */ + +/* + * PROD or non_MSWDVR-debug flags. + */ +#define msw_trace_enter(trace_bit,nm) +#define msw_trace_enter0(trace_bit,nm,str) +#define msw_trace_enter1(trace_bit,nm,str,p0) +#define msw_trace_enter2(trace_bit,nm,str,p0,p1) +#define msw_trace_enter3(trace_bit,nm,str,p0,p1,p2) +#define msw_trace_enter4(trace_bit,nm,str,p0,p1,p2,p3) +#define msw_trace_enter5(trace_bit,nm,str,p0,p1,p2,p3,p4) +#define msw_trace_enter6(trace_bit,nm,str,p0,p1,p2,p3,p4,p5) +#define msw_trace_enter7(trace_bit,nm,str,p0,p1,p2,p3,p4,p5,p6) +#define msw_trace_enter8(trace_bit,nm,str,p0,p1,p2,p3,p4,p5,p6,p7) +#define msw_trace_enter9(trace_bit,nm,str,p0,p1,p2,p3,p4,p5,p6,p7,p8) +#define msw_trace_enter10(trace_bit,nm,str,p0,p1,p2,p3,p4,p5,p6,p7,p8,p9) +#define msw_trace_enter11(trace_bit,nm,str,p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10) +#define msw_trace_enter12(trace_bit,nm,str,p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11) +#define msw_trace_leave(trace_bit,nm) +#define msw_trace_leave0(trace_bit,nm,str) +#define msw_trace_leave1(trace_bit,nm,str,p0) + +#define msw_do_trace(trace_bit,call) +#define msw_do_lev_trace(trace_bit,lev,call) + +#define msw_trace0(trace_bit,str) +#define msw_trace1(trace_bit,str,p0) +#define msw_trace2(trace_bit,str,p0,p1) +#define msw_trace3(trace_bit,str,p0,p1,p2) +#define msw_trace4(trace_bit,str,p0,p1,p2,p3) +#define msw_trace5(trace_bit,str,p0,p1,p2,p3,p4) +#define msw_trace6(trace_bit,str,p0,p1,p2,p3,p4,p5) +#define msw_trace7(trace_bit,str,p0,p1,p2,p3,p4,p5,p6) +#define msw_trace8(trace_bit,str,p0,p1,p2,p3,p4,p5,p6,p7) +#define msw_trace9(trace_bit,str,p0,p1,p2,p3,p4,p5,p6,p7,p8) +#define msw_trace0_no_nl(trace_bit,str) +#define msw_trace1_no_nl(trace_bit,str,p0) +#define msw_trace2_no_nl(trace_bit,str,p0,p1) +#define msw_trace3_no_nl(trace_bit,str,p0,p1,p2) +#define msw_trace4_no_nl(trace_bit,str,p0,p1,p2,p3) +#define msw_lev_trace0(trace_bit,lev,str) +#define msw_lev_trace1(trace_bit,lev,str,p0) +#define msw_lev_trace2(trace_bit,lev,str,p0,p1) +#define msw_lev_trace3(trace_bit,lev,str,p0,p1,p2) +#define msw_lev_trace4(trace_bit,lev,str,p0,p1,p2,p3) +#define msw_lev_trace5(trace_bit,lev,str,p0,p1,p2,p3,p4) +#define msw_lev_trace6(trace_bit,lev,str,p0,p1,p2,p3,p4,p5) +#define msw_lev_trace7(trace_bit,lev,str,p0,p1,p2,p3,p4,p5,p6) +#define msw_lev_trace8(trace_bit,lev,str,p0,p1,p2,p3,p4,p5,p6,p7) +#define msw_lev_trace9(trace_bit,lev,str,p0,p1,p2,p3,p4,p5,p6,p7,p8) +#define msw_lev_trace0_no_nl(trace_bit,lev,str) +#define msw_lev_trace1_no_nl(trace_bit,lev,str,p0) +#define msw_lev_trace2_no_nl(trace_bit,lev,str,p0,p1) +#define msw_lev_trace3_no_nl(trace_bit,lev,str,p0,p1,p2) +#define msw_lev_trace4_no_nl(trace_bit,lev,str,p0,p1,p2,p3) + +#endif /* !defined(PROD) && !defined(MSWDVR_DEBUG) */ + +#endif /* MSW_DBG_H */ diff --git a/private/mvdm/softpc.new/base/inc/msw_keyb.h b/private/mvdm/softpc.new/base/inc/msw_keyb.h new file mode 100644 index 000000000..3972166fe --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/msw_keyb.h @@ -0,0 +1,232 @@ +/*[ + * + * SoftPC-AT revision 3.0 + * + * Title : Definitions for MS-Windows keyboard driver functions. + * + * Description : This file contains the definitions for msw_keybd.c. + * + * Author : Jerry Sexton + * + * Notes : + * +]*/ + +/* SccsID[]="@(#)msw_keybd.h 1.2 08/10/92 Copyright Insignia Solutions Ltd."; */ + +/* +========================================================================= + Macros. +========================================================================= + */ + +/* Null pointers. */ +#define TINY_NULL ((TINY *) 0) + +/* General definitions. */ +#define NO_NUMLOCK 0 +#define NUMLOCK 1 + +/* Virtual keys. */ + +#define VK_LBUTTON 0x01 +#define VK_RBUTTON 0x02 +#define VK_CANCEL 0x03 + +/* 4..7 undefined */ + +#define VK_BACK 0x08 +#define VK_TAB 0x09 + +/* 0x0a .. 0x0b undefined */ + +#define VK_CLEAR 0x0c +#define VK_RETURN 0x0d + +#define VK_SHIFT 0x10 +#define VK_CONTROL 0x11 +#define VK_MENU 0x12 +#define VK_PAUSE 0x13 +#define VK_CAPITAL 0x14 + /* 0x15..0x1a */ +#define VK_ESCAPE 0x1b + /* 0x1c..0x1f */ +#define VK_SPACE 0x20 +#define VK_PRIOR 0x21 /* page up */ +#define VK_NEXT 0x22 /* page down */ +#define VK_END 0x23 +#define VK_HOME 0x24 +#define VK_LEFT 0x25 +#define VK_UP 0x26 +#define VK_RIGHT 0x27 +#define VK_DOWN 0x28 +#define VK_SELECT 0x29 +#define VK_PRINT 0x2a +#define VK_EXECUTE 0x2b +#define VK_SNAPSHOT 0x2c /* Printscreen key.. */ + +#define VK_INSERT 0x2d +#define VK_DELETE 0x2e +#define VK_HELP 0x2f +#define VK_0 0x30 +#define VK_1 0x31 +#define VK_2 0x32 +#define VK_3 0x33 +#define VK_4 0x34 +#define VK_5 0x35 +#define VK_6 0x36 +#define VK_7 0x37 +#define VK_8 0x38 +#define VK_9 0x39 + /* 0x40 */ +#define VK_A 0x41 +#define VK_B 0x42 +#define VK_C 0x43 +#define VK_D 0x44 +#define VK_E 0x45 +#define VK_F 0x46 +#define VK_G 0x47 +#define VK_H 0x48 +#define VK_I 0x49 +#define VK_J 0x4a +#define VK_K 0x4b +#define VK_L 0x4c +#define VK_M 0x4d +#define VK_N 0x4e +#define VK_O 0x4f +#define VK_P 0x50 +#define VK_Q 0x51 +#define VK_R 0x52 +#define VK_S 0x53 +#define VK_T 0x54 +#define VK_U 0x55 +#define VK_V 0x56 +#define VK_W 0x57 +#define VK_X 0x58 +#define VK_Y 0x59 +#define VK_Z 0x5a + /* 0x5b..0x5f */ +#define VK_NUMPAD0 0x60 +#define VK_NUMPAD1 0x61 +#define VK_NUMPAD2 0x62 +#define VK_NUMPAD3 0x63 +#define VK_NUMPAD4 0x64 +#define VK_NUMPAD5 0x65 +#define VK_NUMPAD6 0x66 +#define VK_NUMPAD7 0x67 +#define VK_NUMPAD8 0x68 +#define VK_NUMPAD9 0x69 +#define VK_MULTIPLY 0x6a +#define VK_ADD 0x6b +#define VK_SEPARATER 0x6c +#define VK_SUBTRACT 0x6d +#define VK_DECIMAL 0x6e +#define VK_DIVIDE 0x6f + +#define VK_F1 0x70 +#define VK_F2 0x71 +#define VK_F3 0x72 +#define VK_F4 0x73 +#define VK_F5 0x74 +#define VK_F6 0x75 +#define VK_F7 0x76 +#define VK_F8 0x77 +#define VK_F9 0x78 +#define VK_F10 0x79 +#define VK_F11 0x7a +#define VK_F12 0x7b +#define VK_F13 0x7c +#define VK_F14 0x7d +#define VK_F15 0x7e +#define VK_F16 0x7f + +#define VK_OEM_F17 0x80 +#define VK_OEM_F18 0x81 +#define VK_OEM_F19 0x82 +#define VK_OEM_F20 0x83 +#define VK_OEM_F21 0x84 +#define VK_OEM_F22 0x85 +#define VK_OEM_F23 0x86 +#define VK_OEM_F24 0x87 + +/* 0x88..0x8f unassigned */ + +#define VK_NUMLOCK 0x90 +#define VK_OEM_SCROLL 0x91 /* ScrollLock */ + +/* 0x92..0xb9 unassigned */ + +#define VK_OEM_1 0xba /* ';:' for US */ +#define VK_OEM_PLUS 0xbb /* '+' any country */ +#define VK_OEM_COMMA 0xbc /* ',' any country */ +#define VK_OEM_MINUS 0xbd /* '-' any country */ +#define VK_OEM_PERIOD 0xbe /* '.' any country */ +#define VK_OEM_2 0xbf /* '/?' for US */ +#define VK_OEM_3 0xc0 /* '`~' for US */ + +/* 0xc1..0xda unassigned */ + +#define VK_OEM_4 0xdb /* '[{' for US */ +#define VK_OEM_5 0xdc /* '\|' for US */ +#define VK_OEM_6 0xdd /* ']}' for US */ +#define VK_OEM_7 0xde /* ''"' for US */ +#define VK_OEM_8 0xdf + +/* codes various extended or enhanced keyboards */ +#define VK_F17 0xe0 /* F17 key on ICO, win 2.xx */ +#define VK_F18 0xe1 /* F18 key on ICO, win 2.xx */ + +#define VK_OEM_102 0xe2 /* "<>" or "\|" on RT 102-key kbd. */ + +#define VK_ICO_HELP 0xe3 /* Help key on ICO */ +#define VK_ICO_00 0xe4 /* 00 key on ICO */ + +/* E5h unassigned */ + +#define VK_ICO_CLEAR 0xe6 */ + +/* E7h .. E8h unassigned */ + +/* Nokia/Ericsson definitions */ + +#define VK_ERICSSON_BASE 0xe8 + +#define VK_OEM_RESET (VK_ERICSSON_BASE + 1) /* e9 */ +#define VK_OEM_JUMP (VK_ERICSSON_BASE + 2) /* ea */ +#define VK_OEM_PA1 (VK_ERICSSON_BASE + 3) /* eb */ +#define VK_OEM_PA2 (VK_ERICSSON_BASE + 4) /* ec */ +#define VK_OEM_PA3 (VK_ERICSSON_BASE + 5) /* ed */ +#define VK_OEM_WSCTRL (VK_ERICSSON_BASE + 6) /* ee */ +#define VK_OEM_CUSEL (VK_ERICSSON_BASE + 7) /* ef */ +#define VK_OEM_ATTN (VK_ERICSSON_BASE + 8) /* f0 */ +#define VK_OEM_FINNISH (VK_ERICSSON_BASE + 9) /* f1 */ +#define VK_OEM_COPY (VK_ERICSSON_BASE + 10) /* f2 */ +#define VK_OEM_AUTO (VK_ERICSSON_BASE + 11) /* f3 */ +#define VK_OEM_ENLW (VK_ERICSSON_BASE + 12) /* f4 */ +#define VK_OEM_BACKTAB (VK_ERICSSON_BASE + 13) /* f5 */ + + +/* F6h..FEh unassigned. */ + +/* Defines for inquireData structure. */ +#define BEGINRANGE1 255 +#define ENDRANGE1 254 +#define BEGINRANGE2 255 +#define ENDRANGE2 254 +#define TO_ASCII_STATE_SIZE 4 + +/* +========================================================================= + Keyboard driver structure definitions. +========================================================================= + */ +typedef struct tagKBINFO +{ + UTINY Begin_First_Range; + UTINY End_First_Range; + UTINY Begin_Second_Range; + UTINY End_Second_Range; + SHORT StateSize; /* size of ToAscii state block. */ +} KBINFO; + +#define INTEL_KBINFO_SIZE 6 /* Size of KBINFO structure in INTEL. */ diff --git a/private/mvdm/softpc.new/base/inc/msw_snd.h b/private/mvdm/softpc.new/base/inc/msw_snd.h new file mode 100644 index 000000000..7d9e91887 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/msw_snd.h @@ -0,0 +1,193 @@ +/*[ + * Product: SoftWindows Revision 2.0 + * + * Name: msw_sound.h + * + * Derived From: Original + * + * Authors: Rob Tizzard + * + * Created On: 16th April 1994 + * + * Purpose: All definitions for the SoftWindows Windows audio + * wave driver interface. + * + * (c)Copyright Insignia Solutions Ltd., 1994. All rights reserved. + * +]*/ + +#ifdef SCCSID +static char SccsID[]="@(#)msw_snd.h 1.1 07/13/94"; +#endif + +/* + * ----------------------------------------------------------------------------- + * Function return values. + * ----------------------------------------------------------------------------- + */ + +/* Signal host error */ + +#define WAVE_SUCCESS (IU32) 0 +#define WAVE_FAILURE (IU32) 1 + +/* Base error codes */ + +#define MMSYSERR_BASE 0 +#define WAVERR_BASE 32 + +/* Waveform audio error return values */ + +#define WAVERR_BADFORMAT (WAVERR_BASE + 0) /* unsupported wave format */ +#define WAVERR_STILLPLAYING (WAVERR_BASE + 1) /* still something playing */ +#define WAVERR_UNPREPARED (WAVERR_BASE + 2) /* header not prepared */ +#define WAVERR_SYNC (WAVERR_BASE + 3) /* device is synchronous */ +#define WAVERR_LASTERROR (WAVERR_BASE + 3) /* last error in range */ + +/* General error return values */ + +#define MMSYSERR_NOERROR 0 /* no error */ +#define MMSYSERR_ERROR (MMSYSERR_BASE + 1) /* unspecified error */ +#define MMSYSERR_BADDEVICEID (MMSYSERR_BASE + 2) /* device ID out of range */ +#define MMSYSERR_NOTENABLED (MMSYSERR_BASE + 3) /* driver failed enable */ +#define MMSYSERR_ALLOCATED (MMSYSERR_BASE + 4) /* device already allocated */ +#define MMSYSERR_INVALHANDLE (MMSYSERR_BASE + 5) /* device handle is invalid */ +#define MMSYSERR_NODRIVER (MMSYSERR_BASE + 6) /* no device driver present */ +#define MMSYSERR_NOMEM (MMSYSERR_BASE + 7) /* memory allocation error */ +#define MMSYSERR_NOTSUPPORTED (MMSYSERR_BASE + 8) /* function isn't supported */ +#define MMSYSERR_BADERRNUM (MMSYSERR_BASE + 9) /* error value out of range */ +#define MMSYSERR_INVALFLAG (MMSYSERR_BASE + 10) /* invalid flag passed */ +#define MMSYSERR_INVALPARAM (MMSYSERR_BASE + 11) /* invalid parameter passed */ +#define MMSYSERR_LASTERROR (MMSYSERR_BASE + 11) /* last error in range */ + +/* + * ----------------------------------------------------------------------------- + * Windows Data structure sizes. + * ----------------------------------------------------------------------------- + */ + +#define MAXPNAMELEN 32 /* Product Name string length */ +#define SIZEOF_MMTIME 6 /* Size of MMTIME structure in bytes */ + +/* + * ----------------------------------------------------------------------------- + * Flags for dwSupport field of WAVEOUTCAPS. + * ----------------------------------------------------------------------------- + */ + +#define WAVECAPS_PITCH 0x0001 /* supports pitch control */ +#define WAVECAPS_PLAYBACKRATE 0x0002 /* supports playback rate control */ +#define WAVECAPS_VOLUME 0x0004 /* supports volume control */ +#define WAVECAPS_LRVOLUME 0x0008 /* separate left-right volume control */ +#define WAVECAPS_SYNC 0x0010 /* Synchronous device */ + +/* + * ----------------------------------------------------------------------------- + * Manufacturer IDs, Product IDs & driver version numbers + * ----------------------------------------------------------------------------- + */ + +#define MM_INSIGNIA 2 /* Insignia Solutions */ + +#define MM_SOFTWIN_WAVEOUT 13 /* SoftWindows waveform output */ +#define MM_SOFTWIN_WAVEIN 13 /* SoftWindows waveform input */ + +#define WAV_OUT_VERSION 0x0100 /* Output Wave Sound Driver Version */ +#define WAV_IN_VERSION 0x0100 /* Input Wave Sound Driver Version */ + +/* + * ----------------------------------------------------------------------------- + * Defines for dwFormat field of WAVEINCAPS and WAVEOUTCAPS + * ----------------------------------------------------------------------------- + */ + +#define WAVE_INVALIDFORMAT 0x00000000 /* invalid format */ +#define WAVE_FORMAT_1M08 0x00000001 /* 11.025 kHz, Mono, 8-bit */ +#define WAVE_FORMAT_1S08 0x00000002 /* 11.025 kHz, Stereo, 8-bit */ +#define WAVE_FORMAT_1M16 0x00000004 /* 11.025 kHz, Mono, 16-bit */ +#define WAVE_FORMAT_1S16 0x00000008 /* 11.025 kHz, Stereo, 16-bit */ +#define WAVE_FORMAT_2M08 0x00000010 /* 22.05 kHz, Mono, 8-bit */ +#define WAVE_FORMAT_2S08 0x00000020 /* 22.05 kHz, Stereo, 8-bit */ +#define WAVE_FORMAT_2M16 0x00000040 /* 22.05 kHz, Mono, 16-bit */ +#define WAVE_FORMAT_2S16 0x00000080 /* 22.05 kHz, Stereo, 16-bit */ +#define WAVE_FORMAT_4M08 0x00000100 /* 44.1 kHz, Mono, 8-bit */ +#define WAVE_FORMAT_4S08 0x00000200 /* 44.1 kHz, Stereo, 8-bit */ +#define WAVE_FORMAT_4M16 0x00000400 /* 44.1 kHz, Mono, 16-bit */ +#define WAVE_FORMAT_4S16 0x00000800 /* 44.1 kHz, Stereo, 16-bit */ + +/* + * ----------------------------------------------------------------------------- + * Defines for wave formats + * ----------------------------------------------------------------------------- + */ + +#define WAVE_FORMAT_PCM 1 + +/* General wave format datastructure */ + +typedef struct { + IU16 wFormatTag; /* format type */ + IU16 nChannels; /* number of channels (i.e. mono, stereo, etc.) */ + IU32 nSamplesPerSec; /* sample rate */ + IU32 nAvgBytesPerSec; /* for buffer estimation */ + IU16 nBlockAlign; /* block size of data */ +} WAVEFORMAT; + +/* PCM wave datastructure */ + +typedef struct { + WAVEFORMAT wf; + IU16 wBitsPerSample; +} PCMWAVEFORMAT; + +/* + * ----------------------------------------------------------------------------- + * Per allocation structure for wave + * ----------------------------------------------------------------------------- + */ + +typedef struct { + IU32 dwCallback; /* client's callback */ + IU32 dwInstance; /* client's instance data */ + IU32 hWave; /* handle for stream */ + IU32 dwFlags; /* allocation flags */ + IU32 dwByteCount; /* byte count since last reset */ + PCMWAVEFORMAT pcmwf; /* format of wave data */ +}WAVEALLOC; + +/* + * ----------------------------------------------------------------------------- + * Wave header structure. + * ----------------------------------------------------------------------------- + */ + +/* flags for dwFlags field of WAVEHDR */ + +#define WHDR_DONE 0x00000001 /* done bit */ +#define WHDR_PREPARED 0x00000002 /* set if this header has been prepared */ +#define WHDR_BEGINLOOP 0x00000004 /* loop start block */ +#define WHDR_ENDLOOP 0x00000008 /* loop end block */ +#define WHDR_INQUEUE 0x00000010 /* reserved for driver */ + +typedef struct WAVHDR { + LIN_ADDR lpData; /* pointer to locked data buffer */ + IU32 dwBufferLength; /* length of data buffer */ + IU32 dwBytesRecorded; /* used for input only */ + IU32 dwUser; /* for client's use */ + IU32 dwFlags; /* assorted flags (see defines) */ + IU32 dwLoops; /* loop control counter */ + LIN_ADDR lpNext; /* reserved for driver */ + IU32 reserved; /* reserved for driver */ +} WAVEHDR; + +/* + * ----------------------------------------------------------------------------- + * Types for wType field in MMTIME struct + * ----------------------------------------------------------------------------- + */ + +#define TIME_MS 0x0001 /* time in milliseconds */ +#define TIME_SAMPLES 0x0002 /* number of wave samples */ +#define TIME_BYTES 0x0004 /* current byte offset */ +#define TIME_SMPTE 0x0008 /* SMPTE time */ +#define TIME_MIDI 0x0010 /* MIDI time */ diff --git a/private/mvdm/softpc.new/base/inc/novell.h b/private/mvdm/softpc.new/base/inc/novell.h new file mode 100644 index 000000000..7f603751d --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/novell.h @@ -0,0 +1,173 @@ +/*[ + * Name: novell.h + * + * Derived From: original + * + * Author: David Linnard + * + * Created On: 28th May, 1992 + * + * Purpose : Main Novell include file + * + * Interface: + * + * (c)Copyright Insignia Solutions Ltd., 1991. All rights reserved. +]*/ + +/* SccsID[]="@(#)novell.h 1.11 05/15/95 Copyright Insignia Solutions Ltd."; */ + +/* + * Constants and macros to access Transmit Control Blocks (TCBs) + */ + + +/* TCB fields */ +#define TCBDriverWS 0 /* 6 bytes of driver workspace - unused by us */ +#define TCBDataLength 6 /* Total frame length - But use CX for real value for Ethernet */ +#define TCBFragStrucPtr 8 /* FAR pointer to Fragment Structure */ +#define TCBMediaHeaderLen 12 /* Length of Media header - which comes next. May be zero */ +#define TCBMediaHeader 14 /* The media header */ + +#define getTCBDataLength(TCB) sas_w_at(TCB+TCBDataLength) +#define getTCBFragStruc(TCB) effective_addr( sas_w_at( TCB+TCBFragStrucPtr + 2 ), sas_w_at( TCB+TCBFragStrucPtr ) ) +#define getTCBMediaHdrLen(TCB) sas_w_at(TCB+TCBMediaHeaderLen) +#define getTCBMediaHdr(TCB,i) sas_hw_at(TCB+TCBMediaHeader+i) + +/* Fragment structure fields */ +#define FFragmentCount 0 /* Number of fragments. Cannot be zero */ +#define FFrag0Address 2 /* FAR pointer to first fragment data */ +#define FFrag0Length 6 /* Length of first fragment */ + +#define getnTFrags(FF) sas_w_at(FF+FFragmentCount) +#define getTFragPtr(FF,i) effective_addr( sas_w_at( FF+FFrag0Address+6*i+2 ), sas_w_at( FF+FFrag0Address+6*i ) ) +#define getTFragLen(FF,i) sas_w_at(FF+FFrag0Length+6*i) + +/* + * Constants and macros to access Receive Control Blocks (RCBs) + */ + +/* RCB fields */ +#define RCBDriverWS 0 /* 8 bytes of driver workspace - unused by us */ +#define RCBReserved 8 /* 36 bytes of reserved space */ +#define RCBFragCount 44 /* Number of fragments */ +#define RCBFrag0Addr 46 /* Pointer to first fragment */ +#define RCBFrag0Len 50 /* Length of first fragment */ + +#define getnRFrags(RCB) sas_w_at(RCB+RCBFragCount) +#define getRFragPtr(RCB,i) effective_addr( sas_w_at( RCB+RCBFrag0Addr+6*i+2 ), sas_w_at( RCB+RCBFrag0Addr+6*i ) ) +#define getRFragLen(RCB,i) sas_w_at(RCB+RCBFrag0Len+6*i) + +/* Media/Frame types as defined in Appendix B-2 of ODI Developer's Guide */ +#define VIRTUAL_LAN 0 /* Used for 'tunnelled' IPX on APpleTalk */ +#define ENET_II 2 +#define ENET_802_2 3 +#define ENET_802_3 5 +#define ENET_SNAP 10 +#define TOKN_RING 4 +#define TOKN_RING_SNAP 11 + +/* Max number of active protocols - Should be plenty!! */ +#define MAX_PROTOS 10 + +/* AddProtocolID errors as defined on p. 15-8 of ODI Developer's Guide */ +#define LSLERR_OUT_OF_RESOURCES 0x8001 +#define LSLERR_BAD_PARAMETER 0x8002 +#define LSLERR_DUPLICATE_ENTRY 0x8009 + +/* network hardware defines */ +#define ENET_HARDWARE 1 +#define TOKN_HARDWARE 2 + +/* size of standard IPX header */ +#define IPX_HDRSIZE 30 + +/* maximum Ethernet multicast addresses */ +#define MAX_ENET_MC_ADDRESSES 16 + +/************************ typedefs ***********************/ + +typedef struct +{ + IU16 frameID; + IU8 protoID[6]; + int fd; +} ODIproto; + +/* define a 6 byte quantity for use in the wds hdr */ +typedef unsigned char netAddr[6]; + +typedef unsigned long netNo ; + +/* Note that word quantities in IPX headers are BIGEND */ +typedef struct +{ + IU16 checksum ; /* Checksum - always FFFF */ + IU16 IPXlength ; /* Length according to IPX */ + IU8 transport ; /* Count of bridges enountered? */ + IU8 type ; /* Packet type - usually 0 or 4 */ + netNo destNet ; /* Destination network */ + netAddr destNode ; /* Destination Ethernet address */ + IU16 destSock ; /* Destination socket */ + netNo srcNet ; /* Source network */ + netAddr srcNode ; /* Source Ethernet address */ + IU16 srcSock ; /* Source socket */ + IU8 data[547] ; /* The packet */ +} IPXPacket_s ; + + +typedef struct rcvPacket_t +{ + IU8 length[2]; /* Packet length if any */ + IU8 MAChdr[14]; /* MAC size - right for E2 & 802.3 */ + IPXPacket_s pack; /* The received IPX packet */ +} rcvPacket_s ; + + +/* Host routine declarations */ +extern IU32 host_netInit IPT2 (IU16, frame, IU8 *, nodeAddr); +extern void host_termNet IPT0 (); + +extern IU32 host_AddProtocol IPT2 + (IU16, frameType, IU8 *, protoID) ; +extern void host_DelProtocol IPT2 + (IU16, frameType, IU8 *, protoID) ; + +extern void host_sendPacket IPT2 + (sys_addr, theTCB, IU32, packLen) ; + +extern void host_AddEnetMCAddress IPT1 (IU8 *, address); +extern void host_DeleteEnetMCAddress IPT1 (IU8 *, address); + +extern void host_changeToknMultiCast IPT2 + (IU16, addrPt1, IU16, addrPt2); + +extern void host_changePromiscuous IPT2 + (IU16, boardNo, IU16, enableDisableMask ) ; + +extern IU16 host_OpenSocket IPT1 (IU16, socketNumber); +extern void host_CloseSocket IPT1 (IU16, socketNumber); + +/* Base routine declarations */ +extern void movReadBuffIntoM IPT0 (); +extern void DriverInitialize IPT0 (); +extern void DriverSendPacket IPT0 (); +extern void DriverReadPacket IPT0 (); +extern void DriverMulticastChange IPT0 (); +extern void DriverShutdown IPT0 (); +extern void DriverAddProtocol IPT0 (); +extern void DriverChangePromiscuous IPT0 (); +extern void DriverCheckForMore IPT0 (); +#ifdef V4CLIENT +extern void ODIChangeIntStatus IPT1 ( IU16, status ) ; +#endif /* V4CLIENT */ +extern void net_term IPT0 (); + +/* misc defines */ + +#ifndef PROD +#define NOT_FOR_PRODUCTION( someCode ) someCode ; +#else +#define NOT_FOR_PRODUCTION( someCode ) +#endif + +/********************** end of novell.h *************************/ diff --git a/private/mvdm/softpc.new/base/inc/ppi.h b/private/mvdm/softpc.new/base/inc/ppi.h new file mode 100644 index 000000000..7c4c6f54c --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/ppi.h @@ -0,0 +1,37 @@ +/* + * VPC-XT Revision 2.0 + * + * Title : PPI Adpator definitions + * + * Description : Definitions for users of the PPI Adaptor + * + * Author : Henry Nash + * + * Notes : None + */ + +/* SccsID[]="@(#)ppi.h 1.4 08/10/92 Copyright Insignia Solutions Ltd."; */ + +/* + * ============================================================================ + * Structure/Data definitions + * ============================================================================ + */ + +/* None */ + +/* + * ============================================================================ + * External declarations and macros + * ============================================================================ + */ + +#ifdef ANSI +extern void ppi_init(void); +extern void ppi_inb(io_addr,half_word *); +extern void ppi_outb(io_addr,half_word); +#else +extern void ppi_init(); +extern void ppi_inb(); +extern void ppi_outb(); +#endif diff --git a/private/mvdm/softpc.new/base/inc/printer.h b/private/mvdm/softpc.new/base/inc/printer.h new file mode 100644 index 000000000..fb8b54505 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/printer.h @@ -0,0 +1,64 @@ +#ifdef PRINTER + +/* + * SoftPC Revision 2.0 + * + * Title : IBM PC Parallel Printer Adaptor definitions + * + * Description : This module contains declarations that are used in + * accessing the Parallel Printer adaptor emulation + * + * Author(s) : Ross Beresford + * + * Notes : + */ + +/* SccsID[]="@(#)printer.h 1.7 11/14/94 Copyright Insignia Solutions Ltd."; */ + +/* + * ============================================================================ + * Structure/Data definitions + * ============================================================================ + */ + + +/* + * ============================================================================ + * External declarations and macros + * ============================================================================ + */ + +#ifdef ANSI +extern void printer_init(int); +extern void printer_post(int); +extern void printer_status_changed(int); +#else +extern void printer_init(); +extern void printer_post(); +extern void printer_status_changed(); +#endif + +#ifdef PS_FLUSHING +extern void printer_psflush_change IPT2(IU8,hostID, IBOOL,apply); +#endif /* PS_FLUSHING */ + +/* + * The following 6 defines refer to the address in the BIOS data area + * at which the LPT port addresses and timeout values can be found. + * The actual values for the port addresses (LPT1_PORT_START and ..._END) + * are defined in host_lpt.h + */ +#define LPT1_PORT_ADDRESS (BIOS_VAR_START + 8) +#define LPT2_PORT_ADDRESS (BIOS_VAR_START + 0xa) +#define LPT3_PORT_ADDRESS (BIOS_VAR_START + 0xc) + +#define LPT1_TIMEOUT_ADDRESS (BIOS_VAR_START + 0x78) +#define LPT2_TIMEOUT_ADDRESS (BIOS_VAR_START + 0x79) +#define LPT3_TIMEOUT_ADDRESS (BIOS_VAR_START + 0x7a) + +#if defined(NTVDM) +extern void printer_is_being_closed(int adapter); +#endif + + +#endif diff --git a/private/mvdm/softpc.new/base/inc/profile.h b/private/mvdm/softpc.new/base/inc/profile.h new file mode 100644 index 000000000..e0d144548 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/profile.h @@ -0,0 +1,259 @@ +/*[ +************************************************************************* + + Name: profile.h + Author: Simon Frost + Created: September 1993 + Derived from: Original + Sccs ID: @(#)profile.h 1.9 01/31/95 + Purpose: Include file for the Profiling system & Interfaces + + (c)Copyright Insignia Solutions Ltd., 1993. All rights reserved. + +************************************************************************* +]*/ + +/* ------------------- Data Structures & Types -------------------- */ +typedef ISM32 EOIHANDLE; +typedef ISM32 SOIHANDLE; + +/* + * Two IUHs to allow for variety of host timestamp data. May be secs/usecs + * or large integer or whatever is appropriate. + */ +typedef struct { + IUH data[2]; +} PROF_TIMESTAMP, *PROF_TIMEPTR; + +typedef struct { + IUH eoiHandle; + PROF_TIMESTAMP timestamp; + IUH arg; +} EOI_BUFFER_FORMAT; + +typedef struct eoinode EOINODE, *EOINODE_PTR; /* forward decln */ +typedef struct eoiarg EOIARG, *EOIARG_PTR; /* ditto */ +typedef struct graphlist GRAPHLIST, *GRAPHLIST_PTR; /* ditto */ + +/* Active SOIs (Sequences Of Interest) stored in list of these nodes */ +typedef struct soinode { + + SOIHANDLE handle; /* SOI identifier */ + EOIHANDLE startEOI; /* EOI of start event */ + EOIHANDLE endEOI; /* EOI of end event */ + EOIARG_PTR startArg; /* extra level graphing - start arg */ + EOIARG_PTR endArg; /* extra level graphing - end arg */ + IUM32 startCount; /* # of times start EOI occured */ + IUM32 endCount; /* # of times end EOI occured */ + PROF_TIMESTAMP soistart; /* timestamp of SOI start */ + struct soinode *next; /* pointer to next SOI */ + IU8 flags; /* flags for this SOI */ + DOUBLE time; /* usecs spent in SOI - daft times ignored */ + DOUBLE maxtime; /* longest valid elapsed time */ + DOUBLE mintime; /* shortest elapsed time */ + DOUBLE bigmax; /* longest invalid time */ + DOUBLE bigtime; /* total contributed by daft times */ + IUM32 discardCount; /* # of discarded times */ + +} SOINODE, *SOINODE_PTR; + +#define SOIPTRNULL (SOINODE_PTR)0 + +/* Active Events linked to Active SOIs by pointers to SOI structures */ +typedef struct soilist { + + SOINODE_PTR soiLink; /* SOI that this event starts/ends */ + struct soilist *next; /* next active SOI */ + +} SOILIST, *SOILIST_PTR; + +#define SLISTNULL (SOILIST_PTR)0 + +/* Events which contain arguments hold them in sorted list of these nodes */ +struct eoiarg { + + struct eoiarg *next; /* pointer to next argument value */ + struct eoiarg *back; /* previous argument node */ + IUM32 count; /* how many events have had this value */ + IUM32 value; /* event argument this node represents */ + SOILIST_PTR startsoi; /* SOIs which this arg starts if auto SOI */ + SOILIST_PTR endsoi; /* SOIs which this arg ends if auto SOI */ + GRAPHLIST_PTR graph; /* pointer into graph list for this node */ + +}; + +#define ARGPTRNULL (EOIARG_PTR)0 + +/* + * This structure is used to form the list used in EOI graphing. + * It gives two links for 'free' and then goes off down a chain of more + * succession links. (This gives loops & if's in one struct). + * Pointers to these nodes can be found in EOI nodes and EOI argument nodes. + */ +struct graphlist { + struct graphlist *next; /* list connecting pointer -not graph related */ + EOINODE_PTR graphEOI; /* EOI for graph node */ + EOIARG_PTR graphArg; /* EOI argument if relevant */ + IUM32 numpred; /* how many predecessors */ + IUM32 numsucc; /* how many succecessors */ + struct graphlist *succ1; /* pointer to first successor */ + IUM32 succ1Count; /* # of times first successor found */ + struct graphlist *succ2; /* pointer to second successor */ + IUM32 succ2Count; /* # of times second successor found */ + struct graphlist *extra; /* if two successors not enuf look here */ + ISM32 indent; /* for report printing */ + IU8 state; /* flags for node state */ +}; + +/* defines for graph state (bits) on reporting */ +#define GR_SUCC1_TROD 1 +#define GR_SUCC2_TROD 2 +#define GR_TRAMPLED (GR_SUCC1_TROD|GR_SUCC2_TROD) +#define GR_PRINTED 4 + +#define GRAPHPTRNULL (GRAPHLIST_PTR)0 + +/* + * If a SOI is registered at the arg level & collects sequences between 'same valued' + * args, the endEOI of the pair must be available from the start EOI. The start EOI + * contains a pointer to a list in the following format. + */ +struct soiargends { + EOIHANDLE endEOI; + struct soiargends *next; +}; + +typedef struct soiargends SOIARGENDS, *SOIARGENDS_PTR; + +#define SOIARGENDNULL (SOIARGENDS_PTR)0 + +/* + * Active Events registered for profiling run are stored in list(s) of these + * nodes. + */ +struct eoinode { + + struct eoinode *next; /* pointer to next event */ + struct eoinode *back; /* pointer to previous event */ + IUM32 count; /* # of times EOI occured */ + EOIHANDLE handle; /* EOI identifier */ + CHAR *tag; /* 'real world' identifier */ + EOIARG_PTR args; /* list of arguments to event (may be null) */ + EOIARG_PTR lastArg; /* last argument node accessed */ + PROF_TIMESTAMP timestamp; /* time of last EOI (usec) */ + SOILIST_PTR startsoi; /* SOI pointers which this event starts */ + SOILIST_PTR endsoi; /* SOI pointers which this event ends */ + GRAPHLIST_PTR graph; /* pointer to graph list for this node */ + SOIARGENDS_PTR argsoiends; /* arg level 'same value' end list */ + IU16 flags; /* characteristics of this EOI */ + +}; + +#define EOIPTRNULL (EOINODE_PTR)0 + +/* + * This structure mirrors the initial elements of those lists we may + * want to sort into 'popularity' order (based on the 'count' element). + * This is intended to reduce search times for common elements + */ +typedef struct sortlist { + struct sortlist *next; /* pointer to next element */ + struct sortlist *back; /* pointer to previous element */ + IUM32 count; /* # of times element occured */ +} *SORTSTRUCT, **SORTSTRUCT_PTR; + +/* New SOI flags */ +#define SOI_DEFAULTS 0 /* No flags - default settings */ +#define SOI_AUTOSOI 0x20 /* SOI generated by AUTOSOI */ +#define SOI_FROMARG 0x40 /* SOI generated by arg level connection */ + +/* New EOI 'capability' flags */ +#define EOI_DEFAULTS 0 /* No flags - default settings */ +#define EOI_DISABLED 1 /* Delay EIO until enable call. */ +#define EOI_KEEP_GRAPH 2 /* Track Predecessors for graphing */ +#define EOI_KEEP_ARGS 4 /* Keep & count arguments passed */ +#define EOI_ENABLE_ALL 8 /* Trigger enable of all EOIs */ +#define EOI_DISABLE_ALL 0x10 /* Trigger disable of all EOIs */ +#define EOI_AUTOSOI 0x20 /* Make SOIs automatically out of like EOIs */ +#define EOI_HOSTHOOK 0x40 /* Hook out to host profiling system */ +#define EOI_NOTIME 0x80 /* No timestamps needed (not in SOI) */ + +/* The above get used in the EOI node flag element. This also contains + * extra info as specified below. + */ +#define EOI_HAS_SOI 0x100 /* some SOI associated with this EOI */ +#define EOI_NEW_ARGS_START_SOI 0x200 /* arg level soi with 'same value' ends */ + +/* Mask used to clear new eoi flags for enable table */ +#define ENABLE_MASK (EOI_DISABLED|EOI_ENABLE_ALL|EOI_DISABLE_ALL|EOI_HOSTHOOK) + +/* ---------------------- Interfaces -------------------------- */ +extern IBOOL Profiling_enabled; /* conventional profiling Disabled? */ + +extern EOIHANDLE NewEOI IPT2(CHAR *, tag, IU8, flags); + +extern void SetEOIAsHostTrigger IPT1(EOIHANDLE, handle); +extern void ClearEOIAsHostTrigger IPT1(EOIHANDLE, handle); +extern void SetEOIAutoSOI IPT1(EOIHANDLE, handle); +extern void ClearEOIAutoSOI IPT1(EOIHANDLE, handle); +extern void EnableEOI IPT1(EOIHANDLE, handle); +extern void EnableAllEOIs IPT0(); +extern void DisableEOI IPT1(EOIHANDLE, handle); +extern void DisableAllEOIs IPT0(); +extern void ResetEOI IPT1(EOIHANDLE, handle); +extern void ResetAllEOIs IPT0(); +extern void ResetAllSOIs IPT0(); + +extern void AtEOIPoint IPT1(EOIHANDLE, handle); +extern void AtEOIPointArg IPT2(EOIHANDLE, handle, IUH, arg); + +extern CHAR *GetEOIName IPT1(EOIHANDLE, handle); + +extern SOIHANDLE AssociateAsSOI IPT2(EOIHANDLE, start, EOIHANDLE, end); +extern SOIHANDLE AssociateAsArgSOI IPT5(EOIHANDLE, start, EOIHANDLE, end, + IUM32, startArg, IUM32, endArg, IBOOL, sameArgs); + +extern void GenerateAllProfileInfo IPT1(FILE *, stream); +extern void CollateFrequencyList IPT2(FILE *, stream, IBOOL, reportstyle); +extern void CollateSequenceGraph IPT1(FILE *, stream); +extern void SummariseEvent IPT2(FILE *, stream, EOIHANDLE, handle); +extern void SummariseSequence IPT2(FILE *, stream, SOIHANDLE, handle); +extern void SummariseAllSequences IPT1(FILE *, stream); +extern void OrderedSequencePrint IPT3(SOIHANDLE, startEOI, SOIHANDLE, endEOI, FILE *, stream); +extern void dump_profile IPT0(); +extern void reset_profile IPT0(); + +/* support fns for Frag Profiling */ +extern void EnableFragProf IPT0(); +extern void DisableFragProf IPT0(); +extern void DumpFragProfData IPT0(); + + +extern void ProcessProfBuffer IFN0(); +extern void ProfileInit IFN0(); + +extern EOI_BUFFER_FORMAT **GdpProfileInit IPT3 (EOI_BUFFER_FORMAT, *rawDataBuf, + EOI_BUFFER_FORMAT, *endRawData, + IU8, *enable); +extern EOI_BUFFER_FORMAT **GdpProfileUpdate IPT2 (EOI_BUFFER_FORMAT, *rawDataBuf, IU8, *enable); + + +/* Declns for host i/f */ +#ifdef NTVDM +extern void HostEnterProfCritSec IPT0(); +extern void HostLeaveProfCritSec IPT0(); +#else +#define HostEnterProfCritSec() /* Nothing */ +#define HostLeaveProfCritSec() /* Nothing */ +#endif +extern PROF_TIMEPTR HostTimestampDiff IPT2(PROF_TIMEPTR, tbegin, PROF_TIMEPTR, tend); +extern void HostAddTimestamps IPT2(PROF_TIMEPTR, tbase, PROF_TIMEPTR, taddn); +extern void HostSlipTimestamp IPT2(PROF_TIMEPTR, tbase, PROF_TIMEPTR, tdelta); +extern void HostWriteTimestamp IPT1(PROF_TIMEPTR, addr); +extern void HostPrintTimestamp IPT2(FILE *, stream, PROF_TIMEPTR, stamp); +extern char *HostProfInitName IPT0(); +extern void HostProfHook IPT0(); +extern void HostProfArgHook IPT1(IUH, arg); +extern double HostProfUSecs IPT1(PROF_TIMEPTR, stamp); +extern IU32 HostGetClocksPerSec IPT0(); +extern IU32 HostGetProfsPerSec IPT0(); diff --git a/private/mvdm/softpc.new/base/inc/quick_ev.h b/private/mvdm/softpc.new/base/inc/quick_ev.h new file mode 100644 index 000000000..8884773e9 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/quick_ev.h @@ -0,0 +1,73 @@ +/*[ +************************************************************************ + Name: quick_ev.h + Author: WTG Charnell + Created: Unknown + Sccs ID: @(#)quick_ev.h 1.20 06/08/95 + + (c)Copyright Insignia Solutions Ltd., 1992. All rights reserved. + + Purpose: Quick Event Manager definitions + Description: Definitions for users of the quick + event manager + +************************************************************************ +]*/ + +#include "host_qev.h" /* for q_ev_handle typedef */ + +typedef void (*Q_CALLBACK_FN) IPT1(long, parm); + +extern void q_event_init IPT0(); +extern void delete_q_event IPT1(q_ev_handle, handle); +extern void dispatch_q_event IPT0(); +extern void delete_tic_event IPT1(q_ev_handle, handle); +extern void tic_event_init IPT0(); +extern q_ev_handle add_tic_event IPT3(Q_CALLBACK_FN, func, unsigned long, time, long, param); +extern q_ev_handle add_q_event_i IPT3(Q_CALLBACK_FN, func, unsigned long, time, long, param); +extern q_ev_handle add_q_event_t IPT3(Q_CALLBACK_FN, func, unsigned long, time, long, param); + +#ifndef NTVDM +extern q_ev_handle add_q_ev_int_action IPT5(unsigned long, time, Q_CALLBACK_FN, func, IU32, adapter, IU32, line, IU32, param); +#endif + +#ifndef CPU_40_STYLE +/* + * Host access routines for 3.0 CPU (4.0 supplies its own prototypes + * in generated include files). + */ +#ifndef host_calc_q_ev_inst_for_time +extern ULONG host_calc_q_ev_inst_for_time IPT1( ULONG, time ); +#endif /* host_calc_q_ev_inst_for_time */ +#ifdef NTVDM +extern ULONG host_calc_q_ev_time_for_inst IPT1(ULONG, inst); +#endif + +extern void host_q_ev_set_count IPT1( ULONG, count ); +extern ULONG host_q_ev_get_count IPT0(); + +#else /* CPU_40_STYLE */ +extern IU32 calc_q_inst_for_time IPT1(IU32, time); +extern IU32 calc_q_time_for_inst IPT1(IU32, inst); +#define host_calc_q_ev_inst_for_time calc_q_inst_for_time +#define host_calc_q_ev_time_for_inst calc_q_time_for_inst +#endif /* CPU_40_STYLE */ + +#ifndef NTVDM +#ifdef CPU_40_STYLE + +/* data structure used to control add_q_ev_int_action requests */ +typedef struct aqeia_req { + IS32 ident; /* queue identifier, 0 - unused */ + Q_CALLBACK_FN func; + IU32 adapter; + IU32 line; + IU32 param; + struct aqeia_req *next; +} Q_INT_ACT_REQ, *Q_INT_ACT_REQ_PTR; + +#define Q_INT_ACT_NULL ((Q_INT_ACT_REQ_PTR)0) + +#endif /* CPU_40_STYLE */ + +#endif /* !NTVDM */ diff --git a/private/mvdm/softpc.new/base/inc/rom.h b/private/mvdm/softpc.new/base/inc/rom.h new file mode 100644 index 000000000..9fb11dc81 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/rom.h @@ -0,0 +1,40 @@ +/* + * VPC-XT Revision 1.0 + * + * Title : ROM Space definitions + * + * Description : Definitions for users of the Saved ROM + * + * Author : Paul Huckle + * + * Mods: (r3.2) : On the Mac II running MultiFinder, we can't have much + * static storage, so big arrays are verboten. Hence use + * malloc() to grab storage from the heap, and declare + * pointers instead. + */ + +/* SccsID[]="@(#)rom.h 1.9 10/30/92 Copyright Insignia Solutions Ltd."; */ + +/* + * ============================================================================ + * Structure/Data definitions + * ============================================================================ + */ + + +/* + * ============================================================================ + * External declarations and macros + * ============================================================================ + */ + +#ifndef macintosh + extern half_word ROM_BIOS1[]; + extern half_word ROM_BIOS2[]; +#endif + +IMPORT void rom_init IPT0(); +IMPORT void rom_checksum IPT0(); +IMPORT void copyROM IPT0(); +IMPORT void search_for_roms IPT0(); +IMPORT void read_video_rom IPT0(); diff --git a/private/mvdm/softpc.new/base/inc/rommap.h b/private/mvdm/softpc.new/base/inc/rommap.h new file mode 100644 index 000000000..488d56f0f --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/rommap.h @@ -0,0 +1,55 @@ +/*[ + * + * File : rommap.h + * + * Derived from : (original) + * + * Purpose : structure for full screen host api to fill in + * describing the location of host ROMs + * + * Author : Rog + * Date : 15 March 1992 + * + * RCS Gumph : + * $Source: /MasterNeXT486/RCStree/base/inc/rommap.h,v $ + * $Revision: 1.1 $ + * $Date: 93/03/18 12:18:26 $ + * $Author: rog $ + * + * (c) Copyright Insignia Solutions Ltd., 1992 All rights reserved + * + * Modifications : + * +]*/ + +#ifndef _ROMMAP_H_ +#define _ROMMAP_H_ + + +/* Structure to hold a PC address range to describe a single mapping */ + +typedef struct +{ + unsigned int startAddress; + unsigned int endAddress; +} mapRange , * pMapRange; + + +/* + Structure to describe the state of the host machines IVT after boot up + and a *all* the mappings performed + + Note that size of structure in use will be sizeof( romMapInfo ) + + numberROMS * sizeof( mapRange ) .... +*/ + +typedef struct +{ + unsigned char * initialIVT; /* ptr to read only 4k buffer...*/ + unsigned int numberROMs; /* Number of discrete mappings */ + mapRange ROMaddresses[ 0 ]; +} +ROMMapInfo , * pROMMapInfo; + +#endif /* _ROMMAP_H_ */ + diff --git a/private/mvdm/softpc.new/base/inc/rs232.h b/private/mvdm/softpc.new/base/inc/rs232.h new file mode 100644 index 000000000..735ef20a1 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/rs232.h @@ -0,0 +1,453 @@ +#ifndef _RS232_H +#define _RS232_H + +/*[ + Name: rs232.h + Derived From: Base 2.0 + Author: Paul Huckle + Created On: + Sccs ID: 05/11/94 @(#)rs232.h 1.14 + Purpose: Definitions for users of the RS232 Adapter Module + + (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved. + +]*/ + +/* + * ============================================================================ + * Structure/Data definitions + * ============================================================================ + */ + +/* register type definitions follow: */ + +typedef half_word BUFFER_REG; + +#ifdef LITTLEND +typedef union { + word all; + struct { + WORD_BIT_FIELD LSByte:8; + WORD_BIT_FIELD MSByte:8; + } byte; +} DIVISOR_LATCH; +#endif +#ifdef BIGEND +typedef union { + word all; + struct { + WORD_BIT_FIELD MSByte:8; + WORD_BIT_FIELD LSByte:8; + } byte; +} DIVISOR_LATCH; +#endif + +#ifdef BIT_ORDER2 +typedef union { + half_word all; + struct { + HALF_WORD_BIT_FIELD data_available:1; + HALF_WORD_BIT_FIELD tx_holding:1; + HALF_WORD_BIT_FIELD rx_line:1; + HALF_WORD_BIT_FIELD modem_status:1; + HALF_WORD_BIT_FIELD pad:4; + } bits; + } INT_ENABLE_REG; +#endif +#ifdef BIT_ORDER1 +typedef union { + half_word all; + struct { + HALF_WORD_BIT_FIELD pad:4; + HALF_WORD_BIT_FIELD modem_status:1; + HALF_WORD_BIT_FIELD rx_line:1; + HALF_WORD_BIT_FIELD tx_holding:1; + HALF_WORD_BIT_FIELD data_available:1; + } bits; + } INT_ENABLE_REG; +#endif + +#if defined(NTVDM) && defined(FIFO_ON) +#ifdef BIT_ORDER2 +typedef union { + half_word all; + struct { + HALF_WORD_BIT_FIELD no_int_pending:1; + HALF_WORD_BIT_FIELD interrupt_ID:3; + HALF_WORD_BIT_FIELD pad:2; + HALF_WORD_BIT_FIELD fifo_enabled:2; + } bits; + } INT_ID_REG; +#endif +#ifdef BIT_ORDER1 +typedef union { + half_word all; + struct { + HALF_WORD_BIT_FIELD fifo_enabled:2; + HALF_WORD_BIT_FIELD pad:2; + HALF_WORD_BIT_FIELD interrupt_ID:3; + HALF_WORD_BIT_FIELD no_int_pending:1; + } bits; + } INT_ID_REG; +#endif +#else /* NTVDM */ + +#ifdef BIT_ORDER2 +typedef union { + half_word all; + struct { + HALF_WORD_BIT_FIELD no_int_pending:1; + HALF_WORD_BIT_FIELD interrupt_ID:2; + HALF_WORD_BIT_FIELD pad:5; + } bits; + } INT_ID_REG; +#endif +#ifdef BIT_ORDER1 +typedef union { + half_word all; + struct { + HALF_WORD_BIT_FIELD pad:5; + HALF_WORD_BIT_FIELD interrupt_ID:2; + HALF_WORD_BIT_FIELD no_int_pending:1; + } bits; + } INT_ID_REG; +#endif + +#endif /* ifdef NTVDM */ + +#ifdef BIT_ORDER2 +typedef union { + half_word all; + struct { + HALF_WORD_BIT_FIELD word_length:2; + HALF_WORD_BIT_FIELD no_of_stop_bits:1; + HALF_WORD_BIT_FIELD parity_enabled:1; + HALF_WORD_BIT_FIELD even_parity:1; + HALF_WORD_BIT_FIELD stick_parity:1; + HALF_WORD_BIT_FIELD set_break:1; + HALF_WORD_BIT_FIELD DLAB:1; + } bits; + } LINE_CONTROL_REG; +#endif +#ifdef BIT_ORDER1 +typedef union { + half_word all; + struct { + HALF_WORD_BIT_FIELD DLAB:1; + HALF_WORD_BIT_FIELD set_break:1; + HALF_WORD_BIT_FIELD stick_parity:1; + HALF_WORD_BIT_FIELD even_parity:1; + HALF_WORD_BIT_FIELD parity_enabled:1; + HALF_WORD_BIT_FIELD no_of_stop_bits:1; + HALF_WORD_BIT_FIELD word_length:2; + } bits; + } LINE_CONTROL_REG; +#endif + +#ifdef BIT_ORDER2 +typedef union { + half_word all; + struct { + HALF_WORD_BIT_FIELD DTR:1; + HALF_WORD_BIT_FIELD RTS:1; + HALF_WORD_BIT_FIELD OUT1:1; + HALF_WORD_BIT_FIELD OUT2:1; + HALF_WORD_BIT_FIELD loop:1; + HALF_WORD_BIT_FIELD pad:3; + } bits; + } MODEM_CONTROL_REG; +#endif +#ifdef BIT_ORDER1 +typedef union { + half_word all; + struct { + HALF_WORD_BIT_FIELD pad:3; + HALF_WORD_BIT_FIELD loop:1; + HALF_WORD_BIT_FIELD OUT2:1; + HALF_WORD_BIT_FIELD OUT1:1; + HALF_WORD_BIT_FIELD RTS:1; + HALF_WORD_BIT_FIELD DTR:1; + } bits; + } MODEM_CONTROL_REG; +#endif + +#ifdef BIT_ORDER2 +typedef union { + half_word all; + struct { + HALF_WORD_BIT_FIELD data_ready:1; + HALF_WORD_BIT_FIELD overrun_error:1; + HALF_WORD_BIT_FIELD parity_error:1; + HALF_WORD_BIT_FIELD framing_error:1; + HALF_WORD_BIT_FIELD break_interrupt:1; + HALF_WORD_BIT_FIELD tx_holding_empty:1; + HALF_WORD_BIT_FIELD tx_shift_empty:1; +#if defined(NTVDM) && defined(FIFO_ON) + HALF_WORD_BIT_FIELD fifo_error:1; +#else + HALF_WORD_BIT_FIELD pad:1; +#endif + } bits; + } LINE_STATUS_REG; +#endif +#ifdef BIT_ORDER1 +typedef union { + half_word all; + struct { +#if defined(NTVDM) && defined(FIFO_ON) + HALF_WORD_BIT_FIELD fifo_error:1; +#else + HALF_WORD_BIT_FIELD pad:1; +#endif + HALF_WORD_BIT_FIELD tx_shift_empty:1; + HALF_WORD_BIT_FIELD tx_holding_empty:1; + HALF_WORD_BIT_FIELD break_interrupt:1; + HALF_WORD_BIT_FIELD framing_error:1; + HALF_WORD_BIT_FIELD parity_error:1; + HALF_WORD_BIT_FIELD overrun_error:1; + HALF_WORD_BIT_FIELD data_ready:1; + } bits; + } LINE_STATUS_REG; +#endif + +#ifdef BIT_ORDER2 +typedef union { + half_word all; + struct { + HALF_WORD_BIT_FIELD delta_CTS:1; + HALF_WORD_BIT_FIELD delta_DSR:1; + HALF_WORD_BIT_FIELD TERI:1; + HALF_WORD_BIT_FIELD delta_RLSD:1; + HALF_WORD_BIT_FIELD CTS:1; + HALF_WORD_BIT_FIELD DSR:1; + HALF_WORD_BIT_FIELD RI:1; + HALF_WORD_BIT_FIELD RLSD:1; + } bits; + } MODEM_STATUS_REG; +#endif +#ifdef BIT_ORDER1 +typedef union { + half_word all; + struct { + HALF_WORD_BIT_FIELD RLSD:1; + HALF_WORD_BIT_FIELD RI:1; + HALF_WORD_BIT_FIELD DSR:1; + HALF_WORD_BIT_FIELD CTS:1; + HALF_WORD_BIT_FIELD delta_RLSD:1; + HALF_WORD_BIT_FIELD TERI:1; + HALF_WORD_BIT_FIELD delta_DSR:1; + HALF_WORD_BIT_FIELD delta_CTS:1; + } bits; + } MODEM_STATUS_REG; +#endif + +#if defined(NTVDM) && defined(FIFO_ON) +/* refer to NS 16550A data sheet for fifo control register description + DMA is not supported because so far there are not such a COMM adapter with + DMA channel out there +*/ +#ifdef BIT_ORDER2 +typedef union { + half_word all; + struct { + HALF_WORD_BIT_FIELD enabled:1; + HALF_WORD_BIT_FIELD rx_reset:1; + HALF_WORD_BIT_FIELD tx_reset:1; + HALF_WORD_BIT_FIELD dma_mode_selected:1; + HALF_WORD_BIT_FIELD pad:2; + HALF_WORD_BIT_FIELD trigger_level:2; + } bits; + } FIFO_CONTROL_REG; +#endif +#ifdef BIT_ORDER1 +typedef union { + half_word all; + struct { + HALF_WORD_BIT_FIELD trigger_level:2; + HALF_WORD_BIT_FIELD pad:2; + HALF_WORD_BIT_FIELD dma_mode_selected:1 + HALF_WORD_BIT_FIELD tx_reset:1; + HALF_WORD_BIT_FIELD rx_reset:1 + HALF_WORD_BIT_FIELD enabled:1; + } bits; + } FIFO_CONTROL_REG; +#endif + +#endif + +/* register select code definitions follow: */ + +#define RS232_TX_RX 0 +#define RS232_IER 1 +#define RS232_IIR 2 +#if defined(NTVDM) && defined(FIFO_ON) +#define RS232_FIFO 2 +#endif +#define RS232_LCR 3 +#define RS232_MCR 4 +#define RS232_LSR 5 +#define RS232_MSR 6 +#define RS232_SCRATCH 7 + +#define RS232_COM1_TIMEOUT (BIOS_VAR_START + 0x7c) +#define RS232_COM2_TIMEOUT (BIOS_VAR_START + 0x7d) +#define RS232_COM3_TIMEOUT (BIOS_VAR_START + 0x7e) +#define RS232_COM4_TIMEOUT (BIOS_VAR_START + 0x7f) +#define RS232_PRI_TIMEOUT (BIOS_VAR_START + 0x7c) +#define RS232_SEC_TIMEOUT (BIOS_VAR_START + 0x7d) + +#define GO 0 /* We can emulate requested configuration */ +#define NO_GO_SPEED 1 /* We can't emulate requested line speed */ +#define NO_GO_LINE 2 /* We can't emulate requested line setup */ + +#if defined(NTVDM) && defined(FIFO_ON) +/* fifo size defined in NS16550 data sheet */ +#define FIFO_SIZE 16 +/* the real fifo size in our simulation code. Increase this will get + a better performance(# rx interrupts going down and read call count to + the serial driver also going down). However, if application is using + h/w handshaking, we may still delivery extra chars to it. This may provoke + the app. By using 16bytes fifo, we are safe because the application + must have logic to handle it. +*/ + +#define FIFO_BUFFER_SIZE FIFO_SIZE +#endif + +#define OFF 0 +#define ON 1 +#define LEAVE_ALONE 2 +#define change_state(external_state, internal_state) \ + ((external_state == internal_state) ? LEAVE_ALONE : external_state) + +#if defined(NTVDM) && defined(FIFO_ON) +#define FIFO_INT 6 /* fifo rda time out interrupt ID */ +#endif + +#define RLS_INT 3 /* receiver line status interrupt ID */ +#define RDA_INT 2 /* data available interrupt ID */ +#define THRE_INT 1 /* tx holding register empty interrupt ID */ +#define MS_INT 0 /* modem status interrupt ID */ + +#define DATA5 0 /* line control setting for five data bits */ +#define DATA6 1 /* line control setting for six data bits */ +#define DATA7 2 /* line control setting for seven data bits */ +#define DATA8 3 /* line control setting for eight data bits */ + +#define STOP1 0 /* line control setting for one stop bit */ +#define STOP2 1 /* line control setting for one and a half or two + stop bits */ + +#ifdef NTVDM +// collision with winbase.h PARITY_ON define +#define PARITYENABLE_ON 1 /* line control setting for parity enabled */ +#define PARITYENABLE_OFF 0 /* line control setting for parity disabled */ +#else +#define PARITY_ON 1 /* line control setting for parity enabled */ +#define PARITY_OFF 0 /* line control setting for parity disabled */ +#endif + +#ifdef NTVDM +// collision with winbase.h PARITY_ODD define +#define EVENPARITY_ODD 0 /* line control setting for odd parity */ +#define EVENPARITY_EVEN 1 /* line control setting for even parity */ +#else +#define PARITY_ODD 0 /* line control setting for odd parity */ +#define PARITY_EVEN 1 /* line control setting for even parity */ +#endif + +#define PARITY_STICK 1 /* line control setting for stick(y) parity */ + +#define PARITY_FIXED 2 /* Internal state setting for fixed parity */ + +#define COM1 0 +#define COM2 1 +#if (NUM_SERIAL_PORTS > 2) +#define COM3 2 +#define COM4 3 +#endif + +#if defined(NTVDM) && defined(FIFO_ON) +typedef struct _FIFORXDATA{ + half_word data; + half_word error; +}FIFORXDATA, *PFIFORXDATA; +#endif + +/* + * ============================================================================ + * External declarations and macros + * ============================================================================ + */ + +extern void com_init IPT1(int, adapter); +extern void com_post IPT1(int, adapter); + +extern void com_flush_printer IPT1(int, adapter); + +extern void com_inb IPT2(io_addr, port, half_word *, value); +extern void com_outb IPT2(io_addr, port, half_word, value); + +extern void com_recv_char IPT1(int, adapter); +extern void recv_char IPT1(long, adapter); +extern void com_modem_change IPT1(int, adapter); +extern int com_save_rxbytes IPT2(int,n, CHAR *,buf); +extern int com_save_txbyte IPT1(CHAR,value); + +#ifdef PS_FLUSHING +extern void com_psflush_change IPT2(IU8,hostID, IBOOL,apply); +#endif /* PS_FLUSHING */ + +#ifdef NTVDM +extern void com_lsr_change(int adapter); +extern void SyncBaseLineSettings(int adapter,DIVISOR_LATCH *divisor_latch, + LINE_CONTROL_REG *LCR_reg); +extern void tx_shift_register_empty(int adapter); +extern void tx_holding_register_empty(int adapter); +#endif + +#if (NUM_SERIAL_PORTS > 2) +#define adapter_for_port(port) \ + (((port & 0x300) == 0x300) ? \ + (((port & 0xf8) == 0xf8) ? COM1 : COM3) \ + : \ + (((port & 0xf8) == 0xf8) ? COM2 : COM4)) + +#ifdef SHORT_TRACE +#define id_for_adapter(adapter) (adapter + '1') +#endif + +#else + +#define adapter_for_port(port) (((port) >= RS232_PRI_PORT_START && (port) <= RS232_PRI_PORT_END) ? COM1 : COM2) + + +#ifdef SHORT_TRACE +#define id_for_adapter(adapter) (adapter == COM1 ? 'P' : 'S') +#endif +#endif /* more than 2 serial ports */ + +#ifdef IRET_HOOKS +/* + * A macro we need for IRET hooks, the number of bits in a an async + * character on a comms line, which is about 8 (for the character) + * plus two stop bits. + */ +#define BITS_PER_ASYNC_CHAR 10 +#endif /* IRET_HOOKS */ + +/* BCN 2730 define generic macros which can be SVID3 or old style + * in either case the structure used should be a termios + */ + +#ifdef SVID3_TCGET +#define TCGET TCGETS +#define TCSET TCSETS +#define TCSETF TCSETSF +#else +#define TCGET TCGETA +#define TCSET TCSETA +#define TCSETF TCSETAF +#endif /* SVID3_TCGET */ + +#endif /* _RS232_H */ diff --git a/private/mvdm/softpc.new/base/inc/rtc_bios.h b/private/mvdm/softpc.new/base/inc/rtc_bios.h new file mode 100644 index 000000000..165b95418 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/rtc_bios.h @@ -0,0 +1,36 @@ +/* @(#)rtc_bios.h 1.4 08/10/92 Copyright Insignia Solutions Ltd. + +FILE NAME : rtc_bios.h + + THIS INCLUDE SOURCE FILE IS SUPPLIED IN CONFIDENCE TO THE + CUSTOMER, THE CONTENTS OR DETAILS OF ITS OPERATION MUST + NOT BE DISCLOSED TO ANY OTHER PARTIES WITHOUT THE EXPRESS + AUTHORISATION FROM THE DIRECTORS OF INSIGNIA SOLUTIONS INC. + +DESIGNER : J.P.Box +DATE : OCT '88 + + +========================================================================= + +AMMENDMENTS : + +========================================================================= +*/ +#define USER_FLAG (BIOS_VAR_START + 0x98) +#define USER_FLAG_SEG (BIOS_VAR_START + 0x9A) +#define RTC_LOW (BIOS_VAR_START + 0x9C) +#define RTC_HIGH (BIOS_VAR_START + 0x9E) +#define RTC_WAIT_FLAG_ADDR (BIOS_VAR_START + 0xA0) + +#define rtc_wait_flag RTC_WAIT_FLAG_ADDR + +#define TIME_DEC 50000L /* 1000000/20 assumes 20 interrupts/sec */ + +typedef union { + double_word total; + struct { + word high; + word low; + } half; + } DOUBLE_TIME; diff --git a/private/mvdm/softpc.new/base/inc/sas.h b/private/mvdm/softpc.new/base/inc/sas.h new file mode 100644 index 000000000..cc550198f --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/sas.h @@ -0,0 +1,1082 @@ +/* +* +* Ade Brownlow +* Tue Dec 11 90 +* +* sas.h +* +* This file replaces the old sas.h. Macros are no longer used for +* the sas functions they are always functions. This file takes +* into account backward M . +* +* Mike - Oct 93 +* A lot of these interfaces aren't used in 3.0, so we'll cut them out +* of 4.0 altogether. Use of them in the base is hence depricated! +* +* 4.0 also switches to function pointers, so there's a pretty big +* #ifdef CPU_40_STYLE in here. +* +* By the way, Jeremy has documented this interface in +* HWRD/SOFT486(SAS)/DES +* +* SccsID: @(#)sas.h 1.70 07/07/95 +* +*/ + +#include "host_sas.h" + +/* memory types for sas */ + +#ifdef CPU_40_STYLE + +typedef enum { + SAS_RAM, + SAS_VIDEO, + SAS_ROM, + SAS_WRAP, + SAS_IO, + SAS_MM_LIM, + SAS_INACCESSIBLE, + SAS_DANGEROUS +} SAS_MEM_TYPE; +#define SAS_VDD SAS_IO +#define SAS_MAX_TYPE SAS_DANGEROUS + +#else /* CPU_40_STYLE */ + +#define SAS_RAM 0 +#define SAS_VIDEO 1 +#define SAS_ROM 2 +#define SAS_WRAP 3 +#define SAS_IO 4 +#define SAS_MM_LIM 5 +#define SAS_INACCESSIBLE 6 +#define SAS_DANGEROUS 7 +#define SAS_MAX_TYPE SAS_DANGEROUS + +#endif /* CPU_40_STYLE else */ + +#define SAS_TYPE_TO_STRING(type) (\ + ((type) == SAS_RAM)? "RAM" :\ + ((type) == SAS_VIDEO)? "VIDEO" :\ + ((type) == SAS_ROM)? "ROM" :\ + ((type) == SAS_WRAP)? "WRAP" :\ + ((type) == SAS_IO)? "IO" :\ + ((type) == SAS_MM_LIM)? "MM_LIM" :\ + ((type) == SAS_INACCESSIBLE)? "INACCESSIBLE" :\ + ((type) == SAS_DANGEROUS)? "DANGEROUS" :\ + "UNKNOWN TYPE") + + +/* one #defined function */ +#define sas_disconnect_memory(l,h) sas_connect_memory(l,h,SAS_INACCESSIBLE); + +#ifdef CPU_40_STYLE + + +/********************************************************/ +/* + * This interface now uses function pointers, so we need to set up + * a set of macros with the traditional SAS names that will pick-up + * the functions pointed to. + * + * sas_init and sas_term don't use pointers + */ + +#define sas_load(addr, val) *val = sas_hw_at(addr) +#define sas_loadw(addr, val) *val = sas_w_at(addr) +#define sas_loaddw(addr, val) *val = sas_dw_at(addr) + +extern void sas_init IPT1(PHY_ADDR, size); +extern void sas_term IPT0(); + +#include + +#ifdef NTVDM +#ifdef CCPU +extern IU8 *c_GetLinAdd IPT1(IU32, lin_addr); +#define NtGetPtrToLinAddrByte(x) c_GetLinAdd(x) +#else /* !CCPU */ +extern IU8 *NtGetPtrToLinAddrByte IPT1(IU32, lin_addr); +#endif /* CCPU */ +#endif /* NTVDM */ + +/* + * TEMPORARY FOR NT!!!!! + */ + +extern host_addr Start_of_M_area; /* host addr (char *) of start of M */ +extern IHPE Length_of_M_area; /* offset of end of M */ +#else /* CPU_40_STYLE */ +#define sas_set_buf(buf,addr) buf=get_byte_addr(addr) + +extern host_addr Start_of_M_area; /* host addr (char *) of start of M */ +#ifdef GISP_CPU +extern IHPE Length_of_M_area; /* offset of end of M */ +#else +extern sys_addr Length_of_M_area; /* sys addr (long) offset of end of M */ +#endif /* GISP_CPU */ + +/* the following is for integration only */ + +#ifdef CHEAT +#ifdef M_IS_POINTER +extern half_word *M; +#else +extern half_word M[]; +#endif /* M_IS_POINTER */ +#endif /* CHEAT */ + +/* + The following is to allow hosts to redefine the sas_interface to + function pointers is they so wish +*/ + +#if !defined(HOST_SAS) || defined(BASE_SAS) + +/********************************************************/ +/* pointer manipulation macros */ +/* + * Note that the PHY_ADDR casts in get_byte_addr shouldn't need to be + * there, but I've put them in to reduce BCN 2275's impact on other files. + * I'll take them out in a future BCN. + * + * Mike. + */ + +#ifdef BACK_M +#define inc_M_ptr(p,o) (p-(o)) +#define get_byte_addr(addr) ((IU8 *)((IHPE)Start_of_M_area + Length_of_M_area - 1 - (PHY_ADDR)(addr))) +#define M_get_dw_ptr(address) ((IHPE)Start_of_M_area + Length_of_M_area - 1 - (long)(address) - 3) +#else /* BACK_M */ +#define inc_M_ptr(p,o) (p+(o)) +#define get_byte_addr(addr) ((IU8 *)((IHPE)Start_of_M_area + (PHY_ADDR)(addr))) +#define M_get_dw_ptr(address) ((IHPE)Start_of_M_area + (long)(address)) +#endif /* BACK_M */ + +/********************************************************/ + +/********************************************************/ + +/* + * These function prototypes and macros were taken out to make implementation + * of 4.0 easier. We'll leave them in for builds prior to 3.0 though. + * + */ +#ifndef CPU_30_STYLE +#define M_low (long)Start_of_M_area +#define M_high (long)(Length_of_M_area-1) +#ifdef BACK_M +#define get_addr(type,address) (M_low+M_high- (long)(address) - (sizeof(type)-1)) +#define get_offset_into_M(p) (M_high - p) +#else /* BACK_M */ +#define get_addr(type,address) (M_low+ (long)(address)) +#define get_offset_into_M(p) (p - M_low) +#endif /* BACK_M */ +#define M_index_hw(p,a) (*(get_byte_addr(get_offset_into_M(p)+a))) +#define M_index_w(p,a) (*(get_word_addr(get_offset_into_M(p)+(a*sizeof (word))))) +#define M_index_dw(p,a) (*(get_double_word_addr(get_offset_into_M(p)+(a*sizeof(double_word))))) +#define M_index(t,p,a) (*(get_addr(t,get_offset_into_M(p)+(a*sizeof(t))))) +#define M_get_hw_ptr(a) get_byte_addr(a) +#define M_get_w_ptr(a) get_word_addr(a) +#define get_word_addr(address) ((host_addr)get_addr(word,address)) +#define get_double_word_addr(address) ((host_addr)get_addr(double_word,address)) + +extern void sas_part_enable_20_bit_wrap IPT3(BOOL, for_write, + sys_addr, start_offset, sys_addr, end_offset); +extern void sas_part_disable_20_bit_wrap IPT3(BOOL, for_write, + sys_addr, start_offset, sys_addr, end_offset); +extern void sas_move_bytes_backward IPT3(sys_addr, src, sys_addr, dest, + sys_addr, len); +extern void sas_move_words_backward IPT3(sys_addr, src, sys_addr, dest, + sys_addr, len); +#endif /* !CPU_30_STYLE */ + +/********************************************************/ +/* function declarations */ +extern void sas_init IPT1(sys_addr, size); +extern void sas_term IPT0(); +#ifdef GISP_CPU +extern IHPE sas_memory_size IPT0 (); +#else +extern sys_addr sas_memory_size IPT0(); +#endif /* GISP_CPU */ +extern void sas_connect_memory IPT3(sys_addr, low, sys_addr, high, + half_word, type); +extern void sas_overwrite_memory IPT2(sys_addr, addr, int, type); + +#ifdef NTVDM +/* We call xms functions(which in turn, will call sas functions) to + manage the A20 line wrapping. The reason is that we want to keep + the A20 line current state in himem.sys so that we don't have to + bop to 32 bits side to get the state. +*/ +extern void xmsEnableA20Wrapping(void); +extern void xmsDisableA20Wrapping(void); +#endif /* NTVDM */ + +extern half_word sas_memory_type IPT1(sys_addr, addr); +extern void sas_enable_20_bit_wrapping IPT0(); +extern void sas_disable_20_bit_wrapping IPT0(); +extern BOOL sas_twenty_bit_wrapping_enabled IPT0(); +extern half_word sas_hw_at IPT1(sys_addr, addr); +extern word sas_w_at IPT1(sys_addr, addr); +extern double_word sas_dw_at IPT1(sys_addr, addr); +extern half_word sas_hw_at_no_check IPT1(sys_addr, addr); +extern word sas_w_at_no_check IPT1(sys_addr, addr); +extern double_word sas_dw_at_no_check IPT1(sys_addr, addr); +extern void sas_load IPT2(sys_addr, addr, half_word *, val); +extern void sas_store IPT2(sys_addr, addr, half_word, val); +extern void sas_store_no_check IPT2(sys_addr, addr24, half_word, val); +#ifndef SUN_VA +extern void sas_loadw IPT2(sys_addr, addr, word *, val); +extern void sas_storew IPT2(sys_addr, addr, word, val); +extern void sas_storew_no_check IPT2(sys_addr, addr24, word, val); +#else +extern void sas_loadw_swap IPT2(sys_addr, addr, word *, val); +extern void sas_storew_swap IPT2(sys_addr, addr, word, val); +#endif /* SUN_VA */ +extern void sas_storedw IPT2(sys_addr, addr, double_word, val); +extern void sas_loads IPT3(sys_addr, src, host_addr, dest, sys_addr, len); +extern void sas_stores IPT3(sys_addr, dest, host_addr, src, sys_addr, len); +extern int sas_strlen IPT1(sys_addr, str_ptr); +extern void sas_move_bytes_forward IPT3(sys_addr, src, sys_addr, dest, + sys_addr, len); +extern void sas_move_words_forward IPT3(sys_addr, src, sys_addr, dest, + sys_addr, len); +extern void sas_fills IPT3(sys_addr, addr, half_word, val, sys_addr, len); +extern void sas_fillsw IPT3(sys_addr, addr, word, val, sys_addr, len); +extern host_addr sas_scratch_address IPT1(sys_addr, length); +extern host_addr sas_transbuf_address IPT2(sys_addr, intel_dest_addr, sys_addr, length); +extern void sas_loads_to_transbuf IPT3(sys_addr, src, host_addr, dest, sys_addr, len); +extern void sas_stores_from_transbuf IPT3(sys_addr, dest, host_addr, src, sys_addr, len); + +#endif /* HOST_SAS */ + +/* + * These are the physical memory interfaces introduced in 4.0. As + * physical and linear addresses are the same before 4.0, we can + * just point them at the appropriate linear addresses. + */ + +#define sas_PR8 sas_hw_at +#define sas_PR16 sas_w_at +#define sas_PR32 sas_dw_at +#define sas_PW8 sas_store +#define sas_PW16 sas_storew +#define sas_PW32 sas_storedw +#define sas_PWS sas_stores +#define sas_PRS sas_loads + +#endif /* ! CPU_40_STYLE */ + +/********************************************************/ +/* this marco is used as a replacement for cpu_sw_interrupt */ + +#define exec_sw_interrupt(c,i) \ +{ \ + word cs,ip; \ + \ + cs = getCS(); ip = getIP(); \ + \ + setCS(c); setIP(i); \ + host_simulate(); \ + \ + setCS(cs); setIP(ip); \ +} + + +/********************************************************/ +/* Size of memory array in half-words */ +#define PC_MEM_SIZE 0x100000L /* 1 Mbyte */ +#define MEMORY_TOP 0xA0000L /* 640K DOS limit */ + +/* Memory bounds for the colour graphics adaptor */ + +#ifdef BACK_M + +#ifndef HERC_REGEN_BUFF +#define CGA_REGEN_BUFF 0xBBFFFL +#define MDA_REGEN_BUFF 0xB7FFFL +#define HERC_REGEN_BUFF 0xBFFFFL +#endif /* HERC_REGEN_BUFF */ + +#else + +#ifndef HERC_REGEN_BUFF +#define CGA_REGEN_BUFF 0xB8000L +#define MDA_REGEN_BUFF 0xB0000L +#define HERC_REGEN_BUFF 0xB0000L +#endif /* HERC_REGEN_BUFF */ + +#endif /* BACK_M */ + +#define CGA_REGEN_START 0xB8000L +#define CGA_REGEN_END 0xBBFFFL +#define CGA_REGEN_LENGTH (CGA_REGEN_END - CGA_REGEN_START + 1L) + +#define MDA_REGEN_START 0xB0000L +#define MDA_REGEN_END 0xB7FFFL +#define MDA_REGEN_LENGTH (MDA_REGEN_END - MDA_REGEN_START + 1L) + +#define HERC_REGEN_START 0xB0000L +#define HERC_REGEN_END 0xBFFFFL +#define HERC_REGEN_LENGTH (HERC_REGEN_END - HERC_REGEN_START + 1L) + +/* + * Constants used by the sas initialisation function. These consist of + * memory locations and PC instructions for the BIOS calling structure. + * + * The BIOS calls are via the BOP pseudo instruction and these are + * positioned at the real entry points for the PC. See the BIOS module + * for a more detailed description of the calling mechanism. + */ + +/* General Intel memory parameters */ + + +#define BIOS_START_OFFSET 0x0000L +#define BIOS1_END_SEGMENT 0xF000L +#define BIOS1_END_OFFSET 0x7000L /* End of 1st half of ROM */ +#define BIOS2_START_SEGMENT 0xF000L +#define BIOS2_START_OFFSET 0xE000L /* 2nd half of BIOS ROM */ +#define BAD_OP 0xC5 /* filling RAM for the use of */ + +#define BASIC_ROM 0xFE000L /* Start of Basic Rom */ +#define ROM_START 0xC0000L /* Start of Expansion ROM @ 768k */ + +#define FIXED_DISK_START 0xC8000L /* Start fixed disk BIOS*/ +#define FIXED_DISK_END 0xCA000L /* End fixed disk BIOS +1 */ + +#define START_SEGMENT 0xF000 /* 8088 start address */ +#define START_OFFSET 0xFFF0 + +/* + * The follwoing are the offsets for the entry points to the + * BIOS function calls. These will be loaded into the interrupt vector + * table. + * the Segments are defined later, depending upon GISP_SVGA + * for which they will be the global Rom address variables + */ + +#define COPYRIGHT_OFFSET 0xE008 +#define RESET_OFFSET 0xE05B +#define BOOT_STRAP_OFFSET 0xE6F2 +#define DOS_OFFSET 0x7C00 +#define KEYBOARD_IO_OFFSET 0xE82E +#define DISKETTE_IO_OFFSET 0xEC49 +#ifndef GISP_SVGA +#define VIDEO_IO_OFFSET 0xF065 +#else /* GISP_SVGA */ +#define VIDEO_IO_OFFSET 0x0810 +#define CGA_VIDEO_IO_OFFSET 0xF065 +#endif /* GISP_SVGA */ +#define VIDEO_IO_RE_ENTRY 0xF06C +#define MEMORY_SIZE_OFFSET 0xF841 +#define EQUIPMENT_OFFSET 0xF84D +#define TIME_OF_DAY_OFFSET 0xFE6E +#define DISK_IO_OFFSET 0x0256 +#define RS232_IO_OFFSET 0xE739 +#define CASSETTE_IO_OFFSET 0xF859 +#define PRINTER_IO_OFFSET 0xEFD2 +#define PRINT_SCREEN_OFFSET 0xFF54 +#define BASIC_OFFSET 0xEC00 +#define VIDEO_PARM_OFFSET 0xF0A4 +#define DISKETTE_TB_OFFSET 0xEFC7 +#define DISK_TB_OFFSET 0x03E7 +#define EXTEND_CHAR_OFFSET 0x0000 +#define MOUSE_VIDEO_IO_OFFSET 0xED80 + +#if defined(NTVDM) && !defined(X86GFX) +#define MOUSE_IO_INTERRUPT_SEGMENT 0xF000 +#define MOUSE_IO_INTERRUPT_OFFSET 0xED00 +#endif + +#define KEYBOARD_BREAK_INT_OFFSET 0xFF35 +#define PRINT_SCREEN_INT_OFFSET 0xFF3B +#define USER_TIMER_INT_OFFSET 0xFF41 + +/* ... and the device interrupts... */ +#define UNEXP_INT_OFFSET 0x6f00 +#define DUMMY_INT_OFFSET 0xFF4B +#define TIMER_INT_OFFSET 0xFEA5 +#define ILL_OP_INT_OFFSET 0xFF30 +#define KB_INT_OFFSET 0xE987 +#define DISKETTE_INT_OFFSET 0xEF57 +#define DISK_INT_OFFSET 0x0760 +#define MOUSE_INT1_OFFSET 0xEE00 +#define MOUSE_INT2_OFFSET 0xEE80 +#define MOUSE_VERSION_OFFSET 0xED20 +#define MOUSE_COPYRIGHT_OFFSET 0xED40 +#define RTC_INT_OFFSET 0x4B1B +#define D11_INT_OFFSET 0x1BE0 +#define REDIRECT_INT_OFFSET 0x1C2F +#define X287_INT_OFFSET 0x1C38 + +/* ...and the dummy return for address compatibility */ +#define ADDR_COMPATIBILITY_OFFSET 0xFF53 + +/* define the location of the code that the recursive CPU will start at */ +#define RCPU_POLL_OFFSET 0xe850 +#define RCPU_NOP_OFFSET 0xe950 +#define RCPU_INT15_OFFSET 0xe970 +#define RCPU_INT4A_OFFSET 0x4B30 + +/* ...and the data tables */ +#define CONF_TABLE_OFFSET 0xE6F5 + +#define DR_TYPE_OFFSET 0x0C50 + +#define MD_TBL1_OFFSET (DR_TYPE_OFFSET + 0x15) +#define MD_TBL2_OFFSET (MD_TBL1_OFFSET + 0xd) +#define MD_TBL3_OFFSET (MD_TBL2_OFFSET + 0xd) +#define MD_TBL4_OFFSET (MD_TBL3_OFFSET + 0xd) +#define MD_TBL5_OFFSET (MD_TBL4_OFFSET + 0xd) +#define MD_TBL6_OFFSET (MD_TBL5_OFFSET + 0xd) + +#define RCPU_WAIT_INT_OFFSET 0x0CE0 + +/* + * ROM locations of disk parameter blocks + */ + +#define DISKIO_OFFSET 0x2e86 +#define DISKISR_OFFSET 0x33b7 +#define DISKWAIT_OFFSET 0x329f /* DISKIO_OFFSET + 0x419 */ +#define DPB0_OFFSET 0x0421 +#define DPB1_OFFSET 0x0431 + +/* Video MODE Table stuff etc (CGA) */ + +#define VID_PARMS_OFFSET 0xF0A4 +#define VID_LENS_OFFSET 0xF0E4 +#define VID_COLTAB_OFFSET 0xF0EC +#define VID_MODTAB_OFFSET 0xF0F4 +#define CHAR_GEN_OFFSET 0xFA6E + + +/* Location of EGA entry point for INT 10 */ +#ifndef GISP_SVGA +#define EGA_ENTRY_OFF 0x0898 +#else /* GISP_SVGA */ +#define EGA_ENTRY_OFF 0x0800 +#endif /* GISP_SVGA */ + +/* Off set info for EGA character tables */ +#define EGA_CGMN_OFF 0x2230 +#define EGA_CGMN_FDG_OFF 0x3030 +#define EGA_CGDDOT_OFF 0x3160 +#define EGA_HIFONT_OFF 0x3990 +#define EGA_INT1F_OFF 0x3560 + +/* +* To enable our drivers to output messages generated from +* our bops we use a scratch area inside our rom. +*/ + +#define DOS_SCRATCH_PAD_OFFSET 0x6400 +#define DOS_SCRATCH_PAD_END_OFFSET 0x6fff + +#ifndef GISP_SVGA + +#define BIOS_START_SEGMENT 0xF000 +#define SYSROM_SEG 0xF000 +#define SYSROMORG_SEG 0xFe00 +#define COPYRIGHT_SEGMENT 0xF000 +#define RESET_SEGMENT 0xF000 +#define BOOT_STRAP_SEGMENT 0xF000 +#define DOS_SEGMENT 0x0000 +#define KEYBOARD_IO_SEGMENT 0xF000 +#define DISKETTE_IO_SEGMENT 0xF000 +#define VIDEO_IO_SEGMENT 0xF000 +#define VIDEO_IO_RE_ENTRY 0xF06C +#define MEMORY_SIZE_SEGMENT 0xF000 +#define EQUIPMENT_SEGMENT 0xF000 +#define TIME_OF_DAY_SEGMENT 0xF000 +#define DISK_IO_SEGMENT 0xC800 +#define RS232_IO_SEGMENT 0xF000 +#define CASSETTE_IO_SEGMENT 0xF000 +#define PRINTER_IO_SEGMENT 0xF000 +#define PRINT_SCREEN_SEGMENT 0xF000 +#define BASIC_SEGMENT 0xF000 +#define VIDEO_PARM_SEGMENT 0xF000 +#define DISKETTE_TB_SEGMENT 0xF000 +#define DISK_TB_SEGMENT 0xC800 +#define EXTEND_CHAR_SEGMENT 0xF000 +#ifndef MOUSE_VIDEO_IO_SEGMENT +#define MOUSE_VIDEO_IO_SEGMENT 0xF000 +#endif /* MOUSE_VIDEO_IO_SEGMENT */ + +#define KEYBOARD_BREAK_INT_SEGMENT 0xF000 +#define PRINT_SCREEN_INT_SEGMENT 0xF000 +#define USER_TIMER_INT_SEGMENT 0xF000 + +/* ... and the device interrupts... */ +#define UNEXP_INT_SEGMENT 0xF000 +#define DUMMY_INT_SEGMENT 0xF000 +#define TIMER_INT_SEGMENT 0xF000 +#define ILL_OP_INT_SEGMENT 0xF000 +#define KB_INT_SEGMENT 0xF000 +#define DISKETTE_INT_SEGMENT 0xF000 +#define DISK_INT_SEGMENT 0xC800 +#ifndef MOUSE_INT1_SEGMENT +#define MOUSE_INT1_SEGMENT 0xF000 +#endif /* MOUSE_INT1_SEGMENT */ +#ifndef MOUSE_INT2_SEGMENT +#define MOUSE_INT2_SEGMENT 0xF000 +#endif /* MOUSE_INT2_SEGMENT */ +#ifndef MOUSE_VERSION_SEGMENT +#define MOUSE_VERSION_SEGMENT 0xF000 +#endif /* MOUSE_VERSION_SEGMENT */ +#ifndef MOUSE_COPYRIGHT_SEGMENT +#define MOUSE_COPYRIGHT_SEGMENT 0xF000 +#endif /* MOUSE_COPYRIGHT_SEGMENT */ +#define RTC_INT_SEGMENT 0xF000 +#define D11_INT_SEGMENT 0xF000 +#define REDIRECT_INT_SEGMENT 0xF000 +#define X287_INT_SEGMENT 0xF000 + +/* ...and the dummy return for address compatibility */ +#define ADDR_COMPATIBILITY_SEGMENT 0xF000 + +/* define the location of the code that the recursive CPU will start at */ +#define RCPU_POLL_SEGMENT KB_INT_SEGMENT +#define RCPU_NOP_SEGMENT KB_INT_SEGMENT +#define RCPU_INT15_SEGMENT KB_INT_SEGMENT +#define RCPU_INT4A_SEGMENT RTC_INT_SEGMENT + +/* ...and the data tables */ +#define CONF_TABLE_SEGMENT 0xF000 + +#define DISKETTE_IO_1_SEGMENT 0xFE00 +#define DR_TYPE_SEGMENT DISKETTE_IO_1_SEGMENT + +#define MD_TBL1_SEGMENT DISKETTE_IO_1_SEGMENT +#define MD_TBL2_SEGMENT DISKETTE_IO_1_SEGMENT +#define MD_TBL3_SEGMENT DISKETTE_IO_1_SEGMENT +#define MD_TBL4_SEGMENT DISKETTE_IO_1_SEGMENT +#define MD_TBL5_SEGMENT DISKETTE_IO_1_SEGMENT +#define MD_TBL6_SEGMENT DISKETTE_IO_1_SEGMENT +#define DPB0_SEGMENT 0xF000 +#define DPB1_SEGMENT 0xF000 + +#define RCPU_WAIT_INT_SEGMENT DISKETTE_IO_1_SEGMENT + +/* Video MODE Table stuff etc (CGA) */ + +#define VID_PARMS_SEGMENT 0xF000 +#define VID_LENS_SEGMENT 0xF000 +#define VID_COLTAB_SEGMENT 0xF000 +#define VID_MODTAB_SEGMENT 0xF000 +#define CHAR_GEN_SEGMENT 0xF000 + +/* Off set info for EGA character tables */ +#define EGA_CGMN_OFF 0x2230 +#define EGA_CGMN_FDG_OFF 0x3030 +#define EGA_CGDDOT_OFF 0x3160 +#define EGA_HIFONT_OFF 0x3990 +#define EGA_INT1F_OFF 0x3560 + +#define DOS_SCRATCH_PAD_SEGMENT 0xF000 +#define DOS_SCRATCH_PAD_END_SEGMENT 0xF000 + +/* ...and the 20 bit address corresponding to the above */ + +#define BIOS_START (sys_addr)(BIOS_START_SEGMENT * 16L) + \ + (sys_addr)BIOS_START_OFFSET +#define BIOS1_END (sys_addr)(BIOS1_END_SEGMENT * 16L) + \ + (sys_addr)BIOS1_END_OFFSET +#define BIOS2_START (sys_addr)(BIOS2_START_SEGMENT * 16L) + \ + (sys_addr)BIOS2_START_OFFSET +#define START_ADDR (sys_addr)(START_SEGMENT * 16L) + \ + (sys_addr)START_OFFSET +#define COPYRIGHT_ADDR (sys_addr)(COPYRIGHT_SEGMENT * 16L) + \ + (sys_addr)COPYRIGHT_OFFSET +#define RESET_ADDR (sys_addr)(RESET_SEGMENT * 16L) + \ + (sys_addr)RESET_OFFSET +#define BOOT_STRAP_ADDR (sys_addr)(BOOT_STRAP_SEGMENT * 16L) + \ + (sys_addr)BOOT_STRAP_OFFSET +#define KEYBOARD_IO_ADDR (sys_addr)(KEYBOARD_IO_SEGMENT * 16L) + \ + (sys_addr)KEYBOARD_IO_OFFSET +#define DISKETTE_IO_ADDR (sys_addr)(DISKETTE_IO_SEGMENT * 16L) + \ + (sys_addr)DISKETTE_IO_OFFSET +#define VIDEO_IO_ADDR (sys_addr)(VIDEO_IO_SEGMENT * 16L) + \ + (sys_addr)VIDEO_IO_OFFSET +#define MEMORY_SIZE_ADDR (sys_addr)(MEMORY_SIZE_SEGMENT * 16L) + \ + (sys_addr)MEMORY_SIZE_OFFSET +#define EQUIPMENT_ADDR (sys_addr)(EQUIPMENT_SEGMENT * 16L) + \ + (sys_addr)EQUIPMENT_OFFSET +#define TIME_OF_DAY_ADDR (sys_addr)(TIME_OF_DAY_SEGMENT * 16L) + \ + (sys_addr)TIME_OF_DAY_OFFSET +#define DISK_IO_ADDR (sys_addr)(DISK_IO_SEGMENT * 16L) + \ + (sys_addr)DISK_IO_OFFSET +#define RS232_IO_ADDR (sys_addr)(RS232_IO_SEGMENT * 16L) + \ + (sys_addr)RS232_IO_OFFSET +#define CASSETTE_IO_ADDR (sys_addr)(CASSETTE_IO_SEGMENT * 16L) + \ + (sys_addr)CASSETTE_IO_OFFSET +#define PRINTER_IO_ADDR (sys_addr)(PRINTER_IO_SEGMENT * 16L) + \ + (sys_addr)PRINTER_IO_OFFSET +#define PRINT_SCREEN_ADDR (sys_addr)(PRINT_SCREEN_SEGMENT * 16L) + \ + (sys_addr)PRINT_SCREEN_OFFSET +#define BASIC_ADDR (sys_addr)(BASIC_SEGMENT * 16L) + \ + (sys_addr) BASIC_OFFSET +#define DISKETTE_TB_ADDR (sys_addr)(DISKETTE_TB_SEGMENT * 16L) + \ + (sys_addr)DISKETTE_TB_OFFSET +#define DISK_TB_ADDR (sys_addr)(DISK_TB_SEGMENT * 16L) + \ + (sys_addr)DISK_TB_OFFSET +#define MOUSE_VIDEO_IO_ADDR (sys_addr)(MOUSE_VIDEO_IO_SEGMENT * 16L) + \ + (sys_addr)MOUSE_VIDEO_IO_OFFSET +#define DUMMY_INT_ADDR (sys_addr)(DUMMY_INT_SEGMENT * 16L) + \ + (sys_addr)DUMMY_INT_OFFSET +#define TIMER_INT_ADDR (sys_addr)(TIMER_INT_SEGMENT * 16L) + \ + (sys_addr)TIMER_INT_OFFSET +#define KB_INT_ADDR (sys_addr)(KB_INT_SEGMENT * 16L) + \ + (sys_addr)KB_INT_OFFSET +#define DISKETTE_INT_ADDR (sys_addr)(DISKETTE_INT_SEGMENT * 16L) + \ + (sys_addr)DISKETTE_INT_OFFSET +#define DISK_INT_ADDR (sys_addr)(DISK_INT_SEGMENT * 16L) + \ + (sys_addr)DISK_INT_OFFSET +#define UNEXP_INT_ADDR (sys_addr)(UNEXP_INT_SEGMENT * 16L) + \ + (sys_addr)UNEXP_INT_OFFSET +#define MOUSE_INT1_ADDR (sys_addr)(MOUSE_INT1_SEGMENT * 16L) + \ + (sys_addr)MOUSE_INT1_OFFSET +#define MOUSE_INT2_ADDR (sys_addr)(MOUSE_INT2_SEGMENT * 16L) + \ + (sys_addr)MOUSE_INT2_OFFSET +#define MOUSE_VERSION_ADDR (sys_addr)(MOUSE_VERSION_SEGMENT * 16L) + \ + (sys_addr)MOUSE_VERSION_OFFSET +#define MOUSE_COPYRIGHT_ADDR (sys_addr)(MOUSE_COPYRIGHT_SEGMENT * 16L) + \ + (sys_addr)MOUSE_COPYRIGHT_OFFSET +#define ADDR_COMPATIBILITY_ADDR (sys_addr)(ADDR_COMPATIBILITY_SEGMENT * 16L) + \ + (sys_addr)ADDR_COMPATIBILITY_OFFSET +#define CONF_TABLE_ADDR (sys_addr)(CONF_TABLE_SEGMENT * 16L) + \ + (sys_addr)CONF_TABLE_OFFSET +#define DISK_BASE_ADDR (sys_addr)(DISK_BASE_SEGMENT * 16L) + \ + (sys_addr)DISK_BASE_OFFSET +#define DR_TYPE_ADDR (sys_addr)(DR_TYPE_SEGMENT * 16L) + \ + (sys_addr)DR_TYPE_OFFSET +#define DISKETTE_IO_1_ADDR (sys_addr)(DISKETTE_IO_SEGMENT * 16L) + \ + (sys_addr)DISKETTE_IO_OFFSET +#define MD_TBL1_ADDR (sys_addr)(MD_TBL1_SEGMENT * 16L) + \ + (sys_addr)MD_TBL1_OFFSET +#define MD_TBL2_ADDR (sys_addr)(MD_TBL2_SEGMENT * 16L) + \ + (sys_addr)MD_TBL2_OFFSET +#define MD_TBL3_ADDR (sys_addr)(MD_TBL3_SEGMENT * 16L) + \ + (sys_addr)MD_TBL3_OFFSET +#define MD_TBL4_ADDR (sys_addr)(MD_TBL4_SEGMENT * 16L) + \ + (sys_addr)MD_TBL4_OFFSET +#define MD_TBL5_ADDR (sys_addr)(MD_TBL5_SEGMENT * 16L) + \ + (sys_addr)MD_TBL5_OFFSET +#define MD_TBL6_ADDR (sys_addr)(MD_TBL6_SEGMENT * 16L) + \ + (sys_addr)MD_TBL6_OFFSET +#define RCPU_WAIT_INT_ADDR (sys_addr)(RCPU_WAIT_INT_SEGMENT * 16L) + \ + (sys_addr)RCPU_WAIT_INT_OFFSET +#define DPB0 0xfe421 +#define DPB1 0xfe431 + +/* Addresses in Intel memory of constant keyboard tables */ +#define K6 0xFE87EL +#define K7 0xFE886L +#define K8 0xFE88EL +#define K9 0xFE8C8L +#define K10 0xFE8E6L +#define K11 0xFE98AL +#define K30 0xFEA87L + +/* Video Stuff CGA */ + +#define VID_PARMS (sys_addr)(VID_PARMS_SEGMENT * 16L) + \ + (sys_addr)VID_PARMS_OFFSET +#define VID_LENS (sys_addr)(VID_LENS_SEGMENT * 16L) + \ + (sys_addr)VID_LENS_OFFSET +#define VID_COLTAB (sys_addr)(VID_COLTAB_SEGMENT * 16L) + \ + (sys_addr)VID_COLTAB_OFFSET +#define VID_MODTAB (sys_addr)(VID_COLTAB_SEGMENT * 16L) + \ + (sys_addr)VID_MODTAB_OFFSET +#define CHAR_GEN_ADDR (sys_addr)(CHAR_GEN_SEGMENT * 16L) + \ + (sys_addr)CHAR_GEN_OFFSET + +#define DOS_SCRATCH_PAD (sys_addr)(DOS_SCRATCH_PAD_SEGMENT * 16L) + \ + (sys_addr)DOS_SCRATCH_PAD_OFFSET +#define DOS_SCRATCH_PAD_END (sys_addr)(DOS_SCRATCH_PAD_END_SEGMENT * 16L) + \ + (sys_addr)DOS_SCRATCH_PAD_END_OFFSET + +#ifdef EGG +#define EGA_ROM_START 0xC0000L /* start of EGA BIOS ROM */ +#ifdef STINGER +#define EGA_ROM_END 0xC4A00L /* end of EGA BIOS ROM +1 */ +#else /* ~STINGER */ +#ifdef V7VGA +#define EGA_ROM_END 0xC5000L /* end of EGA BIOS ROM +1 */ +#else +#define EGA_ROM_END 0xC4000L /* end of EGA BIOS ROM +1 */ +#endif /* V7VGA */ +#endif /* STINGER */ +#endif /* EGG */ + +#ifdef EGG + +#define EGA_SEG 0xC000 /* Segment Address For the ega ROM */ + +/* EGA Font stuff */ + +#define EGA_CGMN 0xC2230 +#define EGA_CGDDOT 0xC3160 +#define EGA_HIFONT 0xC3990 /* 8x16 font for 640x480 ext */ + +#endif /* EGG */ + + + +#else /* GISP_SVGA */ + +/* The segment which the bios is gonna be loaded into */ +extern word Bios1Segment; +extern word Bios2Segment; +extern word EgaROMSegment; +extern word EgaFontSegment; + +/* Define all the segment address values to be out variables, just in case */ + +#define COPYRIGHT_SEGMENT Bios1Segment +#define RESET_SEGMENT Bios1Segment +#define BOOT_STRAP_SEGMENT Bios1Segment +#define DOS_SEGMENT 0x0000 +#define KEYBOARD_IO_SEGMENT Bios1Segment +#define DISKETTE_IO_SEGMENT Bios1Segment +#define VIDEO_IO_SEGMENT Bios1Segment +#define VIDEO_IO_RE_ENTRY 0xF06C +#define MEMORY_SIZE_SEGMENT Bios1Segment +#define EQUIPMENT_SEGMENT Bios1Segment +#define TIME_OF_DAY_SEGMENT Bios1Segment +#define DISK_IO_SEGMENT 0xC800 +#define RS232_IO_SEGMENT Bios1Segment +#define CASSETTE_IO_SEGMENT Bios1Segment +#define PRINTER_IO_SEGMENT Bios1Segment +#define PRINT_SCREEN_SEGMENT Bios1Segment +#define BASIC_SEGMENT Bios1Segment +#define VIDEO_PARM_SEGMENT Bios1Segment +#define DISKETTE_TB_SEGMENT Bios1Segment +#define DISK_TB_SEGMENT 0xC800 +#define EXTEND_CHAR_SEGMENT Bios1Segment +#ifndef MOUSE_VIDEO_IO_SEGMENT +#define MOUSE_VIDEO_IO_SEGMENT Bios1Segment +#endif /* MOUSE_VIDEO_IO_SEGMENT */ + +#define KEYBOARD_BREAK_INT_SEGMENT Bios1Segment +#define PRINT_SCREEN_INT_SEGMENT Bios1Segment +#define USER_TIMER_INT_SEGMENT Bios1Segment + +/* ... and the device interrupts... */ +#define UNEXP_INT_SEGMENT Bios1Segment +#define DUMMY_INT_SEGMENT Bios1Segment +#define TIMER_INT_SEGMENT Bios1Segment +#define ILL_OP_INT_SEGMENT Bios1Segment +#define KB_INT_SEGMENT Bios1Segment +#define DISKETTE_INT_SEGMENT Bios1Segment +#define DISK_INT_SEGMENT 0xC800 +#ifndef MOUSE_INT1_SEGMENT +#define MOUSE_INT1_SEGMENT Bios1Segment +#endif /* MOUSE_INT1_SEGMENT */ +#ifndef MOUSE_INT2_SEGMENT +#define MOUSE_INT2_SEGMENT Bios1Segment +#endif /* MOUSE_INT2_SEGMENT */ +#ifndef MOUSE_VERSION_SEGMENT +#define MOUSE_VERSION_SEGMENT Bios1Segment +#endif /* MOUSE_VERSION_SEGMENT */ +#ifndef MOUSE_COPYRIGHT_SEGMENT +#define MOUSE_COPYRIGHT_SEGMENT Bios1Segment +#endif /* MOUSE_COPYRIGHT_SEGMENT */ +#define RTC_INT_SEGMENT Bios1Segment +#define D11_INT_SEGMENT Bios1Segment +#define REDIRECT_INT_SEGMENT Bios1Segment +#define X287_INT_SEGMENT Bios1Segment + +/* ...and the dummy return for address compatibility */ +#define ADDR_COMPATIBILITY_SEGMENT Bios1Segment + +/* define the location of the code that the recursive CPU will start at */ +#define RCPU_POLL_SEGMENT KB_INT_SEGMENT +#define RCPU_NOP_SEGMENT KB_INT_SEGMENT +#define RCPU_INT15_SEGMENT KB_INT_SEGMENT +#define RCPU_INT4A_SEGMENT RTC_INT_SEGMENT + +/* ...and the data tables */ +#define CONF_TABLE_SEGMENT Bios1Segment + +#define DISKETTE_IO_1_SEGMENT Bios2Segment +#define DR_TYPE_SEGMENT DISKETTE_IO_1_SEGMENT + +#define MD_TBL1_SEGMENT DISKETTE_IO_1_SEGMENT +#define MD_TBL2_SEGMENT DISKETTE_IO_1_SEGMENT +#define MD_TBL3_SEGMENT DISKETTE_IO_1_SEGMENT +#define MD_TBL4_SEGMENT DISKETTE_IO_1_SEGMENT +#define MD_TBL5_SEGMENT DISKETTE_IO_1_SEGMENT +#define MD_TBL6_SEGMENT DISKETTE_IO_1_SEGMENT +#define DPB0_SEGMENT Bios1Segment +#define DPB1_SEGMENT Bios1Segment + +#define RCPU_WAIT_INT_SEGMENT DISKETTE_IO_1_SEGMENT + +/* Video MODE Table stuff etc (CGA) */ + +#define VID_PARMS_SEGMENT Bios1Segment +#define VID_LENS_SEGMENT Bios1Segment +#define VID_COLTAB_SEGMENT Bios1Segment +#define VID_MODTAB_SEGMENT Bios1Segment +#define CHAR_GEN_SEGMENT Bios1Segment + +/* + All the entrypoints and table locations for the roms are held in + this structure (romAddress) - it should be initialised in + host_rom_init() +*/ + +extern struct romAddressTag { + sys_addr startAddr; + sys_addr bios1StartAddr; + sys_addr bios2StartAddr; + sys_addr copyrightAddr; + sys_addr resetAddr; + sys_addr bootStrapAddr; + sys_addr keyboardIOAddr; + sys_addr disketteIOAddr; + sys_addr videoIOAddr; + sys_addr memorySizeAddr; + sys_addr equipmentAddr; + sys_addr timeOfDayAddr; + sys_addr diskIOAddr; + sys_addr rs232IOAddr; + sys_addr cassetteIOAddr; + sys_addr printerIOAddr; + sys_addr printScreenAddr; + sys_addr basicAddr; + sys_addr disketteTbAddr; + sys_addr diskTbAddr; + sys_addr mouseIOIntAddr; + sys_addr mouseVideoIOAddr; + sys_addr dummyIntAddr; + sys_addr timerIntAddr; + sys_addr kbIntAddr; + sys_addr diskettIntAddr; + sys_addr diskIntAddr; + sys_addr unexpIntAddr; + sys_addr mouseInt1Addr; + sys_addr mouseInt2Addr; + sys_addr mouseVersionAddr; + sys_addr mouseCopyrightAddr; + sys_addr addrCompatAddr; + sys_addr k6; + sys_addr k7; + sys_addr k8; + sys_addr k9; + sys_addr k10; + sys_addr k11; + sys_addr k30; + sys_addr confTableAddr; + sys_addr diskBaseAddr; + sys_addr drTypeAddr; + sys_addr disketteIO1Addr; + sys_addr mdTbl1Addr; + sys_addr mdTbl2Addr; + sys_addr mdTbl3Addr; + sys_addr mdTbl4Addr; + sys_addr mdTbl5Addr; + sys_addr mdTbl6Addr; + sys_addr rcpuWaitIntAddr; + sys_addr diskParamBlock0; + sys_addr diskParamBlock1; + sys_addr vidParms; + sys_addr vidLens; + sys_addr vidColTab; + sys_addr vidModTab; + sys_addr charGen; +#ifdef EGG + sys_addr egaStart; + sys_addr egaEnd; + sys_addr egaFonts; + sys_addr egaCgmn; + sys_addr egaCgDot; + sys_addr egaHiFont; +#endif /* EGG */ + sys_addr dosScratchPad; + sys_addr dosScratchPadEnd; +} romAddress; + +/* Define out all the 20 bit addresses to be our structure */ + +#define BIOS_START_SEGMENT Bios1Segment +#define SYSROM_SEG Bios1Segment +#define SYSROMORG_SEG Bios2Segment +#define START_ADDR romAddress.startAddr +#define BIOS_START romAddress.bios1StartAddr +#define BIOS2_START romAddress.bios2StartAddr +#define COPYRIGHT_ADDR romAddress.copyrightAddr +#define RESET_ADDR romAddress.resetAddr +#define BOOT_STRAP_ADDR romAddress.bootStrapAddr +#define KEYBOARD_IO_ADDR romAddress.keyboardIOAddr +#define DISKETTE_IO_ADDR romAddress.disketteIOAddr +#define VIDEO_IO_ADDR romAddress.videoIOAddr +#define MEMORY_SIZE_ADDR romAddress.memoryIOAddr +#define EQUIPMENT_ADDR romAddress.equipmentAddr +#define TIME_OF_DAY_ADDR romAddress.timeOfDayAddr +#define DISK_IO_ADDR romAddress.diskIOAddr +#define RS232_IO_ADDR romAddress.rs232IOAddr +#define CASSETTE_IO_ADDR romAddress.cassetteIOAddr +#define PRINTER_IO_ADDR romAddress.printerIOAddr +#define PRINT_SCREEN_ADDR romAddress.printScreenAddr +#define BASIC_ADDR romAddress.basicAddr +#define DISKETTE_TB_ADDR romAddress.disketteTbAddr +#define DISK_TB_ADDR romAddress.diskTbAddr +#define MOUSE_VIDEO_IO_ADDR romAddress.mouseVideoIntAddr +#define DUMMY_INT_ADDR romAddress.dummyIntAddr +#define TIMER_INT_ADDR romAddress.timerIntAddr +#define KB_INT_ADDR romAddress.kbIntAddr +#define DISKETTE_INT_ADDR romAddress.disketteIntAddr +#define DISK_INT_ADDR romAddress.diskIntAddr +#define UNEXP_INT_ADDR romAddress.unexpIntAddr +#define MOUSE_INT1_ADDR romAddress.mouseInt1Addr +#define MOUSE_INT2_ADDR romAddress.mouseInt2Addr +#define MOUSE_VERSION_ADDR romAddress.mouseVersionAddr +#define MOUSE_COPYRIGHT_ADDR romAddress.mouseCopyrightAddr +#define ADDR_COMPATIBILITY_ADDR romAddress.addrCompatAddr +#define CONF_TABLE_ADDR romAddress.confTableAddr +#define DISK_BASE_ADDR romAddress.diskBaseAddr +#define DR_TYPE_ADDR romAddress.drTypeAddr +#define DISKETTE_IO_1_ADDR romAddress.disketteIO1Addr +#define MD_TBL1_ADDR romAddress.mdTbl1Addr +#define MD_TBL2_ADDR romAddress.mdTbl2Addr +#define MD_TBL3_ADDR romAddress.mdTbl3Addr +#define MD_TBL4_ADDR romAddress.mdTbl4Addr +#define MD_TBL5_ADDR romAddress.mdTbl5Addr +#define MD_TBL6_ADDR romAddress.mdTbl6Addr +#define RCPU_WAIT_INT_ADDR romAddress.rcpuWaitAddr +#define DPB0 romAddress.diskParamBlock0 +#define DPB1 romAddress.diskParamBlock1 +#define VID_PARMS romAddress.vidParms +#define VID_LENS romAddress.vidLens +#define VID_COLTAB romAddress.vidColTab +#define VID_MODTAB romAddress.vidModTab +#define CHAR_GEN_ADDR romAddress.charGen +#define DOS_SCRATCH_PAD romAddress.dosScratchPad +#define DOS_SCRATCH_PAD_END romAddress.dosScratchPadEnd + +/* Addresses in Intel memory of constant keyboard tables */ + +#define K6 romAddress.k6 +#define K7 romAddress.k7 +#define K8 romAddress.k8 +#define K9 romAddress.k9 +#define K10 romAddress.k10 +#define K11 romAddress.k11 +#define K30 romAddress.k30 + +/* The Video Rom Stuff */ + +#ifdef EGG +#define EGA_SEG EgaROMSegment +#define EGA_ROM_START romAddress.egaStart /* start of EGA BIOS ROM */ +#define EGA_ROM_END romAddress.egaEnd /* end of EGA BIOS ROM +1 */ +#define EGA_CGMN romAddress.egaCgmn +#define EGA_CGDDOT romAddress.egaCgDot +#define EGA_HIFONT romAddress.egaHiFont +#endif /* EGG */ + +#endif /* GISP_SVGA */ + +/* + * Offsets for a set of instructions that are used in virtualisation + * of our bios accesses (eg IO) on 386 & later processors. + */ + +#define BIOS_STI_OFFSET 0x3000 +#define BIOS_CLI_OFFSET 0x3010 +#define BIOS_INB_OFFSET 0x3020 +#define BIOS_INW_OFFSET 0x3030 +#define BIOS_IND_OFFSET 0x3040 +#define BIOS_OUTB_OFFSET 0x3050 +#define BIOS_OUTW_OFFSET 0x3060 +#define BIOS_OUTD_OFFSET 0x3070 +#define BIOS_WRTB_OFFSET 0x3080 +#define BIOS_WRTW_OFFSET 0x3090 +#define BIOS_WRTD_OFFSET 0x30a0 +#define BIOS_RDB_OFFSET 0x30b0 +#define BIOS_RDW_OFFSET 0x30c0 +#define BIOS_RDD_OFFSET 0x30d0 +#define BIOS_YIELD_OFFSET 0x30e0 +#define BIOS_STOSB_OFFSET 0x30f0 +#define BIOS_STOSW_OFFSET 0x3110 +#define BIOS_STOSD_OFFSET 0x3130 +#define BIOS_BAD_OFFSET 0x3200 /* Must be added to sas.h + bios1.rom */ + + +/* The addresses of the Bios timer/motor count variables in 8088 space */ +#define TIMER_LOW BIOS_VAR_START + 0x6c +#define TIMER_HIGH BIOS_VAR_START + 0x6e +#define TIMER_OVFL BIOS_VAR_START + 0x70 +#define MOTOR_STATUS BIOS_VAR_START + 0x3F +#define MOTOR_COUNT BIOS_VAR_START + 0x40 + + +/* + * SAS Block Operations + */ +#define SAS_BLKOP_CHECKSUM 1 + +/* + * Offset entry point for DEC's PCSA. + */ +#define PCSA_OFFSET 0x170 + +/* Union for accessing an entry in the Interrupt Vector table */ +#ifdef BACK_M + +#ifdef BIGEND +typedef union { + double_word all; + struct { + half_word hw0; + half_word hw1; + half_word hw2; + half_word hw3; + } hwords; + } IVT_ENTRY; +#endif + +#ifdef LITTLEND +typedef union { + double_word all; + struct { + half_word hw3; + half_word hw2; + half_word hw1; + half_word hw0; + } hwords; + } IVT_ENTRY; +#endif + +#else /* BACK_M */ + +#ifdef BIGEND +typedef union { + double_word all; + struct { + half_word hw3; + half_word hw2; + half_word hw1; + half_word hw0; + } hwords; + } IVT_ENTRY; +#endif + +#ifdef LITTLEND +typedef union { + double_word all; + struct { + half_word hw0; + half_word hw1; + half_word hw2; + half_word hw3; + } hwords; + } IVT_ENTRY; +#endif +#endif /* BACK_M */ diff --git a/private/mvdm/softpc.new/base/inc/sasp.h b/private/mvdm/softpc.new/base/inc/sasp.h new file mode 100644 index 000000000..c67900a8c --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/sasp.h @@ -0,0 +1,20 @@ +/*[ + * File Name : sasp.h + * + * Derived From : Template + * + * Author : Mike + * + * Creation Date : October 93 + * + * SCCS Version : @(#)sasp.h 1.2 12/20/93 + *! + * Purpose + * This module holds and maintains the SAS function pointers. + * + *! (c)Copyright Insignia Solutions Ltd., 1993. All rights reserved. +]*/ + +extern void SasSetPointers IPT1(struct SasVector *, newPointers); + + diff --git a/private/mvdm/softpc.new/base/inc/smeg.h b/private/mvdm/softpc.new/base/inc/smeg.h new file mode 100644 index 000000000..cd7a4f7f0 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/smeg.h @@ -0,0 +1,117 @@ +/* INSIGNIA MODULE SPECIFICATION + ----------------------------- + + + THIS PROGRAM SOURCE FILE IS SUPPLIED IN CONFIDENCE TO THE + CUSTOMER, THE CONTENTS OR DETAILS OF ITS OPERATION MUST + NOT BE DISCLOSED TO ANY OTHER PARTIES WITHOUT THE EXPRESS + AUTHORISATION FROM THE DIRECTORS OF INSIGNIA SOLUTIONS LTD. + + +DESIGNER : Jeremy Maiden + +REVISION HISTORY : +First version : May 1992 + + +MODULE NAME : smeg + +SOURCE FILE NAME : smeg.h + +PURPOSE : spy on cpus and things + +SccsID : @(#)smeg.h 1.5 08/10/92 + +*/ + +#include TypesH +#include SignalH +#include FCntlH +#include IpcH +#include ShmH +#include TimeH + +#include + +#define SMEG_EOT 0 +#define SMEG_STRING 1 +#define SMEG_NUMBER 2 +#define SMEG_RATE 3 +#define SMEG_BOOL 4 +#define SMEG_ROBIN 5 +#define SMEG_PROFILE 6 +#define SMEG_DANGER 7 + + +struct SMEG_ITEM +{ + CHAR name[32]; + ULONG type; + ULONG colour; + ULONG sm_min, sm_max, sm_value, previous_sm_value; +}; + +#define MAX_SMEG_ITEM 50 + +#define BLACK 0 +#define RED 1 +#define GREEN 2 +#define YELLOW 3 +#define BLUE 4 +#define WHITE 5 + + +#define SHM_KEY 123456789 + +#define COLLECT_DATA 0 +#define FREEZE_DATA 1 + +LOCAL INT shmid; /* shared memory */ +LOCAL struct SMEG_ITEM *smegs; +LOCAL ULONG *pidptr; +LOCAL ULONG *cntrlptr; + + +/* sets up shared memory for communication with SoftPC in the same machine */ +LOCAL VOID shm_init() + +{ + /* if shared memory doesn't exist we'll have to invent it */ + shmid = shmget(SHM_KEY, MAX_SMEG_ITEM * sizeof(struct SMEG_ITEM), 0777); + if (shmid < 0) + { + shmid = shmget(SHM_KEY, MAX_SMEG_ITEM * sizeof(struct SMEG_ITEM), 0777 | IPC_CREAT); + if (shmid < 0) + { + perror( "smeg" ); + printf("Can't create shared memory - exiting\n"); + exit(-1); + } + } + pidptr = (ULONG *) shmat(shmid, NULL, 0); + cntrlptr = pidptr + 1; + smegs = (struct SMEG_ITEM *)( pidptr + 2 ); +} + + +LOCAL INT shm_in_contact() + +{ + struct shmid_ds desc; + + shmctl(shmid, IPC_STAT, &desc); + return(desc.shm_nattch > 1); +} + + +LOCAL VOID shm_terminate() + +{ + struct shmid_ds desc; + + shmdt(smegs); /* detach from shared memory */ + shmctl(shmid, IPC_STAT, &desc); + if (desc.shm_nattch == 0) /* if we're the last, delete it */ + shmctl(shmid, IPC_RMID, NULL); +} + diff --git a/private/mvdm/softpc.new/base/inc/smeg_hea.h b/private/mvdm/softpc.new/base/inc/smeg_hea.h new file mode 100644 index 000000000..7c8c2a0d3 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/smeg_hea.h @@ -0,0 +1,99 @@ +/*[ +************************************************************************ + + Name: smeg_head.h + Author: W. Plummer + Created: May 1992 + Sccs ID: @(#)smeg_head.h 1.4 08/10/92 + Purpose: Stats Gathering for the SMEG utility + + (c)Copyright Insignia Solutions Ltd., 1992. All rights reserved. + +************************************************************************ +]*/ + +#ifdef SMEG + +/* + * Smeg Variables.... + */ + +#define SMEG_IN_DELTA 0 +#define SMEG_IN_VIDEO 1 +#define SMEG_IN_IDLE 2 +#define SMEG_IN_PM 3 +#define SMEG_IN_DELTA_COMPILER 4 +#define SMEG_IN_USER 5 +#define SMEG_IN_GDI 6 +#define SMEG_IN_KERNEL 7 +#define SMEG_IN_OTHER 8 +#define NR_OF_SAMPLE_TYPES SMEG_IN_OTHER + 1 + +#define SMEG_NR_OF_THREADED_COMPS 9 +#define SMEG_NR_OF_WRITECHECK_CALLS 10 +#define SMEG_NR_OF_DESCR_COMPS 11 +#define SMEG_NR_OF_REGN_INDEX_UPDS 12 +#define SMEG_NR_OF_STACKCHECK_CALLS 13 +#define SMEG_NR_OF_INTRPT_CHECKS_FAST 14 +#define SMEG_NR_OF_INTRPT_CHECKS_SLOW 15 +#define SMEG_NR_OF_FRAG_ENTRIES 16 +#define SMEG_NR_OF_REGN_UPDS 17 +#define SMEG_NR_OF_OVERWRITES 18 +#define SMEG_NR_OF_CHECKOUTS 19 +#define SMEG_NR_OF_STRINGWRITE_CALLS 20 +#define SMEG_NR_OF_STRINGREAD_CALLS 21 +#define SMEG_NR_OF_STRUCTCHECK_CALLS 22 +#define SMEG_NR_OF_READCHECK_CALLS 23 + +#define SMEG_WIN_APIS 24 + + + +#define SMEG_START (GG_FIRST+20) +#define SMEG_SAVE (SMEG_START) +#define SMEG_BASE ((SMEG_SAVE)+2*sizeof(ULONG)) + +/* + * Smeg Macros + */ + +/* increment GDP variable */ + +#define SMEG_INC(smeg_id) \ + { \ + <*(Gdp + ^(SMEG_SAVE)) = X1> \ + \ + \ + \ + <*(Gdp + ^(SMEG_BASE + (smeg_id)*sizeof(ULONG))) = X1> \ + \ + \ + } + + +/* set GDP variable non zero */ + +#define SMEG_SET(smeg_id) \ + { \ + <*(Gdp + ^(SMEG_BASE + (smeg_id)*sizeof(ULONG))) = Sp> \ + } + + +/* set GDP variable to zero */ + +#define SMEG_CLEAR(smeg_id) \ + { \ + <*(Gdp + ^(SMEG_BASE + (smeg_id)*sizeof(ULONG))) = Zero> \ + } + + +#else /* SMEG */ + +#define SMEG_INC(smeg_id) /* SMEG_INC == NOP */ +#define SMEG_SET(smeg_id) /* SMEG_SET == NOP */ +#define SMEG_CLEAR(smeg_id) /* SMEG_CLEAR == NOP */ + +#endif /* SMEG */ + +#define SMEG_TRUE 1 +#define SMEG_FALSE 0 diff --git a/private/mvdm/softpc.new/base/inc/spc_icon.h b/private/mvdm/softpc.new/base/inc/spc_icon.h new file mode 100644 index 000000000..64828a0aa --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/spc_icon.h @@ -0,0 +1,129 @@ +/*[ +************************************************************************ + Name: spc_icon.h (Originally SoftPC_icon.h) + Author/Designer: SoftPC Unknown + SoftWindows Bruce Anderson + Sccs ID: @(#)spc_icon.h 1.4 06/29/94 + + (c)Copyright Insignia Solutions Ltd., 1992. All rights reserved. + + Purpose: SoftPC's default icon bitmap +************************************************************************ +]*/ +#ifdef SOFTWINDOWS +#define icon_mask_width 80 +#define icon_mask_height 48 +static unsigned char icon_mask_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, + 0x00, 0xfc, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xe1, 0xff, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xef, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xe7, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xe7, + 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xef, 0x7d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xe7, + 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xe7, 0x79, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x1f, 0x7e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x07, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; +#define spc_icon_width 80 +#define spc_icon_height 48 +static unsigned char spc_icon_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0xf8, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x40, 0xfe, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x74, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x76, 0xc7, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x12, 0xc3, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x40, 0xc3, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x74, 0xc3, + 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x76, 0xc3, 0x30, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x12, 0xf3, 0x33, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x40, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x74, 0xc7, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, + 0x76, 0xc3, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x12, 0xc3, + 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x40, 0xc3, 0x30, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x74, 0xc3, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x76, 0xfb, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x12, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x40, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x74, 0x0f, + 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x76, 0x03, 0x30, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xb0, 0x7d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, + 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x2d, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x24, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0xa5, 0x31, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0xad, 0x4a, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, + 0xb5, 0x4a, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xa5, 0x31, + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + +#else /* Not SOFTWINDOWS */ +#define spc_icon_width 48 +#define spc_icon_height 48 +static unsigned char spc_icon_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x03, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x07, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0x0f, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xff, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x01, + 0xe0, 0xff, 0xff, 0xff, 0x3f, 0x03, 0xf0, 0xff, 0xff, 0xff, 0xdf, 0x07, + 0xf8, 0xff, 0xff, 0xff, 0xdf, 0x0f, 0xfc, 0xff, 0xff, 0xff, 0xdf, 0x1f, + 0xfe, 0xff, 0xff, 0xff, 0xa3, 0x37, 0xfc, 0xff, 0xff, 0xff, 0x5d, 0x17, + 0xf8, 0xff, 0xff, 0xff, 0xd9, 0x08, 0xf0, 0xff, 0xff, 0xff, 0xc3, 0x07, + 0xe0, 0xff, 0xff, 0xff, 0xe7, 0x03, 0xc0, 0xff, 0xff, 0xff, 0xcf, 0x01, + 0x80, 0xff, 0xff, 0x5f, 0x9c, 0x00, 0x00, 0xff, 0xff, 0xef, 0x5c, 0x00, + 0x00, 0xfe, 0xff, 0x6f, 0x2d, 0x00, 0x00, 0xfc, 0xff, 0x1f, 0x13, 0x00, + 0x00, 0xf8, 0xff, 0x9f, 0x0f, 0x00, 0x00, 0xf0, 0xff, 0x5f, 0x05, 0x00, + 0x00, 0xe0, 0xff, 0xe3, 0x02, 0x00, 0x00, 0xc0, 0x9f, 0x5d, 0x01, 0x00, + 0x00, 0x80, 0xcf, 0xdd, 0x00, 0x00, 0x00, 0x00, 0xef, 0x5d, 0x00, 0x00, + 0x00, 0x00, 0x0e, 0x22, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x0d, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x02, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; +#endif /* SOFTWINDOWS */ diff --git a/private/mvdm/softpc.new/base/inc/spcfile.h b/private/mvdm/softpc.new/base/inc/spcfile.h new file mode 100644 index 000000000..24712e4c3 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/spcfile.h @@ -0,0 +1,9 @@ +/* + SccsID @(#)host_unix.h 1.1 10/2/90 Copyright Insignia Solutions Ltd +*/ +#define STANDARD 1234 +#define SILENT 2345 +#define CONT_AND_QUIT 3456 + +extern char *host_find_file(); + diff --git a/private/mvdm/softpc.new/base/inc/standard.h b/private/mvdm/softpc.new/base/inc/standard.h new file mode 100644 index 000000000..3dfac6036 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/standard.h @@ -0,0 +1,85 @@ + +/* +* MODULE: standard.h +* +* PURPOSE: Some macros and forward declarations to make +* life a bit easier. +* +* AUTHOR: Jason Proctor +* +* DATE: Fri Aug 11 1989 +*/ + +/* SccsID[]="@(#)standard.h 1.4 08/10/92 Copyright Insignia Solutions Ltd."; */ + +#ifndef FILE +#include +#endif + +/* boolean stuff */ +#define bool int /* best way I have for declaring bools */ +#define NOT ! + +#ifndef TRUE +#define FALSE 0 +#define TRUE !0 +#endif /* ! TRUE */ + +/* for system calls etc */ +#undef SUCCESS +#undef FAILURE +#define SUCCESS 0 +#define FAILURE ~SUCCESS + +/* equivalence testing */ +#define EQ == +#define NE != +#define LT < +#define GT > +#define LTE <= +#define GTE >= + +/* operators */ +#define AND && +#define OR || +#define XOR ^ +#define MOD % + +/* hate single quotes! */ +#define SPACE ' ' +#define LF '\n' +#define TAB '\t' +#define Null '\0' +#define SINGLEQ '\'' +#define DOUBLEQ '"' +#define SHRIEK '!' +#define DOLLAR '$' +#define HYPHEN '-' +#define USCORE '_' +#define DECPOINT '.' + +/* for ease in deciphering ioctl-infested listings etc */ +#define STDIN 0 +#define STDOUT 1 +#define STDERR 2 + +/* for readability only */ +#define NOWORK +#define NOBREAK +#define TYPECAST + +/* null pointer as a long */ +#undef NULL +#define NULL 0L + +/* to escape compiler warnings and lint errors etc */ +#define CNULL TYPECAST (char *) 0L +#define FNULL TYPECAST (int (*) ()) 0L + +/* some stuff to help out */ +#define streq(x, y) (strcmp (x, y) == 0) + +/* standard stuff */ +extern char *malloc (); +extern char *getenv (); + diff --git a/private/mvdm/softpc.new/base/inc/suplib.h b/private/mvdm/softpc.new/base/inc/suplib.h new file mode 100644 index 000000000..3103ffd03 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/suplib.h @@ -0,0 +1,70 @@ +/*[ + * Name: suplib.h + * + * Derived from: None + * + * Author: James Bowman + * + * Created on: 17 Nov 93 + * + * Sccs ID: @(#)suplib.h 1.5 08/19/94 + * + * Coding stds: 2.0 + * + * Purpose: Declarations for functions in the sup library + * + * Copyright Insignia Solutions Ltd., 1993. All rights reserved. +]*/ + +#ifndef _SUPLIB_H +#define _SUPLIB_H + +/* Try to guess a PATHSEP_CHAR, if we don't already have one. + * Use Mac or NT correct values, otherwise use UNIX '/' + */ + +#ifndef PATHSEP_CHAR + +#ifdef macintosh +#define PATHSEP_CHAR ':' +#endif + +#ifdef NTVDM +#define PATHSEP_CHAR '\\' +#endif + +#ifndef PATHSEP_CHAR +#define PATHSEP_CHAR '/' /* default UNIX separator */ +#endif + +#endif /* PATHSEP_CHAR */ + +typedef char HOST_PATH; + +/* + * Path completion module + */ + +GLOBAL HOST_PATH *Host_path_complete IPT3( + HOST_PATH *, buf, /* buffer for resulting pathname */ + HOST_PATH *, dirPath, /* directory pathname */ + char *, fileName /* file name to be appended */ +); + + +/* + * Generated File module + */ + +typedef IBOOL (*DifferProc) IPT4(IUM32, where, IU8 *, oldData, IU8 *, newData, IUM32, size); + +GLOBAL FILE *GenFile_fopen IPT4( + char *, true_name, + char *, mode, + DifferProc, ignoreDifference, + int, verbosity); +GLOBAL void GenFileAbortAllFiles IPT0(); +GLOBAL void GenFileAbortFile IPT1(FILE *, file); +GLOBAL int GenFile_fclose IPT1(FILE *, file); +GLOBAL int GenFile_fclose IPT1(FILE *, file); +#endif /* _SUPLIB_H */ diff --git a/private/mvdm/softpc.new/base/inc/swinhelp.h b/private/mvdm/softpc.new/base/inc/swinhelp.h new file mode 100644 index 000000000..f762cec9b --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/swinhelp.h @@ -0,0 +1,72 @@ +/*( + * ============================================================================ + * + * Name: swinhelp.h + * + * Author: Anthony Shaughnessy + * + * Created on: 4th July 1994 + * + * Sccs ID: @(#)swinhelp.h 1.1 07/13/94 + * + * Purpose: Manifest constants to be used with context sensitive + * help. The numbers are the contexts, which are passed + * to the context help system to give the relevant help. + * Designed to be used with HyperHelp from Bristol. + * + * (c) Copyright Insignia Solutions Ltd., 1994. All rights reserved. + * + * ============================================================================ +)*/ + +/*[ + * ============================================================================ + * + * Numbers in here can be changed, but take care to avoid conflicts with + * other numbers defined in the project file. Note that if any numbers + * are changed, both the SoftWindows executable and the HyperHelp (.hlp) + * file must be recompiled. + * + * It is suggested that any additional values defined in your project + * file or another include file should be above 200 to avoid conflict. + * + * ============================================================================ +]*/ + +/*[ + * ============================================================================ + * + * Contexts which we think may be called from scripts etc. which invoke + * the hyperhelp executable - may be passed on the command line: + * + * hyperhelp helpfile.hlp -c 1 + * + * May also be called from within the executable. + * + * ============================================================================ +]*/ + +#define HELP_MAIN 1 /* Contents page */ +#define HELP_INSTALL 2 /* Installing SoftWindows */ + +/*[ + * ============================================================================ + * + * Contexts that are called from within our executable: + * + * WinHelp(Display, helpfile, HELP_CONTEXT, HELP_DISPLAY); + * + * ============================================================================ +]*/ + +#define HELP_DISPLAY 101 /* Display dialog */ +#define HELP_OPEN 102 /* Open disk dialog */ +#define HELP_NEW 103 /* New disk dialog */ +#define HELP_PRINTER 104 /* Printer types dialog */ +#define HELP_COM 105 /* Com ports dialog */ +#define HELP_KEYBOARD 106 /* Keyboard map file dialog */ +#define HELP_MEMORY 107 /* Memory dialog */ +#define HELP_AUTOFLUSH 108 /* Autoflush dialog */ +#define HELP_FILESELECT 109 /* Generic file selection box */ +#define HELP_SOUND 110 /* Sound device dialog */ +#define HELP_MENUS 111 /* Main menu bar */ diff --git a/private/mvdm/softpc.new/base/inc/swinmgre.h b/private/mvdm/softpc.new/base/inc/swinmgre.h new file mode 100644 index 000000000..6fd2dbca2 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/swinmgre.h @@ -0,0 +1,49 @@ +/*[ + * Name: swinmgrE.h + * + * Derived From: (original); + * + * Author: Antony Helliwell + * + * Created On: 22 Apr 1993 + * + * Sccs ID: @(#)swinmgrE.h 1.1 8/2/93 + * + * Purpose: External Interface to SoftWindows CPU routines + * + * Design document: + * - + * + * Test document: + * + * (c); Copyright Insignia Solutions Ltd., 1993. All rights reserved +]*/ + +/* Enable patching to pre-compiled Windows fragments */ +GLOBAL VOID ApiEnable IPT0(); +/* Disable patching to pre-compiled Windows fragments */ +GLOBAL VOID ApiDisable IPT0(); +/* Clear the table of recorded Windows segment information */ +GLOBAL VOID ApiResetWindowsSegment IPT0(); +/* Register a Windows segment with the CPU. */ +GLOBAL VOID ApiRegisterWinSeg IPT2(ULONG, nominal_sel, ULONG, actual_sel); +/* Register a fixed Windows segment with the CPU. */ +GLOBAL VOID ApiRegisterFixedWinSeg IPT2(ULONG, actual_sel, ULONG, length); +/* Compile all fixed Windows segment descriptors */ +GLOBAL VOID ApiCompileFixedDesc IPT0(); +/* Get the Windows segment selector for the given nominal selector */ +GLOBAL ULONG ApiGetRealSelFromNominalSel IPT1(ULONG, nominal_sel); +/* Get the Windows segment base ea32b for the given nominal selector */ +GLOBAL IHP ApiGetSegEa32FromNominalSel IPT1(ULONG, nominal_sel); +/* Get the Windows segment base ea24 for the given nominal selector */ +GLOBAL ULONG ApiGetSegBaseFromNominalSel IPT1(ULONG, nominal_sel); +/* Get the Windows descriptor base for the given nominal selector */ +GLOBAL IHP ApiGetDescBaseFromNominalSel IPT1(ULONG, nominal_sel); +/* Get the Windows segment base ea24 for the given actual selector */ +GLOBAL ULONG ApiSegmentBase IPT1(ULONG, actual_sel); +/* Get the Windows descriptor base for the given actual selector */ +GLOBAL IHP ApiDescriptorBase IPT1(ULONG, actual_sel); +/* Return the maximum number of fixed Windows segments supported */ +GLOBAL ULONG ApiFixedDescriptors IPT0(); + +GLOBAL VOID ApiBindBinary IPT0(); diff --git a/private/mvdm/softpc.new/base/inc/tape_io.h b/private/mvdm/softpc.new/base/inc/tape_io.h new file mode 100644 index 000000000..7d7992de3 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/tape_io.h @@ -0,0 +1,111 @@ +/* + * SoftPC Revision 2.0 + * + * Title : IBM PC Cassette IO BIOS declarations + * + * Description : This module contains definitions that are used in + * accessing the Cassette IO BIOS. In the AT BIOS, the + * original Cassette IO functionality has been greatly + * extended to provide support for multi-tasking systems. + * + * Author(s) : Ross Beresford + * + * Notes : For a detailed description of the XT and AT Cassette IO + * BIOS functions, refer to the following manuals: + * + * - IBM PC/XT Technical Reference Manual + * (Section A-72 System BIOS) + * - IBM PC/AT Technical Reference Manual + * (Section 5-164 BIOS1) + */ + +/* SccsID[]="@(#)tape_io.h 1.3 08/10/92 Copyright Insignia Solutions Ltd."; */ + +/* + * ============================================================================ + * Structure/Data definitions + * ============================================================================ + */ + +/* + * Cassette I/O Functions + */ + +#define INT15_INVALID 0x86 + +/* + * Multi-tasking Extensions + */ + +/* device open */ +#define INT15_DEVICE_OPEN 0x80 + +/* device close */ +#define INT15_DEVICE_CLOSE 0x81 + +/* program termination */ +#define INT15_PROGRAM_TERMINATION 0x82 + +/* event wait */ +#define INT15_EVENT_WAIT 0x83 +#define INT15_EVENT_WAIT_SET 0x00 +#define INT15_EVENT_WAIT_CANCEL 0x01 + +/* joystick support */ +#define INT15_JOYSTICK 0x84 +#define INT15_JOYSTICK_SWITCH 0x00 +#define INT15_JOYSTICK_RESISTIVE 0x01 + +/* system request key pressed */ +#define INT15_REQUEST_KEY 0x85 +#define INT15_REQUEST_KEY_MAKE 0x00 +#define INT15_REQUEST_KEY_BREAK 0x01 + +/* timed wait */ +#define INT15_WAIT 0x86 + +/* block move */ +#define INT15_MOVE_BLOCK 0x87 + +/* extended memory size determine */ +#define INT15_EMS_DETERMINE 0x88 + +/* processor to virtual mode */ +#define INT15_VIRTUAL_MODE 0x89 + +/* device busy loop and interrupt complete */ +#define INT15_DEVICE_BUSY 0x90 +#define INT15_INTERRUPT_COMPLETE 0x91 +#define INT15_DEVICE_DISK 0x00 +#define INT15_DEVICE_FLOPPY 0x01 +#define INT15_DEVICE_KEYBOARD 0x02 +#define INT15_DEVICE_NETWORK 0x80 +#define INT15_DEVICE_FLOPPY_MOTOR 0xfd +#define INT15_DEVICE_PRINTER 0xfe + +/* return configuration parameters pointer */ +#define INT15_CONFIGURATION 0xc0 + +/* + * ============================================================================ + * External declarations and macros + * ============================================================================ + */ + +/* + * void cassette_io() + * { + * This routine performs the Cassette I/O BIOS function. When + * an INT 15 occurs, the assembler BIOS calls this function to + * do the actual work involved using a BOP instruction. + * + * As no Cassette device is implemented on SoftPC, the + * Cassette I/O functions just return with an appropriate error. + * + * On the AT, INT 15 is used to provide multi-tasking support + * as an extension to the Cassette I/O functionality. Most + * of these functions are supported in the same way as in + * real AT BIOS. + * } + */ +extern void cassette_io(); diff --git a/private/mvdm/softpc.new/base/inc/tcpip.h b/private/mvdm/softpc.new/base/inc/tcpip.h new file mode 100644 index 000000000..48e42c7ac --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/tcpip.h @@ -0,0 +1,159 @@ +/*[ + * Product: SoftPC-AT Revision 3.0 + * Name: tcpip.h + * Derived From: Original + * Author: Jase + * Created On: Jan 22 1993 + * Sccs ID: 07/14/93 @(#)tcpip.h 1.3 + * Purpose: Defines & typedefs for the TCP/IP implementation. + * + * (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved. + * + * Rcs ID: + * $Source$ + * $Revision$ + * $Date$ + * $Author$ + ]*/ + +/********************************************************/ + +/* DEFINES */ + +/* LAN Workplace function codes */ +#define kTCPAccept 0x01 +#define kTCPBind 0x02 +#define kTCPClose 0x03 +#define kTCPConnect 0x04 +#define kTCPGetMyIPAddr 0x05 +#define kTCPGetMyMacAddr 0x06 +#define kTCPGetPeerName 0x07 +#define kTCPGetSockName 0x08 +#define kTCPGetSockOpt 0x09 +#define kTCPGetSubnetMask 0x0a +#define kTCPIoctl 0x0b +#define kTCPListen 0x0c +#define kTCPSelect 0x0d +#define kTCPSetMyIPAddr 0x0e +#define kTCPSetSockOpt 0x0f +#define kTCPShutdown 0x10 +#define kTCPSocket 0x11 +#define kTCPRecv 0x12 +#define kTCPRecvFrom 0x13 +#define kTCPSend 0x14 +#define kTCPSendTo 0x15 +#define kTCPGetBootpVSA 0x16 +#define kTCPGetSNMPInfo 0x17 +#define kTCPGetPathInfo 0x18 + +/* LAN Workplace ioctl selectors */ +#define kIoctlFionRead 26239 +#define kIoctlFionBIO 26238 +#define kIoctlAtMark 29477 +#define kIoctlSetUrgHandler 3 + +/* LAN Workplace error numbers Unix doesn't have */ +#define EOK 0 + +/* LAN Workplace error numbers */ +#define kEOK 0 +#define kEBADF 9 +#define kEINVAL 22 +#define kEWOULDBLOCK 35 +#define kEINPROGRESS 36 +#define kEALREADY 37 +#define kENOTSOCK 38 +#define kEDESTADDRREQ 39 +#define kEMSGSIZE 40 +#define kEPROTOTYPE 41 +#define kENOPROTOOPT 42 +#define kEPROTONOSUPPORT 43 +#define kESOCKTNOSUPPORT 44 +#define kEOPNOTSUPP 45 +#define kEPFNOSUPPORT 46 +#define kEAFNOSUPPORT 47 +#define kEADDRINUSE 48 +#define kEADDRNOTAVAIL 49 +#define kENETDOWN 50 +#define kENETUNREACH 51 +#define kENETRESET 52 +#define kECONNABORTED 53 +#define kECONNRESET 54 +#define kENOBUFS 55 +#define kEISCONN 56 +#define kENOTCONN 57 +#define kESHUTDOWN 58 +#define kETOOMANYREFS 59 +#define kETIMEDOUT 60 +#define kECONNREFUSED 61 +#define kELOOP 62 +#define kENAMETOOLONG 63 +#define kEHOSTDOWN 64 +#define kEHOSTUNREACH 65 +#define kEASYNCNOTSUPP 67 + +/* items in error table */ +#define kErrorTableEntries \ + (sizeof (ErrorTable) / sizeof (ErrorTable [0])) + +/* asynchronous request mask */ +#define kNoWaitMask 0x80 + +/* maximum packet size */ +#define kInitialTCPBufferSize 1024 + +/* config keys */ +#define sScriptKey "SCRIPT" +#define sProfileKey "PROFILE" +#define sLWPCFGKey "LWP_CFG" +#define sTCPCFGKey "TCP_CFG" +#define sLANGCFGKey "LANG_CFG" + +/* default values for config keys */ +#define sDefaultScriptPath "C:\\NET\\SCRIPT" +#define sDefaultProfilePath "C:\\NET\\PROFILE" +#define sDefaultLWPCFGPath "C:\\NET\\HSTACC" +#define sDefaultTCPCFGPath "C:\\NET\\TCP" +#define sDefaultLANGCFGPath "C:\\NET\\BIN" + +/********************************************************/ + +/* TYPEDEFS */ + +typedef struct +{ + IBOOL tcpInitialised; + int tcpBufSize; + char *tcpBuffer; + +} TCPGlobalRec; + +typedef struct +{ + IU8 hostError; + IU8 lanwError; + +} ErrorConvRec; + +/********************************************************/ + +/* PROTOTYPES */ + +/* GLOBAL */ + +/* TCP/IP entry points */ +GLOBAL void TCPInit IPT0 (); +GLOBAL void TCPEntry IPT0 (); +GLOBAL void TCPInterrupt IPT0 (); +GLOBAL void TCPTick IPT0 (); +GLOBAL void TCPEvent IPT0 (); + +#ifndef PROD +extern void force_yoda IPT0 (); +#endif + +/* host functions accessed */ +extern void host_raise_sigio_exception IPT0 (); + +/********************************************************/ + diff --git a/private/mvdm/softpc.new/base/inc/timer.h b/private/mvdm/softpc.new/base/inc/timer.h new file mode 100644 index 000000000..564ae286d --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/timer.h @@ -0,0 +1,124 @@ +/* + * SoftPC Revision 3.0 + * + * Title : Timer Adaptor definitions + * + * Description : Definitions for users of the Timer Adaptor + * + * Author : Jerry Kramskoy + * + * Notes : None + * + * Mods: (r3.2) : Export the variable timer_video_enabled, which is + * set in mda.c and cga.c when the bit in the mode + * register of the 6845 chip which controls whether + * the video display is on or off is flipped. (SCR 257). + * + * (r3.3) : Remove definition of struct timeval and stuct timezone + * for SYSTEMV. Equivalent host_ structures are now declared + * in host_time.h. + */ +/* SccsID[]="@(#)timer.h 1.15 10/27/93 Copyright Insignia Solutions Ltd."; */ +/* + * ============================================================================ + * Structure/Data definitions + * ============================================================================ + */ +/* + * Information about the PC timer itself + */ +#define TIMER_CLOCK_RATE 1193180L /* Count rate of timer chip Hz */ +#define TIMER_MICROSECS_PER_TICK (1000000.0 / TIMER_CLOCK_RATE) +#define MIN_COUNTER_VAL 65536L /* This many ticks at TIMER_CLOCK_RATE = 18.2 ms */ +#define PC_TICK_INTV (MIN_COUNTER_VAL * (1000000.0 / TIMER_CLOCK_RATE)) +#define TIMER_BIT_MASK 0x3e3 +#define GATE_SIGNAL_LOW 0 +#define GATE_SIGNAL_HIGH 1 +#define GATE_SIGNAL_RISE 2 + +/* + * Our internal structures + */ + +typedef struct +{ + word nticks; + unsigned long wrap; +} Timedelta; + +/* + * ============================================================================ + * External declarations and macros + * ============================================================================ + */ + +extern ULONG get_DOS_ticks IPT0(); /* get current DOS ticks */ + +extern void timer_init IPT0(); +extern void timer_post IPT0(); +extern void axe_ticks IPT1(int, ticks); +extern void SWTMR_init_funcptrs IPT0(); +extern void SWTMR_inb IPT2(io_addr, port, half_word *, value); +extern void SWTMR_outb IPT2(io_addr, port, half_word, value); +extern void SWTMR_gate IPT2(io_addr, port, half_word, value); +extern void SWTMR_time_tick IPT0(); +extern void host_release_timeslice IPT0(); + +#ifndef host_block_timer +extern void host_block_timer IPT0(); +#endif /* host_block_timer */ + +#ifndef host_release_timer +extern void host_release_timer IPT0(); +#endif /* host_release_timer */ + +extern void host_timer2_waveform IPT5(unsigned int, a, unsigned long, b, + unsigned long, c, int, d, int, e); +#ifdef NTVDM +void HostPpiState(half_word); +#else +extern void host_enable_timer2_sound IPT0(); +extern void host_disable_timer2_sound IPT0(); +#endif +extern void host_ring_bell IPT1(long, a); +extern void host_alarm IPT1(long, a); +extern unsigned long host_idealAlarm IPT0(); + +extern IU32 host_speed IPT1( IU32, ControlMachineNumber ); + +extern void host_timer_init IPT0(); +#ifdef SWIN_MOUSE_OPTS +extern void host_timer_setup IPT1(BOOL, fast_timer); +extern void generic_timer_setup IPT1(BOOL, fast_timer); +#else +extern void host_timer_setup IPT0(); +extern void generic_timer_setup IPT0(); +#endif /* SWIN_MOUSE_OPTS */ +extern void host_timer_shutdown IPT0(); +extern void host_timer_event IPT0(); +extern void generic_timer_event IPT0(); + +#ifdef HUNTER +extern word timer_batch_count; +#endif /* HUNTER */ + +extern int timer_int_enabled; +extern boolean timer_video_enabled; + +#define timer_inb(port,val) ((*timer_inb_func) (port,val)) +#define timer_outb(port,val) ((*timer_outb_func) (port,val)) +#define timer_gate(port,val) ((*timer_gate_func) (port,val)) +#define time_tick() ((*timer_tick_func) ()) + + +/* + * TIMER access functions needed for HW & SW + */ +extern void (*timer_inb_func) IPT2(io_addr, port, half_word *, value); +extern void (*timer_outb_func) IPT2(io_addr, port, half_word, value); +extern void (*timer_gate_func) IPT2(io_addr, port, half_word, value); +extern void (*timer_tick_func) IPT0(); + +#ifdef NTVDM +extern ULONG EoiIntsPending; +#endif diff --git a/private/mvdm/softpc.new/base/inc/timestmp.h b/private/mvdm/softpc.new/base/inc/timestmp.h new file mode 100644 index 000000000..bf96d5cca --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/timestmp.h @@ -0,0 +1,26 @@ +/*[ +************************************************************************* + + Name: timestmp.h + Author: Simon Frost + Created: May 1994 + Derived from: Original + Sccs ID: @(#)timestmp.h 1.1 06/27/94 + Purpose: Include file for timestamp data structures & functions + + (c)Copyright Insignia Solutions Ltd., 1994. All rights reserved. + +Note: these timestamp functions are used by the quick event system to +recalibrate the time convertion. Functionally, they may be the same as +those used for the profiling system, but are declared seperately as the +same mechanism may not be suitable for both uses. +************************************************************************* +]*/ +/* main data structure for timestamp functions to manipulate */ +typedef struct { + IUH data[2]; +} QTIMESTAMP, *QTIMESTAMP_PTR; + +void host_q_timestamp_init IPT0(); +IUH host_q_timestamp_diff IPT2(QTIMESTAMP_PTR, tbegin, QTIMESTAMP_PTR, tend); +void host_q_write_timestamp IPT1(QTIMESTAMP_PTR, stamp); diff --git a/private/mvdm/softpc.new/base/inc/timeval.h b/private/mvdm/softpc.new/base/inc/timeval.h new file mode 100644 index 000000000..276dedf2c --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/timeval.h @@ -0,0 +1,66 @@ +/* + * SoftPC/SoftWindows + * + * Name: : timeval.h + * + * Title : Host Time structure definitions + * + * Sccs ID: : @(#)timeval.h 1.5 04/20/94 + * + * Description : Definitions for users of host-specific time functions. + * + * Author : David Rees + * + * Notes : Make time structures available: host_timeval, + * host_timezone, host_tm. + */ + +/* SccsID[]="@(#)timeval.h 1.5 04/20/94 Copyright Insignia Solutions Ltd."; */ + +/* + * ============================================================================ + * Structure/Data definitions + * ============================================================================ + */ + +struct host_timeval { + IS32 tv_sec; + IS32 tv_usec; +}; + + + +struct host_timezone { + int tz_minuteswest; + int tz_dsttime; +}; + +#ifndef NTVDM +struct host_tm { + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + int tm_year; + int tm_wday; + int tm_yday; + int tm_isdst; +}; +#endif + + +/* + * External Declarations + */ + +extern time_t host_time IPT1(time_t *, tloc); +extern struct host_tm *host_localtime IPT1(time_t *, clock); + +#ifndef NTVDM +extern void host_gettimeofday IPT2(struct host_timeval *, time, + struct host_timezone *, zone); +#else +extern void host_GetSysTime(struct host_timeval *); +#define host_gettimeofday(timeval, timezn) host_GetSysTime((timeval)) +#endif diff --git a/private/mvdm/softpc.new/base/inc/tmstrobe.h b/private/mvdm/softpc.new/base/inc/tmstrobe.h new file mode 100644 index 000000000..d7f82d27a --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/tmstrobe.h @@ -0,0 +1,46 @@ +/* + * SoftPC-AT Revision 2.0 + * + * Title : time_strobe.h + * + * Description : Interface specification for routines to be + * called from the timeri tick. + * + * Author(s) : Leigh Dworkin + * + * Notes : + */ + +/* SccsID[]="@(#)tmstrobe.h 1.3 08/10/92 Copyright Insignia Solutions Ltd."; */ +/* + * ============================================================================ + * Structure/Data definitions + * ============================================================================ + */ + +/* + * ============================================================================ + * External declarations and macros + * ============================================================================ + */ + +/* + * void time_strobe() + * { + * This function comprises all the base functions to + * be performed in the timer tick. Every PC tick (about 20Hz) + * this routine is called from the host in xxx_timer.c + * } + */ +extern void time_strobe(); + +/* + * void callback(num_pc_ticks, routine) + * long num_pc_ticks; + * void (*routine)(); + * { + * This function calls the routine when num_pc_ticks have + * elapsed. + * } + */ +extern void callback(); diff --git a/private/mvdm/softpc.new/base/inc/trace.h b/private/mvdm/softpc.new/base/inc/trace.h new file mode 100644 index 000000000..726bac14a --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/trace.h @@ -0,0 +1,147 @@ +#ifndef _TRACE_H +#define _TRACE_H +/* + * VPC-XT Revision 2.0 + * + * Title : Trace module definitions + * + * Description : Definitions for users of the trace module + * + * Author : Henry Nash + * + * Notes : None + */ + +/* SccsID[]="@(#)trace.h 1.13 10/28/94 06/27/93 Copyright Insignia Solutions Ltd."; */ + +/* + * ============================================================================ + * Structure/Data definitions + * ============================================================================ + */ + +/* + * Trace codes + */ + +#define DUMP_NONE 0x00 /* Dump no data */ +#define DUMP_REG 0x01 /* Dump the registers */ +#define DUMP_CODE 0x02 /* Dump the last 16 words of code */ +#define DUMP_SCREEN 0x04 /* Dump the screen buffer */ +#define DUMP_FLAGS 0x08 /* Dump the flags */ +#define DUMP_INST 0x10 /* Dump the next instruction */ +#define DUMP_CSIP 0x20 /* Dump CS:IP to backtrace file */ +#define DUMP_NPX 0x40 /* Dump NPX Registers */ +#define LAST_DEST 0x80 /* dump out last destination addr DELTA */ +#define DUMP_ALL 0xFF /* Dump the lot */ + +/* + * Verbose bit masks - set the following bits in the io_verbose + * variable to produce the following trace outputs: + */ + +#define GENERAL_VERBOSE 0x01L /* General I/O */ +#define TIMER_VERBOSE 0x02L /* Print I/O for timers */ +#define ICA_VERBOSE 0x04L /* Print I/O for Int Controller Adapt */ +#define CGA_VERBOSE 0x08L /* Print I/O for Colour graphics Adap */ +#define FLA_VERBOSE 0x10L /* Print I/O for Floppy disk Adaptor */ +#define HDA_VERBOSE 0x20L /* Print I/O for Hard disk Adaptor */ +#define RS232_VERBOSE 0x40L /* Print I/O for RS232 Adaptor */ +#define PRINTER_VERBOSE 0x80L /* Print I/O for Printer Adaptor */ +#define PPI_VERBOSE 0x100L /* Print I/O for PPI Adaptor */ +#define DMA_VERBOSE 0x200L /* Print I/O for PPI Adaptor */ +#define GFI_VERBOSE 0x400L /* Print I/O for GFI modules */ +#define MOUSE_VERBOSE 0x800L /* Print I/O for Mouse modules */ +#define MDA_VERBOSE 0x1000L /* Print I/O for Mono Display Adapter */ +#define ICA_VERBOSE_LOCK 0x2000L /* message for ica lock flag set */ +#define DISKBIOS_VERBOSE 0x4000L /* Print disk bios messages */ +#define EGA_PORTS_VERBOSE 0x8000L /* Print out EGA port accesses */ +#define EGA_WRITE_VERBOSE 0x10000L /* Print out EGA write state */ +#define EGA_READ_VERBOSE 0x20000L /* Print out EGA read state */ +#define EGA_DISPLAY_VERBOSE 0x40000L /* Print out EGA display state */ +#define EGA_ROUTINE_ENTRY 0x80000L /* Print out EGA routine trace */ +#define EGA_VERY_VERBOSE 0xf8000L /* Print out all EGA stuff */ +#define FLOPBIOS_VERBOSE 0x100000L /* Print floppy bios messages */ +#define AT_KBD_VERBOSE 0x200000L /* Print AT keyboard messages */ +#define BIOS_KB_VERBOSE 0x400000L /* Print BIOS keyboard messages */ +#define CMOS_VERBOSE 0x800000L /* Cmos and real-time clock */ +#define HUNTER_VERBOSE 0x1000000L /* Hunter verbosity */ +#define PTY_VERBOSE 0x2000000L /* Print Pesudo-terminal messages */ +#define GEN_DRVR_VERBOSE 0x4000000L /* Generic driver messages */ +#ifdef HERC +#define HERC_VERBOSE 0x8000000L /* Hercules graphics board */ +#endif +#define IPC_VERBOSE 0x10000000L /* Interproc communication debug */ +#define LIM_VERBOSE 0x20000000L /* LIM messages */ +#define HFX_VERBOSE 0x40000000L /* severity of HFX messages */ +#define NET_VERBOSE 0x80000000L /* Print out LAN driver messages */ + +/* sub message types */ + +#define MAP_VERBOSE 0x1L /* map messages */ +#define CURSOR_VERBOSE 0x2L /* cursor manipulation messages */ +#define NHFX_VERBOSE 0x4L /* subsid HFX messages */ +#define CDROM_VERBOSE 0x8L /* cdrom **VERY** verbose */ +#define CGA_HOST_VERBOSE 0x10L /* Get host CGA messages */ +#define EGA_HOST_VERBOSE 0x20L /* Get host EGA messages */ +#define Q_EVENT_VERBOSE 0x40L /* quick event manager messages */ +#define WORM_VERBOSE 0x80L /* Worm Drive messages */ +#define WORM_VERY_VERBOSE 0x100L /* Worm Verbose Drive messages */ +#define HERC_HOST_VERBOSE 0x200L /* Get host HERC messages */ +#define GORE_VERBOSE 0x400L /* Get GORE messages */ +#define GORE_ERR_VERBOSE 0x800L /* Get GORE error messages */ +#define GLUE_VERBOSE 0x1000L /* Get glue messages */ +#define SAS_VERBOSE 0x2000L /* Get sas messages */ +#define IOS_VERBOSE 0x4000L /* Get ios messages */ +#define SCSI_VERBOSE 0x8000L /* SCSI messages */ +#define SWIN_VERBOSE 0x10000L /* SoftWindows messages */ +#define GISPSVGA_VERBOSE 0x20000L /* GISP SVGA */ +#define DPMI_VERBOSE 0x40000L /* standalone DPMI host */ +#define HWCPU_VERBOSE 0x80000L /* H/W CPU */ +#define MSW_VERBOSE 0x100000L /* windows driver */ +#define API_VERBOSE 0x200000L /* pre-compiled apis */ + +/* + * To get adapter independent tracings + */ + +#define ALL_ADAPT_VERBOSE HERC_HOST_VERBOSE | CGA_HOST_VERBOSE | EGA_HOST_VERBOSE + +/* + * Error strings + */ + +#define ENOT_SUPPORTED "BIOS function not supported in Rev 1.0" +#define EBAD_VIDEO_MODE "Video mode not supported in Rev 1.0" +#define EUNEXPECTED_INT "Unexpected interrupt occurred" + +/* + * ============================================================================ + * External declarations and macros + * ============================================================================ + */ + +#ifdef ANSI +extern void trace(char *, int); +extern void trace_init(void); + +#ifdef DELTA +extern void file_back_trace(char *); +extern void print_back_trace(void); +#endif /* DELTA */ + +#else +extern void trace(); +extern void trace_init(); + +#ifdef DELTA +extern void file_back_trace(); +extern void print_back_trace(); +#endif /* DELTA */ + +#endif /* ANSI */ +extern FILE *trace_file; + +IMPORT IU32 sub_io_verbose; + +#endif /* _TRACE_H */ diff --git a/private/mvdm/softpc.new/base/inc/tredltr.h b/private/mvdm/softpc.new/base/inc/tredltr.h new file mode 100644 index 000000000..4d69d780e --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/tredltr.h @@ -0,0 +1,103 @@ + +typedef union { + struct node *nod; /* node */ + CHAR *str; /* string */ + CHAR *ide; /* identifier */ + IBOOL boo; /* boolean */ + IHPE lit; /* literal */ +} YYSTYPE; +extern YYSTYPE yylval; +# define c_case 257 +# define c_endcase 258 +# define c_fallthrough 259 +# define c_default 260 +# define c_else 261 +# define c_endif 262 +# define c_endswitch 263 +# define c_if 264 +# define c_then 265 +# define c_switch 266 +# define c_control 267 +# define c_identifier 268 +# define c_hook 269 +# define c_trace 270 +# define ADDR 271 +# define ADDRESSOF 272 +# define ALIGN 273 +# define ARRAYBASE 274 +# define ASM 275 +# define ASSERT 276 +# define BEGIN 277 +# define CALL 278 +# define COCALL 279 +# define MACRO 280 +# define CONTROL 281 +# define DATA 282 +# define DEPART 283 +# define DO 284 +# define ELSE 285 +# define ELIPSIS 286 +# define END 287 +# define ENDIF 288 +# define ENDWHILE 289 +# define ENUM 290 +# define EMBED 291 +# define EXTERNAL 292 +# define FP32 293 +# define FP64 294 +# define FP80 295 +# define FPH 296 +# define I_FALSE 297 +# define GENERATOR 298 +# define GETMEMBER 299 +# define GOTO 300 +# define GT_EQ 301 +# define I_HBIT 302 +# define IF 303 +# define IN 304 +# define INOUT 305 +# define INCREMENT 306 +# define INLINE 307 +# define INVOKE 308 +# define LABEL 309 +# define LOC 310 +# define I_BOOL 311 +# define I_LS16 312 +# define I_LS32 313 +# define I_LS8 314 +# define LT_EQ 315 +# define MODULE 316 +# define I_MS8 317 +# define OP 318 +# define OPERAND 319 +# define OPERATOR 320 +# define OUT 321 +# define PRESERVE 322 +# define RECORD 323 +# define REF 324 +# define RESTORE_STACK 325 +# define RETURN 326 +# define ROTATE_LEFT 327 +# define ROTATE_RIGHT 328 +# define SAVE_STACK 329 +# define SECTION_LABEL 330 +# define SHIFT_LEFT 331 +# define SHIFT_RIGHT 332 +# define SIZEOF 333 +# define SUBROUTINE 334 +# define COROUTINE 335 +# define TABLE 336 +# define THEN 337 +# define I_TRUE 338 +# define TYPE 339 +# define TYPEOF 340 +# define TYPESET 341 +# define VAR 342 +# define WHILE 343 +# define REPEAT 344 +# define CONSTANT 345 +# define BOOLEAN 346 +# define IDENTIFIER 347 +# define STRING 348 +# define CONFIGURATION 349 +# define SAD 350 diff --git a/private/mvdm/softpc.new/base/inc/umb.h b/private/mvdm/softpc.new/base/inc/umb.h new file mode 100644 index 000000000..d534d6635 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/umb.h @@ -0,0 +1,111 @@ +/*++ + +Copyright (c) 1992 Microsoft Corporation + +Module Name: + + UMB.H + +Abstract: + + Header file for UMB management functions + +Author: + + William Hsieh (williamh) Created 21-Sept-1992 + +[Environment:] + + + +[Notes:] + + + +Revision History: + + +--*/ +#ifndef DWORD +#define DWORD unsigned long +#endif +#ifndef WORD +#define WORD unsigned short +#endif +#ifndef PVOID +#define PVOID void * +#endif + +#define UMB_BASE_ADDRESS 0xC0000 // UMB base address +#define UMB_MAX_OFFSET 0x40000 // UMB max. valid offset + 1 + +#define UMB_PAGE_PROTECTION PAGE_EXECUTE_READWRITE + +#define HOST_PAGE_SIZE 0x1000 // 4KB +#define CONFIG_DATA_STRING L"Configuration Data" +#define KEY_VALUE_BUFFER_SIZE 2048 + + +// We keep UMB in a list with each block has the following structure +typedef struct _UMBNODE { + DWORD Base; // block base address(linear address) + DWORD Size; // block size in bytes + WORD Owner; // Misc flags + DWORD Mask; // page mask, bit 0 -> first page + // bit on -> page committed + struct _UMBNODE *Next; // pointer to next block +} UMBNODE, *PUMBNODE; + +// A ROM block can't be owned by anybody, the address space is reserved +// no memory are committed. To own a ROM block, the caller has to +// include the ROM block first and then reserve the block +// A RAM block can only be owned by XMS. The address space is reserved +// and committed. UMBs allocated for XMS should be reserved and committed +// all the time. +// The address space for EMM block is NOT reserved. +#define UMB_OWNER_NONE 0xFFFF // nobody own the block +#define UMB_OWNER_ROM 0xFFFE // UMB is a ROM block +#define UMB_OWNER_RAM 0xFFFD // UMB is a RAM block +#define UMB_OWNER_EMM 0xFFFC // UMB owned by EMM +#define UMB_OWNER_XMS 0xFFFB // UMB owned by XMS +#define UMB_OWNER_VDD 0xFFFA // UMB owned by VDD + +// Function prototype definitions +BOOL +VDDCommitUMB( +PVOID Address, +DWORD Size +); + +BOOL +VDDDeCommitUMB( +PVOID Address, +DWORD Size +); + +BOOL +ReserveUMB( +WORD Owner, +PVOID *Address, +DWORD *Size +); + +BOOL +ReleaseUMB( +WORD Owner, +PVOID Address, +DWORD Size +); + +BOOL +GetUMBForEMM(VOID); + +BOOL +InitUMBList(VOID); + +PUMBNODE CreateNewUMBNode +( +DWORD BaseAddress, +DWORD Size, +WORD Owner +); diff --git a/private/mvdm/softpc.new/base/inc/unix_asy.h b/private/mvdm/softpc.new/base/inc/unix_asy.h new file mode 100644 index 000000000..b0900f5d6 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/unix_asy.h @@ -0,0 +1,44 @@ +/*[ + * Name: unix_async.h + * + * Derived From: DEC 3.0 host_async.h + * + * Author: Justin Koprowski + * + * Created On: 19th February 1992 + * + * Sccs ID: @(#)unix_async.h 1.5 03/14/94 + * + * Purpose: Unix specific async definitions. + * + * (c)Copyright Insignia Solutions Ltd., 1992. All rights reserved. +]*/ + +#define ASYNC_NOMEM 1 +#define ASYNC_NBIO 2 +#define ASYNC_AIOOWN 3 +#define ASYNC_AIOSTAT 4 +#define ASYNC_BADHANDLE 5 +#define ASYNC_NDELAY 6 +#define ASYNC_BADHANDLER 7 +#define ASYNC_BADOPN 8 +#define ASYNC_FCNTL 9 + +#define ASYNC_XON 0 +#define ASYNC_XOFF 1 +#define ASYNC_IGNORE 2 +#define ASYNC_RAW 3 + +#ifdef ANSI +IMPORT ULONG addAsyncEventHandler(int fd,int (*eventhandler)(),VOID (*errhandler)(),int mode,CHAR *buf,int bufsiz,int opn,int *err); +IMPORT int (*changeAsyncEventHandler(ULONG handle, int (*eventhandler)(), char *buf, int bufsiz, int opn, int *err)) (); +#else /* ANSI */ +IMPORT ULONG addAsyncEventHandler(); +IMPORT int (*changeAsyncEventHandler())(); +#endif /* ANSI */ +IMPORT VOID initAsyncMgr IPT0(); +IMPORT int AsyncOperationMode IPT3(ULONG, handle, int, opn, int *, err); +IMPORT int removeAsyncEventHandler IPT2(ULONG, handle, int *, err); +IMPORT VOID AsyncMgr IPT0(); +IMPORT VOID terminateAsyncMgr IPT0(); +extern void AsyncEventMgr IPT0(); diff --git a/private/mvdm/softpc.new/base/inc/unix_cnf.h b/private/mvdm/softpc.new/base/inc/unix_cnf.h new file mode 100644 index 000000000..dd1981b15 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/unix_cnf.h @@ -0,0 +1,55 @@ +/* + * Name: unix_cnf.h + * Derived From: HP 3.0 hp_config.h (Philipa Watson) + * Author: gvdl + * Created On: 09 March 1991 + * Sccs ID: @(#)unix_cnf.h 1.7 10/27/93 + * Purpose: Host side config defines + * + * (c)Copyright Insignia Solutions Ltd., 1991. All rights reserved. + */ + +/* + * HOST defines for resource value option names. These are host specific and may + * be changed or added to without base recompilation as long as the method used + * below is adhered to. + */ + +/* Host specific hostID #defines. */ +#define C_LAST_OPTION LAST_BASE_CONFIG_DEFINE+1 + +/************************************/ +/* Defines for host specific things */ +/************************************/ + +/* The name of the resource file for this host machine. */ +#ifndef USER_HOME +#define USER_HOME "HOME" +#endif /* USER_HOME */ + +#ifndef SYSTEM_HOME +#define SYSTEM_HOME "SPCHOME" +#endif /* SYSTEM_HOME */ + +#ifdef HUNTER +#ifndef SYSTEM_CONFIG +#define SYSTEM_CONFIG "$SPCHOME/trap.spcconfig" +#endif /* SYSTEM_CONFIG */ +#else +#ifndef SYSTEM_CONFIG +#define SYSTEM_CONFIG "$SPCHOME/sys.spcconfig" +#endif /*SYSTEM_CONFIG */ +#endif /* HUNTER */ + +#ifndef USER_CONFIG +#define USER_CONFIG "$HOME/.spcconfig" +#endif /* USER_CONFIG */ + +#ifdef HUNTER +IMPORT VOID +#ifdef ANSI +loadNlsString(CHAR **strP, USHORT catEntry); +#else /* ANSI */ +loadNlsString(); +#endif /* ANSI */ +#endif /* HUNTER */ diff --git a/private/mvdm/softpc.new/base/inc/unix_loc.h b/private/mvdm/softpc.new/base/inc/unix_loc.h new file mode 100644 index 000000000..9cbc4b0b3 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/unix_loc.h @@ -0,0 +1,26 @@ +/*[ + * ============================================================================ + * + * Name: unix_lock.h + * + * Derived From: lock.h(part) + * + * Author: Andrew Ogle + * + * Created On: 18th Febuary 1993 + * + * Sccs ID: @(#)unix_lock.h 1.1 02/22/93 + * + * Purpose: + * + * Define procedures related to UNIX locking that are called + * from UNIX specific code in the base but where the code + * must be provided by the host. + * + * (c)Copyright Insignia Solutions Ltd., 1993. All rights reserved. + * + * ============================================================================ +]*/ + +IMPORT int host_get_hostname_from_stat IPT4(struct stat *, filestat, + CHAR *, hostname, CHAR *, pathname, int, fd); diff --git a/private/mvdm/softpc.new/base/inc/vga_dac.h b/private/mvdm/softpc.new/base/inc/vga_dac.h new file mode 100644 index 000000000..a33cce74c --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/vga_dac.h @@ -0,0 +1,787 @@ +/* SccsID = @(#)vga_dac.h 1.4 08/10/92 */ + +/* this stuff isn't required for the Macintosh */ +/* as we load the DACs in individually as required */ + +#ifndef macintosh + +byte vga_dac[0x300] = { +/* 00 */ 0x00, 0x00, 0x00, +/* 01 */ 0x00, 0x00, 0x2a, +/* 02 */ 0x00, 0x2a, 0x00, +/* 03 */ 0x00, 0x2a, 0x2a, +/* 04 */ 0x2a, 0x00, 0x00, +/* 05 */ 0x2a, 0x00, 0x2a, +/* 06 */ 0x2a, 0x2a, 0x00, +/* 07 */ 0x2a, 0x2a, 0x2a, +/* 08 */ 0x00, 0x00, 0x15, +/* 09 */ 0x00, 0x00, 0x3f, +/* 10 */ 0x00, 0x2a, 0x15, +/* 11 */ 0x00, 0x2a, 0x3f, +/* 12 */ 0x2a, 0x00, 0x15, +/* 13 */ 0x2a, 0x00, 0x3f, +/* 14 */ 0x2a, 0x2a, 0x15, +/* 15 */ 0x2a, 0x2a, 0x3f, +/* 16 */ 0x00, 0x15, 0x00, +/* 17 */ 0x00, 0x15, 0x2a, +/* 18 */ 0x00, 0x3f, 0x00, +/* 19 */ 0x00, 0x3f, 0x2a, +/* 20 */ 0x2a, 0x15, 0x00, +/* 21 */ 0x2a, 0x15, 0x2a, +/* 22 */ 0x2a, 0x3f, 0x00, +/* 23 */ 0x2a, 0x3f, 0x2a, +/* 24 */ 0x00, 0x15, 0x15, +/* 25 */ 0x00, 0x15, 0x3f, +/* 26 */ 0x00, 0x3f, 0x15, +/* 27 */ 0x00, 0x3f, 0x3f, +/* 28 */ 0x2a, 0x15, 0x15, +/* 29 */ 0x2a, 0x15, 0x3f, +/* 30 */ 0x2a, 0x3f, 0x15, +/* 31 */ 0x2a, 0x3f, 0x3f, +/* 32 */ 0x15, 0x00, 0x00, +/* 33 */ 0x15, 0x00, 0x2a, +/* 34 */ 0x15, 0x2a, 0x00, +/* 35 */ 0x15, 0x2a, 0x2a, +/* 36 */ 0x3f, 0x00, 0x00, +/* 37 */ 0x3f, 0x00, 0x2a, +/* 38 */ 0x3f, 0x2a, 0x00, +/* 39 */ 0x3f, 0x2a, 0x2a, +/* 40 */ 0x15, 0x00, 0x15, +/* 41 */ 0x15, 0x00, 0x3f, +/* 42 */ 0x15, 0x2a, 0x15, +/* 43 */ 0x15, 0x2a, 0x3f, +/* 44 */ 0x3f, 0x00, 0x15, +/* 45 */ 0x3f, 0x00, 0x3f, +/* 46 */ 0x3f, 0x2a, 0x15, +/* 47 */ 0x3f, 0x2a, 0x3f, +/* 48 */ 0x15, 0x15, 0x00, +/* 49 */ 0x15, 0x15, 0x2a, +/* 50 */ 0x15, 0x3f, 0x00, +/* 51 */ 0x15, 0x3f, 0x2a, +/* 52 */ 0x3f, 0x15, 0x00, +/* 53 */ 0x3f, 0x15, 0x2a, +/* 54 */ 0x3f, 0x3f, 0x00, +/* 55 */ 0x3f, 0x3f, 0x2a, +/* 56 */ 0x15, 0x15, 0x15, +/* 57 */ 0x15, 0x15, 0x3f, +/* 58 */ 0x15, 0x3f, 0x15, +/* 59 */ 0x15, 0x3f, 0x3f, +/* 60 */ 0x3f, 0x15, 0x15, +/* 61 */ 0x3f, 0x15, 0x3f, +/* 62 */ 0x3f, 0x3f, 0x15, +/* 63 */ 0x3f, 0x3f, 0x3f, +/* 64 */ 0x3f, 0x1f, 0x1f, +/* 65 */ 0x3f, 0x27, 0x1f, +/* 66 */ 0x3f, 0x2f, 0x1f, +/* 67 */ 0x3f, 0x37, 0x1f, +/* 68 */ 0x3f, 0x3f, 0x1f, +/* 69 */ 0x37, 0x3f, 0x1f, +/* 70 */ 0x2f, 0x3f, 0x1f, +/* 71 */ 0x27, 0x3f, 0x1f, +/* 72 */ 0x1f, 0x3f, 0x1f, +/* 73 */ 0x1f, 0x3f, 0x27, +/* 74 */ 0x1f, 0x3f, 0x2f, +/* 75 */ 0x1f, 0x3f, 0x37, +/* 76 */ 0x1f, 0x3f, 0x3f, +/* 77 */ 0x1f, 0x37, 0x3f, +/* 78 */ 0x1f, 0x2f, 0x3f, +/* 79 */ 0x1f, 0x27, 0x3f, +/* 80 */ 0x2d, 0x2d, 0x3f, +/* 81 */ 0x31, 0x2d, 0x3f, +/* 82 */ 0x36, 0x2d, 0x3f, +/* 83 */ 0x3a, 0x2d, 0x3f, +/* 84 */ 0x3f, 0x2d, 0x3f, +/* 85 */ 0x3f, 0x2d, 0x3a, +/* 86 */ 0x3f, 0x2d, 0x36, +/* 87 */ 0x3f, 0x2d, 0x31, +/* 88 */ 0x3f, 0x2d, 0x2d, +/* 89 */ 0x3f, 0x31, 0x2d, +/* 90 */ 0x3f, 0x36, 0x2d, +/* 91 */ 0x3f, 0x3a, 0x2d, +/* 92 */ 0x3f, 0x3f, 0x2d, +/* 93 */ 0x3a, 0x3f, 0x2d, +/* 94 */ 0x36, 0x3f, 0x2d, +/* 95 */ 0x31, 0x3f, 0x2d, +/* 96 */ 0x2d, 0x3f, 0x2d, +/* 97 */ 0x2d, 0x3f, 0x31, +/* 98 */ 0x2d, 0x3f, 0x36, +/* 99 */ 0x2d, 0x3f, 0x3a, +/* 100 */ 0x2d, 0x3f, 0x3f, +/* 101 */ 0x2d, 0x3a, 0x3f, +/* 102 */ 0x2d, 0x36, 0x3f, +/* 103 */ 0x2d, 0x31, 0x3f, +/* 104 */ 0x00, 0x00, 0x1c, +/* 105 */ 0x07, 0x00, 0x1c, +/* 106 */ 0x0e, 0x00, 0x1c, +/* 107 */ 0x15, 0x00, 0x1c, +/* 108 */ 0x1c, 0x00, 0x1c, +/* 109 */ 0x1c, 0x00, 0x15, +/* 110 */ 0x1c, 0x00, 0x0e, +/* 111 */ 0x1c, 0x00, 0x07, +/* 112 */ 0x1c, 0x00, 0x00, +/* 113 */ 0x1c, 0x07, 0x00, +/* 114 */ 0x1c, 0x0e, 0x00, +/* 115 */ 0x1c, 0x15, 0x00, +/* 116 */ 0x1c, 0x1c, 0x00, +/* 117 */ 0x15, 0x1c, 0x00, +/* 118 */ 0x0e, 0x1c, 0x00, +/* 119 */ 0x07, 0x1c, 0x00, +/* 120 */ 0x00, 0x1c, 0x00, +/* 121 */ 0x00, 0x1c, 0x07, +/* 122 */ 0x00, 0x1c, 0x0e, +/* 123 */ 0x00, 0x1c, 0x15, +/* 124 */ 0x00, 0x1c, 0x1c, +/* 125 */ 0x00, 0x15, 0x1c, +/* 126 */ 0x00, 0x0e, 0x1c, +/* 127 */ 0x00, 0x07, 0x1c, +/* 128 */ 0x0e, 0x0e, 0x1c, +/* 129 */ 0x11, 0x0e, 0x1c, +/* 130 */ 0x15, 0x0e, 0x1c, +/* 131 */ 0x18, 0x0e, 0x1c, +/* 132 */ 0x1c, 0x0e, 0x1c, +/* 133 */ 0x1c, 0x0e, 0x18, +/* 134 */ 0x1c, 0x0e, 0x15, +/* 135 */ 0x1c, 0x0e, 0x11, +/* 136 */ 0x1c, 0x0e, 0x0e, +/* 137 */ 0x1c, 0x11, 0x0e, +/* 138 */ 0x1c, 0x15, 0x0e, +/* 139 */ 0x1c, 0x18, 0x0e, +/* 140 */ 0x1c, 0x1c, 0x0e, +/* 141 */ 0x18, 0x1c, 0x0e, +/* 142 */ 0x15, 0x1c, 0x0e, +/* 143 */ 0x11, 0x1c, 0x0e, +/* 144 */ 0x0e, 0x1c, 0x0e, +/* 145 */ 0x0e, 0x1c, 0x11, +/* 146 */ 0x0e, 0x1c, 0x15, +/* 147 */ 0x0e, 0x1c, 0x18, +/* 148 */ 0x0e, 0x1c, 0x1c, +/* 149 */ 0x0e, 0x18, 0x1c, +/* 150 */ 0x0e, 0x15, 0x1c, +/* 151 */ 0x0e, 0x11, 0x1c, +/* 152 */ 0x14, 0x14, 0x1c, +/* 153 */ 0x16, 0x14, 0x1c, +/* 154 */ 0x18, 0x14, 0x1c, +/* 155 */ 0x1a, 0x14, 0x1c, +/* 156 */ 0x1c, 0x14, 0x1c, +/* 157 */ 0x1c, 0x14, 0x1a, +/* 158 */ 0x1c, 0x14, 0x18, +/* 159 */ 0x1c, 0x14, 0x16, +/* 160 */ 0x1c, 0x14, 0x14, +/* 161 */ 0x1c, 0x16, 0x14, +/* 162 */ 0x1c, 0x18, 0x14, +/* 163 */ 0x1c, 0x1a, 0x14, +/* 164 */ 0x1c, 0x1c, 0x14, +/* 165 */ 0x1a, 0x1c, 0x14, +/* 166 */ 0x18, 0x1c, 0x14, +/* 167 */ 0x16, 0x1c, 0x14, +/* 168 */ 0x14, 0x1c, 0x14, +/* 169 */ 0x14, 0x1c, 0x16, +/* 170 */ 0x14, 0x1c, 0x18, +/* 171 */ 0x14, 0x1c, 0x1a, +/* 172 */ 0x14, 0x1c, 0x1c, +/* 173 */ 0x14, 0x1a, 0x1c, +/* 174 */ 0x14, 0x18, 0x1c, +/* 175 */ 0x14, 0x16, 0x1c, +/* 176 */ 0x00, 0x00, 0x10, +/* 177 */ 0x04, 0x00, 0x10, +/* 178 */ 0x08, 0x00, 0x10, +/* 179 */ 0x0c, 0x00, 0x10, +/* 180 */ 0x10, 0x00, 0x10, +/* 181 */ 0x10, 0x00, 0x0c, +/* 182 */ 0x10, 0x00, 0x08, +/* 183 */ 0x10, 0x00, 0x04, +/* 184 */ 0x10, 0x00, 0x00, +/* 185 */ 0x10, 0x04, 0x00, +/* 186 */ 0x10, 0x08, 0x00, +/* 187 */ 0x10, 0x0c, 0x00, +/* 188 */ 0x10, 0x10, 0x00, +/* 189 */ 0x0c, 0x10, 0x00, +/* 190 */ 0x08, 0x10, 0x00, +/* 191 */ 0x04, 0x10, 0x00, +/* 192 */ 0x00, 0x10, 0x00, +/* 193 */ 0x00, 0x10, 0x04, +/* 194 */ 0x00, 0x10, 0x08, +/* 195 */ 0x00, 0x10, 0x0c, +/* 196 */ 0x00, 0x10, 0x10, +/* 197 */ 0x00, 0x0c, 0x10, +/* 198 */ 0x00, 0x08, 0x10, +/* 199 */ 0x00, 0x04, 0x10, +/* 200 */ 0x08, 0x08, 0x10, +/* 201 */ 0x0a, 0x08, 0x10, +/* 202 */ 0x0c, 0x08, 0x10, +/* 203 */ 0x0e, 0x08, 0x10, +/* 204 */ 0x10, 0x08, 0x10, +/* 205 */ 0x10, 0x08, 0x0e, +/* 206 */ 0x10, 0x08, 0x0c, +/* 207 */ 0x10, 0x08, 0x0a, +/* 208 */ 0x10, 0x08, 0x08, +/* 209 */ 0x10, 0x0a, 0x08, +/* 210 */ 0x10, 0x0c, 0x08, +/* 211 */ 0x10, 0x0e, 0x08, +/* 212 */ 0x10, 0x10, 0x08, +/* 213 */ 0x0e, 0x10, 0x08, +/* 214 */ 0x0c, 0x10, 0x08, +/* 215 */ 0x0a, 0x10, 0x08, +/* 216 */ 0x08, 0x10, 0x08, +/* 217 */ 0x08, 0x10, 0x0a, +/* 218 */ 0x08, 0x10, 0x0c, +/* 219 */ 0x08, 0x10, 0x0e, +/* 220 */ 0x08, 0x10, 0x10, +/* 221 */ 0x08, 0x0e, 0x10, +/* 222 */ 0x08, 0x0c, 0x10, +/* 223 */ 0x08, 0x0a, 0x10, +/* 224 */ 0x0b, 0x0b, 0x10, +/* 225 */ 0x0c, 0x0b, 0x10, +/* 226 */ 0x0d, 0x0b, 0x10, +/* 227 */ 0x0f, 0x0b, 0x10, +/* 228 */ 0x10, 0x0b, 0x10, +/* 229 */ 0x10, 0x0b, 0x0f, +/* 230 */ 0x10, 0x0b, 0x0d, +/* 231 */ 0x10, 0x0b, 0x0c, +/* 232 */ 0x10, 0x0b, 0x0b, +/* 233 */ 0x10, 0x0c, 0x0b, +/* 234 */ 0x10, 0x0d, 0x0b, +/* 235 */ 0x10, 0x0f, 0x0b, +/* 236 */ 0x10, 0x10, 0x0b, +/* 237 */ 0x0f, 0x10, 0x0b, +/* 238 */ 0x0d, 0x10, 0x0b, +/* 239 */ 0x0c, 0x10, 0x0b, +/* 240 */ 0x0b, 0x10, 0x0b, +/* 241 */ 0x0b, 0x10, 0x0c, +/* 242 */ 0x0b, 0x10, 0x0d, +/* 243 */ 0x0b, 0x10, 0x0f, +/* 244 */ 0x0b, 0x10, 0x10, +/* 245 */ 0x0b, 0x0f, 0x10, +/* 246 */ 0x0b, 0x0d, 0x10, +/* 247 */ 0x0b, 0x0c, 0x10, +/* 248 */ 0x00, 0x00, 0x00, +/* 249 */ 0x00, 0x00, 0x00, +/* 250 */ 0x00, 0x00, 0x00, +/* 251 */ 0x00, 0x00, 0x00, +/* 252 */ 0x00, 0x00, 0x00, +/* 253 */ 0x00, 0x00, 0x00, +/* 254 */ 0x00, 0x00, 0x00, +/* 255 */ 0x00, 0x00, 0x00, +}; + +byte vga_low_dac[0x300] = { +/* 00 */ 0x00, 0x00, 0x00, +/* 01 */ 0x00, 0x00, 0x2a, +/* 02 */ 0x00, 0x2a, 0x00, +/* 03 */ 0x00, 0x2a, 0x2a, +/* 04 */ 0x2a, 0x00, 0x00, +/* 05 */ 0x2a, 0x00, 0x2a, +/* 06 */ 0x2a, 0x15, 0x00, +/* 07 */ 0x2a, 0x2a, 0x2a, +/* 08 */ 0x00, 0x00, 0x00, +/* 09 */ 0x00, 0x00, 0x2a, +/* 10 */ 0x00, 0x2a, 0x00, +/* 11 */ 0x00, 0x2a, 0x2a, +/* 12 */ 0x2a, 0x00, 0x00, +/* 13 */ 0x2a, 0x00, 0x2a, +/* 14 */ 0x2a, 0x15, 0x00, +/* 15 */ 0x2a, 0x2a, 0x2a, +/* 16 */ 0x15, 0x15, 0x15, +/* 17 */ 0x15, 0x15, 0x3f, +/* 18 */ 0x15, 0x3f, 0x15, +/* 19 */ 0x15, 0x3f, 0x3f, +/* 20 */ 0x3f, 0x15, 0x15, +/* 21 */ 0x3f, 0x15, 0x3f, +/* 22 */ 0x3f, 0x3f, 0x15, +/* 23 */ 0x3f, 0x3f, 0x3f, +/* 24 */ 0x15, 0x15, 0x15, +/* 25 */ 0x15, 0x15, 0x3f, +/* 26 */ 0x15, 0x3f, 0x15, +/* 27 */ 0x15, 0x3f, 0x3f, +/* 28 */ 0x3f, 0x15, 0x15, +/* 29 */ 0x3f, 0x15, 0x3f, +/* 30 */ 0x3f, 0x3f, 0x15, +/* 31 */ 0x3f, 0x3f, 0x3f, +/* 32 */ 0x00, 0x00, 0x00, +/* 33 */ 0x00, 0x00, 0x2a, +/* 34 */ 0x00, 0x2a, 0x00, +/* 35 */ 0x00, 0x2a, 0x2a, +/* 36 */ 0x2a, 0x00, 0x00, +/* 37 */ 0x2a, 0x00, 0x2a, +/* 38 */ 0x2a, 0x15, 0x00, +/* 39 */ 0x2a, 0x2a, 0x2a, +/* 40 */ 0x00, 0x00, 0x00, +/* 41 */ 0x00, 0x00, 0x2a, +/* 42 */ 0x00, 0x2a, 0x00, +/* 43 */ 0x00, 0x2a, 0x2a, +/* 44 */ 0x2a, 0x00, 0x00, +/* 45 */ 0x2a, 0x00, 0x2a, +/* 46 */ 0x2a, 0x15, 0x00, +/* 47 */ 0x2a, 0x2a, 0x2a, +/* 48 */ 0x15, 0x15, 0x15, +/* 49 */ 0x15, 0x15, 0x3f, +/* 50 */ 0x15, 0x3f, 0x15, +/* 51 */ 0x15, 0x3f, 0x3f, +/* 52 */ 0x3f, 0x15, 0x15, +/* 53 */ 0x3f, 0x15, 0x3f, +/* 54 */ 0x3f, 0x3f, 0x15, +/* 55 */ 0x3f, 0x3f, 0x3f, +/* 56 */ 0x15, 0x15, 0x15, +/* 57 */ 0x15, 0x15, 0x3f, +/* 58 */ 0x15, 0x3f, 0x15, +/* 59 */ 0x15, 0x3f, 0x3f, +/* 60 */ 0x3f, 0x15, 0x15, +/* 61 */ 0x3f, 0x15, 0x3f, +/* 62 */ 0x3f, 0x3f, 0x15, +/* 63 */ 0x3f, 0x3f, 0x3f, +/* 64 */ 0x3f, 0x1f, 0x1f, +/* 65 */ 0x3f, 0x27, 0x1f, +/* 66 */ 0x3f, 0x2f, 0x1f, +/* 67 */ 0x3f, 0x37, 0x1f, +/* 68 */ 0x3f, 0x3f, 0x1f, +/* 69 */ 0x37, 0x3f, 0x1f, +/* 70 */ 0x2f, 0x3f, 0x1f, +/* 71 */ 0x27, 0x3f, 0x1f, +/* 72 */ 0x1f, 0x3f, 0x1f, +/* 73 */ 0x1f, 0x3f, 0x27, +/* 74 */ 0x1f, 0x3f, 0x2f, +/* 75 */ 0x1f, 0x3f, 0x37, +/* 76 */ 0x1f, 0x3f, 0x3f, +/* 77 */ 0x1f, 0x37, 0x3f, +/* 78 */ 0x1f, 0x2f, 0x3f, +/* 79 */ 0x1f, 0x27, 0x3f, +/* 80 */ 0x2d, 0x2d, 0x3f, +/* 81 */ 0x31, 0x2d, 0x3f, +/* 82 */ 0x36, 0x2d, 0x3f, +/* 83 */ 0x3a, 0x2d, 0x3f, +/* 84 */ 0x3f, 0x2d, 0x3f, +/* 85 */ 0x3f, 0x2d, 0x3a, +/* 86 */ 0x3f, 0x2d, 0x36, +/* 87 */ 0x3f, 0x2d, 0x31, +/* 88 */ 0x3f, 0x2d, 0x2d, +/* 89 */ 0x3f, 0x31, 0x2d, +/* 90 */ 0x3f, 0x36, 0x2d, +/* 91 */ 0x3f, 0x3a, 0x2d, +/* 92 */ 0x3f, 0x3f, 0x2d, +/* 93 */ 0x3a, 0x3f, 0x2d, +/* 94 */ 0x36, 0x3f, 0x2d, +/* 95 */ 0x31, 0x3f, 0x2d, +/* 96 */ 0x2d, 0x3f, 0x2d, +/* 97 */ 0x2d, 0x3f, 0x31, +/* 98 */ 0x2d, 0x3f, 0x36, +/* 99 */ 0x2d, 0x3f, 0x3a, +/* 100 */ 0x2d, 0x3f, 0x3f, +/* 101 */ 0x2d, 0x3a, 0x3f, +/* 102 */ 0x2d, 0x36, 0x3f, +/* 103 */ 0x2d, 0x31, 0x3f, +/* 104 */ 0x00, 0x00, 0x1c, +/* 105 */ 0x07, 0x00, 0x1c, +/* 106 */ 0x0e, 0x00, 0x1c, +/* 107 */ 0x15, 0x00, 0x1c, +/* 108 */ 0x1c, 0x00, 0x1c, +/* 109 */ 0x1c, 0x00, 0x15, +/* 110 */ 0x1c, 0x00, 0x0e, +/* 111 */ 0x1c, 0x00, 0x07, +/* 112 */ 0x1c, 0x00, 0x00, +/* 113 */ 0x1c, 0x07, 0x00, +/* 114 */ 0x1c, 0x0e, 0x00, +/* 115 */ 0x1c, 0x15, 0x00, +/* 116 */ 0x1c, 0x1c, 0x00, +/* 117 */ 0x15, 0x1c, 0x00, +/* 118 */ 0x0e, 0x1c, 0x00, +/* 119 */ 0x07, 0x1c, 0x00, +/* 120 */ 0x00, 0x1c, 0x00, +/* 121 */ 0x00, 0x1c, 0x07, +/* 122 */ 0x00, 0x1c, 0x0e, +/* 123 */ 0x00, 0x1c, 0x15, +/* 124 */ 0x00, 0x1c, 0x1c, +/* 125 */ 0x00, 0x15, 0x1c, +/* 126 */ 0x00, 0x0e, 0x1c, +/* 127 */ 0x00, 0x07, 0x1c, +/* 128 */ 0x0e, 0x0e, 0x1c, +/* 129 */ 0x11, 0x0e, 0x1c, +/* 130 */ 0x15, 0x0e, 0x1c, +/* 131 */ 0x18, 0x0e, 0x1c, +/* 132 */ 0x1c, 0x0e, 0x1c, +/* 133 */ 0x1c, 0x0e, 0x18, +/* 134 */ 0x1c, 0x0e, 0x15, +/* 135 */ 0x1c, 0x0e, 0x11, +/* 136 */ 0x1c, 0x0e, 0x0e, +/* 137 */ 0x1c, 0x11, 0x0e, +/* 138 */ 0x1c, 0x15, 0x0e, +/* 139 */ 0x1c, 0x18, 0x0e, +/* 140 */ 0x1c, 0x1c, 0x0e, +/* 141 */ 0x18, 0x1c, 0x0e, +/* 142 */ 0x15, 0x1c, 0x0e, +/* 143 */ 0x11, 0x1c, 0x0e, +/* 144 */ 0x0e, 0x1c, 0x0e, +/* 145 */ 0x0e, 0x1c, 0x11, +/* 146 */ 0x0e, 0x1c, 0x15, +/* 147 */ 0x0e, 0x1c, 0x18, +/* 148 */ 0x0e, 0x1c, 0x1c, +/* 149 */ 0x0e, 0x18, 0x1c, +/* 150 */ 0x0e, 0x15, 0x1c, +/* 151 */ 0x0e, 0x11, 0x1c, +/* 152 */ 0x14, 0x14, 0x1c, +/* 153 */ 0x16, 0x14, 0x1c, +/* 154 */ 0x18, 0x14, 0x1c, +/* 155 */ 0x1a, 0x14, 0x1c, +/* 156 */ 0x1c, 0x14, 0x1c, +/* 157 */ 0x1c, 0x14, 0x1a, +/* 158 */ 0x1c, 0x14, 0x18, +/* 159 */ 0x1c, 0x14, 0x16, +/* 160 */ 0x1c, 0x14, 0x14, +/* 161 */ 0x1c, 0x16, 0x14, +/* 162 */ 0x1c, 0x18, 0x14, +/* 163 */ 0x1c, 0x1a, 0x14, +/* 164 */ 0x1c, 0x1c, 0x14, +/* 165 */ 0x1a, 0x1c, 0x14, +/* 166 */ 0x18, 0x1c, 0x14, +/* 167 */ 0x16, 0x1c, 0x14, +/* 168 */ 0x14, 0x1c, 0x14, +/* 169 */ 0x14, 0x1c, 0x16, +/* 170 */ 0x14, 0x1c, 0x18, +/* 171 */ 0x14, 0x1c, 0x1a, +/* 172 */ 0x14, 0x1c, 0x1c, +/* 173 */ 0x14, 0x1a, 0x1c, +/* 174 */ 0x14, 0x18, 0x1c, +/* 175 */ 0x14, 0x16, 0x1c, +/* 176 */ 0x00, 0x00, 0x10, +/* 177 */ 0x04, 0x00, 0x10, +/* 178 */ 0x08, 0x00, 0x10, +/* 179 */ 0x0c, 0x00, 0x10, +/* 180 */ 0x10, 0x00, 0x10, +/* 181 */ 0x10, 0x00, 0x0c, +/* 182 */ 0x10, 0x00, 0x08, +/* 183 */ 0x10, 0x00, 0x04, +/* 184 */ 0x10, 0x00, 0x00, +/* 185 */ 0x10, 0x04, 0x00, +/* 186 */ 0x10, 0x08, 0x00, +/* 187 */ 0x10, 0x0c, 0x00, +/* 188 */ 0x10, 0x10, 0x00, +/* 189 */ 0x0c, 0x10, 0x00, +/* 190 */ 0x08, 0x10, 0x00, +/* 191 */ 0x04, 0x10, 0x00, +/* 192 */ 0x00, 0x10, 0x00, +/* 193 */ 0x00, 0x10, 0x04, +/* 194 */ 0x00, 0x10, 0x08, +/* 195 */ 0x00, 0x10, 0x0c, +/* 196 */ 0x00, 0x10, 0x10, +/* 197 */ 0x00, 0x0c, 0x10, +/* 198 */ 0x00, 0x08, 0x10, +/* 199 */ 0x00, 0x04, 0x10, +/* 200 */ 0x08, 0x08, 0x10, +/* 201 */ 0x0a, 0x08, 0x10, +/* 202 */ 0x0c, 0x08, 0x10, +/* 203 */ 0x0e, 0x08, 0x10, +/* 204 */ 0x10, 0x08, 0x10, +/* 205 */ 0x10, 0x08, 0x0e, +/* 206 */ 0x10, 0x08, 0x0c, +/* 207 */ 0x10, 0x08, 0x0a, +/* 208 */ 0x10, 0x08, 0x08, +/* 209 */ 0x10, 0x0a, 0x08, +/* 210 */ 0x10, 0x0c, 0x08, +/* 211 */ 0x10, 0x0e, 0x08, +/* 212 */ 0x10, 0x10, 0x08, +/* 213 */ 0x0e, 0x10, 0x08, +/* 214 */ 0x0c, 0x10, 0x08, +/* 215 */ 0x0a, 0x10, 0x08, +/* 216 */ 0x08, 0x10, 0x08, +/* 217 */ 0x08, 0x10, 0x0a, +/* 218 */ 0x08, 0x10, 0x0c, +/* 219 */ 0x08, 0x10, 0x0e, +/* 220 */ 0x08, 0x10, 0x10, +/* 221 */ 0x08, 0x0e, 0x10, +/* 222 */ 0x08, 0x0c, 0x10, +/* 223 */ 0x08, 0x0a, 0x10, +/* 224 */ 0x0b, 0x0b, 0x10, +/* 225 */ 0x0c, 0x0b, 0x10, +/* 226 */ 0x0d, 0x0b, 0x10, +/* 227 */ 0x0f, 0x0b, 0x10, +/* 228 */ 0x10, 0x0b, 0x10, +/* 229 */ 0x10, 0x0b, 0x0f, +/* 230 */ 0x10, 0x0b, 0x0d, +/* 231 */ 0x10, 0x0b, 0x0c, +/* 232 */ 0x10, 0x0b, 0x0b, +/* 233 */ 0x10, 0x0c, 0x0b, +/* 234 */ 0x10, 0x0d, 0x0b, +/* 235 */ 0x10, 0x0f, 0x0b, +/* 236 */ 0x10, 0x10, 0x0b, +/* 237 */ 0x0f, 0x10, 0x0b, +/* 238 */ 0x0d, 0x10, 0x0b, +/* 239 */ 0x0c, 0x10, 0x0b, +/* 240 */ 0x0b, 0x10, 0x0b, +/* 241 */ 0x0b, 0x10, 0x0c, +/* 242 */ 0x0b, 0x10, 0x0d, +/* 243 */ 0x0b, 0x10, 0x0f, +/* 244 */ 0x0b, 0x10, 0x10, +/* 245 */ 0x0b, 0x0f, 0x10, +/* 246 */ 0x0b, 0x0d, 0x10, +/* 247 */ 0x0b, 0x0c, 0x10, +/* 248 */ 0x00, 0x00, 0x00, +/* 249 */ 0x00, 0x00, 0x00, +/* 250 */ 0x00, 0x00, 0x00, +/* 251 */ 0x00, 0x00, 0x00, +/* 252 */ 0x00, 0x00, 0x00, +/* 253 */ 0x00, 0x00, 0x00, +/* 254 */ 0x00, 0x00, 0x00, +/* 255 */ 0x00, 0x00, 0x00, +}; + +byte vga_256_dac[0x300] = +{ +/* 00 */ 0x00,0x00,0x00, +/* 01 */ 0x00,0x00,0x2a, +/* 02 */ 0x00,0x2a,0x00, +/* 03 */ 0x00,0x2a,0x2a, +/* 04 */ 0x2a,0x00,0x00, +/* 05 */ 0x2a,0x00,0x2a, +/* 06 */ 0x2a,0x15,0x00, +/* 07 */ 0x2a,0x2a,0x2a, +/* 08 */ 0x15,0x15,0x15, +/* 09 */ 0x15,0x15,0x3f, +/* 10 */ 0x15,0x3f,0x15, +/* 11 */ 0x15,0x3f,0x3f, +/* 12 */ 0x3f,0x15,0x15, +/* 13 */ 0x3f,0x15,0x3f, +/* 14 */ 0x3f,0x3f,0x15, +/* 15 */ 0x3f,0x3f,0x3f, +/* 16 */ 0x00,0x00,0x00, +/* 17 */ 0x05,0x05,0x05, +/* 18 */ 0x08,0x08,0x08, +/* 19 */ 0x0b,0x0b,0x0b, +/* 20 */ 0x0e,0x0e,0x0e, +/* 21 */ 0x11,0x11,0x11, +/* 22 */ 0x14,0x14,0x14, +/* 23 */ 0x18,0x18,0x18, +/* 24 */ 0x1c,0x1c,0x1c, +/* 25 */ 0x20,0x20,0x20, +/* 26 */ 0x24,0x24,0x24, +/* 27 */ 0x28,0x28,0x28, +/* 28 */ 0x2d,0x2d,0x2d, +/* 29 */ 0x32,0x32,0x32, +/* 30 */ 0x38,0x38,0x38, +/* 31 */ 0x3f,0x3f,0x3f, +/* 32 */ 0x00,0x00,0x3f, +/* 33 */ 0x10,0x00,0x3f, +/* 34 */ 0x1f,0x00,0x3f, +/* 35 */ 0x2f,0x00,0x3f, +/* 36 */ 0x3f,0x00,0x3f, +/* 37 */ 0x3f,0x00,0x2f, +/* 38 */ 0x3f,0x00,0x1f, +/* 39 */ 0x3f,0x00,0x10, +/* 40 */ 0x3f,0x00,0x00, +/* 41 */ 0x3f,0x10,0x00, +/* 42 */ 0x3f,0x1f,0x00, +/* 43 */ 0x3f,0x2f,0x00, +/* 44 */ 0x3f,0x3f,0x00, +/* 45 */ 0x2f,0x3f,0x00, +/* 46 */ 0x1f,0x3f,0x00, +/* 47 */ 0x10,0x3f,0x00, +/* 48 */ 0x00,0x3f,0x00, +/* 49 */ 0x00,0x3f,0x10, +/* 50 */ 0x00,0x3f,0x1f, +/* 51 */ 0x00,0x3f,0x2f, +/* 52 */ 0x00,0x3f,0x3f, +/* 53 */ 0x00,0x2f,0x3f, +/* 54 */ 0x00,0x1f,0x3f, +/* 55 */ 0x00,0x10,0x3f, +/* 56 */ 0x1f,0x1f,0x3f, +/* 57 */ 0x27,0x1f,0x3f, +/* 58 */ 0x2f,0x1f,0x3f, +/* 59 */ 0x37,0x1f,0x3f, +/* 60 */ 0x3f,0x1f,0x3f, +/* 61 */ 0x3f,0x1f,0x37, +/* 62 */ 0x3f,0x1f,0x2f, +/* 63 */ 0x3f,0x1f,0x27, +/* 64 */ 0x3f,0x1f,0x1f, +/* 65 */ 0x3f,0x27,0x1f, +/* 66 */ 0x3f,0x2f,0x1f, +/* 67 */ 0x3f,0x37,0x1f, +/* 68 */ 0x3f,0x3f,0x1f, +/* 69 */ 0x37,0x3f,0x1f, +/* 70 */ 0x2f,0x3f,0x1f, +/* 71 */ 0x27,0x3f,0x1f, +/* 72 */ 0x1f,0x3f,0x1f, +/* 73 */ 0x1f,0x3f,0x27, +/* 74 */ 0x1f,0x3f,0x2f, +/* 75 */ 0x1f,0x3f,0x37, +/* 76 */ 0x1f,0x3f,0x3f, +/* 77 */ 0x1f,0x37,0x3f, +/* 78 */ 0x1f,0x2f,0x3f, +/* 79 */ 0x1f,0x27,0x3f, +/* 80 */ 0x2d,0x2d,0x3f, +/* 81 */ 0x31,0x2d,0x3f, +/* 82 */ 0x36,0x2d,0x3f, +/* 83 */ 0x3a,0x2d,0x3f, +/* 84 */ 0x3f,0x2d,0x3f, +/* 85 */ 0x3f,0x2d,0x3a, +/* 86 */ 0x3f,0x2d,0x36, +/* 87 */ 0x3f,0x2d,0x31, +/* 88 */ 0x3f,0x2d,0x2d, +/* 89 */ 0x3f,0x31,0x2d, +/* 90 */ 0x3f,0x36,0x2d, +/* 91 */ 0x3f,0x3a,0x2d, +/* 92 */ 0x3f,0x3f,0x2d, +/* 93 */ 0x3a,0x3f,0x2d, +/* 94 */ 0x36,0x3f,0x2d, +/* 95 */ 0x31,0x3f,0x2d, +/* 96 */ 0x2d,0x3f,0x2d, +/* 97 */ 0x2d,0x3f,0x31, +/* 98 */ 0x2d,0x3f,0x36, +/* 99 */ 0x2d,0x3f,0x3a, +/* 100 */ 0x2d,0x3f,0x3f, +/* 101 */ 0x2d,0x3a,0x3f, +/* 102 */ 0x2d,0x36,0x3f, +/* 103 */ 0x2d,0x31,0x3f, +/* 104 */ 0x00,0x00,0x1c, +/* 105 */ 0x07,0x00,0x1c, +/* 106 */ 0x0e,0x00,0x1c, +/* 107 */ 0x15,0x00,0x1c, +/* 108 */ 0x1c,0x00,0x1c, +/* 109 */ 0x1c,0x00,0x15, +/* 110 */ 0x1c,0x00,0x0e, +/* 111 */ 0x1c,0x00,0x07, +/* 112 */ 0x1c,0x00,0x00, +/* 113 */ 0x1c,0x07,0x00, +/* 114 */ 0x1c,0x0e,0x00, +/* 115 */ 0x1c,0x15,0x00, +/* 116 */ 0x1c,0x1c,0x00, +/* 117 */ 0x15,0x1c,0x00, +/* 118 */ 0x0e,0x1c,0x00, +/* 119 */ 0x07,0x1c,0x00, +/* 120 */ 0x00,0x1c,0x00, +/* 121 */ 0x00,0x1c,0x07, +/* 122 */ 0x00,0x1c,0x0e, +/* 123 */ 0x00,0x1c,0x15, +/* 124 */ 0x00,0x1c,0x1c, +/* 125 */ 0x00,0x15,0x1c, +/* 126 */ 0x00,0x0e,0x1c, +/* 127 */ 0x00,0x07,0x1c, +/* 128 */ 0x0e,0x0e,0x1c, +/* 129 */ 0x11,0x0e,0x1c, +/* 130 */ 0x15,0x0e,0x1c, +/* 131 */ 0x18,0x0e,0x1c, +/* 132 */ 0x1c,0x0e,0x1c, +/* 133 */ 0x1c,0x0e,0x18, +/* 134 */ 0x1c,0x0e,0x15, +/* 135 */ 0x1c,0x0e,0x11, +/* 136 */ 0x1c,0x0e,0x0e, +/* 137 */ 0x1c,0x11,0x0e, +/* 138 */ 0x1c,0x15,0x0e, +/* 139 */ 0x1c,0x18,0x0e, +/* 140 */ 0x1c,0x1c,0x0e, +/* 141 */ 0x18,0x1c,0x0e, +/* 142 */ 0x15,0x1c,0x0e, +/* 143 */ 0x11,0x1c,0x0e, +/* 144 */ 0x0e,0x1c,0x0e, +/* 145 */ 0x0e,0x1c,0x11, +/* 146 */ 0x0e,0x1c,0x15, +/* 147 */ 0x0e,0x1c,0x18, +/* 148 */ 0x0e,0x1c,0x1c, +/* 149 */ 0x0e,0x18,0x1c, +/* 150 */ 0x0e,0x15,0x1c, +/* 151 */ 0x0e,0x11,0x1c, +/* 152 */ 0x14,0x14,0x1c, +/* 153 */ 0x16,0x14,0x1c, +/* 154 */ 0x18,0x14,0x1c, +/* 155 */ 0x1a,0x14,0x1c, +/* 156 */ 0x1c,0x14,0x1c, +/* 157 */ 0x1c,0x14,0x1a, +/* 158 */ 0x1c,0x14,0x18, +/* 159 */ 0x1c,0x14,0x16, +/* 160 */ 0x1c,0x14,0x14, +/* 161 */ 0x1c,0x16,0x14, +/* 162 */ 0x1c,0x18,0x14, +/* 163 */ 0x1c,0x1a,0x14, +/* 164 */ 0x1c,0x1c,0x14, +/* 165 */ 0x1a,0x1c,0x14, +/* 166 */ 0x18,0x1c,0x14, +/* 167 */ 0x16,0x1c,0x14, +/* 168 */ 0x14,0x1c,0x14, +/* 169 */ 0x14,0x1c,0x16, +/* 170 */ 0x14,0x1c,0x18, +/* 171 */ 0x14,0x1c,0x1a, +/* 172 */ 0x14,0x1c,0x1c, +/* 173 */ 0x14,0x1a,0x1c, +/* 174 */ 0x14,0x18,0x1c, +/* 175 */ 0x14,0x16,0x1c, +/* 176 */ 0x00,0x00,0x10, +/* 177 */ 0x04,0x00,0x10, +/* 178 */ 0x08,0x00,0x10, +/* 179 */ 0x0c,0x00,0x10, +/* 180 */ 0x10,0x00,0x10, +/* 181 */ 0x10,0x00,0x0c, +/* 182 */ 0x10,0x00,0x08, +/* 183 */ 0x10,0x00,0x04, +/* 184 */ 0x10,0x00,0x00, +/* 185 */ 0x10,0x04,0x00, +/* 186 */ 0x10,0x08,0x00, +/* 187 */ 0x10,0x0c,0x00, +/* 188 */ 0x10,0x10,0x00, +/* 189 */ 0x0c,0x10,0x00, +/* 190 */ 0x08,0x10,0x00, +/* 191 */ 0x04,0x10,0x00, +/* 192 */ 0x00,0x10,0x00, +/* 193 */ 0x00,0x10,0x04, +/* 194 */ 0x00,0x10,0x08, +/* 195 */ 0x00,0x10,0x0c, +/* 196 */ 0x00,0x10,0x10, +/* 197 */ 0x00,0x0c,0x10, +/* 198 */ 0x00,0x08,0x10, +/* 199 */ 0x00,0x04,0x10, +/* 200 */ 0x08,0x08,0x10, +/* 201 */ 0x0a,0x08,0x10, +/* 202 */ 0x0c,0x08,0x10, +/* 203 */ 0x0e,0x08,0x10, +/* 204 */ 0x10,0x08,0x10, +/* 205 */ 0x10,0x08,0x0e, +/* 206 */ 0x10,0x08,0x0c, +/* 207 */ 0x10,0x08,0x0a, +/* 208 */ 0x10,0x08,0x08, +/* 209 */ 0x10,0x0a,0x08, +/* 210 */ 0x10,0x0c,0x08, +/* 211 */ 0x10,0x0e,0x08, +/* 212 */ 0x10,0x10,0x08, +/* 213 */ 0x0e,0x10,0x08, +/* 214 */ 0x0c,0x10,0x08, +/* 215 */ 0x0a,0x10,0x08, +/* 216 */ 0x08,0x10,0x08, +/* 217 */ 0x08,0x10,0x0a, +/* 218 */ 0x08,0x10,0x0c, +/* 219 */ 0x08,0x10,0x0e, +/* 220 */ 0x08,0x10,0x10, +/* 221 */ 0x08,0x0e,0x10, +/* 222 */ 0x08,0x0c,0x10, +/* 223 */ 0x08,0x0a,0x10, +/* 224 */ 0x0b,0x0b,0x10, +/* 225 */ 0x0c,0x0b,0x10, +/* 226 */ 0x0d,0x0b,0x10, +/* 227 */ 0x0f,0x0b,0x10, +/* 228 */ 0x10,0x0b,0x10, +/* 229 */ 0x10,0x0b,0x0f, +/* 230 */ 0x10,0x0b,0x0d, +/* 231 */ 0x10,0x0b,0x0c, +/* 232 */ 0x10,0x0b,0x0b, +/* 233 */ 0x10,0x0c,0x0b, +/* 234 */ 0x10,0x0d,0x0b, +/* 235 */ 0x10,0x0f,0x0b, +/* 236 */ 0x10,0x10,0x0b, +/* 237 */ 0x0f,0x10,0x0b, +/* 238 */ 0x0d,0x10,0x0b, +/* 239 */ 0x0c,0x10,0x0b, +/* 240 */ 0x0b,0x10,0x0b, +/* 241 */ 0x0b,0x10,0x0c, +/* 242 */ 0x0b,0x10,0x0d, +/* 243 */ 0x0b,0x10,0x0f, +/* 244 */ 0x0b,0x10,0x10, +/* 245 */ 0x0b,0x0f,0x10, +/* 246 */ 0x0b,0x0d,0x10, +/* 247 */ 0x0b,0x0c,0x10, +/* 248 */ 0x00,0x00,0x00, +/* 249 */ 0x00,0x00,0x00, +/* 250 */ 0x00,0x00,0x00, +/* 251 */ 0x00,0x00,0x00, +/* 252 */ 0x00,0x00,0x00, +/* 253 */ 0x00,0x00,0x00, +/* 254 */ 0x00,0x00,0x00, +/* 255 */ 0x00,0x00,0x00 +}; + +#endif /* ! macintosh */ + diff --git a/private/mvdm/softpc.new/base/inc/vgaports.h b/private/mvdm/softpc.new/base/inc/vgaports.h new file mode 100644 index 000000000..38fa157f0 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/vgaports.h @@ -0,0 +1,2018 @@ +#ifdef VGG +/* This file is not used for a non-VGA port. */ + +/*[ + Name: vgaports.h + Derived From: original + Author: Phil Taylor + Created On: December 1990 + Sccs ID: @(#)vgaports.h 1.13 01/13/95 + Purpose: VGA ports definitions. + + (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved. + +]*/ + +#ifdef BIT_ORDER1 + +/* CRTC Mode Control Register. Index 0x17 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned hardware_reset : 1, /* NO */ + word_or_byte_mode : 1, /* YES */ + address_wrap : 1, /* NO */ + not_used : 1, + count_by_two : 1, /* NO */ + horizontal_retrace_select : 1, /* NO */ + select_row_scan_counter : 1, /* NO */ + compatibility_mode_support : 1; /* YES - CGA graphics banks */ + } as_bfld; +} MODE_CONTROL; + +/* CRTC Overflow Register. Index 7 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned vertical_retrace_start_bit_9 : 1, /* NO */ + vertical_display_enab_end_bit_9 : 1, /* YES */ + vertical_total_bit_9 : 1, /* NO */ + line_compare_bit_8 : 1, /* YES */ + start_vertical_blank_bit_8 : 1, /* NO */ + vertical_retrace_start_bit_8 : 1, /* NO */ + vertical_display_enab_end_bit_8 : 1, /* YES */ + vertical_total_bit_8 : 1; /* NO */ + } as_bfld; +} CRTC_OVERFLOW; + +/* CRTC Max Scan Line Register. Index 9 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned double_scanning : 1, /* pixel height * 2 */ + line_compare_bit_9 : 1, /* YES */ + start_vertical_blank_bit_9 : 1, /* NO */ + maximum_scan_line : 5; /* YES */ + } as_bfld; +} MAX_SCAN_LINE; + +/* CRTC Cursor Start Scan Line Register. Index A */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 2, + cursor_off : 1, /* YES */ + cursor_start : 5; /* YES */ + } as_bfld; +} CURSOR_START; + +/* CRTC Cursor End Scan Line Register. Index B */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 1, + cursor_skew_control : 2, /* NO */ + cursor_end : 5; /* YES */ + } as_bfld; +} CURSOR_END; + +/* Sequencer Reset Register. Index 0 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 6, + synchronous_reset : 1, /* Ditto (could implement as enable_ram)*/ + asynchronous_reset : 1; /* NO - damages video and font RAM */ + } as_bfld; +} SEQ_RESET; + +/* Sequencer Clocking Mode Register. Index 1 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned still_not_used : 2, + screen_off : 1, /* YES - */ + shift4 : 1, /* YES - */ + dot_clock : 1, /* YES - distinguishes 40 or 80 chars */ + shift_load : 1, /* NO */ + not_used : 1, /* NO */ + eight_or_nine_dot_clocks : 1; /* NO - only for mono display */ + } as_bfld; +} CLOCKING_MODE; + +/* Sequencer Map Mask (Plane Mask) register. Index 2 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 4, + all_planes : 4; /* YES */ + } as_bfld; +} MAP_MASK; + +/* Sequencer Character Map Select register. Index 3 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 2, + ch_map_select_b_hi : 1, /* YES */ + ch_map_select_a_hi : 1, /* YES */ + character_map_select_b : 2, /* YES */ + character_map_select_a : 2; /* YES */ + } as_bfld; + struct { + unsigned not_used : 2, + map_selects : 6; /* YES */ + } character; +} CHAR_MAP_SELECT; + +/* Sequencer Memory Mode Register. Index 4 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned + not_used : 4, /* If above 2 not both 1, bank 0 set 2 */ + chain4 : 1, /* Chain all planes into 1 */ + not_odd_or_even : 1, /* YES (check consistency) */ + extended_memory : 1, /* NO - assume full 256K on board */ + still_not_used : 1; + } as_bfld; +} MEMORY_MODE; + +#ifdef V7VGA +/* Sequencer Extensions Control Register. Index 6 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned + not_used : 7, + extension_enable : 1; /* YES */ + } as_bfld; +} EXTN_CONTROL; +#endif /* V7VGA */ + +/* Graphics Controller Set/Reset register. Index 0 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 4, + set_or_reset : 4; /* YES - write mode 0 only */ + } as_bfld; +} SET_OR_RESET; + +/* Graphics Controller Enable Set/Reset register. Index 1 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 4, + enable_set_or_reset : 4; /* YES - write mode 0 only */ + } as_bfld; +} ENABLE_SET_OR_RESET; + +/* Graphics Controller Colo[u]r Compare register. Index 2 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 4, + color_compare : 4; /* YES - read mode 1 only */ + } as_bfld; +} COLOR_COMPARE; + +/* Graphics Controller Data Rotate register. Index 3 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 3, + function_select : 2, /* YES - write mode 0 only */ + rotate_count : 3; /* YES - write mode 0 only */ + } as_bfld; +} DATA_ROTATE; + +/* Graphics Controller Read Map Select register. Index 4 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 6, + map_select : 2; /* YES */ + } as_bfld; +} READ_MAP_SELECT; + +/* Graphics Controller Mode Register. Index 5 */ +typedef union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 1, /* YES */ + shift_register_mode : 2, /* YES */ + odd_or_even : 1, /* YES (check for consistency) */ + read_mode : 1, /* YES */ + test_condition : 1, /* NO */ + write_mode : 2; /* YES */ + } as_bfld; +} MODE; + +/* Graphics Controller Miscellaneous register. Index 6 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 4, + memory_map : 2, /* YES - location of EGA in M */ + odd_or_even : 1, /* YES (check consistency) */ + graphics_mode : 1; /* YES */ + } as_bfld; +} MISC_REG; + +/* Graphics Controller Colour Don't Care register. Index 7 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 4, + color_dont_care : 4; /* YES - read mode 1 only */ + } as_bfld; +} COLOR_DONT_CARE; + +/* Attribute Controller Mode register. Index 10 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned + select_video_bits : 1, /* YES */ + color_output_assembler : 1, /* from 256 colour mode */ + horiz_pan_mode : 1, /* NO */ + reserved : 1, + background_intensity_or_blink : 1, /* NO - never blink */ + enable_line_graphics_char_codes: 1, /* NO mono display only */ + display_type : 1, /* NO - always colour display */ + graphics_mode : 1; /* YES - with Sequencer Mode reg */ + } as_bfld; +} AC_MODE_CONTROL; + + +/* Attribute Controller Colour Plane Enable register. Index 12 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 2, + video_status_mux : 2, /* NO */ + color_plane_enable : 4; /* YES NB. affects attrs in text mode */ + } as_bfld; +} COLOR_PLANE_ENABLE; + +/* Attribute Controller Pixel Padding register. Index 14 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 4, + color_top_bits : 2, + color_mid_bits : 2; + } as_bfld; +} PIXEL_PAD; + +/* External Misc Output register. Address 3cc */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned horiz_vert_retrace_polarity : 2, /* YES - 200/350/480 lines */ + page_bit_odd_even : 1, /* NO - selects 32k page in odd/even?*/ + /* V7VGA - YES - used to select banks */ + not_used : 1, + clock_select : 2, /* YES - only for switch address */ + enable_ram : 1, /* YES - writes to display mem ignored */ + io_address_select : 1; /* NO - only used for mono screens */ + } as_bfld; + +} MISC_OUTPUT_REG; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 4, + reserved : 2, /* YES - ignore */ + feature_control : 2; /* NO - device not supported */ + } as_bfld; +} FEAT_CONT_REG; + +/* External Input Status Register 0. Address 3c2 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned crt_interrupt : 1, /* YES - sequence if not timing */ + reserved : 2, /* YES - all bits 1 */ + sense_pin : 1, /* NO */ + not_used : 4; /* YES - all bits 1 */ + } as_bfld; +} INPUT_STAT_REG0; + +/* External Input Status Register 1. Address 3da */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 4, + vertical_retrace : 1, /* YES - sequence only */ + still_not_used : 2, /* NO */ + display_enable : 1; /* YES - sequence only */ + } as_bfld; +} INPUT_STAT_REG1; + +#endif /* BIT_ORDER1 */ + +#ifdef BIT_ORDER2 +/* CRTC Mode Control Register. Index 0x17 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned compatibility_mode_support : 1, /* YES - CGA graphics banks */ + select_row_scan_counter : 1, /* NO */ + horizontal_retrace_select : 1, /* NO */ + count_by_two : 1, /* NO */ + not_used : 1, + address_wrap : 1, /* NO */ + word_or_byte_mode : 1, /* YES */ + hardware_reset : 1; /* NO */ + } as_bfld; +} MODE_CONTROL; + +/* CRTC Overflow Register. Index 7 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned vertical_total_bit_8 : 1, /* NO */ + vertical_display_enab_end_bit_8 : 1, /* YES */ + vertical_retrace_start_bit_8 : 1, /* NO */ + start_vertical_blank_bit_8 : 1, /* NO */ + line_compare_bit_8 : 1, /* YES */ + vertical_total_bit_9 : 1, /* NO */ + vertical_display_enab_end_bit_9 : 1, /* YES */ + vertical_retrace_start_bit_9 : 1; /* NO */ + } as_bfld; +} CRTC_OVERFLOW; + +/* CRTC Max Scan Line Register. Index 9 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned maximum_scan_line : 5, /* YES */ + start_vertical_blank_bit_9 : 1, /* NO */ + line_compare_bit_9 : 1, /* YES */ + double_scanning : 1; /* pixel height * 2 */ + } as_bfld; +} MAX_SCAN_LINE; + +/* CRTC Cursor Start Scan Line Register. Index A */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned cursor_start : 5, /* YES */ + cursor_off : 1, /* YES */ + not_used : 2; + } as_bfld; +} CURSOR_START; + +/* CRTC Cursor End Scan Line Register. Index B */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned cursor_end : 5, /* YES */ + cursor_skew_control : 2, /* NO */ + not_used : 1; + } as_bfld; +} CURSOR_END; + +/* Sequencer Reset Register. Index 0 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned asynchronous_reset : 1, /* NO - damages video and font RAM */ + synchronous_reset : 1, /* Ditto (could implement as enable_ram)*/ + not_used : 6; + } as_bfld; +} SEQ_RESET; + +/* Sequencer Clocking Mode Register. Index 1 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned eight_or_nine_dot_clocks : 1, /* NO - only for mono display */ + not_used : 1, /* NO */ + shift_load : 1, /* NO */ + dot_clock : 1, /* YES - distinguishes 40 or 80 chars */ + shift4 : 1, /* YES - */ + screen_off : 1, /* YES - */ + still_not_used : 2; + } as_bfld; +} CLOCKING_MODE; + +/* Sequencer Map Mask (Plane Mask) register. Index 2 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned all_planes : 4, /* YES */ + not_used : 4; + } as_bfld; +} MAP_MASK; + +/* Sequencer Character Map Select register. Index 3 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned character_map_select_a : 2, /* YES */ + character_map_select_b : 2, /* YES */ + ch_map_select_a_hi : 1, /* YES */ + ch_map_select_b_hi : 1, /* YES */ + not_used : 2; + } as_bfld; + struct { + unsigned map_selects : 6, /* YES */ + not_used : 2; + } character; +} CHAR_MAP_SELECT; + +/* Sequencer Memory Mode Register. Index 4 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned still_not_used : 1, + extended_memory : 1, /* NO - assume full 256K on board */ + not_odd_or_even : 1, /* YES (check consistency) */ + chain4 : 1, /* Chain all planes into 1 */ + not_used : 4; /* If above 2 not both 1, bank 0 set 2 */ + } as_bfld; +} MEMORY_MODE; + +#ifdef V7VGA +/* Sequencer Extensions Control Register. Index 6 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned + extension_enable : 1, /* YES */ + not_used : 7; + } as_bfld; +} EXTN_CONTROL; +#endif /* V7VGA */ + +/* Graphics Controller Set/Reset register. Index 0 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned set_or_reset : 4, /* YES - write mode 0 only */ + not_used : 4; + } as_bfld; +} SET_OR_RESET; + +/* Graphics Controller Enable Set/Reset register. Index 1 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned enable_set_or_reset : 4, /* YES - write mode 0 only */ + not_used : 4; + } as_bfld; +} ENABLE_SET_OR_RESET; + +/* Graphics Controller Colo[u]r Compare register. Index 2 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned color_compare : 4, /* YES - read mode 1 only */ + not_used : 4; + } as_bfld; +} COLOR_COMPARE; + +/* Graphics Controller Data Rotate register. Index 3 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned rotate_count : 3, /* YES - write mode 0 only */ + function_select : 2, /* YES - write mode 0 only */ + not_used : 3; + } as_bfld; +} DATA_ROTATE; + +/* Graphics Controller Read Map Select register. Index 4 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned map_select : 2, /* YES - read mode 0 only */ + not_used : 6; + } as_bfld; +} READ_MAP_SELECT; + +/* Graphics Controller Mode Register. Index 5 */ +typedef union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned write_mode : 2, /* YES */ + test_condition : 1, /* NO */ + read_mode : 1, /* YES */ + odd_or_even : 1, /* YES (check for consistency) */ + shift_register_mode : 2, /* YES */ + not_used : 1; /* YES */ + } as_bfld; +} MODE; + +/* Graphics Controller Miscellaneous register. Index 6 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned graphics_mode : 1, /* YES */ + odd_or_even : 1, /* YES (check consistency) */ + memory_map : 2, /* YES - location of EGA in M */ + not_used : 4; + } as_bfld; +} MISC_REG; + +/* Graphics Controller Colour Don't Care register. Index 7 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned color_dont_care : 4, /* YES - read mode 1 only */ + not_used : 4; + } as_bfld; +} COLOR_DONT_CARE; + +/* Attribute Controller Mode register. Index 10 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned graphics_mode : 1, /* YES - with Sequencer Mode reg */ + display_type : 1, /* NO - always colour display */ + enable_line_graphics_char_codes : 1, /* NO mono display only */ + background_intensity_or_blink : 1, /* NO - never blink */ + reserved : 1, + horiz_pan_mode : 1, /* NO */ + color_output_assembler : 1, /* from 256 colour mode */ + select_video_bits : 1; /* YES */ + } as_bfld; +} AC_MODE_CONTROL; + +/* Attribute Controller Colour Plane Enable register. Index 12 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned color_plane_enable : 4, /* YES NB. affects attrs in text mode */ + video_status_mux : 2, /* NO */ + not_used : 2; + } as_bfld; +} COLOR_PLANE_ENABLE; + +/* Attribute Controller Pixel Padding register. Index 14 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned color_mid_bits : 2, + color_top_bits : 2, + not_used : 4; + } as_bfld; +} PIXEL_PAD; + +/* External Misc Output register. Address 3cc */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned io_address_select : 1, /* NO - only used for mono screens */ + enable_ram : 1, /* YES - writes to display mem ignored */ + clock_select : 2, /* YES - only for switch address */ + not_used : 1, + page_bit_odd_even : 1, /* NO - selects 32k page in odd/even? */ + horiz_vert_retrace_polarity : 2; /* YES - 200/350/480 lines */ + } as_bfld; +} MISC_OUTPUT_REG; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned feature_control : 2, /* NO - device not supported */ + reserved : 2, /* YES - ignore */ + not_used : 4; + } as_bfld; +} FEAT_CONT_REG; + +/* External Input Status Register 0. Address 3c2 */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 4, /* YES - all bits 1 */ + sense_pin : 1, /* NO */ + reserved : 2, /* YES - all bits 1 */ + crt_interrupt : 1; /* YES - sequence if not timing */ + } as_bfld; +} INPUT_STAT_REG0; + +/* External Input Status Register 1. Address 3da */ +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned display_enable : 1, /* YES - sequence only */ + still_not_used : 2, /* NO */ + vertical_retrace : 1, /* YES - sequence only */ + not_used : 4; + } as_bfld; +} INPUT_STAT_REG1; +#endif /* BIT_ORDER2 */ + +/* The Sequencer Registers */ +#ifdef BIT_ORDER1 +struct sequencer +{ +#ifdef V7VGA + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned using_extensions : 1, + extensions_index : 4, + index : 3; + } as_bfld; + } address; +#else + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 5, + index : 3; + } as_bfld; + } address; +#endif /* V7VGA */ + + SEQ_RESET reset; + CLOCKING_MODE clocking_mode; + MAP_MASK map_mask; + CHAR_MAP_SELECT character_map_select; + MEMORY_MODE memory_mode; + +#ifdef V7VGA + EXTN_CONTROL extensions_control; +#endif /* V7VGA */ + +}; + + + +/* The CRT Controller Registers */ + +struct crt_controller +{ +#ifdef V7VGA + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 2, + index : 6; + } as_bfld; + } address; +#else + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 3, + index : 5; + } as_bfld; + } address; +#endif /* V7VGA */ + + byte horizontal_total; /* NO - screen trash if wrong value */ + byte horizontal_display_end; /* YES - defines line length!! */ + byte start_horizontal_blanking; /* NO */ + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 1, + display_enable_skew_control : 2, /* NO */ + end_blanking : 5; /* NO */ + } as_bfld; + } end_horizontal_blanking; + + byte start_horizontal_retrace; /* NO */ + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 1, + horizontal_retrace_delay : 2, /* NO */ + end_horizontal_retrace : 5; /* NO */ + } as_bfld; + } end_horizontal_retrace; + + byte vertical_total; /* NO */ + CRTC_OVERFLOW crtc_overflow; + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 1, + horiz_pan_lo : 2, + preset_row_scan : 5; /* NO */ + } as_bfld; + } preset_row_scan; + + MAX_SCAN_LINE maximum_scan_line; + CURSOR_START cursor_start; + CURSOR_END cursor_end; + byte start_address_high; /* YES */ + byte start_address_low; /* YES */ + byte cursor_location_high; /* YES */ + byte cursor_location_low; /* YES */ + byte vertical_retrace_start; /* NO */ + byte light_pen_high; /* NO */ + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned + crtc_protect : 1, + refresh_type : 1, + enable_vertical_interrupt : 1, /* YES */ + clear_vertical_interrupt : 1, /* YES */ + vertical_retrace_end : 4; /* NO */ + } as_bfld; + } vertical_retrace_end; + + unsigned short vertical_display_enable_end; /* YES - defines screen height - 10 bit */ + byte offset; /* ???? */ + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 1, + doubleword_mode : 1, /* YES */ + count_by_4 : 1, /* NO */ + underline_location : 5; /* NO (mono display only) */ + } as_bfld; + } underline_location; + + byte start_vertical_blanking; /* NO */ + byte end_vertical_blanking; /* NO */ + MODE_CONTROL mode_control; + unsigned short line_compare; /* YES,10 bits*/ + +} ; + + + +/* The Graphics Controller Registers */ + +struct graphics_controller +{ + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 4, + index : 4; + } as_bfld; + } address; + + SET_OR_RESET set_or_reset; + ENABLE_SET_OR_RESET enable_set_or_reset; + COLOR_COMPARE color_compare; + DATA_ROTATE data_rotate; + READ_MAP_SELECT read_map_select; + MODE mode; + MISC_REG miscellaneous; + COLOR_DONT_CARE color_dont_care; + byte bit_mask_register; /* YES - write modes 0 & 2 */ +}; + + + +/* The Attribute Controller Registers */ + +struct attribute_controller +{ +#ifdef V7VGA + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned index_state : 1, + unused : 1, + palette_address_source : 1, + index : 5; + } as_bfld; + } address; + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned + color_top_bits : 2, /* YES */ + secondary_red : 1, /* YES */ + secondary_green : 1, /* YES */ + secondary_blue : 1, /* YES */ + red : 1, /* YES */ + green : 1, /* YES */ + blue : 1; /* YES */ + } as_bfld; + } palette[EGA_PALETTE_SIZE]; +#else + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned unused : 2, + palette_address_source : 1, + index : 5; + } as_bfld; + } address; + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned + not_used : 2, /* YES */ + secondary_red : 1, /* YES */ + secondary_green : 1, /* YES */ + secondary_blue : 1, /* YES */ + red : 1, /* YES */ + green : 1, /* YES */ + blue : 1; /* YES */ + } as_bfld; + } palette[EGA_PALETTE_SIZE]; +#endif /* V7VGA */ + + AC_MODE_CONTROL mode_control; + +#ifdef V7VGA + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned color_top_bits : 2, /* YES */ + secondary_red_border : 1, /* YES */ + secondary_green_border : 1, /* YES */ + secondary_blue_border : 1, /* YES */ + red_border : 1, /* YES */ + green_border : 1, /* YES */ + blue_border : 1; /* YES */ + } as_bfld; + } overscan_color; +#else + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 2, + secondary_red_border : 1, /* YES */ + secondary_green_border : 1, /* YES */ + secondary_blue_border : 1, /* YES */ + red_border : 1, /* YES */ + green_border : 1, /* YES */ + blue_border : 1; /* YES */ + } as_bfld; + } overscan_color; +#endif /* V7VGA */ + + COLOR_PLANE_ENABLE color_plane_enable; + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 4, + horizontal_pel_panning : 4; /* NO */ + } as_bfld; + } horizontal_pel_panning; + + PIXEL_PAD pixel_padding; +}; + + +#ifdef V7VGA +/* The V7VGA Extension Registers */ + +struct extensions_controller +{ + byte pointer_pattern; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned not_used : 5, + ptr_horiz_position : 3; + } as_bfld; + } ptr_horiz_posn_hi; + + byte ptr_horiz_posn_lo; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned not_used : 6, + ptr_vert_position : 2; + } as_bfld; + } ptr_vert_posn_hi; + + byte ptr_vert_posn_lo; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned not_used : 3, + clock_select : 1, + unused : 4; + } as_bfld; + } clock_select; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned pointer_enable : 1, + not_used : 3, + cursor_mode : 1, + unused : 2, + cursor_blink_disable : 1; + } as_bfld; + } cursor_attrs; + + union { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned dummy : 7, + dac_8_bits : 1; + } as_bfld; + } dac_control; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned emulation_enable : 1, + hercules_bit_map : 1, + write_prot_2 : 1, + write_prot_1 : 1, + write_prot_0 : 1, + nmi_enable : 3; + } as_bfld; + } emulation_control; + + byte foreground_latch_0; + byte foreground_latch_1; + byte foreground_latch_2; + byte foreground_latch_3; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned not_used : 2, + fg_latch_load_state : 2, + unused : 2, + bg_latch_load_state : 2; + } as_bfld; + } fast_latch_load_state; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned unused : 6, + masked_write_source : 1, + masked_write_enable : 1; + } as_bfld; + } masked_write_control; + + byte masked_write_mask; + byte fg_bg_pattern; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned line_compare_bank_reset : 1, + counter_bank_enable : 1, + crtc_read_bank_select : 2, + cpu_read_bank_select : 2, + cpu_write_bank_select : 2; + } as_bfld; + } ram_bank_select; + + byte switch_readback; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned extended_clock_output: 3, + clock_3_on : 1, + external_clock_override : 1, + extended_clock_output_source : 1, + extended_clock_direction : 1, + clock_0_only : 1; + } as_bfld; + } clock_control; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned unused : 7, + extended_page_select : 1; + } as_bfld; + } page_select; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned unused : 4, + foreground_color : 4; + } as_bfld; + } foreground_color; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned unused : 4, + background_color : 4; + } as_bfld; + } background_color; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned internal_3c3_enable : 1, + extended_display_enable_skew : 1, + sequential_chain4 : 1, + sequential_chain : 1, + refresh_skew_control : 1, + extended_256_color_enable : 1, + extended_256_color_mode : 1, + extended_attribute_enable : 1; + } as_bfld; + } compatibility_control; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned graphics_8_dot_timing_state : 4, + text_8_dot_timing_state : 4; + } as_bfld; + } timing_select; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned not_used : 4, + fg_bg_mode : 2, + fg_bg_source : 1, + unused : 1; + } as_bfld; + } fg_bg_control; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned bus_status : 1, + pointer_bank_select : 2, + bank_enable : 1, + ROM_interface_enable : 1, + fast_write_enable : 1, + io_interface_enable : 1, + mem_interface_enable : 1; + } as_bfld; + } interface_control; +}; + +#endif /* V7VGA */ +#endif /* BIT_ORDER1 */ + +#ifdef BIT_ORDER2 +struct sequencer +{ +#ifdef V7VGA + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned + index : 3, + extensions_index : 4, + using_extensions : 1; + } as_bfld; + } address; +#else + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned + index : 3, + not_used : 5; + } as_bfld; + } address; +#endif /* V7VGA */ + + SEQ_RESET reset; + CLOCKING_MODE clocking_mode; + MAP_MASK map_mask; + CHAR_MAP_SELECT character_map_select; + MEMORY_MODE memory_mode; +#ifdef V7VGA + EXTN_CONTROL extensions_control; +#endif /* V7VGA */ + +}; + + +/* The CRT Controller Registers */ + +struct crt_controller +{ + +#ifdef V7VGA + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned + index : 6, + not_used : 2; + } as_bfld; + } address; +#else + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned + index : 5, + not_used : 3; + } as_bfld; + } address; +#endif /* V7VGA */ + + byte horizontal_total; /* NO - screen trash if wrong value */ + byte horizontal_display_end; /* YES - defines line length!! */ + byte start_horizontal_blanking; /* NO */ + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned end_blanking : 5, /* NO */ + display_enable_skew_control : 2, /* NO */ + not_used : 1; + } as_bfld; + } end_horizontal_blanking; + + byte start_horizontal_retrace; /* NO */ + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned end_horizontal_retrace : 5, /* NO */ + horizontal_retrace_delay : 2, /* NO */ + not_used : 1; + } as_bfld; + } end_horizontal_retrace; + + byte vertical_total; /* NO */ + CRTC_OVERFLOW crtc_overflow; + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned preset_row_scan : 5, /* NO */ + horiz_pan_lo : 2, + not_used : 1; + } as_bfld; + } preset_row_scan; + + MAX_SCAN_LINE maximum_scan_line; + CURSOR_START cursor_start; + CURSOR_END cursor_end; + byte start_address_high; /* YES */ + byte start_address_low; /* YES */ + byte cursor_location_high; /* YES */ + byte cursor_location_low; /* YES */ + byte vertical_retrace_start; /* NO */ + byte light_pen_high; /* NO */ + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned vertical_retrace_end : 4, /* NO */ + clear_vertical_interrupt : 1, /* YES */ + enable_vertical_interrupt : 1, /* YES */ + refresh_type : 1, + crtc_protect : 1; + } as_bfld; + } vertical_retrace_end; + + unsigned short vertical_display_enable_end; /* YES - defines screen height - 10 bit */ + byte offset; /* ???? */ + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned underline_location : 5, /* NO (mono display only) */ + count_by_4 : 1, /* NO */ + doubleword_mode : 1, /* YES */ + not_used : 1; + } as_bfld; + } underline_location; + + byte start_vertical_blanking; /* NO */ + byte end_vertical_blanking; /* NO */ + MODE_CONTROL mode_control; + byte line_compare; /* YES */ + +}; + + + +/* The Graphics Controller Registers */ + +struct graphics_controller +{ + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned index : 4, + not_used : 4; + } as_bfld; + } address; + + SET_OR_RESET set_or_reset; + ENABLE_SET_OR_RESET enable_set_or_reset; + COLOR_COMPARE color_compare; + DATA_ROTATE data_rotate; + READ_MAP_SELECT read_map_select; + MODE mode; + MISC_REG miscellaneous; + COLOR_DONT_CARE color_dont_care; + byte bit_mask_register; /* YES - write modes 0 & 2 */ +}; + + + +/* The Attribute Controller Registers */ + +struct attribute_controller +{ +#ifdef V7VGA + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned + index : 5, + palette_address_source : 1, + unused : 1, + index_state : 1; + } as_bfld; + } address; + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned + blue : 1, /* YES */ + green : 1, /* YES */ + red : 1, /* YES */ + secondary_blue : 1, /* YES */ + secondary_green : 1, /* YES */ + secondary_red : 1, /* YES */ + color_top_bits : 2; /* YES */ + } as_bfld; + } palette[EGA_PALETTE_SIZE]; +#else + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned + index : 5, + palette_address_source : 1, + unused : 2; + } as_bfld; + } address; + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned + blue : 1, /* YES */ + green : 1, /* YES */ + red : 1, /* YES */ + secondary_blue : 1, /* YES */ + secondary_green : 1, /* YES */ + secondary_red : 1, /* YES */ + not_used : 2; /* YES */ + } as_bfld; + } palette[EGA_PALETTE_SIZE]; +#endif /* V7VGA */ + + AC_MODE_CONTROL mode_control; + +#ifdef V7VGA + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned + blue_border : 1, /* YES */ + green_border : 1, /* YES */ + red_border : 1, /* YES */ + secondary_blue_border : 1, /* YES */ + secondary_green_border : 1, /* YES */ + secondary_red_border : 1, /* YES */ + color_top_bits : 2; /* YES */ + } as_bfld; + } overscan_color; +#else + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned + blue_border : 1, /* YES */ + green_border : 1, /* YES */ + red_border : 1, /* YES */ + secondary_blue_border : 1, /* YES */ + secondary_green_border : 1, /* YES */ + secondary_red_border : 1, /* YES */ + not_used : 2; + } as_bfld; + } overscan_color; +#endif /* V7VGA */ + + COLOR_PLANE_ENABLE color_plane_enable; + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned horizontal_pel_panning : 4, /* NO */ + not_used : 4; + } as_bfld; + } horizontal_pel_panning; + + PIXEL_PAD pixel_padding; +}; + + +#ifdef V7VGA +/* The V7VGA Extension Registers */ + +struct extensions_controller +{ + byte pointer_pattern; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned + ptr_horiz_position : 3, + not_used : 5; + } as_bfld; + } ptr_horiz_posn_hi; + + byte ptr_horiz_posn_lo; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned + ptr_vert_position : 2, + not_used : 6; + } as_bfld; + } ptr_vert_posn_hi; + + byte ptr_vert_posn_lo; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned + unused : 4, + clock_select : 1, + not_used : 3; + } as_bfld; + } clock_select; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned + cursor_blink_disable : 1, + unused : 2, + cursor_mode : 1, + not_used : 3, + pointer_enable : 1; + + } as_bfld; + } cursor_attrs; + + union { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned dac_8_bits : 1, + dummy : 7; + } as_bfld; + } dac_control; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned + nmi_enable : 3, + write_prot_0 : 1, + write_prot_1 : 1, + write_prot_2 : 1, + hercules_bit_map : 1, + emulation_enable : 1; + } as_bfld; + } emulation_control; + + byte foreground_latch_0; + byte foreground_latch_1; + byte foreground_latch_2; + byte foreground_latch_3; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned + bg_latch_load_state : 2, + unused : 2, + fg_latch_load_state : 2, + not_used : 2; + } as_bfld; + } fast_latch_load_state; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned + masked_write_enable : 1, + masked_write_source : 1, + unused : 6; + } as_bfld; + } masked_write_control; + + byte masked_write_mask; + byte fg_bg_pattern; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned + cpu_write_bank_select : 2, + cpu_read_bank_select : 2, + crtc_read_bank_select : 2, + counter_bank_enable : 1, + line_compare_bank_reset : 1; + } as_bfld; + } ram_bank_select; + + byte switch_readback; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned + clock_0_only : 1, + extended_clock_direction : 1, + extended_clock_output_source : 1, + external_clock_override : 1, + clock_3_on : 1, + extended_clock_output : 3; + } as_bfld; + } clock_control; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned + extended_page_select : 1, + unused : 7; + } as_bfld; + } page_select; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned + foreground_color : 4, + unused : 4; + } as_bfld; + } foreground_color; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned + background_color : 4, + unused : 4; + } as_bfld; + } background_color; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned + extended_attribute_enable : 1, + extended_256_color_mode : 1, + extended_256_color_enable : 1, + refresh_skew_control : 1, + sequential_chain : 1, + sequential_chain4 : 1, + extended_display_enable_skew : 1, + internal_3c3_enable : 1; + } as_bfld; + } compatibility_control; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned + text_8_dot_timing_state : 4, + graphics_8_dot_timing_state : 4; + } as_bfld; + } timing_select; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned + unused : 1, + fg_bg_source : 1, + fg_bg_mode : 2, + not_used : 4; + } as_bfld; + } fg_bg_control; + + union + { + struct + { + unsigned abyte : 8; + } as; + struct + { + unsigned + mem_interface_enable : 1, + io_interface_enable : 1, + fast_write_enable : 1, + ROM_interface_enable : 1, + bank_enable : 1, + pointer_bank_select : 2, + bus_status : 1; + } as_bfld; + } interface_control; +}; + +#endif /* V7VGA */ + +#endif /* BIT_ORDER2 */ + +#ifdef V7VGA +#ifdef CPU_40_STYLE +extern void set_v7_fg_latch_byte IPT2(IU8, index, IU8, value); +#define SET_FG_LATCH(n, val) set_v7_fg_latch_byte(n, val) +#else +#ifdef BIGEND +#define SET_FG_LATCH( n, val ) (*((UTINY *) &fg_latches + (n)) = value ) +#endif /* BIGEND */ +#ifdef LITTLEND +#define SET_FG_LATCH( n, val ) (*((UTINY *) &fg_latches + (3 - n)) = value ) +#endif /* LITTLEND */ +#endif /* CPU_40_STYLE */ +#endif /* V7VGA */ + +#ifdef GISP_SVGA +void mapRealIOPorts IPT0( ); +void mapEmulatedIOPorts IPT0( ); +#endif /* GISP_SVGA */ + +/* Global data structures to import into modules + */ +IMPORT MISC_OUTPUT_REG miscellaneous_output_register; +IMPORT FEAT_CONT_REG feature_control_register; +IMPORT INPUT_STAT_REG0 input_status_register_zero; +IMPORT INPUT_STAT_REG1 input_status_register_one; + +IMPORT VOID init_vga_globals IPT0(); +IMPORT VOID ega_mode_init IPT0(); +IMPORT VOID enable_gfx_update_routines IPT0(); +IMPORT VOID disable_gfx_update_routines IPT0(); + +#ifndef cursor_changed +IMPORT VOID cursor_changed IPT2(int, x, int, y); +#endif +IMPORT VOID update_shift_count IPT0(); + +#ifdef V7VGA +IMPORT struct extensions_controller extensions_controller; +#endif /* V7VGA */ +IMPORT struct crt_controller crt_controller; +IMPORT struct sequencer sequencer; +IMPORT struct attribute_controller attribute_controller; +IMPORT struct graphics_controller graphics_controller; + +/* + 31.3.92 MG The video-7 VGA has an undocumented ability to support either + 6 or 8 bits of data in the palette. To support this we store the number` + of bits in the DAC_data_bits variable so that the routines which stuff + the data onto the screen know how much to output. +*/ + +IMPORT byte DAC_data_mask; +#ifdef V7VGA +IMPORT int DAC_data_bits; +#endif + +#endif /* VGG */ diff --git a/private/mvdm/softpc.new/base/inc/vgastate.h b/private/mvdm/softpc.new/base/inc/vgastate.h new file mode 100644 index 000000000..e8e038d54 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/vgastate.h @@ -0,0 +1,171 @@ + +/*[ + * + * File : vgastate.h + * + * Derived from: (original) + * + * Purpose : Definition of data types/constants to save and restore the + * (internal) state of a VGA card. + * + * Author : Rog + * Date : 25 November 1992 + * + * SCCS Gumph : @(#)vgastate.h 1.1 08/06/93 + * + * (c) Copyright Insignia Solutions Ltd., 1992 All rights reserved + * + * Modifications : + * +]*/ + +#ifndef _VGASTATE_H_ +#define _VGASTATE_H_ + +/*( + * + * typedef : vgastate structure + * + * purpose : provides storage for all the registers and data associated with + * any (S)VGA card + * + * Format : The first part of the structure is a header consisting of arrays + * for all the standard VGA registers. There is also an array to + * hold the values of the IO ports between 0x3b0 and 0x3e0 (a VGA + * uses 3ba-3cc) + * There is then a set of sizes of and pointers to arrays to hold + * data contained in any extra registers added to the standard set + * for SVGA cards and a general extra data area. + * Finally there is a field for the size of the planes and an array + * of pointers to copies of the plane data. + * + * All this data is held starting at the last field in the + * structure (Data[]) + * + * Pointers should be NULL if they do not point to valid data + * + * Total size of data will be + * sizeof( VGAState ) + extendSequencerSize + extendCRTSize + * + extendGraphSize + extendAttrSize + extendDACSize + * + miscDataSize + ( 4 * planeSize ) +)*/ + +typedef struct +{ + unsigned char ioPorts[ 0x30 ]; /* IO Ports 3B0 - 3E0 */ + unsigned char sequencerData[ 5 ]; /* Sequencer registers */ + unsigned char CRTContData[ 24 ]; /* CRT Controller registers */ + unsigned char graphContData[ 9 ]; /* Graphics controller regs */ + unsigned char attrContData[ 15 ]; /* Attribute Controller regs */ + unsigned char DACData[ 3 * 256 ]; /* Data values from PEL Data reg */ + unsigned int latch; /* 32 bit data latch register */ + unsigned int extendSequencerSize; /* size in bytes of extra sequencer data */ + unsigned char * extendSequencerData; /* pointer to extra sequencer regs */ + unsigned int extendCRTSize; /* size in bytes of extra CRT data */ + unsigned char * extendCRTData; /* Pointer to extra CRT controller regs */ + unsigned int extendGraphSize; /* size in bytes of extra graph cont data */ + unsigned char * extendGraphData; /* pointer to extra Graph controller data */ + unsigned int extendAttrSize; /* size in bytes of extra attr cont data */ + unsigned char * extendAttrData; /* pointer to extra attribute cont data */ + unsigned int extendDACSize; /* size in bytes of extra sequencer data */ + unsigned char * extendDACData; /* Pointer to extra DAC data */ + unsigned int miscDataSize; /* Any other random junk */ + unsigned char * miscData; + unsigned int planeSize; /* Size in bytes of each plane */ + unsigned char * planeData[ 4 ]; /* Pointers to copies of plane data */ + unsigned char data[ 1 ]; /* Data holder */ + +} VGAState , *pVGAState; + + +/* Macros for gettting at the register values in the IoPort array */ + +#define miscOutputWrite ioPorts[ 0x12 ] +#define miscOutputRead ioPorts[ 0x1C ] +#define EGAFeatureContWrite ioPorts[ 0x2A ] +#define VGAFeatureContWrite ioPorts[ 0x0A ] +#define featureContRead ioPorts[ 0x1A ] +#define inputStat0 ioPorts[ 0x12 ] +#define colourInputStat1 ioPorts[ 0x2A ] +#define monoInputStat1 ioPorts[ 0x0A ] +#define sequencerIndex ioPorts[ 0x14 ] +#define sequencer ioPorts[ 0x15 ] +#define CRTIndexEGA ioPorts[ 0x24 ] +#define CRTIndexVGA ioPorts[ 0x04 ] +#define graphContIndex ioPorts[ 0x1E ] +#define graphCont ioPorts[ 0x1F ] +#define attrContIndexWrite ioPorts[ 0x10 ] +#define attrContIndexRead ioPorts[ 0x11 ] +#define attrCont ioPorts[ 0x1F ] +#define PELAddrWriteMode ioPorts[ 0x18 ] +#define PELAddrReadMode ioPorts[ 0x17 ] +#define PELData ioPorts[ 0x19 ] +#define DACState ioPorts[ 0x17 ] +#define PELMask ioPorts[ 0x16 ] + +/* Macros for the Sequencer Registers */ +#define seqReset sequencerData[ 0 ] +#define seqClockMode sequencerData[ 1 ] +#define seqMapMask sequencerData[ 2 ] +#define seqCharMapSel sequencerData[ 3 ] +#define seqMemMode sequencerData[ 4 ] + +/* Macros for the CRT controller registers */ + +#define horizTotal CRTContData[ 0 ] +#define horizDisplayEnd CRTContData[ 1 ] +#define startHorizBlank CRTContData[ 2 ] +#define endHorizBlank CRTContData[ 3 ] +#define startHorizRetrace CRTContData[ 4 ] +#define endHorizRetrace CRTContData[ 5 ] +#define vertTotal CRTContData[ 6 ] +#define overflow CRTContData[ 7 ] +#define presetRowScan CRTContData[ 8 ] +#define maxScanLine CRTContData[ 9 ] +#define cursorStart CRTContData[ 10 ] +#define startAddressHigh CRTContData[ 11 ] +#define startAddressLow CRTContData[ 12 ] +#define cursLocHigh CRTContData[ 13 ] +#define cursLocLow CRTContData[ 14 ] +#define vertRetStart CRTContData[ 15 ] +#define vertRetEnd CRTContData[ 16 ] +#define vertDisplayEnd CRTContData[ 17 ] +#define CRToffset CRTContData[ 18 ] +#define underlineLoc CRTContData[ 19 ] +#define startVertBlank CRTContData[ 20 ] +#define endVertBlank CRTContData[ 21 ] +#define CRTModeControl CRTContData[ 22 ] +#define lineCompare CRTContData[ 23 ] + +/* Macros for Graphics Controller */ + +#define setReset graphContData[ 0 ] +#define enableSetReset graphContData[ 1 ] +#define colourCompare graphContData[ 2 ] +#define dataRotate graphContData[ 3 ] +#define readMapSelect graphContData[ 4 ] +#define GCmode graphContData[ 5 ] +#define GCmisc graphContData[ 6 ] +#define CDC graphContData[ 7 ] +#define GCBitMask graphContData[ 8 ] + +/* The Attribute controller registers */ + +#define Palette AttrContData /* POINTER ! */ +#define AttrModeControl AttrContData[ 16 ] +#define OverscanColour AttrContData[ 17 ] +#define ColourPlaneEnable AttrContData[ 18 ] +#define HorizPixPan AttrContData[ 19 ] +#define ColourSelect AttrContData[ 20 ] + + + +/* Numbers of the various Registers in the Standard VGA Emulation */ + +#define NUM_SEQ_REGS 5 +#define NUM_CRT_REGS 24 +#define NUM_GRAPH_REGS 9 +#define NUM_ATT_REGS 15 +#define DAC_ENTRIES 3 * 256 + +#endif /* _VGASTATE_H_ */ diff --git a/private/mvdm/softpc.new/base/inc/video.h b/private/mvdm/softpc.new/base/inc/video.h new file mode 100644 index 000000000..8e77c6129 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/video.h @@ -0,0 +1,278 @@ +/* SccsID @(#)video.h 1.24 08/19/94 Copyright Insignia Solutions Inc. */ + +/* + * M6845 video chip registers + */ + +#define R10_CURS_START 10 +#define R11_CURS_END 11 +#define CGA_R12_START_ADDRH 12 +#define CGA_R13_START_ADDRL 13 +#define R14_CURS_ADDRH 14 +#define R15_CURS_ADDRL 15 + +#define M6845_INDEX_REG (vd_addr_6845) +#define M6845_DATA_REG (vd_addr_6845 + 1) +#define M6845_MODE_REG (vd_addr_6845 + 4) + +/* + * The individual colour adaptor registers + */ + + +/* + * The clear character defines + */ + +#define VD_CLEAR_TEXT ((7 << 8) | ' ') +#define VD_CLEAR_GRAPHICS 0 + + +/* + * 'tidy' define for operations on graphics memory which is stored in two banks: + * of odd & even scan lines. + */ +#define ODD_OFF 0x2000 /* offset of odd graphics bank from even */ +#define SCAN_CHAR_HEIGHT 8 /* no scanlines spanned by graphics char */ + +/* 4 full scanlines is the (offset/size) of one text line PER bank */ +#define ONELINEOFF 320 + + +/* + * The control character defines + */ + +#define VD_BS 0x8 /* Backspace */ +#define VD_CR 0xD /* Return */ +#define VD_LF 0xA /* Line feed */ +#define VD_BEL 0x7 /* Bell */ + +/* + * Sound system defines + */ + +#define BEEP_LENGTH 500000L /* 1/2 second beep */ + +/* + * intel memory position defines for data stored in bios variables + */ + +#define vd_video_mode 0x449 +#define VID_COLS 0x44A /* vd_cols_on_screen */ +#define VID_LEN 0x44C /* vd_crt_len */ +#define VID_ADDR 0x44E /* vd_crt_start */ +#define VID_CURPOS 0x450 /* cursor table 8 pages */ +#define VID_CURMOD 0x460 /* vd_cursor_mode */ +#define vd_current_page 0x462 +#define VID_INDEX 0x463 /* vd_addr_6845 */ +#define vd_crt_mode 0x465 +#define vd_crt_palette 0x466 + +#ifdef EGG +#define vd_rows_on_screen 0x484 +#else +#define vd_rows_on_screen 24 /* Never changes */ +#endif + +extern IU8 Video_mode; /* Shadow copy of BIOS video mode */ + +/* Where the BIOS thinks the display is in memory */ +IMPORT sys_addr video_pc_low_regen,video_pc_high_regen; + +/* useful defines to get at the current cursor position */ +#define current_cursor_col VID_CURPOS+2*sas_hw_at_no_check(vd_current_page) +#define current_cursor_row VID_CURPOS+2*sas_hw_at_no_check(vd_current_page)+1 + +#define NO_OF_M6845_REGISTERS 16 + +#define CHARS_IN_GEN 128 /* length of gen tables */ +#define CHAR_MAP_SIZE 8 /* no. of bytes for one character in font */ + + + +/* + * The function jump table for the video routines. The video_io() function + * uses this to route calls on the AH register + */ +IMPORT void vd_set_mode IPT0(); +IMPORT void vd_set_cursor_mode IPT0(); +IMPORT void vd_set_cursor_position IPT0(); +IMPORT void vd_get_cursor_position IPT0(); +IMPORT void vd_get_light_pen IPT0(); +IMPORT void vd_set_active_page IPT0(); +IMPORT void vd_scroll_up IPT0(), vd_scroll_down IPT0(); +IMPORT void vd_read_attrib_char IPT0(), vd_write_char_attrib IPT0(); +IMPORT void vd_write_char IPT0(); +IMPORT void vd_set_colour_palette IPT0(); +IMPORT void vd_read_dot IPT0(), vd_write_dot IPT0(); +IMPORT void vd_write_teletype IPT0(); +IMPORT void vd_get_mode IPT0(); +IMPORT void vd_write_string IPT0(); + + +IMPORT void video_init IPT0(); +IMPORT void ega_video_init IPT0(); +IMPORT void ega_video_io IPT0(); +IMPORT void ega_graphics_write_char IPT6(int, i, int, j, int, k, int, l, int, m, int, n); +IMPORT void ega_write_dot IPT4(int, i, int, j, int, k, int , l); +IMPORT void ega_sensible_graph_scroll_up IPT6(int, i, int, j, int, k, int, l, int, m, int, n); +IMPORT void ega_sensible_graph_scroll_down IPT6(int, i, int, j, int, k, int, l, int, m, int, n); +IMPORT void ega_read_attrib_char IPT3(int, i, int, j ,int, k); +IMPORT void ega_read_attrib_dot IPT3(int, i, int, j ,int, k); +IMPORT void search_font IPT2(char *, ptr, int, i); + +#ifdef VGG +IMPORT void not_imp IPT0(); +#endif + +#ifdef VGG +IMPORT void vga_disp_comb IPT0(); +IMPORT void vga_disp_func IPT0(); +IMPORT void vga_int_1C IPT0(); +#endif + +/* offsets into video_func */ +#ifdef VGG +#define EGA_FUNC_SIZE 0x1D +#else +#define EGA_FUNC_SIZE 0x14 +#endif +#define CGA_FUNC_SIZE 0x14 + +#define SET_MODE 0 +#ifdef EGG +#define SET_EGA_PALETTE 0x10 +#define CHAR_GEN 0x11 +#define ALT_SELECT 0x12 +#define WRITE_STRING 0x13 +#endif + +IMPORT void (*video_func[]) (); + +/* + * The following table specifies data for the supported video + * modes - ie 80x25 A/N and 640x200 APA. It is indexed via the video + * mode variable and a value of VD_BAD_MODE indicates that the given + * video mode is not supported. + */ + +typedef struct { + sys_addr start_addr; + sys_addr end_addr; + word clear_char; + half_word mode_control_val; + half_word mode_screen_cols; + word ncols; + half_word npages; + } MODE_ENTRY; + +#define VD_BAD_MODE 1 +#define VIDEO_ENABLE 0x8 /* enable bit in mode byte */ + +IMPORT MODE_ENTRY vd_mode_table[]; +#ifdef V7VGA +IMPORT MODE_ENTRY vd_ext_text_table[]; +IMPORT MODE_ENTRY vd_ext_graph_table[]; +#endif /* V7VGA */ + +#ifdef V7VGA +#define VD_MAX_MODE 0x69 +#else +#define VD_MAX_MODE (sizeof(vd_mode_table)/sizeof(MODE_ENTRY)) +#endif + +/* + * Mode macros to distinguish between alphanumeric & graphics video modes + */ + +#define alpha_num_mode() (sas_hw_at_no_check(vd_video_mode) < 4 || sas_hw_at_no_check(vd_video_mode) == 7) +#define global_alpha_num_mode() ((Video_mode < 4) || (Video_mode == 7)) +#ifdef EGG +#ifdef V7VGA +#define ega_mode() (((sas_hw_at_no_check(vd_video_mode) > 7) && \ + (sas_hw_at_no_check(vd_video_mode) < 19)) || \ + ((sas_hw_at_no_check(vd_video_mode) >= 0x14) && \ + (sas_hw_at_no_check(vd_video_mode) < 0x1a))) +#else +#define ega_mode() ((sas_hw_at_no_check(vd_video_mode) > 7) && \ + (sas_hw_at_no_check(vd_video_mode) < 19)) +#endif /* V7VGA */ +#endif + +#ifdef VGG +#ifdef V7VGA +#define vga_256_mode() (sas_hw_at_no_check(vd_video_mode) == 19 || (sas_hw_at_no_check(vd_video_mode) > 0x19 && sas_hw_at_no_check(vd_video_mode) < 0x1e)) +#else +#define vga_256_mode() (sas_hw_at_no_check(vd_video_mode) == 19) +#endif /* V7VGA */ +#endif /* VGG */ + +/* + * Macro to check validity of new video mode + */ +IMPORT unsigned char valid_modes[]; + +#define NO_MODES 0 +#define MDA_MODE (1<<0) +#define CGA_MODE (1<<1) +#define CGA_MONO_MODE (1<<2) +#define EGA_MODE (1<<3) +#define HERCULES_MODE (1<<4) +#define VGA_MODE (1<<5) +#define ALL_MODES (MDA_MODE|CGA_MODE|CGA_MONO_MODE|EGA_MODE|HERCULES_MODE|VGA_MODE) + +#define is_bad_vid_mode(nm) \ +( \ + ((nm&0x7F) < 0) || \ + ((nm&0x7F) > 19) || \ + ((video_adapter == MDA) && !(valid_modes[(nm&0x7F)]&MDA_MODE)) || \ + ((video_adapter == CGA) && !(valid_modes[(nm&0x7F)]&CGA_MODE)) || \ + ((video_adapter == CGA_MONO) && !(valid_modes[(nm&0x7F)]&CGA_MONO_MODE)) || \ + ((video_adapter == EGA) && !(valid_modes[(nm&0x7F)]&EGA_MODE)) || \ + ((video_adapter == VGA) && !(valid_modes[(nm&0x7F)]&VGA_MODE)) || \ + ((video_adapter == HERCULES) && !(valid_modes[(nm&0x7F)]&HERCULES_MODE)) \ +) + +#ifdef V7VGA +#define is_v7vga_mode(nm) ((nm >= 0x40 && nm <= 0x45) || (nm >= 0x60 && nm <= 0x69)) +#else +#define is_v7vga_mode(nm) (FALSE) +#endif /* V7VGA */ + +IMPORT VOID (*bios_ch2_byte_wrt_fn) IPT2(ULONG, ch_attr, ULONG, ch_addr); +IMPORT VOID (*bios_ch2_word_wrt_fn) IPT2(ULONG, ch_attr, ULONG, ch_addr); + +IMPORT VOID simple_bios_byte_wrt IPT2(ULONG, ch_attr, ULONG, ch_addr); +IMPORT VOID simple_bios_word_wrt IPT2(ULONG, ch_attr, ULONG, ch_addr); + +#ifdef VGG +IMPORT VOID vga_sensible_graph_scroll_up IPT6( LONG, row, LONG, col, LONG, rowsdiff, LONG, colsdiff, LONG, lines, LONG, attr); + +IMPORT VOID vga_sensible_graph_scroll_down IPT6( LONG, row, LONG, col, LONG, rowsdiff, LONG, colsdiff, LONG, lines, LONG, attr); + +IMPORT VOID vga_graphics_write_char IPT6( LONG, col, LONG, row, LONG, ch, IU8, colour, LONG, page, LONG, nchs); + +IMPORT VOID vga_read_attrib_char IPT3(LONG, col, LONG, row, LONG, page); +IMPORT VOID vga_read_dot IPT3(LONG, page, LONG, pixcol, LONG, row); +IMPORT VOID vga_write_dot IPT4(LONG, colour, LONG, page, LONG, pixcol, LONG, row); + +#endif + +#ifdef NTVDM +/* this is the stream io buffer size used on RISC machines. + * On X86, the size is determined by spckbd.asm + */ +#define STREAM_IO_BUFFER_SIZE_32 82 +IMPORT void disable_stream_io(void); +IMPORT void host_enable_stream_io(void); +IMPORT void host_disable_stream_io(void); +IMPORT half_word * stream_io_buffer; +IMPORT word * stream_io_dirty_count_ptr; +IMPORT word stream_io_buffer_size; +IMPORT boolean stream_io_enabled; +#ifdef MONITOR +IMPORT sys_addr stream_io_bios_busy_sysaddr; +#endif /* MONITOR */ + +#endif /* NTVDM */ diff --git a/private/mvdm/softpc.new/base/inc/virtual.h b/private/mvdm/softpc.new/base/inc/virtual.h new file mode 100644 index 000000000..25a8f0e58 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/virtual.h @@ -0,0 +1,54 @@ +/* + * + * Title : virtual.h Virtual Machine support for Windows 3.x. + * + */ + +/* SccsID[]="@(#)virtual.h 1.3 05/10/95 Copyright Insignia Solutions Ltd."; */ + +/* + * ============================================================================ + * Structure/Data definitions + * ============================================================================ + */ + +/* Creation and Termination Callback prototypes */ +typedef void (*NIDDB_CR_CALLBACK) IPT1(IHP *, orig_handle); +typedef void (*NIDDB_TM_CALLBACK) IPT0(); + + +/* + * ============================================================================ + * External declarations + * ============================================================================ + */ + +/* Allocate per Virtual Machine data area for Device Driver. */ +GLOBAL IHP *NIDDB_Allocate_Instance_Data IPT3 + ( + int, size, /* Size(in bytes) of data area reqd. */ + NIDDB_CR_CALLBACK, create_cb, /* create callback, 0 if not reqd. */ + NIDDB_TM_CALLBACK, terminate_cb /* terminate callback, 0 if not reqd. */ + ); + +/* Deallocate per Virtual Machine data area for Device Driver. */ +GLOBAL void NIDDB_Deallocate_Instance_Data IPT1 + ( + IHP *, handle /* Handle to data area */ + ); + +/* Inform NIDDB Manager about System reboot */ +GLOBAL void NIDDB_System_Reboot IPT0(); + +/* + Entry point from Windows 386 Virtual Device Driver (INSIGNIA.386). + Provide virtualising services as required. + */ +GLOBAL void virtual_device_trap IPT0(); + +/* Ensure correct instance in place for Device Drivers. */ +/* Called by BOP handler(bios.c) for any Device Driver BOP. */ +GLOBAL void virtual_swap_instance IPT0(); + +/* Indicate if NIDDB is active */ +GLOBAL IBOOL NIDDB_is_active IPT0(); diff --git a/private/mvdm/softpc.new/base/inc/winfiles.h b/private/mvdm/softpc.new/base/inc/winfiles.h new file mode 100644 index 000000000..8cd0e384d --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/winfiles.h @@ -0,0 +1,50 @@ +/* + * File : winfiles.h + * Used : Interfaces provided by winfiles.c plus local macros + * Author : Mike Moreton + * SccsId : @(#)winfiles.h 1.2 05/03/94 (C)1993 Insignia Solutions Ltd. + */ + +#ifdef SWIN_HFX + +#define FILE_CREATE 0x3c +#define FILE_OPEN 0x3d +#define FILE_CLOSE 0x3e +#define FILE_READ 0x3f +#define FILE_WRITE 0x40 +#define FILE_DEL 0x41 +#define FILE_LSEEK 0x42 +#define FILE_DUPH 0x45 +#define FILE_FDUPH 0x46 +#define CREATE_CHILD_PSP 0x55 +#define FILE_DATETIME 0x57 +#define FILE_LOCKUNLOCK 0x5c +#define FILE_COMMIT 0x68 +#define FILE_EXOPEN 0x6c + +/* + * Bit set in AL during file open to indicate that the open file + * handle should not be inherited by child processes. + */ + +#define NO_INHERIT 0x80 + +/* + * seek requests + */ +#define F_SEEK_START 0x0 +#define F_SEEK_REL 0x1 +#define F_SEEK_END 0x2 + +extern void SwinHfxReset IPT0(); +extern void SwinHfxTaskTerm IPT0(); +extern void SwinRedirector IPT0(); +extern void SwinFileOpened IPT0(); +extern void SwinHugeIo IPT0(); +extern void SwinHfxOpen IPT3(sys_addr, sftEa, IU16, date, IU16, time); +extern IBOOL SwinHfxClose IPT3(IU16, fd, IU16 *, date, IU16 *, time); + +extern IBOOL SwinHfxActive; +extern IBOOL SwinFilePreOpened; + +#endif /* SOFTWIN_HFX */ diff --git a/private/mvdm/softpc.new/base/inc/winhelp.h b/private/mvdm/softpc.new/base/inc/winhelp.h new file mode 100644 index 000000000..6e426ed73 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/winhelp.h @@ -0,0 +1,89 @@ +/*( + * ============================================================================ + * + * Name: WinHelp.h + * + * Derived From: Bristol's version of this file. Slightly modified + * by Barry McIntosh. + * + * Created: July 1994 + * + * SCCS ID: @(#)WinHelp.h 1.1 07/13/94 + * + * Purpose: Defines the interface to the WinHelp() function. + * Note that non-Insignia types are used, as this is + * an interface to a third-party function. + * + * ============================================================================ +)*/ + +#ifdef HOST_HELP + +/* +** Bristol Technology Incorporated +** 241 Ethan Allen Highway, Ridgefield, Connecticut 06877 +** +** Copyright (c) 1990,1991,1992,1993 Bristol Technology Inc. +** Property of Bristol Technology Inc. +** All rights reserved. +** +** File: WinHelp.h +** +** Description: Defines for WinHelp.c +** +*/ + +#ifndef WIN_HELP_INCLUDED +#define WIN_HELP_INCLUDED + +/* Commands to pass WinHelp() */ +#define HELP_CONTEXT 0x0001 /* Display topic in ulTopic */ +#define HELP_QUIT 0x0002 /* Terminate help */ +#define HELP_INDEX 0x0003 /* Display index (Kept for compatibility) */ +#define HELP_CONTENTS 0x0003 /* Display index */ +#define HELP_HELPONHELP 0x0004 /* Display help on using help */ +#define HELP_SETINDEX 0x0005 /* Set the current Index for multi index help */ +#define HELP_SETCONTENTS 0x0005 /* Set the current Index for multi index help */ +#define HELP_CONTEXTPOPUP 0x0008 +#define HELP_FORCEFILE 0x0009 +#define HELP_KEY 0x0101 /* Display topic for keyword in offabData */ +#define HELP_MULTIKEY 0x0201 +#define HELP_COMMAND 0x0102 +#define HELP_PARTIALKEY 0x0105 +#define HELP_SETWINPOS 0x0203 + +/* bristol extensions */ +#define HELP_MINIMIZE 0x1000 +#define HELP_MAXIMIZE 0x1001 +#define HELP_RESTORE 0x1002 + +extern void WinHelp IPT4(Display *, hWnd, + char *, lpHelpFile, + unsigned short, wCommand, + unsigned long, dwData); + +/* + * HH comm structs + */ +#define HHATOMNAME "HyperHelpAtom" + +typedef struct _HHInstance { + int pid; /*Parent id*/ + unsigned long HHWindow; /*Filled by HH upon invocation*/ + unsigned long ClientWindow; /*Optional (future HH to client communication link)*/ + int bServer; /*Viewer Mode*/ + char data[1024]; +#ifdef dec3000 + unsigned long filler[2]; + int filler2[2]; +#endif +} HHInstance_t; + +#define MAX_HHINSTANCES 5 +typedef struct _HHServerData { + int nItems; + struct _HHInstance HHInstance[MAX_HHINSTANCES]; +} HHServerData_t; + +#endif /*WIN_HELP_INCLUDED*/ +#endif /* HOST_HELP */ diff --git a/private/mvdm/softpc.new/base/inc/worm.h b/private/mvdm/softpc.new/base/inc/worm.h new file mode 100644 index 000000000..5e6497b43 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/worm.h @@ -0,0 +1,115 @@ +/* + * SoftPC Revision 2.0 + * + * Title : WORM module definitions + * + * Description : Definitions for users of the WORM module + * + * Author : Daniel Hannigan + * + * Notes : None + */ + +/* SccsID[]="@(#)worm.h 1.3 08/10/92 Copyright Insignia Solutions Ltd."; */ + +extern half_word *gen_mode_buf; +extern half_word *mode_page; +extern half_word *vendor_id; +extern word *driver_cmd_ptr; +extern word driver_cmd; +extern half_word *sense_byte_ptr; /* additional sense byte */ +extern word *op_drv_array; /* drive control blocks */ +extern word *flag_word_ptr; + + +/* + * taken from Storage Dimensions asm file OBIOS.H + * + * the function codes for the optical primitives. + */ +#define OPTO_TEST 0 +#define OPTO_REZERO 1 +#define OPTO_INIT 2 +#define OPTO_RD_ERR 3 +#define OPTO_FMT_DRV 4 +#define OPTO_ROM_ID 5 +#define OPTO_READ 8 +#define OPTO_WRITE 0x0a +#define OPTO_SEEK 0x0b +#define OPTO_INQUIRY 0x12 +#define OPTO_MOD_SEL 0x15 +#define OPTO_MOD_SENSE 0x1a +#define OPTO_REC_DIAG 0x1c +#define OPTO_SEND_DIAG 0x1d +#define OPTO_MED_REMOVE 0x1e + +#define MED_REM_ALLOW 0 +#define MED_REM_PREV 1 + + +/* + * DOS error codes + */ + +#define NO_ERR 0xff + +#define WRITE_PROTECT 0 +#define INVALID_UNIT 1 +#define DEV_NOT_READY 2 +#define BAD_COMMAND 3 +#define CRC_ERROR 4 +#define GEN_FAIL 12 +#define MEDIA_CHANGE 15 +#define SEC_NOT_WRITTEN 26 +#define NO_CARTRIDGE 28 + +/* + * DOS device driver command codes + */ + +#define INIT 0 +#define MEDIA_CHECK 1 +#define BUILD_BPB 2 +#define IOCTL 3 + +/* + * more DOS defines + */ + +#define NO_ERROR 0 +#define FALSE 0 + +#define DOS_WRITE_PROT 0 +#define DOS_UKNWN_UNIT 1 +#define DOS_DRIVE_NRDY 2 +#define DOS_UKNWN_CMD 3 +#define DOS_CRC_ERROR 4 +#define DOS_CMD_LENGTH 5 +#define DOS_SEEK_ERROR 6 +#define DOS_UNKWN_MED 7 +#define DOS_SECT_NFND 8 +#define INVALID_SENSE 9 +#define DOS_WRITE_FLT 10 +#define DOS_READ_FLT 11 +#define DOS_GEN_FAIL 12 +#define DOS_INVLD_DISK 15 + +#define BAD_COMMAND 3 + +/* + * OP_DRV_BLK - the current state of a mounted drive + */ +#define SIZE_OP_DRV_BLK 59 /* size of OP_DRV_BLK */ + +#define OFFSET_OP_DRV_PUN 0 /* phys unit ( 1-4 valid ) */ +#define OFFSET_OP_DRV_FLG 1 + +#ifdef ANSI +extern void worm_io (); +extern void worm_init (); +extern int enq_worm (); +#else +extern void worm_io (); +extern void worm_init (); +extern int enq_worm (); +#endif diff --git a/private/mvdm/softpc.new/base/inc/xt.h b/private/mvdm/softpc.new/base/inc/xt.h new file mode 100644 index 000000000..3ab2c55ff --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/xt.h @@ -0,0 +1,165 @@ +#ifndef _XT_H +#define _XT_H +/*[ + Name: xt.h + Derived From: VPC-XT Revision 1.0 (xt.h) + Author: Henry Nash + Created On: + Sccs ID: @(#)xt.h 1.19 05/15/95 + Purpose: General include file for VPC-XT + Notes: This file should be included by all source modules. + It includes the host specific general include file. + + (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved. + +]*/ + +/* + * Useful defines + */ +#define HALF_WORD_SIZE sizeof (half_word) +#define WORD_SIZE sizeof (word) +#define DOUBLE_WORD_SIZE sizeof (double_word) + +/* + * Used for specifying 8, 16 bit or 32 bit sizes. + */ + +typedef enum {EIGHT_BIT, SIXTEEN_BIT, THIRTY_TWO_BIT} SIZE_SPECIFIER; + + +#ifndef TRUE +#define FALSE 0 +#define TRUE !FALSE +#endif /* ! TRUE */ + +#undef SUCCESS +#undef FAILURE +#define SUCCESS 0 +#define FAILURE ~SUCCESS + +#ifndef NULL +#define NULL 0 +#endif + +#ifndef NULL_STRING +#define NULL_STRING "" +#endif + +#ifdef SOFTWINDOWS +#define SPC_PRODUCT_NAME "SoftWindows" +#else +#define SPC_PRODUCT_NAME "SoftPC" +#endif + +/***********************************************************************\ +* host_gen.h is guarenteed to be included early in every C source file. * +* It should contain those defines which are common to all versions * +* built for a given host, to reduce the overhead in the "m" script. * +* Bod 15/3/89. * +\***********************************************************************/ + +#include "host_gen.h" + +#ifndef MAXPATHLEN +#define MAXPATHLEN 1024 +#endif + + +/* + * Effective address calculation stuff + */ + +#ifdef CPU_30_STYLE +/* ========================================================== */ + +/* + Our model for the data extracted from a decriptor entry. + */ +typedef struct + { + double_word base; /* 32-bit base address */ + double_word limit; /* 32-bit offset limit */ + word AR; /* 16-bit attributes/access rights */ + } DESCR; + +extern LIN_ADDR effective_addr IPT2( IU16, seg, IU32, off); +extern void read_descriptor IPT2( LIN_ADDR, addr, DESCR*, descr); +extern boolean selector_outside_table IPT2( IU16, selector, IU32*, descr_addr); + + +/* ========================================================== */ +#else /* CPU_30_STYLE */ +/* ========================================================== */ + +#ifdef A2CPU + +/* + * Effective address macro + */ + +#define effective_addr(seg, offset) (((double_word) seg * 0x10) + offset) + +#endif /* A2CPU */ + +#ifdef CCPU +extern sys_addr effective_addr IPT2( word, seg, word, ofs); +#endif /* CCPU */ + +/* ========================================================== */ +#endif /* CPU_30_STYLE */ + + +#ifdef CCPU +/* + * CCPU has no descriptor cache - so this should just fail. + */ +#define Cpu_find_dcache_entry(seg, base) ((IBOOL)FALSE) +#else /* not CCPU */ +extern IBOOL Cpu_find_dcache_entry IPT2(word, seg, double_word *, base); +#endif + +/* + * Global Flags and Variables + */ + +extern char **pargv; /* Pointer to argv */ +extern int *pargc; /* Pointer to argc */ +extern int verbose; /* FALSE => only report errors */ +extern IU32 io_verbose; /* TRUE => report io errors */ +extern IBOOL Running_SoftWindows; /* Are we SoftWindows? */ +extern CHAR *SPC_Product_Name; /* "SoftPC" or "SoftWindows" */ + +/* + * The Parity Lookup table + */ + +#ifndef CPU_30_STYLE + +extern half_word pf_table[]; /* shouldn't this be in host_cpu.h ? */ + +#endif /* CPU_30_STYLE */ + +/* + * External function declarations. + */ + +#ifdef ANSI +extern void applInit(int, char *[]); +extern void applClose(void); +extern void terminate(void); +extern void host_terminate(void); +#else +extern void applInit(); +extern void applClose(); +extern void terminate(); +extern void host_terminate(); +#endif /* ANSI */ + +#ifdef SPC386 +extern IBOOL CsIsBig IPT1(IU16, csVal); /* is this a 32 bit code segment? */ +#endif /* SPC386 */ + +extern void exitswin IPT0(); + +#endif /* _XT_H */ diff --git a/private/mvdm/softpc.new/base/inc/yoda.h b/private/mvdm/softpc.new/base/inc/yoda.h new file mode 100644 index 000000000..b091e9a32 --- /dev/null +++ b/private/mvdm/softpc.new/base/inc/yoda.h @@ -0,0 +1,71 @@ + +/* + * VPC-XT Revision 0.1 + * + * Title : yoda.h + * + * Description : The force is with you include file + * (ps yoda debugging file) + * + * Author : Henry Nash + * Phil Bousfield + * + * Notes : This file contains the debugger call definitions + */ + +/* SccsID[]="@(#)yoda.h 1.6 06/30/95 Copyright Insignia Solutions Ltd."; */ + +/* + * ============================================================================ + * Structure/Data definitions + * ============================================================================ + */ + +/* None */ + +/* + * ============================================================================ + * External declarations and macros + * ============================================================================ + */ + + +/* + * If the PROD flag is set then turn the debugger calls into null macros + * otherwise they are external functions - see yoda.c + */ + +#ifdef PROD +#define check_I() /* */ +#define check_D(address, value) /*address, value*/ +#define force_yoda() /* */ +#else +extern void check_I(); +extern void check_D(); +extern void force_yoda(); +#endif + +/* + * Interface definitions and enums - non-prod only. + */ + +#ifndef PROD + +typedef enum {YODA_RETURN, YODA_RETURN_AND_REPEAT, YODA_HELP, YODA_LOOP, YODA_LOOP_AND_REPEAT} YODA_CMD_RETURN; +#define YODA_COMMAND(name) \ + YODA_CMD_RETURN name IFN6(char *, str, char *, com, IS32, cs, \ + LIN_ADDR, ip, LIN_ADDR, len, LIN_ADDR, stop) + +#ifdef MSWDVR_DEBUG +extern YODA_CMD_RETURN do_mswdvr_debug IPT6(char *,str, char *, com, IS32, cs, LIN_ADDR, ip, LIN_ADDR, len, LIN_ADDR, stop); +#endif /* MSWDVR_DEBUG */ + +extern IBOOL AlreadyInYoda; + +extern IU32 IntelMsgDest; +#define IM_DST_TRACE 1 +#define IM_DST_RING 2 + +#else /* !PROD */ + +#endif /* !PROD else*/ diff --git a/private/mvdm/softpc.new/base/keymouse/keyba.c b/private/mvdm/softpc.new/base/keymouse/keyba.c new file mode 100644 index 000000000..90fbea0fd --- /dev/null +++ b/private/mvdm/softpc.new/base/keymouse/keyba.c @@ -0,0 +1,3241 @@ +#include "insignia.h" +#include "host_def.h" +/* + * SoftPC Version 2.0 + * + * Title: keyba.c + * + * Description: AT keyboard Adaptor I/O functions. + * + * kbd_inb(port,val) + * int port; + * half_word *val; + * provides the next scan code from the + * keyboard controller (8042), or the + * status byte of the controller, depending + * on the port accessed. + * kbd_outb(port,val) + * int port; + * half_word val; + * Sends a byte to the controller or the + * keyboard processor (6805), depending on + * the port accessed. + * AT_kbd_init() + * Performs any initialisation of the + * keyboard code necessary. + * + * The system presents an interface to the host environment + * which is provided with the calls: + * + * host_key_down(key) + * int key; + * host_key_up(key) + * int key; + * + * These routines provide the keyboard code with information + * on the events which occur on the host keyboard. The key codes + * are the key numbers as given in the XT286 Technical Manual. + * + * Author: William Charnell + * + * Notes: + * + */ + + +#ifdef SCCSID +static char SccsID[]="@(#)keyba.c 1.57 06/22/95 Copyright Insignia Solutions Ltd."; +#endif + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_PPI.seg" +#endif + + +/* + * O/S include files. + */ +#include +#include TypesH +#include TimeH + +/* + * SoftPC include files + */ +#include "xt.h" +#include CpuH +#include "sas.h" +#include "ios.h" +#include "ppi.h" +#include "timeval.h" +#include "timer.h" +#include "keyboard.h" +#include "error.h" +#include "config.h" +#include "ica.h" +#include "keyba.h" +#include "quick_ev.h" +#ifdef macintosh +#include "ckmalloc.h" +#endif /* macintosh */ + +#include "debug.h" + + +/* BCN 2040 +** KBD_CONT_DELAY is the delay time for continuing keyboard interrupts +** when a "sloppy" read of port 0x60 occurs while the keyboard interface +** is enabled. It's the "delay" parameter to add_q_event_t(), and is +** measured in microseconds. +** Perhaps this should be settable in the host; I've allowed for that here +** by defining the delay to be 7 milliseconds unless it's already defined. +** See comments in kbd_inb() below for more details. +*/ + +#ifndef KBD_CONT_DELAY +#define KBD_CONT_DELAY 7000 /* microseconds */ +#endif /* KBD_CONT_DELAY */ + + +#ifdef NTVDM +#include "idetect.h" +#include "nt_eoi.h" + +/* exported for NT host event code */ +GLOBAL VOID KbdResume(VOID); +GLOBAL BOOL bPifFastPaste=TRUE; + + +/* imported from NT host code */ +IMPORT ULONG WaitKbdHdw(ULONG dwTimeOut); +IMPORT ULONG KbdHdwFull; + +IMPORT VOID HostReleaseKbd(VOID); + +/* imported from keybd_io.c */ +IMPORT int bios_buffer_size(void); + +IMPORT BOOL bBiosOwnsKbdHdw; // our kbd bios code owns the Keyboard Mutex +word KbdInt09Seg; +word KbdInt09Off; + +#undef LOCAL +#define LOCAL + +// local state variables for kbd interrupt regulation +VOID KbdIntDelay(VOID); +BOOL bBiosBufferSpace = TRUE; +BOOL bKbdIntHooked = FALSE; +char KbdData = -1; +BOOL bKbdEoiPending = TRUE; // Kbd interrupts blocked until KbdResume invoked +BOOL bDelayIntPending = FALSE; +BOOL bForceDelayInts = FALSE; +ULONG LastKbdInt=0; + +// The Brazilian ABNT keyboard has 104 keys, 2 more than 'usual' +// +// Key Number Set 1 Set 2 Set 3 Character +// ---------- ------ ------- ------- --------------- +// 56 0x73 0x51 0x51 NumPad . +// 107 0x7E 0x6D 0x7B / ? Degree Sign +// +// See also ..\..\host\src\nt_keycd.c and +// ..\..\..\dos\v86\cmd\keyb\keybi9c.asm +// +#define BRAZILIAN_ABNT_KBD + +#endif /* NTVDM */ + + + +#define NUM_LOCK_ADD_ARRAY 127 +#define L_SHIFT_ADD_ARRAY 128 +#define R_SHIFT_ADD_ARRAY 129 +#define CASE_4_SHIFTED_ARRAY 130 +#define ALT_CASE_4_ARRAY 131 +#define CASE_5_CTRLED_ARRAY 132 + +#define NUM_LOCK_ADD 7 +#define L_SHIFT_ADD 8 +#define R_SHIFT_ADD 9 +#define CASE_4_SHIFTED 10 +#define ALT_CASE_4 11 +#define CASE_5_CTRLED 12 + +#define KEYBOARD_INT_ADAPTER 0 +#define KEYBOARD_INT_LINE 1 +#define BASE_DELAY_UNIT 5 +#define DEFAULT_REPEAT_TARGET 1 + +#define SET_3_KEY_TYPE_SET_SEQUENCE 1 +#define SET_STATUS_INDICATORS_SEQUENCE 2 +#define SET_RATE_DELAY_SEQUENCE 3 +#define SCAN_CODE_CHANGE_SEQUENCE 4 + +#define WRITE_8042_CMD_BYTE_SEQUENCE 1 +#define WRITE_8042_OUTPUT_PORT_SEQUENCE 2 + +#define KEY_DOWN_EVENT 1 +#define KEY_UP_EVENT 2 + +#define DEFAULT_SCAN_CODE_SET 2 + +#ifdef REAL_KBD +extern void send_to_real_kbd(); +extern void wait_for_ack_from_kb(); +#endif + +/* + * Globally available function pointers + */ +GLOBAL VOID ( *host_key_down_fn_ptr )(); +GLOBAL VOID ( *host_key_up_fn_ptr )(); + +#ifndef NTVDM +GLOBAL VOID ( *do_key_repeats_fn_ptr )(); +#endif /* NTVDM */ + +/* + * 6805 code buffer: + * + * This is a cyclic buffer storing key events that have been accepted from + * the host operating system, but not yet requested by the keyboard BIOS. + * + * It is equivalent to a 16 byte buffer present in the real keyboard hardware + * on the PC-AT. + * + * We make the physical size of the buffer BUFF_6805_PMAX a power of 2 + * so that a mask BUFF_6805_PMASK can be used to wrap array indices quickly. + * + * Each character entered at the keyboard results in at least 3 bytes of + * event data in the keyboard buffer. Thus the PC-AT's 16 byte buffer allows + * at most 5 characters to be typed ahead. In practice this is never used + * as the CPU is always active, allowing character data to be moved almost + * immediately to the BIOS type ahead buffer. + * + * On SoftPC, however, the CPU can become inactive for significant periods; + * at the same time, the keyboard hardware emulation may be forced to + * process a large number of keyboard events from the host operating system. + * + * In order to give a constant amount of type ahead, regardless of where the + * type ahead information is stored in SoftPC, we make the virtual size + * of the hardware buffer BUFF_6805_VMAX 48 bytes long (16 characters X + * 3 bytes of event data per character). + */ + +/* + 18.5.92 MG !!! TEMPORARY HACK !!! To fix windows bugs in Notepad and Word, + set the buffer to 2k. Windows crashes when the keyboard buffer overflows, + so we delay this for as long as sensible. It will still crash if you type + too fast for too long. + + It works OK on a real PC, so the real reason it fails on SoftPC needs to + be determined one day. + + 20.5.92 MG - took out the hack - see below. +*/ + +#ifdef NTVDM /* JonLe NT Mod */ +#define BUFF_6805_VMAX 496 +#define BUFF_6805_PMAX 512 +#define BUFF_6805_PMASK (BUFF_6805_PMAX - 1) +#else +#define BUFF_6805_VMAX 48 +#define BUFF_6805_PMAX 64 +#define BUFF_6805_PMASK (BUFF_6805_PMAX - 1) +#endif /* NTVDM */ + +#ifndef macintosh +static half_word buff_6805[BUFF_6805_PMAX]; +#else +static half_word *buff_6805=NULL; +#endif /* macintosh */ +static int buff_6805_in_ptr,buff_6805_out_ptr; + +#ifdef NTVDM +static unsigned char key_marker_value = 0; +static unsigned char key_marker_buffer[BUFF_6805_PMAX]; +int LastKeyDown= -1; +void Reset6805and8042(void); +#endif + +#if defined(IRET_HOOKS) && defined(GISP_CPU) +extern IBOOL HostDelayKbdInt IPT1(char, scancode); +extern IBOOL HostPendingKbdInt IPT1(char *,scancode); +extern void HostResetKdbInts IPT0(); + +#endif /* IRET_HOOKS && GISP_CPU */ + +/* + 20.5.92 MG + + Real fix for my temporary hack in the last edition of this file. + + The problem with windows seems to be due to receipt of a huge + number of overrun characters in a row, so now when we send an overrun + character we set an 'overrun enable' flag, which is cleared when + three bytes have been read from the buffer. + + The effect of this is to spread out the overruns, which seems to stop + the illegal instructions occuring. + + Obviously this may have bad effects on real-mode DOS applications !!! +*/ + +LOCAL BOOL sent_overrun=FALSE; + +#ifndef macintosh + +#ifndef REAL_KBD +/* make arrays */ +static int *make_sizes; +static half_word *make_arrays [134]; + +/* break arrays */ +static int *break_sizes; +static half_word *break_arrays [134]; + +/* set 3 key states (eg. typematic, make/break, make only, typematic make/break) */ + +static half_word set_3_key_state [127]; +#endif /* REAL_KBD */ + +static int key_down_count [127]; + +#else /* macintosh */ +/* make arrays */ +static int *make_sizes; +static half_word **make_arrays; + +/* break arrays */ +static int *break_sizes; +static half_word **break_arrays; + +/* set 3 key states (eg. typematic, make/break, make only, typematic make/break) */ + +static half_word *set_3_key_state; +static int *key_down_count; + +#endif /* macintosh */ + +/* anomalous state handling variables */ +half_word *anomalous_array; +int anomalous_size, anom_key; +int in_anomalous_state; + +/* held events (while doing multiple code 6805 commands) */ +#define HELD_EVENT_MAX 16 +int held_event_count; +int held_event_key[HELD_EVENT_MAX]; +int held_event_type[HELD_EVENT_MAX]; + +#ifdef NTVDM /* JonLe NTVDM Mod:remove repeat related vars */ +int scan_code_6805_size,key_set; +int input_port_val; +int waiting_for_next_code, waiting_for_next_8042_code, num_lock_on; +#else +int scan_code_6805_size,key_set,repeat_delay_target,repeat_target,repeat_delay_count,repeat_count; +int typematic_key, input_port_val; +int typematic_key_valid,waiting_for_next_code, waiting_for_next_8042_code, num_lock_on; +#endif /* NTVDM */ +int shift_on, l_shift_on, r_shift_on; +int ctrl_on, l_ctrl_on, r_ctrl_on; +int alt_on, l_alt_on, r_alt_on; +int waiting_for_upcode; +int next_code_sequence_number, next_8042_code_sequence_number, set_3_key_type_change_dest; +GLOBAL int free_6805_buff_size; /* Must be global for NT VDM */ +int translating, keyboard_disabled, int_enabled, output_full; +int pending_8042, keyboard_interface_disabled, scanning_discontinued; +half_word output_contents, pending_8042_value, kbd_status, op_port_remembered_bits, cmd_byte_8042; +half_word *scan_code_6805_array; + +#ifdef PM +int gate_a20_status; +#ifndef NTVDM +long reset_was_by_kbd = FALSE; +#endif +#endif + +#ifndef NTVDM +LOCAL q_ev_handle refillDelayedHandle = 0; +#endif + +half_word current_light_pattern; + +#ifdef macintosh +/* +** The Mac cannot cope with loads of global data. So declare these +** as pointers and load the tables up from a Mac resource. +*/ +half_word *scan_codes_temp_area; +half_word *keytypes; +int *set_1_make_sizes, *set_2_make_sizes, *set_3_make_sizes; +int *set_1_break_sizes, *set_2_break_sizes, *set_3_break_sizes; +half_word *trans_8042, *set_3_reverse_lookup, *set_3_default_key_state, *most_set_2_make_codes; +half_word *most_set_3_make_codes, *set_1_extra_codes, *set_2_extra_codes, *set_3_extra_codes; +half_word *set_1_extra_bk_codes, *set_2_extra_bk_codes, *set_3_extra_bk_codes, *buff_overrun_6805; +half_word *most_set_1_make_codes; + +#else + +half_word scan_codes_temp_area[300]; + +#ifndef REAL_KBD +/* Data Tables */ + +/* + * The meaning of the keytype values as far as I can tell (IanJa) : + * + * 1 = extended key (rh Alt, rh Ctrl, Numpad Enter) + * 2 = grey cursor movement keys (Insert, Home, Delete, up arrow etc. + * 3 = NumPad / + * 4 = Print Screen/SysRq + * 5 = pause/Break + * 6 = not a key + */ +static half_word keytypes[127] = +{ 0,0,0,0,0,0,0,0,0,0, /* 0-9 */ + 0,0,0,0,6,0,0,0,0,0, /* 10-19 */ + 0,0,0,0,0,0,0,0,0,0, /* 20-29 */ + 0,0,0,0,0,0,0,0,0,0, /* 30-39 */ + 0,0,0,0,0,0,0,0,0,0, /* 40-49 */ +#ifdef BRAZILIAN_ABNT_KBD + 0,0,0,0,0,0,0,0,0,6, /* 50-59 */ +#else + 0,0,0,0,0,0,6,0,0,6, /* 50-59 */ +#endif + 0,0,1,6,1,6,6,6,6,6, /* 60-69 */ + 6,6,6,6,6,2,2,6,6,2, /* 70-79 */ + 2,2,6,2,2,2,2,6,6,2, /* 80-89 */ + 0,0,0,0,6,3,0,0,0,0, /* 90-99 */ +#ifdef BRAZILIAN_ABNT_KBD + 0,0,0,0,0,0,0,0,1,6, /* 100-109 */ +#else + 0,0,0,0,0,0,0,6,1,6, /* 100-109 */ +#endif + 0,6,0,0,0,0,0,0,0,0, /* 110-119 */ + 0,0,0,0,4,0,5 /* 120-126 */ +}; + +static int set_1_make_sizes [13]= +{ 1,2,2,2,4,6, /* categories 1 to 6 inclusive */ + 0, /* size for error case - non existant key */ + 2, /* Num lock add size */ + 2, /* Left shift add size */ + 2, /* Right shift add size */ + 2, /* Case 4 shifted size */ + 1, /* Alt Case 4 size */ + 4 /* Case 5 ctrled size */ +}; + +static int set_2_make_sizes [13]= +{ 1,2,2,2,4,8, /* categories 1 to 6 inclusive */ + 0, /* size for error case - non existant key */ + 2, /* Num lock add size */ + 3, /* Left shift add size */ + 3, /* Right shift add size */ + 2, /* Case 4 shifted size */ + 1, /* Alt Case 4 size */ + 5 /* Case 5 ctrled size */ +}; + +static int set_3_make_sizes [13]= +{ 1,1,1,1,1,1, /* categories 1 to 6 inclusive */ + 0, /* size for error case - non existant key */ + 0, /* Num lock add size */ + 0, /* Left shift add size */ + 0, /* Right shift add size */ + 1, /* Case 4 shifted size */ + 1, /* Alt Case 4 size */ + 1 /* Case 5 ctrled size */ +}; + +static int set_1_break_sizes [13]= +{ 1,2,2,2,4,0, /* categories 1 to 6 inclusive */ + 0, /* size for error case - non existant key */ + 2, /* Num lock add size */ + 2, /* Left shift add size */ + 2, /* Right shift add size */ + 2, /* Case 4 shifted size */ + 1, /* Alt Case 4 size */ + 0 /* Case 5 ctrled size */ +}; + +static int set_2_break_sizes [13]= +{ 2,3,3,3,6,0, /* categories 1 to 6 inclusive */ + 0, /* size for error case - non existant key */ + 3, /* Num lock add size */ + 2, /* Left shift add size */ + 2, /* Right shift add size */ + 3, /* Case 4 shifted size */ + 2, /* Alt Case 4 size */ + 0 /* Case 5 ctrled size */ +}; + +static int set_3_break_sizes [13]= +{ 2,2,2,2,2,0, /* categories 1 to 6 inclusive */ + 0, /* size for error case - non existant key */ + 0, /* Num lock add size */ + 0, /* Left shift add size */ + 0, /* Right shift add size */ + 2, /* Case 4 shifted size */ + 2, /* Alt Case 4 size */ + 2 /* Case 5 ctrled size */ +}; + +#endif + +static half_word trans_8042 [256] = +{ 0xff,0x43,0x02,0x3f,0x3d,0x3b,0x3c,0x58,0x08,0x44,0x42,0x40,0x3e,0x0f,0x29,0x0f, /* 00-0f */ + 0x10,0x38,0x2a,0x13,0x1d,0x10,0x02,0x17,0x18,0x19,0x2c,0x1f,0x1e,0x11,0x03,0x1f, /* 10-1f */ + 0x20,0x2e,0x2d,0x20,0x12,0x05,0x04,0x27,0x28,0x39,0x2f,0x21,0x14,0x13,0x06,0x2f, /* 20-2f */ + 0x30,0x31,0x30,0x23,0x22,0x15,0x07,0x37,0x38,0x39,0x32,0x24,0x16,0x08,0x09,0x3f, /* 30-3f */ + 0x40,0x33,0x25,0x17,0x18,0x0b,0x0a,0x47,0x48,0x34,0x35,0x26,0x27,0x19,0x0c,0x4f, /* 40-4f */ +#ifdef BRAZILIAN_ABNT_KBD + 0x50,0x73,0x28,0x53,0x1a,0x0d,0x56,0x57,0x3a,0x36,0x1c,0x1b,0x5c,0x2b,0x5e,0x5f, /* 50-5f */ + 0x60,0x56,0x62,0x63,0x64,0x65,0x0e,0x67,0x68,0x4f,0x6a,0x4b,0x47,0x7e,0x6e,0x6f, /* 60-6f */ +#else + 0x50,0x51,0x28,0x53,0x1a,0x0d,0x56,0x57,0x3a,0x36,0x1c,0x1b,0x5c,0x2b,0x5e,0x5f, /* 50-5f */ + 0x60,0x56,0x62,0x63,0x64,0x65,0x0e,0x67,0x68,0x4f,0x6a,0x4b,0x47,0x6d,0x6e,0x6f, /* 60-6f */ +#endif + 0x52,0x53,0x50,0x4c,0x4d,0x48,0x01,0x45,0x57,0x4e,0x51,0x4a,0x37,0x49,0x46,0x54, /* 70-7f */ + 0x80,0x81,0x82,0x41,0x54,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f, /* 80-8f */ + 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f, /* 90-9f */ + 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf, /* a0-af */ + 0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf, /* b0-bf */ + 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf, /* c0-cf */ + 0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf, /* d0-df */ + 0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef, /* e0-ef */ + 0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff /* f0-ff */ +}; + +#ifndef REAL_KBD +static half_word set_3_reverse_lookup [256]= +{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x6e,0x00,0x00,0x00,0x00,0x10,0x01,0x71, /* 00-0f */ + 0x00,0x3a,0x2c,0x2d,0x1e,0x11,0x02,0x72,0x00,0x3c,0x2e,0x20,0x1f,0x12,0x03,0x73, /* 10-1f */ + 0x00,0x30,0x2f,0x21,0x13,0x05,0x04,0x74,0x00,0x3d,0x31,0x22,0x15,0x14,0x06,0x75, /* 20-2f */ + 0x00,0x33,0x32,0x24,0x23,0x16,0x07,0x76,0x00,0x3e,0x34,0x25,0x17,0x08,0x09,0x77, /* 30-3f */ + 0x00,0x35,0x26,0x18,0x19,0x0b,0x0a,0x78,0x00,0x36,0x37,0x27,0x28,0x1a,0x0c,0x79, /* 40-4f */ +#ifdef BRAZILIAN_ABNT_KBD + 0x00,0x38,0x29,0x2a,0x1b,0x0d,0x7a,0x7c,0x40,0x39,0x2b,0x1c,0x1d,0x00,0x7b,0x7d, /* 50-5f */ +#else + 0x00,0x00,0x29,0x2a,0x1b,0x0d,0x7a,0x7c,0x40,0x39,0x2b,0x1c,0x1d,0x00,0x7b,0x7d, /* 50-5f */ +#endif + 0x54,0x4f,0x7e,0x53,0x4c,0x51,0x0f,0x4b,0x00,0x5d,0x59,0x5c,0x5b,0x56,0x50,0x55, /* 60-6f */ +#ifdef BRAZILIAN_ABNT_KBD + 0x63,0x68,0x62,0x61,0x66,0x60,0x5a,0x5f,0x00,0x6c,0x67,0x6b,0x6a,0x65,0x64,0x00, /* 70-7f */ +#else + 0x63,0x68,0x62,0x61,0x66,0x60,0x5a,0x5f,0x00,0x6c,0x67,0x00,0x6a,0x65,0x64,0x00, /* 70-7f */ +#endif + 0x00,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 80-8f */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 90-9f */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* a0-af */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* b0-bf */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* c0-cf */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* d0-df */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* e0-ef */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 /* f0-ff */ +}; + +static half_word set_3_default_key_state [127]= +{ 0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x01, /* 00-0f */ + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x01, /* 10-1f */ + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x01,0x01,0x01, /* 20-2f */ +#ifdef BRAZILIAN_ABNT_KBD + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x02,0x00,0x02,0x01,0x03,0x00, /* 30-3f */ +#else + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x02,0x02,0x00,0x02,0x01,0x03,0x00, /* 30-3f */ +#endif + 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x01, /* 40-4f */ + 0x03,0x03,0x00,0x01,0x01,0x03,0x03,0x00,0x00,0x01,0x03,0x03,0x03,0x03,0x00,0x03, /* 50-5f */ +#ifdef BRAZILIAN_ABNT_KBD + 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x01,0x03,0x03,0x00,0x03,0x00, /* 60-6f */ +#else + 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x01,0x00,0x03,0x00,0x03,0x00, /* 60-6f */ +#endif + 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03 /* 70-7d */ +}; + +static half_word most_set_1_make_codes [127]= +{ 0x00,0x29,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x00,0x0e, /* 00-0f */ + 0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x2b,0x3a,0x1e, /* 10-1f */ + 0x1f,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x2b,0x1c,0x2a,0x56,0x2c,0x2d, /* 20-2f */ +#ifdef BRAZILIAN_ABNT_KBD + 0x2e,0x2f,0x30,0x31,0x32,0x33,0x34,0x35,0x73,0x36,0x1d,0x00,0x38,0x39,0x38,0x00, /* 30-3f */ +#else + 0x2e,0x2f,0x30,0x31,0x32,0x33,0x34,0x35,0x00,0x36,0x1d,0x00,0x38,0x39,0x38,0x00, /* 30-3f */ +#endif + 0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0x53,0x00,0x00,0x4b, /* 40-4f */ + 0x47,0x4f,0x00,0x48,0x50,0x49,0x51,0x00,0x00,0x4d,0x45,0x47,0x4b,0x4f,0x00,0x35, /* 50-5f */ +#ifdef BRAZILIAN_ABNT_KBD + 0x48,0x4c,0x50,0x52,0x37,0x49,0x4d,0x51,0x53,0x4a,0x4e,0x7e,0x1c,0x00,0x01,0x00, /* 60-6f */ +#else + 0x48,0x4c,0x50,0x52,0x37,0x49,0x4d,0x51,0x53,0x4a,0x4e,0x00,0x1c,0x00,0x01,0x00, /* 60-6f */ +#endif + 0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x57,0x58,0x00,0x46,0x00 /* 70-7e */ +}; + +static half_word most_set_2_make_codes [127]= +{ 0x00,0x0e,0x16,0x1e,0x26,0x25,0x2e,0x36,0x3d,0x3e,0x46,0x45,0x4e,0x55,0x00,0x66, /* 00-0f */ + 0x0d,0x15,0x1d,0x24,0x2d,0x2c,0x35,0x3c,0x43,0x44,0x4d,0x54,0x5b,0x5d,0x58,0x1c, /* 10-1f */ + 0x1b,0x23,0x2b,0x34,0x33,0x3b,0x42,0x4b,0x4c,0x52,0x5d,0x5a,0x12,0x61,0x1a,0x22, /* 20-2f */ +#ifdef BRAZILIAN_ABNT_KBD + 0x21,0x2a,0x32,0x31,0x3a,0x41,0x49,0x4a,0x51,0x59,0x14,0x00,0x11,0x29,0x11,0x00, /* 30-3f */ +#else + 0x21,0x2a,0x32,0x31,0x3a,0x41,0x49,0x4a,0x00,0x59,0x14,0x00,0x11,0x29,0x11,0x00, /* 30-3f */ +#endif + 0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x71,0x00,0x00,0x6b, /* 40-4f */ + 0x6c,0x69,0x00,0x75,0x72,0x7d,0x7a,0x00,0x00,0x74,0x77,0x6c,0x6b,0x69,0x00,0x4a, /* 50-5f */ +#ifdef BRAZILIAN_ABNT_KBD + 0x75,0x73,0x72,0x70,0x7c,0x7d,0x74,0x7a,0x71,0x7b,0x79,0x6d,0x5a,0x00,0x76,0x00, /* 60-6f */ +#else + 0x75,0x73,0x72,0x70,0x7c,0x7d,0x74,0x7a,0x71,0x7b,0x79,0x00,0x5a,0x00,0x76,0x00, /* 60-6f */ +#endif + 0x05,0x06,0x04,0x0c,0x03,0x0b,0x83,0x0a,0x01,0x09,0x78,0x07,0x00,0x7e,0x00 /* 70-7e */ +}; + +static half_word most_set_3_make_codes [127]= +{ 0x00,0x0e,0x16,0x1e,0x26,0x25,0x2e,0x36,0x3d,0x3e,0x46,0x45,0x4e,0x55,0x00,0x66, /* 00-0f */ + 0x0d,0x15,0x1d,0x24,0x2d,0x2c,0x35,0x3c,0x43,0x44,0x4d,0x54,0x5b,0x5c,0x14,0x1c, /* 10-1f */ + 0x1b,0x23,0x2b,0x34,0x33,0x3b,0x42,0x4b,0x4c,0x52,0x53,0x5a,0x12,0x13,0x1a,0x22, /* 20-2f */ +#ifdef BRAZILIAN_ABNT_KBD + 0x21,0x2a,0x32,0x31,0x3a,0x41,0x49,0x4a,0x51,0x59,0x11,0x00,0x19,0x29,0x39,0x00, /* 30-3f */ +#else + 0x21,0x2a,0x32,0x31,0x3a,0x41,0x49,0x4a,0x00,0x59,0x11,0x00,0x19,0x29,0x39,0x00, /* 30-3f */ +#endif + 0x58,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x67,0x64,0x00,0x00,0x61, /* 40-4f */ + 0x6e,0x65,0x00,0x63,0x60,0x6f,0x6d,0x00,0x00,0x6a,0x76,0x6c,0x6b,0x69,0x00,0x77, /* 50-5f */ +#ifdef BRAZILIAN_ABNT_KBD + 0x75,0x73,0x72,0x70,0x7e,0x7d,0x74,0x7a,0x71,0x84,0x7c,0x7b,0x79,0x00,0x08,0x00, /* 60-6f */ +#else + 0x75,0x73,0x72,0x70,0x7e,0x7d,0x74,0x7a,0x71,0x84,0x7c,0x00,0x79,0x00,0x08,0x00, /* 60-6f */ +#endif + 0x07,0x0f,0x17,0x1f,0x27,0x2f,0x37,0x3f,0x47,0x4f,0x56,0x5e,0x57,0x5f,0x62 /* 70-7e */ +}; + +static half_word set_1_extra_codes []= +{ 0xe0,0x2a,0xe0,0x37, /* Case 4 norm */ + 0xe1,0x1d,0x45,0xe1,0x9d,0xc5, /* Case 5 norm */ + /* Error case -non existant (empty) */ + 0xe0,0x2a, /* Num lock add sequence */ + 0xe0,0xaa, /* Left shift add sequence */ + 0xe0,0xb6, /* Right shift add sequence */ + 0xe0,0x37, /* case 4 shifted */ + 0x54, /* Alt case 4 */ + 0xe0,0x46,0xe0,0xc6 /* Case 5 ctrled */ +}; + +static half_word set_2_extra_codes []= +{ 0xe0,0x12,0xe0,0x7c, /* Case 4 norm */ + 0xe1,0x14,0x77,0xe1,0xf0,0x14,0xf0,0x77, /* Case 5 norm */ + /* Error case -non existant (empty) */ + 0xe0,0x12, /* Num lock add sequence */ + 0xe0,0xf0,0x12, /* Left shift add sequence */ + 0xe0,0xf0,0x59, /* Right shift add sequence */ + 0xe0,0x7c, /* case 4 shifted */ + 0x84, /* Alt case 4 */ + 0xe0,0x7e,0xe0,0xf0,0x7e /* Case 5 ctrled */ +}; + + +static half_word set_3_extra_codes []= +{ 0x57, /* Case 4 norm */ + 0x62, /* Case 5 norm */ + /* Error case -non existant (empty) */ + /* Num lock add sequence (empty) */ + /* Left shift add sequence (empty) */ + /* Right shift add sequence (empty) */ + 0x57, /* case 4 shifted */ + 0x57, /* Alt case 4 */ + 0x62 /* Case 5 ctrled */ +}; + + +static half_word set_1_extra_bk_codes []= +{ 0xe0,0xb7,0xe0,0xaa, /* Case 4 norm */ + /* Case 5 norm (empty) */ + /* Error case -non existant (empty) */ + 0xe0,0xaa, /* Num lock add sequence */ + 0xe0,0x2a, /* Left shift add sequence */ + 0xe0,0x36, /* Right shift add sequence */ + 0xe0,0xb7, /* case 4 shifted */ + 0xd4, /* Alt case 4 */ + /* Case 5 ctrled (empty) */ +}; + +static half_word set_2_extra_bk_codes []= +{ 0xe0,0xf0,0x7c,0xe0,0xf0,0x12, /* Case 4 norm */ + /* Case 5 norm (empty) */ + /* Error case -non existant (empty) */ + 0xe0,0xf0,0x12, /* Num lock add sequence */ + 0xe0,0x12, /* Left shift add sequence */ + 0xe0,0x59, /* Right shift add sequence */ + 0xe0,0xf0,0x7c, /* case 4 shifted */ + 0xf0,0x84 /* Alt case 4 */ + /* Case 5 ctrled (empty) */ +}; + + +static half_word set_3_extra_bk_codes []= +{ 0xf0,0x57, /* Case 4 norm */ + /* Case 5 norm (empty) */ + /* Error case -non existant (empty) */ + /* Num lock add sequence (empty) */ + /* Left shift add sequence (empty) */ + /* Right shift add sequence (empty) */ + 0xf0,0x57, /* case 4 shifted */ + 0xf0,0x57, /* Alt case 4 */ + 0xf0,0x62 /* Case 5 ctrled */ +}; +#endif + +static half_word buff_overrun_6805 [4]= +{ + 0,0xff,0,0 +}; + +#endif /* macintosh */ + +#ifdef SECURE /* { */ +/* + * This table 'secure_keytab' identifies certain characters which + * need special treatment by Secure SoftWindows. The table is + * indexed by keycodes, as used by the ROM routine for the U.S. English + * keyboard. These codes are defined in IBM Personal Computer AT + * Hardware Technical Reference, Section 5 System BIOS Keyboard + * Encoding and Usage. + * + * Characters requiring special treatment include Ctrl-Alt-DEL, + * Ctrl-C and the others, including keys which modify the Boot. + * Such keys require different treatment, but can be grouped into + * about 4 different ActionClasses. + * Any key which would generate an undesirable code has the action + * bit set, along with the ActionClass number. Additionally the + * modifier keys are also tracked with this table. + */ + +#define SEC_ACTCLASS 0x07 +/* Action Classes have to be sequential from 0, + * as they are used as an index into function + * tables 'down_class' and 'up_class' + */ +#define SEC_CLASS_0 0x00 +#define SEC_CLASS_1 0x01 +#define SEC_CLASS_2 0x02 +#define SEC_CLASS_3 0x03 +#define SEC_CLASS_4 0x04 +#define SEC_CLASS_5 0x05 +#define SEC_CLASS_6 0x06 +#define SEC_CLASS_7 0x07 +#define SEC_ACTION 0x08 +#define SEC_CTRL_L 0x10 +#define SEC_CTRL_R 0x20 +#define SEC_ALT_L 0x40 +#define SEC_ALT_R 0x80 +#define SEC_MOD_MASK (SEC_CTRL_L|SEC_CTRL_R|SEC_ALT_L|SEC_ALT_R) + +LOCAL IU8 secure_keytab [] = { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0-15 */ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 16-31 */ + 0,0,0,0,0,0,0,0,0,0,0,0, /* 32-43 */ + SEC_ACTION|SEC_CLASS_3, /* 44(LShft) Boot Modifier. */ + 0,0,0, /* 45-47 */ + SEC_ACTION|SEC_CLASS_2, /* 48("C") Used with Cntrl. */ + 0,0,0,0,0,0,0,0, /* 49-56 */ + SEC_ACTION|SEC_CLASS_3, /* 57(RShft) Boot Modifier. */ + SEC_CTRL_L,0,SEC_ALT_L,0, /* 58-61 */ + SEC_ALT_R,0,SEC_CTRL_R, /* 62-64 */ + 0,0,0,0,0,0,0,0,0,0,0, /* 65-75 */ + SEC_ACTION|SEC_CLASS_0, /* 76(Delete) */ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 77-90 */ + SEC_ACTION|SEC_CLASS_1, /* 91(KeyPad 7) */ + SEC_ACTION|SEC_CLASS_1, /* 92(KeyPad 4) */ + SEC_ACTION|SEC_CLASS_1, /* 93(KeyPad 1) */ + 0,0, /* 94-95 */ + SEC_ACTION|SEC_CLASS_1, /* 96(KeyPad 8) */ + SEC_ACTION|SEC_CLASS_1, /* 97(KeyPad 5) */ + SEC_ACTION|SEC_CLASS_1, /* 98(KeyPad 2) */ + SEC_ACTION|SEC_CLASS_1, /* 99(KeyPad 0) */ + 0, /* 100 */ + SEC_ACTION|SEC_CLASS_1, /* 101(KeyPad 9) */ + SEC_ACTION|SEC_CLASS_1, /* 102(KeyPad 6) */ + SEC_ACTION|SEC_CLASS_1, /* 103(KeyPad 3) */ + SEC_ACTION|SEC_CLASS_0, /* 104(KeyPad . DEL) */ + 0,0,0,0,0,0,0, /* 105-111 */ + SEC_ACTION|SEC_CLASS_3, /* 112(F1) */ + SEC_ACTION|SEC_CLASS_3, /* 113(F2) */ + SEC_ACTION|SEC_CLASS_3, /* 114(F3) */ + SEC_ACTION|SEC_CLASS_3, /* 115(F4) */ + SEC_ACTION|SEC_CLASS_3, /* 116(F5) */ + SEC_ACTION|SEC_CLASS_3, /* 117(F6) */ + SEC_ACTION|SEC_CLASS_3, /* 118(F7) */ + SEC_ACTION|SEC_CLASS_3, /* 119(F8) */ + SEC_ACTION|SEC_CLASS_3, /* 120(F9) */ + SEC_ACTION|SEC_CLASS_3, /* 121(F10) */ + SEC_ACTION|SEC_CLASS_3, /* 122(F11) */ + SEC_ACTION|SEC_CLASS_3, /* 123(F12) */ + 0,0, /* 124-125 */ + SEC_ACTION|SEC_CLASS_2, /* 126(Break) */ + 0 /* 127 */ +}; +#endif /* SECURE } */ + +LOCAL VOID calc_buff_6805_left IPT0(); +LOCAL VOID do_host_key_down IPT1( int,key ); +LOCAL VOID do_host_key_up IPT1( int,key ); +LOCAL VOID codes_to_translate IPT0(); +GLOBAL VOID continue_output IPT0(); +LOCAL VOID cmd_to_8042 IPT1( half_word,cmd_code ); +LOCAL VOID cmd_to_6805 IPT1( half_word,cmd_code ); +#ifndef HUNTER +LOCAL INT buffer_status_8042 IPT0(); +#endif + +#ifdef SECURE /* { */ +/* Track the Modifier keys. */ +LOCAL IU8 keys_down = 0; + +/* Track which key downs have been supressed. */ +LOCAL IU8 keys_suppressed [0x80] = {0}; + +/* Forward declarations keep compiler happy. */ +LOCAL VOID filtered_host_key_down IPT1(int,key); +LOCAL VOID filtered_host_key_up IPT1(int,key); + +/* Here are the functions for handling special keys. */ +LOCAL VOID filt_dwn_reboot IFN1(int, key) +{ + /* The key is only nasty if Cntrl and Alt are down. */ + if ((keys_down & (SEC_CTRL_L | SEC_CTRL_R)) != 0 && + (keys_down & (SEC_ALT_L | SEC_ALT_R )) != 0 ) + { + keys_suppressed[key] = 1; + } + else + { + filtered_host_key_down(key); + } +} +LOCAL VOID filt_dwn_kpad_numerics IFN1(int, key) +{ + /* The keys are only nasty if Alt is down. */ + if ((keys_down & (SEC_CTRL_L | SEC_CTRL_R)) == 0 && + (keys_down & (SEC_ALT_L | SEC_ALT_R )) != 0 ) + { + keys_suppressed[key] = 1; + } + else + { + filtered_host_key_down(key); + } +} +LOCAL VOID filt_dwn_breaks IFN1(int, key) +{ + /* + * The keys are only nasty if Control is down. + * The upness of the Alt key is not checked as the + * typematic feature would allow ALT-CTRL-C to be held + * down, then ALT could be released to deliver a stream + * of CTRL-C. + */ + if ((keys_down & (SEC_CTRL_L | SEC_CTRL_R)) != 0) + { + keys_suppressed[key] = 1; + } + else + { + filtered_host_key_down(key); + } +} +LOCAL VOID filt_dwn_boot_mods IFN1(int, key) +{ + /* The keys are only nasty if in Boot mode. */ + if (!has_boot_finished()) + { + keys_suppressed[key] = 1; + } + else + { + filtered_host_key_down(key); + } +} +LOCAL VOID filt_dwn_supress_up IFN1(int, key) +{ + if (keys_suppressed[key]) + { + /* Key down was suppressed, do not forward key-up. */ + keys_suppressed[key] = 0; + } + else + { + filtered_host_key_up(key); + } +} + +/* + * The following function table is indexed by the Action Class, + * as defined in secure_keytab[]. + */ +LOCAL VOID (*down_class[]) IPT1(int, key) = { + filt_dwn_reboot, + filt_dwn_kpad_numerics, + filt_dwn_breaks, + filt_dwn_boot_mods, + filtered_host_key_down, + filtered_host_key_down, + filtered_host_key_down, + filtered_host_key_down +}; +LOCAL VOID (*up_class[]) IPT1(int, key) = { + filt_dwn_supress_up, + filt_dwn_supress_up, + filt_dwn_supress_up, + filt_dwn_supress_up, + filtered_host_key_up, + filtered_host_key_up, + filtered_host_key_up, + filtered_host_key_up +}; +#endif /* SECURE } */ + +/* + * 6805 code buffer access procedures + */ + +/*( +=============================== keyba_running ================================== +PURPOSE: + This access function is used to by other modules to check whether +keyba.c is currently passing on keyboard events, or whether it is buffering +them. This allows calling functions to avoid filling up keyba's buffers. + +INPUT: +None. + +OUTPUT: +The return value is true if keystrokes are being passed on. + +ALGORITHM: +If the scanning_discontinued flag is set, or if the 6905 buffer is not +empty, FALSE is returned. +================================================================================ +)*/ +GLOBAL BOOL +keyba_running IFN0() +{ + if (scanning_discontinued || (buff_6805_in_ptr != buff_6805_out_ptr)) + return(FALSE); + else + return(TRUE); +} + +#define QUEUED_OUTPUT 0 +#define IMMEDIATE_OUTPUT 1 + +LOCAL VOID add_to_6805_buff IFN2(half_word,code,int, immediate) +/* immediate ---> = 0 queue on buffer end, + = 1 queue on buffer start */ + { + /* iff room in buffer */ + if (((buff_6805_out_ptr -1)& BUFF_6805_PMASK) != buff_6805_in_ptr) + { + if ( immediate ) + { + /* queue at start */ + buff_6805_out_ptr = (buff_6805_out_ptr - 1) & BUFF_6805_PMASK; + buff_6805[buff_6805_out_ptr]=code; + } + else + { + /* queue at end */ + buff_6805[buff_6805_in_ptr]=code; + buff_6805_in_ptr = (buff_6805_in_ptr + 1) & BUFF_6805_PMASK; + } + } + calc_buff_6805_left(); + +#ifdef NTVDM /* JonLe NTVDM Mod */ + KbdHdwFull = BUFF_6805_VMAX - free_6805_buff_size; +#endif /* NTVDM */ + + } /* end of add_to_6805_buff */ + +static half_word remove_from_6805_buff IFN0() +{ +half_word ch; + +ch=buff_6805[buff_6805_out_ptr]; + +#ifdef NTVDM + key_marker_buffer[buff_6805_out_ptr]=0; +#endif + +if (buff_6805_out_ptr != buff_6805_in_ptr) + { + buff_6805_out_ptr = (buff_6805_out_ptr +1) & BUFF_6805_PMASK; + } +calc_buff_6805_left(); + +#ifdef NTVDM + KbdHdwFull = BUFF_6805_VMAX - free_6805_buff_size; +#endif /* NTVDM */ + +return (ch); +} /* end of remove_from_6805_buff */ + + +LOCAL VOID clear_buff_6805 IFN0() +{ + /* 18/5/92 MG On a macintosh, allocate buffer space so that we're + not grabbing it from the global allocation. */ + +#ifdef macintosh + if (buff_6805==NULL) { + check_malloc(buff_6805,BUFF_6805_PMAX,half_word); + } +#endif /* macintosh */ + + buff_6805_in_ptr=buff_6805_out_ptr; + free_6805_buff_size=BUFF_6805_VMAX; + +#ifdef NTVDM + KbdHdwFull = BUFF_6805_VMAX - free_6805_buff_size; + + /* Clear key marker buffer */ + { + register int loop = sizeof(key_marker_buffer) / sizeof(unsigned char); + while(--loop >= 0) key_marker_buffer[loop] = 0; + } +#endif /* NTVDM */ +} + +#ifdef NTVDM + +#define ONECHARCODEMASK (0x80) + +LOCAL VOID mark_key_codes_6805_buff IFN1(int, start) +{ + static int start_offset; + + /* Room in buffer */ + if(((buff_6805_out_ptr -1)& BUFF_6805_PMASK) != buff_6805_in_ptr) + { + + /* Bump key start/end marker is start of seq */ + if(start) + { + start_offset = buff_6805_in_ptr; + if(++key_marker_value > 127) key_marker_value = 1; + } + else + { + /* End of seq, mark first & last byte */ + + if(start_offset != buff_6805_in_ptr) + { + + key_marker_buffer[start_offset] = key_marker_value; + + if(((buff_6805_in_ptr -1)& BUFF_6805_PMASK) == start_offset) + { + key_marker_buffer[(buff_6805_in_ptr -1)& BUFF_6805_PMASK] = + key_marker_value | ONECHARCODEMASK; + } + else + { + /* mult byte seq */ + + key_marker_buffer[(buff_6805_in_ptr -1)& BUFF_6805_PMASK] = + key_marker_value; + } + } + } + } +} + +/* + * This function returns the number of keys in the 6805 buffers + * and also clears down these buffers + */ + +GLOBAL int keys_in_6805_buff(int *part_key_transferred) +{ + int keys_in_buffer = held_event_count; /* key to yet processed by adapter */ + int tmp_6805_out_ptr; + char last_marker = 0; + + *part_key_transferred = FALSE; + + for(tmp_6805_out_ptr = buff_6805_out_ptr; + tmp_6805_out_ptr != buff_6805_in_ptr; + tmp_6805_out_ptr = (tmp_6805_out_ptr +1) & BUFF_6805_PMASK) + { + if(key_marker_buffer[tmp_6805_out_ptr] != 0) + { + if(last_marker == 0) + { + /* start of key seq found */ + if(key_marker_buffer[tmp_6805_out_ptr] & ONECHARCODEMASK) + keys_in_buffer++; /* one byte seq else */ + last_marker = key_marker_buffer[tmp_6805_out_ptr]; + } + else + { + if(key_marker_buffer[tmp_6805_out_ptr] == last_marker) + { + keys_in_buffer++;/* End of key seq found, bump key count */ + last_marker = 0; /* no longer in middle of key seq */ + } + else + { + /* Scan terminate early, part key seq found */ + *part_key_transferred = TRUE; + last_marker = key_marker_buffer[tmp_6805_out_ptr]; + } + } + } + } + + /* Terminated scan in middle of key seq ??? */ + if(last_marker) *part_key_transferred = TRUE; + + + /* Is there currently a key in the one char 8042 buffer */ + if(output_full) + { + keys_in_buffer++; + } + + Reset6805and8042(); + + return(keys_in_buffer); +} + +void Reset6805and8042(void) +{ + int key; + + /* Reset 6805 */ + + buff_6805_out_ptr=0; + clear_buff_6805(); + current_light_pattern=0; + + //Removed, function call attempts to push characters back into + //the keyboard adapter, just as we are trying to reset it. + //This problem could be fixed by clearing the keyboard interrupt + //line after the following function call (DAB) + //host_kb_light_on(7); + + for(key = 0; key < 127; key++) + { + set_3_key_state [key] = set_3_default_key_state[key]; + key_down_count[key]=0; + } + + waiting_for_next_code=waiting_for_next_8042_code=FALSE; + + shift_on = l_shift_on = r_shift_on = FALSE; + ctrl_on = l_ctrl_on = r_ctrl_on = FALSE; + alt_on = l_alt_on = r_alt_on = FALSE; + waiting_for_upcode = FALSE; + + /* Reset 8042 */ + + kbd_status = 0x14; + cmd_byte_8042 = 0x45; + keyboard_disabled = keyboard_interface_disabled = FALSE; + op_port_remembered_bits = 0xc; + + pending_8042 = output_full = in_anomalous_state = FALSE; + int_enabled = translating = TRUE; + scanning_discontinued = FALSE; + held_event_count = 0; + + //Removed by (DAB) + //host_kb_light_off (5); + num_lock_on = TRUE; +} + +#endif /* NTVDM */ + +LOCAL VOID calc_buff_6805_left IFN0() +{ +free_6805_buff_size = BUFF_6805_VMAX-((buff_6805_in_ptr - buff_6805_out_ptr) & BUFF_6805_PMASK); +if (free_6805_buff_size<0) + { + free_6805_buff_size=0; + sure_note_trace0(AT_KBD_VERBOSE,"Keyboard buffer full"); + } +} /* end of calc_buff_6805_left */ + +LOCAL VOID add_codes_to_6805_buff IFN2(int,codes_size,half_word *,codes_buff) +{ +int code_index; + +if (free_6805_buff_size < codes_size) + { + +/* 20.5.92 MG Don't send the overrun if we only just sent one */ + + if (!sent_overrun) + add_to_6805_buff(buff_overrun_6805[key_set], QUEUED_OUTPUT); + sent_overrun=TRUE; + sure_note_trace0(AT_KBD_VERBOSE,"Keyboard buffer overrun"); + } +else + { + +/* If some characters have been read out, clear the sent_overrun flag */ + + if (free_6805_buff_size>(codes_size+3)) + sent_overrun=FALSE; + for (code_index=0;code_index= HELD_EVENT_MAX) + { + held_event_count = HELD_EVENT_MAX-1; + always_trace0("host_key_down held event buffer overflow"); + } + } +#ifdef NTVDM +else if (!keyboard_disabled) { + // + // Ignore contiguous repeat keys if keys are still in the 6805 + // this keeps the apps responsive to the corresponding up key + // when it comes. + // + if (LastKeyDown != key || (KbdHdwFull < 8)) { + LastKeyDown = key; + key_down_count[key]++; + do_host_key_down(key); + } + } +#else +else + { + do_host_key_down(key); + } +#endif +} + +GLOBAL VOID host_key_up IFN1(int,key) +#ifdef SECURE /* { */ +{ + IU8 keytab_entry; + /* Make a note of any modifier bits. */ + keytab_entry = secure_keytab[key]; + keys_down &= SEC_MOD_MASK ^ keytab_entry; + /* If any filtering action is required, go do it. */ + if (config_inquire(C_SECURE, NULL) && (keytab_entry & SEC_ACTION) != 0) + { + /* The key may need filtering. */ + (*up_class[keytab_entry & SEC_ACTCLASS])(key); + } + else + { + filtered_host_key_up(key); + } +} + +LOCAL VOID filtered_host_key_up IFN1(int,key) +#endif /* SECURE } */ +{ +if (scanning_discontinued) + { + held_event_type[held_event_count]=KEY_UP_EVENT; + held_event_key[held_event_count++]=key; + + /* check for held event buffer overflow (SHOULD never happen) */ + if (held_event_count >= HELD_EVENT_MAX) + { + held_event_count = HELD_EVENT_MAX-1; + always_trace0("host_key_up held event buffer overflow"); + } + } +#ifdef NTVDM +else if (!keyboard_disabled && key_down_count[key]) { +#else +else + { +#endif +#ifdef NTVDM + LastKeyDown = -1; +#endif + do_host_key_up(key); + } +} + +#ifdef NTVDM +GLOBAL VOID RaiseAllDownKeys(VOID) +{ + int i; + + i = sizeof(key_down_count)/sizeof(int); + while (i--) { + if (key_down_count[i]) { + host_key_up(i); + } + } +} + +GLOBAL int IsKeyDown(int Key) +{ + return key_down_count[Key]; +} + + +#endif /* NTVDM */ + +LOCAL VOID do_host_key_down IFN1(int,key) +{ +int overrun,keytype; + +sure_note_trace1(AT_KBD_VERBOSE,"key down:%d",key); + +if (!keyboard_disabled) + { + +#ifdef NTVDM + mark_key_codes_6805_buff(TRUE); +#else + key_down_count[key]++; + if (key_down_count[key]==1) + { /* first press */ + repeat_delay_count=0; + repeat_count=0; + typematic_key_valid=FALSE; + +#endif /* NTVDM */ + keytype=keytypes[key]; + overrun=FALSE; + if (in_anomalous_state) + { + if (anomalous_size > free_6805_buff_size) + { overrun=TRUE; } + else + { + scan_code_6805_size = anomalous_size; + scan_code_6805_array = anomalous_array; + add_codes_to_6805_buff(anomalous_size,anomalous_array); + in_anomalous_state=FALSE; + } + } + + switch (keytype) + { + case 0: + case 1: + case 6: + scan_code_6805_size=make_sizes[keytype]; + scan_code_6805_array=make_arrays[key]; + break; + case 2: + if (num_lock_on && !shift_on) + { + scan_code_6805_size=make_sizes[NUM_LOCK_ADD]; + scan_code_6805_array=make_arrays[NUM_LOCK_ADD_ARRAY]; + if (scan_code_6805_size+make_sizes[keytype] >free_6805_buff_size) + { overrun=TRUE; } + else + { + in_anomalous_state=TRUE; + anom_key=key; + anomalous_array=break_arrays[NUM_LOCK_ADD_ARRAY]; + anomalous_size=break_sizes[NUM_LOCK_ADD]; + add_codes_to_6805_buff(scan_code_6805_size,scan_code_6805_array); + } + } + if (!num_lock_on && shift_on) + { + if (l_shift_on) + { + scan_code_6805_size=make_sizes[L_SHIFT_ADD]; + scan_code_6805_array=make_arrays[L_SHIFT_ADD_ARRAY]; + in_anomalous_state=TRUE; + anom_key=key; + anomalous_array=break_arrays[L_SHIFT_ADD_ARRAY]; + anomalous_size=break_sizes[L_SHIFT_ADD]; + } + else + { + scan_code_6805_size=make_sizes[R_SHIFT_ADD]; + scan_code_6805_array=make_arrays[R_SHIFT_ADD_ARRAY]; + in_anomalous_state=TRUE; + anom_key=key; + anomalous_array=break_arrays[R_SHIFT_ADD_ARRAY]; + anomalous_size=break_sizes[R_SHIFT_ADD]; + } + if (scan_code_6805_size+make_sizes[keytype] >free_6805_buff_size) + { + overrun=TRUE; + in_anomalous_state=FALSE; + } + else + { + add_codes_to_6805_buff(scan_code_6805_size,scan_code_6805_array); + } + } + scan_code_6805_size=make_sizes[keytype]; + scan_code_6805_array=make_arrays[key]; + break; + case 3: + if (shift_on) + { + if (l_shift_on) + { + scan_code_6805_size=make_sizes[L_SHIFT_ADD]; + scan_code_6805_array=make_arrays[L_SHIFT_ADD_ARRAY]; + in_anomalous_state=TRUE; + anom_key=key; + anomalous_array=break_arrays[L_SHIFT_ADD_ARRAY]; + anomalous_size=break_sizes[L_SHIFT_ADD]; + } + else + { + scan_code_6805_size=make_sizes[R_SHIFT_ADD]; + scan_code_6805_array=make_arrays[R_SHIFT_ADD_ARRAY]; + in_anomalous_state=TRUE; + anom_key=key; + anomalous_array=break_arrays[R_SHIFT_ADD_ARRAY]; + anomalous_size=break_sizes[R_SHIFT_ADD]; + } + if (scan_code_6805_size+make_sizes[keytype] >free_6805_buff_size) + { + overrun=TRUE; + in_anomalous_state=FALSE; + } + else + { + add_codes_to_6805_buff(scan_code_6805_size,scan_code_6805_array); + } + } + scan_code_6805_size=make_sizes[keytype]; + scan_code_6805_array=make_arrays[key]; + break; + case 4: + if (shift_on || ctrl_on || alt_on) + { + if (shift_on || ctrl_on) + { + scan_code_6805_size=make_sizes[CASE_4_SHIFTED]; + scan_code_6805_array=make_arrays[CASE_4_SHIFTED_ARRAY]; + } + else + { + scan_code_6805_size=make_sizes[ALT_CASE_4]; + scan_code_6805_array=make_arrays[ALT_CASE_4_ARRAY]; + } + } + else + { + in_anomalous_state=TRUE; + anomalous_array=break_arrays[L_SHIFT_ADD_ARRAY]; + anomalous_size=break_sizes[L_SHIFT_ADD]; + anom_key=key; + scan_code_6805_size=make_sizes[keytype]; + scan_code_6805_array=make_arrays[key]; + } + break; + case 5: + if (ctrl_on) + { + scan_code_6805_size=make_sizes[CASE_5_CTRLED]; + scan_code_6805_array=make_arrays[CASE_5_CTRLED_ARRAY]; + } + else + { + scan_code_6805_size=make_sizes[keytype]; + scan_code_6805_array=make_arrays[key]; + } + break; + } /* end of switch */ + if (overrun) + { + if (!sent_overrun) + add_to_6805_buff(buff_overrun_6805[key_set], + QUEUED_OUTPUT); + sent_overrun=TRUE; + + sure_note_trace0(AT_KBD_VERBOSE,"Keyboard buffer overrun"); + } + else + { + add_codes_to_6805_buff(scan_code_6805_size,scan_code_6805_array); + } + switch (key) + { + case 44: + l_shift_on =TRUE; + shift_on = TRUE; + break; + case 57: + r_shift_on = TRUE; + shift_on = TRUE; + break; + case 58: + l_ctrl_on =TRUE; + ctrl_on = TRUE; + break; + case 64: + r_ctrl_on = TRUE; + ctrl_on = TRUE; + break; + case 60: + l_alt_on =TRUE; + alt_on = TRUE; + break; + case 62: + r_alt_on =TRUE; + alt_on = TRUE; + break; + case 90: + num_lock_on = !num_lock_on; + break; + } + +#ifndef NTVDM /* JonLe NTVDM Mod */ + + if (key!=126) + { + if ((key_set != 3) || (set_3_key_state[key] == 1) || (set_3_key_state[key] == 4)) + { + typematic_key = key; + typematic_key_valid = TRUE; + } + } +#else + mark_key_codes_6805_buff(FALSE); +#endif /* NTVDM */ + + if (free_6805_buff_size < BUFF_6805_VMAX) + { + codes_to_translate(); + } + +#ifndef NTVDM + } /* end of if first press */ +#endif /* NTVDM */ + + } /* end of if not disabled */ +} /* end of do_host_key_down */ + + +/* Key released on host keyboard */ +LOCAL VOID do_host_key_up IFN1(int,key) +{ +half_word *temp_arr_array; +int temp_arr_size,keytype,overrun; + +sure_note_trace1(AT_KBD_VERBOSE,"key up:%d",key); + +if (!keyboard_disabled) + { +#ifdef DEMO_COPY + host_check_demo_expire (); +#endif + if( key_down_count[key] == 0){ + /* + ** This will ignore extra key ups. + */ +#ifndef PROD + sure_note_trace1( AT_KBD_VERBOSE, "Ignored extra key up:%d", key ); +#endif + } + else + { + key_down_count[key] = 0; + +#ifndef NTVDM /* JonLe NTVDM Mod */ + if ((key==typematic_key) && typematic_key_valid) + { + typematic_key_valid=FALSE; + } +#endif /* NTVDM */ + + keytype=keytypes[key]; + overrun=FALSE; + if (!(key_set ==3) || (set_3_key_state[key]==2) || (set_3_key_state[key]==4)) + { +#ifdef NTVDM + mark_key_codes_6805_buff(TRUE); +#endif + switch (keytype) + { + case 0: + case 1: + case 6: + scan_code_6805_size=break_sizes[keytype]; + scan_code_6805_array=break_arrays[key]; + break; + case 2: + temp_arr_size=0; + if (in_anomalous_state && (anom_key == key)) + { + in_anomalous_state=FALSE; + if (num_lock_on && !shift_on) + { + temp_arr_size=break_sizes[NUM_LOCK_ADD]; + temp_arr_array=break_arrays[NUM_LOCK_ADD_ARRAY]; + } + if (!num_lock_on && shift_on) + { + if (l_shift_on) + { + temp_arr_size=break_sizes[L_SHIFT_ADD]; + temp_arr_array=break_arrays[L_SHIFT_ADD_ARRAY]; + } + else + { + temp_arr_size=break_sizes[R_SHIFT_ADD]; + temp_arr_array=break_arrays[R_SHIFT_ADD_ARRAY]; + } + } + } + scan_code_6805_size=break_sizes[keytype]; + scan_code_6805_array=break_arrays[key]; + if (scan_code_6805_size+temp_arr_size > free_6805_buff_size) + { overrun=TRUE; } + else + { + add_codes_to_6805_buff(scan_code_6805_size,scan_code_6805_array); + } + scan_code_6805_size=temp_arr_size; + scan_code_6805_array=temp_arr_array; + break; + case 3: + temp_arr_size=0; + if (in_anomalous_state && (anom_key == key)) + { + in_anomalous_state = FALSE; + if (shift_on) + { + if (l_shift_on) + { + temp_arr_size=break_sizes[L_SHIFT_ADD]; + temp_arr_array=break_arrays[L_SHIFT_ADD_ARRAY]; + } + else + { + temp_arr_size=break_sizes[R_SHIFT_ADD]; + temp_arr_array=break_arrays[R_SHIFT_ADD_ARRAY]; + } + } + } + scan_code_6805_size=break_sizes[keytype]; + scan_code_6805_array=break_arrays[key]; + if (scan_code_6805_size+temp_arr_size > free_6805_buff_size) + { overrun=TRUE; } + else + { + add_codes_to_6805_buff(scan_code_6805_size,scan_code_6805_array); + } + scan_code_6805_size=temp_arr_size; + scan_code_6805_array=temp_arr_array; + break; + case 4: + if (shift_on || ctrl_on || alt_on) + { + if (shift_on || ctrl_on) + { + scan_code_6805_size=break_sizes[CASE_4_SHIFTED]; + scan_code_6805_array=break_arrays[CASE_4_SHIFTED_ARRAY]; + } + else + { + scan_code_6805_size=break_sizes[ALT_CASE_4]; + scan_code_6805_array=break_arrays[ALT_CASE_4_ARRAY]; + } + } + else + { + if (in_anomalous_state && (anom_key==key)) + { + in_anomalous_state=FALSE; + scan_code_6805_size=break_sizes[keytype]; + scan_code_6805_array=break_arrays[key]; + } + else + { + scan_code_6805_size=break_sizes[CASE_4_SHIFTED]; + scan_code_6805_array=break_arrays[CASE_4_SHIFTED_ARRAY]; + } + } + break; + case 5: + scan_code_6805_size=0; + break; + } /* end of switch */ + if (overrun) + { + if (!sent_overrun) + add_to_6805_buff(buff_overrun_6805[key_set], QUEUED_OUTPUT); + sent_overrun=TRUE; + + sure_note_trace0(AT_KBD_VERBOSE,"Keyboard buffer overrun"); + } + else + { + add_codes_to_6805_buff(scan_code_6805_size,scan_code_6805_array); + } +#ifdef NTVDM + mark_key_codes_6805_buff(FALSE); +#endif + } /* end of if not set 3 etc. */ + switch (key) + { + case 44: + l_shift_on =FALSE; + if (!r_shift_on) { shift_on = FALSE; } + break; + case 57: + r_shift_on = FALSE; + if (!l_shift_on) { shift_on = FALSE; } + break; + case 58: + l_ctrl_on =FALSE; + if (!r_ctrl_on) { ctrl_on = FALSE; } + break; + case 64: + r_ctrl_on = FALSE; + if (!l_ctrl_on) { ctrl_on = FALSE; } + break; + case 60: + l_alt_on =FALSE; + if (!r_alt_on) { alt_on = FALSE; } + break; + case 62: + r_alt_on =FALSE; + if (!l_alt_on) { alt_on = FALSE; } + break; + } /* end of switch */ + + if (free_6805_buff_size < BUFF_6805_VMAX) + { + codes_to_translate(); + } + } /* end of if last release */ + } /* end of if not disabled */ +} /* end of do_host_key_up */ +#endif /* REAL_KBD */ + +#ifdef NTVDM + /* + * force filling of Kbd data port just like the real kbd + * since we no longer clear output_full in the Kbd_inb routine + */ +LOCAL VOID AddTo6805BuffImm IFN1(half_word,code) +{ + add_to_6805_buff(code,IMMEDIATE_OUTPUT); + output_full = FALSE; + KbdData = -1; +} +#else +#define AddTo6805BuffImm(code) add_to_6805_buff(code, IMMEDIATE_OUTPUT); +#endif + +LOCAL VOID cmd_to_6805 IFN1(half_word,cmd_code) +{ +int i,key_to_change; +half_word change_to; +unsigned int cmd_code_temp; /* Mac MPW3 compiler prefers unsigned ints in switches */ + +sure_note_trace1(AT_KBD_VERBOSE,"6805 received cmd:0x%x",cmd_code); + +#ifndef REAL_KBD + +if (waiting_for_next_code) + { + switch (next_code_sequence_number) + { + case SCAN_CODE_CHANGE_SEQUENCE: + if (cmd_code>3 || cmd_code <0) + { AddTo6805BuffImm(RESEND_CODE); } + else + { + if (cmd_code == 0) + { + /* order of reception of scan codes is reverse their order of insertion + * if 'IMMEDIATE_OUTPUT' method of insertion is used + */ + AddTo6805BuffImm(key_set); + AddTo6805BuffImm(ACK_CODE); + } + else + { + AddTo6805BuffImm(ACK_CODE); + key_set=cmd_code; + init_key_arrays(); + } + } + break; + case SET_3_KEY_TYPE_SET_SEQUENCE: + sure_note_trace2(AT_KBD_VERBOSE,"Keyboard key type change: key 0x%x, new type %d",cmd_code,set_3_key_type_change_dest); + AddTo6805BuffImm(ACK_CODE); + key_to_change=set_3_reverse_lookup[cmd_code]; + set_3_key_state[key_to_change]=set_3_key_type_change_dest; + break; + case SET_STATUS_INDICATORS_SEQUENCE: + if ((cmd_code & 0xf8) == 0) + { + sure_note_trace1(AT_KBD_VERBOSE,"Changing kbd lights to :%x",cmd_code); + AddTo6805BuffImm(ACK_CODE); +#ifdef NTVDM + host_kb_light_on ((cmd_code & 0x07) | 0xf0); +#else + cmd_code &= 0x7; + host_kb_light_on (cmd_code); + host_kb_light_off ((~cmd_code)&0x7); +#endif + } + break; + case SET_RATE_DELAY_SEQUENCE: +#ifndef NTVDM /* JonLe Mod */ + if ((cmd_code & 0x80)==0) + { + repeat_delay_target = (1+((cmd_code>>5)&3))*BASE_DELAY_UNIT; + cmd_code &= 0x1f; + if (cmd_code<0xb) { repeat_target =0; } + else { if (cmd_code<0x11) { repeat_target =1; } + else { if (cmd_code<0x19) { repeat_target=(cmd_code-0x12)/3 +3;} + else { if (cmd_code<0x1e) { repeat_target=(cmd_code-0x1a)/2+6;} + else { repeat_target=(cmd_code-0x1e)+8;}}}} + AddTo6805BuffImm(ACK_CODE); + } + sure_note_trace2(AT_KBD_VERBOSE,"Changing kbd rate/delay: rate = %d, dealy=%d ",repeat_target,repeat_delay_target); + +#else /* NTVDM */ + + if ((cmd_code & 0x80)==0) + { + AddTo6805BuffImm(ACK_CODE); + } + +#endif /* NTVDM */ + break; + } + waiting_for_next_code = FALSE; + } + else + { + +#endif /* not REAL_KBD */ + + /* + ** Mac MPW3 compiler does not like bytes sized switch + ** variables if a case matches on 0xff. It seems to + ** generate dodgy code. Different type seems OK. + */ + cmd_code_temp = (unsigned int)cmd_code; + switch ( cmd_code_temp ) + { +#ifndef REAL_KBD + case 0xf5: + /* Default Disable */ + clear_buff_6805 (); + AddTo6805BuffImm(ACK_CODE); + for (key_to_change=1;key_to_change<127;key_to_change++) + { + set_3_key_state[key_to_change]=set_3_default_key_state[key_to_change]; + } + +#ifndef NTVDM /* JonLe NTVDM Mod */ + repeat_delay_target=2*BASE_DELAY_UNIT; + repeat_target=DEFAULT_REPEAT_TARGET; + typematic_key_valid=FALSE; +#endif /* NTVDM */ + + keyboard_disabled=TRUE; + sure_note_trace0(AT_KBD_VERBOSE,"Keyboard disabled"); + break; + case 0xee: + /* echo */ + AddTo6805BuffImm(0xee); + break; + case 0xf4: + /* enable */ + clear_buff_6805 (); + AddTo6805BuffImm(ACK_CODE); + +#ifndef NTVDM /* JonLe NTVDM Mod */ + typematic_key_valid=FALSE; +#endif /* NTVDM */ + + keyboard_disabled=FALSE; + sure_note_trace0(AT_KBD_VERBOSE,"Keyboard enabled"); + break; +#endif + case 0xf2: + /* Read ID */ + /* order of reception of scan codes is reverse their order of insertion + * if 'IMMEDIATE_OUTPUT' method of insertion is used + */ + AddTo6805BuffImm(0x83); + AddTo6805BuffImm(0xab); + AddTo6805BuffImm(ACK_CODE); + break; + case 0xfe: + /* resend */ + buff_6805_out_ptr=(buff_6805_out_ptr-1) & BUFF_6805_PMASK; + calc_buff_6805_left(); + break; +#ifndef REAL_KBD + case 0xff: + /* reset */ + /* order of reception of scan codes is reverse their order of insertion + * if 'IMMEDIATE_OUTPUT' method of insertion is used + */ + AddTo6805BuffImm(BAT_COMPLETION_CODE); + AddTo6805BuffImm(ACK_CODE); + keyboard_disabled=FALSE; + sure_note_trace0(AT_KBD_VERBOSE,"Keyboard reset"); + break; + case 0xf0: + /* Select Alternate Scan Codes */ + clear_buff_6805 (); + AddTo6805BuffImm(ACK_CODE); + +#ifndef NTVDM /* JonLe NTVDM Mod */ + typematic_key_valid=FALSE; +#endif /* NTVDM */ + + next_code_sequence_number=SCAN_CODE_CHANGE_SEQUENCE; + held_event_count=0; + scanning_discontinued = waiting_for_next_code=TRUE; + break; + case 0xf7: + case 0xf8: + case 0xf9: + case 0xfa: + /* Set all keys */ + AddTo6805BuffImm(ACK_CODE); + change_to=cmd_code - 0xf6; + for (key_to_change=1;key_to_change<127;key_to_change++) + { + set_3_key_state[key_to_change]=change_to; + } + sure_note_trace1(AT_KBD_VERBOSE,"All keys set to type :0x%x",change_to); + break; + case 0xf6: + /* Set Default */ + clear_buff_6805 (); + AddTo6805BuffImm(ACK_CODE); + for (key_to_change=1;key_to_change<127;key_to_change++) + { + set_3_key_state[key_to_change]=set_3_default_key_state[key_to_change]; + } + +#ifndef NTVDM /* JonLe NTVDM Mod */ + repeat_delay_target=2*BASE_DELAY_UNIT; + repeat_target=DEFAULT_REPEAT_TARGET; + typematic_key_valid=FALSE; +#endif /* NTVDM */ + keyboard_disabled=FALSE; + sure_note_trace0(AT_KBD_VERBOSE,"Keyboard set to default (and enabled)"); + break; + case 0xfb: + case 0xfc: + case 0xfd: + /* Set key type */ + clear_buff_6805 (); + AddTo6805BuffImm(ACK_CODE); + +#ifndef NTVDM /* JonLe NTVDM Mod */ + typematic_key_valid=FALSE; +#endif /* NTVDM */ + + next_code_sequence_number=SET_3_KEY_TYPE_SET_SEQUENCE; + held_event_count=0; + scanning_discontinued = waiting_for_next_code=TRUE; + set_3_key_type_change_dest=cmd_code - 0xfa; + break; + case 0xed: + /* Set/Reset Status Indicators */ + AddTo6805BuffImm(ACK_CODE); + next_code_sequence_number=SET_STATUS_INDICATORS_SEQUENCE; + held_event_count=0; + scanning_discontinued = waiting_for_next_code=TRUE; + break; + case 0xf3: + /* Set typematic Rate/Delay */ + AddTo6805BuffImm(ACK_CODE); + next_code_sequence_number=SET_RATE_DELAY_SEQUENCE; + held_event_count=0; + scanning_discontinued = waiting_for_next_code=TRUE; + break; + default : + /* unrecognised code */ +#ifdef JOKER + AddTo6805BuffImm(ACK_CODE); +#else /* JOKER */ + AddTo6805BuffImm(RESEND_CODE); +#endif /* JOKER */ + break; + +#else + default : + /* cmd to be sent on to real kbd */ + send_to_real_kbd(cmd_code); +#endif + } /* end of switch */ +#ifndef REAL_KBD +} +#else + waiting_for_next_code=FALSE; +#endif + +#ifndef REAL_KBD +if (scanning_discontinued && !waiting_for_next_code) + { + if (held_event_count != 0) + { + for (i=0;i 8) { + ulDelay += 4000; + } + + if (!bBiosBufferSpace) { + ulDelay += 4000; + } + + if (!bPifFastPaste) { + ulDelay <<= 1; + } + + bDelayIntPending = TRUE; + host_DelayHwInterrupt(KEYBOARD_INT_LINE, + 1, + ulDelay + ); + } + + HostIdleNoActivity(); + } +} + + + +//This function is called by the ICA with the ica lock +void KbdEOIHook(int IrqLine, int CallCount) +{ + + if (!bKbdEoiPending) // sanity + return; + + if (!bBiosOwnsKbdHdw && WaitKbdHdw(0xffffffff)) { + bKbdEoiPending = FALSE; + return; + } + + bKbdIntHooked = KbdInt09Off != *(word *)(Start_of_M_area+0x09*4) || + KbdInt09Seg != *(word *)(Start_of_M_area+0x09*4+2); + + bBiosBufferSpace = bBiosOwnsKbdHdw && + (bios_buffer_size() < (bPifFastPaste ? 8 : 2)); + + output_full = FALSE; + bKbdEoiPending = FALSE; + + bForceDelayInts = TRUE; + continue_output(); + bForceDelayInts = FALSE; + + if (!bBiosOwnsKbdHdw) + HostReleaseKbd(); +} + + + + +LOCAL VOID do_q_int(char scancode) +{ + output_full = TRUE; + output_contents = scancode; + + KbdIntDelay(); +} + +#else /* NTVDM */ + +LOCAL VOID do_int IFN1(long,scancode) +{ + output_contents = (char)scancode; + kbd_status |= 1; /* Character now available! */ + if (int_enabled) + { + sure_note_trace0(AT_KBD_VERBOSE,"keyboard interrupting"); + ica_hw_interrupt(KEYBOARD_INT_ADAPTER, KEYBOARD_INT_LINE, 1); + } +} + +LOCAL VOID do_q_int IFN1(char,scancode) +{ + output_full = TRUE; + +#if defined(IRET_HOOKS) && defined(GISP_CPU) + if (!HostDelayKbdInt(scancode)) + { /* no host need to delay this kbd int, so generate one now. */ + do_int ((long) scancode); + } + +#else /* !IRET_HOOKS || !GISP_CPU */ + +#ifdef DELAYED_INTS + do_int ((long) scancode); +#else + add_q_event_i( do_int, HOST_KEYBA_INST_DELAY, (long)scancode); +#endif /* DELAYED_INTS */ + +#endif /* IRET_HOOKS && GISP_CPU */ +} + + +/* typematic keyboard repeats */ + +GLOBAL VOID do_key_repeats IFN0() +{ +#ifndef REAL_KBD + +#ifdef JOKER + /* If there are characters available, tell Joker... */ + if (kbd_status & 1) + do_int((long)output_contents); +#endif + +if (typematic_key_valid) + { + if (repeat_count==repeat_target && repeat_delay_count==repeat_delay_target) + { + scan_code_6805_size=make_sizes[keytypes[typematic_key]]; + scan_code_6805_array=make_arrays[typematic_key]; + add_codes_to_6805_buff(scan_code_6805_size,scan_code_6805_array); + codes_to_translate (); + repeat_count=0; + } + else + { + if (repeat_delay_count==repeat_delay_target) + { + repeat_count++; + } + else + { + repeat_delay_count++; + } + } + } +#endif + +} /* end of do_key_repeats */ + +#endif /* NTVDM */ + + +LOCAL VOID cmd_to_8042 IFN1(half_word,cmd_code) +{ +int code_to_send,code_to_send_valid; + +sure_note_trace1(AT_KBD_VERBOSE,"8042 received cmd:0x%x",cmd_code); + +code_to_send_valid = FALSE; +if (waiting_for_next_8042_code) + { + switch (next_8042_code_sequence_number) + { + case WRITE_8042_CMD_BYTE_SEQUENCE: + if ( (kbd_status & 0x8) == 0) + { + cmd_byte_8042=cmd_code; + if ( (cmd_byte_8042 & 0x40) == 0) + { + translating=FALSE; + } + else + { + translating=TRUE; + } + if ( (cmd_byte_8042 & 0x20) != 0 || (cmd_byte_8042 & 0x10) != 0) + { + keyboard_interface_disabled=TRUE; + } + else + { + keyboard_interface_disabled=FALSE; + } + kbd_status &= 0xfb; + kbd_status |= cmd_byte_8042 & 0x4; + if ((cmd_byte_8042 & 1) == 0) + { + int_enabled=FALSE; + } + else + { + int_enabled=TRUE; + } + } + else + { + waiting_for_next_8042_code=FALSE; + } + break; + case WRITE_8042_OUTPUT_PORT_SEQUENCE: + if ( (kbd_status & 0x8) == 0) + { +#ifndef JOKER /* Reset and GateA20 done in hardware for JOKER */ + if ( (cmd_code & 1) == 0) + { + host_error(EG_CONT_RESET,ERR_QUIT | ERR_RESET,NULL); + } + if ( (cmd_code & 2) == 2) + { +#ifdef PM + if ( !gate_a20_status ) + { +#ifdef NTVDM + /* call xms function to deal with A20 */ + xmsDisableA20Wrapping(); +#else + sas_disable_20_bit_wrapping(); +#endif /* NTVDM */ + gate_a20_status = 1; + } + } + else + { + if ( gate_a20_status ) + { +#ifdef NTVDM + xmsEnableA20Wrapping(); +#else + sas_enable_20_bit_wrapping(); +#endif /* NTVDM */ + gate_a20_status = 0; + } +#else + host_error(EG_GATE_A20,ERR_QUIT | ERR_RESET | ERR_CONT,NULL); +#endif /* PM */ + } +#endif /* JOKER */ + + if ( (cmd_code & 0x10) == 0) + { + int_enabled=FALSE; + } + else + { + int_enabled=TRUE; + } +#ifdef PM + op_port_remembered_bits=cmd_code & 0x2e; +#else + op_port_remembered_bits=cmd_code & 0x2c; +#endif /* PM */ + } + else + { + waiting_for_next_8042_code=FALSE; + } + break; + } /* end of switch */ + } + +if (!waiting_for_next_8042_code) + { + switch (cmd_code) + { + case 0x20: + /* Read cmd byte */ + code_to_send=cmd_byte_8042; + code_to_send_valid=TRUE; + break; + case 0x60: + /* Write cmd byte */ + waiting_for_next_8042_code=TRUE; + next_8042_code_sequence_number=WRITE_8042_CMD_BYTE_SEQUENCE; + break; + case 0xaa: + /* Self Test (always returns 'pass') */ + code_to_send=0x55; + code_to_send_valid=TRUE; + break; + case 0xab: + /* Interface Test (always returns 'pass') */ + code_to_send=0x00; + code_to_send_valid=TRUE; + break; + case 0xad: + /* Disable keyboard interface */ + cmd_byte_8042 |= 0x10; + keyboard_interface_disabled=TRUE; + break; + case 0xae: + /* Enable keyboard interface */ + cmd_byte_8042 &= 0xef; + if ((cmd_byte_8042 & 0x20) == 0) + { + keyboard_interface_disabled=FALSE; + } + break; + case 0xc0: + /* Read Input Port */ + /* But don't cause an interrupt */ + code_to_send_valid=TRUE; + break; + case 0xd0: + /* Read Output Port */ + code_to_send=0xc1 + op_port_remembered_bits; + code_to_send_valid=TRUE; + break; + case 0xd1: + /* Write to Output Port */ + waiting_for_next_8042_code=TRUE; + next_8042_code_sequence_number=WRITE_8042_OUTPUT_PORT_SEQUENCE; + break; + case 0xe0: + /* Read Test Input */ + code_to_send=0x02; + code_to_send_valid=TRUE; + break; + +#ifndef JOKER /* Reset and GateA20 done in hardware for JOKER */ + case 0xf0: + case 0xf1: + case 0xf2: + case 0xf3: + case 0xf4: + case 0xf5: + case 0xf6: + case 0xf7: + case 0xf8: + case 0xf9: + case 0xfa: + case 0xfb: + case 0xfc: + case 0xfd: + case 0xfe: + case 0xff: + +#ifndef MONITOR +/* + * For reasons which I don't understand the monitor never + * did emulate the cpu_interrupt - HW_RESET in pr 1.0. + * and still doesn't in 1.0a. although maybe it should + * do something. Note this is required for 286 style pm. + * 06-Dec-1993 Jonle + * + */ + + /* Pulse Output Port bits */ + + if ((cmd_code & 1) == 0) + { + /* pulse the reset line */ +#ifdef PM +#ifndef NTVDM + reset_was_by_kbd = TRUE; +#endif +#ifdef CPU_30_STYLE + cpu_interrupt(CPU_HW_RESET, 0); +#else /* CPU_30_STYLE */ + cpu_interrupt_map |= CPU_RESET_EXCEPTION_MASK; + host_cpu_interrupt(); +#endif /* CPU_30_STYLE */ +#endif + sure_note_trace0(AT_KBD_VERBOSE,"CPU RESET via keyboard"); + } +#endif /* ! MONITOR */ + break; +#endif /* JOKER */ + + } /* end of switch */ + } +else + { + waiting_for_next_8042_code=FALSE; + } + + +/*Is there a valid code to put in the 8042 output buffer? Values written + to the 8042 output buffer as a conseqence of a 8042 command do not + generate an interrupt. Output generated by 8042 commands must be presented to + the application at the next INB, failure to do so it likely to result in the + 8042 being placed in an unusable state. */ + +if (code_to_send_valid) + { +#ifdef NTVDM + /* + * force filling of Kbd data port just like the real kbd + * since we no longer clear output_full in the Kbd_inb routine + */ + output_full = FALSE; + KbdData = -1; +#else /* NTVDM else */ + + /* Transfer 8042 command output to output buffer, overwriting value + already in the buffer. */ + + output_contents = (char)code_to_send; + kbd_status |= 1; /* Character now available! */ + +#endif /* end of NTVDM else */ + } + +} /* end of cmd_to_8042 */ + + + + +LOCAL half_word translate_6805_8042 IFN0() +{ + +half_word first_code,code; + +/* performs the translation on scan codes which is done by the + 8042 keyboard controller in a real XT286 */ + +first_code=remove_from_6805_buff(); + +if (translating) + { + sure_note_trace1(AT_KBD_VERBOSE,"translating code %#x",first_code); + if (first_code==0xf0) + { + if (free_6805_buff_size HUNTER_REJECTED_CODES_LIMIT ) + { + printf( "Application hung up - not reading scan codes\n" ); + printf( "Trapper terminating\n" ); + + terminate(); + } + + return( FALSE ); + } +} /* end of hunter_codes_to_translate() */ + +#endif /* HUNTER */ + +/* +** Returns number of chars in buffer. +** As buffer is quite small there can either be 1 char or none in it. +* This needs to be global for HUNTER, but only needs be local otherwise. +*/ +#ifdef HUNTER +GLOBAL INT +#else +LOCAL INT +#endif +buffer_status_8042 IFN0() +{ + if (!pending_8042 && !keyboard_interface_disabled && !output_full) + return( 0 ); + else + return( 1 ); +} /* END 8042_buffer_status() */ + +LOCAL VOID codes_to_translate IFN0() +{ + char tempscan; + +while (!pending_8042 && (free_6805_buff_size < BUFF_6805_VMAX) && !keyboard_interface_disabled && !output_full) + { + tempscan= translate_6805_8042(); + if (!waiting_for_upcode) { + do_q_int(tempscan); + } + } +} /* end of codes_to_translate */ + +/* Thanks to Jonathan Lew of MS for code tidyup in this fn */ +GLOBAL VOID continue_output IFN0() +{ +char tempscan; + +#ifdef NTVDM +if (bKbdEoiPending || keyboard_interface_disabled) { + return; + } +#endif + +if(!output_full) + { + if (pending_8042) + { + pending_8042=FALSE; + do_q_int(pending_8042_value); + } + else + { + if ((free_6805_buff_size < BUFF_6805_VMAX) && (!keyboard_interface_disabled)) + { + tempscan=translate_6805_8042(); + if (!waiting_for_upcode) { + do_q_int(tempscan); + } + } + } + } +#ifdef NTVDM +else + KbdIntDelay(); +#endif + +} /* end of continuous_output */ + + +#ifdef NTVDM + +/* NT port: + * the host (nt_event.c) calls this to notify that + * it is resuming after blocking, to do any reinitialization + * necessary + * + * - resets kbd flow regulators + */ +GLOBAL VOID KbdResume(VOID) +{ + WaitKbdHdw(0xffffffff); + bKbdEoiPending = FALSE; + bKbdIntHooked = FALSE; + bBiosBufferSpace = TRUE; + if (!keyboard_interface_disabled && output_full) + KbdIntDelay(); + HostReleaseKbd(); +} +#endif /* NTVDM */ + + +#ifndef NTVDM +/* allowRefill -- used in conjunction with the Delayed Quick Event +** below (kbd_inb from port 0x60 while the keyboard interface is +** enabled.) This is called 10ms after a dubious read from port 0x60 +** and allows the port to be overwritten with the next scancode. +*/ + +LOCAL VOID allowRefill IFN1(long, unusedParam) +{ + UNUSED(unusedParam); + + /* Clear "refillDelayedHandle" so we know we're all clear... */ + + refillDelayedHandle = 0; + + /* continue with filling the buffer... */ + continue_output(); +} +#endif + +GLOBAL VOID kbd_inb IFN2(io_addr,port,half_word *,val) +{ + sure_note_trace1(AT_KBD_VERBOSE,"kbd_inb(%#x)...", port); + +#ifdef NTVDM /* JonLe NTVDM Mod */ + + if (!bBiosOwnsKbdHdw && WaitKbdHdw(0xffffffff)) { + return; + } + + + if (!(DelayIrqLine & 0x2) || KbdData == -1) { + if (bDelayIntPending) { + bDelayIntPending = FALSE; + kbd_status |= 1; + } + KbdData = output_contents; + + } +#endif + + port &= 0x64; + + if (port==0x64) + { + *val = kbd_status; + } + else /* port == 0x60 */ + +#ifdef NTVDM /* JonLe NTVDM Mod */ + + { + + *val=KbdData; + kbd_status &= 0xfe; + sure_note_trace1(AT_KBD_VERBOSE,"scan code read:0x%x",*val); + + + // Sloppy keyboard fix is not needed for the NT port. An EOI + // hook is used to control priming of the adapter. + + } + + if (!bBiosOwnsKbdHdw) + HostReleaseKbd(); + +#else /* not NTVDM */ + + { + *val=output_contents; + + output_full = FALSE; + + kbd_status &= 0xfe; /* Mask out "char avail" bit */ + + /* Other ports should really clear this IRQ as well, but... */ + +#ifdef JOKER + ica_clear_int(KEYBOARD_INT_ADAPTER, KEYBOARD_INT_LINE); +#endif /* JOKER */ + + /* BCN 2040 Replace previous horrible hack with a better one! + ** + ** The following is to cope with programs that read this port more than once + ** expecting the same value each time, while the keyboard interface is ENABLED. + ** On a real PC, this port is filled via a serial connection, and so there's at + ** least a few milliseconds before a new char arrives and the port is overwritten. + ** SoftPC, however, doesn't have this delay; ideally, we'd like to + ** refill the buffer immediately. However, if the keyboard interface is + ** enabled, we should delay refilling the buffer for a few ms. + */ + + if (keyboard_interface_disabled) { /* We're in business */ + + /* NB: We have always assumed that anyone reading this port with the + ** Keyboard interface disabled will ONLY READ IT ONCE (like the BIOS.) + ** + ** Since this seems to work, let's just go ahead and refill the buffer. + ** (If any problems show up, we'll just have to do a quick event as in + ** the keyboard interface enabled case below.) + */ + + /* If there is an outstanding sloppy read quick event delete it */ + if (refillDelayedHandle) { + delete_q_event(refillDelayedHandle); + refillDelayedHandle = 0; + } + + continue_output(); + + } + else { /* keyboard interface is enabled */ + + /* Do not allow port 0x60 to be overwritten for a few milliseconds. + ** Even 10 ms isn't as bad as the two whole timer ticks (100ms) which + ** is what it was doing previously. + ** Keyboard response for some games, including Windows, should now + ** be a good bit better. + ** The original code continued output after the second read of the port + ** with the interface enabled, which seems to imply that no PC apps have + ** been found which read the port more than twice while expecing the same + ** value. However, we now allow for multipe reads of the port, while enabled. + ** Under this circumstance the port will only be re-primed after the quick event + ** from the first sloppy read has been processed. + */ + + if (!refillDelayedHandle) /* if we're not already delaying, delay! */ + refillDelayedHandle = add_q_event_t(allowRefill, KBD_CONT_DELAY, 0); + + } + + } +#endif /* NTVDM */ + + sure_note_trace2(AT_KBD_VERBOSE,"...kbd_inb(%#x) returns %#x", port, *val); + +} /* end of kbd_inb */ + + + +GLOBAL VOID kbd_outb IFN2(io_addr,port,half_word,val) +{ + sure_note_trace2(AT_KBD_VERBOSE,"kbd_outb(%#x, %#x)", port, val); + +#ifdef NTVDM + if (!bBiosOwnsKbdHdw && WaitKbdHdw(0xffffffff)) + { + return; + } +#endif /* NTVDM */ + + port &= 0x64; + if (port == 0x64) + { + kbd_status |= 0x08; + cmd_to_8042(val); + } + else + { + cmd_byte_8042 &= 0xef; + if ( !(cmd_byte_8042 & 0x20) ) + keyboard_interface_disabled=FALSE; + + kbd_status &= 0xf7; + if (waiting_for_next_8042_code) + cmd_to_8042(val); + else + cmd_to_6805(val); + } + +#ifndef NTVDM /* JonLe NTVDM Mod */ + + if (free_6805_buff_size < BUFF_6805_VMAX) + codes_to_translate(); + +#else /* NTVDM */ + + bForceDelayInts = TRUE; + continue_output(); + bForceDelayInts = FALSE; + + if (!bBiosOwnsKbdHdw) + HostReleaseKbd(); + +#endif /* NTVDM */ + +} /*end of kbd_outb */ + +#ifndef NTVDM +/* Nothing seems to call this. I've no idea why it's here ... Simion */ +/* I have been assured that these functions are used by sun - gvdl */ + +GLOBAL int status_6805_buffer IFN0() +{ + int free_space; + + free_space = BUFF_6805_VMAX- + ((buff_6805_in_ptr - buff_6805_out_ptr) & BUFF_6805_PMASK); + if (free_space<0) + { + free_space=0; + sure_note_trace0(AT_KBD_VERBOSE,"Keyboard buffer full"); + } + return(free_space); +} + +/* + * Name: read_6805_buffer_variables + * + * Purpose: To allow the host to access the state of the 6805 buffer + * This means eg. on Sun that cut/paste can be optimised. + * + * Output: *in_ptr - value of the 6805 start pointer. + * Output: *out_ptr - value of the 6805 end pointer. + * Output: *buf_size - value of the 6805 buffer size. + */ +GLOBAL void read_6805_buffer_variables IFN3( +int *, in_ptr, +int *, out_ptr, +int *, buf_size) +{ + *in_ptr = buff_6805_in_ptr; + *out_ptr = buff_6805_out_ptr; + *buf_size = BUFF_6805_PMASK; +} + +GLOBAL VOID insert_code_into_6805_buf IFN1(half_word,code) +{ + sure_note_trace1(AT_KBD_VERBOSE,"got real keyboard scan code : %#x",code); + add_codes_to_6805_buff(1,&code); + sure_note_trace1(AT_KBD_VERBOSE,"new free buf size = %#x",free_6805_buff_size); + if (code != 0xf0) { + codes_to_translate(); + } +} +#endif /* ! NTVDM */ + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_INIT.seg" +#endif + +GLOBAL VOID AT_kbd_post IFN0() +{ + kbd_status = 0x14; + +#ifndef NTVDM + /* Clear out any pending keyboard buffer (port 0x60) refill delays */ + refillDelayedHandle = 0; +#endif +} + +#if defined(IRET_HOOKS) && defined(GISP_CPU) +/*( + *======================= KbdHookAgain() ============================ + * KbdHookAgain + * + * Purpose + * This is the function that we tell the ica to call when a keybd + * interrupt service routine IRETs. + * + * Input + * adapter_id The adapter id for the line. (Note the caller doesn't + * know what this is, he's just returning something + * we gave him earlier). + * + * Outputs + * return TRUE if there are more interrupts to service, FALSE otherwise. + * + * Description + * Check if we have a delayed scancode, if so then generate the kbd int + * and return TRUE, else return FALSE +)*/ + +GLOBAL IBOOL +KbdHookAgain IFN1(IUM32, adapter) +{ char scancode; + + if (HostPendingKbdInt(&scancode)) + { /* We have a host delayed scancode, so generate a kdb int. */ + sure_note_trace0(AT_KBD_VERBOSE,"callback with saved code"); + output_full = TRUE; + do_int ((long) scancode); + return(TRUE); /* more to do */ + } + else + { + sure_note_trace0(AT_KBD_VERBOSE,"no saved data after IRET"); + return(FALSE); + } +} + +#endif /* IRET_HOOKS && GISP_CPU */ + +#ifndef NTVDM + +GLOBAL VOID AT_kbd_init IFN0() +{ + int key,i; + SHORT videoAdapt; + + sure_note_trace0(AT_KBD_VERBOSE,"AT Keyboard initialisation"); + +#if defined(IRET_HOOKS) && defined(GISP_CPU) + /* + * Remove any existing hook call-back, and re-instate it afresh. + * KbdHookAgain is what gets called on a keyboard int iret. + */ + + Ica_enable_hooking(KEYBOARD_INT_LINE, NULL, KEYBOARD_INT_ADAPTER); + Ica_enable_hooking(KEYBOARD_INT_LINE, KbdHookAgain, KEYBOARD_INT_ADAPTER); + + /* Host routine to reset any internal data for IRET_HOOK delayed ints. */ + HostResetKdbInts(); + +#endif /* IRET_HOOKS && GISP_CPU */ + +#ifdef macintosh + if (!make_arrays) + { + /* Allocate the world and its mother. Why does something as "simple" + ** as the keyboard require more global data than the video emulation? + ** Just wondering. + */ + make_arrays = (half_word **)host_malloc(134*sizeof(half_word *)); + break_arrays = (half_word **)host_malloc(134*sizeof(half_word *)); + set_3_key_state = (half_word *)host_malloc(127*sizeof(half_word)); + key_down_count = (int *)host_malloc(127*sizeof(int)); + scan_codes_temp_area = (half_word *)host_malloc(300*sizeof(half_word)); + } +#endif /* macintosh */ + + videoAdapt = (ULONG) config_inquire(C_GFX_ADAPTER, NULL); + + buff_6805_out_ptr=0; + clear_buff_6805 (); + key_set=DEFAULT_SCAN_CODE_SET; + current_light_pattern=0; +#ifdef REAL_KBD + send_to_real_kbd(0xf6); /* set default */ + wait_for_ack_from_kb(); +#endif + host_kb_light_on (7); + +#ifndef REAL_KBD + for (key=0;key<127;key++) + { + set_3_key_state [key] = set_3_default_key_state [key]; + key_down_count[key]=0; + } + repeat_delay_target=2*BASE_DELAY_UNIT; + repeat_target=DEFAULT_REPEAT_TARGET; +#endif + typematic_key_valid = waiting_for_next_code = + waiting_for_next_8042_code=FALSE; + shift_on = l_shift_on = r_shift_on=FALSE; + ctrl_on = l_ctrl_on = r_ctrl_on=FALSE; + alt_on = l_alt_on = r_alt_on=FALSE; + waiting_for_upcode=FALSE; + input_port_val=0xbf; + if (videoAdapt == MDA || videoAdapt == HERCULES) + input_port_val |= 0x40; + kbd_status = 0x10; + cmd_byte_8042=0x45; + keyboard_disabled = keyboard_interface_disabled=FALSE; + op_port_remembered_bits=0xc; + +#ifdef PM + if ( gate_a20_status ) + { + sas_enable_20_bit_wrapping(); + gate_a20_status = 0; + } +#endif + + pending_8042 = output_full = in_anomalous_state=FALSE; + int_enabled = translating=TRUE; + scanning_discontinued=FALSE; + held_event_count=0; + + io_define_inb(AT_KEYB_ADAPTOR, kbd_inb); + io_define_outb(AT_KEYB_ADAPTOR, kbd_outb); + + for (i=KEYBA_PORT_START;i<=KEYBA_PORT_END;i+=2) + io_connect_port(i, AT_KEYB_ADAPTOR, IO_READ_WRITE); + +#ifndef REAL_KBD + init_key_arrays(); +#endif + + host_kb_light_off (5); + num_lock_on = TRUE; + + host_key_down_fn_ptr = host_key_down; + host_key_up_fn_ptr = host_key_up; + do_key_repeats_fn_ptr = do_key_repeats; + +} /* end of AT_kbd_init */ + +#else /* NTVDM */ + +GLOBAL VOID AT_kbd_init() +{ + int i; + + sure_note_trace0(AT_KBD_VERBOSE,"AT Keyboard initialisation"); + + clear_buff_6805 (); + key_set=2; + + i = 127; + while (i--) + set_3_key_state [i] = set_3_default_key_state [i]; + + input_port_val=0xbf; + kbd_status = 0x10; + cmd_byte_8042=0x45; + op_port_remembered_bits=0xc; + + int_enabled = translating = TRUE; + + io_define_inb(AT_KEYB_ADAPTOR, kbd_inb); + io_define_outb(AT_KEYB_ADAPTOR, kbd_outb); + + for (i=KEYBA_PORT_START;i<=KEYBA_PORT_END;i+=2) + io_connect_port(i, AT_KEYB_ADAPTOR, IO_READ_WRITE); + + init_key_arrays(); + + num_lock_on = TRUE; + host_key_down_fn_ptr = host_key_down; + host_key_up_fn_ptr = host_key_up; + + /* Register an EOI hook for the keyboard */ + RegisterEOIHook(KEYBOARD_INT_LINE,KbdEOIHook); + + +} /* end of AT_kbd_init */ +#endif /* NTVDM */ diff --git a/private/mvdm/softpc.new/base/keymouse/keybd_io.c b/private/mvdm/softpc.new/base/keymouse/keybd_io.c new file mode 100644 index 000000000..c3dc483ba --- /dev/null +++ b/private/mvdm/softpc.new/base/keymouse/keybd_io.c @@ -0,0 +1,2162 @@ +#include "insignia.h" +#include "host_def.h" +/* + * SoftPC Revision 2.0 + * + * File: : keybd_io.c + * + * Title : Bios Keyboard Interface function + * + * Sccs ID : @(#)keybd_io.c 1.35 06/27/95 + * + * Description : This package contains a group of functions that provide + * a logical keyboard interface: + * + * keyboard_init() Initialise the keyboard interface. + * keyboard_int() Deal with a character from the keyboard + * and place them in the BIOS buffer. + * keyboard_io() User routine to read characters from + * the BIOS buffer. + * bios_buffer_size() How many chars in the buffer ? + * + * Author : Rod Macgregor / Henry Nash + * + * Modified : Jon Eyre / Jim Hatfield / Uncle Tom Cobbley and all + * + * Modfications : This module is now designed to be totally portable, it + * represents both the hardware and user interrupt interfaces. + * These two functions are provided by the routines + * keyboard_int & keyboard_io. The system will initialise + * itself by a call to keyboard_init. + * + * The user is expected to supply the following host dependent + * routines for this module, tagged as follows:- + * + * [HOSTSPECIFIC] + * + * host_alarm(duration) + * long int duration ; + * - ring the host's bell. + * + * host_kb_init() - any local initialisations required when + * keyboard_init is called. + * + * Removed calls to cpu_sw_interrupt and replaced with + * host_simulate + * + */ + +#ifdef SCCSID +static char SccsID[]="@(#)keybd_io.c 1.35 06/27/95 Copyright Insignia Solutions Ltd."; +#endif + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_BIOS.seg" +#endif + + +/* + * O/S include files. + */ +#include +#include TypesH +#include TimeH + +/* + * SoftPC include files + */ +#include "xt.h" +#include CpuH +#include "sas.h" +#include "bios.h" +#include "ios.h" +#include "ppi.h" +#include "keyboard.h" +#include "timeval.h" +#include "timer.h" +#include "keyba.h" +#include "ica.h" +#ifndef PROD +#include "trace.h" +#endif + +#include "debug.h" +#include "idetect.h" + + +/* + * ============================================================================ + * External routines + * ============================================================================ + */ + +/* + * ============================================================================ + * Local static data and defines + * ============================================================================ + */ + +#define SHIFT_KEY_SIZE 8 +#define ALT_TABLE_SIZE 36 + +/* + * lookup table to check if the scan code received is a shift key + */ +static sys_addr shift_keys; + +/* + * corresponding table to 'shift_keys' to set relevant bits in masks when + * shift scan code received + */ +static sys_addr shift_masks; + +/* + * next two tables give values of chars when control key depressed. First + * table (ctl_n_table) is for main keyboard values and second (ctl_f_table) + * is for the function keys and keypad. + */ +static sys_addr ctl_n_table; +static sys_addr ctl_f_table; + +/* + * values of ascii keys dependiing on shift or caps states + */ +static sys_addr lowercase; +static sys_addr uppercase; + + +/* + * remapping of some keys when alt key depressed. note 1st ten are for + * keypad entries. + */ +static sys_addr alt_table; + +/* Add variables for all these entry points instead of the previously used + * defines. This allows modification of these entry points from a loaded + * driver, when the Insignia bios may not be in the loaded in the default + * or assumed location. + */ + +#if defined(NTVDM) && defined(LOCAL) +/* + * Make static fns and globals visible to win32 debuggers + */ +#undef LOCAL +#define LOCAL +#endif + +#ifndef GISP_SVGA +LOCAL word int15_seg = RCPU_INT15_SEGMENT, + int15_off = RCPU_INT15_OFFSET; + +LOCAL word int1b_seg = KEYBOARD_BREAK_INT_SEGMENT, + int1b_off = KEYBOARD_BREAK_INT_OFFSET; + +LOCAL word int05_seg = PRINT_SCREEN_INT_SEGMENT, + int05_off = PRINT_SCREEN_INT_OFFSET; + +LOCAL word rcpu_nop_segment = RCPU_NOP_SEGMENT, + rcpu_nop_offset = RCPU_NOP_OFFSET; + +LOCAL word rcpu_poll_segment = RCPU_POLL_SEGMENT, + rcpu_poll_offset = RCPU_POLL_OFFSET; +#else /* GISP_SVGA */ +/* If we are GISP_SVGA the segments will be variables anyway */ +#define int15_seg RCPU_INT15_SEGMENT +LOCAL word int15_off = RCPU_INT15_OFFSET; + +#define int1b_seg KEYBOARD_BREAK_INT_SEGMENT +LOCAL word int1b_off = KEYBOARD_BREAK_INT_OFFSET; + +#define int05_seg PRINT_SCREEN_INT_SEGMENT +LOCAL word int05_off = PRINT_SCREEN_INT_OFFSET; + +#define rcpu_nop_segment RCPU_NOP_SEGMENT +LOCAL word rcpu_nop_offset = RCPU_NOP_OFFSET; + +#define rcpu_poll_segment RCPU_POLL_SEGMENT +LOCAL word rcpu_poll_offset = RCPU_POLL_OFFSET; +#endif /* GISP_SVGA */ + +#if defined(IRET_HOOKS) && defined(GISP_CPU) +IMPORT VOID HostAllowKbdInt(); /* Allow keybd Ints without an IRET */ +#endif /* IRET_HOOKS && GISP_CPU */ + +#ifdef NTVDM + +#include "error.h" + +GLOBAL word wait_int_seg = RCPU_WAIT_INT_SEGMENT; +GLOBAL word wait_int_off = RCPU_WAIT_INT_OFFSET; +GLOBAL word dr_type_seg = DR_TYPE_SEGMENT; +GLOBAL word dr_type_off = DR_TYPE_OFFSET; +GLOBAL sys_addr dr_type_addr = DR_TYPE_ADDR; +/* Global var to indicate whether keyboard bios or hardware owns the keyboard mutex. */ +GLOBAL BOOL bBiosOwnsKbdHdw; +IMPORT ULONG WaitKbdHdw(ULONG dwTimeOut); +IMPORT VOID HostReleaseKbd(); +IMPORT VOID HostResetKbdNotFullEvent(); +IMPORT VOID HostSetKbdNotFullEvent(); +GLOBAL VOID TryKbdInt(VOID); +IMPORT VOID ResumeTimerThread(VOID); +IMPORT VOID WaitIfIdle(VOID); + + +#define FREEKBDHDW() bBiosOwnsKbdHdw = \ + ( bBiosOwnsKbdHdw ? HostReleaseKbd(), FALSE : FALSE ) + + +/* for optimizing timer hardware interrupt generation defined in timer.c */ +extern word TimerInt08Seg; +extern word TimerInt08Off; +extern word TimerInt1CSeg; +extern word TimerInt1COff; +extern word KbdInt09Seg; +extern word KbdInt09Off; +extern BOOL VDMForWOW; + +void Keyb16Request(half_word BopFnCode); + +/* optimizes 16 bit handler */ +extern word *pICounter; +extern word *pCharPollsPerTick; +extern word *pShortIdle; +extern word *pIdleNoActivity; + + +extern half_word * stream_io_buffer; +extern word * stream_io_dirty_count_ptr; +extern word stream_io_buffer_size; +extern sys_addr stream_io_bios_busy_sysaddr; + +#else +#define FREEKBDHDW() /* Nothing for conventional SoftPC */ +#endif /* NTVDM */ + +/* + * Mix in global defined data as well. + */ + +#ifndef GISP_SVGA +GLOBAL word rcpu_int1C_seg = USER_TIMER_INT_SEGMENT; +GLOBAL word rcpu_int1C_off = USER_TIMER_INT_OFFSET; + +GLOBAL word rcpu_int4A_seg = RCPU_INT4A_SEGMENT; +GLOBAL word rcpu_int4A_off = RCPU_INT4A_OFFSET; +#else /* GISP_SVGA */ + +/* For GISPSVGA the segs will already be variables */ +#define rcpu_int1C_seg = USER_TIMER_INT_SEGMENT; +GLOBAL word rcpu_int1C_off = USER_TIMER_INT_OFFSET; + +#define rcpu_int4A_seg = RCPU_INT4A_SEGMENT; +GLOBAL word rcpu_int4A_off = RCPU_INT4A_OFFSET; +#endif /* GISP_SVGA */ + +GLOBAL word dummy_int_seg = 0; +GLOBAL word dummy_int_off = 0; + +#ifdef NTVDM +GLOBAL word int13h_vector_off; +GLOBAL word int13h_vector_seg; +GLOBAL word int13h_caller_off; +GLOBAL word int13h_caller_seg; +#endif /* NTVDM */ + +#if defined(NTVDM) && defined(MONITOR) +/* +** Microsoft special. +** These variables are set below in kb_setup_vectors(), to addresses +** passed by NTIO.SYS via BOP 5F -> MS_bop_F() -> kb_setup_vectors() +** Tim June 92. +*/ +/* +** New ntio.sys variables for video ROM matching. Tim August 92. +*/ +GLOBAL word int10_seg=0; +GLOBAL word int10_caller=0; +GLOBAL word int10_vector=0; /* Address of native int 10*/ +GLOBAL word useHostInt10=0; /* var that chooses between host video ROM or BOPs */ +GLOBAL word babyModeTable=0; /* Address of small mode table lives in ntio.sys */ +GLOBAL word changing_mode_flag=0; /* ntio.sys var to indicate vid mode change */ +GLOBAL word vga1b_seg = 0; +GLOBAL word vga1b_off = 0; /* VGA capability table normally in ROM */ +GLOBAL word conf_15_off = 0; +GLOBAL word conf_15_seg = 0; /* INT15 config table normally in ROM */ + +void printer_setup_table(sys_addr table_addr); + +#endif /* NTVDM & MONITOR */ + +extern int soft_reset ; /* set for ctl-alt-dels */ + +/* + * ============================================================================ + * Local macros + * ============================================================================ + */ + +LOCAL VOID exit_from_kbd_int IPT0(); + +/* + * Function to increment BIOS buffer pointers, returns new one + */ +LOCAL word inc_buffer_ptr IFN1(word, buf_p) +{ + buf_p += 2; + if (buf_p == sas_w_at_no_check(BIOS_KB_BUFFER_END)) + buf_p = sas_w_at_no_check(BIOS_KB_BUFFER_START); + + return buf_p; +} + + + + + +/* + * ============================================================================ + * Internal functions + * ============================================================================ + */ + + +/* + * Routine to translate scan code pairs for standard calls + * Returns CF set if this scancode/char pair should be thrown away. + */ +LOCAL VOID translate_std IFN0() +{ + IU8 ah, al; + enum {dontSetCF, setCF0, setCF1} cfSet = dontSetCF; + + ah = getAH(); + al = getAL(); + + if ( ah == 0xE0 ) /* is it keypad enter or / */ + { + if ( (al == 0x0D) || (al == 0x0A) ) + setAH( 0x1C ); /* code is enter */ + else + setAH( 0x35 ); /* must be keypad ' / ' */ + + cfSet = setCF0; + } + else + { + if ( ah > 0x84 ) /* is it an extended one */ + cfSet = setCF1; + else + { + if( al == 0xF0 ) /* is it one of the 'fill ins' */ + { + if ( ah == 0) /* AH = 0 special case */ + cfSet = setCF0; + else + cfSet = setCF1; /* Delete me */ + } + else + { + if ( (al == 0xE0) && (ah != 0) ) + setAL( 0 ); /* convert to compatible output */ + + cfSet = setCF0; + } + } + } + + if (cfSet != dontSetCF) + setCF(cfSet == setCF1); +} + + +static void translate_ext() +/* + * Routine to translate scan code pairs for extended calls + */ +{ + if ( (getAL() == 0xF0 ) && (getAH() != 0) ) + setAL( 0 ); +} + +/* + * Send command or data byte to the keyboard and await for the acknowledgemnt + */ + +/* + * Arbitrary retry limits - experiments suggest that we always succeed + * on the first try in a pure SoftWindows. A "real keyboard" version may + * be different. + */ + +#define WAIT_RETRY 5 +#define RESEND_RETRY 3 + +LOCAL VOID send_data IFN1(half_word, data) +{ + int resend_retry; + word CS_save, IP_save; + half_word var_kb_flag_2; + + note_trace1(BIOS_KB_VERBOSE,"Cmd to kb i/o buff:0x%x",data); + + /* + * Save CS:IP before calling a recursive CPU to handle the interrupt + * from the keyboard + */ + + CS_save = getCS(); + IP_save = getIP(); + + /* + * Set the retry flag ( KB_FE ) to force outb() at least once. If + * we have real keyboard hardware this may get set again if the + * hardware didn't understand the command for some reason e.g. + * garbled by the serial line. + */ + + var_kb_flag_2 = sas_hw_at(kb_flag_2) | KB_FE; + resend_retry = RESEND_RETRY; + + do + { + IBOOL resend_command; + int wait_retry; + + resend_command = (var_kb_flag_2 & KB_FE) != 0; + wait_retry = WAIT_RETRY; + + /* Clear resend, acknowledge and error flags */ + var_kb_flag_2 &= ~(KB_FE + KB_FA + KB_ERR); + + /* + * Update Intel memory with cleared down flags *BEFORE* + * the outb(), which may set the acknowledge flag, if we + * execute enough Intel due to virtualisation. + */ + + sas_store(kb_flag_2, var_kb_flag_2); + + /* Do the outb if necessary */ + + if( resend_command ) + { + outb(KEYBA_IO_BUFFERS, data); + } + + /* Look for one of the flag bits to be set or time out */ + + while( !(var_kb_flag_2 & (KB_FA + KB_FE + KB_ERR)) + && ( --wait_retry > 0 )) + { + /* + * Process interrupt from kb. + * + * Note for perplexed keyboard debuggers: + * Keyboard interrupts are delayed for a few + * Intel instructions using quick events. This + * means that the IRR from the above outb() may + * not be raised until we have done the following + * sub-CPU a few times. + */ + + setCS(rcpu_nop_segment); + setIP(rcpu_nop_offset); + host_simulate(); + + /* Re-read flag byte to see if anything has happened */ + + var_kb_flag_2 = sas_hw_at(kb_flag_2); + } + + /* If we got an acknowledge we've succeeded */ + + if (var_kb_flag_2 & KB_FA) + break; + + /* Set up error flag (in case this is the last retry) */ + + note_trace0(BIOS_KB_VERBOSE,"failed to get ack ... retry"); + var_kb_flag_2 |= KB_ERR; + } + while( --resend_retry > 0 ); + + if (var_kb_flag_2 & KB_ERR) + { + note_trace0(BIOS_KB_VERBOSE,"no more retrys"); + + /* Write back flags with error bit set */ + + sas_store(kb_flag_2, var_kb_flag_2); + } + + setCS(CS_save); + setIP(IP_save); +} + + + +LOCAL VOID check_indicators IFN1(IBOOL, eoi) + /* end of interrupt flag - if set to non-zero */ + /* 0x20 is written to port 0x20 */ +{ + half_word indicators ; + half_word var_kb_flag_2; + + /* move switch indicators to bits 0-2 */ + + indicators = (sas_hw_at_no_check(kb_flag) & (CAPS_STATE + NUM_STATE + SCROLL_STATE)) >> 4; + + var_kb_flag_2 = sas_hw_at_no_check(kb_flag_2); + /* compare with previous setting */ + if ((indicators ^ var_kb_flag_2) & KB_LEDS) + { + /* check if update in progress */ + if( (var_kb_flag_2 & KB_PR_LED) == 0) + { + /* No update in progress */ + var_kb_flag_2 |= KB_PR_LED; + sas_store_no_check(kb_flag_2, var_kb_flag_2); + if (eoi) + outb(0x20, 0x20); + +#if defined(NTVDM) || defined(GISP_CPU) + /* + * On the NT port we do not update the real kbd lights + * so we don't need to do communicate with the kbd hdw (keyba.c) + * + * If this ever changes for the NT port then do not use + * send_data which forces us to switch context back to + * 16 bit and waits for a reply. Do this with a direct + * call to the kbd Hdw + * + */ + + /* set kb flag up with new status */ + + var_kb_flag_2 = (var_kb_flag_2 & 0xf8) | indicators; + sas_store_no_check(kb_flag_2, var_kb_flag_2); +#ifdef NTVDM + host_kb_light_on (indicators); +#endif + +#ifdef GISP_CPU + /* + ** We do update an emulation of the keyboard lights but we don't + ** want to do it via send_data and switching back to 16-bit. + ** We call the host routines directly. + */ + host_kb_light_on (indicators); + host_kb_light_off ((~indicators)&0x7); + +#endif /* GISP_CPU */ +#else /* not NTVDM nor GISP_CPU */ + + send_data(LED_CMD); + + /* set kb flag up with new status */ + var_kb_flag_2 = (sas_hw_at_no_check(kb_flag_2) & 0xf8) | indicators; + sas_store_no_check(kb_flag_2, var_kb_flag_2); + + /* check error from previous send_data() */ + if( (var_kb_flag_2 & KB_ERR) == 0) + { + /* No error */ + send_data(indicators); + + /* test for error */ + if(sas_hw_at_no_check(kb_flag_2) & KB_ERR) { + /* error! */ + note_trace0(BIOS_KB_VERBOSE,"got error sending change LEDs command"); + send_data(KB_ENABLE); + } + } + else + /* error! */ + send_data(KB_ENABLE); +#endif /* NTVDM or GISP_CPU */ + + /* turn off update indicator and error flag */ + sas_store_no_check (kb_flag_2, sas_hw_at_no_check(kb_flag_2) & ~(KB_PR_LED + KB_ERR)); + } + } +} + +/* + * ============================================================================ + * External functions + * ============================================================================ + */ + +/* +** called from hunter.c:do_hunter() +** tells hunter about the BIOS buffer size so it will not over fill +** the BIOS buffer +** Used in no Time Stamp mode only. +** +** Also useful in host paste code to make sure keys are not pasted in too +** fast. +*/ +int bios_buffer_size IPT0() +{ + word buffer_head, buffer_tail; + + buffer_head = sas_w_at_no_check(BIOS_KB_BUFFER_HEAD); + buffer_tail = sas_w_at_no_check(BIOS_KB_BUFFER_TAIL); + + note_trace2( BIOS_KB_VERBOSE, "BIOS kbd buffer head=%d tail=%d", + buffer_head, buffer_tail ); + if( buffer_tail > buffer_head ) + return( buffer_tail - buffer_head ); + else + return( buffer_head - buffer_tail ); +} + +LOCAL VOID K26A IFN0() +{ + /* Interrupt Return */ + outb(0x20, 0x20); + outb(KEYBA_STATUS_CMD, ENA_KBD); +} + +LOCAL VOID K26 IFN0() +{ + /* Reset last char H.C. flag */ + sas_store_no_check(kb_flag_3, sas_hw_at_no_check(kb_flag_3) & ~(LC_E0 + LC_E1)); + + /* (same as K26A()) */ + outb(0x20, 0x20); + outb(KEYBA_STATUS_CMD, ENA_KBD); +} + + +#ifndef NTVDM + +LOCAL VOID INT15 IFN0() +{ + word saveCS, saveIP; + + saveCS = getCS(); + saveIP = getIP(); + + setCS(int15_seg); + setIP(int15_off); + + host_simulate(); + + setCS(saveCS); + setIP(saveIP); +} + +#else /* NTVDM */ + +void INT15(void); +word sp_int15_handler_seg = 0; +word sp_int15_handler_off = 0; + +#endif /* NTVDM */ + +#ifndef NTVDM +#define BEEP(message) always_trace0(message); \ + host_alarm(250000L); \ + K26A() +#else /* NTVDM */ +/* NTVDM code size is too large, change this often used macro + * to a function, as the call overhead is not justified + */ +void BEEP(char *message) +{ + note_trace0(BIOS_KB_VERBOSE,message); + host_alarm(250000L); + K26A(); +} +#endif /* NTVDM */ + + + +/* +** Tell ICA End of Interrupt has happened, the ICA will +** allow interupts to go off again. +** Call INT 15. +** Reenable the Keyboard serial line so Keyboard +** interrupts can go off. +** NOTE: +** this is different to the real BIOS. The real BIOS +** does ICA, Keyboard then INT 15, if we do that Keyboard +** interrupts occur too soon, during the INT 15 and blow the +** DOS stack. We effectively stop Keybd interrupts during the +** INT 15. +** +** Take a leaf outta NTVDM's book and make these +** functions rather than macros. (This reduced the size of keybd_io.c.o +** on the Mac from 38K to 12K!) After all, it isn't as if keyboards are +** highly speed sensitive! +*/ +#ifndef NTVDM + +LOCAL VOID PutInBufferFunc IFN2(half_word, s, half_word, v) +{ + word buffer_head, buffer_tail, buffer_ptr; + + buffer_tail = sas_w_at_no_check(BIOS_KB_BUFFER_TAIL); + buffer_head = sas_w_at_no_check(BIOS_KB_BUFFER_HEAD); + buffer_ptr = inc_buffer_ptr(/* from: */buffer_tail); + + if (buffer_ptr == buffer_head) { + BEEP("BIOS keyboard buffer overflow"); + } + else { + sas_store_no_check(BIOS_VAR_START + buffer_tail, v); + sas_store_no_check(BIOS_VAR_START + buffer_tail+1, s); + sas_storew_no_check(BIOS_KB_BUFFER_TAIL, buffer_ptr); + + outb(0x20, 0x20); + setAX(0x9102); + INT15(); + + outb(KEYBA_STATUS_CMD, ENA_KBD); + sas_store (kb_flag_3, sas_hw_at(kb_flag_3) & ~(LC_E0 + LC_E1)); + setIF(0); + } + + exit_from_kbd_int(); +} + + +#else /* NTVDM */ + + +/* NT's PutInBuffer seems to be slightly different to PutInBufferFunc above. */ +/* So I'm Not Touching it! (Is this a good expansion of "NT"? :-) */ + +/* Our code size is too large, change this often used macro + * to a function, as the call overhead is not justified + */ + +void NtPutInBuffer(half_word s, half_word v) +{ + word buffer_head, buffer_tail, buffer_ptr; + + buffer_tail = sas_w_at_no_check(BIOS_KB_BUFFER_TAIL); + buffer_head = sas_w_at_no_check(BIOS_KB_BUFFER_HEAD); + buffer_ptr = inc_buffer_ptr(/* from: */buffer_tail); + + if (buffer_ptr == buffer_head) { + BEEP("BIOS keyboard buffer overflow"); + } + else { + sas_store_no_check(BIOS_VAR_START + buffer_tail, v); + sas_store_no_check(BIOS_VAR_START + buffer_tail+1, s); + sas_storew_no_check(BIOS_KB_BUFFER_TAIL, buffer_ptr); + setAX(0x9102); + INT15(); + K26(); + setIF(0); + } + + exit_from_kbd_int(); +} + +#define PUT_IN_BUFFER(s, v) NtPutInBuffer(s,v); return +#endif /* NTVDM */ + + +/* Eurrgh; macros with embedded "return"s! */ + +#ifndef NTVDM +#define PUT_IN_BUFFER(s, v) PutInBufferFunc(s,v); return +#endif /* !NTVDM */ + +LOCAL VOID CheckAndPutInBufferFunc IFN2(half_word, s,half_word, v) +{ + if ((s == 0xff) || (v == 0xff)) { + K26(); + exit_from_kbd_int(); + } + else { +#ifndef NTVDM + PutInBufferFunc(s, v); +#else /* NTVDM */ + NtPutInBuffer(s, v); +#endif /* !NTVDM */ + } +} + +#define CHECK_AND_PUT_IN_BUFFER(s,v) CheckAndPutInBufferFunc(s, v); return + + +LOCAL VOID PAUSE IFN0() +{ + word CS_save; /* tmp. store for CS value */ + word IP_save; /* tmp. store for IP value */ + + sas_store_no_check(kb_flag_1, sas_hw_at_no_check(kb_flag_1) | HOLD_STATE); + + outb(KEYBA_STATUS_CMD, ENA_KBD); + outb(0x20, 0x20); + + CS_save = getCS(); + IP_save = getIP(); + + FREEKBDHDW(); + + do { +#if defined(IRET_HOOKS) && defined(GISP_CPU) + HostAllowKbdInt(); /* Allow a keypress to generate an interrupt */ +#endif /* IRET_HOOKS && GISP_CPU */ + + +#if defined(NTVDM) + IDLE_waitio(); +#endif + + setCS(rcpu_nop_segment); + setIP(rcpu_nop_offset); + host_simulate(); + + } while (sas_hw_at_no_check(kb_flag_1) & HOLD_STATE); + + setCS(CS_save); + setIP(IP_save); + outb(KEYBA_STATUS_CMD, ENA_KBD); +} + +#ifndef NTVDM +static int re_entry_level=0; +#endif + +/* +** All exits from keyboard_int() call this first. +*/ +LOCAL void exit_from_kbd_int IFN0() +{ +#ifndef NTVDM + --re_entry_level; + if( re_entry_level >= 4 ) + always_trace1("ERROR: KBD INT bad exit level %d", re_entry_level); +#endif + note_trace0( BIOS_KB_VERBOSE, "KBD BIOS - END" ); + setIF( 0 ); + FREEKBDHDW(); /* JonLe NTVDM Mod */ +} + +void keyboard_int IFN0() +{ + int i; /* loop counter */ + + half_word code, /* scan code from keyboard */ + code_save, /* tmp variable for above */ + chr, /* ASCII char code */ + last_kb_flag_3, /* kb_flag_3 saved */ + mask; +#ifdef NTVDM + word IP_save, + buffer_head, /* ptr. to head of kb buffer */ + buffer_tail; /* ptr. to tail of kb buffer */ + half_word BopFnCode; +#endif /* NTVDM */ + + + + boolean upper; /* flag indicating upper case */ + +#ifdef NTVDM + BopFnCode = getAH(); + if (BopFnCode) { + Keyb16Request(BopFnCode); + return; + } +#endif +#ifndef NTVDM + ++re_entry_level; + if( re_entry_level > 4 ){ + always_trace1("ERROR: KBD BIOS re-entered at level %d\n", re_entry_level-1); + } +#endif + setIF(0); + note_trace0(BIOS_KB_VERBOSE,"KBD BIOS start"); + +#ifdef NTVDM /* JonLe keyboard mod */ + bBiosOwnsKbdHdw = !WaitKbdHdw(5000); +#endif /* NTVDM */ + + /* disable keyboard */ + outb(KEYBA_STATUS_CMD, DIS_KBD); + +#ifdef NTVDM + /* + * CarbonCopy traces int 9 in order to gain control + * over where the kbd data is coming from (the physical kbd + * or the serial link) The kbd_inb instruction must be visible + * in the 16 bit code via int 1 tracing, for CarbonCopy to work. + * interrupts should be kept off. + */ + if (getTF()) { + IP_save = getIP(); + setIP(IP_save + 4); /* adavance by 4 bytes, pop ax, jmp iret_com */ + host_simulate(); + setIP(IP_save); + code = getAL(); + } + else +#endif + inb(KEYBA_IO_BUFFERS, &code); /* get scan_code */ + + /* call recursive CPU to handle int 15 call */ + setAH(0x4f); + setAL(code); + setCF(1); /* Default return says scan code NOT consumed - needed by Freelance Plus 3.01 */ + INT15(); + code = getAL(); /* suret int 15 function can change the scan code in AL */ + + + if(!getCF()) /* check CF */ + { + K26(); + exit_from_kbd_int();return; + } + + if ( code == KB_RESEND ) /* check for resend */ + { + sas_store_no_check (kb_flag_2, sas_hw_at_no_check(kb_flag_2) | KB_FE); + K26(); + exit_from_kbd_int();return; + } + + if( code == KB_ACK ) /* check for acknowledge */ + { + sas_store_no_check (kb_flag_2, sas_hw_at_no_check(kb_flag_2) | KB_FA); + K26(); + exit_from_kbd_int();return; + } + + check_indicators(0); + + if ( code == KB_OVER_RUN ) /* test for overrun */ + { + BEEP("hardware keyboard buffer overflow"); + exit_from_kbd_int();return; + } + last_kb_flag_3 = sas_hw_at_no_check(kb_flag_3); + + /* TEST TO SEE IF A READ_ID IS IN PROGRESS */ + if ( last_kb_flag_3 & (RD_ID + LC_AB) ) + { + if ( sas_hw_at_no_check(kb_flag) & RD_ID ) /* is read_id flag on */ + { + if( code == ID_1 ) /* is this the 1st ID char. */ + sas_store_no_check (kb_flag_3, sas_hw_at_no_check(kb_flag_3) | LC_AB); + sas_store_no_check (kb_flag_3, sas_hw_at_no_check(kb_flag_3) & ~RD_ID); + } + else + { + sas_store_no_check (kb_flag_3, sas_hw_at_no_check(kb_flag_3) & ~LC_AB); + if( code != ID_2A ) /* is this the 2nd ID char. */ + { + if( code == ID_2 ) + { + /* should we set NUM LOCK */ + if( last_kb_flag_3 & SET_NUM_LK ) + { + sas_store_no_check (kb_flag, sas_hw_at_no_check(kb_flag) | NUM_STATE); + check_indicators(1); + } + } + else + { + K26(); + exit_from_kbd_int();return; + } + } + sas_store_no_check (kb_flag_3, sas_hw_at_no_check(kb_flag_3) | KBX); /* enhanced kbd found */ + } + K26(); + exit_from_kbd_int();return; + } + + if( code == MC_E0 ) /* general marker code? */ + { + sas_store_no_check(kb_flag_3, sas_hw_at_no_check(kb_flag_3) | ( LC_E0 + KBX )); + K26A(); + exit_from_kbd_int();return; + } + + if( code == MC_E1 ) /* the pause key ? */ + { + sas_store_no_check (kb_flag_3, sas_hw_at_no_check (kb_flag_3) | ( LC_E1 + KBX )); + K26A(); + exit_from_kbd_int();return; + } + + code_save = code; /* turn off break bit */ + code &= 0x7f; + + if( last_kb_flag_3 & LC_E0) /* last code=E0 marker? */ + { + /* is it one of the shift keys */ + if( code == sas_hw_at_no_check(shift_keys+6) || code == sas_hw_at_no_check(shift_keys+7) ) + { + K26(); + exit_from_kbd_int();return; + } + } + else if( last_kb_flag_3 & LC_E1 ) /* last code=E1 marker? */ + { + /* is it alt, ctl or one of the shift keys */ + if( code == sas_hw_at_no_check(shift_keys+4) || code == sas_hw_at_no_check(shift_keys+5) || + code == sas_hw_at_no_check(shift_keys+6) || code == sas_hw_at_no_check(shift_keys+7) ) + { + K26A(); + exit_from_kbd_int();return; + } + if( code == NUM_KEY ) /* is it the pause key */ + { + /* is it the break or are we paused already */ + if( (code_save & 0x80) || (sas_hw_at_no_check(kb_flag_1) & HOLD_STATE) ) + { + K26(); + exit_from_kbd_int();return; + } + PAUSE(); + exit_from_kbd_int();return; + } + } + /* TEST FOR SYSTEM KEY */ + else if( code == SYS_KEY ) + { + if( code_save & 0x80 ) /* check for break code */ + { + sas_store_no_check(kb_flag_1, sas_hw_at_no_check(kb_flag_1) & ~SYS_SHIFT); + K26A(); + /* call recursive CPU to call INT 15 */ + setAX(0x8501); + INT15(); + exit_from_kbd_int();return; + } + if( sas_hw_at_no_check(kb_flag_1) & SYS_SHIFT) /* Sys key held down ? */ + { + K26(); + exit_from_kbd_int();return; + } + sas_store_no_check (kb_flag_1, sas_hw_at_no_check(kb_flag_1) | SYS_SHIFT); + K26A(); + /* call recursive CPU to call INT 15 */ + setAX(0x8500); + INT15(); + exit_from_kbd_int();return; + } + /* TEST FOR SHIFT KEYS */ + for( i=0; i < SHIFT_KEY_SIZE; i++) + if ( code == sas_hw_at_no_check(shift_keys+i) ) + break; + code = code_save; + + if( i < SHIFT_KEY_SIZE ) /* is there a match */ + { + mask = sas_hw_at_no_check (shift_masks+i); + if( code & 0x80 ) /* test for break key */ + { + if (mask >= SCROLL_SHIFT) /* is this a toggle key */ + { + sas_store_no_check (kb_flag_1, sas_hw_at_no_check(kb_flag_1) & ~mask); + K26(); + exit_from_kbd_int();return; + } + + sas_store_no_check (kb_flag, sas_hw_at_no_check(kb_flag) & ~mask); /* turn off shift bit */ + if( mask >= CTL_SHIFT) /* alt or ctl ? */ + { + if( sas_hw_at_no_check (kb_flag_3) & LC_E0 ) /* 2nd alt or ctl ? */ + sas_store_no_check (kb_flag_3, sas_hw_at_no_check(kb_flag_3) & ~mask); + else + sas_store_no_check (kb_flag_1, sas_hw_at_no_check(kb_flag_1) & ~(mask >> 2)); + sas_store_no_check (kb_flag, sas_hw_at_no_check(kb_flag) | ((((sas_hw_at_no_check(kb_flag) >>2 ) | sas_hw_at(kb_flag_1)) << 2) & (ALT_SHIFT + CTL_SHIFT))); + } + if(code != (ALT_KEY + 0x80)) /* alt shift release ? */ + { + K26(); + exit_from_kbd_int();return; + } + + code = sas_hw_at_no_check(alt_input); + if ( code == 0 ) /* input == 0 ? */ + { + K26(); + exit_from_kbd_int();return; + } + + sas_store_no_check(alt_input, 0); /* Zero the ALT_INPUT char */ + /* At this point, the ALT input char (now in "code") should be put in the buffer. */ + PUT_IN_BUFFER(0, code); +#ifdef NTVDM + return; +#endif + } + /* SHIFT MAKE FOUND, DETERMINE SET OR TOGGLE */ + if( mask < SCROLL_SHIFT ) + { + sas_store_no_check (kb_flag, sas_hw_at_no_check(kb_flag) | mask); + if ( mask & (CTL_SHIFT + ALT_SHIFT) ) + { + if( sas_hw_at_no_check(kb_flag_3) & LC_E0 ) /* one of the new keys ?*/ + sas_store_no_check(kb_flag_3, sas_hw_at_no_check(kb_flag_3) | mask); /* set right, ctl alt */ + else + sas_store_no_check (kb_flag_1,sas_hw_at_no_check(kb_flag_1) | (mask >> 2)); /* set left, ctl alt */ + } + K26(); + exit_from_kbd_int();return; + } + /* TOGGLED SHIFT KEY, TEST FOR 1ST MAKE OR NOT */ + if( (sas_hw_at_no_check(kb_flag) & CTL_SHIFT) == 0 ) + { + if( code == INS_KEY ) + { + if( sas_hw_at_no_check(kb_flag) & ALT_SHIFT ) + goto label1; + + if( (sas_hw_at_no_check(kb_flag_3) & LC_E0) == 0 ) /* the new insert key ? */ + { + /* only continue if NUM_STATE flag set OR + one or both of the shift flags */ + if( ((sas_hw_at_no_check(kb_flag) & + (NUM_STATE + LEFT_SHIFT + RIGHT_SHIFT)) + == NUM_STATE) || + (((sas_hw_at_no_check(kb_flag) & NUM_STATE) == 0) + && (sas_hw_at_no_check(kb_flag) & (LEFT_SHIFT + RIGHT_SHIFT))) ) + goto label1; + } + } + /* shift toggle key hit */ + if( mask & sas_hw_at_no_check(kb_flag_1) ) /* already depressed ? */ + { + K26(); + exit_from_kbd_int();return; + } + sas_store_no_check (kb_flag_1, sas_hw_at_no_check(kb_flag_1) | mask); /* set and toggle flags */ + sas_store_no_check ( kb_flag, sas_hw_at_no_check(kb_flag) ^ mask); + if( mask & (CAPS_SHIFT + NUM_SHIFT + SCROLL_SHIFT) ) + check_indicators(1); + + if( code == INS_KEY ) /* 1st make of ins key */ + goto label2; + + K26(); + exit_from_kbd_int();return; + } + } +label1: /* TEST FOR HOLD STATE */ + if( code & 0x80 ) /* test for break */ + { + K26(); + exit_from_kbd_int();return; + } + if( sas_hw_at_no_check(kb_flag_1) & HOLD_STATE ) /* in hold state ? */ + { + if( code != NUM_KEY ) + sas_store_no_check (kb_flag_1, sas_hw_at_no_check(kb_flag_1) & ~HOLD_STATE); + K26(); + exit_from_kbd_int();return; + } +label2: /* NOT IN HOLD STATE */ + if( code > 88) /* out of range ? */ + { + K26(); + exit_from_kbd_int();return; + } + /* are we in alternate shift */ + if( (sas_hw_at_no_check(kb_flag) & ALT_SHIFT) && ( ((sas_hw_at_no_check(kb_flag_3) & KBX) == 0) || + ((sas_hw_at_no_check(kb_flag_1) & SYS_SHIFT) == 0) ) ) + { + /* TEST FOR RESET KEY SEQUENCE (CTL ALT DEL) */ + if( (sas_hw_at_no_check(kb_flag) & CTL_SHIFT ) && (code == DEL_KEY) ) + { +#ifndef NTVDM + reboot(); +#else + K26(); +#endif + exit_from_kbd_int();return; + } + /* IN ALTERNATE SHIFT, RESET NOT FOUND */ + if( code == SPACEBAR ) + { + PUT_IN_BUFFER(code, ' '); + } + if( code == TAB_KEY ) + { + PUT_IN_BUFFER(0xa5, 0 ); /* special code for alt-tab */ + } + if( (code == KEY_PAD_MINUS) || (code == KEY_PAD_PLUS) ) + { + PUT_IN_BUFFER(code, 0xf0); /* special ascii code */ + } + /* LOOK FOR KEYPAD ENTRY */ + for (i = 0; i < 10; i++ ) + if ( code == sas_hw_at_no_check (alt_table+i) ) + break; + if( i < 10 ) + { + if( sas_hw_at_no_check(kb_flag_3) & LC_E0 ) /* one of the new keys ? */ + { + PUT_IN_BUFFER((code + 80), 0 ); + } + sas_store_no_check (alt_input, sas_hw_at_no_check(alt_input) * 10 + i); + K26(); + exit_from_kbd_int();return; + } + /* LOOK FOR SUPERSHIFT ENTRY */ + for( i = 10; i < ALT_TABLE_SIZE; i++) + if( code == sas_hw_at_no_check (alt_table+i)) + break; + if( i < ALT_TABLE_SIZE ) + { + PUT_IN_BUFFER(code, 0 ); + } + /* LOOK FOR TOP ROW OF ALTERNATE SHIFT */ + if( code < TOP_1_KEY ) + { + CHECK_AND_PUT_IN_BUFFER(code, 0xf0); /* must be escape */ + } + if( code < BS_KEY ) + { + PUT_IN_BUFFER((code + 118), 0); + } + /* TRANSLATE ALTERNATE SHIFT PSEUDO SCAN CODES */ + if((code == F11_M) || (code == F12_M) ) /* F11 or F12 */ + { + PUT_IN_BUFFER((code + 52), 0 ); + } + if( sas_hw_at_no_check(kb_flag_3) & LC_E0 ) /* one of the new keys ?*/ + { + if( code == KEY_PAD_ENTER ) + { + PUT_IN_BUFFER(0xa6, 0); + } + if( code == DEL_KEY ) + { + PUT_IN_BUFFER(( code + 80), 0 ); + } + if( code == KEY_PAD_SLASH ) + { + PUT_IN_BUFFER(0xa4, 0); + } + K26(); + exit_from_kbd_int();return; + } + if( code < F1_KEY ) + { + CHECK_AND_PUT_IN_BUFFER(code, 0xf0); + } + if( code <= F10_KEY ) + { + PUT_IN_BUFFER( (code + 45), 0 ); + } + K26(); + exit_from_kbd_int();return; + } + /* NOT IN ALTERNATE SHIFT */ + if(sas_hw_at_no_check(kb_flag) & CTL_SHIFT) /* control shift ? */ + { + if( (code == SCROLL_KEY) && ( ((sas_hw_at_no_check(kb_flag_3) & KBX) == 0) || (sas_hw_at_no_check(kb_flag_3) & LC_E0) ) ) + { + /* reset buffer to empty */ + sas_storew_no_check(BIOS_KB_BUFFER_TAIL, sas_w_at_no_check(BIOS_KB_BUFFER_HEAD)); + + sas_store (bios_break, 0x80); /* turn on bios brk bit */ + outb(KEYBA_STATUS_CMD, ENA_KBD); /* enable keyboard */ + + FREEKBDHDW(); /* JonLe NTVDM mod */ + + exec_sw_interrupt(int1b_seg, int1b_off); + + PUT_IN_BUFFER(0, 0); + } + /* TEST FOR PAUSE */ + if( ((sas_hw_at_no_check(kb_flag_3) & KBX) == 0) && (code == NUM_KEY)) + { + PAUSE(); + exit_from_kbd_int();return; + } + /* TEST SPECIAL CASE KEY 55 */ + if( code == PRINT_SCR_KEY ) + { + if ( ((sas_hw_at_no_check(kb_flag_3) & KBX) == 0) || (sas_hw_at_no_check(kb_flag_3) &LC_E0) ) + { + PUT_IN_BUFFER(0x72, 0); + } + } + else + { + if( code != TAB_KEY ) + { + if( (code == KEY_PAD_SLASH) && (sas_hw_at_no_check(kb_flag_3) & LC_E0) ) + { + PUT_IN_BUFFER(0x95, 0 ); + } + if( code < F1_KEY ) /* is it in char table? */ + { + if( sas_hw_at_no_check(kb_flag_3) & LC_E0) + { + CHECK_AND_PUT_IN_BUFFER(MC_E0, sas_hw_at_no_check(ctl_n_table+code - 1) ); + } + else + { + CHECK_AND_PUT_IN_BUFFER(code, sas_hw_at_no_check(ctl_n_table+code - 1) ); + } + } + } + } + chr = ( sas_hw_at_no_check(kb_flag_3) & LC_E0 ) ? MC_E0 : 0; + CHECK_AND_PUT_IN_BUFFER(sas_hw_at_no_check(ctl_n_table+code - 1), chr); + } + /* NOT IN CONTROL SHIFT */ + + if( code <= CAPS_KEY ) + { + if( code == PRINT_SCR_KEY ) + { + if( ((sas_hw_at_no_check(kb_flag_3) & (KBX + LC_E0)) == (KBX + LC_E0)) || + ( ((sas_hw_at_no_check(kb_flag_3) & KBX) == 0) && (sas_hw_at_no_check(kb_flag) & (LEFT_SHIFT + RIGHT_SHIFT))) ) + { + /* print screen */ + outb(KEYBA_STATUS_CMD, ENA_KBD); + outb(0x20, 0x20); + + FREEKBDHDW(); /* JonLe NTVDM Mod */ + + exec_sw_interrupt(int05_seg, int05_off); + + sas_store_no_check (kb_flag_3, sas_hw_at_no_check(kb_flag_3)& ~(LC_E0 + LC_E1)); + exit_from_kbd_int();return; + } + } + else + { + if( ((sas_hw_at_no_check(kb_flag_3) & LC_E0) == 0) || (code != KEY_PAD_SLASH)) + { + for( i = 10; i < ALT_TABLE_SIZE; i++ ) + if(code == sas_hw_at_no_check(alt_table+i)) + break; + /* did we find one */ + upper = FALSE; + if( (i < ALT_TABLE_SIZE) && (sas_hw_at_no_check(kb_flag) & CAPS_STATE) ) + { + if( (sas_hw_at_no_check(kb_flag) & (LEFT_SHIFT + RIGHT_SHIFT)) == 0 ) + upper = TRUE; + } + else + { + if( sas_hw_at_no_check(kb_flag) & (LEFT_SHIFT + RIGHT_SHIFT) ) + upper = TRUE; + } + + if (upper) + { + /* translate to upper case */ + if( sas_hw_at_no_check(kb_flag_3) & LC_E0) + { + CHECK_AND_PUT_IN_BUFFER(MC_E0, sas_hw_at_no_check(uppercase+code - 1) ); + } + else + { + CHECK_AND_PUT_IN_BUFFER(code, sas_hw_at_no_check (uppercase+code - 1) ); + } + } + } + } + /* translate to lower case */ + if( sas_hw_at_no_check(kb_flag_3) & LC_E0) + { + CHECK_AND_PUT_IN_BUFFER(MC_E0, sas_hw_at_no_check (lowercase+code - 1) ); + } + else + { + CHECK_AND_PUT_IN_BUFFER(code, sas_hw_at_no_check(lowercase+code - 1) ); + } + } + /* TEST FOR KEYS F1 - F10 */ + /* 7.10.92 MG AND TEST FOR F11 AND F12 !!!! + We were shoving the code for shift-F11 or shift-F12 in if + you pressed unshifted keys. This has been changed so that all the + function keys are handled the same way, which is the correct + procedure. + */ + + if( code > F10_KEY && (code != F11_KEY && code != F12_KEY) ) + { + if( code > DEL_KEY ) + { + if (code == WT_KEY ) + { + if ( sas_hw_at_no_check(kb_flag) & (LEFT_SHIFT + RIGHT_SHIFT) ) + { + /* translate to upper case */ + if( sas_hw_at_no_check(kb_flag_3) & LC_E0) + { + CHECK_AND_PUT_IN_BUFFER(MC_E0, sas_hw_at_no_check(uppercase+code - 1) ); + } + else + { + CHECK_AND_PUT_IN_BUFFER(code, sas_hw_at_no_check(uppercase+code - 1) ); + } + } + else + { + /* translate to lower case */ + if( sas_hw_at_no_check(kb_flag_3) & LC_E0) + { + CHECK_AND_PUT_IN_BUFFER(MC_E0, sas_hw_at_no_check(lowercase+code - 1) ); + } + else + { + CHECK_AND_PUT_IN_BUFFER(code, sas_hw_at_no_check(lowercase+code - 1) ); + } + } + } + else + { + if( (code == 76) && ((sas_hw_at_no_check(kb_flag) & (LEFT_SHIFT + RIGHT_SHIFT)) == 0)) + { + PUT_IN_BUFFER( code, 0xf0); + } + /* translate for pseudo scan codes */ + chr = ( sas_hw_at_no_check(kb_flag_3) & LC_E0 ) ? MC_E0 : 0; + + /* Should this always be upper case ???? */ + + CHECK_AND_PUT_IN_BUFFER(sas_hw_at_no_check (uppercase+code - 1), chr); + } + } + if ( + (code == KEY_PAD_MINUS) || + (code == KEY_PAD_PLUS) || + ( !(sas_hw_at_no_check(kb_flag_3) & LC_E0) && + ( + ((sas_hw_at_no_check(kb_flag) & (NUM_STATE + LEFT_SHIFT + RIGHT_SHIFT)) == NUM_STATE) || + (((sas_hw_at_no_check(kb_flag) & NUM_STATE) == 0) && (sas_hw_at_no_check(kb_flag) & (LEFT_SHIFT + RIGHT_SHIFT))) + ) + ) + ) + { + /* translate to upper case */ + if( sas_hw_at_no_check(kb_flag_3) & LC_E0) + { + CHECK_AND_PUT_IN_BUFFER(MC_E0, sas_hw_at_no_check(uppercase+code - 1) ); + } + else + { + CHECK_AND_PUT_IN_BUFFER(code, sas_hw_at_no_check(uppercase+code - 1) ); + } + } + } + else + { + if( sas_hw_at_no_check(kb_flag) & (LEFT_SHIFT + RIGHT_SHIFT) ) + { + /* translate for pseudo scan codes */ + chr = ( sas_hw_at_no_check(kb_flag_3) & LC_E0 ) ? MC_E0 : 0; + CHECK_AND_PUT_IN_BUFFER(sas_hw_at_no_check(uppercase+code - 1), chr); + } + } + if ( code == 76 ) + { + PUT_IN_BUFFER(code, 0xf0 ); + } + /* translate for pseudo scan codes */ + chr = ( sas_hw_at_no_check(kb_flag_3) & LC_E0 ) ? MC_E0 : 0; + CHECK_AND_PUT_IN_BUFFER(sas_hw_at_no_check(lowercase+code - 1), chr); + +} /* end of keyboard_int() AT version */ + + +void kb_idle_poll() +{ + /* + * this routine is called from bios assembler routines to + * cause an idle poll to occur. + */ + IDLE_poll(); +} + + +#ifdef NTVDM + /* + * Ntvdm has a 16-bit int 16 handler + * it requires a few services for idle + * detection from softpc... + * + */ +void keyboard_io() +{ + switch (getAH()) { + /* + * The 16 bit thread has not reached idle status yet + * but it is polling the kbd, so do some brief waits. + */ + case 0: + WaitIfIdle(); +#ifndef NTVDM + if (!WaitKbdHdw(0)) { + TryKbdInt(); + HostReleaseKbd(); + } +#endif /* NTVDM */ + break; + + /* + * App wants to idle, so consult idle algorithm + */ + case 1: + IDLE_poll(); + break; + + /* + * App is starting a waitio + */ + case 2: + IDLE_waitio(); + break; + + /* + * update the keyboard lights, + */ + case 3: + host_kb_light_on (getAL()); + break; + } +} + +#else +void keyboard_io() +{ + /* + * Request to keyboard. The AH register holds the type of request: + * + * AH == 0 Read an character from the queue - wait if no + * character available. Return character in AL + * and the scan code in AH. + * + * AH == 1 Determine if there is a character in the queue. + * Set ZF = 0 if there is a character and return + * it in AX (but leave it in the queue). + * + * AH == 2 Return shift state in AL. + * + * For AH = 0 to 2, the value returned in AH is zero. This correction + * made in r2.69. + * + * NB : The order of reference/increment of buffer_head is critical to + * ensure we do not upset put_in_buffer(). + * + * + * XT-SFD BIOS Extended functions: + * + * AH == 5 Place ASCII char/scan code pair (CL / CH) + * into tail of keyboard buffer. Return 0 in + * AL if successful, 1 if buffer already full. + * + * AH == 0x10 Extended read for enhanced keyboard. + * + * AH == 0x11 Extended function 1 for enhanced keyboard. + * + * AH == 0x12 Extended shift status. AL contains kb_flag, + * AH has bits for left/right Alt and Ctrl keys + * from kb_flag_1 and kb_flag_3. + */ + word buffer_head, /* local copy of BIOS data area variable*/ + buffer_tail, /* local copy of BIOS data area variable*/ + buffer_ptr; /* pointer into BIOS keyboard buffer */ + +#define INT16H_DEC 0x12 /* AH decremented by this if invalid command */ + + word CS_save, /* CS before recursive CPU call */ + IP_save; /* IP before recursive CPU call */ + half_word data, /* byte conyaining typamatic data */ + status1, /* temp variables used for storing */ + status2; /* status in funtion 0x12 */ + + INT func_index; /* func_index == AH */ + + + setZF(0); + func_index = (INT)getAH(); + + note_trace1( BIOS_KB_VERBOSE, "Keyboard BIOS func 0x%x", func_index); + + + switch (func_index) { + + case 0x00: /* Read next char in Kbd buffer */ + + /* + * The AT emulation of the BIOS uses a recursive CPU to handle + * the HW interrrupts, so there is no need to set the Zero Flag + * and return to our CPU (see original xt version ) + */ + buffer_head = sas_w_at_no_check(BIOS_KB_BUFFER_HEAD); + buffer_tail = sas_w_at_no_check(BIOS_KB_BUFFER_TAIL); + + if (buffer_tail == buffer_head) + { + IDLE_waitio(); + + setAX(0x9002); + INT15(); /* call int 15h - wait function */ + } + + do + { + check_indicators(0); /* see if LED's need updating */ + + buffer_head = sas_w_at_no_check(BIOS_KB_BUFFER_HEAD); + buffer_tail = sas_w_at_no_check(BIOS_KB_BUFFER_TAIL); + + if (buffer_tail == buffer_head) + { + CS_save = getCS(); + IP_save = getIP(); + + /* wait for character in buffer */ + + do { + IDLE_poll(); + + setCS(rcpu_poll_segment); + setIP(rcpu_poll_offset); + host_simulate(); + buffer_head = sas_w_at_no_check(BIOS_KB_BUFFER_HEAD); + buffer_tail = sas_w_at_no_check(BIOS_KB_BUFFER_TAIL); + + } while (buffer_tail == buffer_head); + + + setCS(CS_save); + setIP(IP_save); + } + + setAX(sas_w_at_no_check(BIOS_VAR_START + buffer_head)); + + buffer_head = inc_buffer_ptr(/* from: */buffer_head); + sas_storew_no_check(BIOS_KB_BUFFER_HEAD, buffer_head); + + translate_std(); /*translate scan_code pairs */ + } + while (getCF()); /* if CF set throw code away and start again */ + + setIF(1); + + IDLE_init(); + + break; + + + case 0x01: /* Set ZF to reflect char availability in Kbd buffer */ + + do + { + check_indicators(1); /* see if LED's need updating */ + /* and issue an out 20h,20h */ + + buffer_head = sas_w_at_no_check(BIOS_KB_BUFFER_HEAD); + buffer_tail = sas_w_at_no_check(BIOS_KB_BUFFER_TAIL); + + setAX(sas_w_at_no_check(BIOS_VAR_START + buffer_head)); + + if (buffer_tail == buffer_head) + { + /* buffer empty - set flag and return */ + IDLE_poll(); + + setZF(1); + break; + } + else + IDLE_init(); + + translate_std(); /* translate scan_code pairs, returns CF if throwaway */ + if(getCF()) + { + /* throw code away by incrementing pointer */ + buffer_head = inc_buffer_ptr(/* from: */buffer_head); + sas_storew_no_check(BIOS_KB_BUFFER_HEAD, buffer_head); + } + } + while (getCF()); /* if CF set - start again */ + setIF(1); + + break; + + + case 0x02: /* AL := Current Shift Status (really "kb_flag") */ + + setAH(0); + setAL(sas_hw_at_no_check(kb_flag)); + + break; + + + case 0x03: /* Alter typematic rate */ + + /* check for correct values in registers */ + if( (getAL() == 5) && !(getBX() & 0xfce0) ) + { + note_trace1(BIOS_KB_VERBOSE, "\talter typematic rate (BX %#x)\n", getBX()); + + send_data(KB_TYPA_RD); + data = (getBH() << 5) | getBL(); + send_data(data); + } + + break; + + + case 0x05: /* Place ASCII + ScanCode in Kbd Buffer */ + + buffer_head = sas_w_at_no_check(BIOS_KB_BUFFER_HEAD); + buffer_tail = sas_w_at_no_check(BIOS_KB_BUFFER_TAIL); + + /* + * check for sufficient space - if no set AL + */ + + buffer_ptr = inc_buffer_ptr(/*from:*/buffer_tail); + + if( buffer_head == buffer_ptr ) + setAL( 1 ); + else { + /* + * load CX into buffer and update buffer_tail + */ + sas_storew_no_check(BIOS_VAR_START + buffer_tail, getCX() ); + sas_storew_no_check(BIOS_KB_BUFFER_TAIL, buffer_ptr); + setAL( 0 ); + } + setAH( 0 ); + setIF(1); + + break; + + + case 0x10: /* Extended ASCII Read */ + + buffer_head = sas_w_at_no_check(BIOS_KB_BUFFER_HEAD); + buffer_tail = sas_w_at_no_check(BIOS_KB_BUFFER_TAIL); + + if (buffer_tail == buffer_head) + { + IDLE_waitio(); + + setAX(0x9002); + INT15(); /* call int 15h - wait function */ + } + check_indicators(0); /* see if LED's need updating */ + + buffer_head = sas_w_at_no_check(BIOS_KB_BUFFER_HEAD); + buffer_tail = sas_w_at_no_check(BIOS_KB_BUFFER_TAIL); + + if (buffer_tail == buffer_head) + { + CS_save = getCS(); + IP_save = getIP(); + + /* wait for character in buffer */ + while (buffer_tail == buffer_head) + { + IDLE_poll(); + + setCS(rcpu_poll_segment); + setIP(rcpu_poll_offset); + host_simulate(); + buffer_head = sas_w_at_no_check(BIOS_KB_BUFFER_HEAD); + buffer_tail = sas_w_at_no_check(BIOS_KB_BUFFER_TAIL); + } + + IDLE_init(); + + setCS(CS_save); + setIP(IP_save); + } + + setAX(sas_w_at_no_check(BIOS_VAR_START + buffer_head)); /* Pickup the "current" scancode/char pair */ + + buffer_head = inc_buffer_ptr(/* from: */buffer_head); + sas_storew_no_check(BIOS_KB_BUFFER_HEAD, buffer_head); + + translate_ext(); /* translate scan_code pairs */ + + setIF(1); + break; + + + case 0x11: /* Extended ASCII Status */ + + check_indicators(1); /* see if LED's need updating */ + /* and issue an out 20h,20h */ + + buffer_head = sas_w_at_no_check(BIOS_KB_BUFFER_HEAD); + buffer_tail = sas_w_at_no_check(BIOS_KB_BUFFER_TAIL); + + setAX(sas_w_at_no_check(BIOS_VAR_START + buffer_head)); + + if (buffer_tail == buffer_head) /* No keys pressed */ + { + setZF(1); + IDLE_poll(); + } + else /* Keystrokes available! */ + { + translate_ext(); /* translate scan_code pairs */ + IDLE_init(); + } + + setIF(1); + break; + + + case 0x12: /* Extended Shift Status */ + + status1 = sas_hw_at_no_check(kb_flag_1) & SYS_SHIFT; /* only leave SYS KEY */ + status1 <<= 5; /* move to bit 7 */ + status2 = sas_hw_at_no_check(kb_flag_1) & 0x73; /* remove SYS_SHIFT, HOLD, + STATE and INS_SHIFT */ + status1 |= status2; /* merge */ + status2 = sas_hw_at_no_check(kb_flag_3) & 0x0C; /* remove LC_E0 & LC_E1 */ + status1 |= status2; /* merge */ + setAH( status1 ); + setAL( sas_hw_at_no_check(kb_flag) ); + + break; + + + default: + setAH((func_index - INT16H_DEC)); + break; + } +} +#endif + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_INIT.seg" +#endif + +void keyboard_post() +{ + + /* Set up BIOS keyboard variables */ + +/* Initialize the keyboard table pointers */ + shift_keys = K6; + shift_masks = K7; + ctl_n_table = K8; + ctl_f_table = K9; + lowercase = K10; + uppercase = K11; + alt_table = K30; + + sas_storew_no_check(BIOS_KB_BUFFER_HEAD, BIOS_KB_BUFFER); + sas_storew_no_check(BIOS_KB_BUFFER_TAIL, BIOS_KB_BUFFER); + sas_storew_no_check(BIOS_KB_BUFFER_START, BIOS_KB_BUFFER); + sas_storew_no_check(BIOS_KB_BUFFER_END, BIOS_KB_BUFFER + 2*BIOS_KB_BUFFER_SIZE); + + /* The following are #defines, referring to locations in BIOS */ + /* data area. */ + + sas_store_no_check (kb_flag,NUM_STATE); + sas_store_no_check (kb_flag_1,0); + sas_store_no_check (kb_flag_2,2); + sas_store_no_check (kb_flag_3,KBX); + sas_store_no_check (alt_input,0); +} + +void keyboard_init() +{ + /* + ** host specific keyboard initialisation + ** is now before AT base keyboard initialisation + */ + host_kb_init(); + +#if defined(CPU_40_STYLE) && !defined (NTVDM) + ica_iret_hook_control(ICA_MASTER, CPU_KB_INT, TRUE); +#endif +} + + + +#ifdef NTVDM + +/*:::::::::::::::::::::::::::::::::::::::::::::::: Map in new keyboard tables */ +/*::::::::::::::::::::::::::::::::::::::::::::::::::::: Set interrupt vectors */ +/* +** The Microsoft NTIO.SYS calls this func via BOP 5F to pass +** interesting addresses to our C BIOS. +*/ + +#if defined(MONITOR) + +IMPORT UTINY getNtScreenState IPT0(); +#endif + + +void kb_setup_vectors(void) +{ + word KbdSeg, w; + word *pkio_table; + double_word phy_base; + + + KbdSeg = getDS(); + pkio_table = (word *) effective_addr(getCS(), getSI()); + + /* IDLE variables */ + sas_loadw((sys_addr)(pkio_table + 12), &w); + pICounter = (word *) (Start_of_M_area + ((KbdSeg<<4)+w)); + pCharPollsPerTick = (word *) (Start_of_M_area + ((KbdSeg<<4)+w+4)); + pMinConsecutiveTicks = (word *) (Start_of_M_area + ((KbdSeg<<4)+w+8)); + +#if defined(MONITOR) + phy_base = (double_word)KbdSeg << 4; + + /* key tables */ + shift_keys = phy_base + *pkio_table++; + shift_masks = phy_base + *pkio_table++; + ctl_n_table = phy_base + *pkio_table++; + ctl_f_table = phy_base + *pkio_table++; + lowercase = phy_base + *pkio_table++; + uppercase = phy_base + *pkio_table++; + alt_table = phy_base + *pkio_table++; + + dummy_int_seg = KbdSeg; /* dummy int, iret routine */ + dummy_int_off = *pkio_table++; + int05_seg = KbdSeg; /* print screen caller */ + int05_off = *pkio_table++; + int15_seg = KbdSeg; /* int 15 caller */ + int15_off = *pkio_table++; + rcpu_nop_segment = KbdSeg; /* cpu nop */ + rcpu_nop_offset = *pkio_table++; + sp_int15_handler_seg = KbdSeg; /* int 15 handler */ + sp_int15_handler_off = *pkio_table++; + pkio_table++; /* iDle variables, done above */ + rcpu_int4A_seg = KbdSeg; + rcpu_int4A_off = *pkio_table++; /* real time clock */ + + int1b_seg = KbdSeg; /* kbd break handler */ + int1b_off = *pkio_table++; + int10_seg = KbdSeg; + int10_caller = *pkio_table++; + int10_vector = *pkio_table++; + + /* + ** Address of data in keyboard.sys, Tim August 92. + ** + ** useHostInt10 is a one byte variable. 1 means use host video BIOS, + ** (ie. full-screen), 0 means use SoftPC video BIOS (ie. windowed). + ** babyModeTable is a mini version of the table in ROM that contains + ** all the VGA register values for all the modes. The keyboard.sys + ** version only has two entries; for 40 column text mode and 80 + ** column text mode. + */ + useHostInt10 = *pkio_table++; + sas_store_no_check((sys_addr)(phy_base + useHostInt10), getNtScreenState()); + babyModeTable = (int10_seg << 4) + *pkio_table++; + changing_mode_flag = *pkio_table++; /* indicates trying to change vid mode*/ + + /* Initialise printer status table. */ + printer_setup_table(effective_addr(KbdSeg, *pkio_table++)); + wait_int_off = *pkio_table++; + wait_int_seg = KbdSeg; + dr_type_seg = KbdSeg; + dr_type_off = *pkio_table++; + dr_type_addr = (sys_addr)dr_type_seg * 16L + (sys_addr)dr_type_off; + vga1b_seg = KbdSeg; + vga1b_off = *pkio_table++; /* VGA capability table (normally lives in ROM) */ + conf_15_seg = KbdSeg; + conf_15_off = *pkio_table++; /* INT15 config table (normally in ROM) */ + + TimerInt08Seg = KbdSeg; + TimerInt08Off = *pkio_table++; + int13h_vector_seg = KbdSeg; + int13h_caller_seg = KbdSeg; + int13h_vector_off = *pkio_table++; + int13h_caller_off = *pkio_table++; + stream_io_buffer_size = *pkio_table++; + stream_io_buffer = (half_word *)effective_addr(*pkio_table++, 0); + stream_io_dirty_count_ptr = (word *)effective_addr(KbdSeg, *pkio_table++); + stream_io_bios_busy_sysaddr = effective_addr(KbdSeg, *pkio_table++); +#ifndef PROD + if (*pkio_table != getAX()) { + always_trace0("ERROR: KbdVectorTable!"); + } +#endif + TimerInt1CSeg = KbdSeg; + TimerInt1COff = dummy_int_off; + +#else /* ndef MONITOR */ + + /* kbd bios callout optimization */ + sas_loadw(0x15*4, &sp_int15_handler_off); + sas_loadw(0x15*4 + 2, &sp_int15_handler_seg); + + /* timer hardware interrupt optimizations */ + sas_loadw(0x08*4, &TimerInt08Off); + sas_loadw(0x08*4 + 2, &TimerInt08Seg); + sas_loadw(0x1C*4, &TimerInt1COff); + sas_loadw(0x1C*4 + 2, &TimerInt1CSeg); + + sas_loadw(0x13 * 4, &int13h_vector_off); + sas_loadw(0x13 * 4 + 2, &int13h_vector_seg); + int13h_caller_seg = KbdSeg; + dr_type_seg = KbdSeg; + sas_loadw((sys_addr)(pkio_table + 27), &int13h_caller_off); + sas_loadw((sys_addr)(pkio_table + 22), &dr_type_off); + dr_type_addr = effective_addr(dr_type_seg, dr_type_off); + +#endif /* MONITOR */ + + sas_loadw(0x09*4, &KbdInt09Off); + sas_loadw(0x09*4 + 2, &KbdInt09Seg); + + ResumeTimerThread(); +} + + +/*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Int15 caller */ + + +/* + * Gives chance for other parts of NTVDM to + * update the kbd i15 kbd callout optimization + */ +void UpdateKbdInt15(word Seg,word Off) +{ + word int15Off, int15Seg; + + /* make sure nobody has hooked since the last time */ + /* we stored the i15 vector */ + sas_loadw(0x15*4 , &int15Off); + sas_loadw(0x15*4 + 2, &int15Seg); + if(int15Off != sp_int15_handler_off || int15Seg != sp_int15_handler_seg) + { +#ifndef PROD + printf("NTVDM: UpdateKbdInt15 Nuking I15 offsets\n"); +#endif + sp_int15_handler_off = sp_int15_handler_seg = 0; + return; + } + + sp_int15_handler_off = Off; + sp_int15_handler_seg = Seg; +} + + + +IMPORT void (*BIOS[])(); + +void INT15(void) +{ + ULONG ul; + word CS_save, IP_save; + word int15Off, int15Seg; + + /*:::::::::::::::::::::::::::::::::: Get location of current 15h handler */ + sas_loadw(0x15*4 , &int15Off); + sas_loadw(0x15*4 + 2, &int15Seg); + + /*:::::::::::::::::::::: Does the 15h vector point to the softpc handler */ + ul = (ULONG)getAH(); + if((ul == 0x4f || ul == 0x91) && + int15Off == sp_int15_handler_off && + int15Seg == sp_int15_handler_seg) + { + (BIOS[0x15])(); /* Call int15 handler defined in base */ + } + else + { + /*::::::::::::::::::::::::::::::::::::::::::::::: Call int15 handler */ + ul = (ULONG)bBiosOwnsKbdHdw; + if (bBiosOwnsKbdHdw) { + bBiosOwnsKbdHdw = FALSE; + HostReleaseKbd(); + } + CS_save = getCS(); /* Save current CS,IP settings */ + IP_save = getIP(); + setCS(int15_seg); + setIP(int15_off); + host_simulate(); /* Call int15 handler */ + setCS(CS_save); /* Restore CS,IP */ + setIP(IP_save); + if (ul) + bBiosOwnsKbdHdw = !WaitKbdHdw(5000); + } +} + + +/* + * 32 bit services for kb16.com, the international 16 bit + * interrupt 9 service handler. + * + */ +void Keyb16Request(half_word BopFnCode) +{ + + /* + * upon entry to kb16, take ownership of kbd + * disable the kbd + * disable interrupts + */ + if (BopFnCode == 1) { + bBiosOwnsKbdHdw = !WaitKbdHdw(5000); + outb(KEYBA_STATUS_CMD, DIS_KBD); + setIF(1); + } + + /* K26A type exit from i9 handler */ + else if (BopFnCode == 2) { + if (getBH()) { /* bl == do beep */ + host_alarm(250000L); + } + + outb(0x20, 0x20); /* eoi */ + + if (getBL()) { /* got character ? do device post */ + setAX(0x9102); + INT15(); + } + outb(KEYBA_STATUS_CMD, ENA_KBD); + if (bBiosOwnsKbdHdw) { + bBiosOwnsKbdHdw = FALSE; + HostReleaseKbd(); + } + } + + /* K27A exit notify */ + else if (BopFnCode == 3) { + outb(0x20, 0x20); + outb(KEYBA_STATUS_CMD, ENA_KBD); + if (bBiosOwnsKbdHdw) { + bBiosOwnsKbdHdw = FALSE; + HostReleaseKbd(); + } + } + + /* K27A exit notify */ + else if (BopFnCode == 4) { + outb(KEYBA_STATUS_CMD, ENA_KBD); + if (bBiosOwnsKbdHdw) { + bBiosOwnsKbdHdw = FALSE; + HostReleaseKbd(); + } + } +} + +#endif /* NTVDM */ diff --git a/private/mvdm/softpc.new/base/keymouse/makefile b/private/mvdm/softpc.new/base/keymouse/makefile new file mode 100644 index 000000000..6ee4f43fa --- /dev/null +++ b/private/mvdm/softpc.new/base/keymouse/makefile @@ -0,0 +1,6 @@ +# +# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source +# file to this component. This file merely indirects to the real make file +# that is shared by all the components of NT OS/2 +# +!INCLUDE $(NTMAKEENV)\makefile.def diff --git a/private/mvdm/softpc.new/base/keymouse/mouse.c b/private/mvdm/softpc.new/base/keymouse/mouse.c new file mode 100644 index 000000000..d254897a3 --- /dev/null +++ b/private/mvdm/softpc.new/base/keymouse/mouse.c @@ -0,0 +1,419 @@ +#include "insignia.h" +#include "host_def.h" +/* + * SoftPC Version 2.0 + * + * Title : Microsoft Bus Mouse Adapter + * + * Description : This package contains a group of functions that provide + * an interface between the Microsoft Bus Mouse Card and the cpu. + * + * mouse_init() Initialise the bus mouse adapter + * mouse_inb() Supports IN's from ports in the bus mouse range + * mouse_outb() Supports OUT's to ports in the bus mouse range + * mouse_send() Queues data sent from the host mouse + * + * Author : Henry Nash + * + * Notes : See the Microsoft Inport Technical Reference Manual for + * further information on the hardware interface. + * The Bus Mouse ports are jumper selectable on the real card + * between (1) 023C - 023F & (2) 0238 - 023B. We only support + * the primary range 023C - 023F. + * + * (r3.5) : The system directory /usr/include/sys is not available + * on a Mac running Finder and MPW. Bracket references to + * such include files by "#ifdef macintosh #else + * #endif". + */ + +#ifdef SCCSID +static char SccsID[]="@(#)mouse.c 1.17+ 07/10/95 Copyright Insignia Solutions Ltd."; +#endif + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_MOUSE.seg" +#endif + + +/* + * O/S include files. + */ +#include +#include TypesH + +/* + * SoftPC include files + */ +#include "xt.h" +#include CpuH +#include "sas.h" +#include "cga.h" +#include "bios.h" +#include "error.h" +#include "ios.h" +#include "ica.h" +#include "trace.h" +#include "video.h" +#include "mouse.h" +#include "mouse_io.h" + + +/* + * The following globals are also used by xxx_input.c, + * where xxx is the host machine name. + */ + +int button_left = 0; /* Current state of left button */ +int button_right = 0; /* Current state of right button */ +int delta_x = 0, delta_y = 0; /* Current mouse delta moves */ + +#ifndef PROD +static char buff[132]; +#endif + +static half_word data1_reg = 0, + data2_reg = 0, + mouse_status_reg = 0; + +static half_word + last_button_left = 0, + last_button_right = 0; + +static half_word + mouse_mode_reg = 0, /* mode register */ + address_reg = 0; /* address pointer register */ + +static int + loadsainterrupts = 5; +/* count of how many times we will send bursts of interrupts to please Windows, per reset */ + + +static int mouse_inb_toggle = 0; + +void mouse_inb IFN2(io_addr, port, half_word *, value) +{ + if (port == MOUSE_PORT_1) { /* data register */ + + /* + * Internal registers + */ + + switch (address_reg & 0x07) { + case 0x00 : /* mouse status register */ + *value = mouse_status_reg; + break; + case 0x01 : /* data 1 register horizontal */ + *value = data1_reg; + break; + case 0x02 : /* data 2 register vertical */ + *value = data2_reg; + break; + case 0x07 : /* mode register */ + *value = mouse_mode_reg; + break; + default : +#ifndef PROD + if (io_verbose & MOUSE_VERBOSE) { + sprintf(buff, "mouse_inb() : Bad P"); + trace(buff,DUMP_NONE); + } +#endif + break; + } + } + + /* + * ID register, alternates between value 1 and value 2 + * value 1 is the chip signature: DE hex + * value 2 is the chip revision: 1 and version: 0 + */ + + else + if (port == MOUSE_PORT_2) { + if (mouse_inb_toggle = 1 - mouse_inb_toggle) + *value = 0xDE; + else + *value = 0x10; + } + +#ifndef PROD + if (io_verbose & MOUSE_VERBOSE) { + sprintf(buff, "mouse_inb() : port %x value %x", port, *value); + trace(buff,DUMP_NONE); + } +#endif +} + + +void mouse_outb IFN2(io_addr, port, half_word, value) +{ +#ifndef PROD + if (io_verbose & MOUSE_VERBOSE) { + if ((port == MOUSE_PORT_0) + || (port == MOUSE_PORT_1) + || (port == MOUSE_PORT_2)) + sprintf(buff, "mouse_outb() : port %x value %x", port, value); + else + sprintf(buff, "mouse_outb() : bad port: %x value %x", port, value); + trace(buff,DUMP_NONE); + } +#endif + + /* + * Out to an internal register + */ + + if (port == MOUSE_PORT_1) { /* data register */ + + /* + * Out to Mode register + */ + if ( (address_reg & 0x07) == INTERNAL_MODE_REG) { + + /* + * Check hold bit (5) for 0 to 1 transition + * - Data Interrupt Enable bit is set (Mode 0) + * - counter values saved in Data1 & Data2 registers (Mode 0) + * - counters cleared + * - status register updated + */ + + if ((value & 0x20) && ((mouse_mode_reg & 0x20) == 0)) { +#ifndef PROD + if (io_verbose & MOUSE_VERBOSE) { + sprintf(buff, "mouse_outb() : hold bit 0 -> 1"); + trace(buff,DUMP_NONE); + } +#endif + /* clear the interrupt */ + ica_clear_int(AT_CPU_MOUSE_ADAPTER, AT_CPU_MOUSE_INT); + + /* + * read next mouse deltas & buttons + * into the inport registers + */ + data1_reg = delta_x; + data2_reg = delta_y; + mouse_status_reg = 0; + mouse_status_reg = (button_left << 2) + (button_right); + if (delta_x!=0 || delta_y!=0) { + mouse_status_reg |= MOVEMENT; + } + if (last_button_right != button_right) { + mouse_status_reg |= RIGHT_BUTTON_CHANGE; + last_button_right = button_right; + } + + if (last_button_left != button_left) { + mouse_status_reg |= LEFT_BUTTON_CHANGE; + last_button_left = button_left; + } + delta_x = delta_y = 0; + } + /* 1 -> 0 transition on mode register's hold bit */ + /* ready for next read from queue, so send interrupt */ + else if ((mouse_mode_reg & 0x20) && ((value & 0x20)==0)){ +#ifndef PROD + if (io_verbose & MOUSE_VERBOSE) { + sprintf(buff, "mouse_outb() : hold bit 1 -> 0"); + trace(buff,DUMP_NONE); + } +#endif + } + /* + * Check timer select value (bits 210) + */ + + switch (value & 0x7) { + case 0x0 : /* 0 Hz INTR low */ +#ifndef PROD + if (io_verbose & MOUSE_VERBOSE) { + sprintf(buff, "mouse_outb() : INTR low"); trace(buff,DUMP_NONE); + } +#endif + ica_clear_int(AT_CPU_MOUSE_ADAPTER, AT_CPU_MOUSE_INT); + break; + + /* + * In the following cases the application code is expecting to see + * interrupts at the requested rate. However in practice this is only + * required during initialisation(mouse_mode_reg = 0), and then a short burst + * appears to be sufficient. The 15 interupts generated comes from + * tests with the "WINDOWS" package, which receives about 15 during + * initialising, but is happy as long as it gets more than 3. The delay + * is necessary otherwise the interupts are generated before the + * application starts looking for them. + + * Mark 2 bodge: + Windows 1.02 needs the burst of interrupts to occur even when mouse_mode_reg != 0, + but Windows 2.03 needs them not to keep happening even when it asks for them. + So now there's a counter called loadsainterrupts set to 5 on resets, which is + how many bursts will be allowed. This makes both Windows work. + */ + case 0x1: /* 30 Hz */ + case 0x2: /* 50 Hz */ + case 0x3: /* 100 Hz */ + case 0x4: /* 200 Hz */ +/* used to be if mouse_mode_reg == 0 too, removed to make Windows 1.02 work */ + if( (value & 0x10) && loadsainterrupts > 0) + { + loadsainterrupts--; +#ifndef PROD + if (io_verbose & MOUSE_VERBOSE) { + sprintf(buff, "mouse_outb() : Loadsainterrupts"); trace(buff,DUMP_NONE); + } +#endif + /* + ** AT version is asking for a 100 interrupts. + ** The AT ica does not handle delayed ints so + ** the IRET has been modified to not allow an + ** int to go off before the next instruction. + */ + ica_hw_interrupt(AT_CPU_MOUSE_ADAPTER,AT_CPU_MOUSE_INT,100); + } + break; + case 0x5: /* reserved */ +#ifndef PROD + if (io_verbose & MOUSE_VERBOSE) { + sprintf(buff, "mouse: reserved"); trace(buff,DUMP_NONE); + } +#endif + break; + case 0x6 : /* 0 Hz INTR hi */ +#ifndef PROD + if (io_verbose & MOUSE_VERBOSE) { + sprintf(buff, "mouse_outb() : INTR hi"); trace(buff,DUMP_NONE); + } +#endif + ica_hw_interrupt(AT_CPU_MOUSE_ADAPTER,AT_CPU_MOUSE_INT,1); + break; + case 0x7: /* externally controlled */ + break; + default: +#ifndef PROD + if (io_verbose & MOUSE_VERBOSE) { + sprintf(buff,"mouse_outb() : bad mode"); + trace(buff,DUMP_NONE); + } +#endif + break; + + } + mouse_mode_reg = value; + + /* + * Interface control register + */ + } + else + if ((address_reg & 0x07) == INTERFACE_CONTROL_REG){ +#ifndef PROD + if (io_verbose & MOUSE_VERBOSE) { + sprintf(buff, "mouse_outb() : interface control reg port %x value %x",port,value); + trace(buff,DUMP_NONE); + } +#endif + } + + } + else if(port == MOUSE_PORT_0) /* address pointer register */ + { + if (value & 0x80) /* is it a reset */ + { + mouse_mode_reg = 0; + loadsainterrupts = 5; /* lets Windows initialise its mouse happily */ + address_reg = value & 0x7F; /* clear reset bit*/ + ica_clear_int( AT_CPU_MOUSE_ADAPTER, AT_CPU_MOUSE_INT ); + } + else + address_reg = value; + } +} + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_INPUT.seg" +#endif + +void mouse_send(Delta_x,Delta_y,left,right) +int Delta_x,Delta_y,left,right; +{ + if(Delta_x != 0 || Delta_y != 0 || button_left != left || button_right != right) + { + delta_x += Delta_x; + delta_y += Delta_y; + + /*** + Mouse inport registers can only handle one byte + ***/ + if (delta_x < -128) + delta_x = -128; + else if (delta_x > 127) + delta_x = 127; + + if (delta_y < -128) + delta_y = -128; + else if (delta_y > 127) + delta_y = 127; + + button_left = left; + button_right = right; + ica_hw_interrupt(AT_CPU_MOUSE_ADAPTER,AT_CPU_MOUSE_INT,1); + } +} + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_INIT.seg" +#endif + + +void mouse_init IFN0() +{ + int p; + +#ifndef PROD + if (io_verbose & MOUSE_VERBOSE) { + sprintf(buff, "mouse_init()"); + trace(buff,DUMP_NONE); + } +#endif + + mouse_inb_toggle = 0; + + io_define_inb(MOUSE_ADAPTOR, mouse_inb); + io_define_outb(MOUSE_ADAPTOR, mouse_outb); + + for(p = MOUSE_PORT_START; p <= MOUSE_PORT_END; p++) { + io_connect_port(p, MOUSE_ADAPTOR, IO_READ_WRITE); + +#ifdef KIPPER +#ifdef CPU_40_STYLE + /* Enable iret hooks on mouse interrupts */ + ica_iret_hook_control(AT_CPU_MOUSE_ADAPTER, AT_CPU_MOUSE_INT, TRUE); +#endif +#endif + +#ifndef PROD + if (io_verbose & MOUSE_VERBOSE) { + sprintf(buff, "Mouse Port connected: %x", p); + trace(buff,DUMP_NONE); + } +#endif + } + host_deinstall_host_mouse(); +} diff --git a/private/mvdm/softpc.new/base/keymouse/mouse_io.c b/private/mvdm/softpc.new/base/keymouse/mouse_io.c new file mode 100644 index 000000000..399dfcf8c --- /dev/null +++ b/private/mvdm/softpc.new/base/keymouse/mouse_io.c @@ -0,0 +1,6664 @@ +#include "insignia.h" +#include "host_def.h" +/* + * SoftPC Revision 3.0 + * + * Title : Mouse Driver Emulation + * + * Emulated Version : 8.00 + * + * + * Description : This module provides an emulation of the Microsoft + * Mouse Driver: the module is accessed using the following + * BOP calls from the BIOS: + * + * mouse_install1() | Mouse Driver install + * mouse_install2() | routines + * + * mouse_int1() | Mouse Driver hardware interrupt + * mouse_int2() | handling routines + * + * mouse_io_interrupt() | Mouse Driver io function assembler + * mouse_io_language() | and high-level language interfaces + * + * mouse_video_io() | Intercepts video io function + * + * Since a mouse driver can only be installed AFTER the + * operating system has booted, a small Intel program must + * run to enable the Insignia Mouse Driver. This program + * calls BOP mouse_install2 if an existing mouse driver + * is detected; otherwise BOP mouse_install1 is called to + * start the Insignia Mouse Driver. + * + * When the Insignia Mouse Driver is enabled, interrupts + * are processed as follows + * + * INT 0A (Mouse hardware interrupt) BOP mouse_int1-2 + * INT 10 (Video IO interrupt) BOP mouse_video_io + * INT 33 (Mouse IO interrupt) BOP mouse_io_interrupt + * + * High-level languages can call a mouse io entry point 2 bytes + * above the interrupt entry point: this call is handled + * using a BOP mouse_io_language. + * + * Author : Ross Beresford + * + * Notes : The functionality of the Mouse Driver was established + * from the following sources: + * Microsoft Mouse User's Guide + * IBM PC-XT Technical Reference Manuals + * Microsoft InPort Technical Note + * + */ + +/* + * static char SccsID[]="07/04/95 @(#)mouse_io.c 1.72 Copyright Insignia Solutions Ltd."; + */ + + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_MOUSE.seg" +#endif + + +/* + * O/S include files. + */ + +#include +#include TypesH +#include StringH + +/* + * SoftPC include files + */ +#include "xt.h" +#include "ios.h" +#include "bios.h" +#include "sas.h" +#include CpuH +#include "trace.h" +#include "debug.h" +#include "gvi.h" +#include "cga.h" +#ifdef EGG +#include "egacpu.h" +#include "egaports.h" +#include "egavideo.h" +#endif +#include "error.h" +#include "config.h" +#include "mouse_io.h" +#include "ica.h" +#include "video.h" +#include "gmi.h" +#include "gfx_upd.h" +#include "egagraph.h" +#include "vgaports.h" +#include "keyboard.h" +#include "virtual.h" + +#ifdef NTVDM +#include "nt_event.h" +#include "nt_mouse.h" + +#ifdef MONITOR +/* + * We're running with real ROMs on the monitor and so all the hard coded ROM + * addresses defined below don't work. Pick up the real addresses of this stuff + * which is now resident in the driver and put it into the MOUSE_ tokens which + * have been magically changed into variables. + */ +#undef MOUSE_INT1_SEGMENT +#undef MOUSE_INT1_OFFSET +#undef MOUSE_INT2_SEGMENT +#undef MOUSE_INT2_OFFSET +#undef MOUSE_IO_INTERRUPT_OFFSET +#undef MOUSE_IO_INTERRUPT_SEGMENT +#undef MOUSE_VIDEO_IO_OFFSET +#undef MOUSE_VIDEO_IO_SEGMENT +#undef MOUSE_COPYRIGHT_SEGMENT +#undef MOUSE_COPYRIGHT_OFFSET +#undef MOUSE_VERSION_SEGMENT +#undef MOUSE_VERSION_OFFSET +#undef VIDEO_IO_SEGMENT +#undef VIDEO_IO_RE_ENTRY + +LOCAL word MOUSE_INT1_SEGMENT, MOUSE_INT1_OFFSET, + MOUSE_IO_INTERRUPT_OFFSET, MOUSE_IO_INTERRUPT_SEGMENT, + MOUSE_VIDEO_IO_SEGMENT, MOUSE_VIDEO_IO_OFFSET, + MOUSE_COPYRIGHT_SEGMENT, MOUSE_COPYRIGHT_OFFSET, + MOUSE_VERSION_SEGMENT, MOUSE_VERSION_OFFSET, + MOUSE_INT2_SEGMENT, MOUSE_INT2_OFFSET, + VIDEO_IO_SEGMENT, VIDEO_IO_RE_ENTRY; + +/* @ACW */ +word DRAW_FS_POINTER_OFFSET; /* holds segment:offset for the Intel code which */ +word DRAW_FS_POINTER_SEGMENT;/* draws the fullscreen mouse cursor */ +word POINTER_ON_OFFSET; +word POINTER_ON_SEGMENT; +word POINTER_OFF_OFFSET; +word POINTER_OFF_SEGMENT; +WORD F0_OFFSET,F0_SEGMENT; +word F9_OFFSET,F9_SEGMENT; +word CP_X_O,CP_Y_O; +word CP_X_S,CP_Y_S; +word savedtextsegment,savedtextoffset; +word button_off,button_seg; + +static word mouseINBsegment, mouseINBoffset; +static word mouseOUTBsegment, mouseOUTBoffset; +static word mouseOUTWsegment, mouseOUTWoffset; +sys_addr mouseCFsysaddr; +sys_addr conditional_off_sysaddr; + +#endif /* MONITOR */ + +IMPORT void host_m2p_ratio(word *,word *,word *,word *); +IMPORT void host_x_range(word *,word *,word *,word *); +IMPORT void host_y_range(word *,word *,word *,word *); +void host_show_pointer(void); +void host_hide_pointer(void); + +LOCAL word saved_int71_segment; +LOCAL word saved_int71_offset; + +#endif /* NTVDM */ + +#include "host_gfx.h" + +#ifdef MOUSE_16_BIT +#include HostHwVgaH +#include "hwvga.h" +#include "mouse16b.h" +#endif /* MOUSE_16_BIT */ + +/* + * Tidy define to optimise port accesses, motivated by discovering + * how bad it is to run out of register windows on the SPARC. + */ + +#ifdef CPU_40_STYLE + +/* IO virtualisation is essential - no optimisation allowed. */ +#define OUTB(port, val) outb(port, val) + +#else + +IMPORT VOID (**get_outb_ptr())(); +#define OUTB(port, val) (**get_outb_ptr(port))(port, val) + +#endif /* CPU_40_STYLE */ + +/* + Offsets to data buffers held in MOUSE.COM (built from + base/intel/mouse/uf.mouse.asm). + */ +#define OFF_HOOK_POSN 0x103 +#define OFF_ACCL_BUFFER 0x105 +#define OFF_MOUSE_INI_BUFFER 0x249 + +/* + Data values for mouse functions. + */ +#define MOUSE_M1 (0xffff) +#define MOUSE_M2 (0xfffe) + +#define MAX_NR_VIDEO_MODES 0x7F + +#ifdef EGG +LOCAL BOOL jap_mouse=FALSE; /* flag if need to fake text cursor */ +IMPORT IU8 Currently_emulated_video_mode; /* as set in ega_set_mode() */ +#endif /* EGG */ + +/* + * MOUSE DRIVER LOCAL STATE DATA + * ============================= + */ + +/* + * Function Declarations + */ +LOCAL void mouse_reset IPT4(word *,installed_ptr,word *,nbuttons_ptr,word *,junk3,word *,junk4); + +LOCAL void mouse_show_cursor IPT4(word *,junk1,word *,junk2,word *,junk3,word *,junk4); + +LOCAL void mouse_hide_cursor IPT4(word *,junk1,word *,junk2,word *,junk3,word *,junk4); + +LOCAL void mouse_get_position IPT4(word *,junk1,MOUSE_STATE *,button_status_ptr,MOUSE_SCALAR *,cursor_x_ptr,MOUSE_SCALAR *,cursor_y_ptr); + +LOCAL void mouse_set_position IPT4(word *,junk1,word *,junk2,MOUSE_SCALAR *,cursor_x_ptr,MOUSE_SCALAR *,cursor_y_ptr); + +LOCAL void mouse_get_press IPT4(MOUSE_STATE *,button_status_ptr,MOUSE_COUNT *,button_ptr,MOUSE_SCALAR *,cursor_x_ptr,MOUSE_SCALAR *,cursor_y_ptr); + +LOCAL void mouse_get_release IPT4(MOUSE_STATE *,button_status_ptr,MOUSE_COUNT *,button_ptr,MOUSE_SCALAR *,cursor_x_ptr,MOUSE_SCALAR *,cursor_y_ptr); + +LOCAL void mouse_set_range_x IPT4(word *,junk1,word *,junk2,MOUSE_SCALAR *,minimum_x_ptr,MOUSE_SCALAR *,maximum_x_ptr); + +LOCAL void mouse_set_range_y IPT4(word *,junk1,word *,junk2,MOUSE_SCALAR *,minimum_y_ptr,MOUSE_SCALAR *,maximum_y_ptr); + +LOCAL void mouse_set_graphics IPT4(word *,junk1,MOUSE_SCALAR *,hot_spot_x_ptr,MOUSE_SCALAR *,hot_spot_y_ptr,word *,bitmap_address); + +LOCAL void mouse_set_text IPT4(word *,junk1,MOUSE_STATE *,text_cursor_type_ptr,MOUSE_SCREEN_DATA *,parameter1_ptr,MOUSE_SCREEN_DATA *,parameter2_ptr); + +LOCAL void mouse_read_motion IPT4(word *,junk1,word *,junk2,MOUSE_COUNT *,motion_count_x_ptr,MOUSE_COUNT *,motion_count_y_ptr); + +LOCAL void mouse_set_subroutine IPT4(word *,junk1,word *,junk2,word *,call_mask,word *,subroutine_address); + +LOCAL void mouse_light_pen_on IPT4(word *,junk1,word *,junk2,word *,junk3,word *,junk4); + +LOCAL void mouse_light_pen_off IPT4(word *,junk1,word *,junk2,word *,junk3,word *,junk4); + +LOCAL void mouse_set_ratio IPT4(word *,junk1,word *,junk2,MOUSE_SCALAR *,ratio_x_ptr,MOUSE_SCALAR *,ratio_y_ptr); + +LOCAL void mouse_conditional_off IPT4(word *,junk1,word *,junk2,MOUSE_SCALAR *,upper_x_ptr,MOUSE_SCALAR *,upper_y_ptr); + +LOCAL void mouse_unrecognised IPT4(word *,m1,word *,m2,word *,m3,word *,m4); + +LOCAL void mouse_set_double_speed IPT4(word *,junk1,word *,junk2,word *,junk3,word *,threshold_speed); + +LOCAL void mouse_get_and_set_subroutine IPT4(word *,junk1,word *,junk2,word *,call_mask,word *,subroutine_address); + +LOCAL void mouse_get_state_size IPT4(word *,m1,word *,m2,word *,m3,word *,m4); + +LOCAL void mouse_save_state IPT4(word *,m1,word *,m2,word *,m3,word *,m4); + +LOCAL void mouse_restore_state IPT4(word *,m1,word *,m2,word *,m3,word *,m4); + +LOCAL void mouse_set_alt_subroutine IPT4(word *,m1,word *,m2,word *,m3,word *,m4); + +LOCAL void mouse_get_alt_subroutine IPT4(word *,m1,word *,m2,word *,m3,word *,m4); + +LOCAL void mouse_set_sensitivity IPT4(word *,m1,word *,m2,word *,m3,word *,m4); + +LOCAL void mouse_get_sensitivity IPT4(word *,m1,word *,m2,word *,m3,word *,m4); + +LOCAL void mouse_set_int_rate IPT4(word *,m1,word *,int_rate_ptr,word *,m3,word *,m4); + +LOCAL void mouse_set_pointer_page IPT4(word *,m1,word *,m2,word *,m3,word *,m4); + +LOCAL void mouse_get_pointer_page IPT4(word *,m1,word *,m2,word *,m3,word *,m4); + +LOCAL void mouse_driver_disable IPT4(word *,m1,word *,m2,word *,m3,word *,m4); + +LOCAL void mouse_driver_enable IPT4(word *,m1,word *,m2,word *,m3,word *,m4); + +LOCAL void mouse_set_language IPT4(word *,m1,word *,m2,word *,m3,word *,m4); + +LOCAL void mouse_get_language IPT4(word *,m1,word *,m2,word *,m3,word *,m4); + +LOCAL void mouse_get_info IPT4(word *,m1,word *,m2,word *,m3,word *,m4); + +LOCAL void mouse_get_driver_info IPT4(word *,m1,word *,m2,word *,m3,word *,m4); + +LOCAL void mouse_get_max_coords IPT4(word *,m1,word *,m2,word *,m3,word *,m4); + +LOCAL void mouse_get_masks_and_mickeys IPT4 + ( + MOUSE_SCREEN_DATA *, screen_mask_ptr, /* aka start line */ + MOUSE_SCREEN_DATA *, cursor_mask_ptr, /* aka stop line */ + MOUSE_SCALAR *, raw_horiz_count, + MOUSE_SCALAR *, raw_vert_count + ); /* FUNC 39 */ + +LOCAL void mouse_set_video_mode IPT4 + ( + word *, m1, + word *, m2, + word *, video_mode_ptr, + word *, font_size_ptr + ); /* FUNC 40 */ + +LOCAL void mouse_enumerate_video_modes IPT4 + ( + word *, m1, + word *, m2, + word *, video_nr_ptr, + word *, offset_ptr + ); /* FUNC 41 */ + +LOCAL void mouse_get_cursor_hot_spot IPT4 + ( + word *, fCursor_ptr, + MOUSE_SCALAR *, hot_spot_x_ptr, + MOUSE_SCALAR *, hot_spot_y_ptr, + word *, mouse_type_ptr + ); /* FUNC 42 */ + +LOCAL void mouse_load_acceleration_curves IPT4 + ( + word *, success_ptr, + word *, curve_ptr, + word *, m3, + word *, m4 + ); /* FUNC 43 */ + +LOCAL void mouse_read_acceleration_curves IPT4 + ( + word *, success_ptr, + word *, curve_ptr, + word *, m3, + word *, m4 + ); /* FUNC 44 */ + +LOCAL void mouse_set_get_active_acceleration_curve IPT4 + ( + word *, success_ptr, + word *, curve_ptr, + word *, m3, + word *, m4 + ); /* FUNC 45 */ + +LOCAL void mouse_microsoft_internal IPT4 + ( + word *, m1, + word *, m2, + word *, m3, + word *, m4 + ); /* FUNC 46 */ + +LOCAL void mouse_hardware_reset IPT4 + ( + word *, status_ptr, + word *, m2, + word *, m3, + word *, m4 + ); /* FUNC 47 */ + +LOCAL void mouse_set_get_ballpoint_info IPT4 + ( + word *, status_ptr, + word *, rotation_angle_ptr, + word *, button_mask_ptr, + word *, m4 + ); /* FUNC 48 */ + +LOCAL void mouse_get_min_max_virtual_coords IPT4 + ( + MOUSE_SCALAR *, min_x_ptr, + MOUSE_SCALAR *, min_y_ptr, + MOUSE_SCALAR *, max_x_ptr, + MOUSE_SCALAR *, max_y_ptr + ); /* FUNC 49 */ + +LOCAL void mouse_get_active_advanced_functions IPT4 + ( + word *, active_flag1_ptr, + word *, active_flag2_ptr, + word *, active_flag3_ptr, + word *, active_flag4_ptr + ); /* FUNC 50 */ + +LOCAL void mouse_get_switch_settings IPT4 + ( + word *, status_ptr, + word *, m2, + word *, buffer_length_ptr, + word *, offset_ptr + ); /* FUNC 51 */ + +LOCAL void mouse_get_mouse_ini IPT4 + ( + word *, status_ptr, + word *, m2, + word *, m3, + word *, offset_ptr + ); /* FUNC 52 */ + +LOCAL void do_mouse_function IPT4(word *,m1,word *,m2,word *,m3,word *,m4); + +LOCAL void load_acceleration_curve IPT3 + ( + word, seg, + word, off, + ACCELERATION_CURVE_DATA *, hcurve + ); + +LOCAL void store_acceleration_curve IPT3 + ( + word, seg, + word, off, + ACCELERATION_CURVE_DATA *, hcurve + ); + +LOCAL void mouse_EM_move IPT0(); + +LOCAL void mouse_update IPT1(MOUSE_CALL_MASK, event_mask); + +LOCAL void cursor_undisplay IPT0(); + +LOCAL void cursor_mode_change IPT1(int,new_mode); + +LOCAL void inport_get_event IPT1(MOUSE_INPORT_DATA *,event); + +LOCAL void cursor_update IPT0(); + +LOCAL void jump_to_user_subroutine IPT3(MOUSE_CALL_MASK,condition_mask,word,segment,word,offset); + +LOCAL void cursor_display IPT0(); + +LOCAL void inport_reset IPT0(); + +GLOBAL void software_text_cursor_display IPT0(); + +GLOBAL void software_text_cursor_undisplay IPT0(); + +GLOBAL void hardware_text_cursor_display IPT0(); + +GLOBAL void hardware_text_cursor_undisplay IPT0(); + +LOCAL void graphics_cursor_display IPT0(); + +LOCAL void graphics_cursor_undisplay IPT0(); + +LOCAL void get_screen_size IPT0(); + +LOCAL void clean_all_regs IPT0(); + +LOCAL void dirty_all_regs IPT0(); + +LOCAL void copy_default_graphics_cursor IPT0(); + +#ifdef EGG +LOCAL VOID VGA_graphics_cursor_display IPT0(); +LOCAL VOID VGA_graphics_cursor_undisplay IPT0(); +LOCAL EGA_graphics_cursor_undisplay IPT0(); +LOCAL EGA_graphics_cursor_display IPT0(); +#endif + +#ifdef HERC +LOCAL void HERC_graphics_cursor_display IPT0(); +LOCAL void HERC_graphics_cursor_undisplay IPT0(); +#endif /* HERC */ + +void (*mouse_int1_action) IPT0(); +void (*mouse_int2_action) IPT0(); + + + /* jump table */ +SAVED void (*mouse_function[MOUSE_FUNCTION_MAXIMUM])() = +{ + /* 0 */ mouse_reset, + /* 1 */ mouse_show_cursor, + /* 2 */ mouse_hide_cursor, + /* 3 */ mouse_get_position, + /* 4 */ mouse_set_position, + /* 5 */ mouse_get_press, + /* 6 */ mouse_get_release, + /* 7 */ mouse_set_range_x, + /* 8 */ mouse_set_range_y, + /* 9 */ mouse_set_graphics, + /* 10 */ mouse_set_text, + /* 11 */ mouse_read_motion, + /* 12 */ mouse_set_subroutine, + /* 13 */ mouse_light_pen_on, + /* 14 */ mouse_light_pen_off, + /* 15 */ mouse_set_ratio, + /* 16 */ mouse_conditional_off, + /* 17 */ mouse_unrecognised, + /* 18 */ mouse_unrecognised, + /* 19 */ mouse_set_double_speed, + /* 20 */ mouse_get_and_set_subroutine, + /* 21 */ mouse_get_state_size, + /* 22 */ mouse_save_state, + /* 23 */ mouse_restore_state, + /* 24 */ mouse_set_alt_subroutine, + /* 25 */ mouse_get_alt_subroutine, + /* 26 */ mouse_set_sensitivity, + /* 27 */ mouse_get_sensitivity, + /* 28 */ mouse_set_int_rate, + /* 29 */ mouse_set_pointer_page, + /* 30 */ mouse_get_pointer_page, + /* 31 */ mouse_driver_disable, + /* 32 */ mouse_driver_enable, + /* 33 */ mouse_reset, + /* 34 */ mouse_set_language, + /* 35 */ mouse_get_language, + /* 36 */ mouse_get_info, + /* 37 */ mouse_get_driver_info, + /* 38 */ mouse_get_max_coords, + /* 39 */ mouse_get_masks_and_mickeys, + /* 40 */ mouse_set_video_mode, + /* 41 */ mouse_enumerate_video_modes, + /* 42 */ mouse_get_cursor_hot_spot, + /* 43 */ mouse_load_acceleration_curves, + /* 44 */ mouse_read_acceleration_curves, + /* 45 */ mouse_set_get_active_acceleration_curve, + /* 46 */ mouse_microsoft_internal, + /* 47 */ mouse_hardware_reset, + /* 48 */ mouse_set_get_ballpoint_info, + /* 49 */ mouse_get_min_max_virtual_coords, + /* 50 */ mouse_get_active_advanced_functions, + /* 51 */ mouse_get_switch_settings, + /* 52 */ mouse_get_mouse_ini, +}; + + +/* + * Mickey to Pixel Ratio Declarations + */ + + /* NB all mouse gears are scaled by MOUSE_RATIO_SCALE_FACTOR */ +LOCAL MOUSE_VECTOR mouse_gear_default = +{ + MOUSE_RATIO_X_DEFAULT, + MOUSE_RATIO_Y_DEFAULT +}; + +/* + * Sensitivity declarations + */ + +#define mouse_sens_calc_val(sens) \ +/* This macro converts a sensitivity request (1-100) to a multiplier value */ \ + ( \ + (sens < MOUSE_SENS_DEF) ? \ + ((IS32)MOUSE_SENS_MIN_VAL + ( ((IS32)sens - (IS32)MOUSE_SENS_MIN)*(IS32)MOUSE_SENS_MULT * \ + ((IS32)MOUSE_SENS_DEF_VAL - (IS32)MOUSE_SENS_MIN_VAL) / \ + ((IS32)MOUSE_SENS_DEF - (IS32)MOUSE_SENS_MIN) ) ) \ + : \ + ((IS32)MOUSE_SENS_DEF_VAL + ( ((IS32)sens - (IS32)MOUSE_SENS_DEF)*(IS32)MOUSE_SENS_MULT * \ + ((IS32)MOUSE_SENS_MAX_VAL - (IS32)MOUSE_SENS_DEF_VAL) / \ + ((IS32)MOUSE_SENS_MAX - (IS32)MOUSE_SENS_DEF) ) ) \ + ) + +/* + * Text Cursor Declarations + */ + +LOCAL MOUSE_SOFTWARE_TEXT_CURSOR software_text_cursor_default = +{ + MOUSE_TEXT_SCREEN_MASK_DEFAULT, + MOUSE_TEXT_CURSOR_MASK_DEFAULT +}; + +/* + * Graphics Cursor Declarations + */ +LOCAL MOUSE_GRAPHICS_CURSOR graphics_cursor_default = +{ + { + MOUSE_GRAPHICS_HOT_SPOT_X_DEFAULT, + MOUSE_GRAPHICS_HOT_SPOT_Y_DEFAULT + }, + { + MOUSE_GRAPHICS_CURSOR_WIDTH, + MOUSE_GRAPHICS_CURSOR_DEPTH + }, + MOUSE_GRAPHICS_SCREEN_MASK_DEFAULT, + MOUSE_GRAPHICS_CURSOR_MASK_DEFAULT +}; + + /* grid the cursor must lie on */ +LOCAL MOUSE_VECTOR cursor_grids[MOUSE_VIDEO_MODE_MAXIMUM] = +{ + { 16, 8 }, /* mode 0 */ + { 16, 8 }, /* mode 1 */ + { 8, 8 }, /* mode 2 */ + { 8, 8 }, /* mode 3 */ + { 2, 1 }, /* mode 4 */ + { 2, 1 }, /* mode 5 */ + { 1, 1 }, /* mode 6 */ + { 8, 8 }, /* mode 7 */ +#ifdef EGG + { 0, 0 }, /* mode 8, not on EGA */ + { 0, 0 }, /* mode 9, not on EGA */ + { 0, 0 }, /* mode A, not on EGA */ + { 0, 0 }, /* mode B, not on EGA */ + { 0, 0 }, /* mode C, not on EGA */ + { 2, 1 }, /* mode D */ + { 1, 1 }, /* mode E */ + { 1, 1 }, /* mode F */ + { 1, 1 }, /* mode 10 */ +#endif +#ifdef VGG + { 1, 1 }, /* mode 11 */ + { 1, 1 }, /* mode 12 */ + { 2, 1 }, /* mode 13 */ +#endif +}; +#ifdef V7VGA +LOCAL MOUSE_VECTOR v7text_cursor_grids[6] = +{ + { 8, 8 }, /* mode 40 */ + { 8, 14 }, /* mode 41 */ + { 8, 8 }, /* mode 42 */ + { 8, 8 }, /* mode 43 */ + { 8, 8 }, /* mode 44 */ + { 8, 14 }, /* mode 45 */ +}; +LOCAL MOUSE_VECTOR v7graph_cursor_grids[10] = +{ + { 1, 1 }, /* mode 60 */ + { 1, 1 }, /* mode 61 */ + { 1, 1 }, /* mode 62 */ + { 1, 1 }, /* mode 63 */ + { 1, 1 }, /* mode 64 */ + { 1, 1 }, /* mode 65 */ + { 1, 1 }, /* mode 66 */ + { 1, 1 }, /* mode 67 */ + { 1, 1 }, /* mode 68 */ + { 1, 1 }, /* mode 69 */ +}; +#endif /* V7VGA */ + + /* grid for light pen response */ +LOCAL MOUSE_VECTOR text_grids[MOUSE_VIDEO_MODE_MAXIMUM] = +{ + { 16, 8 }, /* mode 0 */ + { 16, 8 }, /* mode 1 */ + { 8, 8 }, /* mode 2 */ + { 8, 8 }, /* mode 3 */ + { 16, 8 }, /* mode 4 */ + { 16, 8 }, /* mode 5 */ + { 8, 8 }, /* mode 6 */ + { 8, 8 }, /* mode 7 */ +#ifdef EGG + { 0, 0 }, /* mode 8, not on EGA */ + { 0, 0 }, /* mode 9, not on EGA */ + { 0, 0 }, /* mode A, not on EGA */ + { 0, 0 }, /* mode B, not on EGA */ + { 0, 0 }, /* mode C, not on EGA */ + { 8, 8 }, /* mode D */ + { 8, 8 }, /* mode E */ + { 8, 14 }, /* mode F */ + { 8, 14 }, /* mode 10 */ +#endif +#ifdef VGG + { 8, 8 }, /* mode 11 */ + { 8, 8 }, /* mode 12 */ + { 8, 16 }, /* mode 13 */ +#endif +}; +#ifdef V7VGA +LOCAL MOUSE_VECTOR v7text_text_grids[6] = +{ + { 8, 8 }, /* mode 40 */ + { 8, 14 }, /* mode 41 */ + { 8, 8 }, /* mode 42 */ + { 8, 8 }, /* mode 43 */ + { 8, 8 }, /* mode 44 */ + { 8, 14 }, /* mode 45 */ +}; +LOCAL MOUSE_VECTOR v7graph_text_grids[10] = +{ + { 8, 8 }, /* mode 60 */ + { 8, 8 }, /* mode 61 */ + { 8, 8 }, /* mode 62 */ + { 8, 8 }, /* mode 63 */ + { 8, 8 }, /* mode 64 */ + { 8, 8 }, /* mode 65 */ + { 8, 16 }, /* mode 66 */ + { 8, 16 }, /* mode 67 */ + { 8, 8 }, /* mode 68 */ + { 8, 8 }, /* mode 69 */ +}; +#endif /* V7VGA */ + +/* Default acceleration curve */ +LOCAL ACCELERATION_CURVE_DATA default_acceleration_curve = + { + /* length */ + { 1, 8, 12, 16 }, + /* mickey counts */ + {{ 1, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127}, + { 1, 5, 9, 13, 17, 21, 25, 29, + 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127}, + { 1, 4, 7, 10, 13, 16, 19, 22, + 25, 28, 31, 34, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127}, + { 1, 3, 5, 7, 9, 11, 13, 15, + 17, 19, 21, 23, 25, 27, 29, 31, + 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127}}, + /* scale factors */ + {{ 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16}, + { 16, 20, 24, 28, 32, 36, 40, 44, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16}, + { 16, 20, 24, 28, 32, 36, 40, 44, + 48, 52, 56, 60, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16}, + { 16, 20, 24, 28, 32, 36, 40, 44, + 48, 52, 56, 60, 64, 68, 72, 76, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16}}, + /* names */ + {{'V', 'a', 'n', 'i', 'l', 'l', 'a', 0, + 0, 0, 0, 0, 0, 0, 0, 0}, + {'S', 'l', 'o', 'w', 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, + {'N', 'o', 'r', 'm', 'a', 'l', 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}, + {'F', 'a', 's', 't', 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0}}, + }; + + /* used to get current video page size */ +#define video_page_size() (sas_w_at(VID_LEN)) + + /* check if page requested is valid */ +#define is_valid_page_number(pg) ((pg) < vd_mode_table[sas_hw_at(vd_video_mode)].npages) + +/* + * Mouse Driver Version + */ + +LOCAL half_word mouse_emulated_release = 0x08; +LOCAL half_word mouse_emulated_version = 0x00; +LOCAL half_word mouse_io_rev; /* Filled in from SCCS ID */ +LOCAL half_word mouse_com_rev; /* Passed in from MOUSE.COM */ + +LOCAL char *mouse_id = "%s Mouse %d.01 installed\015\012"; +LOCAL char *mouse_installed = "%s Mouse %d.01 already installed\015\012"; + +/* + * Context save stuff + */ + /* magic cookie for saved context */ +LOCAL char mouse_context_magic[] = "ISMMC"; /* Insignia Solutions Mouse Magic Cookie */ +#define MOUSE_CONTEXT_MAGIC_SIZE 5 +#define MOUSE_CONTEXT_CHECKSUM_SIZE 1 + +/* size of our context (in bytes) */ +#define mouse_context_size (MOUSE_CONTEXT_MAGIC_SIZE + sizeof(MOUSE_CONTEXT) + \ + MOUSE_CONTEXT_CHECKSUM_SIZE) + + +LOCAL half_word mouse_interrupt_rate; + + +/* + Handle to data instanced for each Virtual Machine. + */ +MM_INSTANCE_DATA_HANDLE mm_handle; + +static initial_mouse_screen_mask[MOUSE_GRAPHICS_CURSOR_DEPTH] = + MOUSE_GRAPHICS_SCREEN_MASK_DEFAULT; + +static initial_mouse_cursor_mask[MOUSE_GRAPHICS_CURSOR_DEPTH] = + MOUSE_GRAPHICS_CURSOR_MASK_DEFAULT; + +/* Initialisation and Termination Procedures */ +GLOBAL void mouse_driver_initialisation IFN0() + { + int i; + + /* Set up instance memory */ + mm_handle = (MM_INSTANCE_DATA_HANDLE)NIDDB_Allocate_Instance_Data( + sizeof(MM_INSTANCE_DATA), + (NIDDB_CR_CALLBACK)0, + (NIDDB_TM_CALLBACK)0); + + if ( mm_handle == (MM_INSTANCE_DATA_HANDLE)0 ) + { + host_error(EG_OWNUP, ERR_QUIT, + "mouse_io: NIDDB_Allocate_Instance_Data() failed."); + } + + /* TMM: belt and braces fix, some variables don't get set to zero when perhaps they should */ + host_memset ((*mm_handle), sizeof(MM_INSTANCE_DATA), 0); + + /* Initialise Variables */ + for ( i = 0; i < MOUSE_BUTTON_MAXIMUM; i++) + { + button_transitions[i].press_position.x = 0; + button_transitions[i].press_position.y = 0; + button_transitions[i].release_position.x = 0; + button_transitions[i].release_position.y = 0; + button_transitions[i].press_count = 0; + button_transitions[i].release_count = 0; + } + + mouse_gear.x = MOUSE_RATIO_X_DEFAULT; + mouse_gear.y = MOUSE_RATIO_Y_DEFAULT; + + mouse_sens.x = MOUSE_SENS_DEF; + mouse_sens.y = MOUSE_SENS_DEF; + + mouse_sens_val.x = MOUSE_SENS_DEF_VAL; + mouse_sens_val.y = MOUSE_SENS_DEF_VAL; + + mouse_double_thresh = MOUSE_DOUBLE_DEF; + text_cursor_type = MOUSE_TEXT_CURSOR_TYPE_SOFTWARE; + + software_text_cursor.screen = MOUSE_TEXT_SCREEN_MASK_DEFAULT; + software_text_cursor.cursor = MOUSE_TEXT_CURSOR_MASK_DEFAULT; + + graphics_cursor.hot_spot.x = MOUSE_GRAPHICS_HOT_SPOT_X_DEFAULT; + graphics_cursor.hot_spot.y = MOUSE_GRAPHICS_HOT_SPOT_Y_DEFAULT; + graphics_cursor.size.x = MOUSE_GRAPHICS_CURSOR_WIDTH; + graphics_cursor.size.y = MOUSE_GRAPHICS_CURSOR_DEPTH; + + for (i = 0; i < MOUSE_GRAPHICS_CURSOR_DEPTH; i++) + { + graphics_cursor.screen[i] = initial_mouse_screen_mask[i]; + graphics_cursor.cursor[i] = initial_mouse_cursor_mask[i]; + } + + user_subroutine_segment = 0; + user_subroutine_offset = 0; + user_subroutine_call_mask = 0; + + /* TMM: Flag the alternative user subroutines as not initialised */ + alt_user_subroutines_active = FALSE; + for (i = 0; i < NUMBER_ALT_SUBROUTINES; i++) + { + alt_user_subroutine_segment [i] = 0; + alt_user_subroutine_offset [i]= 0; + alt_user_subroutine_call_mask [i] = 0; + } + + black_hole.top_left.x = -MOUSE_VIRTUAL_SCREEN_WIDTH; + black_hole.top_left.y = -MOUSE_VIRTUAL_SCREEN_DEPTH; + black_hole.bottom_right.x = -MOUSE_VIRTUAL_SCREEN_WIDTH; + black_hole.bottom_right.y = -MOUSE_VIRTUAL_SCREEN_DEPTH; + + double_speed_threshold = MOUSE_DOUBLE_SPEED_THRESHOLD_DEFAULT; + cursor_flag = MOUSE_CURSOR_DEFAULT; + + cursor_status.position.x = MOUSE_VIRTUAL_SCREEN_WIDTH / 2; + cursor_status.position.y = MOUSE_VIRTUAL_SCREEN_DEPTH / 2; + cursor_status.button_status = 0; + + cursor_window.top_left.x = cursor_window.top_left.y = 0; + cursor_window.bottom_right.x = cursor_window.bottom_right.y = 0; + + light_pen_mode = TRUE; + + mouse_motion.x = 0; + mouse_motion.y = 0; + mouse_raw_motion.x = 0; + mouse_raw_motion.y = 0; + + /* Reset to default curve */ + active_acceleration_curve = 3; /* Back to Normal */ + + memcpy(&acceleration_curve_data, &default_acceleration_curve, + sizeof(ACCELERATION_CURVE_DATA)); + + next_video_mode = 0; /* reset video mode enumeration */ + + point_set(&cursor_position_default, MOUSE_VIRTUAL_SCREEN_WIDTH / 2, + MOUSE_VIRTUAL_SCREEN_DEPTH / 2); + + point_set(&cursor_position, MOUSE_VIRTUAL_SCREEN_WIDTH / 2, + MOUSE_VIRTUAL_SCREEN_DEPTH / 2); + + point_set(&cursor_fractional_position, 0, 0); + cursor_page = 0; + + mouse_driver_disabled = FALSE; + text_cursor_background = 0; + + for ( i = 0; i < MOUSE_GRAPHICS_CURSOR_DEPTH; i++) + graphics_cursor_background[i] = 0; + + save_area_in_use = FALSE; + point_set(&save_position, 0, 0); + + save_area.top_left.x = save_area.top_left.y = 0; + save_area.bottom_right.x = save_area.bottom_right.y = 0; + + user_subroutine_critical = FALSE; + last_condition_mask = 0; + + virtual_screen.top_left.x = MOUSE_VIRTUAL_SCREEN_ORIGIN_X; + virtual_screen.top_left.y = MOUSE_VIRTUAL_SCREEN_ORIGIN_Y; + virtual_screen.bottom_right.x = MOUSE_VIRTUAL_SCREEN_WIDTH; + virtual_screen.bottom_right.y = MOUSE_VIRTUAL_SCREEN_DEPTH; + + cursor_grid.x = 8; + cursor_grid.y = 8; + + text_grid.x = 8; + text_grid.y = 8; + + black_hole_default.top_left.x = -MOUSE_VIRTUAL_SCREEN_WIDTH; + black_hole_default.top_left.y = -MOUSE_VIRTUAL_SCREEN_DEPTH; + black_hole_default.bottom_right.x = -MOUSE_VIRTUAL_SCREEN_WIDTH; + black_hole_default.bottom_right.y = -MOUSE_VIRTUAL_SCREEN_DEPTH; + +#ifdef HERC + HERC_graphics_virtual_screen.top_left.x = 0; + HERC_graphics_virtual_screen.top_left.y = 0; + HERC_graphics_virtual_screen.bottom_right.x = 720; + HERC_graphics_virtual_screen.bottom_right.y = 350; +#endif /* HERC */ + + cursor_EM_disabled = FALSE; + } + +GLOBAL void mouse_driver_termination IFN0() + { + /* Just free up instance memory */ + NIDDB_Deallocate_Instance_Data((IHP *)mm_handle); + } + +/* + * MOUSE DRIVER EXTERNAL FUNCTIONS + * =============================== + */ + +/* + * Macro to produce an interrupt table location from an interrupt number + */ + +#define int_addr(int_no) (int_no * 4) + +void mouse_install1() +{ + + /* + * This function is called from the Mouse Driver program to + * install the Insignia Mouse Driver. The interrupt vector + * table is patched to divert all the mouse driver interrupts + */ + word junk1, junk2, junk3, junk4; + word hook_offset; + half_word interrupt_mask_register; + char temp[128]; +#ifdef NTVDM + word o,s; + sys_addr block_offset; +#endif + + note_trace0(MOUSE_VERBOSE, "mouse_install1:"); + +#ifdef MONITOR + /* + * Get addresses of stuff usually in ROM from driver + * To minimise changes, MOUSE... tokens are now variables and + * not defines. + */ + + block_offset = effective_addr(getCS(), getBX()); + + sas_loadw(block_offset, &MOUSE_IO_INTERRUPT_OFFSET); + sas_loadw(block_offset+2, &MOUSE_IO_INTERRUPT_SEGMENT); + sas_loadw(block_offset+4, &MOUSE_VIDEO_IO_OFFSET); + sas_loadw(block_offset+6, &MOUSE_VIDEO_IO_SEGMENT); + sas_loadw(block_offset+8, &MOUSE_INT1_OFFSET); + sas_loadw(block_offset+10, &MOUSE_INT1_SEGMENT); + sas_loadw(block_offset+12, &MOUSE_VERSION_OFFSET); + sas_loadw(block_offset+14, &MOUSE_VERSION_SEGMENT); + sas_loadw(block_offset+16, &MOUSE_COPYRIGHT_OFFSET); + sas_loadw(block_offset+18, &MOUSE_COPYRIGHT_SEGMENT); + sas_loadw(block_offset+20, &VIDEO_IO_RE_ENTRY); + sas_loadw(block_offset+22, &VIDEO_IO_SEGMENT); + sas_loadw(block_offset+24, &MOUSE_INT2_OFFSET); + sas_loadw(block_offset+26, &MOUSE_INT2_SEGMENT); + sas_loadw(block_offset+28, &DRAW_FS_POINTER_OFFSET); + sas_loadw(block_offset+30, &DRAW_FS_POINTER_SEGMENT); + sas_loadw(block_offset+32, &F0_OFFSET); + sas_loadw(block_offset+34, &F0_SEGMENT); + sas_loadw(block_offset+36, &POINTER_ON_OFFSET); + sas_loadw(block_offset+38, &POINTER_ON_SEGMENT); + sas_loadw(block_offset+40, &POINTER_OFF_OFFSET); + sas_loadw(block_offset+42, &POINTER_OFF_SEGMENT); + sas_loadw(block_offset+44, &F9_OFFSET); + sas_loadw(block_offset+46, &F9_SEGMENT); + sas_loadw(block_offset+48, &CP_X_O); + sas_loadw(block_offset+50, &CP_X_S); + sas_loadw(block_offset+52, &CP_Y_O); + sas_loadw(block_offset+54, &CP_Y_S); + sas_loadw(block_offset+56, &mouseINBoffset); + sas_loadw(block_offset+58, &mouseINBsegment); + sas_loadw(block_offset+60, &mouseOUTBoffset); + sas_loadw(block_offset+62, &mouseOUTBsegment); + sas_loadw(block_offset+64, &mouseOUTWoffset); + sas_loadw(block_offset+66, &mouseOUTWsegment); + sas_loadw(block_offset+68, &savedtextoffset); + sas_loadw(block_offset+70, &savedtextsegment); + sas_loadw(block_offset+72, &o); + sas_loadw(block_offset+74, &s); + sas_loadw(block_offset+76, &button_off); + sas_loadw(block_offset+78, &button_seg); + + mouseCFsysaddr = effective_addr(s,o); + sas_loadw(block_offset+80, &o); + sas_loadw(block_offset+82, &s); + conditional_off_sysaddr = effective_addr(s, o); + +#endif /* MONITOR */ + /* + * Make sure that old save area does not get re-painted! + */ + save_area_in_use = FALSE; + + /* + * Get rev of MOUSE.COM + */ + mouse_com_rev = getAL(); + + /* + * Bus mouse hardware interrupt + */ +#ifdef NTVDM + sas_loadw (int_addr(0x71) + 0, &saved_int71_offset); + sas_loadw (int_addr(0x71) + 2, &saved_int71_segment); + sas_storew(int_addr(0x71), MOUSE_INT1_OFFSET); + sas_storew(int_addr(0x71) + 2, MOUSE_INT1_SEGMENT); +#else + sas_loadw (int_addr(MOUSE_VEC) + 0, &saved_int0A_offset); + sas_loadw (int_addr(MOUSE_VEC) + 2, &saved_int0A_segment); + sas_storew(int_addr(MOUSE_VEC), MOUSE_INT1_OFFSET); + sas_storew(int_addr(MOUSE_VEC) + 2, MOUSE_INT1_SEGMENT); + +#endif NTVDM + + /* + * Enable mouse hardware interrupts in the ica + */ + inb(ICA1_PORT_1, &interrupt_mask_register); + interrupt_mask_register &= ~(1 << AT_CPU_MOUSE_INT); + outb(ICA1_PORT_1, interrupt_mask_register); + inb(ICA0_PORT_1, &interrupt_mask_register); + interrupt_mask_register &= ~(1 << CPU_MOUSE_INT); + outb(ICA0_PORT_1, interrupt_mask_register); + + /* + * Mouse io user interrupt + */ + + sas_loadw (int_addr(0x33) + 0, &saved_int33_offset); + sas_loadw (int_addr(0x33) + 2, &saved_int33_segment); + +#ifdef NTVDM + sas_storew(int_addr(0x33), MOUSE_IO_INTERRUPT_OFFSET); + sas_storew(int_addr(0x33) + 2, MOUSE_IO_INTERRUPT_SEGMENT); +#else + /* Read offset of INT 33 procedure from MOUSE.COM */ + sas_loadw(effective_addr(getCS(), OFF_HOOK_POSN), &hook_offset); + + sas_storew(int_addr(0x33), hook_offset); + sas_storew(int_addr(0x33) + 2, getCS()); +#endif /* NTVDM */ + +#ifdef MOUSE_16_BIT + /* + * Call 16-bit mouse driver initialisation routine + */ + mouse16bInstall( ); +#endif + +#if !defined(NTVDM) || (defined(NTVDM) && !defined(X86GFX)) + /* + * Mouse video io user interrupt + */ + sas_loadw (int_addr(0x10) + 0, &saved_int10_offset); + sas_loadw (int_addr(0x10) + 2, &saved_int10_segment); + /* + Determine if the current int10h vector points to + our roms. If it points elsewhere then the vector has + been hooked and we must call the current int10h handler + at the end of mouse_video_io(). + */ + int10_chained = TRUE; +#ifdef EGG + if(video_adapter == EGA || video_adapter == VGA) + { + if ((saved_int10_segment == EGA_SEG) && + (saved_int10_offset == EGA_ENTRY_OFF)) + int10_chained = FALSE; + } + else +#endif + { + if ((saved_int10_segment == VIDEO_IO_SEGMENT) && + (saved_int10_offset == VIDEO_IO_OFFSET)) + int10_chained = FALSE; + } +#ifndef MOUSE_16_BIT + sas_storew(int_addr(0x10), MOUSE_VIDEO_IO_OFFSET); + sas_storew(int_addr(0x10) + 2, MOUSE_VIDEO_IO_SEGMENT); +#else /* MOUSE_16_BIT */ + sas_storedw(int_addr(0x10), mouseIOData.mouse_video_io ); +#endif /* MOUSE_16_BIT */ + +#else + int10_chained = FALSE; // make it initialized +#endif /* if NTVDM && !X86GFX */ + + /* + * Reset mouse hardware and software + */ + junk1 = MOUSE_RESET; + mouse_reset(&junk1, &junk2, &junk3, &junk4); + + /* + * Display mouse driver identification string + */ +#ifdef NTVDM + clear_string(); +#endif + sprintf (temp, mouse_id, SPC_Product_Name, mouse_com_rev); +#ifdef NTVDM + display_string(temp); +#endif + + note_trace0(MOUSE_VERBOSE, "mouse_install1:return()"); +} + + + + +void mouse_install2() +{ + /* + * This function is called from the Mouse Driver program to + * print a message saying that an existing mouse driver + * program is already installed + */ + char temp[128]; + + note_trace0(MOUSE_VERBOSE, "mouse_install2:"); + + /* + * Make sure that old save area does not get re-painted! + */ + save_area_in_use = FALSE; + + /* + * Display mouse driver identification string + */ +#ifdef NTVDM + clear_string(); +#endif + sprintf (temp, mouse_installed, SPC_Product_Name, mouse_com_rev); +#ifdef NTVDM + display_string(temp); +#endif + + note_trace0(MOUSE_VERBOSE, "mouse_install2:return()"); +} + + + + +void mouse_io_interrupt() +{ + /* + * This is the entry point for mouse access via the INT 33H + * interface. I/O tracing is provided in each mouse function + */ + word local_AX, local_BX, local_CX, local_DX; + +#ifdef NTVDM + if(stream_io_enabled) { + disable_stream_io(); + } +#endif /* NTVDM */ + + /* + * Get the parameters + */ + local_AX = getAX(); + local_BX = getBX(); + local_CX = getCX(); + local_DX = getDX(); + +#ifdef EGG + jap_mouse = ((sas_hw_at(vd_video_mode) != Currently_emulated_video_mode) && alpha_num_mode()); + if (jap_mouse) + note_trace0(MOUSE_VERBOSE, "In Japanese mode - will emulate textmouse"); +#endif /* EGG */ + + note_trace4(MOUSE_VERBOSE, + "mouse function %d, position is %d,%d, button state is %d", + local_AX, cursor_status.position.x, + cursor_status.position.y, cursor_status.button_status); + + /* + * Do what you have to do + */ + do_mouse_function(&local_AX, &local_BX, &local_CX, &local_DX); + + /* + * Set the parameters + */ + setAX(local_AX); + setBX(local_BX); + setCX(local_CX); + setDX(local_DX); +} + + + + +void mouse_io_language() +{ + /* + * This is the entry point for mouse access via a language. + * I/O tracing is provided in each mouse function + */ + word local_SI = getSI(), local_DI = getDI(); + word m1, m2, m3, m4; + word offset, data; + sys_addr stack_addr = effective_addr(getSS(), getSP()); + + /* + * Retrieve parameters from the caller's stack + */ + sas_loadw(stack_addr+10, &offset); + sas_loadw(effective_addr(getDS(), offset), &m1); + + sas_loadw(stack_addr+8, &offset); + sas_loadw(effective_addr(getDS(), offset), &m2); + + sas_loadw(stack_addr+6, &offset); + sas_loadw(effective_addr(getDS(), offset), &m3); + + switch(m1) + { + case MOUSE_SET_GRAPHICS: + case MOUSE_SET_SUBROUTINE: + /* + * The fourth parameter is used directly as the offset + */ + sas_loadw(stack_addr+4, &m4); + break; + case MOUSE_CONDITIONAL_OFF: + /* + * The fourth parameter addresses a parameter block + * that contains the data + */ + sas_loadw(stack_addr+4, &offset); + sas_loadw(effective_addr(getDS(), offset), &m3); + sas_loadw(effective_addr(getDS(), offset+2), &m4); + sas_loadw(effective_addr(getDS(), offset+4), &data); + setSI(data); + sas_loadw(effective_addr(getDS(), offset+6), &data); + setDI(data); + break; + default: + /* + * The fourth parameter addresses the data to be used + */ + sas_loadw(stack_addr+4, &offset); + sas_loadw(effective_addr(getDS(), offset), &m4); + break; + } + + /* + * Do what you have to do + */ + do_mouse_function(&m1, &m2, &m3, &m4); + + /* + * Store results back on the stack + */ + sas_loadw(stack_addr+10, &offset); + sas_storew(effective_addr(getDS(), offset), m1); + + sas_loadw(stack_addr+8, &offset); + sas_storew(effective_addr(getDS(), offset), m2); + + sas_loadw(stack_addr+6, &offset); + sas_storew(effective_addr(getDS(), offset), m3); + + sas_loadw(stack_addr+4, &offset); + sas_storew(effective_addr(getDS(), offset), m4); + + /* + * Restore potentially corrupted registers + */ + setSI(local_SI); + setDI(local_DI); +} + +#ifdef MOUSE_16_BIT +/* + * function : mouse16bCheckConditionalOff + * + * purpose : Make the 16 bit driver check the conditional + * off area and either draw or hide the pointer + * appropriately. This function is only called + * when the cursor flag is set to + * MOUSE_CURSOR_DISPLAYED. + * + * inputs : none + * outputs : none + * returns : void + * globals : cursor_flag is decremented if the pointer has + * to be hidden + * + * + */ +LOCAL void mouse16bCheckConditionalOff IFN0() +{ + /* If the mouse has moved into the conditional + ** off area (the black hole) then the mouse + ** must be hidden and the cursor flag + ** decremented, otherwise the mouse is drawn + ** in its new position. + */ + if ((cursor_position.x >= + black_hole.top_left.x) && + (cursor_position.x <= + black_hole.bottom_right.x) && + (cursor_position.y >= + black_hole.top_left.y) && + (cursor_position.y <= + black_hole.bottom_right.y)) + { + cursor_flag--; + mouse16bHidePointer(); + } + else + mouse16bDrawPointer( &cursor_status ); +} +#endif /* MOUSE_16_BIT */ + +LOCAL void get_screen_size IFN0() +{ +#ifdef HERC + if (video_adapter == HERCULES){ + if (get_cga_mode() == GRAPHICS){ + virtual_screen.bottom_right.x = 720; + virtual_screen.bottom_right.y = 348; + }else{ + virtual_screen.bottom_right.x = 640; + virtual_screen.bottom_right.y = 348; + } + return; + } +#endif /* HERC */ + switch(current_video_mode) + { + /*================================================================== + ACW 17/3/93 Some code added to return a different virtual + coordinate size for the screen if text mode is used NOT in 25 line + mode. This really emulates the Microsoft Mouse Driver. + Note: There are 8 x 8 virtual pixels in any character cell. + ==================================================================*/ + case 0x2: + case 0x3: + case 0x7: + { + half_word no_of_lines; + + sas_load(0x484, &no_of_lines); /* do a look up in BIOS */ + no_of_lines &= 0xff; /* clean up */ + switch(no_of_lines) + { + case 24: + virtual_screen.bottom_right.x = 640; + virtual_screen.bottom_right.y = 200; + break; + case 42: + virtual_screen.bottom_right.x = 640; + virtual_screen.bottom_right.y = 344; + break; + case 49: + virtual_screen.bottom_right.x = 640; + virtual_screen.bottom_right.y = 400; + break; + } + } + break; + /*================================================================== + End of ACW code + ==================================================================*/ + case 0xf: + case 0x10: + virtual_screen.bottom_right.x = 640; + virtual_screen.bottom_right.y = 350; + break; + case 0x40: + virtual_screen.bottom_right.x = 640; + virtual_screen.bottom_right.y = 344; + break; + case 0x41: + virtual_screen.bottom_right.x = 1056; + virtual_screen.bottom_right.y = 350; + break; + case 0x42: + virtual_screen.bottom_right.x = 1056; + virtual_screen.bottom_right.y = 344; + break; + case 0x45: + virtual_screen.bottom_right.x = 1056; + virtual_screen.bottom_right.y = 392; + break; + case 0x66: + virtual_screen.bottom_right.x = 640; + virtual_screen.bottom_right.y = 400; + break; + case 0x11: + case 0x12: + case 0x43: + case 0x67: + virtual_screen.bottom_right.x = 640; + virtual_screen.bottom_right.y = 480; + break; + case 0x44: + virtual_screen.bottom_right.x = 800; + virtual_screen.bottom_right.y = 480; + break; + case 0x60: + virtual_screen.bottom_right.x = 752; + virtual_screen.bottom_right.y = 410; + break; + case 0x61: + case 0x68: + virtual_screen.bottom_right.x = 720; + virtual_screen.bottom_right.y = 540; + break; + case 0x62: + case 0x69: + virtual_screen.bottom_right.x = 800; + virtual_screen.bottom_right.y = 600; + break; + case 0x63: + case 0x64: + case 0x65: + virtual_screen.bottom_right.x = 1024; + virtual_screen.bottom_right.y = 768; + break; + default: + virtual_screen.bottom_right.x = 640; + virtual_screen.bottom_right.y = 200; + break; + } +} + + + +#ifdef EGG + +/* + * Utility routine to restore EGA defaults to the saved values. + * If to_hw == TRUE, the restored values are also sent to the EGA. + */ + + +LOCAL boolean dirty_crtc[EGA_PARMS_CRTC_SIZE], dirty_seq[EGA_PARMS_SEQ_SIZE], + dirty_graph[EGA_PARMS_GRAPH_SIZE], dirty_attr[EGA_PARMS_ATTR_SIZE]; + +LOCAL void clean_all_regs() +{ + int i; + + for(i=0;i 0x13) + current_video_mode += 0x4c; + + if (is_bad_vid_mode(current_video_mode) && !is_v7vga_mode(current_video_mode)) +#else + if (is_bad_vid_mode(current_video_mode)) +#endif /* V7VGA */ + { + always_trace1("Bad video mode - %d.\n", current_video_mode); +#ifdef V7VGA + if (mouse_video_function == 0x6f) + setAH( 0x02 ); /* suret */ +#endif /* V7VGA */ + return; + } + +#ifdef EGG + mouse_ega_mode(current_video_mode); + dirty_all_regs(); +#endif + /* + * Remove the old cursor from the screen, and hide + * the cursor + */ + cursor_undisplay(); + + cursor_flag = MOUSE_CURSOR_DEFAULT; + +#if defined(NTVDM) && defined(MONITOR) + sas_store(mouseCFsysaddr,(half_word)MOUSE_CURSOR_DEFAULT); +#endif + /* + * Deal with the mode change + */ + cursor_mode_change(current_video_mode); + +#if defined(NTVDM) && defined(MONITOR) + host_call_bios_mode_change(); +#endif + +#ifdef MOUSE_16_BIT + /* Remember whether in text or graphics mode for + ** later use. + */ + is_graphics_mode = ((current_video_mode > 3) && + (current_video_mode != 7)); +#endif /* MOUSE_16_BIT */ + + note_trace0(MOUSE_VERBOSE, "mouse_video_io:return()"); + } + else if ( (mouse_video_function == MOUSE_VIDEO_READ_LIGHT_PEN) + && light_pen_mode) + { + note_trace0(MOUSE_VERBOSE, "mouse_video_io:read_light_pen()"); + + /* + * Set text row and column of "light pen" position + */ + setDL(cursor_status.position.x/text_grid.x); + setDH(cursor_status.position.y/text_grid.y); + + /* + * Set pixel column and raster line of "light pen" + * position + */ + setBX(cursor_status.position.x/cursor_grid.x); + if (sas_hw_at(vd_video_mode)>= 0x04 && sas_hw_at(vd_video_mode)<=0x06){ + setCH(cursor_status.position.y); + }else if (sas_hw_at(vd_video_mode)>= 0x0D && sas_hw_at(vd_video_mode)<=0x13){ + setCX(cursor_status.position.y); + } + + /* + * Set the button status + */ + setAH(cursor_status.button_status); + + note_trace5(MOUSE_VERBOSE, + "mouse_video_io:return(st=%d,ca=[%d,%d],pa=[%d,%d])", + getAH(), getDL(), getDH(), getBX(), cursor_status.position.y); + return; + } +#if defined(NTVDM) && defined(MONITOR) + else if (mouse_video_function == MOUSE_VIDEO_LOAD_FONT) + { + note_trace0(MOUSE_VERBOSE, "mouse_video_io:load_font()"); + + /* + * Call the host to tell it to adjust the mouse buffer selected + * if the number of lines on the screen have changed. + */ + host_check_mouse_buffer(); + } +#endif /* NTVDM && MONITOR */ + + /* + * Now do the standard video io processing + */ + switch (mouse_video_function) + { +#ifdef EGG + /* Fancy stuff to access EGA registers */ + case 0xf0: /* Read a register */ + switch (getDX()) + { + case 0: + setBL(ega_current_crtc[getBL()]); + break; + case 8: + setBL(ega_current_seq[getBL()-1]); + break; + case 0x10: + setBL(ega_current_graph[getBL()]); + break; + case 0x18: + setBL(ega_current_attr[getBL()]); + break; + case 0x20: + setBL(ega_current_misc); + break; + case 0x28: + break; + /* Graphics Position registers not supported. */ + case 0x30: + case 0x38: + default: + break; + } + break; + case 0xf1: /* Write a register */ + switch (getDX()) + { + case 0: + outw( EGA_CRTC_INDEX, getBX() ); + ega_current_crtc[getBL()] = getBH(); + dirty_crtc[getBL()] = 1; + break; + case 8: + outw( EGA_SEQ_INDEX, getBX() ); + if(getBL()>0) + { + ega_current_seq[getBL()-1] = getBH(); + dirty_seq[getBL()-1] = 1; + } + break; + case 0x10: + outw( EGA_GC_INDEX, getBX() ); + ega_current_graph[getBL()] = getBH(); + dirty_graph[getBL()] = 1; + break; + case 0x18: + inb(EGA_IPSTAT1_REG,&temp_word); /* Clear attrib. index */ + + /* outw( EGA_AC_INDEX_DATA, getBX() ); this is not correct (andyw BCN 1692) */ + +/*============================================================================= +The attribute controller index register and data register associated +with that index are accessed through the same I/O port = 03C0h. +The correct procedure is to map the index register to 03C0h by doing +the INB as above. Then OUTB the index of the A.C. register required. +The VGA hardware then maps in the correct data register to which +the application OUTBs the necessary data. +=============================================================================*/ + OUTB( EGA_AC_INDEX_DATA, getBL() ); /* BL contains the index value */ + OUTB( EGA_AC_INDEX_DATA, getBH() ); /* BH contains the data */ + +/*=== End of BCN 1692 ===*/ + OUTB( EGA_AC_INDEX_DATA, EGA_PALETTE_ENABLE ); /* re-enable video */ + ega_current_attr[getBL()] = getBH(); + dirty_attr[getBL()] = 1; + break; + case 0x20: + OUTB( EGA_MISC_REG, getBL() ); + ega_current_misc = getBL(); + break; + case 0x28: + OUTB( EGA_FEAT_REG, getBL() ); + break; + /* Graphics Position registers not supported. */ + case 0x30: + case 0x38: + default: + break; + } + break; + case 0xf2: /* read range */ + switch (getDX()) + { + case 0: + sas_stores(effective_addr(getES(),getBX()),&ega_current_crtc[getCH()],getCL()); + break; + case 8: + sas_stores(effective_addr(getES(),getBX()),&ega_current_seq[getCH()-1],getCL()); + break; + case 0x10: + sas_stores(effective_addr(getES(),getBX()),&ega_current_graph[getCH()],getCL()); + break; + case 0x18: + sas_stores(effective_addr(getES(),getBX()),&ega_current_attr[getCH()],getCL()); + break; + default: + break; + } + break; + case 0xf3: /* write range */ + { + int first = getCH(), last = getCH()+getCL(); + sys_addr sauce = effective_addr(getES(),getBX()); + switch (getDX()) + { + case 0: + sas_loads(sauce,&ega_current_crtc[getCH()],getCL()); + for(;first double_speed_threshold) + || (scalar_absolute(mouse_movement.y) > double_speed_threshold)) + vector_scale(&mouse_movement, MOUSE_DOUBLE_SPEED_SCALE); + + /* + * Update the user mouse motion counters + */ + point_translate(&mouse_motion, &mouse_movement); + + /* + * Convert the movement from a mouse Mickey count vector + * to a virtual screen coordinate vector, using the + * previous remainder and saving the new remainder + */ + vector_scale(&mouse_movement, MOUSE_RATIO_SCALE_FACTOR); + point_translate(&mouse_movement, &cursor_fractional_position); + point_copy(&mouse_movement, &cursor_fractional_position); + vector_divide_by_vector(&mouse_movement, &mouse_gear); + vector_mod_by_vector(&cursor_fractional_position, &mouse_gear); + + /* + * Update the absolute cursor position and the windowed + * and gridded screen cursor position + */ + point_translate(&cursor_position, &mouse_movement); + cursor_update(); + } + +#endif /* NTVDM*/ + + /* OK mouse variables updated - go handle consequences */ + mouse_update(condition_mask); + + note_trace0(MOUSE_VERBOSE, "mouse_int1:return()"); +} + +LOCAL void mouse_update IFN1(MOUSE_CALL_MASK, condition_mask) +{ + MOUSE_CALL_MASK key_mask; + boolean alt_found = FALSE; + int i; + + note_trace4(MOUSE_VERBOSE, + "mouse_update():cursor status = (%d,%d), LEFT %s, RIGHT %s", + cursor_status.position.x, cursor_status.position.y, + mouse_button_description(cursor_status.button_status & MOUSE_LEFT_BUTTON_DOWN_BIT), + mouse_button_description(cursor_status.button_status & MOUSE_RIGHT_BUTTON_DOWN_BIT)); + + if (alt_user_subroutines_active){ + /* Get current key states in correct form */ + key_mask = ((sas_hw_at(kb_flag) & LR_SHIFT) ? MOUSE_CALL_MASK_SHIFT_KEY_BIT : 0) | + ((sas_hw_at(kb_flag) & CTL_SHIFT) ? MOUSE_CALL_MASK_CTRL_KEY_BIT : 0) | + ((sas_hw_at(kb_flag) & ALT_SHIFT) ? MOUSE_CALL_MASK_ALT_KEY_BIT : 0); + for (i=0; !alt_found && i 0x13) + crt_mode += 0x4c; +#endif + + cursor_mode_change((int)crt_mode); + + /* + * Update dependent cursor status + */ + cursor_update(); + + /* + * Set default text cursor type and masks + */ + text_cursor_type = MOUSE_TEXT_CURSOR_TYPE_DEFAULT; + software_text_cursor_copy(&software_text_cursor_default, + &software_text_cursor); + + /* + * Set default graphics cursor + */ + graphics_cursor_copy(&graphics_cursor_default, &graphics_cursor); + copy_default_graphics_cursor(); + + /* + * Set cursor page to zero + */ + cursor_page = 0; + + /* + * Set light pen emulation mode on + */ + light_pen_mode = TRUE; + + /* + * Set default Mickey to pixel ratios + */ + point_copy(&mouse_gear_default, &mouse_gear); + + /* + * Clear mouse motion counters + */ + point_set(&mouse_motion, 0, 0); + point_set(&mouse_raw_motion, 0, 0); + + /* Reset to default acceleration curve */ + active_acceleration_curve = 3; /* Back to Normal */ + + memcpy(&acceleration_curve_data, &default_acceleration_curve, + sizeof(ACCELERATION_CURVE_DATA)); + + next_video_mode = 0; /* reset video mode enumeration */ + + /* + * Clear mouse button transition data + */ + for (button = 0; button < MOUSE_BUTTON_MAXIMUM; button++) + { + button_transitions[button].press_position.x = 0; + button_transitions[button].press_position.y = 0; + button_transitions[button].release_position.x = 0; + button_transitions[button].release_position.y = 0; + button_transitions[button].press_count = 0; + button_transitions[button].release_count = 0; + } + + /* + * Disable conditional off area + */ + area_copy(&black_hole_default, &black_hole); + +#if defined(MONITOR) && defined(NTVDM) + sas_store(conditional_off_sysaddr, 0); +#endif + + /* + * Set default sensitivity + */ + vector_set (&mouse_sens, MOUSE_SENS_DEF, MOUSE_SENS_DEF); + vector_set (&mouse_sens_val, MOUSE_SENS_DEF_VAL, MOUSE_SENS_DEF_VAL); + mouse_double_thresh = MOUSE_DOUBLE_DEF; + + /* + * Set double speed threshold to the default + */ + double_speed_threshold = MOUSE_DOUBLE_SPEED_THRESHOLD_DEFAULT; + + /* + * Clear subroutine call mask + */ + user_subroutine_call_mask = 0; + + /* + * Reset the bus mouse hardware + */ + if (!soft_reset_only){ + inport_reset(); + } + + /* + * Set return values + */ + *installed_ptr = MOUSE_INSTALLED; + *nbuttons_ptr = 2; + + note_trace2(MOUSE_VERBOSE, "mouse_io:return(ms=%d,nb=%d)", + *installed_ptr, *nbuttons_ptr); +} + + + + +LOCAL void mouse_show_cursor IFN4(word *,junk1,word *,junk2,word *,junk3,word *,junk4) +{ + /* + * This function is used to display the cursor, based on the + * state of the internal cursor flag. If the cursor flag is + * already MOUSE_CURSOR_DISPLAYED, then this function does + * nothing. If the internal cursor flag becomes + * MOUSE_CURSOR_DISPLAYED when incremented by 1, the cursor + * is revealed + */ + + UNUSED(junk1); + UNUSED(junk2); + UNUSED(junk3); + UNUSED(junk4); + + note_trace0(MOUSE_VERBOSE, "mouse_io:show_cursor()"); + +#ifndef NTVDM + /* + * Disable conditional off area + */ + area_copy(&black_hole_default, &black_hole); + + /* + * Display the cursor + */ + if (cursor_flag != MOUSE_CURSOR_DISPLAYED) + if (++cursor_flag == MOUSE_CURSOR_DISPLAYED) +#ifdef MOUSE_16_BIT + if (is_graphics_mode) + mouse16bShowPointer(&cursor_status); + else +#endif /* MOUSE_16_BIT */ + { + cursor_display(); + } +#endif /* NTVDM */ + +#if defined(NTVDM) && defined(X86GFX) + host_show_pointer(); +#endif + + note_trace0(MOUSE_VERBOSE, "mouse_io:return()"); +} + + + + +LOCAL void mouse_hide_cursor IFN4(word *,junk1,word *,junk2,word *,junk3,word *,junk4) +{ + /* + * This function is used to undisplay the cursor, based on + * the state of the internal cursor flag. If the cursor flag + * is already not MOUSE_CURSOR_DISPLAYED, then this function + * does nothing, otherwise it removes the cursor from the display + */ + + UNUSED(junk1); + UNUSED(junk2); + UNUSED(junk3); + UNUSED(junk4); + + note_trace0(MOUSE_VERBOSE, "mouse_io:hide_cursor()"); +#ifndef NTVDM + if (cursor_flag-- == MOUSE_CURSOR_DISPLAYED) +#ifdef MOUSE_16_BIT + if (is_graphics_mode) + mouse16bHidePointer(); + else +#endif /* MOUSE_16_BIT */ + { + cursor_undisplay(); + } +#endif +#if defined(NTVDM) && defined(X86GFX) + host_hide_pointer(); +#endif + + note_trace0(MOUSE_VERBOSE, "mouse_io:return()"); +} + + + + +LOCAL void mouse_get_position IFN4(word *,junk1,MOUSE_STATE *,button_status_ptr,MOUSE_SCALAR *,cursor_x_ptr,MOUSE_SCALAR *,cursor_y_ptr) +{ + /* + * This function returns the state of the left and right mouse + * buttons and the gridded position of the cursor on the screen + */ + + UNUSED(junk1); + + note_trace0(MOUSE_VERBOSE, "mouse_io:get_position()"); + + *button_status_ptr = cursor_status.button_status; + *cursor_x_ptr = cursor_status.position.x; + *cursor_y_ptr = cursor_status.position.y; + + note_trace3(MOUSE_VERBOSE, "mouse_io:return(bs=%d,x=%d,y=%d)", + *button_status_ptr, *cursor_x_ptr, *cursor_y_ptr); +} + + + + +LOCAL void mouse_set_position IFN4(word *,junk1,word *,junk2,MOUSE_SCALAR *,cursor_x_ptr,MOUSE_SCALAR *,cursor_y_ptr) +{ + /* + * This function sets the cursor to a new position + */ + + UNUSED(junk1); + UNUSED(junk2); + + note_trace2(MOUSE_VERBOSE, "mouse_io:set_position(x=%d,y=%d)", + *cursor_x_ptr, *cursor_y_ptr); + + +#if defined(NTVDM) + +#ifndef X86GFX + /* + * update the cursor position. cc:Mail installtion does + * do { + * SetMouseCursorPosition(x,y) + * GetMouseCursorPosition(&NewX, &NewY); + * } while(NewX != x || NewY != y) + * If we don't retrun correct cursor position, this application + * looks hung + * + */ + point_set(&cursor_status.position, *cursor_x_ptr, *cursor_y_ptr); + +#endif + /* + * For NT, the system pointer is used directly to provide + * input except for fullscreen graphics where the host code + * has the dubious pleasure of drawing the pointer through + * a 16 bit device driver. + */ + + host_mouse_set_position((USHORT)*cursor_x_ptr,(USHORT)*cursor_y_ptr); + return; /* let's get out of this mess - FAST! */ + +#endif /* NTVDM */ + + /* + * Update the current cursor position, and reflect the change + * in the cursor position on the screen + */ + point_set(&cursor_position, *cursor_x_ptr, *cursor_y_ptr); + cursor_update(); + + /* + * If the cursor is currently displayed, move it to the new + * position + */ + if (cursor_flag == MOUSE_CURSOR_DISPLAYED) + cursor_display(); + + note_trace0(MOUSE_VERBOSE, "mouse_io:return()"); +} + + + + +LOCAL void mouse_get_press IFN4(MOUSE_STATE *,button_status_ptr,MOUSE_COUNT *,button_ptr,MOUSE_SCALAR *,cursor_x_ptr,MOUSE_SCALAR *,cursor_y_ptr) +{ + /* + * This function returns the status of a button, the number of + * presses since the last call to this function, and the + * coordinates of the cursor at the last button press + */ + int button = *button_ptr; + + note_trace1(MOUSE_VERBOSE, "mouse_io:get_press(button=%d)", button); + + /* Now and with 1. This is a fix for Norton Editor, but may cause + problems for programs which use both mouse buttons pressed + simultaneously, in which case need both bottom bits of button + preserved, which may break Norton Editor again. sigh. */ + button &= 1; + + if (mouse_button_in_range(button)) + { + *button_status_ptr = cursor_status.button_status; + *button_ptr = button_transitions[button].press_count; + button_transitions[button].press_count = 0; + *cursor_x_ptr = button_transitions[button].press_position.x; + *cursor_y_ptr = button_transitions[button].press_position.y; + } + + note_trace4(MOUSE_VERBOSE, "mouse_io:return(bs=%d,ct=%d,x=%d,y=%d)", + *button_status_ptr, *button_ptr, + *cursor_x_ptr, *cursor_y_ptr); +} + + + + +LOCAL void mouse_get_release IFN4(MOUSE_STATE *,button_status_ptr,MOUSE_COUNT *,button_ptr,MOUSE_SCALAR *,cursor_x_ptr,MOUSE_SCALAR *,cursor_y_ptr) +{ + /* + * This function returns the status of a button, the number of + * releases since the last call to this function, and the + * coordinates of the cursor at the last button release + */ + int button = *button_ptr; + + note_trace1(MOUSE_VERBOSE, "mouse_io:get_release(button=%d)", + *button_ptr); + + /* fix for norton editor, see previous comment */ + button &= 1; + + if (mouse_button_in_range(button)) + { + *button_status_ptr = cursor_status.button_status; + *button_ptr = button_transitions[button].release_count; + button_transitions[button].release_count = 0; + *cursor_x_ptr = button_transitions[button].release_position.x; + *cursor_y_ptr = button_transitions[button].release_position.y; + } + + note_trace4(MOUSE_VERBOSE, "mouse_io:return(bs=%d,ct=%d,x=%d,y=%d)", + *button_status_ptr, *button_ptr, + *cursor_x_ptr, *cursor_y_ptr); +} + + + + +LOCAL void mouse_set_range_x IFN4(word *,junk1,word *,junk2,MOUSE_SCALAR *,minimum_x_ptr,MOUSE_SCALAR *,maximum_x_ptr) +{ + /* + * This function sets the horizontal range within which + * movement of the cursor is to be restricted + */ + + UNUSED(junk1); + UNUSED(junk2); + + note_trace2(MOUSE_VERBOSE, "mouse_io:set_range_x(min=%d,max=%d)", + *minimum_x_ptr, *maximum_x_ptr); + + /* + * Update the current cursor window, normalise it and validate + * it + */ + cursor_window.top_left.x = *minimum_x_ptr; + cursor_window.bottom_right.x = *maximum_x_ptr; + area_normalise(&cursor_window); +#ifdef NTVDM + /* make host aware of the new range setting because it is the one doing + * clipping based on video mode setting. + * Flight Simulator runs on 320x400 256 color mode and set the + * cursor range to (0-13f, 0-18f). Without notifying the host, + * the mouse cursor is always contrained to standard video mode + * resolution which is not what the application wanted. + */ + host_x_range(NULL, NULL, &cursor_window.top_left.x, &cursor_window.bottom_right.x); +#endif + + /* + * Reflect the change in the cursor position on the screen + */ + cursor_update(); + + /* + * If the cursor is currently displayed, move it to the new + * position + */ + if (cursor_flag == MOUSE_CURSOR_DISPLAYED) + cursor_display(); + + note_trace0(MOUSE_VERBOSE, "mouse_io:return()"); +} + + + + +LOCAL void mouse_set_range_y IFN4(word *,junk1,word *,junk2,MOUSE_SCALAR *,minimum_y_ptr,MOUSE_SCALAR *,maximum_y_ptr) +{ + /* + * This function sets the vertical range within which + * movement of the cursor is to be restricted + */ + + UNUSED(junk1); + UNUSED(junk2); + + note_trace2(MOUSE_VERBOSE, "mouse_io:set_range_y(min=%d,max=%d)", + *minimum_y_ptr, *maximum_y_ptr); + + /* + * Update the current cursor window, normalise it and validate + * it + */ + cursor_window.top_left.y = *minimum_y_ptr; + cursor_window.bottom_right.y = *maximum_y_ptr; + area_normalise(&cursor_window); +#ifdef NTVDM + /* make host aware of the new range setting because it is the one doing + * clipping based on video mode setting. + * Flight Simulator runs on 320x400 256 color mode and set the + * cursor range to (0-13f, 0-18f). Without notifying the host, + * the mouse cursor is always contrained to standard video mode + * resolution which is not what the application wanted. + */ + host_y_range(NULL, NULL, &cursor_window.top_left.y, &cursor_window.bottom_right.y); +#endif + + + /* + * Reflect the change in the cursor position on the screen + */ + cursor_update(); + + /* + * If the cursor is currently displayed, move it to the new + * position + */ + if (cursor_flag == MOUSE_CURSOR_DISPLAYED) + cursor_display(); + + note_trace0(MOUSE_VERBOSE, "mouse_io:return()"); +} + + +LOCAL void copy_default_graphics_cursor IFN0() +{ + + int line; + UTINY temp; + IU32 temp2; + + for (line = 0; line < MOUSE_GRAPHICS_CURSOR_DEPTH; line++) + { + temp = (UTINY)((graphics_cursor.screen[line] & 0xff00) >> 8); + + temp2 = ( (IU32) temp << 8 ) | (IU32) temp; + graphics_cursor.screen_lo[line] = ( temp2 << 16 ) | temp2; + + temp = (UTINY)(graphics_cursor.screen[line] & 0xff); + + temp2 = ( (IU32) temp << 8 ) | (IU32) temp; + graphics_cursor.screen_hi[line] = ( temp2 << 16 ) | temp2; + + } + + for (line = 0; line < MOUSE_GRAPHICS_CURSOR_DEPTH; line++) + { + temp = (UTINY)((graphics_cursor.cursor[line] & 0xff00) >> 8); + + temp2 = ( (IU32) temp << 8 ) | (IU32) temp; + graphics_cursor.cursor_lo[line] = ( temp2 << 16 ) | temp2; + + temp = (UTINY)(graphics_cursor.cursor[line] & 0xff); + + temp2 = ( (IU32) temp << 8 ) | (IU32) temp; + graphics_cursor.cursor_hi[line] = ( temp2 << 16 ) | temp2; + + } + +} + + +LOCAL void mouse_set_graphics IFN4(word *,junk1,MOUSE_SCALAR *,hot_spot_x_ptr,MOUSE_SCALAR *,hot_spot_y_ptr,word *,bitmap_address) +{ + /* + * This function defines the shape, colour and hot spot of the + * graphics cursor + */ + + UNUSED(junk1); + +#ifndef NTVDM + +#ifdef MOUSE_16_BIT + mouse16bSetBitmap( hot_spot_x_ptr , hot_spot_y_ptr , bitmap_address ); +#else /* MOUSE_16_BIT */ + + if (host_mouse_installed()) + { + host_mouse_set_graphics(hot_spot_x_ptr, hot_spot_y_ptr, bitmap_address); + } + else + { + MOUSE_SCREEN_DATA *mask_address; + int line; + UTINY temp; + IU32 temp2; + + /* + * Set graphics cursor hot spot + */ + point_set(&graphics_cursor.hot_spot, *hot_spot_x_ptr, *hot_spot_y_ptr); + + /* + * Set graphics cursor screen and cursor masks + */ + mask_address = (MOUSE_SCREEN_DATA *)effective_addr(getES(), *bitmap_address); + + for (line = 0; line < MOUSE_GRAPHICS_CURSOR_DEPTH; line++, mask_address++) + { + sas_load((sys_addr)mask_address + 1, &temp ); + + temp2 = ( (IU32) temp << 8 ) | (IU32) temp; + graphics_cursor.screen_lo[line] = ( temp2 << 16 ) | temp2; + + sas_load((sys_addr)mask_address , &temp ); + + temp2 = ( (IU32) temp << 8 ) | (IU32) temp; + graphics_cursor.screen_hi[line] = ( temp2 << 16 ) | temp2; + + graphics_cursor.screen[line] = ( graphics_cursor.screen_hi[line] & 0xff ) + | ( graphics_cursor.screen_lo[line] << 8 ); + } + + for (line = 0; line < MOUSE_GRAPHICS_CURSOR_DEPTH; line++, mask_address++) + { + sas_load((sys_addr)mask_address + 1, &temp ); + + temp2 = ( (IU32) temp << 8 ) | (IU32) temp; + graphics_cursor.cursor_lo[line] = ( temp2 << 16 ) | temp2; + + sas_load((sys_addr)mask_address , &temp ); + + temp2 = ( (IU32) temp << 8 ) | (IU32) temp; + graphics_cursor.cursor_hi[line] = ( temp2 << 16 ) | temp2; + + graphics_cursor.cursor[line] = ( graphics_cursor.cursor_hi[line] & 0xff ) + | ( graphics_cursor.cursor_lo[line] << 8 ); + } + + } +#endif /* MOUSE_16_BIT */ +#endif /* NTVDM */ + /* + * Redisplay cursor if necessary + */ + if (cursor_flag == MOUSE_CURSOR_DISPLAYED) + cursor_display(); +} + + + + +LOCAL void mouse_set_text IFN4(word *,junk1,MOUSE_STATE *,text_cursor_type_ptr,MOUSE_SCREEN_DATA *,parameter1_ptr,MOUSE_SCREEN_DATA *,parameter2_ptr) +{ + /* + * This function selects the software or hardware text cursor + */ + UNUSED(junk1); + +#ifndef PROD + if (io_verbose & MOUSE_VERBOSE) + { + fprintf(trace_file, "mouse_io:set_text(type=%d,", + *text_cursor_type_ptr); + if (*text_cursor_type_ptr == MOUSE_TEXT_CURSOR_TYPE_SOFTWARE) + fprintf(trace_file, "screen=0x%x,cursor=0x%x)\n", + *parameter1_ptr, *parameter2_ptr); + else + fprintf(trace_file, "start=%d,stop=%d)\n", + *parameter1_ptr, *parameter2_ptr); + } +#endif + + if (mouse_text_cursor_type_in_range(*text_cursor_type_ptr)) + { + /* + * Remove existing text cursor + */ + cursor_undisplay(); + + text_cursor_type = *text_cursor_type_ptr; +#ifdef EGG + if (jap_mouse) { + /* we need to emulate the text cursor in the + * current graphics mode. Just do a block at present + */ + int line; + for (line = 0; line < MOUSE_GRAPHICS_CURSOR_DEPTH; line++) + { + graphics_cursor.cursor[line]=0xff00; + graphics_cursor.screen[line]=0xffff; + } + point_set(&(graphics_cursor.hot_spot),0,0); + point_set(&(graphics_cursor.size),MOUSE_GRAPHICS_CURSOR_WIDTH,MOUSE_GRAPHICS_CURSOR_WIDTH); + copy_default_graphics_cursor(); + } else +#endif /* EGG */ + if (text_cursor_type == MOUSE_TEXT_CURSOR_TYPE_SOFTWARE) + { + /* + * Parameters are the data for the screen + * and cursor masks + */ + software_text_cursor.screen = *parameter1_ptr; + software_text_cursor.cursor = *parameter2_ptr; + } + else + { + /* + * Parameters are the scan line start and + * stop values + */ + word savedIP = getIP(), savedCS = getCS(); + + setCH(*parameter1_ptr); + setCL(*parameter2_ptr); + setAH(MOUSE_VIDEO_SET_CURSOR); + + setCS(VIDEO_IO_SEGMENT); + setIP(VIDEO_IO_RE_ENTRY); + host_simulate(); + setCS(savedCS); + setIP(savedIP); + } + + /* + * Put new text cursor on screen + */ + if (cursor_flag == MOUSE_CURSOR_DISPLAYED) + cursor_display(); + } + + note_trace0(MOUSE_VERBOSE, "mouse_io:return()"); +} + + + + +LOCAL void mouse_read_motion IFN4(word *,junk1,word *,junk2,MOUSE_COUNT *,motion_count_x_ptr,MOUSE_COUNT *,motion_count_y_ptr) +{ + /* + * This function returns the horizontal and vertical mouse + * motion counts since the last call; the motion counters + * are cleared + */ + + UNUSED(junk1); + UNUSED(junk2); + + note_trace0(MOUSE_VERBOSE, "mouse_io:read_motion()"); + + *motion_count_x_ptr = mouse_motion.x; + mouse_motion.x = 0; + *motion_count_y_ptr = mouse_motion.y; + mouse_motion.y = 0; + + + note_trace2(MOUSE_VERBOSE, "mouse_io:return(x=%d,y=%d)", + *motion_count_x_ptr, *motion_count_y_ptr); +} + + + + +LOCAL void mouse_set_subroutine IFN4(word *,junk1,word *,junk2,word *,call_mask,word *,subroutine_address) +{ + /* + * This function sets the call mask and subroutine address + * for a user function to be called when a mouse interrupt + * occurs + */ + + UNUSED(junk1); + UNUSED(junk2); + + note_trace3(MOUSE_VERBOSE, + "mouse_io:set_subroutine(CS:IP=%x:%x,mask=0x%02x)", + getES(), *subroutine_address, *call_mask); + + user_subroutine_segment = getES(); + user_subroutine_offset = *subroutine_address; + user_subroutine_call_mask = (*call_mask) & MOUSE_CALL_MASK_SIGNIFICANT_BITS; + + note_trace0(MOUSE_VERBOSE, "mouse_io:return()"); +} + + +/* unpublished service 20, used by Microsoft Windows */ +LOCAL void mouse_get_and_set_subroutine IFN4(word *,junk1,word *,junk2,word *,call_mask,word *,subroutine_address) +{ + /* + same as set_subroutine (function 12) but also returns previous call mask in cx (m3) + and user subroutine address in es:dx (es:m4) + */ + word local_segment, local_offset, local_call_mask; + + note_trace3(MOUSE_VERBOSE, + "mouse_io:get_and_set_subroutine(CS:IP=%x:%x,mask=0x%02x)", + getES(), *subroutine_address, *call_mask); + + local_offset = user_subroutine_offset; + local_segment = user_subroutine_segment; + local_call_mask = user_subroutine_call_mask; + /* save previous subroutine data so it can be returned */ + + mouse_set_subroutine(junk1,junk2,call_mask,subroutine_address); + /* set the subroutine stuff with the normal function 12 */ + *call_mask = local_call_mask; + *subroutine_address = local_offset; + setES(local_segment); +} + + + +LOCAL void mouse_light_pen_on IFN4(word *,junk1,word *,junk2,word *,junk3,word *,junk4) +{ + /* + * This function enables light pen emulation + */ + + UNUSED(junk1); + UNUSED(junk2); + UNUSED(junk3); + UNUSED(junk4); + + note_trace0(MOUSE_VERBOSE, "mouse_io:light_pen_on()"); + + light_pen_mode = TRUE; + + note_trace0(MOUSE_VERBOSE, "mouse_io:return()"); +} + + + + +LOCAL void mouse_light_pen_off IFN4(word *,junk1,word *,junk2,word *,junk3,word *,junk4) +{ + /* + * This function disables light pen emulation + */ + + UNUSED(junk1); + UNUSED(junk2); + UNUSED(junk3); + UNUSED(junk4); + + note_trace0(MOUSE_VERBOSE, "mouse_io:light_pen_off()"); + + light_pen_mode = FALSE; + + note_trace0(MOUSE_VERBOSE, "mouse_io:return()"); +} + + + + +LOCAL void mouse_set_ratio IFN4(word *,junk1,word *,junk2,MOUSE_SCALAR *,ratio_x_ptr,MOUSE_SCALAR *,ratio_y_ptr) +{ + /* + * This function sets the Mickey to Pixel ratio in the + * horizontal and vertical directions + */ + + UNUSED(junk1); + UNUSED(junk2); + + note_trace2(MOUSE_VERBOSE, "mouse_io:set_ratio(x=%d,y=%d)", + *ratio_x_ptr, *ratio_y_ptr); + + /* + * Update the Mickey to pixel ratio in force + */ + if (mouse_ratio_in_range(*ratio_x_ptr)) + mouse_gear.x = *ratio_x_ptr; + if (mouse_ratio_in_range(*ratio_y_ptr)) + mouse_gear.y = *ratio_y_ptr; + + note_trace0(MOUSE_VERBOSE, "mouse_io:return()"); +} + + + + +LOCAL void mouse_conditional_off IFN4(word *,junk1,word *,junk2,MOUSE_SCALAR *,upper_x_ptr,MOUSE_SCALAR *,upper_y_ptr) +{ + /* + * This function defines an area of the virtual screen where + * the mouse is automatically hidden + */ + MOUSE_SCALAR lower_x = getSI(), lower_y = getDI(); + + UNUSED(junk1); + UNUSED(junk2); + + note_trace4(MOUSE_VERBOSE, + "mouse_io:conditional_off(ux=%d,uy=%d,lx=%d,ly=%d)", + *upper_x_ptr, *upper_y_ptr, lower_x, lower_y); + + /* + * Update the conditional off area and normalise it: the Microsoft + * driver adds a considerable "margin for error" to the left and + * above the conditional off area requested - we must do the same + * to behave compatibly + */ + black_hole.top_left.x = (*upper_x_ptr) - MOUSE_CONDITIONAL_OFF_MARGIN_X; + black_hole.top_left.y = (*upper_y_ptr) - MOUSE_CONDITIONAL_OFF_MARGIN_Y; + black_hole.bottom_right.x = lower_x + 1; + black_hole.bottom_right.y = lower_y + 1; + area_normalise(&black_hole); + + /* + * If the cursor is currently displayed, redisplay taking the + * conditional off area into account + */ +#ifdef MOUSE_16_BIT + if (is_graphics_mode) + { + if ((cursor_position.x >= black_hole.top_left.x) && + (cursor_position.x <= black_hole.bottom_right.x) && + (cursor_position.y >= black_hole.top_left.y) && + (cursor_position.y <= black_hole.bottom_right.y)) + if (cursor_flag-- == MOUSE_CURSOR_DISPLAYED) + mouse16bHidePointer(); + } + else +#endif /* MOUSE_16_BIT */ + { + if (cursor_flag == MOUSE_CURSOR_DISPLAYED) + cursor_display(); + } +#if defined (NTVDM) && defined(MONITOR) + + sas_store(conditional_off_sysaddr, 1); + host_mouse_conditional_off_enabled(); +#endif + + note_trace0(MOUSE_VERBOSE, "mouse_io:return()"); +} + + +LOCAL void mouse_get_state_size IFN4(word *,m1,word *,m2,word *,m3,word *,m4) +{ + /* + * This function returns the size of buffer the caller needs to + * supply to mouse function 22 (save state) + */ + + UNUSED(m1); + UNUSED(m3); + UNUSED(m4); + + note_trace0(MOUSE_VERBOSE, "mouse_io: mouse_get_state_size()"); + + *m2 = (word)mouse_context_size; + + note_trace1(MOUSE_VERBOSE, "mouse_io: ...size is %d(decimal) bytes.", + *m2); +} + + +LOCAL void mouse_save_state IFN4(word *,m1,word *,m2,word *,m3,word *,m4) +{ + /* + * This function saves the state of the driver in the user-supplied + * buffer ready for subsequent passing to mouse function 23 (restore + * state) + * + * Note that a magic cookie and checksum are placed in the saved state so that the + * restore routine can ignore invalid calls. + */ + sys_addr dest; + IS32 cs = 0; +#if defined(NTVDM) && defined(MONITOR) + + /* real CF resides in 16 bit code */ + int saved_cursor_flag = cursor_flag; + IS8 copyCF; + +#endif + + UNUSED(m1); + UNUSED(m2); + UNUSED(m3); + +#if defined(NTVDM) && defined(MONITOR) + sas_load(mouseCFsysaddr, ©CF); + cursor_flag = (int)copyCF; +#endif + note_trace0(MOUSE_VERBOSE, "mouse_io: mouse_save_state()"); + + dest = effective_addr (getES(), *m4); + + /* Save Cookie */ + sas_stores(dest, (IU8 *)mouse_context_magic, MOUSE_CONTEXT_MAGIC_SIZE); + dest += MOUSE_CONTEXT_MAGIC_SIZE; + + /* Save Context Variables */ + sas_stores(dest, (IU8 *)&mouse_context, sizeof(MOUSE_CONTEXT)); + dest += sizeof(MOUSE_CONTEXT); + + /* Save Checksum */ + sas_store (dest, (byte)(cs & 0xFF)); + +#if defined(NTVDM) && defined(MONITOR) + cursor_flag = saved_cursor_flag; +#endif +} + + +LOCAL void mouse_restore_state IFN4(word *,m1,word *,m2,word *,m3,word *,m4) +{ + /* + * This function restores the state of the driver from the user-supplied + * buffer which was set up by a call to mouse function 22. + * + * Note that a magic cookie and checksum were placed in the saved state so this routine + * checks for its presence and ignores the call if it is not found. + */ + sys_addr src; + IS32 i; + IS32 cs = 0; + half_word b; + boolean valid=TRUE; + + UNUSED(m1); + UNUSED(m2); + UNUSED(m3); + + note_trace0(MOUSE_VERBOSE, "mouse_io: mouse_restore_state()"); + + src = effective_addr (getES(), *m4); + + /* Check Cookie */ + for (i=0; valid && i4 = undefined + */ + + UNUSED(m1); + UNUSED(m3); + UNUSED(m4); + + note_trace1(MOUSE_VERBOSE, "mouse_io: set_int_rate(rate=%d)", *int_rate_ptr); + + /* Just remember rate, for later return (Func 51). We don't actually + action it. */ + mouse_interrupt_rate = *int_rate_ptr; + + note_trace0(MOUSE_VERBOSE, "mouse_io: return()"); + } + + +LOCAL void mouse_set_pointer_page IFN4(word *,m1,word *,m2,word *,m3,word *,m4) +{ + /* + * This function sets the current mouse pointer video page. + */ + + UNUSED(m1); + UNUSED(m3); + UNUSED(m4); + + note_trace0(MOUSE_VERBOSE, "mouse_io: mouse_set_pointer_page()"); + + if (is_valid_page_number(*m2)){ + cursor_undisplay(); + cursor_page = *m2; + if (cursor_flag == MOUSE_CURSOR_DISPLAYED){ + cursor_display(); + } + }else{ +#ifndef PROD + fprintf(trace_file, "mouse_io: Bad page requested\n"); +#endif + } +} + + +LOCAL void mouse_get_pointer_page IFN4(word *,m1,word *,m2,word *,m3,word *,m4) +{ + /* + * This function gets the value of the current mouse pointer + * video page. + */ + + UNUSED(m1); + UNUSED(m3); + UNUSED(m4); + + note_trace0(MOUSE_VERBOSE, "mouse_io: mouse_get_pointer_page()"); + *m2 = cursor_page; +} + + +LOCAL void mouse_driver_disable IFN4(word *,m1,word *,m2,word *,m3,word *,m4) +{ + /* + * This function disables the mouse driver and de-installs the + * interrupt vectors (bar INT 33h, whose previous value is + * returned to the caller to allow them to use DOS function + * 25h to completely remove the mouse driver). + */ + boolean failed = FALSE; +#ifdef NTVDM + word current_int71_offset, current_int71_segment; +#else + word current_int0A_offset, current_int0A_segment; + word current_int10_offset, current_int10_segment; +#endif + half_word interrupt_mask_register; + + UNUSED(m4); + + note_trace0(MOUSE_VERBOSE, "mouse_io: mouse_disable()"); + mouse_driver_disabled = TRUE; + + if (!failed){ +#ifdef NTVDM + sas_loadw (int_addr(0x71) + 0, ¤t_int71_offset); + sas_loadw (int_addr(0x71) + 2, ¤t_int71_segment); + failed = current_int71_offset != MOUSE_INT1_OFFSET || + current_int71_segment != MOUSE_INT1_SEGMENT; +#else + sas_loadw (int_addr(MOUSE_VEC) + 0, ¤t_int0A_offset); + sas_loadw (int_addr(MOUSE_VEC) + 2, ¤t_int0A_segment); + sas_loadw (int_addr(0x10) + 0, ¤t_int10_offset); + sas_loadw (int_addr(0x10) + 2, ¤t_int10_segment); + failed = current_int0A_offset != MOUSE_INT1_OFFSET || + current_int0A_segment != MOUSE_INT1_SEGMENT || + current_int10_offset != MOUSE_VIDEO_IO_OFFSET || + current_int10_segment != MOUSE_VIDEO_IO_SEGMENT; +#endif + } + if (!failed){ + /* + * Disable mouse H/W interrupts + */ + inb(ICA1_PORT_1, &interrupt_mask_register); + interrupt_mask_register |= (1 << AT_CPU_MOUSE_INT); + outb(ICA1_PORT_1, interrupt_mask_register); + inb(ICA0_PORT_1, &interrupt_mask_register); + interrupt_mask_register |= (1 << CPU_MOUSE_INT); + outb(ICA0_PORT_1, interrupt_mask_register); + /* + * Restore interrupt vectors + */ + +#ifdef NTVDM + sas_storew (int_addr(0x71) + 0, saved_int71_offset); + sas_storew (int_addr(0x71) + 2, saved_int71_segment); +#else + sas_storew (int_addr(MOUSE_VEC) + 0, saved_int0A_offset); + sas_storew (int_addr(MOUSE_VEC) + 2, saved_int0A_segment); + sas_storew (int_addr(0x10) + 0, saved_int10_offset); + sas_storew (int_addr(0x10) + 2, saved_int10_segment); +#endif + /* + * Return success status and old INT33h vector + */ + *m1 = 0x1F; + *m2 = saved_int33_offset; + *m3 = saved_int33_segment; + }else{ + /* + * Return failure + */ + *m1 = 0xFFFF; + } +} + + +LOCAL void mouse_driver_enable IFN4(word *,m1,word *,m2,word *,m3,word *,m4) +{ + /* + * This function re-enables the mouse driver after a call to + * function 31 (disable mouse driver). + */ + word hook_offset; + half_word interrupt_mask_register; + + UNUSED(m1); + UNUSED(m2); + UNUSED(m3); + UNUSED(m4); + + note_trace0(MOUSE_VERBOSE, "mouse_io: mouse_driver_enable()"); + + /* + * This prevents an endless loop of calls to mouse_video_io() if an + * application does a Mouse Driver Enable without first having done + * a Mouse Driver Disable + */ + if (!mouse_driver_disabled) + return; + + mouse_driver_disabled = FALSE; + + /* + * Reload bus mouse hardware interrupt + */ + +#ifdef NTVDM + sas_loadw (int_addr(0x71) + 0, &saved_int71_offset); + sas_loadw (int_addr(0x71) + 2, &saved_int71_segment); + sas_storew(int_addr(0x71), MOUSE_INT1_OFFSET); + sas_storew(int_addr(0x71) + 2, MOUSE_INT1_SEGMENT); +#else + sas_loadw (int_addr(MOUSE_VEC) + 0, &saved_int0A_offset); + sas_loadw (int_addr(MOUSE_VEC) + 2, &saved_int0A_segment); + sas_storew(int_addr(MOUSE_VEC), MOUSE_INT1_OFFSET); + sas_storew(int_addr(MOUSE_VEC) + 2, MOUSE_INT1_SEGMENT); +#endif + + /* + * Enable mouse hardware interrupts in the ica + */ + inb(ICA1_PORT_1, &interrupt_mask_register); + interrupt_mask_register &= ~(1 << AT_CPU_MOUSE_INT); + outb(ICA1_PORT_1, interrupt_mask_register); + inb(ICA0_PORT_1, &interrupt_mask_register); + interrupt_mask_register &= ~(1 << CPU_MOUSE_INT); + outb(ICA0_PORT_1, interrupt_mask_register); + + /* + * Mouse io user interrupt + */ + +#ifndef NTVDM + /* Read offset of INT 33 procedure from MOUSE.COM */ + sas_loadw(effective_addr(getCS(), OFF_HOOK_POSN), &hook_offset); + + sas_storew(int_addr(0x33), hook_offset); + sas_storew(int_addr(0x33) + 2, getCS()); + + /* + * Mouse video io user interrupt + */ + sas_loadw (int_addr(0x10) + 0, &saved_int10_offset); + sas_loadw (int_addr(0x10) + 2, &saved_int10_segment); + sas_storew(int_addr(0x10), MOUSE_VIDEO_IO_OFFSET); + sas_storew(int_addr(0x10) + 2, MOUSE_VIDEO_IO_SEGMENT); +#endif /* NTVDM */ +} + + +LOCAL void mouse_set_language IFN4(word *,m1,word *,m2,word *,m3,word *,m4) +{ + /* + * This function is only applicable to an international version + * of a mouse driver... which this is not! Acts as a NOP. + */ + + UNUSED(m1); + UNUSED(m2); + UNUSED(m3); + UNUSED(m4); + + note_trace0(MOUSE_VERBOSE, "mouse_io: mouse_set_language()"); + /* NOP */ +} + + +LOCAL void mouse_get_language IFN4(word *,m1,word *,m2,word *,m3,word *,m4) +{ + /* + * This function is only meaningful on an international version + * of a mouse driver... which this is not! Always returns 0 + * (English). + */ + + UNUSED(m1); + UNUSED(m3); + UNUSED(m4); + + note_trace0(MOUSE_VERBOSE, "mouse_io: mouse_get_language()"); + + *m2 = 0; + + note_trace1(MOUSE_VERBOSE, + "mouse_io: mouse_get_language returning m2=0x%04x.", *m2); +} + + +LOCAL void mouse_get_info IFN4(word *,m1,word *,m2,word *,m3,word *,m4) +{ + /* + * This function obtains certain information about the mouse + * driver and hardware. + */ + UNUSED(m1); + UNUSED(m4); + + note_trace0(MOUSE_VERBOSE, "mouse_io: mouse_get_info()"); + + *m2 = ((word)mouse_emulated_release << 8) | (word)mouse_emulated_version; + *m3 = ((word)MOUSE_TYPE_INPORT << 8) | (word)CPU_MOUSE_INT; + + note_trace2(MOUSE_VERBOSE, + "mouse_io: mouse_get_info returning m2=0x%04x, m3=0x%04x.", + *m2, *m3); +} + + +LOCAL void mouse_get_driver_info IFN4(word *,m1,word *,m2,word *,m3,word *,m4) +{ + *m1 = (current_video_mode > 3 ? 0x2000 : 0) | 0x100; + /* bit 15 = 0 for COM v SYS + bit 14 = 0 for original non-integrated type + bit 13 is 1 for graphics cursor or 0 for text + bit 12 = 0 for software cursor + bits 8-11 are encoded interrupt rate, 1 means 30 Hz + bits 0-7 used only by integrated driver + */ + *m2 = 0; /* fCursorLock, used by driver under OS/2 */ + *m3 = 0; /* fInMouseCode, flag for current execution path + being inside mouse driver under OS/2. Since the + driver is in a bop it can't be interrupted */ + *m4 = 0; /* fMouseBusy, similar to *m3 */ +} + + +LOCAL void mouse_get_max_coords IFN4(word *,m1,word *,m2,word *,m3,word *,m4) +{ +#ifdef NTVDM +IMPORT word VirtualX, VirtualY; +#endif + + UNUSED(m1); + +#ifdef NTVDM + *m3 = VirtualX; + *m4 = VirtualY; +#endif + + *m2 = mouse_driver_disabled; + +#ifndef NTVDM + get_screen_size(); + *m3 = virtual_screen.bottom_right.x - 1; + *m4 = virtual_screen.bottom_right.y - 1; +#endif +} + +LOCAL void mouse_get_masks_and_mickeys IFN4 + ( + MOUSE_SCREEN_DATA *, screen_mask_ptr, + MOUSE_SCREEN_DATA *, cursor_mask_ptr, + MOUSE_SCALAR *, raw_horiz_count_ptr, + MOUSE_SCALAR *, raw_vert_count_ptr + ) + { + /* + Func 39: Get Screen/Cursor Masks and Mickey Counts. + */ + word cursor_mode; + + note_trace0(MOUSE_VERBOSE, "mouse_io: get_masks_and_mickeys"); + + /* read and reset counts */ + *raw_horiz_count_ptr = mouse_raw_motion.x; + *raw_vert_count_ptr = mouse_raw_motion.y; + mouse_raw_motion.x = mouse_raw_motion.y = 0; + + if ( text_cursor_type == MOUSE_TEXT_CURSOR_TYPE_SOFTWARE ) + { + *screen_mask_ptr = software_text_cursor.screen; + *cursor_mask_ptr = software_text_cursor.cursor; + + note_trace4(MOUSE_VERBOSE, + "mouse_io: return(screen=0x%x, mask=0x%x, raw mickeys=(%d,%d))", + *screen_mask_ptr, + *cursor_mask_ptr, + *raw_horiz_count_ptr, + *raw_vert_count_ptr); + } + else + { + /* Read BIOS data variable */ + sas_loadw((sys_addr)VID_CURMOD, &cursor_mode); + + /* Then extract start and stop from it */ + *screen_mask_ptr = cursor_mode >> 8; /* start */ + *cursor_mask_ptr = cursor_mode & 0xff; /* stop */ + + note_trace4(MOUSE_VERBOSE, + "mouse_io: return(start=%d, stop=%d, raw mickeys=(%d,%d))", + *screen_mask_ptr, + *cursor_mask_ptr, + *raw_horiz_count_ptr, + *raw_vert_count_ptr); + } + } + +LOCAL void mouse_set_video_mode IFN4 + ( + word *, m1, + word *, m2, + word *, video_mode_ptr, + word *, font_size_ptr + ) + { + /* + Func 40 Set Video Mode. NB. This only sets the mouse state to + match the video mode. Actual changes to the video mode are still + made by the application calling the BIOS. + */ + + UNUSED(m1); + UNUSED(m2); + + note_trace2(MOUSE_VERBOSE, + "mouse_io: set_video_mode(mode=0x%x, font size=0x%x)", + *video_mode_ptr, *font_size_ptr); + + /* Check validity of mode */ + if ( is_bad_vid_mode(*video_mode_ptr) && !is_v7vga_mode(*video_mode_ptr) ) + { + /* Bad mode do nothing */ + ; + } + else + { + /* Update our parameters, as per the given mode */ + current_video_mode = *video_mode_ptr; + + mouse_adjust_screen_size(); + + cursor_undisplay(); + cursor_flag = MOUSE_CURSOR_DEFAULT; + cursor_mode_change(current_video_mode); + +#ifdef MOUSE_16_BIT + /* Remember whether in text or graphics mode for later use. */ + is_graphics_mode = ((current_video_mode > 3) && + (current_video_mode != 7)); +#endif /* MOUSE_16_BIT */ + + *video_mode_ptr = 0; /* Indicate success */ + } + + note_trace1(MOUSE_VERBOSE, "mouse_io: return(mode=0x%x)", + *video_mode_ptr); + } + +LOCAL void mouse_enumerate_video_modes IFN4 + ( + word *, m1, + word *, m2, + word *, video_nr_ptr, + word *, offset_ptr + ) + { + /* + Func 41 Enumerate Video Modes. + */ + + UNUSED(m1); + UNUSED(m2); + + note_trace1(MOUSE_VERBOSE, "mouse_io: enumerate_video_modes(mode=0x%x)", *video_nr_ptr); + + /* Do they want to reset to first entry */ + if ( *video_nr_ptr == 0 ) + { + next_video_mode = 1; /* Yes */ + } + + /* Blindly try all possible mode settings */ + while ( next_video_mode <= MAX_NR_VIDEO_MODES ) + { + if ( is_bad_vid_mode(next_video_mode) && !is_v7vga_mode(next_video_mode) ) + { + next_video_mode++; /* keep searching */ + } + else + { + break; /* stop searching as valid mode has been found */ + } + } + + /* Action setting found, or end of list */ + if ( next_video_mode > MAX_NR_VIDEO_MODES ) + { + *video_nr_ptr = 0; + } + else + { + *video_nr_ptr = next_video_mode; + next_video_mode++; /* update for next call */ + } + + /* We don't provide string descriptions */ + setES(0); + *offset_ptr = 0; + + note_trace3(MOUSE_VERBOSE, "mouse_io: return(mode=0x%x, seg=0x%x, off=0x%x)", + *video_nr_ptr, getES(), *offset_ptr); + } + +LOCAL void mouse_get_cursor_hot_spot IFN4 + ( + word *, fCursor_ptr, + MOUSE_SCALAR *, hot_spot_x_ptr, + MOUSE_SCALAR *, hot_spot_y_ptr, + word *, mouse_type_ptr + ) + { + /* + Func 42: Return cursor hot spot location, the type of mouse in + use, and the internal counter that controls cursor visibility. + */ + + note_trace0(MOUSE_VERBOSE, "mouse_io: get_cursor_hot_spot"); + + *fCursor_ptr = (word)cursor_flag; + + *hot_spot_x_ptr = graphics_cursor.hot_spot.x; + *hot_spot_y_ptr = graphics_cursor.hot_spot.y; + + *mouse_type_ptr = MOUSE_TYPE_INPORT; + + note_trace4(MOUSE_VERBOSE, + "mouse_io: return(cursor flag = %d, hotspot = (%d,%d), type = %d)", + *fCursor_ptr, + *hot_spot_x_ptr, *hot_spot_y_ptr, + *mouse_type_ptr); + } + +/* Load acceleration curve from Intel memory to Host memory */ +LOCAL void load_acceleration_curve IFN3 + ( + word, seg, /* Pointer to Intel Memory */ + word, off, + ACCELERATION_CURVE_DATA *, hcurve /* Pointer to Host Memory */ + ) + { + int i, j; + + /* Read lengths */ + for (i = 0; i < NR_ACCL_CURVES; i++) + { + hcurve->ac_length[i] = sas_hw_at(effective_addr(seg, off)); + off++; + } + + /* Read mickey counts */ + for (i = 0; i < NR_ACCL_CURVES; i++) + { + for (j = 0; j < NR_ACCL_MICKEY_COUNTS; j++) + { + hcurve->ac_count[i][j] = sas_hw_at(effective_addr(seg, off)); + off++; + } + } + + /* Read scale factors */ + for (i = 0; i < NR_ACCL_CURVES; i++) + { + for (j = 0; j < NR_ACCL_SCALE_FACTORS; j++) + { + hcurve->ac_scale[i][j] = sas_hw_at(effective_addr(seg, off)); + off++; + } + } + + /* Read names */ + for (i = 0; i < NR_ACCL_CURVES; i++) + { + for (j = 0; j < NR_ACCL_NAME_CHARS; j++) + { + hcurve->ac_name[i][j] = sas_hw_at(effective_addr(seg, off)); + off++; + } + } + } + +/* Store acceleration curve from Host memory to Intel memory */ +LOCAL void store_acceleration_curve IFN3 + ( + word, seg, /* Pointer to Intel Memory */ + word, off, + ACCELERATION_CURVE_DATA *, hcurve /* Pointer to Host Memory */ + ) + { + int i, j; + + /* Write lengths */ + for (i = 0; i < NR_ACCL_CURVES; i++) + { + sas_store(effective_addr(seg, off), hcurve->ac_length[i]); + off++; + } + + /* Write mickey counts */ + for (i = 0; i < NR_ACCL_CURVES; i++) + { + for (j = 0; j < NR_ACCL_MICKEY_COUNTS; j++) + { + sas_store(effective_addr(seg, off), hcurve->ac_count[i][j]); + off++; + } + } + + /* Write scale factors */ + for (i = 0; i < NR_ACCL_CURVES; i++) + { + for (j = 0; j < NR_ACCL_SCALE_FACTORS; j++) + { + sas_store(effective_addr(seg, off), hcurve->ac_scale[i][j]); + off++; + } + } + + /* Write names */ + for (i = 0; i < NR_ACCL_CURVES; i++) + { + for (j = 0; j < NR_ACCL_NAME_CHARS; j++) + { + sas_store(effective_addr(seg, off), hcurve->ac_name[i][j]); + off++; + } + } + } + +LOCAL void mouse_load_acceleration_curves IFN4 + ( + word *, success_ptr, + word *, curve_ptr, + word *, m3, + word *, m4 + ) + { + /* + Func 43: Load Acceleration Curves. + */ + + word c_seg; + word c_off; + + UNUSED(m3); + UNUSED(m4); + + note_trace1(MOUSE_VERBOSE, + "mouse_io: load_acceleration_curve(curve=%d)", *curve_ptr); + + /* Check reason for call */ + if ( *curve_ptr == MOUSE_M1 ) + { + /* Reset to default acceleration curve */ + active_acceleration_curve = 3; /* Back to Normal */ + + memcpy(&acceleration_curve_data, &default_acceleration_curve, + sizeof(ACCELERATION_CURVE_DATA)); + + *success_ptr = 0; /* Completed OK */ + } + else + { + /* Load new curve */ + if ( *curve_ptr >= 1 && *curve_ptr <= 4 ) + { + /* Valid curve number - load it. */ + active_acceleration_curve = *curve_ptr; + + c_seg = getES(); /* Pick up pointer to Intel Data */ + c_off = getSI(); + + /* INTEL => HOST */ + load_acceleration_curve(c_seg, c_off, &acceleration_curve_data); + + *success_ptr = 0; /* Completed OK */ + } + else + { + /* Curve number out of range */ + *success_ptr = MOUSE_M1; + } + } + + note_trace1(MOUSE_VERBOSE, "mouse_io: return(success=0x%x)", *success_ptr); + } + +LOCAL void mouse_read_acceleration_curves IFN4 + ( + word *, success_ptr, + word *, curve_ptr, + word *, m3, + word *, m4 + ) + { + /* + Func 44: Read Acceleration Curves. + */ + + word c_seg; + word c_off; + + UNUSED(m3); + UNUSED(m4); + + note_trace0(MOUSE_VERBOSE, "mouse_io: read_acceleration_curves"); + + *success_ptr = 0; /* Completed OK */ + + *curve_ptr = active_acceleration_curve; + + c_seg = getCS(); /* Set up pointer to Intel Buffer */ + c_off = OFF_ACCL_BUFFER; + + /* INTEL <= HOST */ + store_acceleration_curve(c_seg, c_off, &acceleration_curve_data); + + setES(c_seg); + setSI(c_off); + + note_trace4(MOUSE_VERBOSE, + "mouse_io: return(success=0x%x, curve=%d, seg=0x%x, off=0x%x)", + *success_ptr, *curve_ptr, getES(), getSI()); + } + +LOCAL void mouse_set_get_active_acceleration_curve IFN4 + ( + word *, success_ptr, + word *, curve_ptr, + word *, m3, + word *, m4 + ) + { + /* + Func 45: Set/Get Active Acceleration Curve. + */ + + word c_seg; + word c_off; + + UNUSED(m3); + UNUSED(m4); + + note_trace1(MOUSE_VERBOSE, + "mouse_io: set_get_active_acceleration_curve(curve=%d)", *curve_ptr); + + /* Check reason for call */ + if ( *curve_ptr == MOUSE_M1 ) + { + /* Return currently active curve */ + *curve_ptr = active_acceleration_curve; + *success_ptr = 0; /* Completed OK */ + } + else + { + /* Set new active curve */ + if ( *curve_ptr >= 1 && *curve_ptr <= 4 ) + { + /* Valid curve number - make active */ + active_acceleration_curve = *curve_ptr; + *success_ptr = 0; /* Completed OK */ + } + else + { + *curve_ptr = active_acceleration_curve; + *success_ptr = MOUSE_M2; /* Failed */ + } + } + + /* Return name to caller */ + c_seg = getCS(); /* Set up pointer to Intel Buffer */ + c_off = OFF_ACCL_BUFFER; + + /* INTEL <= HOST */ + store_acceleration_curve(c_seg, c_off, &acceleration_curve_data); + + /* adjust pointer to select correct name */ + c_off = c_off + 4 + (4*32) + (4*32); /* length,count,scale */ + c_off = c_off + ((active_acceleration_curve-1) * 16); + + setES(c_seg); + setSI(c_off); + + note_trace4(MOUSE_VERBOSE, + "mouse_io: return(success=0x%x, curve=%d, seg=0x%x, off=0x%x)", + *success_ptr, *curve_ptr, getES(), getSI()); + } + +LOCAL void mouse_microsoft_internal IFN4 + ( + word *, m1, + word *, m2, + word *, m3, + word *, m4 + ) + { + /* + Func 46: Microsoft Internal. We don't support it. + */ + + UNUSED(m1); + UNUSED(m2); + UNUSED(m3); + UNUSED(m4); + + note_trace0(MOUSE_VERBOSE, "mouse_io: microsoft_internal NOT SUPPORTED!"); + } + +LOCAL void mouse_hardware_reset IFN4 + ( + word *, status_ptr, + word *, m2, + word *, m3, + word *, m4 + ) + { + /* + Func 47: Reset the mouse hardware and display variables. + This is not a full software reset as per Func 0 or Func 33. + */ + + half_word crt_mode; + + UNUSED(m2); + UNUSED(m3); + UNUSED(m4); + + note_trace0(MOUSE_VERBOSE, "mouse_io: hardware_reset"); + + inport_reset(); /* reset hardware */ + + /* Update variables which depend on display hardware */ + sas_load(MOUSE_VIDEO_CRT_MODE, &crt_mode); + cursor_mode_change((int)crt_mode); + cursor_update(); + + if ( cursor_flag == MOUSE_CURSOR_DISPLAYED ) + cursor_display(); + + *status_ptr = MOUSE_M1; /* ie success */ + + note_trace0(MOUSE_VERBOSE, "mouse_io: return()"); + } + +LOCAL void mouse_set_get_ballpoint_info IFN4 + ( + word *, status_ptr, + word *, rotation_angle_ptr, + word *, button_mask_ptr, + word *, m4 + ) + { + /* + Func 48: Get/Set Ballpoint Information. + Note: We do not support a ballpoint device. + */ + + UNUSED(m4); + + note_trace0(MOUSE_VERBOSE, "mouse_io: set_get_ballpoint_info"); + + if ( *button_mask_ptr == 0 ) /* Check command request */ + { + /* Get Status (Angle and Mask) Command */ + ; + } + else + { + /* Set Status (Angle and Mask) Command */ + note_trace2(MOUSE_VERBOSE, + "mouse_io: Rotation Angle = %d, Button Mask = %d", + *rotation_angle_ptr, + *button_mask_ptr); + } + + *status_ptr = MOUSE_M1; /* ie not supported */ + note_trace0(MOUSE_VERBOSE, "mouse_io: return(NOT_SUPPORTED)"); + } + +LOCAL void mouse_get_min_max_virtual_coords IFN4 + ( + MOUSE_SCALAR *, min_x_ptr, + MOUSE_SCALAR *, min_y_ptr, + MOUSE_SCALAR *, max_x_ptr, + MOUSE_SCALAR *, max_y_ptr + ) + { + /* + Func 49: Return minimum and maximum virtual coordinates for + current screen mode. The values are those set by Funcs 7 and 8. + */ + + note_trace0(MOUSE_VERBOSE, "mouse_io: get_min_max_virtual_coords"); + + *min_x_ptr = cursor_window.top_left.x; + *min_y_ptr = cursor_window.top_left.y; + *max_x_ptr = cursor_window.bottom_right.x; + *max_y_ptr = cursor_window.bottom_right.y; + + note_trace4(MOUSE_VERBOSE, "mouse_io: return(min=(%d,%d), max=(%d,%d))", + *min_x_ptr, *min_y_ptr, + *max_x_ptr, *max_y_ptr); + } + +LOCAL void mouse_get_active_advanced_functions IFN4 + ( + word *, active_flag1_ptr, + word *, active_flag2_ptr, + word *, active_flag3_ptr, + word *, active_flag4_ptr + ) + { + /* + Func 50: Get Active Advanced Functions, ie define which functions + above or equal to 37 are supported. + */ + + note_trace0(MOUSE_VERBOSE, "mouse_io: get_active_advanced_functions"); + + *active_flag1_ptr = 0x8000 | /* Func 37 supported */ + 0x4000 | /* Func 38 supported */ + 0x2000 | /* Func 39 supported */ + 0x1000 | /* Func 40 supported */ + 0x0800 | /* Func 41 supported */ + 0x0400 | /* Func 42 supported */ + 0x0200 | /* Func 43 supported */ + 0x0100 | /* Func 44 supported */ + 0x0080 | /* Func 45 supported */ + 0x0000 | /* Func 46 NOT supported */ + 0x0020 | /* Func 47 supported */ + 0x0010 | /* Func 48 supported */ + 0x0008 | /* Func 49 supported */ + 0x0004 | /* Func 50 supported */ + 0x0002 | /* Func 51 supported */ + 0x0001; /* Func 52 supported */ + + /* No other (ie newer) functions are supported */ + *active_flag2_ptr = *active_flag3_ptr = *active_flag4_ptr = 0; + + note_trace4(MOUSE_VERBOSE, "mouse_io: return(active=%04x,%04x,%04x,%04x)", + *active_flag1_ptr, + *active_flag2_ptr, + *active_flag3_ptr, + *active_flag4_ptr); + } + +LOCAL void mouse_get_switch_settings IFN4 + ( + word *, status_ptr, + word *, m2, + word *, buffer_length_ptr, + word *, offset_ptr + ) + { + /* + Func 51: Get switch settings. Returns output buffer (340 bytes) + with:- + + 0 Mouse Type (low nibble) 0-5 + Mouse Port (high nibble) 0-4 + 1 Language 0-8 + 2 Horizontal Sensitivity 0-100 + 3 Vertical Sensitivity 0-100 + 4 Double Threshold 0-100 + 5 Ballistic Curve 1-4 + 6 Interrupt Rate 1-4 + 7 Cursor Override Mask 0-255 + 8 Laptop Adjustment 0-255 + 9 Memory Type 0-2 + 10 Super VGA Support 0-1 + 11 Rotation Angle 0-359 + 13 Primary Button 1-4 + 14 Secondary Button 1-4 + 15 Click Lock Enabled 0-1 + 16 Acceleration Curve Data + */ + + word obuf_seg; + word obuf_off; + half_word mem_int_type; + + UNUSED(m2); + + note_trace3(MOUSE_VERBOSE, + "mouse_io: get_switch_settings(seg=0x%04x,off=0x%04x,len=0x%x)", + getES(), *offset_ptr, *buffer_length_ptr); + + if ( *buffer_length_ptr == 0 ) + { + /* Undocumented method of just finding buffer size */ + *buffer_length_ptr = 340; + } + else + { + *buffer_length_ptr = 340; + + obuf_seg = getES(); /* Pick up pointer to output buffer */ + obuf_off = *offset_ptr; + + /* Store MouseType and MousePort(=0) */ + sas_store(effective_addr(obuf_seg, obuf_off), + (half_word)MOUSE_TYPE_INPORT); + + /* Store Language (always 0) */ + sas_store(effective_addr(obuf_seg, (obuf_off + 1)), + (half_word)0); + + /* Store Horizontal and Vertical Sensitivity */ + sas_store(effective_addr(obuf_seg, (obuf_off + 2)), + (half_word)mouse_sens.x); + + sas_store(effective_addr(obuf_seg, (obuf_off + 3)), + (half_word)mouse_sens.y); + + /* Store Double Threshold */ + sas_store(effective_addr(obuf_seg, (obuf_off + 4)), + (half_word)mouse_double_thresh); + + /* Store Ballistic Curve */ + sas_store(effective_addr(obuf_seg, (obuf_off + 5)), + (half_word)active_acceleration_curve); + + /* Store Interrupt Rate */ + sas_store(effective_addr(obuf_seg, (obuf_off + 6)), + (half_word)mouse_interrupt_rate); + + /* Store Cursor Override Mask */ + sas_store(effective_addr(obuf_seg, (obuf_off + 7)), + (half_word)0); /* Microsoft Specific Feature? */ + + /* Store Laptop Adjustment */ + sas_store(effective_addr(obuf_seg, (obuf_off + 8)), + (half_word)0); /* What is it? */ + + /* Store Memory Type */ + /* NB 0 = Low, 1 = High, 2 = Extended */ + mem_int_type = 0; + + if ( getCS() >= 0xA000 ) + mem_int_type++; + + if ( getCS() == 0xFFFF ) + mem_int_type++; + + sas_store(effective_addr(obuf_seg, (obuf_off + 9)), + mem_int_type); + + /* Store Super VGA Support. - We don't support fancy hardware cursor */ + sas_store(effective_addr(obuf_seg, (obuf_off + 10)), + (half_word)0); + + /* Store Rotation Angle */ + sas_storew(effective_addr(obuf_seg, (obuf_off + 11)), + (half_word)0); + + /* Store Primary Button */ + sas_store(effective_addr(obuf_seg, (obuf_off + 13)), + (half_word)1); + + /* Store Secondary Button */ + sas_store(effective_addr(obuf_seg, (obuf_off + 14)), + (half_word)3); + + /* Store Click Lock Enabled */ + sas_store(effective_addr(obuf_seg, (obuf_off + 15)), + (half_word)0); /* What is it? */ + + /* Store Acceleration Curve Data */ + store_acceleration_curve(obuf_seg, (obuf_off + 16), + &acceleration_curve_data); + } + + note_trace1(MOUSE_VERBOSE, "mouse_io: return(bytes_returned=0x%x)", + *buffer_length_ptr); + } + +LOCAL void mouse_get_mouse_ini IFN4 + ( + word *, status_ptr, + word *, m2, + word *, m3, + word *, offset_ptr + ) + { + /* + Func 52: Return Segment:Offset pointer to full pathname of + MOUSE.INI. + NB. As we do not support MOUSE.INI a pointer to a null string is + returned. + */ + + UNUSED(m2); + UNUSED(m3); + + note_trace0(MOUSE_VERBOSE, "mouse_io: get_mouse_ini"); + + *status_ptr = 0; + + *offset_ptr = OFF_MOUSE_INI_BUFFER; + setES(getCS()); + + note_trace2(MOUSE_VERBOSE, "mouse_io: return(seg=%04x,off=%04x)", + getES(), *offset_ptr); + } + +LOCAL void mouse_unrecognised IFN4(word *,m1,word *,m2,word *,m3,word *,m4) +{ + /* + * This function is called when an invalid mouse function + * number is found + */ +#ifndef PROD + int function = *m1; + + UNUSED(m2); + UNUSED(m3); + UNUSED(m4); + + fprintf(trace_file, + "mouse_io:unrecognised function(fn=%d)\n", function); +#else + UNUSED(m1); + UNUSED(m2); + UNUSED(m3); + UNUSED(m4); +#endif +} + + +LOCAL void mouse_set_double_speed IFN4(word *,junk1,word *,junk2,word *,junk3,word *,threshold_speed) +{ + /* + * This function sets the threshold speed at which the cursor's + * motion on the screen doubles + */ + + UNUSED(junk1); + UNUSED(junk2); + UNUSED(junk3); + + note_trace1(MOUSE_VERBOSE, "mouse_io:set_double_speed(speed=%d)", + *threshold_speed); + + /* + * Save the double speed threshold value, converting from + * Mickeys per second to a rounded Mickeys per timer interval + * value + */ + double_speed_threshold = + (*threshold_speed + MOUSE_TIMER_INTERRUPTS_PER_SECOND/2) / + MOUSE_TIMER_INTERRUPTS_PER_SECOND; + + note_trace0(MOUSE_VERBOSE, "mouse_io:return()"); +} + + + + +/* + * MOUSE DRIVER VIDEO ADAPTER ACCESS FUNCTIONS + * =========================================== + */ + +LOCAL MOUSE_BYTE_ADDRESS point_as_text_cell_address IFN1(MOUSE_POINT *,point_ptr) +{ + /* + * Return the byte offset of the character in the text mode regen + * buffer corresponding to the virtual screen position + * "*point_ptr" + */ + MOUSE_BYTE_ADDRESS byte_address; + word crt_start; + + /* + * Get pc address for the start of video memory + */ + sas_loadw(MOUSE_VIDEO_CRT_START, &crt_start); + byte_address = (MOUSE_BYTE_ADDRESS)crt_start; + + /* + * Adjust for current video page + */ + byte_address += cursor_page * video_page_size(); + + /* + * Add offset contributions for the cursor's row and column + */ + byte_address += (2*get_chars_per_line() * (point_ptr->y / cursor_grid.y)); + byte_address += (point_ptr->x / cursor_grid.x) * 2; + + return(byte_address); +} + +LOCAL MOUSE_BIT_ADDRESS point_as_graphics_cell_address IFN1(MOUSE_POINT *,point_ptr) +{ + /* + * Return the bit offset of the pixel in the graphics mode regen + * buffer (odd or even) bank corresponding to the virtual screen + * position "*point_ptr" + */ + IS32 bit_address; + + /* + * Get offset contributions for the cursor's row and column + */ + bit_address = ((IS32)MOUSE_GRAPHICS_MODE_PITCH * (point_ptr->y / 2)) + point_ptr->x; + + /* + * Adjust for current video page + */ + bit_address += (IS32)cursor_page * (IS32)video_page_size() * 8L; + + return(bit_address); +} + +#ifdef HERC +LOCAL MOUSE_BIT_ADDRESS point_as_HERC_graphics_cell_address IFN1(MOUSE_POINT *,point_ptr) +{ + IMPORT half_word herc_page; + + /* + * Return the bit offset of the pixel in the graphics mode regen + * buffer (0, 1, 2, 3) bank corresponding to the virtual screen + * position "*point_ptr" + */ + IS32 bit_address; + + /* + * Get offset contributions for the cursor's row and column + */ + bit_address = ((IS32)720 * (point_ptr->y / 4)) + point_ptr->x; + + /* + * Adjust for current video page - note that for 100% correct emulation, + * we should read location 40:49 (the BIOS video mode)... hercules + * applications put a 6 here to indicate page 0 and a 5 for page 1. + * To avoid a performance penalty the global herc_page is used instead; + * this will have the side effect of making application which try to + * set the mouse pointer to the non-displayed page not succeed in doing so. + */ + if (herc_page != 0){ + bit_address += 0x8000L * 8L; + } + + return(bit_address); +} +#endif /* HERC */ + +LOCAL MOUSE_BIT_ADDRESS ega_point_as_graphics_cell_address IFN1(MOUSE_POINT *,point_ptr) +{ + /* + * Return the bit offset of the pixel in the graphics mode regen + * buffer corresponding to the virtual screen position "*point_ptr" + */ + MOUSE_BIT_ADDRESS bit_address; + UTINY video_mode = sas_hw_at(vd_video_mode); + + /* + * Get offset contributions for the cursor's row and column + */ +#ifdef V7VGA + if (video_mode >= 0x40) + bit_address = (get_bytes_per_line() * 8 * point_ptr->y) + point_ptr->x; + else +#endif /* V7VGA */ + switch(video_mode) + { + case 0xd : + bit_address = (get_actual_offset_per_line() * 8 * point_ptr->y) + point_ptr->x / 2; + break; + case 0x13 : + bit_address = (get_bytes_per_line() * 1 * point_ptr->y) + point_ptr->x / 2; + break; + default: + bit_address = (get_actual_offset_per_line() * 8 * point_ptr->y) + point_ptr->x; + } + + /* + * Adjust for current video page + */ + bit_address += cursor_page * video_page_size() * 8; + + return(bit_address); +} + + +LOCAL void cursor_update IFN0() +{ +#ifndef NTVDM + /* + * This function is used to update the displayed cursor + * position on the screen following a change to the + * absolute position of the cursor + */ + + point_coerce_to_area(&cursor_position, &cursor_window); + point_copy(&cursor_position, &cursor_status.position); + point_coerce_to_grid(&cursor_status.position, &cursor_grid); + + if (host_mouse_in_use()) + host_mouse_set_position(cursor_status.position.x * mouse_gear.x * mouse_sens.x / 800, + cursor_status.position.y * mouse_gear.y * mouse_sens.y / 800); + +#endif +} + + + + +LOCAL void cursor_display IFN0() +{ +#ifndef NTVDM + UTINY v_mode; + + /* Check if Enhanced Mode wants to "see" cursor */ + if ( cursor_EM_disabled ) + return; + + /* + * Display a representation of the current mouse status on + * the screen + */ + + v_mode = sas_hw_at(vd_video_mode); + +#ifdef MOUSE_16_BIT + if (is_graphics_mode) + return; +#endif /* MOUSE_16_BIT */ + + /* + * Remove the old representation of the + * cursor from the display + */ + cursor_undisplay(); + +#ifdef EGG + if (jap_mouse) { + /* So far DOS has had its way, but now we have to map the current + * cursor position in terms of mode 3 onto a mode 0x12 display. + * Go direct 'cos the selection process gets confused below... + */ + EGA_graphics_cursor_display(); + } else +#endif /* EGG */ + + if (in_text_mode()) + { + if (text_cursor_type == MOUSE_TEXT_CURSOR_TYPE_SOFTWARE) + { + software_text_cursor_display(); + } + else + { + hardware_text_cursor_display(); + } + } + else + { +#ifdef MOUSE_16_BIT + mouse16bShowPointer( ); +#else /* MOUSE_16_BIT */ + if (host_mouse_installed()) + { + if ( cursor_position.x >= black_hole.top_left.x && + cursor_position.x <= black_hole.bottom_right.x && + cursor_position.y >= black_hole.top_left.y && + cursor_position.y <= black_hole.bottom_right.y ) + host_mouse_cursor_undisplay(); + else + host_mouse_cursor_display(); + } + else + { +#ifdef EGG + if ((video_adapter == EGA || video_adapter == VGA) && (v_mode > 6)) + { +#ifdef VGG + if (v_mode != 0x13) + EGA_graphics_cursor_display(); + else + VGA_graphics_cursor_display(); +#else + EGA_graphics_cursor_display(); +#endif /* VGG */ + } + else +#endif +#ifdef HERC + if (video_adapter == HERCULES) + HERC_graphics_cursor_display(); + else +#endif /* HERC */ + graphics_cursor_display(); + } +#endif /* MOUSE_16_BIT */ + } + + /* + * Ensure the cursor is updated immediately on the real screen: + * this gives a "smooth" response to the mouse even on ports that + * don't automatically update the screen regularly + */ + host_flush_screen(); +#endif /* !NTVDM */ +} + + + + +LOCAL void cursor_undisplay IFN0() +{ +#ifndef NTVDM + UTINY v_mode; + + /* Check if Enhanced Mode wants to "see" cursor */ + if ( cursor_EM_disabled ) + return; + + v_mode = sas_hw_at(vd_video_mode); + +#ifdef MOUSE_16_BIT + if (is_graphics_mode) + return; +#endif /* MOUSE_16_BIT */ + + /* + * Undisplay the representation of the current mouse status on + * the screen. This routine tolerates being called when the + * cursor isn't actually being displayed + */ + if (host_mouse_in_use()) + { + host_mouse_cursor_undisplay(); + } + else + { + if (save_area_in_use) + { + save_area_in_use = FALSE; + +#ifdef EGG + if (jap_mouse) { + /* If we forced an EGA cursor, we must undisplay the same. + * Go direct 'cos the selection process gets confused below... + */ + EGA_graphics_cursor_undisplay(); + } else +#endif /* EGG */ + + if (in_text_mode()) + { + if (text_cursor_type == MOUSE_TEXT_CURSOR_TYPE_SOFTWARE) + { + software_text_cursor_undisplay(); + } + else + { + hardware_text_cursor_undisplay(); + } + } + else + { +#ifdef MOUSE_16_BIT + mouse16bHidePointer( ); +#else /* MOUSE_16_BIT */ +#ifdef EGG + if ((video_adapter == EGA || video_adapter == VGA) && (v_mode > 6)) + { +#ifdef VGG + if (v_mode != 0x13) + EGA_graphics_cursor_undisplay(); + else + VGA_graphics_cursor_undisplay(); +#else + EGA_graphics_cursor_undisplay(); +#endif + } + else +#endif +#ifdef HERC + if (video_adapter == HERCULES) + HERC_graphics_cursor_undisplay(); + else +#endif /* HERC */ + graphics_cursor_undisplay(); +#endif /* MOUSE_16_BIT */ + } + } + } +#endif /* !NTVDM */ +} + + + + +LOCAL void cursor_mode_change IFN1(int,new_mode) +{ + /* + * Update parameters that are dependent on the screen mode + * in force + */ +#ifdef V7VGA + if (new_mode >= 0x40) + if (new_mode >= 0x60) + { + point_copy(&v7graph_cursor_grids[new_mode-0x60], &cursor_grid); + point_copy(&v7graph_text_grids[new_mode-0x60], &text_grid); + } + else + { + point_copy(&v7text_cursor_grids[new_mode-0x40], &cursor_grid); + point_copy(&v7text_text_grids[new_mode-0x40], &text_grid); + } + else +#endif /* V7VGA */ + { + point_copy(&cursor_grids[new_mode], &cursor_grid); + point_copy(&text_grids[new_mode], &text_grid); + } + /* + * Always set page to zero + */ + cursor_page = 0; + + if (host_mouse_in_use()) + host_mouse_cursor_mode_change(); +} + + + + +GLOBAL void software_text_cursor_display IFN0() +{ + /* + * Get the area the cursor will occupy on the + * screen, and display the cursor if its area + * overlaps the virtual screen and lies completely + * outside the conditional off area + */ + MOUSE_AREA cursor_area; + MOUSE_BYTE_ADDRESS text_address; + + /* + * Get area cursor will cover on screen + */ + point_copy(&cursor_status.position, &cursor_area.top_left); + point_copy(&cursor_status.position, &cursor_area.bottom_right); + point_translate(&cursor_area.bottom_right, &cursor_grid); + + if ( area_is_intersected_by_area(&virtual_screen, &cursor_area) + && !area_is_intersected_by_area(&black_hole, &cursor_area)) + { + /* + * Get new address for text cursor + * Should we look at video mode? Or is 0xb8000 OK? + */ + text_address = 0xb8000 + sas_w_at(VID_ADDR) + + point_as_text_cell_address(&cursor_area.top_left); + + /* + * Save area text cursor will cover + */ + sas_loadw(text_address, &text_cursor_background); + save_area_in_use = TRUE; + point_copy(&cursor_area.top_left, &save_position); + + /* + * Stuff masked screen data + */ + sas_storew(text_address, + (text_cursor_background & software_text_cursor.screen) ^ + software_text_cursor.cursor); + } +} + + + + +GLOBAL void software_text_cursor_undisplay IFN0() +{ + /* + * Remove old text cursor + * Should we look at video mode? Or is 0xb8000 OK? + */ + MOUSE_BYTE_ADDRESS text_address; + + text_address = 0xb8000 + sas_w_at(VID_ADDR) + + point_as_text_cell_address(&save_position); + + /* + * Stuff restored data and alert gvi + */ + sas_storew(text_address, text_cursor_background); +} + + + + +GLOBAL void hardware_text_cursor_display IFN0() +{ + /* + * Display a representation of the current mouse status on + * the screen using the hardware text cursor, provided the + * cursor overlaps the virtual screen. Since the hardware + * cursor display does not corrupt the Intel memory, it + * doesn't matter if the hardware cursor lies inside the + * conditional off area + */ + MOUSE_AREA cursor_area; + MOUSE_BYTE_ADDRESS text_address; + word card_address; + + /* + * Get area cursor will cover on screen + */ + point_copy(&cursor_status.position, &cursor_area.top_left); + point_copy(&cursor_status.position, &cursor_area.bottom_right); + point_translate(&cursor_area.bottom_right, &cursor_grid); + + if (area_is_intersected_by_area(&virtual_screen, &cursor_area)) + { + /* + * Get address of the base register on the active display + * adaptor card + */ + sas_loadw(MOUSE_VIDEO_CARD_BASE, &card_address); + + /* + * Get word offset of cursor position in the text mode + * regen buffer + */ + text_address = + point_as_text_cell_address(&cursor_status.position) / 2; + + /* + * Output the cursor address high byte + */ + outb(card_address++, MOUSE_CURSOR_HIGH_BYTE); + outb(card_address--, text_address >> 8); + + /* + * Output the cursor address low byte + */ + outb(card_address++, MOUSE_CURSOR_LOW_BYTE); + outb(card_address--, text_address); + } +} + + + + +GLOBAL void hardware_text_cursor_undisplay IFN0() +{ + /* + * Nothing to do + */ +} + + +#ifdef EGG +LOCAL EGA_graphics_cursor_display IFN0() + +{ +#ifdef REAL_VGA +#ifndef PROD + if (io_verbose & MOUSE_VERBOSE) + fprintf(trace_file, "oops - EGA graphics display cursor\n"); +#endif /* PROD */ +#else + /* + * Display a representation of the current mouse status on + * the screen using the graphics cursor, provided the + * cursor overlaps the virtual screen and lies completely + * outside the conditional off area + */ + MOUSE_BIT_ADDRESS bit_shift; + MOUSE_BYTE_ADDRESS byte_offset; + int line, line_max; + int byte_min, byte_max; + IU32 strip_lo, strip_mid, strip_hi; + IU32 mask_lo, mask_hi; + + MOUSE_SCALAR saved_cursor_pos; + MOUSE_SCALAR saved_bottom_right; + + if (jap_mouse) { + /* fake up the mode 0x12 cursor position, saving original */ + saved_cursor_pos=cursor_status.position.y; + saved_bottom_right=virtual_screen.bottom_right.y; + + cursor_status.position.y = saved_cursor_pos * 19 / 8; + virtual_screen.bottom_right.y = virtual_screen.bottom_right.y * 19 / 8; + } + + /* + * Get area cursor will cover on screen + */ + point_copy(&cursor_status.position, &save_area.top_left); + point_copy(&cursor_status.position, &save_area.bottom_right); + point_translate(&save_area.bottom_right, &graphics_cursor.size); + point_translate_back(&save_area.top_left, &graphics_cursor.hot_spot); + point_translate_back(&save_area.bottom_right, &graphics_cursor.hot_spot); + + if ( area_is_intersected_by_area(&virtual_screen, &save_area) + && !area_is_intersected_by_area(&black_hole, &save_area)) + { + /* + * Record save position and screen area + */ + save_area_in_use = TRUE; + area_coerce_to_area(&save_area, &virtual_screen); + point_copy(&save_area.top_left, &save_position); + + /* + * Get cursor byte offset relative to the start of the + * regen buffer, and bit shift to apply + */ + byte_offset = ega_point_as_graphics_cell_address(&save_position); + bit_shift = byte_offset & 7; + byte_offset /= 8; + + /* + * Get range of cursor lines that need to be displayed + */ + line = save_area.top_left.y - save_position.y; + line_max = area_depth(&save_area); + /* + * Get range of bytes that need to be displayed + */ + byte_min = 0; + byte_max = 2; + if (save_position.x < 0) + byte_min += (7 - save_position.x) / 8; + else + if (area_width(&save_area) < MOUSE_GRAPHICS_CURSOR_WIDTH) + byte_max -= + (8 + MOUSE_GRAPHICS_CURSOR_WIDTH - area_width(&save_area)) / 8; + + if( bit_shift ) + { + mask_lo = 0xff >> bit_shift; + mask_lo = ( mask_lo << 8 ) | mask_lo; + mask_lo = ~(( mask_lo << 16 ) | mask_lo); + + mask_hi = 0xff >> bit_shift; + mask_hi = ( mask_hi << 8 ) | mask_hi; + mask_hi = ( mask_hi << 16 ) | mask_hi; + } + + while (line < line_max) + { + if (bit_shift) + { + /* + * Get save area + */ + + ega_backgrnd_lo[line] = *( (IU32 *) EGA_planes + byte_offset ); + ega_backgrnd_mid[line] = *( (IU32 *) EGA_planes + byte_offset + 1 ); + ega_backgrnd_hi[line] = *( (IU32 *) EGA_planes + byte_offset + 2 ); + + /* + * Overlay cursor line + */ + + + strip_lo = ega_backgrnd_lo[line] & mask_lo; + + strip_lo |= ~mask_lo & (( ega_backgrnd_lo[line] + & ( graphics_cursor.screen_lo[line] >> bit_shift )) + ^ ( graphics_cursor.cursor_lo[line] >> bit_shift )); + + strip_mid = ~mask_hi & (( ega_backgrnd_mid[line] + & ( graphics_cursor.screen_lo[line] << (8 - bit_shift) )) + ^ ( graphics_cursor.cursor_lo[line] << (8 - bit_shift) )); + + strip_mid |= ~mask_lo & (( ega_backgrnd_mid[line] + & ( graphics_cursor.screen_hi[line] >> bit_shift )) + ^ ( graphics_cursor.cursor_hi[line] >> bit_shift )); + + strip_hi = ega_backgrnd_hi[line] & mask_hi; + + strip_hi |= ~mask_hi & (( ega_backgrnd_hi[line] + & ( graphics_cursor.screen_hi[line] << (8 - bit_shift) )) + ^ ( graphics_cursor.cursor_hi[line] << (8 - bit_shift) )); + + if (byte_min <= 0 && byte_max >= 0) + *((IU32 *) EGA_planes + byte_offset) = strip_lo; + + if (byte_min <= 1 && byte_max >= 1) + *((IU32 *) EGA_planes + byte_offset + 1) = strip_mid; + + if (byte_min <= 2 && byte_max >= 2) + *((IU32 *) EGA_planes + byte_offset + 2) = strip_hi; + } + else + { + /* + * Get save area + */ + + ega_backgrnd_lo[line] = *( (IU32 *) EGA_planes + byte_offset ); + ega_backgrnd_hi[line] = *( (IU32 *) EGA_planes + byte_offset + 1 ); + + /* + * Create overlaid cursor line + */ + + strip_lo = (ega_backgrnd_lo[line] & + graphics_cursor.screen_lo[line]) ^ + graphics_cursor.cursor_lo[line]; + + strip_hi = (ega_backgrnd_hi[line] & + graphics_cursor.screen_hi[line]) ^ + graphics_cursor.cursor_hi[line]; + + /* + * Draw cursor line + */ + + if (byte_min <= 0 && byte_max >= 0) + { + *((IU32 *) EGA_planes + byte_offset) = strip_lo; + } + + if (byte_min <= 1 && byte_max >= 1) + { + *((IU32 *) EGA_planes + byte_offset + 1) = strip_hi; + } + + } + + update_alg.mark_string(byte_offset, byte_offset + 2); +#ifdef V7VGA + if (sas_hw_at(vd_video_mode) >= 0x40) + byte_offset += get_bytes_per_line(); + else +#endif /* V7VGA */ + byte_offset += get_actual_offset_per_line(); + line++; + } + if (jap_mouse) { + /* put things back how they should be */ + cursor_status.position.y = saved_cursor_pos; + virtual_screen.bottom_right.y = saved_bottom_right; + } + } +#endif /* REAL_VGA */ +} + + +LOCAL EGA_graphics_cursor_undisplay IFN0() + +{ +#ifdef REAL_VGA +#ifndef PROD + if (io_verbose & MOUSE_VERBOSE) + fprintf(trace_file, "oops - EGA graphics undisplay cursor\n"); +#endif /* PROD */ +#else + /* + * Remove the graphics cursor representation of the mouse + * status + */ + MOUSE_BIT_ADDRESS bit_shift; + MOUSE_BYTE_ADDRESS byte_offset; + int line, line_max; + int byte_min, byte_max; + + /* + * Get cursor byte offset relative to the start of the + * even or odd bank, and bit shift to apply + */ + byte_offset = ega_point_as_graphics_cell_address(&save_position); + bit_shift = byte_offset & 7; + byte_offset /= 8; + + /* + * Get range of cursor lines that need to be displayed + */ + line = save_area.top_left.y - save_position.y; + line_max = area_depth(&save_area); + + /* + * Get range of bytes that need to be displayed + */ + byte_min = 0; + byte_max = 2; + if (save_position.x < 0) + byte_min += (7 - save_position.x) / 8; + else if (area_width(&save_area) < MOUSE_GRAPHICS_CURSOR_WIDTH) + byte_max -= (8 + MOUSE_GRAPHICS_CURSOR_WIDTH - area_width(&save_area)) / 8; + + while(line < line_max) + { + /* + * Draw saved area + */ + + if (bit_shift) + { + if (byte_min <= 0 && byte_max >= 0) + *((IU32 *) EGA_planes + byte_offset) = ega_backgrnd_lo[line]; + + if (byte_min <= 1 && byte_max >= 1) + *((IU32 *) EGA_planes + byte_offset + 1) = ega_backgrnd_mid[line]; + + if (byte_min <= 2 && byte_max >= 2) + *((IU32 *) EGA_planes + byte_offset + 2) = ega_backgrnd_hi[line]; + } + else + { + if (byte_min <= 0 && byte_max >= 0) + *((IU32 *) EGA_planes + byte_offset) = ega_backgrnd_lo[line]; + + if (byte_min <= 1 && byte_max >= 1) + *((IU32 *) EGA_planes + byte_offset + 1) = ega_backgrnd_hi[line]; + } + + update_alg.mark_string(byte_offset, byte_offset + 2); +#ifdef V7VGA + if (sas_hw_at(vd_video_mode) >= 0x40) + byte_offset += get_bytes_per_line(); + else +#endif /* V7VGA */ + byte_offset += get_actual_offset_per_line(); + line++; + } +#endif /* REAL_VGA */ +} + +#endif + + +#ifdef VGG +LOCAL VOID VGA_graphics_cursor_display IFN0() +{ +#ifdef REAL_VGA +#ifndef PROD + if (io_verbose & MOUSE_VERBOSE) + fprintf(trace_file, "oops - VGA graphics display cursor\n"); +#endif /* PROD */ +#else /* REAL_VGA */ + + MOUSE_BYTE_ADDRESS byte_offset; + SHORT line, line_max, index; + SHORT index_max = MOUSE_GRAPHICS_CURSOR_WIDTH; + USHORT scr_strip, cur_strip; + UTINY scr_byte, cur_byte; + USHORT mask; + + + /* + * Get area cursor will cover on screen + */ + point_copy(&cursor_status.position, &save_area.top_left); + point_copy(&cursor_status.position, &save_area.bottom_right); + point_translate(&save_area.bottom_right, &graphics_cursor.size); + point_translate_back(&save_area.top_left, &graphics_cursor.hot_spot); + point_translate_back(&save_area.bottom_right, &graphics_cursor.hot_spot); + + if ( area_is_intersected_by_area(&virtual_screen, &save_area) + && !area_is_intersected_by_area(&black_hole, &save_area)) + { + /* + * Record save position and screen area + */ + save_area_in_use = TRUE; + area_coerce_to_area(&save_area, &virtual_screen); + point_copy(&save_area.top_left, &save_position); + + /* + * Get cursor byte offset relative to the start of the + * regen buffer, and bit shift to apply + */ + byte_offset = ega_point_as_graphics_cell_address(&save_position); + /* + * Get range of cursor lines that need to be displayed + */ + line = save_area.top_left.y - save_position.y; + line_max = area_depth(&save_area); + + if (area_width(&save_area) < MOUSE_GRAPHICS_CURSOR_WIDTH) + index_max = (area_width(&save_area)); + + while (line < line_max) + { + mask = 0x8000; + + for(index=0;index>= 1; + } + + update_alg.mark_string(byte_offset, byte_offset+index); + line++; + byte_offset += get_bytes_per_line(); + + } + } +#endif /* REAL_VGA */ +} + +LOCAL VOID VGA_graphics_cursor_undisplay IFN0() +{ +#ifdef REAL_VGA +#ifndef PROD + if (io_verbose & MOUSE_VERBOSE) + fprintf(trace_file, "oops - VGA graphics undisplay cursor\n"); +#endif /* PROD */ +#else /* REAL_VGA */ + + /* + * Remove the graphics cursor representation of the mouse + * status + */ + MOUSE_BYTE_ADDRESS byte_offset; + SHORT index; + SHORT index_max = MOUSE_GRAPHICS_CURSOR_WIDTH; + int line, line_max; + + /* + * Get cursor byte offset relative to the start of the EGA memory + */ + + byte_offset = ega_point_as_graphics_cell_address(&save_position); + + /* + * Get range of cursor lines that need to be displayed + */ + line = save_area.top_left.y - save_position.y; + line_max = area_depth(&save_area); + + if (area_width(&save_area) < MOUSE_GRAPHICS_CURSOR_WIDTH) + index_max = (area_width(&save_area)); + + /* + * Get range of bytes that need to be displayed + */ + while (line < line_max) + { + for (index=0;index>= 3; + + /* + * Get range of cursor lines that need to be displayed + */ + line = save_area.top_left.y - save_position.y; + line_max = area_depth(&save_area); + + /* + * Get range of bytes that need to be displayed + */ + byte_min = 0; + byte_max = 2; + if (save_position.x < 0) + byte_min += (7 - save_position.x) / 8; + else if (area_width(&save_area) < MOUSE_GRAPHICS_CURSOR_WIDTH) + byte_max -= (8 + MOUSE_GRAPHICS_CURSOR_WIDTH - area_width(&save_area)) / 8; + + while (line < line_max) + { + if (even_scan_line) + { + even_scan_line = FALSE; + byte_address = EVEN_START + byte_offset; + } + else + { + even_scan_line = TRUE; + byte_address = ODD_START + byte_offset; + byte_offset += MOUSE_GRAPHICS_MODE_PITCH / 8; + } + + if (bit_shift) + { + /* + * Get save area + */ + strip = (IU32)sas_hw_at(byte_address) << 16; + strip |= (unsigned short)sas_hw_at(byte_address+1) << 8; + strip |= sas_hw_at(byte_address+2); + graphics_cursor_background[line] = + strip >> (8 - bit_shift); + + /* + * Overlay cursor line + */ + strip &= (SHIFT_VAL >> bit_shift); + strip |= (IU32)((graphics_cursor_background[line] & + graphics_cursor.screen[line]) ^ + graphics_cursor.cursor[line]) + << (8 - bit_shift); + + /* + * Stash cursor line + */ + if (byte_min <= 0 && byte_max >= 0) + { + sas_store(byte_address, strip >> 16); + } + if (byte_min <= 1 && byte_max >= 1) + { + sas_store(byte_address+1, strip >> 8); + } + if (byte_min <= 2 && byte_max >= 2) + { + sas_store(byte_address+2, strip); + } + } + else + { + /* + * Get save area + */ + graphics_cursor_background[line] = (sas_hw_at(byte_address) << 8) + sas_hw_at(byte_address+1); + + /* + * Get overlaid cursor line + */ + strip = (graphics_cursor_background[line] & + graphics_cursor.screen[line]) ^ + graphics_cursor.cursor[line]; + + /* + * Stash cursor line and alert gvi + */ + if (byte_min <= 0 && byte_max >= 0) + { + sas_store(byte_address, strip >> 8); + } + if (byte_min <= 1 && byte_max >= 1) + { + sas_store(byte_address+1, strip); + } + } + line++; + } + } +} + + +#ifdef HERC +LOCAL void HERC_graphics_cursor_display IFN0() +{ + /* + * Display a representation of the current mouse status on + * the screen using the graphics cursor, provided the + * cursor overlaps the virtual screen and lies completely + * outside the conditional off area + */ + int scan_line_mod; + MOUSE_BIT_ADDRESS bit_shift; + IS32 byte_offset; + sys_addr byte_address; + IU32 strip; + int line, line_max; + int byte_min, byte_max; + + /* + * Get area cursor will cover on screen + */ + point_copy(&cursor_status.position, &save_area.top_left); + point_copy(&cursor_status.position, &save_area.bottom_right); + point_translate(&save_area.bottom_right, &graphics_cursor.size); + point_translate_back(&save_area.top_left, &graphics_cursor.hot_spot); + point_translate_back(&save_area.bottom_right, &graphics_cursor.hot_spot); + + if ( area_is_intersected_by_area(&HERC_graphics_virtual_screen, &save_area) + && !area_is_intersected_by_area(&black_hole, &save_area)) + { + /* + * Record save position and screen area + */ + save_area_in_use = TRUE; + point_copy(&save_area.top_left, &save_position); + area_coerce_to_area(&save_area, &HERC_graphics_virtual_screen); + + /* + * Get cursor byte offset relative to the start of the + * even or odd bank, and bit shift to apply + */ + scan_line_mod = save_area.top_left.y % 4; + byte_offset = point_as_HERC_graphics_cell_address(&save_position); + bit_shift = byte_offset & 7; + byte_offset >>= 3; + + /* + * Get range of cursor lines that need to be displayed + */ + line = save_area.top_left.y - save_position.y; + line_max = area_depth(&save_area); + + /* + * Get range of bytes that need to be displayed + */ + byte_min = 0; + byte_max = 2; + if (save_position.x < 0) + byte_min += (7 - save_position.x) / 8; + else if (area_width(&save_area) < MOUSE_GRAPHICS_CURSOR_WIDTH) + byte_max -= (8 + MOUSE_GRAPHICS_CURSOR_WIDTH - area_width(&save_area)) / 8; + + while (line < line_max) + { + switch (scan_line_mod){ + case 0: + scan_line_mod++; + byte_address = gvi_pc_low_regen + 0x0000 + byte_offset; + break; + case 1: + scan_line_mod++; + byte_address = gvi_pc_low_regen + 0x2000 + byte_offset; + break; + case 2: + scan_line_mod++; + byte_address = gvi_pc_low_regen + 0x4000 + byte_offset; + break; + case 3: + scan_line_mod=0; + byte_address = gvi_pc_low_regen + 0x6000 + byte_offset; + byte_offset += 720 / 8; + break; + } + + if (bit_shift) + { + /* + * Get save area + */ + strip = (IU32)sas_hw_at(byte_address) << 16; + strip |= (unsigned short)sas_hw_at(byte_address+1) << 8; + strip |= sas_hw_at(byte_address+2); + graphics_cursor_background[line] = + strip >> (8 - bit_shift); + + /* + * Overlay cursor line + */ + strip &= (SHIFT_VAL >> bit_shift); + strip |= (IU32)((graphics_cursor_background[line] & + graphics_cursor.screen[line]) ^ + graphics_cursor.cursor[line]) + << (8 - bit_shift); + + /* + * Stash cursor line and alert gvi + */ + if (byte_min <= 0 && byte_max >= 0) + { + sas_store(byte_address, strip >> 16); + } + if (byte_min <= 1 && byte_max >= 1) + { + sas_store(byte_address+1, strip >> 8); + } + if (byte_min <= 2 && byte_max >= 2) + { + sas_store(byte_address+2, strip); + } + } + else + { + /* + * Get save area + */ + graphics_cursor_background[line] = (sas_hw_at(byte_address) << 8) + + sas_hw_at(byte_address+1); + + /* + * Get overlaid cursor line + */ + strip = (graphics_cursor_background[line] & + graphics_cursor.screen[line]) ^ + graphics_cursor.cursor[line]; + + /* + * Stash cursor line and alert gvi + */ + if (byte_min <= 0 && byte_max >= 0) + { + sas_store(byte_address, strip >> 8); + } + if (byte_min <= 1 && byte_max >= 1) + { + sas_store(byte_address+1, strip); + } + } + line++; + } + } +} + + +#endif /* HERC */ + + +LOCAL void graphics_cursor_undisplay IFN0() +{ + /* + * Remove the graphics cursor representation of the mouse + * status + */ + boolean even_scan_line; + MOUSE_BIT_ADDRESS bit_shift; + IS32 byte_offset; + sys_addr byte_address; + IU32 strip; + int line, line_max; + int byte_min, byte_max; + + /* + * Get cursor byte offset relative to the start of the + * even or odd bank, and bit shift to apply + */ + even_scan_line = ((save_area.top_left.y % 2) == 0); + byte_offset = point_as_graphics_cell_address(&save_position); + bit_shift = byte_offset & 7; + byte_offset >>= 3; + + /* + * Get range of cursor lines that need to be displayed + */ + line = save_area.top_left.y - save_position.y; + line_max = area_depth(&save_area); + + /* + * Get range of bytes that need to be displayed + */ + byte_min = 0; + byte_max = 2; + if (save_position.x < 0) + byte_min += (7 - save_position.x) / 8; + else if (area_width(&save_area) < MOUSE_GRAPHICS_CURSOR_WIDTH) + byte_max -= (8 + MOUSE_GRAPHICS_CURSOR_WIDTH - area_width(&save_area)) / 8; + + while(line < line_max) + { + if (even_scan_line) + { + even_scan_line = FALSE; + byte_address = EVEN_START + byte_offset; + } + else + { + even_scan_line = TRUE; + byte_address = ODD_START + byte_offset; + byte_offset += MOUSE_GRAPHICS_MODE_PITCH / 8; + } + + if (bit_shift) + { + /* + * Get cursor line + */ + strip = (IU32)sas_hw_at(byte_address) << 16; + strip |= (unsigned short)sas_hw_at(byte_address+1) << 8; + strip |= sas_hw_at(byte_address+2); + + /* + * Overlay save area + */ + strip &= (SHIFT_VAL >> bit_shift); + strip |= (IU32)graphics_cursor_background[line] + << (8 - bit_shift); + + /* + * Stash cursor line and alert gvi + */ + if (byte_min <= 0 && byte_max >= 0) + { + sas_store(byte_address, strip >> 16); + } + if (byte_min <= 1 && byte_max >= 1) + { + sas_store(byte_address+1, strip >> 8); + } + if (byte_min <= 2 && byte_max >= 2) + { + sas_store(byte_address+2, strip); + } + } + else + { + /* + * Stash save area and alert gvi + */ + strip = graphics_cursor_background[line]; + if (byte_min <= 0 && byte_max >= 0) + { + sas_store(byte_address, strip >> 8); + } + if (byte_min <= 1 && byte_max >= 1) + { + sas_store(byte_address+1, strip); + } + } + line++; + } +} + +#ifdef HERC + +LOCAL void HERC_graphics_cursor_undisplay IFN0() +{ + /* + * Remove the graphics cursor representation of the mouse + * status + */ + int scan_line_mod; + MOUSE_BIT_ADDRESS bit_shift; + IS32 byte_offset; + sys_addr byte_address; + IU32 strip; + int line, line_max; + int byte_min, byte_max; + + /* + * Get cursor byte offset relative to the start of the + * even or odd bank, and bit shift to apply + */ + scan_line_mod = save_area.top_left.y % 4; + byte_offset = point_as_HERC_graphics_cell_address(&save_position); + bit_shift = byte_offset & 7; + byte_offset >>= 3; + + /* + * Get range of cursor lines that need to be displayed + */ + line = save_area.top_left.y - save_position.y; + line_max = area_depth(&save_area); + + /* + * Get range of bytes that need to be displayed + */ + byte_min = 0; + byte_max = 2; + if (save_position.x < 0) + byte_min += (7 - save_position.x) / 8; + else if (area_width(&save_area) < MOUSE_GRAPHICS_CURSOR_WIDTH) + byte_max -= (8 + MOUSE_GRAPHICS_CURSOR_WIDTH - area_width(&save_area)) / 8; + + while(line < line_max) + { + switch (scan_line_mod){ + case 0: + scan_line_mod++; + byte_address = gvi_pc_low_regen + 0x0000 + byte_offset; + break; + case 1: + scan_line_mod++; + byte_address = gvi_pc_low_regen + 0x2000 + byte_offset; + break; + case 2: + scan_line_mod++; + byte_address = gvi_pc_low_regen + 0x4000 + byte_offset; + break; + case 3: + scan_line_mod=0; + byte_address = gvi_pc_low_regen + 0x6000 + byte_offset; + byte_offset += 720 / 8; + break; + } + + if (bit_shift) + { + /* + * Get cursor line + */ + strip = (IU32)sas_hw_at(byte_address) << 16; + strip |= (unsigned short)sas_hw_at(byte_address+1) << 8; + strip |= sas_hw_at(byte_address+2); + + /* + * Overlay save area + */ + strip &= (SHIFT_VAL >> bit_shift); + strip |= (IU32)graphics_cursor_background[line] + << (8 - bit_shift); + + /* + * Stash cursor line and alert gvi + */ + if (byte_min <= 0 && byte_max >= 0) + { + sas_store(byte_address, strip >> 16); + } + if (byte_min <= 1 && byte_max >= 1) + { + sas_store(byte_address+1, strip >> 8); + } + if (byte_min <= 2 && byte_max >= 2) + { + sas_store(byte_address+2, strip); + } + } + else + { + /* + * Stash save area + */ + strip = graphics_cursor_background[line]; + if (byte_min <= 0 && byte_max >= 0) + { + sas_store(byte_address, strip >> 8); + } + if (byte_min <= 1 && byte_max >= 1) + { + sas_store(byte_address+1, strip); + } + } + line++; + } +} +#endif /* HERC */ + + +/* + * MOUSE DRIVER INPORT ACCESS FUNCTIONS + * ==================================== + */ + +LOCAL void inport_get_event IFN1(MOUSE_INPORT_DATA *,event) +{ + /* + * Get InPort event data from the Bus Mouse hardware following + * an interrupt + */ + half_word inport_mode; + + /* + * Set hold bit in InPort mode register to transfer the mouse + * event data into the status and data registers + */ + outb(MOUSE_INPORT_ADDRESS_REG, MOUSE_INPORT_ADDRESS_MODE); + inb(MOUSE_INPORT_DATA_REG, &inport_mode); + outb(MOUSE_INPORT_DATA_REG, inport_mode | MOUSE_INPORT_MODE_HOLD_BIT); + + /* + * Retreive the InPort mouse status, data1 and data2 registers + */ + outb(MOUSE_INPORT_ADDRESS_REG, MOUSE_INPORT_ADDRESS_STATUS); + inb(MOUSE_INPORT_DATA_REG, &event->status); + outb(MOUSE_INPORT_ADDRESS_REG, MOUSE_INPORT_ADDRESS_DATA1); + inb(MOUSE_INPORT_DATA_REG, (half_word *)&event->data_x); + outb(MOUSE_INPORT_ADDRESS_REG, MOUSE_INPORT_ADDRESS_DATA2); + inb(MOUSE_INPORT_DATA_REG, (half_word *)&event->data_y); + + /* + * Clear hold bit in mode register + */ + outb(MOUSE_INPORT_ADDRESS_REG, MOUSE_INPORT_ADDRESS_MODE); + inb(MOUSE_INPORT_DATA_REG, &inport_mode); + outb(MOUSE_INPORT_DATA_REG, inport_mode & ~MOUSE_INPORT_MODE_HOLD_BIT); +} + + + + +LOCAL void inport_reset IFN0() +{ + /* + * Reset the InPort bus mouse hardware + */ + + /* + * Set the reset bit in the address register + */ + outb(MOUSE_INPORT_ADDRESS_REG, MOUSE_INPORT_ADDRESS_RESET_BIT); + + /* + * Select the mode register, and set it to the correct value + */ + outb(MOUSE_INPORT_ADDRESS_REG, MOUSE_INPORT_ADDRESS_MODE); + outb(MOUSE_INPORT_DATA_REG, MOUSE_INPORT_MODE_VALUE); +} + + + + +/* + * USER SUBROUTINE CALL ACCESS FUNCTIONS + * ===================================== + */ + +LOCAL void jump_to_user_subroutine IFN3(MOUSE_CALL_MASK,condition_mask,word,segment,word,offset) +{ + /* + * This routine sets up the CPU registers so that when the CPU + * restarts, control will pass to the user subroutine, and when + * the user subroutine returns, control will pass to the second + * part of the mouse hardware interrupt service routine + */ + + /* + * Push address of second part of mouse hardware interrupt service + * routine + */ + + setSP(getSP() - 2); + sas_storew(effective_addr(getSS(), getSP()), MOUSE_INT2_SEGMENT); + setSP(getSP() - 2); + sas_storew(effective_addr(getSS(), getSP()), MOUSE_INT2_OFFSET); + + /* + * Set CS:IP to point to the user subroutine. Adjust the IP by + * HOST_BOP_IP_FUDGE, since the CPU emulator will increment IP by + * HOST_BOP_IP_FUDGE for the BOP instruction before proceeding + */ + setCS(segment); +#ifdef CPU_30_STYLE + setIP(offset); +#else /* !CPU_30_STYLE */ + setIP(offset + HOST_BOP_IP_FUDGE); +#endif /* !CPU_30_STYLE */ + + /* + * Put parameters into the registers, saving the previous contents + * to be restored in the second part of the mouse hardware + * interrupt service routine + */ + saved_AX = getAX(); + setAX(condition_mask); + saved_BX = getBX(); + setBX(cursor_status.button_status); + saved_CX = getCX(); + setCX(cursor_status.position.x); + saved_DX = getDX(); + setDX(cursor_status.position.y); + saved_SI = getSI(); + setSI(mouse_motion.x); + saved_DI = getDI(); + setDI(mouse_motion.y); + saved_ES = getES(); + saved_BP = getBP(); + saved_DS = getDS(); + + /* + * Save the condition mask so that the second part of the mouse + * hardware interrupt service routine can determine whether the + * cursor has changed position + */ + + last_condition_mask = condition_mask; + + /* + * Enable interrupts + */ + setIF(1); +} diff --git a/private/mvdm/softpc.new/base/keymouse/ppi.c b/private/mvdm/softpc.new/base/keymouse/ppi.c new file mode 100644 index 000000000..74e806975 --- /dev/null +++ b/private/mvdm/softpc.new/base/keymouse/ppi.c @@ -0,0 +1,200 @@ +#include "insignia.h" +#include "host_def.h" +/* + * SoftPC Version 3.0 + * + * Title: ppi.c + * + * Description: Read/Write port on AT System Board. + * + * Author: Leigh Dworkin + * + * Notes: On the XT this used to be controlled by the + * Programmable Peripheral Interface adapter, hence the nomenclature. + * + */ + +#ifdef SCCSID +static char SccsID[]="@(#)ppi.c 1.9 08/10/92 Copyright Insignia Solutions Ltd."; +#endif + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_SUPPORT.seg" +#endif + + +/* + * O/S include files. + */ +#include + +/* + * SoftPC include files + */ +#include "xt.h" +#include "ios.h" +#include "ppi.h" +#include "timer.h" +#ifndef PROD +#include "trace.h" +#endif +#include "debug.h" + +/* + * ============================================================================ + * Global data + * ============================================================================ + */ + +/* + * ============================================================================ + * Static data and defines + * ============================================================================ + */ + +/* + * This holds the current state of the io port + */ + +static half_word ppi_register; + +#define PPI_BIT_MASK 0x3F1 + +static boolean gate_2_was_low = TRUE; /* state of timer 2 gate */ +#ifndef NTVDM +static boolean SPKRDATA_was_low = TRUE; /* speaker data for sound */ +#endif + +/* + * ============================================================================ + * Internal functions + * ============================================================================ + */ + +/* + * ============================================================================ + * External functions + * ============================================================================ + */ + +void ppi_inb IFN2(io_addr, port, half_word *, value) +{ +#ifdef PROD + UNUSED(port); +#endif + /* + * The bits are assigned as follows: + * + * Bit No Use Supported + * ------ --- --------- + * 0-3 Value written to output port bits 0-3 yes + * 4 Refresh detect toggle yes + * 5 Timer 2 output level no + * 6 IO channel error status yes - 0 + * 7 RAM parity error status yes - 0 + * + */ + + port = port & PPI_BIT_MASK; /* clear unused bits */ + ppi_register ^= 0x30; + *value = ppi_register; + + note_trace2(PPI_VERBOSE, "ppi_inb() - port %x, returning val %x", port, *value); +} + +void ppi_outb IFN2(io_addr, port, half_word, value) +{ + port = port & PPI_BIT_MASK; /* clear unused bits */ + + if (port == PPI_GENERAL) + { + ppi_register = value & 0x0f; + + note_trace2(PPI_VERBOSE, "ppi_outb() - port %x, val %x", port, value); + /* + * The bits are assigned as follows: + * + * Bit No Use Supported + * ------ --- --------- + * 0 Timer Gate to speaker Yes + * 1 Speaker Data Yes + * 2 Enable RAM Parity Check No need - always OK + * 3 Enable I/0 Check No need - always OK + * 4-7 Not used. + * + */ + + /* + * Tell sound logic whether sound is enabled or not + */ + +#ifndef NTVDM + if ( (value & 0x02) && SPKRDATA_was_low) + { + host_enable_timer2_sound(); + SPKRDATA_was_low = FALSE; + } + else + if ( !(value & 0x02) && !SPKRDATA_was_low) + { + host_disable_timer2_sound(); + SPKRDATA_was_low = TRUE; + } +#endif + + /* + * Now gate the ppi signal to the timer. + */ + + if ( (value & 0x01) && gate_2_was_low) + { + + timer_gate(TIMER2_REG, GATE_SIGNAL_RISE); + gate_2_was_low = FALSE; + } + else + if ( !(value & 0x01) && !gate_2_was_low) + + { + timer_gate(TIMER2_REG, GATE_SIGNAL_LOW); + gate_2_was_low = TRUE; + } +#ifdef NTVDM + /* + * Tell the host the full PpiState because this effects + * whether we are playing Timer 2 Freq, Ppi Freq or both. + * Do this after calling timer_gate to avoid playing old + * frequencies. + */ + HostPpiState(value); +#endif + } + else + note_trace2(PPI_VERBOSE, "ppi_outb() - Value %x to unsupported port %x", value, port); +} + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_INIT.seg" +#endif + +void ppi_init IFN0() +{ + io_addr i; + io_define_inb(PPI_ADAPTOR, ppi_inb); + io_define_outb(PPI_ADAPTOR, ppi_outb); + + for(i = PPI_PORT_START+1; i <= PPI_PORT_END; i+=2) + io_connect_port(i, PPI_ADAPTOR, IO_READ_WRITE); + + ppi_register = 0x00; +} diff --git a/private/mvdm/softpc.new/base/keymouse/sources b/private/mvdm/softpc.new/base/keymouse/sources new file mode 100644 index 000000000..0465543b1 --- /dev/null +++ b/private/mvdm/softpc.new/base/keymouse/sources @@ -0,0 +1,62 @@ +!IF 0 + +Copyright (c) 1989 Microsoft Corporation + +Module Name: + + sources. + +Abstract: + + This file specifies the target component being built and the list of + sources files needed to build that component. Also specifies optional + compiler switches and libraries that are unique for the component being + built. + + +Author: + + Steve Wood (stevewo) 12-Apr-1990 + +NOTE: Commented description of this file is in \nt\bak\bin\sources.tpl + +!ENDIF + + +MAJORCOMP=spcbase +MINORCOMP=keymouse + +TARGETNAME=keymouse + +TARGETPATH=obj + + +NTPROFILEINPUT=yes + +# Pick one of the following and delete the others +TARGETTYPE=LIBRARY + + +TARGETLIBS= + +SOFTPC_TREE=$(BASEDIR)\private\mvdm\softpc.new + +INCLUDES=$(SOFTPC_TREE)\host\inc;$(SOFTPC_TREE)\base\inc;$(BASEDIR)\private\inc + +!IF $(ALPHA) +GPSIZE=0 +!ELSE +GPSIZE=0 +!ENDIF + + + +SOURCES=keyba.c \ + keybd_io.c \ + mouse.c \ + ppi.c \ + mouse_io.c + +!INCLUDE $(SOFTPC_TREE)\obj.vdm\CDEFINE.INC + +UMTYPE=console diff --git a/private/mvdm/softpc.new/base/support/get_env.c b/private/mvdm/softpc.new/base/support/get_env.c new file mode 100644 index 000000000..bd47d20fe --- /dev/null +++ b/private/mvdm/softpc.new/base/support/get_env.c @@ -0,0 +1,187 @@ +/*[ + * Name: get_env.c + * + * Derived From: FmIit.c + * + * Author: William Charnell + * + * Created On: 5th May 1995 + * + * Sccs ID: @(#)get_env.c 1.2 06/16/95 + * + * Purpose: Provide easy interface to env vbls + * + * Design document: + * + * Test document: + * + * (c) Copyright Insignia Solutions Ltd., 1993. All rights reserved +]*/ +#include +#include +#include + +#include +#include +#include /* for always_trace macros */ + +#include + + + +#ifdef NTVDM + +#ifdef LOCAL +#undef LOCAL +#endif + +#else +LOCAL IBOOL verboseGetenv; +#endif + +#ifndef NTVDM +LOCAL void badGetenv IFN3(char *, name, char *, type_name, char *, value) +{ + printf("Bad getenv(\"%s\") %s value \"%s\"", name, type_name, value); +} + + +LOCAL void setupVerboseGetenv IFN0() +{ + SAVED IBOOL firstGetenv = TRUE; + char *env; + char *how = "Defaulting"; + + if (firstGetenv) + { +#ifdef PROD + verboseGetenv = FALSE; +#else /* PROD */ + verboseGetenv = TRUE; +#endif /* PROD */ + env = host_getenv("VERBOSE_GETENV"); + if (env) + { + if (strcmp(env, "FALSE") == 0) + verboseGetenv = FALSE; + else if (strcmp(env, "TRUE") == 0) + verboseGetenv = TRUE; + else + badGetenv("VERBOSE_GETENV", "IBOOL", env); + how = "Setting"; + } +#ifndef PROD + printf("%10s %25s IBOOL value \"%s\"\n", + how, "VERBOSE_GETENV", verboseGetenv ? "TRUE": "FALSE"); +#endif /* PROD */ + firstGetenv = FALSE; + } +} +#endif + + +GLOBAL IBOOL IBOOLgetenv IFN2(char *, name, IBOOL, default_value) +{ + char *env; + IBOOL value; + +#ifndef NTVDM + char *how = "Defaulting"; + setupVerboseGetenv(); +#endif + + value = default_value; + env = host_getenv(name); + if (env) + { +#ifdef NTVDM + value = _stricmp(env, "TRUE") == 0; +#else + if (strcmp(env, "FALSE") == 0) + value = FALSE; + else if (strcmp(env, "TRUE") == 0) + value = TRUE; + + else + badGetenv(name, "IBOOL", env); + + how = "Setting"; +#endif + + } + +#ifndef NTVDM + if (verboseGetenv) + { + printf("%10s %25s IBOOL value \"%s\"\n", + how, name, value ? "TRUE": "FALSE"); + } +#endif + + return (value); +} + + +GLOBAL ISM32 ISM32getenv IFN2(char *, name, ISM32, default_value) +{ + char *env, *ptr; + ISM32 value; + +#ifndef NTVDM + char *how = "Defaulting"; + setupVerboseGetenv(); +#endif + + value = default_value; + env = host_getenv(name); + if (env) + { + value = strtol(env, &ptr, 0); + if (ptr == env) /* cannot do conversion */ + value = default_value; +#ifndef NTVDM + how = "Setting"; +#endif + } + +#ifndef NTVDM + if (verboseGetenv) + { + printf("%10s %25s ISM32 value \"%d\"\n", how, name, value); + } +#endif + return (value); +} + + +GLOBAL char *STRINGgetenv IFN2(char *, name, char *, default_value) +{ + char *env; + char *value; + +#ifndef NTVDM + char *how = "Defaulting"; + setupVerboseGetenv(); +#endif + + value = default_value; + env = host_getenv(name); + if (env) + { + value = env; +#ifndef NTVDM + how = "Setting"; +#endif + } + +#ifndef NTVDM + if (verboseGetenv) + { + if (value) + printf("%10s %25s char* value \"%s\"\n", how, name, value); + else + printf("%10s %25s char* with no value\n", how, name, value); + } +#endif + return (value); +} diff --git a/private/mvdm/softpc.new/base/support/ios.c b/private/mvdm/softpc.new/base/support/ios.c new file mode 100644 index 000000000..f164cdbbb --- /dev/null +++ b/private/mvdm/softpc.new/base/support/ios.c @@ -0,0 +1,1021 @@ +#include "insignia.h" +#include "host_def.h" +/*[ + * Name: ios.c + * + * Author: Wayne Plummer + * + * Created: 7th February 1991 + * + * Sccs ID: @(#)ios.c 1.29 09/27/94 + * + * Purpose: This module provides a routing mechanism for Input and Ouput + * requests. + * + * (c)Copyright Insignia Solutions Ltd., 1991. All rights reserved. +]*/ + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_IOS.seg" +#endif + +#include +#include + +/* + * SoftPC include files + */ +#include "xt.h" +#include CpuH +#include "ios.h" +#include "trace.h" +#include "debug.h" +#include "sas.h" +#include MemoryH + +#if defined(SPC386) && !defined(GISP_CPU) +#define VIRTUALISATION +#endif + +#ifdef NTVDM +#define getIOInAdapter(ioaddr) (Ios_in_adapter_table[ioaddr & (PC_IO_MEM_SIZE-1)]) +#define getIOOutAdapter(ioaddr) (Ios_out_adapter_table[ioaddr & (PC_IO_MEM_SIZE-1)]) +#endif + +/* + * + * ============================================================================ + * Global data + * ============================================================================ + * + */ + +/* + * Ios_in_adapter_table & Ios_out_adapter_table - These tables give the association + * between the IO address used for an IO and the SoftPC adapter ID associated with the + * IO subroutines. + * + * Note that there are two tables here to allow for memory mapped IO locations which + * have an input functionality which is unrelated to the output functionality... + * In these cases, two connect port calls to the same IO address would be made, one with + * only the IO_READ flag set, the other with only the IO_WRITE flag set. + */ +#ifdef MAC68K +GLOBAL char *Ios_in_adapter_table = NULL; +GLOBAL char *Ios_out_adapter_table = NULL; +#else +GLOBAL char Ios_in_adapter_table[PC_IO_MEM_SIZE]; +GLOBAL char Ios_out_adapter_table[PC_IO_MEM_SIZE]; +#endif /* MAC68K */ +#ifndef PROD +GLOBAL IU32 *ios_empty_in = (IU32 *)0; +GLOBAL IU32 *ios_empty_out = (IU32 *)0; +#endif /* PROD */ + +/* + * Ios_xxx_function - These tables are indexed by the adapter ID obtained + * from the Ios_in_adapter_table or Ios_in_adapter_table to yield a pointer + * to the IO routine to call. + */ +typedef void (*IOS_FUNC_INB) IPT2(io_addr, io_address, half_word *, value); +typedef void (*IOS_FUNC_INW) IPT2(io_addr, io_address, word *, value); +typedef void (*IOS_FUNC_INSB) IPT3(io_addr, io_address, half_word *, valarray, word, count); +typedef void (*IOS_FUNC_INSW) IPT3(io_addr, io_address, word *, valarray, word, count); +typedef void (*IOS_FUNC_OUTB) IPT2(io_addr, io_address, half_word, value); +typedef void (*IOS_FUNC_OUTW) IPT2(io_addr, io_address, word, value); +typedef void (*IOS_FUNC_OUTSB) IPT3(io_addr, io_address, half_word *, valarray, word, count); +typedef void (*IOS_FUNC_OUTSW) IPT3(io_addr, io_address, word *, valarray, word, count); +#ifdef SPC386 +typedef void (*IOS_FUNC_IND) IPT2(io_addr, io_address, double_word *, value); +typedef void (*IOS_FUNC_INSD) IPT3(io_addr, io_address, double_word *, valarray, word, count); +typedef void (*IOS_FUNC_OUTD) IPT2(io_addr, io_address, double_word, value); +typedef void (*IOS_FUNC_OUTSD) IPT3(io_addr, io_address, double_word *, valarray, word, count); +#endif + +LOCAL void generic_inw IPT2(io_addr, io_address, word *, value); +LOCAL void generic_insb IPT3(io_addr, io_address, half_word *, valarray, word, count); +LOCAL void generic_insw IPT3(io_addr, io_address, word *, valarray, word, count); +LOCAL void generic_outw IPT2(io_addr, io_address, word, value); +LOCAL void generic_outsb IPT3(io_addr, io_address, half_word *, valarray, word, count); +LOCAL void generic_outsw IPT3(io_addr, io_address, word *, valarray, word, count); +#ifdef SPC386 +LOCAL void generic_ind IPT2(io_addr, io_address, double_word *, value); +LOCAL void generic_insd IPT3(io_addr, io_address, double_word *, valarray, word, count); +LOCAL void generic_outd IPT2(io_addr, io_address, double_word, value); +LOCAL void generic_outsd IPT3(io_addr, io_address, double_word *, valarray, word, count); +#endif + +GLOBAL IOS_FUNC_INB Ios_inb_function [IO_MAX_NUMBER_ADAPTORS]; +GLOBAL IOS_FUNC_INW Ios_inw_function [IO_MAX_NUMBER_ADAPTORS]; +GLOBAL IOS_FUNC_INSB Ios_insb_function [IO_MAX_NUMBER_ADAPTORS]; +GLOBAL IOS_FUNC_INSW Ios_insw_function [IO_MAX_NUMBER_ADAPTORS]; + +GLOBAL IOS_FUNC_OUTB Ios_outb_function [IO_MAX_NUMBER_ADAPTORS]; +GLOBAL IOS_FUNC_OUTW Ios_outw_function [IO_MAX_NUMBER_ADAPTORS]; +GLOBAL IOS_FUNC_OUTSB Ios_outsb_function[IO_MAX_NUMBER_ADAPTORS]; +GLOBAL IOS_FUNC_OUTSW Ios_outsw_function[IO_MAX_NUMBER_ADAPTORS]; + +#ifdef SPC386 +GLOBAL IOS_FUNC_IND Ios_ind_function [IO_MAX_NUMBER_ADAPTORS]; +GLOBAL IOS_FUNC_INSD Ios_insd_function [IO_MAX_NUMBER_ADAPTORS]; +GLOBAL IOS_FUNC_OUTD Ios_outd_function [IO_MAX_NUMBER_ADAPTORS]; +GLOBAL IOS_FUNC_OUTSD Ios_outsd_function[IO_MAX_NUMBER_ADAPTORS]; +#endif + +/* + * + * ============================================================================ + * Local Subroutines + * ============================================================================ + * + */ + +#define BIT_NOT_SET(vector, bit) \ + ((vector == (IU32 *)0) ? FALSE: ((((vector[(bit) >> 5]) >> ((bit) & 0x1f)) & 1) == 0)) + +#define SET_THE_BIT(vector, bit) \ + { \ + if (vector != (IU32 *)0) \ + { \ + vector[(bit) >> 5] |= (1 << ((bit) & 0x1f)); \ + } \ + } + +/* +============================== io_empty_inb ================================== + PURPOSE: + To simulate an INB to an empty io_addr. + INPUT: + OUTPUT: +============================================================================== +*/ +LOCAL void io_empty_inb IFN2(io_addr, io_address, half_word *, value) +{ +#ifdef PROD + UNUSED(io_address); + +#else + if (BIT_NOT_SET(ios_empty_in, (IU16)io_address)) + { + /* First time for this port */ + always_trace1 ("INB attempted on empty port 0x%x", io_address); + SET_THE_BIT(ios_empty_in, (IU16)io_address); + } +#endif /* PROD */ + *value = IO_EMPTY_PORT_BYTE_VALUE; +} + +/* +============================== io_empty_outb ================================== + PURPOSE: + To simulate an OUTB to an empty io_addr. + INPUT: + OUTPUT: +============================================================================== +*/ +LOCAL void io_empty_outb IFN2(io_addr, io_address, half_word, value) +{ + UNUSED(value); +#ifdef PROD + UNUSED(io_address); +#else + + if (BIT_NOT_SET(ios_empty_out, (IU16)io_address)) + { + /* First time for this port */ + always_trace1 ("OUTB attempted on empty port 0x%x", io_address); + SET_THE_BIT(ios_empty_out, (IU16)io_address); + } +#endif /* PROD */ + /* Do nothing! */ +} + +/* +=============================== generic_inw ================================== + PURPOSE: + To simulate an INW using the appropriate INB routine. + INPUT: + OUTPUT: +============================================================================== +*/ +LOCAL void generic_inw IFN2(io_addr, io_address, word *, value) +{ + reg temp; + + (*Ios_inb_function[Ios_in_adapter_table[io_address & (PC_IO_MEM_SIZE-1)]]) + (io_address, &temp.byte.low); + io_address++; + (*Ios_inb_function[Ios_in_adapter_table[io_address & (PC_IO_MEM_SIZE-1)]]) + (io_address, &temp.byte.high); +#ifdef LITTLEND + *((half_word *) value + 0) = temp.byte.low; + *((half_word *) value + 1) = temp.byte.high; +#endif /* LITTLEND */ + +#ifdef BIGEND + *((half_word *) value + 0) = temp.byte.high; + *((half_word *) value + 1) = temp.byte.low; +#endif /* BIGEND */ +} + +/* +=============================== generic_outw ================================== + PURPOSE: + To simulate an OUTW using the appropriate OUTB routine. + INPUT: + OUTPUT: + Notes: GLOBAL for JOKER. +============================================================================== +*/ +LOCAL void generic_outw IFN2(io_addr, io_address, word, value) +{ + reg temp; + + temp.X = value; + (*Ios_outb_function[Ios_out_adapter_table[io_address & (PC_IO_MEM_SIZE-1)]]) + (io_address, temp.byte.low); + ++io_address; + (*Ios_outb_function[Ios_out_adapter_table[io_address & (PC_IO_MEM_SIZE-1)]]) + (io_address, temp.byte.high); +} + +#ifdef SPC386 +/* +=============================== generic_ind ================================== + PURPOSE: + To simulate an IND using the appropriate INW routine. + INPUT: + OUTPUT: +============================================================================== +*/ +LOCAL void generic_ind IFN2(io_addr, io_address, double_word *, value) +{ + word low, high; + + (*Ios_inw_function[Ios_in_adapter_table[io_address & (PC_IO_MEM_SIZE-1)]]) (io_address, &low); + io_address += 2; + (*Ios_inw_function[Ios_in_adapter_table[io_address & (PC_IO_MEM_SIZE-1)]]) (io_address, &high); +#ifdef LITTLEND + *((word *) value + 0) = low; + *((word *) value + 1) = high; +#endif /* LITTLEND */ + +#ifdef BIGEND + *((word *) value + 0) = high; + *((word *) value + 1) = low; +#endif /* BIGEND */ +} +#endif /* SPC386 */ + +#ifdef SPC386 +/* +=============================== generic_outd ================================== + PURPOSE: + To simulate an OUTD using the appropriate OUTW routine. + INPUT: + OUTPUT: + Notes: GLOBAL for JOKER. +============================================================================== +*/ +LOCAL void generic_outd IFN2(io_addr, io_address, double_word, value) +{ + word low, high; + + low = value & 0xffff; + high = (value & 0xffff0000) >> 16; + + (*Ios_outw_function[Ios_out_adapter_table[io_address & (PC_IO_MEM_SIZE-1)]]) (io_address, low); + io_address += 2; + (*Ios_outw_function[Ios_out_adapter_table[io_address & (PC_IO_MEM_SIZE-1)]]) (io_address, high); +} +#endif /* SPC386 */ + +/* +=============================== generic_insb ================================== + PURPOSE: + To simulate an INSB using the appropriate INB routine. + INPUT: + OUTPUT: +============================================================================== +*/ + +/* MS NT monitor uses these string routines {in,out}s{b,w} string io support */ +#if defined(NTVDM) && defined(MONITOR) +#undef LOCAL +#define LOCAL +#endif /* NTVDM & MONITOR */ + +LOCAL void generic_insb IFN3(io_addr, io_address, half_word *, valarray, + word, count) +{ + IOS_FUNC_INB func = Ios_inb_function[Ios_in_adapter_table[io_address & (PC_IO_MEM_SIZE-1)]]; + + while (count--){ + (*func) (io_address, valarray++); + } +} + +/* +=============================== generic_outsb ================================= + PURPOSE: + To simulate an OUTSB using the appropriate OUTB routine. + INPUT: + OUTPUT: +============================================================================== +*/ +LOCAL void generic_outsb IFN3(io_addr, io_address, half_word *, valarray, word, count) +{ + IOS_FUNC_OUTB func = Ios_outb_function[Ios_out_adapter_table[io_address & (PC_IO_MEM_SIZE-1)]]; + + while (count--){ + (*func) (io_address, *valarray++); + } +} + +/* +=============================== generic_insw ================================== + PURPOSE: + To simulate an INSW using the appropriate INW routine. + INPUT: + OUTPUT: +============================================================================== +*/ +LOCAL void generic_insw IFN3(io_addr, io_address, word *, valarray, word, count) +{ + IOS_FUNC_INW func = Ios_inw_function[Ios_in_adapter_table[io_address & (PC_IO_MEM_SIZE-1)]]; + + while (count--){ + (*func) (io_address, valarray++); + } +} + +/* +=============================== generic_outsw ================================= + PURPOSE: + To simulate an OUTSW using the appropriate OUTW routine. + INPUT: + OUTPUT: +============================================================================== +*/ +LOCAL void generic_outsw IFN3(io_addr, io_address, word *, valarray, word, count) +{ + IOS_FUNC_OUTW func = Ios_outw_function[Ios_out_adapter_table[io_address & (PC_IO_MEM_SIZE-1)]]; + + while (count--){ + (*func) (io_address, *valarray++); + } +} + +#ifdef SPC386 +/* +=============================== generic_insd ================================== + PURPOSE: + To simulate an INSD using the appropriate IND routine. + INPUT: + OUTPUT: +============================================================================== +*/ +LOCAL VOID generic_insd IFN3(io_addr, io_address, double_word *, valarray, word, count) +{ + IOS_FUNC_IND func = Ios_ind_function[Ios_in_adapter_table[io_address & (PC_IO_MEM_SIZE-1)]]; + + while (count--){ + (*func) (io_address, valarray++); + } +} +#endif + +#ifdef SPC386 +/* +=============================== generic_outsd ================================= + PURPOSE: + To simulate an OUTSD using the appropriate OUTD routine. + INPUT: + OUTPUT: +============================================================================== +*/ +LOCAL VOID generic_outsd IFN3(io_addr, io_address, double_word *, valarray, word, count) +{ + IOS_FUNC_OUTD func = Ios_outd_function[Ios_out_adapter_table[io_address & (PC_IO_MEM_SIZE-1)]]; + + while (count--){ + (*func) (io_address, *valarray++); + } +} +#endif + +/* ensure any more LOCAL routines remain LOCAL */ +#if defined(NTVDM) && defined(MONITOR) +#undef LOCAL +#define LOCAL static +/* + * string byte handlers for monitor + */ +VOID insb IFN3(io_addr, io_address, half_word *, valarray, word, count) +{ + (*Ios_insb_function[getIOInAdapter(io_address)]) + (io_address, valarray, count); +} + +VOID outsb IFN3(io_addr, io_address, half_word *, valarray,word, count) +{ + (*Ios_outsb_function[getIOInAdapter(io_address)]) + (io_address, valarray, count); +} + +VOID insw IFN3(io_addr, io_address, word *, valarray, word, count) +{ + (*Ios_insw_function[getIOInAdapter(io_address)]) + (io_address, valarray, count); +} + +VOID outsw IFN3(io_addr, io_address, word *, valarray, word, count) +{ + (*Ios_outsw_function[getIOInAdapter(io_address)]) + (io_address, valarray, count); +} + +#endif /* NTVDM & MONITOR */ + +/* + * + * ============================================================================ + * Global Subroutines + * ============================================================================ + * + */ + +/*( +=================================== inb ====================================== + PURPOSE: + To perform an INB - i.e. call the appropriate SoftPC adapter's INB + IO routine. Note that this routine is not intended to be used by + the assembler CPU directly - it is intended that the assembler CPU + access the data tables above directly to discover which routine to call. + + This also needs to be true of 386 CPU, or you'll get into a very + nasty virtualisation loop. + INPUT: + OUTPUT: +============================================================================== +)*/ +GLOBAL void inb IFN2(io_addr, io_address, half_word *, value) +{ +#ifdef VIRTUALISATION + IU32 value32; +#endif /* VIRTUALISATION */ + +#ifdef EGA_DUMP + if (io_address >= MDA_PORT_START && io_address <= CGA_PORT_END) + dump_inb(io_address); +#endif + +#ifdef VIRTUALISATION + +#ifdef SYNCH_TIMERS + value32 = 0; +#endif /* SYNCH_TIMERS */ + + if (IOVirtualised(io_address, &value32, BIOS_INB_OFFSET, (sizeof(IU8)))) + { + *value = (IU8)value32; + } + else +#endif /* VIRTUALISATION */ + { + (*Ios_inb_function + [Ios_in_adapter_table[io_address & (PC_IO_MEM_SIZE-1)]]) + (io_address, value); + } +} + +/*( +================================== outb ====================================== + PURPOSE: + To perform an OUTB - i.e. call the appropriate SoftPC adapter's OUTB + IO routine. Note that this routine is not intended to be used by + the assembler CPU directly - it is intended that the assembler CPU + access the data tables above directly to discover which routine to call. + INPUT: + OUTPUT: +============================================================================== +)*/ +GLOBAL void outb IFN2(io_addr, io_address, half_word, value) +{ +#ifdef VIRTUALISATION + IU32 value32; +#endif /* VIRTUALISATION */ + +#ifdef EGA_DUMP + if (io_address >= MDA_PORT_START && io_address <= CGA_PORT_END) + dump_outb(io_address, value); +#endif + + sub_note_trace2( IOS_VERBOSE, "outb( %x, %x )", io_address, value ); + +#ifdef VIRTUALISATION + value32 = value; + + if (IOVirtualised(io_address, &value32, BIOS_OUTB_OFFSET, (sizeof(IU8)))) + return; + else +#endif /* VIRTUALISATION */ + { + (*Ios_outb_function[Ios_out_adapter_table[io_address & (PC_IO_MEM_SIZE-1)]]) + (io_address, value); + } +} + +/*( +=================================== inw ====================================== + PURPOSE: + To perform an INW - i.e. call the appropriate SoftPC adapter's INW + IO routine. Note that this routine is not intended to be used by + the assembler CPU directly - it is intended that the assembler CPU + access the data tables above directly to discover which routine to call. + INPUT: + OUTPUT: +============================================================================== +)*/ +GLOBAL void inw IFN2(io_addr, io_address, word *, value) +{ +#ifdef VIRTUALISATION + IU32 value32; +#endif /* VIRTUALISATION */ + +#ifdef EGA_DUMP + if (io_address >= MDA_PORT_START && io_address <= CGA_PORT_END) + dump_inw(io_address); +#endif + +#ifdef VIRTUALISATION + +#ifdef SYNCH_TIMERS + value32 = 0; +#endif /* SYNCH_TIMERS */ + + if (IOVirtualised(io_address, &value32, BIOS_INW_OFFSET, (sizeof(IU16)))) + { + *value = (IU16)value32; + } + else +#endif /* VIRTUALISATION */ + { + (*Ios_inw_function[Ios_in_adapter_table[io_address & (PC_IO_MEM_SIZE-1)]]) + (io_address, value); + } +} + +/*( +================================== outw ====================================== + PURPOSE: + To perform an OUTW - i.e. call the appropriate SoftPC adapter's OUTW + IO routine. Note that this routine is not intended to be used by + the assembler CPU directly - it is intended that the assembler CPU + access the data tables above directly to discover which routine to call. + INPUT: + OUTPUT: +============================================================================== +)*/ +GLOBAL void outw IFN2(io_addr, io_address, word, value) +{ +#ifdef VIRTUALISATION + IU32 value32; +#endif /* VIRTUALISATION */ + +#ifdef EGA_DUMP + if (io_address >= EGA_AC_INDEX_DATA && io_address <= EGA_IPSTAT1_REG) + dump_outw(io_address, value); +#endif + + sub_note_trace2( IOS_VERBOSE, "outw( %x, %x )", io_address, value ); + +#ifdef VIRTUALISATION + value32 = value; + + if (IOVirtualised(io_address, &value32, BIOS_OUTW_OFFSET, (sizeof(IU16)))) + return; + else +#endif /* VIRTUALISATION */ + { + (*Ios_outw_function[Ios_out_adapter_table[io_address & (PC_IO_MEM_SIZE-1)]]) + (io_address, value); + + } +} + +#ifdef SPC386 +/*( +=================================== ind ====================================== + PURPOSE: + To perform an IND - i.e. call the appropriate SoftPC adapter's IND + IO routine. Note that this routine is not intended to be used by + the assembler CPU directly - it is intended that the assembler CPU + access the data tables above directly to discover which routine to call. + INPUT: + OUTPUT: +============================================================================== +)*/ +GLOBAL void ind IFN2(io_addr, io_address, IU32 *, value) +{ + IU16 temp; + +#ifdef VIRTUALISATION + IU32 value32; + +#ifdef SYNCH_TIMERS + value32 = 0; +#endif /* SYNCH_TIMERS */ + + if (IOVirtualised(io_address, &value32, BIOS_IND_OFFSET, (sizeof(IU32)))) + { + *value = value32; + } + else +#endif /* VIRTUALISATION */ + { + inw(io_address,&temp); + *value = (IU32)temp; + io_address +=2; + inw(io_address,&temp); + *value |= ((IU32)temp << 16); + } +} + +/*( +================================== outd ====================================== + PURPOSE: + To perform an OUTD - i.e. call the appropriate SoftPC adapter's OUTD + IO routine. Note that this routine is not intended to be used by + the assembler CPU directly - it is intended that the assembler CPU + access the data tables above directly to discover which routine to call. + INPUT: + OUTPUT: +============================================================================== +)*/ +GLOBAL void outd IFN2(io_addr, io_address, IU32, value) +{ + sub_note_trace2( IOS_VERBOSE, "outd( %x, %x )", io_address, value ); + +#ifdef VIRTUALISATION + if (IOVirtualised(io_address, &value, BIOS_OUTD_OFFSET, (sizeof(IU32)))) + return; + else +#endif /* VIRTUALISATION */ + { + word temp; + + temp = value & 0xffff; + outw(io_address,temp); + io_address +=2; + temp = (value >> 16); + outw(io_address,temp); + } +} + +#endif /* SPC386 */ +/*( +============================== io_define_inb ================================= + PURPOSE: + To declare the address of the INB IO routine for the given adapter. + INPUT: + OUTPUT: +============================================================================== +)*/ +GLOBAL void +#ifdef ANSI +io_define_inb(half_word adapter, + void (*func) IPT2(io_addr, io_address, half_word *, value)) +#else +io_define_inb(adapter, func) +half_word adapter; +void (*func) (); +#endif /* ANSI */ +{ + Ios_inb_function[adapter] = FAST_FUNC_ADDR(func); + Ios_inw_function[adapter] = FAST_FUNC_ADDR(generic_inw); + Ios_insb_function[adapter] = generic_insb; + Ios_insw_function[adapter] = generic_insw; +#ifdef SPC386 + Ios_ind_function[adapter] = generic_ind; + Ios_insd_function[adapter] = generic_insd; +#endif /* SPC386 */ +} + +/*( +========================== io_define_in_routines ============================= + PURPOSE: + To declare the address of the input IO routine for the given adapter. + INPUT: + OUTPUT: +============================================================================== +)*/ +GLOBAL void io_define_in_routines IFN5(half_word, adapter, + IOS_FUNC_INB, inb_func, + IOS_FUNC_INW, inw_func, + IOS_FUNC_INSB, insb_func, + IOS_FUNC_INSW, insw_func) +{ + /* + * Preset defaultable entries to default value. + */ + Ios_inw_function[adapter] = FAST_FUNC_ADDR(generic_inw); + Ios_insb_function[adapter] = generic_insb; + Ios_insw_function[adapter] = generic_insw; +#ifdef SPC386 + Ios_ind_function[adapter] = generic_ind; + Ios_insd_function[adapter] = generic_insd; +#endif /* SPC386 */ + + /* + * Process args into table entries + */ + Ios_inb_function[adapter] = FAST_FUNC_ADDR(inb_func); + if (inw_func) Ios_inw_function[adapter] = FAST_FUNC_ADDR(inw_func); + if (insb_func) Ios_insb_function[adapter] = insb_func; + if (insw_func) Ios_insw_function[adapter] = insw_func; +} + +/*( +============================= io_define_outb ================================= + PURPOSE: + To declare the address of the OUTB IO routine for the given adapter. + INPUT: + OUTPUT: +============================================================================== +)*/ +GLOBAL void io_define_outb IFN2(half_word, adapter, IOS_FUNC_OUTB, func) +{ + Ios_outb_function[adapter] = FAST_FUNC_ADDR(func); + Ios_outw_function[adapter] = FAST_FUNC_ADDR(generic_outw); + Ios_outsb_function[adapter] = generic_outsb; + Ios_outsw_function[adapter] = generic_outsw; +#ifdef SPC386 + Ios_outd_function[adapter] = generic_outd; + Ios_outsd_function[adapter] = generic_outsd; +#endif /* SPC386 */ +} + +/*( +========================= io_define_out_routines ============================= + PURPOSE: + To declare the address of the output IO routine for the given adapter. + INPUT: + OUTPUT: +============================================================================== +)*/ + +GLOBAL VOID io_define_out_routines IFN5(half_word, adapter, + IOS_FUNC_OUTB, outb_func, + IOS_FUNC_OUTW, outw_func, + IOS_FUNC_OUTSB, outsb_func, + IOS_FUNC_OUTSW, outsw_func) +{ + /* + * Preset defaultable entries to default value. + */ + Ios_outw_function[adapter] = FAST_FUNC_ADDR(generic_outw); + Ios_outsb_function[adapter] = generic_outsb; + Ios_outsw_function[adapter] = generic_outsw; +#ifdef SPC386 + Ios_outd_function[adapter] = generic_outd; + Ios_outsd_function[adapter] = generic_outsd; +#endif /* SPC386 */ + + /* + * Process args into table entries + */ + Ios_outb_function[adapter] = FAST_FUNC_ADDR(outb_func); + if (outw_func) Ios_outw_function[adapter] = FAST_FUNC_ADDR(outw_func); + if (outsb_func) Ios_outsb_function[adapter] = outsb_func; + if (outsw_func) Ios_outsw_function[adapter] = outsw_func; +} + +#ifdef SPC386 +/*( +========================= io_define_outd_routine ============================= + PURPOSE: + To declare the address of the output IO routine for the given adapter. + INPUT: + OUTPUT: +============================================================================== +)*/ +GLOBAL VOID io_define_outd_routine IFN3(half_word, adapter, + IOS_FUNC_OUTD, outd_func, IOS_FUNC_OUTSD, outsd_func) +{ + /* + * Preset defaultable entries to default value. + */ + Ios_outb_function[adapter] = io_empty_outb; + Ios_outw_function[adapter] = generic_outw; + Ios_outd_function[adapter] = generic_outd; + Ios_outsb_function[adapter] = generic_outsb; + Ios_outsw_function[adapter] = generic_outsw; + Ios_outsd_function[adapter] = generic_outsd; + + /* + * Process args into table entries + */ + if (outd_func) Ios_outd_function[adapter] = outd_func; + if (outsd_func) Ios_outsd_function[adapter] = outsd_func; +} +#endif /* SPC386 */ + +#ifdef SPC386 +/*( +========================= io_define_ind_routine ============================= + PURPOSE: + To declare the address of the output IO routine for the given adapter. + INPUT: + OUTPUT: +============================================================================== +)*/ +GLOBAL VOID io_define_ind_routine IFN3(half_word, adapter, + IOS_FUNC_IND, ind_func, IOS_FUNC_INSD, insd_func) +{ + /* + * Preset defaultable entries to default value. + */ + Ios_inb_function[adapter] = io_empty_inb; + Ios_inw_function[adapter] = generic_inw; + Ios_ind_function[adapter] = generic_ind; + Ios_insb_function[adapter] = generic_insb; + Ios_insw_function[adapter] = generic_insw; + Ios_insd_function[adapter] = generic_insd; + + /* + * Process args into table entries + */ + if (ind_func) Ios_ind_function[adapter] = ind_func; + if (insd_func) Ios_insd_function[adapter] = insd_func; +} +#endif /* SPC386 */ + +/*( +============================= io_connect_port ================================ + PURPOSE: + To associate a SoftPC IO adapter with the given IO address. + INPUT: + OUTPUT: +============================================================================== +)*/ +#ifdef NTVDM +GLOBAL BOOL io_connect_port IFN3(io_addr, io_address, half_word, adapter, + half_word, mode) +{ + if (mode & IO_READ){ + Ios_in_adapter_table[io_address & (PC_IO_MEM_SIZE-1)] = adapter; + } + if (mode & IO_WRITE){ + Ios_out_adapter_table[io_address & (PC_IO_MEM_SIZE-1)] = adapter; + } + return TRUE; +} +#else +GLOBAL void io_connect_port IFN3(io_addr, io_address, half_word, adapter, + half_word, mode) +{ + if (mode & IO_READ){ + Ios_in_adapter_table[io_address & (PC_IO_MEM_SIZE-1)] = adapter; + } + if (mode & IO_WRITE){ + Ios_out_adapter_table[io_address & (PC_IO_MEM_SIZE-1)] = adapter; + } +} +#endif + + +/*( +=========================== io_disconnect_port =============================== + PURPOSE: + To associate the empty adapter with the given IO address. + INPUT: + OUTPUT: +============================================================================== +)*/ +#ifdef NTVDM +GLOBAL void io_disconnect_port IFN2(io_addr, io_address, half_word, adapter) +{ + if (adapter != Ios_in_adapter_table[io_address & (PC_IO_MEM_SIZE-1)] && + adapter != Ios_out_adapter_table[io_address & (PC_IO_MEM_SIZE-1)]) + { + return; + } + + Ios_in_adapter_table[io_address & (PC_IO_MEM_SIZE-1)] = EMPTY_ADAPTOR; + Ios_out_adapter_table[io_address & (PC_IO_MEM_SIZE-1)] = EMPTY_ADAPTOR; +} +#else +GLOBAL void io_disconnect_port IFN2(io_addr, io_address, half_word, adapter) +{ + UNUSED(adapter); + Ios_in_adapter_table[io_address] = EMPTY_ADAPTOR; + Ios_out_adapter_table[io_address] = EMPTY_ADAPTOR; +} +#endif /* NTVDM */ + + +/*( +=========================== get_inb_ptr ====================================== + PURPOSE: + To return address of inb routine for the given port + INPUT: + OUTPUT: +============================================================================== +)*/ +GLOBAL IOS_FUNC_INB *get_inb_ptr IFN1(io_addr, io_address) +{ + return(&Ios_inb_function[Ios_in_adapter_table[io_address & (PC_IO_MEM_SIZE-1)]]); +} + +/*( +=========================== get_outb_ptr ===================================== + PURPOSE: + To return address of outb routine for the given port + INPUT: + OUTPUT: +============================================================================== +)*/ +GLOBAL IOS_FUNC_OUTB *get_outb_ptr IFN1(io_addr, io_address) +{ + return(&Ios_outb_function[Ios_out_adapter_table[io_address & (PC_IO_MEM_SIZE-1)]]); +} + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * function will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_INIT.seg" +#endif + +/*( +================================ io_init =================================== + PURPOSE: + To initialise the SoftPC IO subsystem. + INPUT: + OUTPUT: +============================================================================== +)*/ +GLOBAL void io_init IFN0() +{ + IU32 i; /* on some ports, PC_IO_MEM_SIZE == 0x10000, so this + must be a type with more than 16 bits */ + + /* + * Set up all IO address ports with the "empty" adapter + */ + io_define_inb (EMPTY_ADAPTOR, io_empty_inb); + io_define_outb(EMPTY_ADAPTOR, io_empty_outb); + +#ifdef MAC68K + if (Ios_in_adapter_table == NULL) { /* First time around -- allocate */ + Ios_in_adapter_table = host_malloc(PC_IO_MEM_SIZE); + Ios_out_adapter_table = host_malloc(PC_IO_MEM_SIZE); + } +#endif /* MAC68K */ + +#ifndef PROD + if (host_getenv("EMPTY_IO_VERBOSE") != NULL) + { + /* User does want empty I/O messages, + * so we must allocate bitmaps with one bit for every + * possible port number. + */ + ios_empty_in = (IU32 *)host_malloc((64*1024)/8); + ios_empty_out = (IU32 *)host_malloc((64*1024)/8); + memset((char *)ios_empty_in, 0, (64*1024)/8); + memset((char *)ios_empty_out, 0, (64*1024)/8); + } +#endif /* PROD */ + + for (i = 0; i < PC_IO_MEM_SIZE; i++){ + Ios_in_adapter_table[i] = EMPTY_ADAPTOR; + Ios_out_adapter_table[i] = EMPTY_ADAPTOR; + } +} + + +#ifdef NTVDM +GLOBAL char GetExtIoInAdapter (io_addr ioaddr) +{ +#ifndef PROD + printf("GetExtIoInAdapter(%x) called\n",ioaddr); +#endif + return EMPTY_ADAPTOR; +} + +GLOBAL char GetExtIoOutAdapter (io_addr ioaddr) +{ +#ifndef PROD + printf("GetExtIoOutAdapter(%x) called\n",ioaddr); +#endif + return EMPTY_ADAPTOR; +} +#endif /* NTVDM */ diff --git a/private/mvdm/softpc.new/base/support/main.c b/private/mvdm/softpc.new/base/support/main.c new file mode 100644 index 000000000..e5344357d --- /dev/null +++ b/private/mvdm/softpc.new/base/support/main.c @@ -0,0 +1,339 @@ +#include "insignia.h" +#include "host_def.h" +/* + * SoftPC Revision 3.0 + * + * Title : Main program + * + * Description : Call initialisation functions then call simulate to + * do the work. + * + * Author : Rod Macgregor + * + * Notes : The flag -v tells SoftPC to work silently unless + * an error occurs. + * + */ + +/* + * static char SccsID[]="@(#)main.c 1.49 06/23/95 Copyright Insignia Solutions Ltd."; + */ + + +/* + * O/S includes + */ + +#include +#include +#include TypesH + +/* + * SoftPC includes + */ + +#include "xt.h" +#include "sas.h" +#include CpuH +#include "error.h" +#include "config.h" +#include "gvi.h" +#include "host.h" +#include "trace.h" +#ifdef SECURE +#include "debug.h" +#endif +#include "gmi.h" +#include "gfx_upd.h" +#include "cmos.h" +#include "gfi.h" +#include "timer.h" +#include "yoda.h" +//#include "host_env.h" + +#ifndef CPU_40_STYLE /* defined in CpuH */ +extern void host_start_cpu(); /* Start up the Intel emulation */ +#endif + +void init_virtual_drivers IPT0(); + +IMPORT void host_set_yoda_ints IPT0(); +IMPORT void host_applClose IPT0(); +IMPORT void setup_vga_globals IPT0(); +#ifdef ANSI +extern void host_applInit(int argc, char *argv[]); +#else +extern void host_applInit(); +#endif /* ANSI */ + +#ifdef REAL_VGA +extern int screen_init; +#endif + +/* Have global variables defined here to indicate what product to run as. */ + +#ifdef SOFTWINDOWS +GLOBAL IBOOL Running_SoftWindows = TRUE; +GLOBAL CHAR *SPC_Product_Name = "SoftWindows"; +#else +GLOBAL IBOOL Running_SoftWindows = FALSE; +GLOBAL CHAR *SPC_Product_Name = "SoftPC"; +#endif /* SOFTWINDOWS */ + +GLOBAL char **pargv; /* Pointer to argv */ +GLOBAL int *pargc; /* Pointer to argc */ + +#ifndef NTVDM +#ifndef ProcCommonCommLineArgs +extern VOID ProcCommonCommLineArgs IPT2(LONG, argc, CHAR, *argv[]); +#endif /* ProcCommonCommLineArgs */ +#endif /* NTVDM */ + +/* Does this host need to have a different entry point ? */ + +#if defined(NTVDM) || defined(host_main) +INT host_main IFN2(INT, argc, CHAR **, argv) +#else /* host_main */ +INT main IFN2(INT, argc, CHAR **, argv) +#endif /* host_main */ +{ + IMPORT ULONG setup_global_data_ptr(); + +#ifndef CPU_40_STYLE + IMPORT ULONG Gdp; +#endif /* CPU_40_STYLE */ + +#ifdef SECURE + char * sys_config_filename; + ErrData err_data; +#endif + +#ifdef SETUID_ROOT + + /* make sure the real and effective UIDs are OK */ + host_init_uid (); + +#endif /* SETUID_ROOT */ + +#if !defined(PROD) || defined(HUNTER) + + trace_init(); /* set up the trace file */ + +#endif /* !PROD || HUNTER */ + +/*********************************************************************** + * * + * Set up the global pointers to argc and argv for lower functions. * + * These must be saved as soon as possible as they are required for * + * displaying the error panel for the HP port. Giving a null pointer * + * as the address of argc crashed the X Toolkit. * + * * + ***********************************************************************/ + + pargc = &argc; + pargv = argv; + +#if !defined(NTVDM) && !defined(macintosh) && !defined(VMS) + setupEnv(argc,argv); /* set up Unix run-time environment */ +#endif /* NTVDM, macintosh, VMS */ + +#ifndef PROD + host_set_yoda_ints(); +#endif /* !PROD */ + +#ifdef SECURE + err_data.string_1 = err_data.string_2 = err_data.string_3 = ""; +#endif + +#ifndef NTVDM + ProcCommonCommLineArgs(argc,argv); +#endif /* NTVDM */ + host_applInit(argc,argv); /* recommended home is host/xxxx_reset.c */ + +#ifdef SECURE + /* Now that error panels are available, Validate SoftWindows Integrity. */ + sys_config_filename = host_expand_environment_vars(SYSTEM_CONFIG); + if (!host_validate_swin_integrity(sys_config_filename)) + { +#ifdef PROD + err_data.string_3 = sys_config_filename; + (VOID) host_error_ext(EG_SYS_INSECURE, ERR_QUIT, &err_data); + exit(1); +#else + always_trace1("Secure Mode ERROR:\"%s\" is insecure.", sys_config_filename); +#endif + } +#endif +#if defined(CPU_40_STYLE) && !defined(CCPU) + { + extern void parse_lc_options IPT2(int *,pargc, char ***,pargv); + + parse_lc_options(&argc,&argv); + } +#endif /* assembler 4.0 cpu */ + + verbose = FALSE; + +#ifndef PROD + io_verbose = FALSE; +#endif + + /* + * Pre-Config Base code initilisation. + * + * Setup the initial gfi funtion pointers before going into config + */ + gfi_init(); + + /* + * Initialise any Windows 3.x compliant DOS Drivers. + * We do it here as config (and who knows who else) believe they can + * access certain driver data at any time. Logically it ought to be done + * when the driver is loaded under DOS, however historically it used to + * be done as Static Data initialisation, so we mirror this old method + * as closely as possible. + * + * The mac doesn't use the base config system and so calls init_virtual_drivers() + * as part of it's host_applInit(). + */ + +#ifndef macintosh + init_virtual_drivers(); +#endif + +/* + * Find our configuration + *------------------------*/ + + config(); + +#if defined(PROFILE) && !defined(CPU_40_STYLE) +/* + * Stick this after config as Gdp must be set up. 4.0 calls ProfileInit from + * sas_init() to ensure everything included. + */ + ProfileInit(); +#endif /*PROFILE*/ + +#if defined(NTVDM) || defined(macintosh) +/* Read the cmos from file to emulate data not being + * lost between invocations of SoftPC + *-----------------------------------------------------*/ + + cmos_pickup(); +#endif /* defined(NTVDM) || defined(macintosh) */ + +#if !defined(PROD) || defined(HUNTER) + +/****************************************************************** + * * + * Bit of a liberty being taken here. * + * Hunter and noProd versions can set NPX and GFX adapter from * + * environment vars, this can cause the old cmos to disagree * + * with the new config structure. * + * This function call updates the cmos. * + * * + ******************************************************************/ + + cmos_equip_update(); + +#endif + +/* + * initialise the cpu + *----------------------*/ + + cpu_init(); + +#ifndef PROD + + if (host_getenv("YODA") != NULL) + { + force_yoda(); + } + +/* + * Look for environment variable TOFF, when set no timer interrupts + *------------------------------------------------------------------*/ + + if( host_getenv("TOFF") != NULL ) + axe_ticks( -1 ); /* lives in base:timer.c */ + +#endif /* PROD */ + +#ifdef GISP_SVGA + /* We have to go here to ensure that config doesn't undo any of the + lovely patching that we do to the ROMs */ + gispROMInit( ); +#endif /* GISP_SVGA */ + + /* + * Set up the VGA globals before host_init_screen() in + * case of graphics activity. + *-------------------------------------------------------*/ + +#ifndef A3CPU + (VOID) setup_global_data_ptr(); +#endif /* not A3CPU */ + +#ifndef GISP_SVGA + setup_vga_globals(); +#else /* GISP_SVGA */ + setupHwVGAGlobals( ); +#endif /* GISP_SVGA */ + +#ifdef REAL_VGA + if (screen_init == 0) + { +#endif /* REAL_VGA */ + + host_init_screen(); + +#ifdef REAL_VGA + } +#endif /* REAL_VGA */ + +#ifdef IPC + host_susp_q_init(); +#endif + +#ifdef NTVDM +/* + * If you've got Dos Emulation - flaunt it!! + * Initialise VDDs, Read in the Dos ntio.sys file and arrange for the cpu + * to start execution at it's initialisation entry point. + */ + InitialiseDosEmulation(argc, argv); +#endif /* NTVDM */ + +/* + * simulate the Intel 8088/iAPX286 cpu + *-------------------------------------*/ +/* + Start off the cpu emulation. This will either be software + emulation of protected mode 286/287 or possibly hardware + eg 486 on Sparc platform +*/ + + host_start_cpu(); + host_applClose(); /* recommended home is host/xxxx_reset.c */ + +/* + * We should never get here so return an error status. + */ + + return(-1); + +} + + +/**/ + + +GLOBAL void init_virtual_drivers IFN0() +{ +#ifdef HFX + hfx_driver_initialisation(); +#endif + mouse_driver_initialisation(); +} diff --git a/private/mvdm/softpc.new/base/support/makefile b/private/mvdm/softpc.new/base/support/makefile new file mode 100644 index 000000000..6ee4f43fa --- /dev/null +++ b/private/mvdm/softpc.new/base/support/makefile @@ -0,0 +1,6 @@ +# +# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source +# file to this component. This file merely indirects to the real make file +# that is shared by all the components of NT OS/2 +# +!INCLUDE $(NTMAKEENV)\makefile.def diff --git a/private/mvdm/softpc.new/base/support/sources b/private/mvdm/softpc.new/base/support/sources new file mode 100644 index 000000000..f38e7b1c0 --- /dev/null +++ b/private/mvdm/softpc.new/base/support/sources @@ -0,0 +1,63 @@ +!IF 0 + +Copyright (c) 1989 Microsoft Corporation + +Module Name: + + sources. + +Abstract: + + This file specifies the target component being built and the list of + sources files needed to build that component. Also specifies optional + compiler switches and libraries that are unique for the component being + built. + + +Author: + + Steve Wood (stevewo) 12-Apr-1990 + +NOTE: Commented description of this file is in \nt\bak\bin\sources.tpl + +!ENDIF + + +MAJORCOMP=spcbase +MINORCOMP=support + +TARGETNAME=support + +TARGETPATH=obj + + +NTPROFILEINPUT=yes + +# Pick one of the following and delete the others +TARGETTYPE=LIBRARY + + +TARGETLIBS= + +SOFTPC_TREE=$(BASEDIR)\private\mvdm\softpc.new + +INCLUDES=$(SOFTPC_TREE)\host\inc;$(SOFTPC_TREE)\base\inc;$(BASEDIR)\private\inc + +!IF $(ALPHA) +GPSIZE=0 +!ELSE +GPSIZE=0 +!ENDIF + + + +SOURCES= terminat.c \ + time_day.c \ + ios.c \ + main.c \ + get_env.c \ + xt.c + +!INCLUDE $(SOFTPC_TREE)\obj.vdm\CDEFINE.INC + +UMTYPE=console diff --git a/private/mvdm/softpc.new/base/support/terminat.c b/private/mvdm/softpc.new/base/support/terminat.c new file mode 100644 index 000000000..6896028a2 --- /dev/null +++ b/private/mvdm/softpc.new/base/support/terminat.c @@ -0,0 +1,143 @@ +#include "insignia.h" +#include "host_def.h" +/*[ + Name: terminate.c + Derived From: Base 2.0 + Author: Rod MacGregor + Created On: Unknown + Sccs ID: @(#)terminate.c 1.23 06/15/94 + Purpose: We are about to die, put the kernel back the way + that it was. + + (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved. + +]*/ + +#include +#include +#include TypesH + +#include "xt.h" +#include "error.h" +#include "config.h" +#include "host_lpt.h" +#include "rs232.h" +#include "host_com.h" +#include "timer.h" +#include "cmos.h" +#include "fdisk.h" +#include "debug.h" +#include "gvi.h" +#include CpuH +#ifdef NOVELL +#include "novell.h" +#endif +#ifdef GISP_SVGA +#include HostHwVgaH +#include "hwvga.h" +#endif /* GISP_SVGA */ +#ifdef LICENSING +#include "host_lic.h" +#endif +#include "emm.h" + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_INIT.seg" +#endif + +IMPORT VOID host_applClose IPT0(); +IMPORT VOID host_terminate IPT0(); + +void terminate() +{ + SAVED BOOL already_called_terminate = FALSE; + UTINY i; + + if (already_called_terminate) + { + assert0( NO, "Error: terminate called twice - exiting" ); + exit(0); + } + else + already_called_terminate = TRUE; + +#ifdef MSWDVR + WinTerm(); +#endif + +#ifdef SWIN_SNDBLST_NULL + sb_term(); +#endif /* SWIN_SNDBLST_NULL */ + +#ifdef GISP_SVGA + /* Get back to window if we are full screen */ + if( hostIsFullScreen( ) ) + disableFullScreenVideo( FALSE ); +#endif /* GISP_SVGA */ + + /* terminate COM and LPT devices */ +#ifdef PC_CONFIG + /* PC_CONFIG style host_lpt_close() and + host_com_close() calls should be added + in here */ +#else + for (i = 0 ; i < NUM_PARALLEL_PORTS; i++) + config_activate(C_LPT1_NAME + i, FALSE); + + for (i = 0 ; i < NUM_SERIAL_PORTS; i++) + config_activate(C_COM1_NAME + i, FALSE); +#endif + + /* Update the cmos.ram file */ + cmos_update(); + + host_fdisk_term(); + + gvi_term(); /* close down the video adaptor */ + +#ifndef NTVDM + host_timer_shutdown(); /* Stop the timer */ +#endif + +#ifdef LIM + host_deinitialise_EM(); /* free memory or file used by EM */ +#endif + + config_activate(C_FLOPPY_A_DEVICE, FALSE); +#ifdef FLOPPY_B + config_activate(C_FLOPPY_B_DEVICE, FALSE); +#endif /* FLOPPY_B */ +#ifdef SLAVEPC + config_activate(C_SLAVEPC_DEVICE, FALSE); +#endif /* SLAVEPC */ + + /* + * Do any cpu-specific termination bits. + */ +#ifdef CPU_30_STYLE + cpu_terminate(); +#endif + +#ifdef NOVELL + net_term(); /* Shutdown network */ +#endif + +#ifdef LICENSING + (*license_exit)(); /* Shutdown licensing system */ +#endif + /* + * Do any host-specific termination bits. + */ + host_applClose(); + host_terminate(); + + /* + * Seppuku. + */ + exit(0); +} diff --git a/private/mvdm/softpc.new/base/support/time_day.c b/private/mvdm/softpc.new/base/support/time_day.c new file mode 100644 index 000000000..66c6a29a1 --- /dev/null +++ b/private/mvdm/softpc.new/base/support/time_day.c @@ -0,0 +1,828 @@ +#include "windows.h" /* included for Sleep() */ + + + +#include "insignia.h" +#include "host_def.h" +/* + * SoftPC Revision 2.0 + * + * File : time_day.c + * + * Title : Time of day + * + * Sccs ID : @(#)time_day.c 1.27 4/20/94 + * + * Description : Get/Set time of day + * + * Author : Henry Nash + * + * Notes : The PC-XT version has an interrupt 18.203 times a second + * to keep the counter up to date. We interrupt at a similar + * rate, but because of occasional heavy graphics or disk + * operations we lose ticks. In an attempt to still keep + * good time, we correct the stored time whenever the host + * detects a timer event, using the host time facilities. + * + * Upon reset time_of_day_init() grabs the host system time & + * puts it into the BIOS data area variables. Subsequent + * time of day accesses are maintained using the host system + * time. This enables well behaved programs to keep good time + * even if ticks are missed. + * + * Mods: (r3.4) : Make use of the host time structures host_timeval, + * host_timezone, and host_tm, which are equivalent + * to the Unix BSD4.2 structures. + * + * Removed calls to cpu_sw_interrupt and replaced with + * host_simulate + */ + +#ifdef SCCSID +static char SccsID[]="@(#)time_day.c 1.27 4/20/94 Copyright Insignia Solutions Ltd."; +#endif + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_BIOS.seg" +#endif + + +/* + * O/S include files. + */ +#include +#include +#include TimeH +#include TypesH + +/* + * SoftPC include files + */ +#include "xt.h" +#include "sas.h" +#include "ios.h" +#include CpuH +#include "bios.h" +#include "fla.h" +#include "host.h" +#include "timeval.h" +#include "timer.h" +#include "error.h" + +#include "cmos.h" +#include "cmosbios.h" +#include "ica.h" + + +/* + * =========================================================================== + * Local static data and defines + * =========================================================================== + */ + + +#ifdef XTSFD +# define DAY_COUNT BIOS_VAR_START + 0xCE +#endif + + +#ifdef NTVDM + +BOOL UpDateInProgress(void); +#define UPDATE_IN_PROGRESS UpDateInProgress() +IMPORT VOID host_init_bda_timer(void); + +#else + +#define UPDATE_IN_PROGRESS ( cmos_read(CMOS_REG_A ) & 0x80 ) +static sys_addr user_timer_int_vector; +static IVT_ENTRY standard_user_timer_int_vector; +static IVT_ENTRY compatibility_user_timer_int_vector; +#endif + +#ifdef ANSI +LOCAL void get_host_timestamp(word *, word *, half_word *); +LOCAL void write_host_timestamp(int, int); +LOCAL void TimeToTicks(int, int, int, word *, word *); +LOCAL void get_host_time(int *, int *, int *); +#else +LOCAL void get_host_timestamp(); +LOCAL void write_host_timestamp(); +LOCAL void TimeToTicks(); +LOCAL void get_host_time(); +#endif /* ANSI */ + +#define TICKS_PER_HOUR 65543L +#define TICKS_PER_MIN 1092L +#define TICKS_PER_SEC 18L + +/* + * ============================================================================ + * External functions + * ============================================================================ + */ + +void time_of_day() +{ + /* + * BIOS function to return the number of PC interrupts since boot. + */ + + half_word mask; + word low, high; + half_word overflow, alarm; + + + /* + * Block the Alarm signal whilst we are looking at the clock timer + */ + +#ifdef BSD4_2 + host_block_timer(); +#endif + + switch (getAH()) { + case 0x00: /* Get time */ + +#ifdef NTVDM + sas_loadw(TIMER_LOW, &low); + setDX(low); + + sas_loadw(TIMER_HIGH, &high); + setCX(high); + + sas_load(TIMER_OVFL, &overflow); + setAL(overflow); + sas_store(TIMER_OVFL, 0); /* Always write zero after read */ + +#else /* ! NTVDM */ +#ifndef PROD + if (host_getenv("TIME_OF_DAY_FRIG") == NULL){ +#endif + /* + * First get the time from the host + */ + + get_host_timestamp(&low, &high, &overflow); + + /* + * Use it to return the time AND overwrite the BIOS data + */ + + setDX(low); + sas_storew(TIMER_LOW, low); + + setCX(high); + sas_storew(TIMER_HIGH, high); + + setAL(overflow); + sas_store(TIMER_OVFL, 0); /* Always write zero after read */ + +#ifndef PROD + }else{ + SAVED int first=1; + + if (first){ + first = 0; + printf ("FRIG ALERT!!!! - time of day frozen!\n"); + } + + setDX(1); + sas_storew(TIMER_LOW, 1); + + setCX(1); + sas_storew(TIMER_HIGH, 1); + + setAL(0); + sas_store(TIMER_OVFL, 0); /* Always write zero after read */ + } +#endif +#endif /* NTVDM */ + + break; + + case 0x01: /* Set time */ + /* + * Load the BIOS variables + */ + + sas_storew(TIMER_LOW, getDX()); + sas_storew(TIMER_HIGH, getCX()); + sas_store(TIMER_OVFL, 0); + +#ifndef NTVDM + /* + * Also the host timestamp + */ + + write_host_timestamp(getDX(), getCX()); +#endif + break; + case 2: /* read the real time clock */ + +#ifndef NTVDM +#ifndef PROD + if (host_getenv("TIME_OF_DAY_FRIG") == NULL){ +#endif +#endif + if( UPDATE_IN_PROGRESS ) + setCF(1); + else + { + setDH( cmos_read( CMOS_SECONDS ) ); + setDL( cmos_read( CMOS_REG_B ) & 1 ); /* DSE bit */ + setCL( cmos_read( CMOS_MINUTES ) ); + setCH( cmos_read( CMOS_HOURS ) ); + setCF(0); + } +#ifndef NTVDM +#ifndef PROD + }else{ + SAVED int first=1; + + if (first){ + first = 0; + printf ("FRIG ALERT!!!! - real time clock frozen!\n"); + } + + setDH( 1 ); + setDL( 0 ); /* DSE bit */ + setCL( 1 ); + setCH( 1 ); + setCF(0); + } +#endif +#endif + break; + + case 3: /* Set the real time clock */ + + if( UPDATE_IN_PROGRESS ) + { + /* initialise real time clock */ + cmos_write( CMOS_REG_A, 0x26 ); + cmos_write( CMOS_REG_B, 0x82 ); + cmos_read( CMOS_REG_C ); + cmos_read( CMOS_REG_D ); + } + cmos_write( CMOS_SECONDS, getDH() ); + cmos_write( CMOS_MINUTES, getCL() ); + cmos_write( CMOS_HOURS, getCH() ); + alarm = ( cmos_read( CMOS_REG_B ) & 0x62 ) | 2; + alarm |= (getDL() & 1); /* only use the DSE bit */ + cmos_write( CMOS_REG_B, alarm ); + setCF(0); + break; + + + case 4: /* read the date from the real time clock */ + +#ifndef NTVDM +#ifndef PROD + if (host_getenv("TIME_OF_DAY_FRIG") == NULL){ +#endif +#endif + if( UPDATE_IN_PROGRESS ) + setCF(1); + else + { + setDL( cmos_read( CMOS_DAY_MONTH ) ); + setDH( cmos_read( CMOS_MONTH ) ); + setCL( cmos_read( CMOS_YEAR ) ); + setCH( cmos_read( CMOS_CENTURY ) ); + setCF(0); + } +#ifndef NTVDM +#ifndef PROD + }else{ + SAVED int first=1; + + if (first){ + first = 0; + printf ("FRIG ALERT!!!! - date frozen!\n"); + } + + setDL( 1 ); + setDH( 4 ); + setCL( 91 ); + setCH( 19 ); + setCF(0); + } +#endif +#endif + break; + + case 5: /* Set the date into the real time clock */ + + if( UPDATE_IN_PROGRESS ) + { + /* initialise real time clock */ + cmos_write( CMOS_REG_A, 0x26 ); + cmos_write( CMOS_REG_B, 0x82 ); + cmos_read( CMOS_REG_C ); + cmos_read( CMOS_REG_D ); + } + cmos_write( CMOS_DAY_WEEK, 0 ); + cmos_write( CMOS_DAY_MONTH, getDL() ); + cmos_write( CMOS_MONTH, getDH() ); + cmos_write( CMOS_YEAR, getCL() ); + cmos_write( CMOS_CENTURY, getCH() ); + alarm = cmos_read( CMOS_REG_B ) & 0x7f; /* clear 'set bit' */ + cmos_write( CMOS_REG_B, alarm); + setCF(0); + break; + + case 6: /* set the alarm */ + + if( cmos_read(CMOS_REG_B) & 0x20 ) /* alarm already enabled? */ + { + setCF(1); +#ifdef BSD4_2 + host_release_timer(); +#endif + return; + } + if( UPDATE_IN_PROGRESS ) + { + /* initialise real time clock */ + cmos_write( CMOS_REG_A, 0x26 ); + cmos_write( CMOS_REG_B, 0x82 ); + cmos_read( CMOS_REG_C ); + cmos_read( CMOS_REG_D ); + } + cmos_write( CMOS_SEC_ALARM, getDH() ); + cmos_write( CMOS_MIN_ALARM, getCL() ); + cmos_write( CMOS_HR_ALARM, getCH() ); + inb( ICA1_PORT_1, &mask ); + mask &= 0xfe; /* enable alarm timer int. */ + outb( ICA1_PORT_1, mask ); + alarm = cmos_read( CMOS_REG_B ) & 0x7f; /* ensure set bit turned off */ + alarm |= 0x20; /* turn on alarm enable */ + cmos_write( CMOS_REG_B, alarm ); + break; + + case 7: + + alarm = cmos_read( CMOS_REG_B ); + alarm &= 0x57; /* turn off alarm enable */ + cmos_write( CMOS_REG_B, alarm ); + break; + + +#ifdef XTSFD + case 0x0A: + { + word count; + + sas_loadw(DAY_COUNT, &count); + setCX( count ); + break; + } + case 0x0B: + sas_storew(DAY_COUNT, getCX() ); + break; + default: + setCF( 1 ); +#else + default: + ; /* Do nothing */ +#endif + } + setAH( 0 ); + +#ifdef BSD4_2 + host_release_timer(); +#endif +} + + +void time_int() +{ + /* + * NT port does everything in 16 bit int08 handler + */ +#ifndef NTVDM + + /* + * The BIOS timer interrupt routine. + */ + word low, high; + half_word motor_count, motor_flags; + + /* + * Increment the low portion + */ + + sas_loadw(TIMER_LOW, &low); + sas_storew(TIMER_LOW, ++low); + + /* + 1.9.92 MG + We need to actually load the timer high value before doing the 24 hour + test below here. + */ + + sas_loadw(TIMER_HIGH, &high); + + if (low == 0) + { + /* + * Timer has wrapped so update the high count + */ + + sas_storew(TIMER_HIGH, ++high); + } + + /* + * Wrap at 24 hrs + */ + + if (high == 0x0018 && low == 0x00b0) + { + sas_storew(TIMER_LOW, 0x0000); + sas_storew(TIMER_HIGH, 0x0000); + sas_store(TIMER_OVFL, 0x01); + } + + /* + * Decrement motor count + */ + + sas_load(MOTOR_COUNT, &motor_count); + if(motor_count < 4) + motor_count = 0; + else + motor_count -= 4; + sas_store(MOTOR_COUNT, motor_count); + + if (motor_count == 0) + { + /* + * Turn off motor running bits + */ + + sas_load(MOTOR_STATUS,&motor_flags); + motor_flags &= 0xF0; + sas_store(MOTOR_STATUS,motor_flags); + + + /* + * Provided FLA is not busy, then actually turn the motor off. + */ + + if (!fla_busy) + outb(DISKETTE_DOR_REG, 0x0C); + } + + if ( getVM() || + ((standard_user_timer_int_vector.all != sas_dw_at(user_timer_int_vector)) && + (compatibility_user_timer_int_vector.all != sas_dw_at(user_timer_int_vector))) ) + /* + * There is a user time routine defined - so lets call it + */ + { + exec_sw_interrupt(USER_TIMER_INT_SEGMENT, + USER_TIMER_INT_OFFSET); + } +#endif /* NTVDM */ +} + +/* + * ============================================================================ + * Internal Functions + * ============================================================================ + */ + +/* + * NT's sense of time in the bios data area is always + * kept in sync with the real systems tic count + * Most of the compensation to readjust tics according + * to the time of day stuff is not needed + */ +#ifndef NTVDM +/* + * The routines get_host_timestamp() and write_host_timestamp() are used to + * override the BIOS record of time, since timer events are known to be lost. + * Internally the routines work in seconds and microseconds, using the "timeval" + * struct provided by 4.2BSD. Since System V does not provide this, we supply a + * version of the 4.2BSD gettimeofday() function locally, making use of the + * System V function ticks(). + */ + +/* + * Our own timestamp for calculating PC time + */ + +static struct host_timeval time_stamp; + +LOCAL void get_host_timestamp(low, high, overflow) +word *low, *high; +half_word *overflow; +{ + /* + * Provide the time in PC interrupts since startup, in the + * 32-bit value high:low. The parameter overflow is set to 1 + * if a 24-hour boundary has been passed since the last call. + */ + + struct host_timeval now, interval; + struct host_timezone junk; /* Not used */ + unsigned long ticks; /* Total ticks elapsed */ + long days; + SAVED long last_time = 0; + long hours, mins, secs; + + /* + * Obtain the current time (since host boot-up) + */ + + host_gettimeofday(&now, &junk); + + /* + * Calculate how long has passed since the time stamp + */ + + interval.tv_sec = now.tv_sec - time_stamp.tv_sec; + interval.tv_usec = now.tv_usec - time_stamp.tv_usec; + + /* + * Handle the "borrow" correction + */ + + if (interval.tv_sec > 0 && interval.tv_usec < 0) + { + interval.tv_usec += 1000000L; + interval.tv_sec -= 1; + }; + + /* + * TMM 8/1/92: + * ----------- + * + * If someone changes the date forwards by >= 24 hours then we should set + * the overflow flag and ensure that we don't return an interval greater + * than 24 hours. If the date has changed by >= 48 hours then we will have + * lost a day. So we put up a panel to tell the user. + * + * If some one has set the date backwards and the interval has gone + * negative then all we can do is put up an error panel informing + * the user and ensure that we don't set the interval to a negative + * value. + * + * Notes: + * + * 1. Setting the overflow flag causes DOS to add a day onto the current + * date. + * + * 2. Setting the interval to a value greater than 24 hours causes DOS + * to print a "Divide Overflow" error. + * + * 3. Setting the interval to a -ve value causes DOS to go into an + * infinite loop printing "Divide Overflow". + */ + + days = interval.tv_sec / (24 * 60 * 60); + + if (days >= 1) + { + /* + * Someone has set the clock forwards, or we have been frozen for a + * couple of days. Ensure that the interval is not more than 24 hours, + * adjust the time_stamp to take care of the lost days. + */ + + interval.tv_sec %= 24 * 60 * 60; + time_stamp.tv_sec += days * (24 * 60 * 60); + + if (days > 1) + { + host_error (EG_DATE_FWD, ERR_CONT | ERR_RESET, ""); + } + + *overflow = 1; + } + else if (interval.tv_sec < 0) + { + /* + * Somebody has set the clock backwards, all we can do is maintain + * the same time that we had before the clock went back. + */ + + time_stamp.tv_sec -= (last_time - now.tv_sec ); + interval.tv_sec = now.tv_sec - time_stamp.tv_sec; + + *overflow = 0; + + host_error (EG_DATE_BACK, ERR_CONT | ERR_RESET, ""); + } + else + *overflow = 0; + + /* + * Convert seconds to hours/minutes/seconds + */ + + hours = interval.tv_sec / (60L*60L); /* Hours */ + interval.tv_sec %= (60L*60L); + + mins = interval.tv_sec / 60L; /* Minutes */ + secs = interval.tv_sec % 60L; /* Seconds */ + + /* + * Now convert the interval into PC ticks + * One tick lasts 54925 microseconds. + */ + + + ticks = hours * TICKS_PER_HOUR + mins * TICKS_PER_MIN + + secs * TICKS_PER_SEC + interval.tv_usec/54925 ; + + /* + * Split the value into two 16-bit quantities and return + */ + + *low = ticks & 0xffff; + *high = ticks >> 16; +} + + +LOCAL void write_host_timestamp(low, high) +int low, high; +{ + /* + * Update our timestamp so that subsequent calls of get_host_timestamp + * return the correct value. A call of get_host_timestamp() made immediately + * after this call must return the values set here, so set the timestamp + * to be the current time less the value set here. + */ + + struct host_timeval now, interval; + struct host_timezone junk; /* Not used */ + long lowms; + + /* + * Get the current time. + */ + + host_gettimeofday(&now, &junk); + + + interval.tv_sec = high * 3599 + high/2; /* high ticks to seconds */ + + /* + * The multiply below can overflow, which has the interesting effect + * of making Softpc 1 hr 12 mins 40 secs (4300 secs, or 2^32 us) slow + * if booted in the last third of every hour. So compensate by + * letting the overflow occur and correcting interval by 4300 secs. + */ + + lowms = (IS32) (low & 0xffff) * 54925 + (low & 0xffff)/2; + if (low > 39098) + interval.tv_sec += 4300; + + interval.tv_sec += lowms / 1000000; + interval.tv_usec = lowms % 1000000; + + /* + * The timestamp is the current time less this interval + */ + + time_stamp.tv_sec = now.tv_sec - interval.tv_sec; + time_stamp.tv_usec = now.tv_usec - interval.tv_usec; + + /* + * Handle the "borrow" correction, including negative timestamps + */ + + if (time_stamp.tv_sec > 0 && time_stamp.tv_usec < 0) + { + time_stamp.tv_usec += 1000000L; + time_stamp.tv_sec -= 1; + } + else + if (time_stamp.tv_sec < 0 && time_stamp.tv_usec > 0) + { + time_stamp.tv_usec -= 1000000L; + time_stamp.tv_sec += 1; + } +} + + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_INIT.seg" +#endif + + +LOCAL void get_host_time( h, m, s ) +int *h, *m, *s; /* hours, minutes and secs */ +{ + struct host_tm *tp; + time_t SecsSince1970; + + SecsSince1970 = host_time(NULL); + tp = host_localtime(&SecsSince1970); + *h = tp->tm_hour; + *m = tp->tm_min; + *s = tp->tm_sec; +} + +/* +** Take a normal time in hours, minutes and seconds then +** transmutate it into PC ticks since the beginning of the day. +*/ +LOCAL void TimeToTicks( hour, minutes, sec, low, hi ) +int hour, minutes, sec; /* inputs */ +word *low, *hi; /* outputs */ +{ + unsigned long ticks; /* Total ticks elapsed */ + + /* + * Calculate ticks to date + */ + + + ticks = hour * TICKS_PER_HOUR + minutes * TICKS_PER_MIN + + sec * TICKS_PER_SEC; + + /* + * Split the value into two 16-bit quantities and return + */ + + *low = ticks & 0xffff; + *hi = ticks >> 16; +} + +#endif /* ifndef NTVDM */ + + +void time_of_day_init() +{ +#ifndef NTVDM + int hour, minutes, sec; /* Current host time */ + word low, hi; /* Host time in PC ticks */ + + /* + * Initialise the clock timer. + */ + + get_host_time( &hour, &minutes, &sec ); /* get the time from the host */ + + TimeToTicks( hour, minutes, sec, &low, &hi ); /* convert to PC time */ + + sas_storew(TIMER_LOW, low ); + sas_storew(TIMER_HIGH, hi ); + sas_store(TIMER_OVFL,0x01); + + /* + * Initialise the host time stamp + */ + + write_host_timestamp( low, hi ); + + /* + * Build the standard IVT entry for the user timer interrupt(s) + */ + + compatibility_user_timer_int_vector.all = ((double_word)ADDR_COMPATIBILITY_SEGMENT << 16) + ADDR_COMPATIBILITY_OFFSET; + standard_user_timer_int_vector.all = ((double_word)DUMMY_INT_SEGMENT << 16) + DUMMY_INT_OFFSET; + + user_timer_int_vector = BIOS_USER_TIMER_INT * 4; + +#endif /* NTVDM */ +} + + + +#ifdef NTVDM + +/* + * NTVDM: the rtc is setup so that the UIP bit is set on a cmos + * port read if the cmos ports haven't been touched for at least + * 1 second. The IBM pc bios routine for accessing the clock + * polls RegA for UIP bit in a tight loop 600h times before + * failing the call. This means that MOST of the time the int1ah + * rtc fns almost never fail! To mimic this behaviour we poll + * the port until success, since we know that our rtc will clear + * UIP bit very quickly. + */ +BOOL UpDateInProgress(void) +{ + + while (cmos_read(CMOS_REG_A) & 0x80) { + Sleep(0); // give other threads a chance to work + } + + return FALSE; + +} +#endif diff --git a/private/mvdm/softpc.new/base/support/xt.c b/private/mvdm/softpc.new/base/support/xt.c new file mode 100644 index 000000000..1064d9725 --- /dev/null +++ b/private/mvdm/softpc.new/base/support/xt.c @@ -0,0 +1,652 @@ +#include "insignia.h" +#include "host_def.h" +/* + * SoftPC Revision 3.0 + * + * Title : Global variable definitions + * + * Description : Contains definitions for registers and general + * variables required by all modules. + * + * Author : Henry Nash + * + * Notes : None + * + */ + +/* + * static char SccsID[]="@(#)xt.c 1.22 01/23/95 Copyright Insignia Solutions Ltd."; + */ + + +/* + * O/S include files. + */ +#include +#include TypesH + +/* + * SoftPC include files + */ +#include "xt.h" +#include CpuH +#include "sas.h" + +/* + * ============================================================================ + * Global data + * ============================================================================ + */ + +/* + specific CPU variables. + */ +word cpu_interrupt_map; /* Bit map of ints outstanding */ + +half_word cpu_int_translate[16]; /* this will go very soon! */ +/* + * + * The current usage is: + * + * 0 - Hardware interrupt + * 1-7 - Not Used + * 8 - Software Int - set by cpu_sw_interrupt() - REMOVED! + * 9 - Trap + * 10 - Reset IP after a POP/MOV CS. + * 11 - Trap flag changed - this has delay. + * 12-15 - Not Used + */ + +word cpu_int_delay; /* Delay before pending interrupt */ + +int trap_delay_count; + +/* + * The lock flag prevents the Interrupt Controller Adapter from being + * called from a signal handler while it is already active in the mainline. + */ + +half_word ica_lock; + +/* + * The actual CCPU registers + */ + +#if defined(CCPU) && !defined(CPU_30_STYLE) +#ifndef MAC_LIKE +reg A; /* Accumulator */ +reg B; /* Base */ +reg C; /* Count */ +reg D; /* Data */ +reg BP; /* Base pointer */ +reg SI; /* Source Index */ +reg DI; /* Destination Index */ +#endif /* MAC_LIKE */ +reg SP; /* Stack Pointer */ + +reg IP; /* Instruction Pointer */ + +reg CS; /* Code Segment */ +reg DS; /* Data Segment */ +reg SS; /* Stack Segment */ +reg ES; /* Extra Segment */ + +/* Code Segment Register */ +half_word CS_AR; /* Access Rights Byte */ +sys_addr CS_base; /* Base Address */ +word CS_limit; /* Segment 'size' */ +int CPL; /* Current Privilege Level */ + +/* Data Segment Register */ +half_word DS_AR; /* Access Rights Byte */ +sys_addr DS_base; /* Base Address */ +word DS_limit; /* Segment 'size' */ + +/* Stack Segment Register */ +half_word SS_AR; /* Access Rights Byte */ +sys_addr SS_base; /* Base Address */ +word SS_limit; /* Segment 'size' */ + +/* Extra Segment Register */ +half_word ES_AR; /* Access Rights Byte */ +sys_addr ES_base; /* Base Address */ +word ES_limit; /* Segment 'size' */ + +/* Global Descriptor Table Register */ +sys_addr GDTR_base; /* Base Address */ +word GDTR_limit; /* Segment 'size' */ + +/* Interrupt Descriptor Table Register */ +sys_addr IDTR_base; /* Base Address */ +word IDTR_limit; /* Segment 'size' */ + +/* Local Descriptor Table Register */ +reg LDTR; /* Selector */ +sys_addr LDTR_base; /* Base Address */ +word LDTR_limit; /* Segment 'size' */ + +/* Task Register */ +reg TR; /* Selector */ +sys_addr TR_base; /* Base Address */ +word TR_limit; /* Segment 'size' */ + +mreg MSW; /* Machine Status Word */ + +int STATUS_CF; +int STATUS_SF; +int STATUS_ZF; +int STATUS_AF; +int STATUS_OF; +int STATUS_PF; +int STATUS_TF; +int STATUS_IF; +int STATUS_DF; +int STATUS_NT; +int STATUS_IOPL; +#endif /* defined(CCPU) && !defined(CPU_30_STYLE) */ + +/* + * Global Flags and variables + */ + +int verbose; /* TRUE => trace instructions */ + +/* + * Misc. Prot Mode support routines which are independant of CPU type + * --------------------------------- + */ +#ifdef CPU_30_STYLE +#ifndef GISP_CPU /* GISP has its own versions of these internal to the CPU */ + +#define GET_SELECTOR_INDEX_TIMES8(x) ((x) & 0xfff8) +#define GET_SELECTOR_TI(x) (((x) & 0x0004) >> 2) + +#if defined(CPU_40_STYLE) +#if defined(PROD) && !defined(CCPU) +#undef effective_addr +GLOBAL LIN_ADDR effective_addr IFN2(IU16, seg, IU32, off) +{ + return (*(Cpu.EffectiveAddr))(seg, off); +} +#endif /* PROD & !CCPU */ +#else /* !CPU_40_STYLE */ +#if !(defined(NTVDM) && defined(MONITOR)) /* MS NT monitor has own effective_addr fn */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Calculate effective address. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +GLOBAL LIN_ADDR effective_addr IFN2(IU16, seg, IU32, off) +{ + LIN_ADDR descr_addr; + DESCR entry; + + if ((!getPE()) || getVM()) { + return ((LIN_ADDR)seg << 4) + off; + } else { +#if defined(SWIN_CPU_OPTS) || defined(CPU_40_STYLE) + LIN_ADDR base; + + if (Cpu_find_dcache_entry( seg, &base )) + { + /* Cache Hit!! */ + return base + off; + } +#endif /* SWIN_CPU_OPTS or CPU_40_STYLE*/ + + if ( selector_outside_table(seg, &descr_addr) == 1 ) { + + /* + * This is probably not a major disaster, just a result + * of the fact that after protected mode is invoked it + * will take say 5-10 instructions for an application + * to update all the segment registers. We just + * maintain real mode semantics while this error occurs. + */ + + return ((LIN_ADDR)seg << 4) + off; + } + else + { + read_descriptor(descr_addr, &entry); + return entry.base + off; + } + } +} + +#endif /* !(NTVDM & MONITOR) */ + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Read a decriptor table entry from memory. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +#endif /* !CPU_40_STYLE */ + +GLOBAL void read_descriptor IFN2(LIN_ADDR, addr, DESCR *, descr) +{ + IU32 first_dword, second_dword; + IU32 limit; + + /* + * The format of a 286 descriptor is:- + * + * =========================== + * +1 | LIMIT 15-0 | +0 + * =========================== + * +3 | BASE 15-0 | +2 + * =========================== + * +5 | AR | BASE 23-16 | +4 + * =========================== + * +7 | RESERVED | +6 + * =========================== + */ + /* + * The format of a 386 descriptor is:- + * + * ============================= AR = Access Rights. + * +1 | LIMIT 15-0 | +0 AVL = Available. + * ============================= D = Default Operand + * +3 | BASE 15-0 | +2 Size, = 0 16-bit + * ============================= = 1 32-bit. + * +5 | AR | BASE 23-16 | +4 G = Granularity, + * ============================= = 0 byte limit + * | | | | |A|LIMIT| = 1 page limit. + * +7 | BASE 31-24 |G|D|0|V|19-16| +6 + * | | | | |L| | + * ============================= + * + */ + + /* read in decriptor with minimum interaction with memory */ +#if defined(NTVDM) && defined(CPU_40_STYLE) + /* On NT, this routine can be called from non-CPU threads, so we don't */ + /* want to use SAS at all. Instead, we rely on NtGetPtrToLinAddrByte, */ + /* which is provided by the CPU and is safe for multi-threading. We are*/ + /* also relying on the fact the NT is always little-endian. */ + { + IU32 *desc_addr = (IU32 *) NtGetPtrToLinAddrByte(addr); + + first_dword = *desc_addr; + second_dword = *(desc_addr + 1); + } +#else + first_dword = sas_dw_at(addr); + second_dword = sas_dw_at(addr+4); +#endif + + /* load attributes and access rights */ + descr->AR = (second_dword >> 8) & 0xff; + + /* unpack the base */ + descr->base = (first_dword >> 16) | +#ifdef SPC386 + (second_dword & 0xff000000) | +#endif + (second_dword << 16 & 0xff0000 ); + + /* unpack the limit */ +#ifndef SPC386 + descr->limit = first_dword & 0xffff; +#else + limit = (first_dword & 0xffff) | (second_dword & 0x000f0000); + + if ( second_dword & 0x00800000 ) /* check bit 23 */ + { + /* Granularity Bit Set. Limit is expressed in pages + (4k bytes), convert to byte limit */ + limit = limit << 12 | 0xfff; + } + descr->limit = limit; +#endif /* ifndef SPC386 else */ + +} + +#if !(defined(NTVDM) && defined(MONITOR)) /* MS NT monitor has own selector_outside_table fn */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Check if selector outside bounds of GDT or LDT */ +/* Return 1 for outside table, 0 for inside table. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +GLOBAL boolean selector_outside_table IFN2(IU16, selector, LIN_ADDR *, descr_addr) +{ + /* selector (I) selector to be checked */ + /* descr_addr (O) address of related descriptor */ + + LIN_ADDR offset; + + offset = GET_SELECTOR_INDEX_TIMES8(selector); + + /* choose a table */ + if ( GET_SELECTOR_TI(selector) == 0 ) + { + /* GDT - trap NULL selector or outside table */ + if ( offset == 0 || offset + 7 > getGDT_LIMIT() ) + return 1; + *descr_addr = getGDT_BASE() + offset; + } + else + { + /* LDT - trap invalid LDT or outside table */ + if ( getLDT_SELECTOR() == 0 || offset + 7 > getLDT_LIMIT() ) + return 1; + *descr_addr = getLDT_BASE() + offset; + } + + return 0; +} + +#endif /* !(NTVDM & MONITOR) */ + +#endif /* !GISP_CPU */ +#endif /* CPU_30_STYLE */ + + +/* + * The following is a table lookup for finding parity of a byte + */ + +#if !defined(MAC_LIKE) && !defined(CPU_30_STYLE) + +half_word pf_table[] = { + 1, /* 00 */ + 0, /* 01 */ + 0, /* 02 */ + 1, /* 03 */ + 0, /* 04 */ + 1, /* 05 */ + 1, /* 06 */ + 0, /* 07 */ + 0, /* 08 */ + 1, /* 09 */ + 1, /* 0a */ + 0, /* 0b */ + 1, /* 0c */ + 0, /* 0d */ + 0, /* 0e */ + 1, /* 0f */ + 0, /* 10 */ + 1, /* 11 */ + 1, /* 12 */ + 0, /* 13 */ + 1, /* 14 */ + 0, /* 15 */ + 0, /* 16 */ + 1, /* 17 */ + 1, /* 18 */ + 0, /* 19 */ + 0, /* 1a */ + 1, /* 1b */ + 0, /* 1c */ + 1, /* 1d */ + 1, /* 1e */ + 0, /* 1f */ + 0, /* 20 */ + 1, /* 21 */ + 1, /* 22 */ + 0, /* 23 */ + 1, /* 24 */ + 0, /* 25 */ + 0, /* 26 */ + 1, /* 27 */ + 1, /* 28 */ + 0, /* 29 */ + 0, /* 2a */ + 1, /* 2b */ + 0, /* 2c */ + 1, /* 2d */ + 1, /* 2e */ + 0, /* 2f */ + 1, /* 30 */ + 0, /* 31 */ + 0, /* 32 */ + 1, /* 33 */ + 0, /* 34 */ + 1, /* 35 */ + 1, /* 36 */ + 0, /* 37 */ + 0, /* 38 */ + 1, /* 39 */ + 1, /* 3a */ + 0, /* 3b */ + 1, /* 3c */ + 0, /* 3d */ + 0, /* 3e */ + 1, /* 3f */ + 0, /* 40 */ + 1, /* 41 */ + 1, /* 42 */ + 0, /* 43 */ + 1, /* 44 */ + 0, /* 45 */ + 0, /* 46 */ + 1, /* 47 */ + 1, /* 48 */ + 0, /* 49 */ + 0, /* 4a */ + 1, /* 4b */ + 0, /* 4c */ + 1, /* 4d */ + 1, /* 4e */ + 0, /* 4f */ + 1, /* 50 */ + 0, /* 51 */ + 0, /* 52 */ + 1, /* 53 */ + 0, /* 54 */ + 1, /* 55 */ + 1, /* 56 */ + 0, /* 57 */ + 0, /* 58 */ + 1, /* 59 */ + 1, /* 5a */ + 0, /* 5b */ + 1, /* 5c */ + 0, /* 5d */ + 0, /* 5e */ + 1, /* 5f */ + 1, /* 60 */ + 0, /* 61 */ + 0, /* 62 */ + 1, /* 63 */ + 0, /* 64 */ + 1, /* 65 */ + 1, /* 66 */ + 0, /* 67 */ + 0, /* 68 */ + 1, /* 69 */ + 1, /* 6a */ + 0, /* 6b */ + 1, /* 6c */ + 0, /* 6d */ + 0, /* 6e */ + 1, /* 6f */ + 0, /* 70 */ + 1, /* 71 */ + 1, /* 72 */ + 0, /* 73 */ + 1, /* 74 */ + 0, /* 75 */ + 0, /* 76 */ + 1, /* 77 */ + 1, /* 78 */ + 0, /* 79 */ + 0, /* 7a */ + 1, /* 7b */ + 0, /* 7c */ + 1, /* 7d */ + 1, /* 7e */ + 0, /* 7f */ + 0, /* 80 */ + 1, /* 81 */ + 1, /* 82 */ + 0, /* 83 */ + 1, /* 84 */ + 0, /* 85 */ + 0, /* 86 */ + 1, /* 87 */ + 1, /* 88 */ + 0, /* 89 */ + 0, /* 8a */ + 1, /* 8b */ + 0, /* 8c */ + 1, /* 8d */ + 1, /* 8e */ + 0, /* 8f */ + 1, /* 90 */ + 0, /* 91 */ + 0, /* 92 */ + 1, /* 93 */ + 0, /* 94 */ + 1, /* 95 */ + 1, /* 96 */ + 0, /* 97 */ + 0, /* 98 */ + 1, /* 99 */ + 1, /* 9a */ + 0, /* 9b */ + 1, /* 9c */ + 0, /* 9d */ + 0, /* 9e */ + 1, /* 9f */ + 1, /* a0 */ + 0, /* a1 */ + 0, /* a2 */ + 1, /* a3 */ + 0, /* a4 */ + 1, /* a5 */ + 1, /* a6 */ + 0, /* a7 */ + 0, /* a8 */ + 1, /* a9 */ + 1, /* aa */ + 0, /* ab */ + 1, /* ac */ + 0, /* ad */ + 0, /* ae */ + 1, /* af */ + 0, /* b0 */ + 1, /* b1 */ + 1, /* b2 */ + 0, /* b3 */ + 1, /* b4 */ + 0, /* b5 */ + 0, /* b6 */ + 1, /* b7 */ + 1, /* b8 */ + 0, /* b9 */ + 0, /* ba */ + 1, /* bb */ + 0, /* bc */ + 1, /* bd */ + 1, /* be */ + 0, /* bf */ + 1, /* c0 */ + 0, /* c1 */ + 0, /* c2 */ + 1, /* c3 */ + 0, /* c4 */ + 1, /* c5 */ + 1, /* c6 */ + 0, /* c7 */ + 0, /* c8 */ + 1, /* c9 */ + 1, /* ca */ + 0, /* cb */ + 1, /* cc */ + 0, /* cd */ + 0, /* ce */ + 1, /* cf */ + 0, /* d0 */ + 1, /* d1 */ + 1, /* d2 */ + 0, /* d3 */ + 1, /* d4 */ + 0, /* d5 */ + 0, /* d6 */ + 1, /* d7 */ + 1, /* d8 */ + 0, /* d9 */ + 0, /* da */ + 1, /* db */ + 0, /* dc */ + 1, /* dd */ + 1, /* de */ + 0, /* df */ + 0, /* e0 */ + 1, /* e1 */ + 1, /* e2 */ + 0, /* e3 */ + 1, /* e4 */ + 0, /* e5 */ + 0, /* e6 */ + 1, /* e7 */ + 1, /* e8 */ + 0, /* e9 */ + 0, /* ea */ + 1, /* eb */ + 0, /* ec */ + 1, /* ed */ + 1, /* ee */ + 0, /* ef */ + 1, /* f0 */ + 0, /* f1 */ + 0, /* f2 */ + 1, /* f3 */ + 0, /* f4 */ + 1, /* f5 */ + 1, /* f6 */ + 0, /* f7 */ + 0, /* f8 */ + 1, /* f9 */ + 1, /* fa */ + 0, /* fb */ + 1, /* fc */ + 0, /* fd */ + 0, /* fe */ + 1 /* ff */ +}; +#endif /* !defined(MAC_LIKE) && !defined(CPU_30_STYLE) */ + + +/*( + *========================== CsIsBig =================================== + * CsIsBig + * + * Purpose + * This function returns true if the indicated code segment is a 32 bit + * one, and false if it isn't. + * + * Input + * csVal The selector to check + * + * Outputs + * None. + * + * Description + * Look at the descriptor. +)*/ + +GLOBAL IBOOL +CsIsBig IFN1(IU16, csVal) +{ +#ifdef SPC386 + LIN_ADDR base, offset; /* Of the descriptor to use */ + + if(getVM() || !getPE()) { + return(FALSE); /* no 32 bit CS in V86 or real modes */ + } else { + offset = csVal & (~7); /* remove the RPL and TI gives offset */ + if (csVal & 4) { /* check TI bit */ + base = getLDT_BASE(); + } else { + base = getGDT_BASE(); + } + + /* + * Return true if the big bit in the descriptor is set. + */ + + return(sas_hw_at(base + offset + 6) & 0x40); + } +#else /* SPC386 */ + return (FALSE); +#endif /* SPC386 */ +} diff --git a/private/mvdm/softpc.new/base/system/at_dma.c b/private/mvdm/softpc.new/base/system/at_dma.c new file mode 100644 index 000000000..c0de2dd4f --- /dev/null +++ b/private/mvdm/softpc.new/base/system/at_dma.c @@ -0,0 +1,925 @@ +#include "insignia.h" +#include "host_def.h" +/* + * SoftPC-AT Revision 3.0 + * + * Title : IBM PC-AT DMA Adaptor Functions + * + * Description : This module contains functions that can be used to + * access the DMA Adaptor emulation + * + * Author : Ross Beresford + * + * Notes : The external interface to these functions is defined + * in the associated header file + * + */ + +/* + * static char SccsID[]="@(#)at_dma.c 1.15 12/17/93 Copyright Insignia Solutions Ltd."; + */ + + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "AT_STUFF.seg" +#endif + +/* + * System include files + */ +#include +#include StringH +#include TypesH + +/* + * SoftPC include files + */ +#include "xt.h" +#include "sas.h" +#include "ios.h" +#include "gmi.h" +#include CpuH +#include "trace.h" +#include "dma.h" +#include "debug.h" + +/* + * ============================================================================ + * Local static data and defines + * ============================================================================ + */ + +/* the DMA adaptor state */ +static DMA_ADAPT adaptor = { 0 }; + +/* local function to do the actual transfer of data */ +LOCAL void do_transfer IPT6(int, type, int, decrement, + sys_addr, dma_addr, char *, hw_buffer, unsigned long, length, + unsigned long, size); + +LOCAL void bwd_dest_copy_to_M IPT3(host_addr, s, sys_addr, d, sys_addr, l); + +LOCAL void bwd_dest_copy_from_M IPT3(sys_addr, s, host_addr, d, + sys_addr, l); + +#ifdef LIM + static int lim_active = 0; +#endif /* LIM */ + + +/* + * ============================================================================ + * External functions + * ============================================================================ + */ + +#ifdef LIM +/* +** Called from do_transfer() and from init_struc.c in delta +** for the 800 port. +** lim_active is a static int +*/ +GLOBAL int get_lim_setup IFN0() +{ + return( lim_active ); +} +#endif /* LIM */ + +#ifdef LIM +/* +** called from emm_funcs.c +*/ +GLOBAL void dma_lim_setup IFN0() +{ + lim_active = 1; +} +#endif /* LIM */ + +GLOBAL void dma_post IFN0() +{ + unsigned int chan, cntrl; + + /* + * Reset the DMA Adaptor + */ + + for (cntrl = 0; cntrl < DMA_ADAPTOR_CONTROLLERS; cntrl++) + { + adaptor.controller[cntrl].command.all = 0; + adaptor.controller[cntrl].status.all = 0; + adaptor.controller[cntrl].request = 0; + adaptor.controller[cntrl].temporary = 0; + adaptor.controller[cntrl].mask = ~0; + + adaptor.controller[cntrl].first_last = 0; + } + + /* + * Set the DMA Adaptor channel modes + */ + + for (cntrl = 0; cntrl < DMA_ADAPTOR_CONTROLLERS; cntrl++) + { + for (chan = 0; chan < DMA_CONTROLLER_CHANNELS; chan++) + { + adaptor.controller[cntrl].mode[chan].all = 0; + /* put the channels into their correct mode */ + if (dma_logical_channel(cntrl, chan) == DMA_CASCADE_CHANNEL) + adaptor.controller[cntrl].mode[chan].bits.mode = DMA_CASCADE_MODE; + else + adaptor.controller[cntrl].mode[chan].bits.mode = DMA_SINGLE_MODE; + } + } +} + +GLOBAL void dma_inb IFN2(io_addr, port, half_word *, value) +{ + register DMA_CNTRL *dcp; + + note_trace0_no_nl(DMA_VERBOSE, "dma_inb() "); + + /* + * Get a pointer to the controller and mask out the port's + * redundant bits. + * The first check is commented out as DMA_PORT_START is zero, + * so the check on an unsigned variable is unnecessary. + */ + if (/*port >= DMA_PORT_START &&*/ port <= DMA_PORT_END) + { + dcp = &adaptor.controller[DMA_CONTROLLER]; + port &= ~DMA_REDUNDANT_BITS; + } + else + { + dcp = &adaptor.controller[DMA1_CONTROLLER]; + port &= ~DMA1_REDUNDANT_BITS; + } + + /* + * When the current address and word count are read, the + * first/last flip-flop for the controller is used to + * determine which byte is accessed, and is then toggled. + */ + switch (port) + { + /* read channel current address on controller 0 */ + case DMA_CH0_ADDRESS: + case DMA_CH1_ADDRESS: + case DMA_CH2_ADDRESS: + case DMA_CH3_ADDRESS: + *value = dcp->current_address[(port-DMA_CH0_ADDRESS)/2][dcp->first_last]; + dcp->first_last ^= 1; + break; + + /* read channel current address on controller 1 */ + case DMA_CH4_ADDRESS: + case DMA_CH5_ADDRESS: + case DMA_CH6_ADDRESS: + case DMA_CH7_ADDRESS: + *value = dcp->current_address[(port-DMA_CH4_ADDRESS)/4][dcp->first_last]; + dcp->first_last ^= 1; + break; + + /* read channel current word count on controller 0 */ + case DMA_CH0_COUNT: + case DMA_CH1_COUNT: + case DMA_CH2_COUNT: + case DMA_CH3_COUNT: + *value = dcp->current_count[(port-DMA_CH0_COUNT)/2][dcp->first_last]; + dcp->first_last ^= 1; + break; + + /* read channel current word count on controller 1 */ + case DMA_CH4_COUNT: + case DMA_CH5_COUNT: + case DMA_CH6_COUNT: + case DMA_CH7_COUNT: + *value = dcp->current_count[(port-DMA_CH4_COUNT)/4][dcp->first_last]; + dcp->first_last ^= 1; + break; + + /* read status register - clears terminal counts */ + case DMA_SHARED_REG_A: + case DMA1_SHARED_REG_A: + *value = dcp->status.all; + dcp->status.bits.terminal_count = 0; + break; + + /* read temporary register */ + case DMA_SHARED_REG_B: + case DMA1_SHARED_REG_B: + *value = dcp->temporary; + break; + + default: + note_trace0_no_nl(DMA_VERBOSE, ""); + break; + } + + note_trace2(DMA_VERBOSE, " port 0x%04x, returning 0x%02x", port, + *value); +} + +GLOBAL void dma_outb IFN2(io_addr, port, half_word, value) +{ + register DMA_CNTRL *dcp; + + note_trace0_no_nl(DMA_VERBOSE, "dma_outb() "); + + /* + * Get a pointer to the controller and mask out the port's + * redundant bits. + * The first check is commented out as DMA_PORT_START is zero, + * so the check on an unsigned variable is unnecessary. + */ + if (/*port >= DMA_PORT_START &&*/ port <= DMA_PORT_END) + { + dcp = &adaptor.controller[DMA_CONTROLLER]; + port &= ~DMA_REDUNDANT_BITS; + } + else + { + dcp = &adaptor.controller[DMA1_CONTROLLER]; + port &= ~DMA1_REDUNDANT_BITS; + } + + /* + * When the current address and word count are written, the + * first/last flip-flop for the controller is used to + * determine which byte is accessed, and is then toggled. + */ + switch (port) + { + /* write channel addresseess on controller 0 */ + case DMA_CH0_ADDRESS: + case DMA_CH1_ADDRESS: + case DMA_CH2_ADDRESS: + case DMA_CH3_ADDRESS: + dcp->current_address[(port-DMA_CH0_ADDRESS)/2][dcp->first_last] = value; + dcp->base_address[(port-DMA_CH0_ADDRESS)/2][dcp->first_last] = value; + dcp->first_last ^= 1; + break; + + /* write channel addresses on controller 1 */ + case DMA_CH4_ADDRESS: + case DMA_CH5_ADDRESS: + case DMA_CH6_ADDRESS: + case DMA_CH7_ADDRESS: + dcp->current_address[(port-DMA_CH4_ADDRESS)/4][dcp->first_last] = value; + dcp->base_address[(port-DMA_CH4_ADDRESS)/4][dcp->first_last] = value; + dcp->first_last ^= 1; + break; + + /* write channel word counts on controller 0 */ + case DMA_CH0_COUNT: + case DMA_CH1_COUNT: + case DMA_CH2_COUNT: + case DMA_CH3_COUNT: + dcp->current_count[(port-DMA_CH0_COUNT)/2][dcp->first_last] = value; + dcp->base_count[(port-DMA_CH0_COUNT)/2][dcp->first_last] = value; + dcp->first_last ^= 1; + break; + + /* write channel word counts on controller 1 */ + case DMA_CH4_COUNT: + case DMA_CH5_COUNT: + case DMA_CH6_COUNT: + case DMA_CH7_COUNT: + dcp->current_count[(port-DMA_CH4_COUNT)/4][dcp->first_last] = value; + dcp->base_count[(port-DMA_CH4_COUNT)/4][dcp->first_last] = value; + dcp->first_last ^= 1; + break; + + /* write command register */ + case DMA_SHARED_REG_A: + case DMA1_SHARED_REG_A: + dcp->command.all = value; + break; + + /* write request register */ + case DMA_WRITE_REQUEST_REG: + case DMA1_WRITE_REQUEST_REG: + /* this feature is not supported */ + note_trace0_no_nl(DMA_VERBOSE, ""); + break; + + /* write single mask register bit */ + case DMA_WRITE_ONE_MASK_BIT: + case DMA1_WRITE_ONE_MASK_BIT: + if (value & 0x4) + { + /* set mask bit */ + dcp->mask |= (1 << (value & 0x3)); + } + else + { + /* clear mask bit */ + dcp->mask &= ~(1 << (value & 0x3)); + } + break; + + /* write mode register */ + case DMA_WRITE_MODE_REG: + case DMA1_WRITE_MODE_REG: + /* note that the bottom 2 bits of value disappear into + the mode padding */ + dcp->mode[(value & 0x3)].all = value; + break; + + /* clear first/last flip-flop */ + case DMA_CLEAR_FLIP_FLOP: + case DMA1_CLEAR_FLIP_FLOP: + dcp->first_last = 0; + break; + + /* write master clear */ + case DMA_SHARED_REG_B: + case DMA1_SHARED_REG_B: + dcp->command.all = 0; + dcp->status.all = 0; + dcp->request = 0; + dcp->temporary = 0; + dcp->mask = ~0; + + dcp->first_last = 0; + break; + + /* clear mask register */ + case DMA_CLEAR_MASK: + case DMA1_CLEAR_MASK: + dcp->mask = 0; + break; + + /* write all mask register bits */ + case DMA_WRITE_ALL_MASK_BITS: + case DMA1_WRITE_ALL_MASK_BITS: + dcp->mask = value; + + default: + note_trace0_no_nl(DMA_VERBOSE, ""); + break; + } + + note_trace2(DMA_VERBOSE, " port 0x%04x, value 0x%02x", port, value); +} + +GLOBAL void dma_page_inb IFN2(io_addr, port, half_word *, value) +{ + note_trace0_no_nl(DMA_VERBOSE, "dma_page_inb() "); + + /* mask out the port's redundant bits */ + port &= ~DMA_PAGE_REDUNDANT_BITS; + + /* + * Read the value from the appropriate page register. + * Unfortunately there does not seem to be any logical + * mapping between port numbers and channel numbers so + * we use a big switch again. + */ + switch(port) + { + case DMA_CH0_PAGE_REG: + *value = adaptor.pages.page[DMA_RESERVED_CHANNEL_0]; + break; + case DMA_CH1_PAGE_REG: + *value = adaptor.pages.page[DMA_SDLC_CHANNEL]; + break; + case DMA_FLA_PAGE_REG: + *value = adaptor.pages.page[DMA_DISKETTE_CHANNEL]; + break; + case DMA_HDA_PAGE_REG: + *value = adaptor.pages.page[DMA_DISK_CHANNEL]; + break; + case DMA_CH5_PAGE_REG: + *value = adaptor.pages.page[DMA_RESERVED_CHANNEL_5]; + break; + case DMA_CH6_PAGE_REG: + *value = adaptor.pages.page[DMA_RESERVED_CHANNEL_6]; + break; + case DMA_CH7_PAGE_REG: + *value = adaptor.pages.page[DMA_RESERVED_CHANNEL_7]; + break; + case DMA_REFRESH_PAGE_REG: + *value = adaptor.pages.page[DMA_REFRESH_CHANNEL]; + break; + case DMA_FAKE1_REG: + *value = adaptor.pages.page[DMA_FAKE_CHANNEL_1]; + break; + case DMA_FAKE2_REG: + *value = adaptor.pages.page[DMA_FAKE_CHANNEL_2]; + break; + case DMA_FAKE3_REG: + *value = adaptor.pages.page[DMA_FAKE_CHANNEL_3]; + break; + case DMA_FAKE4_REG: + *value = adaptor.pages.page[DMA_FAKE_CHANNEL_4]; + break; + case DMA_FAKE5_REG: + *value = adaptor.pages.page[DMA_FAKE_CHANNEL_5]; + break; + case DMA_FAKE6_REG: + *value = adaptor.pages.page[DMA_FAKE_CHANNEL_6]; + break; + case DMA_FAKE7_REG: + *value = adaptor.pages.page[DMA_FAKE_CHANNEL_7]; + break; + default: + note_trace0_no_nl(DMA_VERBOSE, ""); + break; + } + + note_trace2(DMA_VERBOSE, " port 0x%04x, returning 0x%02x", port, + *value); +} + +GLOBAL void dma_page_outb IFN2(io_addr, port, half_word, value) +{ + note_trace0_no_nl(DMA_VERBOSE, "dma_page_outb() "); + + /* mask out the port's redundant bits */ + port &= ~DMA_PAGE_REDUNDANT_BITS; + + /* + * Write the value into the appropriate page register. + * Unfortunately there does not seem to be any logical + * mapping between port numbers and channel numbers so + * we use a big switch again. + */ + switch(port) + { + case DMA_CH0_PAGE_REG: + adaptor.pages.page[DMA_RESERVED_CHANNEL_0] = value; + break; + case DMA_CH1_PAGE_REG: + adaptor.pages.page[DMA_SDLC_CHANNEL] = value; + break; + case DMA_FLA_PAGE_REG: + adaptor.pages.page[DMA_DISKETTE_CHANNEL] = value; + break; + case DMA_HDA_PAGE_REG: + adaptor.pages.page[DMA_DISK_CHANNEL] = value; + break; + case DMA_CH5_PAGE_REG: + adaptor.pages.page[DMA_RESERVED_CHANNEL_5] = value; + break; + case DMA_CH6_PAGE_REG: + adaptor.pages.page[DMA_RESERVED_CHANNEL_6] = value; + break; + case DMA_CH7_PAGE_REG: + adaptor.pages.page[DMA_RESERVED_CHANNEL_7] = value; + break; + case DMA_REFRESH_PAGE_REG: + adaptor.pages.page[DMA_REFRESH_CHANNEL] = value; + /* this feature is supported */ + note_trace0_no_nl(DMA_VERBOSE, ""); + break; + case MFG_PORT: + /* Manufacturing port */ + /* Meaningless 'checkpoint' debug removed from here STF 11/92 */ + break; + case DMA_FAKE1_REG: + adaptor.pages.page[DMA_FAKE_CHANNEL_1] = value; + break; + case DMA_FAKE2_REG: + adaptor.pages.page[DMA_FAKE_CHANNEL_2] = value; + break; + case DMA_FAKE3_REG: + adaptor.pages.page[DMA_FAKE_CHANNEL_3] = value; + break; + case DMA_FAKE4_REG: + adaptor.pages.page[DMA_FAKE_CHANNEL_4] = value; + break; + case DMA_FAKE5_REG: + adaptor.pages.page[DMA_FAKE_CHANNEL_5] = value; + break; + case DMA_FAKE6_REG: + adaptor.pages.page[DMA_FAKE_CHANNEL_6] = value; + break; + case DMA_FAKE7_REG: + adaptor.pages.page[DMA_FAKE_CHANNEL_7] = value; + break; + default: + note_trace0_no_nl(DMA_VERBOSE, ""); + break; + } + + note_trace2(DMA_VERBOSE, " port 0x%04x, value 0x%02x", port, value); +} + +GLOBAL int dma_request IFN3(half_word, channel, char *, hw_buffer, + word, length) +{ + DMA_CNTRL *dcp; + unsigned int chan; + word offset, count; + sys_addr munch, split_munch1, split_munch2, address; + unsigned int size; + int result = TRUE; + + note_trace3(DMA_VERBOSE, + "dma_request() channel %d, hw_buffer 0x%08x+%04x", + channel, hw_buffer, length); + + /* get a pointer to the controller, the physical channel + number, and the unit size for the channel */ + dcp = &adaptor.controller[dma_physical_controller(channel)]; + chan = dma_physical_channel(channel); + size = dma_unit_size(channel); + + /* get out if the whole DMA controller is disabled or if DMA + requests are disabled for the channel */ + if ( (dcp->command.bits.controller_disable == 0) + && ((dcp->mask & (1 << chan)) == 0) ) + { + /* get the working copies of the DMA offset and count */ + offset = ( ( (unsigned int)dcp->current_address[chan][1] << 8) + | (dcp->current_address[chan][0] << 0) ); + count = ( ( (unsigned int)dcp->current_count[chan][1] << 8) + | (dcp->current_count[chan][0] << 0) ); + + /* get the DMA munch size; it is the count programmed + into the registers, up to the limit available in the + device's buffer; NB for a count of n, n+1 units will + actually be transferred */ + munch = (sys_addr)count + 1; + if (munch > length) + munch = length; + + /* get the base address for the DMA transfer in + system address space */ + address = dma_system_address(channel, + adaptor.pages.page[channel], offset); + if (dcp->mode[chan].bits.address_dec == 0) + { + /* increment memory case - check for address wrapping */ + if ((sys_addr)offset + munch > 0x10000L) + { + /* transfer must be split */ + split_munch1 = 0x10000L - (sys_addr)offset; + split_munch2 = munch - split_munch1; + + /* do the first transfer */ + do_transfer + ( + dcp->mode[chan].bits.transfer_type, + dcp->mode[chan].bits.address_dec, + address, + hw_buffer, + split_munch1, + size + ); + + /* get addresses for second transfer */ + address = dma_system_address(channel, + adaptor.pages.page[channel], 0); + hw_buffer += split_munch1*size; + + /* do the second transfer */ + do_transfer + ( + dcp->mode[chan].bits.transfer_type, + dcp->mode[chan].bits.address_dec, + address, + hw_buffer, + split_munch2, + size + ); + } + else + { + /* no wrap - do the transfer */ + do_transfer + ( + dcp->mode[chan].bits.transfer_type, + dcp->mode[chan].bits.address_dec, + address, + hw_buffer, + munch, + size + ); + } + + /* get the final offset */ + offset += munch; + count -= munch; + } + else + { + /* decrement memory case - check for address wrapping */ + if ((sys_addr)offset < munch) + { + /* transfer must be split */ + split_munch1 = (sys_addr)offset; + split_munch2 = munch - split_munch1; + + /* do the first transfer */ + do_transfer + ( + dcp->mode[chan].bits.transfer_type, + dcp->mode[chan].bits.address_dec, + address, + hw_buffer, + split_munch1, + size + ); + + /* get addresses for second transfer */ + address = dma_system_address(channel, + adaptor.pages.page[channel], 0xffff); + hw_buffer += split_munch1*size; + + /* do the second transfer */ + do_transfer + ( + dcp->mode[chan].bits.transfer_type, + dcp->mode[chan].bits.address_dec, + address, + hw_buffer, + split_munch2, + size + ); + } + else + { + /* no wrap - do the transfer */ + do_transfer + ( + dcp->mode[chan].bits.transfer_type, + dcp->mode[chan].bits.address_dec, + address, + hw_buffer, + munch, + size + ); + } + + /* get the final offset and count */ + offset -= munch; + count -= munch; + } + + /* restore the DMA offset and count from the working copies */ + dcp->current_address[chan][1] = offset >> 8; + dcp->current_address[chan][0] = offset; + dcp->current_count[chan][1] = count >> 8; + dcp->current_count[chan][0] = count; + + if (count == 0xffff) + { + /* + * Terminal count has been reached + */ + + /* no more transfers are required */ + result = FALSE; + + /* update the status register */ + dcp->status.bits.terminal_count |= (1 << chan); + dcp->status.bits.request &= ~(1 << chan); + + /* if autoinitialization is enabled, then reset + the channel and wait for a new request */ + if (dcp->mode[chan].bits.auto_init != 0) + { + dcp->current_count[chan][0] = + dcp->base_count[chan][0]; + dcp->current_count[chan][1] = + dcp->base_count[chan][1]; + + dcp->current_count[chan][0] = + dcp->base_count[chan][0]; + dcp->current_count[chan][1] = + dcp->base_count[chan][1]; + } + else + { + /* set the mask bit for the channel */ + dcp->mask |= (1 << chan); + } + } + } + + return(result); +} + +GLOBAL void dma_enquire IFN3(half_word, channel, + sys_addr *, address, word *, length) +{ + register DMA_CNTRL *dcp; + register unsigned int chan; + + note_trace0_no_nl(DMA_VERBOSE, "dma_enquire() "); + + /* get a pointer to the controller and the physical channel + number */ + dcp = &adaptor.controller[dma_physical_controller(channel)]; + chan = dma_physical_channel(channel); + + /* build the address */ + *address = dma_system_address(channel, + adaptor.pages.page[channel], + ( ( (unsigned int)dcp->current_address[chan][1] << 8) + | ( dcp->current_address[chan][0] << 0) ) ); + + /* build the count */ + *length = ( ((unsigned int)dcp->current_count[chan][1] << 8) + | (dcp->current_count[chan][0] << 0) ); + + note_trace3(DMA_VERBOSE, " channel %d, returning 0x%08x+%04x", + channel, *address, *length); +} + +#ifdef NTVDM +/* + * BOOL dmaGetAdaptor + * + * Used by MS for third party Vdds to retrieve current DMA settings + * + * entry: void + * exit : DMA_ADAPT * , pointer to the DMA_ADAPT structure + * + */ +DMA_ADAPT *dmaGetAdaptor(void) +{ + return &adaptor; +} +#endif /* NTVDM */ + + +/* + * ============================================================================ + * Internal functions + * ============================================================================ + */ + +LOCAL void do_transfer IFN6(int, type, int, decrement, + sys_addr, dma_addr, char *, hw_buffer, unsigned long, length, + unsigned long, size) +{ + /* + * This function moves the data for a DMA transfer. + * + * The value of "type" may be: + * DMA_WRITE_TRANSFER - data is moved from the I/O + * device's memory space to system address space; + * DMA_READ_TRANSFER - data is moved from system + * address space to the I/O device's memory space + * DMA_VERIFY_TRANSFER - no data is required to be + * moved at all. + * + * If "decrement" is TRUE, the pointer to system address + * space is decremented during the DMA transfer; otherwise + * the pointer is incremented. The pointer to the I/O + * device's memory space is always incremented. + * + * "dma_addr" is the offset in system address space where + * the DMA transfer will start; "hw_buffer" is the address + * of the buffer in the I/O device's memory space where + * the DMA transfer will start. + * + * "length" is the number of units of "size" bytes each + * that must be transferred. + */ + + /* convert the length to bytes */ + length *= size; + + /* do the transfer */ + switch(type) + { + case DMA_WRITE_TRANSFER: + if (!decrement) + { +#ifndef PM +#ifdef LIM + if( !get_lim_setup() ){ + if( dma_addr >= ROM_START ){ + if( dma_addr >= ROM_START ) + break; + length = ROM_START - dma_addr - 1; + } + } +#else + /* increment case - check for writing to ROM */ + if ((dma_addr + length) >= ROM_START) + { + if (dma_addr >= ROM_START) + break; + length = ROM_START - dma_addr - 1; + } +#endif /* LIM */ +#endif /* nPM */ + sas_PWS(dma_addr, (host_addr) hw_buffer, length); + + } + else + { + /* decrement case - check for writing to ROM */ +#ifndef PM +#ifdef LIM + if( !get_lim_setup() ){ + if (dma_addr >= ROM_START) { + if (dma_addr-length >= ROM_START) + break; + length = dma_addr-ROM_START+length-1; + dma_addr = ROM_START - 1; + } + } +#else + if (dma_addr >= ROM_START) + { + if (dma_addr-length >= ROM_START) + break; + length = dma_addr - ROM_START + length - 1; + dma_addr = ROM_START - 1; + } +#endif /* LIM */ +#endif /* nPM */ + bwd_dest_copy_to_M((half_word *)hw_buffer, dma_addr, length); + + } + break; + + case DMA_READ_TRANSFER: + if (!decrement) + /* increment case */ + sas_PRS(dma_addr, (host_addr) hw_buffer, length); + else + /* decrement case */ + bwd_dest_copy_from_M(dma_addr, (half_word *)hw_buffer, length); + break; + + case DMA_VERIFY_TRANSFER: + break; + + default: + note_trace0(DMA_VERBOSE, "dma_request() illegal transfer"); + break; + } +} + +/* + * backward copy routines - these used to be + * in the host but there seemed to be little point + */ + +LOCAL void bwd_dest_copy_to_M IFN3(host_addr, s, sys_addr, d, + sys_addr, l) +{ + while (l-- > 0) + sas_PW8(d--, *s++); +} + +LOCAL void bwd_dest_copy_from_M IFN3(sys_addr, s, host_addr, d, + sys_addr, l) +{ + while (l-- > 0) + *d-- = sas_PR8(s++); +} + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_INIT.seg" +#endif + +GLOBAL void dma_init IFN0() +{ + io_addr port; + + note_trace0(DMA_VERBOSE, "dma_init() called"); + +#ifdef LIM + lim_active = 0; +#endif + + /* + * Connect the DMA Adaptor chips to the I/O bus + */ + + /* establish the DMA Controller I/O functions that will be used */ + io_define_inb(DMA_ADAPTOR, dma_inb); + io_define_outb(DMA_ADAPTOR, dma_outb); + + /* connect the DMA Controller chips to the I/O bus */ + for (port = DMA_PORT_START; port <= DMA_PORT_END; port++) + io_connect_port(port, DMA_ADAPTOR, IO_READ_WRITE); + for (port = DMA1_PORT_START; port <= DMA1_PORT_END; port++) + io_connect_port(port, DMA_ADAPTOR, IO_READ_WRITE); + + /* establish the DMA Page Register I/O functions that will be used */ + io_define_inb(DMA_PAGE_ADAPTOR, dma_page_inb); + io_define_outb(DMA_PAGE_ADAPTOR, dma_page_outb); + + /* connect the DMA Page Register chip to the I/O bus */ + for (port = DMA_PAGE_PORT_START; port <= DMA_PAGE_PORT_END; port++) + io_connect_port(port, DMA_PAGE_ADAPTOR, IO_READ_WRITE); +} diff --git a/private/mvdm/softpc.new/base/system/cmos.c b/private/mvdm/softpc.new/base/system/cmos.c new file mode 100644 index 000000000..ed29f64ac --- /dev/null +++ b/private/mvdm/softpc.new/base/system/cmos.c @@ -0,0 +1,1318 @@ +#include "insignia.h" +#include "host_def.h" +/* + * Name: cmos.c + * + * Sccs ID: @(#)cmos.c 1.38 07/11/95 + * + * Purpose: Unknown + * + * (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved. + * + */ + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_CMOS.seg" +#endif + + +/* + * O/S include files. + */ +#include +#include +#include StringH +#include TimeH +#include FCntlH + +/* + * SoftPC include files + */ + +#include "xt.h" +#include "cmos.h" +#include "cmosbios.h" +#include "ios.h" +#include "spcfile.h" +#include "error.h" +#include "config.h" +#include "timeval.h" +#include "ica.h" +#include "timer.h" +#include "tmstrobe.h" +#include "gfi.h" +#include "sas.h" +#include "debug.h" +#include "quick_ev.h" + + +/* + * + * ============================================================================ + * Global data + * =========================================================================== + * = + */ +static boolean data_mode_yes; +static half_word(*bin2bcd) (); +static half_word(*_24to12) IPT1(half_word, x); +static int (*bcd2bin) IPT1(int, x); +static int (*_12to24) (); +static boolean twenty4_hour_clock; + +#if defined(NTVDM) || defined(macintosh) +static boolean cmos_has_changed = FALSE; +static boolean cmos_read_in = FALSE; +#endif /* defined(NTVDM) || defined(macintosh) */ + +static long filesize; +static int cmos_index; +static boolean reset_alarm = FALSE; +static time_t user_time = 0; /* difference between the host and the CMOS + * time */ +static struct host_tm *ht; /* The host time */ +static IU32 rtc_period_mSeconds = 0; + +#if defined(NTVDM) || defined(macintosh) +static half_word cmos[CMOS_SIZE] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Timing info + alarms */ + REG_A_INIT, + REG_B_INIT, + REG_C_INIT, + REG_D_INIT, + DIAG_INIT, + SHUT_INIT, + FLOP_INIT, + CMOS_RESVD, + DISK_INIT, + CMOS_RESVD, + EQUIP_INIT, + BM_LO_INIT, BM_HI_INIT, + EXP_LO, EXP_HI, + DISK_EXTEND, DISK2_EXTEND, + CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, /* 0x1b - 0x1e */ + CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, /* 0x1f - 0x22 */ + CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, /* 0x23 - 0x26 */ + CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, /* 0x27 - 0x2a */ + CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, /* 0x2b - 0x2d */ + CHK_HI_INIT, CHK_LO_INIT, + EXT_LO_INIT, EXT_HI_INIT, + CENT_INIT, + INFO_128_INIT, + CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, /* 0x34 - 0x37 */ + CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, /* 0x38 - 0x3b */ + CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, /* 0x3c - 0x3f */ +}; +#else /* defined(NTVDM) || defined(macintosh) */ +static half_word cmos[CMOS_SIZE]; +#endif /* defined(NTVDM) || defined(macintosh) */ + +static half_word *cmos_register = &cmos[CMOS_SHUT_DOWN]; + +#ifdef NTVDM +unsigned long dwTickCount,dwAccumulativeMilSec; +extern unsigned long GetTickCount (VOID); +#endif + +#ifdef TEST_HARNESS +unsigned long io_verbose = 0; +#endif + +int rtc_int_enabled; + + +/* + * + * ============================================================================ + * Static data and defines + * =========================================================================== + * = + */ + +/* + * + * ============================================================================ + * Internal functions + * =========================================================================== + * = + */ + +LOCAL q_ev_handle rtc_periodic_event_handle = (q_ev_handle)0; + +LOCAL void rtc_periodic_event IFN1(long, parm) +{ + if (cmos[CMOS_REG_B] & PIE) + { + cmos[CMOS_REG_C] |= (C_IRQF | C_PF); + note_trace2(CMOS_VERBOSE, "INTERRUPT: PIE regC=%02x uS=%d", + cmos[CMOS_REG_C], rtc_period_mSeconds); + ica_hw_interrupt(ICA_SLAVE, CPU_RTC_INT, 1); + rtc_periodic_event_handle = add_q_event_t(rtc_periodic_event, + rtc_period_mSeconds, + 0); + } + else + { + rtc_periodic_event_handle = (q_ev_handle)0; + } +} + +LOCAL void change_pie IFN1(IBOOL, newPIE) +{ + if (newPIE && (rtc_period_mSeconds != 0)) + { + /* Turning on periodic interrupts */ + + note_trace1(CMOS_VERBOSE, "Starting periodic interrupts every %d uS", rtc_period_mSeconds); + rtc_periodic_event_handle = add_q_event_t(rtc_periodic_event, + rtc_period_mSeconds, + 0); + } + else + { + /* Turning off periodic interrupts */ + note_trace0(CMOS_VERBOSE, "Stopping periodic interrupts"); + delete_q_event( rtc_periodic_event_handle ); + } +} + +LOCAL void enable_nmi IFN0() +{ +} + +LOCAL void disable_nmi IFN0() +{ +} + +LOCAL void do_checksum IFN0() +{ + int i; + word checksum = 0; + + for (i = CMOS_DISKETTE; i < CMOS_CKSUM_HI; i++) + { + checksum += cmos[i]; + } + cmos[CMOS_CKSUM_LO] = checksum & 0xff; + cmos[CMOS_CKSUM_HI] = checksum >> 8; +} + +LOCAL half_word yes_bin2bcd IFN1(int, x) +{ + /* converts binary x to bcd */ + half_word tens, units; + + tens = x / 10; + units = x - tens * 10; + return ((tens << 4) + units); +} + +LOCAL half_word no_bin2bcd IFN1(int, x) +{ + return ((half_word) x); +} + +LOCAL int yes_bcd2bin IFN1(int, x) +{ + /* converts x in bcd format to binary */ + return ((int) ((x & 0x0f) + (x >> 4) * 10)); +} + +LOCAL int no_bcd2bin IFN1(int, x) +{ + return ((int) (half_word) x); +} + +LOCAL int no_12to24 IFN1(int, x) +{ + return (x); +} + +LOCAL half_word no_24to12 IFN1(half_word, x) +{ + return (x); +} + +LOCAL half_word yes_24to12 IFN1(half_word, x) +{ + /* converts binary or bcd x from 24 to 12 hour clock */ + half_word y = (*bin2bcd) (12); + + if (x > y) + x = (x - y) | 0x80; + else if (x == 0) + x = y | 0x80; + return (x); +} + +LOCAL int yes_12to24 IFN1(int, x) +{ + /* converts binary or bcd x from 12 to 24 hour clock */ + half_word y = (*bin2bcd) (12); + + if (x == (0x80 + y)) + return (0); + else if (x & 0x80) + return ((x & 0x7f) + y); + else + return (x); +} + +LOCAL void rtc_alarm IFN1(long, param) +{ + UNUSED (param); + + note_trace0(CMOS_VERBOSE, "rtc_alarm() gone off"); + + cmos[CMOS_REG_C] |= C_AF; + + if (cmos[CMOS_REG_B] & AIE) + { + note_trace0(CMOS_VERBOSE, "rtc_alarm() setting IRQF due to AIE"); + cmos[CMOS_REG_C] |= C_IRQF; + if (rtc_int_enabled) + { + note_trace1(CMOS_VERBOSE, "INTERRUPT: AIE regC=%02x", cmos[CMOS_REG_C]); + ica_hw_interrupt(ICA_SLAVE, CPU_RTC_INT, 1); + } + } + + reset_alarm = TRUE; +} + +LOCAL void set_alarm IFN0() +{ +#ifndef JOKER + + long numsecs; + long alarm_secs, now_secs; + long num_pc_ticks; + static word handle; + + if (cmos[CMOS_HR_ALARM] & DONT_CARE) + { + if (cmos[CMOS_MIN_ALARM] & DONT_CARE) + { + if (cmos[CMOS_SEC_ALARM] & DONT_CARE) + numsecs = 1; + else + numsecs = 60; + } else + numsecs = 3600; + } else + { + alarm_secs = (*bcd2bin) (cmos[CMOS_SEC_ALARM]) + + ((*bcd2bin) (cmos[CMOS_MIN_ALARM]) * 60) + + ((*_12to24) ((*bcd2bin) (cmos[CMOS_HR_ALARM])) * 3600); + now_secs = ht->tm_sec + 60 * ht->tm_min + 3600 * ht->tm_hour; + numsecs = alarm_secs - now_secs; + if (numsecs < 0) + numsecs += 24 * 3600; + } + + /* As close as we can to 18.2 Hz */ + num_pc_ticks = 18 * numsecs; + + note_trace1(CMOS_VERBOSE, "set_alarm() requesting alarm in %d ticks", num_pc_ticks); + if (handle > 0) + delete_tic_event(handle); + handle = add_tic_event(rtc_alarm, num_pc_ticks, 0); + +#endif /* JOKER */ + +} + +LOCAL int verify_equip_byte IFN1(half_word *, equip) +{ + static half_word display_mask[] = + { + MDA_PRINTER, CGA_80_COLUMN, CGA_80_COLUMN, + OWN_BIOS, MDA_PRINTER + }; + int equip_err; + int num_flops; + SHORT adapter; + + /* Check the Equipment Byte */ + *equip = 0; + adapter = (ULONG) config_inquire(C_GFX_ADAPTER, NULL); + if(adapter != -1) + *equip |= display_mask[adapter]; + + if( host_runtime_inquire(C_NPX_ENABLED) ) + *equip |= CO_PROCESSOR_PRESENT; + +#ifdef SLAVEPC + if (host_runtime_inquire(C_FLOPPY_SERVER) == GFI_SLAVE_SERVER) + { + num_flops = + (*(CHAR *) config_inquire(C_SLAVEPC_DEVICE, NULL)) + ? 1:0; + } + else +#endif /* SLAVEPC */ + { + num_flops = + (*(CHAR *) config_inquire(C_FLOPPY_A_DEVICE, NULL)) + ? 1:0; +#ifdef FLOPPY_B + num_flops += + (*(CHAR *) config_inquire(C_FLOPPY_B_DEVICE, NULL)) + ? 1:0; +#endif + } + + if (num_flops == 2) + *equip |= TWO_DRIVES; + if (num_flops) + *equip |= DISKETTE_PRESENT; + + equip_err = (*equip ^ cmos[CMOS_EQUIP]); + return equip_err; +} + +/* + * ========================================================================= + * External functions + * ========================================================================= + */ + +GLOBAL void cmos_inb IFN2(io_addr, port, half_word *, value) +{ +#ifndef NTVDM +IMPORT ADAPTER_STATE adapter_state[2]; +#else +IMPORT VDMVIRTUALICA VirtualIca[]; +#define ADAPTER_STATE VDMVIRTUALICA +#define adapter_state VirtualIca +#endif /* !NTVDM */ + +#ifdef NTVDM + /* + ** Tim September 92, hack for DEC 450ST + */ + if( port==0x78 ) + { + *value = 0; + return; + } +#endif + port = port & CMOS_BIT_MASK; /* clear unused bits */ + + if (port == CMOS_DATA) + { + *value = *cmos_register; + + /* + * We clear the UIP bit every time we read register A, (whether + * it was set or not) as previously we had it set for a whole + * timer tick, which could fool a DOS retry. + */ + + if (cmos_index == CMOS_REG_A) { + cmos[CMOS_REG_A] &= ~UIP; + + } else if (cmos_index == CMOS_REG_C) { + /* + * Reading Register C clears it. + */ + *cmos_register = C_CLEAR; + } + else if (cmos_index < CMOS_REG_A) + { +#ifndef NTVDM +#ifndef PROD + if (host_getenv("TIME_OF_DAY_FRIG") == NULL) + { +#endif /* !PROD */ +#endif /* !NTVDM */ + + switch (cmos_index) + { + case CMOS_SECONDS: + *cmos_register = (*bin2bcd) (ht->tm_sec); + break; + case CMOS_MINUTES: + *cmos_register = (*bin2bcd) (ht->tm_min); + break; + case CMOS_HOURS: + *cmos_register = (*_24to12) ((*bin2bcd) (ht->tm_hour)); + break; + case CMOS_DAY_WEEK: + /* Sunday = 1 on RTC, 0 in structure */ + *cmos_register = (*bin2bcd) (ht->tm_wday + 1); + break; + case CMOS_DAY_MONTH: + *cmos_register = (*bin2bcd) (ht->tm_mday); + break; + case CMOS_MONTH: + /* [1-12] on RTC, [0-11] in structure */ + *cmos_register = (*bin2bcd) (ht->tm_mon + 1); + break; + case CMOS_YEAR: + *cmos_register = (*bin2bcd) (ht->tm_year); + break; + default: + break; + } +#ifndef NTVDM +#ifndef PROD + } else + { + static int first = 1; + + if (first) + { + first = 0; + printf("FRIG ALERT!!!! - cmos clock frozen!"); + } + *cmos_register = 1; + } +#endif /* !PROD */ +#endif /* !NTVDM */ + + *value = *cmos_register; + } + } + note_trace2(CMOS_VERBOSE, "cmos_inb() - port %x, returning val %x", + port, *value); +} + + +GLOBAL void cmos_outb IFN2(io_addr, port, half_word, value) +{ + static IU32 pirUsec[] = { + 0, + 3906, + 7812, + 122, + 244, + 488, + 976, + 1953, + 3906, + 7812, + 15625, + 31250, + 62500, + 125000, + 250000, + 500000 + }; + +#ifdef NTVDM + /* + ** Tim September 92, hack for DEC 450ST + */ + if( port == 0x78 ) + return; +#endif /* NTVDM */ + + port = port & CMOS_BIT_MASK; /* clear unused bits */ + + note_trace2(CMOS_VERBOSE, "cmos_outb() - port %x, val %x", port, value); + + if (port == CMOS_PORT) + { + if (value & NMI_DISABLE) + disable_nmi(); + else + enable_nmi(); + + cmos_register = &cmos[cmos_index = (value & CMOS_ADDR_MASK)]; + } else if (port == CMOS_DATA) + { + switch (cmos_index) + { + case CMOS_REG_C: + case CMOS_REG_D: + /* These two registers are read only */ + break; + case CMOS_REG_B: + if (value & DM) + { + if (data_mode_yes) + { + bin2bcd = no_bin2bcd; + bcd2bin = no_bcd2bin; + data_mode_yes = FALSE; + } + } else + { + if (!data_mode_yes) + { + bin2bcd = yes_bin2bcd; + bcd2bin = yes_bcd2bin; + data_mode_yes = TRUE; + } + } + if (value & _24_HR) + { + if (!twenty4_hour_clock) + { + _24to12 = no_24to12; + _12to24 = no_12to24; + twenty4_hour_clock = TRUE; + } + } else + { + if (twenty4_hour_clock) + { + _24to12 = yes_24to12; + _12to24 = yes_12to24; + twenty4_hour_clock = FALSE; + } + } + + if (*cmos_register != value) + { +#if defined(NTVDM) || defined(macintosh) + cmos_has_changed = TRUE; +#endif + if ((*cmos_register ^ value) & PIE) + { + change_pie((value & PIE) != 0); + } + *cmos_register = value; + } + break; + case CMOS_REG_A: + /* This CMOS byte is read/write except for bit 7 */ + *cmos_register = (*cmos_register & TOP_BIT) | (value & REST); + rtc_period_mSeconds = pirUsec[*cmos_register & (RS3 | RS2 | RS1 | RS0)]; + if ((*cmos_register & 0x70) != 0x20) + { + /* Internal divider is set to non-standard rate. */ + note_trace1(CMOS_VERBOSE, + "Cmos unsuported divider rate 0x%02x ignored", + *cmos_register & 0x70); + } +#if defined(NTVDM) || defined(macintosh) + cmos_has_changed = TRUE; +#endif + break; + case CMOS_SECONDS: + /* This CMOS byte is read/write except for bit 7 */ + *cmos_register = (*cmos_register & TOP_BIT) | (value & REST); + user_time += (*bcd2bin) (value) - ht->tm_sec; + reset_alarm = TRUE; + break; + case CMOS_MINUTES: + user_time += ((*bcd2bin) (value) - ht->tm_min) * 60; + *cmos_register = value; + reset_alarm = TRUE; + break; + case CMOS_HOURS: + user_time += ((*_12to24) ((*bcd2bin) (value)) - ht->tm_hour) * 60 * 60; + *cmos_register = value; + reset_alarm = TRUE; + break; + case CMOS_DAY_WEEK: + /* this being changed doesn't change the time */ + *cmos_register = value; + break; + case CMOS_DAY_MONTH: + user_time += ((*bcd2bin) (value) - ht->tm_mday) * 60 * 60 * 24; + *cmos_register = value; + break; + case CMOS_MONTH: + user_time += ((*bcd2bin) (value) - 1 - ht->tm_mon) * 60 * 60 * 24 * 30; + *cmos_register = value; + break; + case CMOS_YEAR: + user_time += ((*bcd2bin) (value) - ht->tm_year) * 60 * 60 * 24 * 30 * 12; + *cmos_register = value; + break; + case CMOS_SEC_ALARM: + case CMOS_MIN_ALARM: + case CMOS_HR_ALARM: + reset_alarm = TRUE; + /* falling through */ + default: + *cmos_register = value; +#if defined(NTVDM) || defined(macintosh) + cmos_has_changed = TRUE; +#endif + break; + } + } else + { + note_trace2(CMOS_VERBOSE, + "cmos_outb() - Value %x to unsupported port %x", value, port); + } +} + +static int cmos_count = 0; + +GLOBAL void rtc_tick IFN0() +{ + switch (cmos_count) + { + case 0: + if (cmos[CMOS_REG_B] & UIE) + { + cmos[CMOS_REG_C] |= C_IRQF; + note_trace0(CMOS_VERBOSE, "rtc_tick() setting IRQF due to UIE"); + if (rtc_int_enabled) + { + note_trace1(CMOS_VERBOSE, "INTERRUPT: UIE regC=%02x", cmos[CMOS_REG_C]); + ica_hw_interrupt(ICA_SLAVE, CPU_RTC_INT, 1); + } + } + + /* + * Set the C_UF and UIP bits until the next timer tick. + * We also clear the UIP bit if register A is read, so that + * it doesn't stay on to long (done elsewhere). + */ + + cmos[CMOS_REG_C] ^= C_UF; +#ifndef NTVDM + cmos[CMOS_REG_A] |= UIP; /* Set the bit */ +#endif + break; + + case 1: + cmos[CMOS_REG_C] ^= C_UF; +#ifndef NTVDM + cmos[CMOS_REG_A] &= ~UIP; /* Clear it again */ +#endif + break; + + case 17: + /* update the time at some suitable point in cycle */ + if (cmos[CMOS_REG_B] & SET) + { + /* User is updating user_time */ + } else + { +#ifdef NTVDM + /* sudeepb 08-Jul-1993 Old code assumed rtc-tick will be called */ + /* 20 times a second. This is not true under NTVDM. So we have */ + /* to keep track of time seperately and add to the cmos time. */ +unsigned long dwTemp; + dwTemp = GetTickCount(); + dwAccumulativeMilSec += (dwTemp - dwTickCount); + dwTickCount = dwTemp; + ht->tm_sec = (ULONG) ht->tm_sec + + (dwAccumulativeMilSec / 1000); + dwAccumulativeMilSec = dwAccumulativeMilSec % 1000; + if (ht->tm_sec >= 60) + { + ht->tm_min += (ht->tm_sec / 60); + ht->tm_sec = (ht->tm_sec % 60); + if (ht->tm_min >= 60) + { + ht->tm_hour++; + ht->tm_min -= 60; + if (ht->tm_hour == 25) + { + ht->tm_hour = 0; + ht->tm_mday++; + /* Kop out at this point */ + } + } + } +#else /* NTVDM */ + /* simple update - add 1 second to time */ + ht->tm_sec++; + if (ht->tm_sec == 60) + { + ht->tm_sec = 0; + ht->tm_min++; + if (ht->tm_min == 60) + { + ht->tm_min = 0; + ht->tm_hour++; + if (ht->tm_hour == 25) + { + ht->tm_hour = 0; + ht->tm_mday++; + /* Kop out at this point */ + } + } + } +#endif /* NTVDM */ + } + break; + + default: + break; + } + + /* As close as we can to 18.2 Hz */ + cmos_count = (++cmos_count) % 18; + + if ((rtc_periodic_event_handle == (q_ev_handle)0) + && ((cmos[CMOS_REG_B] & PIE) == 0)) + { + /* There is no period interrupt being generated by quick event, + * and periodic interrupts are not enabled, so waggle the status + * bit in case something is polling. + */ + cmos[CMOS_REG_C] ^= C_PF; + } + if (reset_alarm) + { + reset_alarm = FALSE; + set_alarm(); + } +} + +GLOBAL void cmos_equip_update IFN0() +{ + half_word equip; + + if (verify_equip_byte(&equip)) + { + note_trace0(CMOS_VERBOSE, "updating the equip byte silently"); + cmos[CMOS_EQUIP] = equip; + /* correct the checksum */ + do_checksum(); + } +} + +/* + * * General function to change the specified cmos byte to the specified + * value + */ +GLOBAL int cmos_write_byte IFN2(int, cmos_byte, half_word, new_value) +{ + note_trace2(CMOS_VERBOSE, "cmos_write_byte() byte=%x value=%x", + cmos_byte, new_value); + if (cmos_byte >= 0 && cmos_byte <= 64) + { + cmos[cmos_byte] = new_value; + do_checksum(); + return (0); + } else + { + always_trace2("ERROR: cmos write request: byte=%x value=%x", + cmos_byte, new_value); + return (1); + } +} +/* + * * General fuunction to read specified cmos byte. + */ +GLOBAL int cmos_read_byte IFN2(int, cmos_byte, half_word *, value) +{ + if (cmos_byte >= 0 && cmos_byte <= 64) + { + *value = cmos[cmos_byte]; + note_trace2(CMOS_VERBOSE, "cmos_read_byte() byte=%x value=%x", + cmos_byte, value); + return (0); + } else + { + always_trace1("ERROR: cmos read request: byte=%x", cmos_byte); + return (1); + } +} + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_INIT.seg" +#endif + +#if defined(NTVDM) || defined(macintosh) +LOCAL void read_cmos IFN0() +{ + filesize = host_read_resource(CMOS_REZ_ID, CMOS_FILE_NAME, + cmos, sizeof(cmos), SILENT); + + /* Set a flag to say we've tried to read the CMOS file */ + cmos_read_in = TRUE; +} +#endif /* defined(NTVDM) || defined(macintosh) */ + +#if defined(NTVDM) || defined(macintosh) +LOCAL void write_cmos IFN0() +{ + /* terminate might be called before reset */ + if (cmos_read_in && cmos_has_changed) + { + host_write_resource(CMOS_REZ_ID, CMOS_FILE_NAME, + cmos, sizeof(cmos)); + } +} +#endif /* defined(NTVDM) || defined(macintosh) */ + +LOCAL void cmos_error IFN6(int, err, half_word, diag, half_word, equip, + int, equip_err, half_word, floppy, half_word, disk) +{ + char err_string[256]; + + if (err & BAD_SHUT_DOWN) + { + strcpy(err_string, "shut "); + note_trace0(CMOS_VERBOSE, "eek! someone's furtling with the shutdown byte"); + } else + strcpy(err_string, ""); + + if (err & BAD_REG_D) + { + strcat(err_string, "power "); + note_trace0(CMOS_VERBOSE, " The battery is dead - this shouldn't happen!"); + } + if (err & BAD_DIAG) + { + strcat(err_string, "diag "); + if (diag & BAD_BAT) + note_trace0(CMOS_VERBOSE, "bad battery"); + if (diag & BAD_CONFIG) + note_trace0(CMOS_VERBOSE, "bad config"); + if (diag & BAD_CKSUM) + note_trace0(CMOS_VERBOSE, "bad chksum"); + if (diag & W_MEM_SIZE) + note_trace0(CMOS_VERBOSE, "memory size != configuration"); + if (diag & HF_FAIL) + note_trace0(CMOS_VERBOSE, "fixed disk failure on init"); + if (diag & CMOS_CLK_FAIL) + note_trace0(CMOS_VERBOSE, "cmos clock not updating or invalid"); + } + if (err & BAD_EQUIP) + { + strcat(err_string, "equip "); + + if (equip_err) + { + if (equip_err & DRIVE_INFO) + note_trace0(CMOS_VERBOSE, "incorrect diskette - resetting"); + if (equip_err & DISPLAY_INFO) + note_trace0(CMOS_VERBOSE, "incorrect display - resetting"); + if (equip_err & NPX_INFO) + note_trace0(CMOS_VERBOSE, "incorrect npx - resetting CMOS"); + if (equip_err & RESVD_INFO) + note_trace0(CMOS_VERBOSE, "incorrect reserved bytes - resetting"); + } + } + if (err & BAD_FLOPPY) + { + strcat(err_string, "flop "); + note_trace0(CMOS_VERBOSE, "incorrect diskette type - resetting"); + } + if (err & BAD_DISK) + { + strcat(err_string, "disk "); + note_trace0(CMOS_VERBOSE, "incorrect disk type - resetting"); + } + if (err & BAD_BMS) + { + strcat(err_string, "bms "); + note_trace0(CMOS_VERBOSE, "bad base memory - resetting"); + } + if (err & BAD_XMS) + { + strcat(err_string, "extended memory "); + note_trace0(CMOS_VERBOSE, "bad extended memory CMOS entry - resetting"); + } + if (err & BAD_CHECKSUM) + { + strcat(err_string, "cksum "); + note_trace0(CMOS_VERBOSE, "bad Checksum - resetting"); + } +#ifndef PROD + if (!filesize) + always_trace1("Incorrect CMOS entries %s", err_string); +#endif + + if (err & BAD_SHUT_DOWN) + cmos[CMOS_SHUT_DOWN] = SHUT_INIT; + if (err & BAD_REG_D) + cmos[CMOS_REG_D] = REG_D_INIT; + if (err & BAD_DIAG) + cmos[CMOS_DIAG] = DIAG_INIT; + if (err & BAD_EQUIP) + cmos[CMOS_EQUIP] = equip; + if (err & BAD_FLOPPY) + cmos[CMOS_DISKETTE] = floppy; + if (err & BAD_DISK) + cmos[CMOS_DISK] = disk; + if (err & BAD_BMS) + { + cmos[CMOS_B_M_S_LO] = BM_LO_INIT; + cmos[CMOS_B_M_S_HI] = BM_HI_INIT; + } + if (err & BAD_XMS) + { + cmos[CMOS_E_M_S_LO] = + ((sys_addr) (sas_memory_size() - PC_MEM_SIZE) >> 10) & 0xff; + cmos[CMOS_E_M_S_HI] = + ((sys_addr) (sas_memory_size() - PC_MEM_SIZE) >> 18) & 0xff; + } + /* Reset the Checksum if there is any error */ + if (err) + { + /* Do the Checksum */ + do_checksum(); + } +} + +GLOBAL void cmos_init IFN0() +{ +#ifndef TEST_HARNESS + cmos_io_attach(); +#endif + +#ifndef NTVDM +#ifndef PROD + if (host_getenv("TIME_OF_DAY_FRIG") == NULL) +#endif /* PROD */ +#endif /* NTVDM */ + rtc_int_enabled = TRUE; +#ifndef NTVDM +#ifndef PROD + else + rtc_int_enabled = FALSE; +#endif /* PROD */ +#endif /* NTVDM */ + + rtc_init(); +} + +#if defined(NTVDM) || defined(macintosh) +GLOBAL void cmos_pickup IFN0() +{ + read_cmos(); +} +#endif /* defined(NTVDM) || defined(macintosh) */ + +GLOBAL void cmos_io_attach IFN0() +{ + io_addr i; + + io_define_inb(CMOS_ADAPTOR, cmos_inb); + io_define_outb(CMOS_ADAPTOR, cmos_outb); + + for (i = CMOS_PORT_START; i <= CMOS_PORT_END; i++) + io_connect_port(i, CMOS_ADAPTOR, IO_READ_WRITE); +} + +GLOBAL void cmos_post IFN0() +{ + /* + * The IBM POST checks the current settings in the CMOS with the + * equipment determined by writing to the hardware. Any discrepencies + * cause a bad config bit to be set and the user is then requested to + * run the Setup utility. Here we check the CMOS against the current + * settings in the config structure. If there is a discrepency we + * correct the CMOS silently. + */ + int cmos_err, equip_err; + half_word diag, equip, floppy, disk; + word checksum = 0; + int i; + + + cmos_err = 0; + + /* Check the Shutdown Byte */ + if (cmos[CMOS_SHUT_DOWN]) + cmos_err |= BAD_SHUT_DOWN; + + /* Check The Power */ + if (!(cmos[CMOS_REG_D] & VRT)) + cmos_err |= BAD_REG_D; + + /* Check The Diagnostic Status Byte */ + if (diag = cmos[CMOS_DIAG]) + cmos_err |= BAD_DIAG; + + /* Check the Equipment Byte */ + if (equip_err = verify_equip_byte(&equip)) + cmos_err |= BAD_EQUIP; + + /* Check the Floppy Byte */ + floppy = gfi_drive_type(1) | (gfi_drive_type(0) << 4); + if (floppy != cmos[CMOS_DISKETTE]) + cmos_err |= BAD_FLOPPY; + + /* Check the Fixed Disk Type */ + disk = 0x30; /* Drive C type always 3 - then <<4 */ + /* check whether D drive exists */ + if ( *((CHAR *) config_inquire(C_HARD_DISK2_NAME, NULL))) + disk = 0x34; /* 3 << 4 | 4 */ + if (disk != cmos[CMOS_DISK]) + cmos_err |= BAD_DISK; + + /* Check the Base Memory */ + if ((cmos[CMOS_B_M_S_LO] != BM_LO_INIT) || (cmos[CMOS_B_M_S_HI] != BM_HI_INIT)) + cmos_err |= BAD_BMS; + + /* Check the extended memory */ + if ((cmos[CMOS_E_M_S_LO] != + ((sys_addr) (sas_memory_size() - PC_MEM_SIZE) >> 10) & 0xff) || + (cmos[CMOS_E_M_S_HI] != + ((sys_addr) (sas_memory_size() - PC_MEM_SIZE) >> 18) & 0xff)) + cmos_err |= BAD_XMS; + + /* Ignore the Contents of the Drive C and Drive D extended bytes */ + + /* Do the Checksum */ + for (i = CMOS_DISKETTE; i < CMOS_CKSUM_HI; i++) + { + checksum += cmos[i]; + } + /* If the CMOS is OK test the checksum */ + /* If not, we will have to change it anyway */ + if (!cmos_err) + { + if ((checksum & 0xff) != cmos[CMOS_CKSUM_LO]) + { + cmos_err |= BAD_CHECKSUM; + } + if ((checksum >> 8) != cmos[CMOS_CKSUM_HI]) + { + cmos_err |= BAD_CHECKSUM; + } + } + if (cmos_err) + cmos_error(cmos_err, diag, equip, equip_err, floppy, disk); + + cmos[CMOS_REG_A] = REG_A_INIT; + +#if !defined(JOKER) && !defined(NTVDM) + set_tod(); +#endif /* JOKER */ + + /* Check the Extended Memory */ + cmos[CMOS_U_M_S_LO] = ((sys_addr) (sas_memory_size() - PC_MEM_SIZE) >> 10) & 0xff; + cmos[CMOS_U_M_S_HI] = ((sys_addr) (sas_memory_size() - PC_MEM_SIZE) >> 18) & 0xff; + + /* Set up the default cmos location */ + cmos_register = &cmos[cmos_index = CMOS_SHUT_DOWN]; + +#if defined(NTVDM) || defined(macintosh) + cmos_has_changed = FALSE; +#endif +} + +GLOBAL void cmos_update IFN0() +{ +#if defined(NTVDM) || defined(macintosh) +#ifndef PROD + int i; +#endif /* nPROD */ +#else /* defined(NTVDM) || defined(macintosh) */ + ConfigValues *value; + char *strPtr; + int i; +#endif /* defined(NTVDM) || defined(macintosh) */ + +#if defined(NTVDM) || defined(macintosh) + write_cmos(); +#else /* defined(NTVDM) || defined(macintosh) */ + cmos_equip_update(); + config_get(C_CMOS,&value); + strPtr = value->string; + + for (i = 0; i < CMOS_SIZE; ++i) + strPtr += sprintf(strPtr,"%02x ",cmos[i]); + + config_put(C_CMOS,NULL); +#endif /* defined(NTVDM) || defined(macintosh) */ + +#ifndef PROD + if (io_verbose & CMOS_VERBOSE) + { + for (i = 0; i < 64; i++) + fprintf(trace_file, "%02x ", cmos[i]); + fprintf(trace_file, "\n"); + fflush(trace_file); + } +#endif +} + +#ifdef NTVDM +/* NTVDM build does rtc recalibration on rtc_tick */ +GLOBAL void rtc_init IFN0() +{ + long bintim; + + cmos_count = 0; + bintim = host_time((long *) 0); + ht = host_localtime(&bintim); +#ifdef NTVDM + dwTickCount = GetTickCount (); + dwAccumulativeMilSec = 0; +#endif + + /* Set Up the cmos time bytes to be in BCD by default */ + bin2bcd = yes_bin2bcd; + bcd2bin = yes_bcd2bin; + data_mode_yes = TRUE; + + /* Set Up the cmos hour bytes to be 24 hour by default */ + _24to12 = no_24to12; + _12to24 = no_12to24; + twenty4_hour_clock = TRUE; + + cmos[CMOS_SECONDS] = (*bin2bcd) (ht->tm_sec); + cmos[CMOS_MINUTES] = (*bin2bcd) (ht->tm_min); + cmos[CMOS_HOURS] = (*_24to12) ((*bin2bcd) (ht->tm_hour)); + cmos[CMOS_DAY_WEEK] = (*bin2bcd) (ht->tm_wday + 1); + cmos[CMOS_MONTH] = (*bin2bcd) (ht->tm_mon + 1); + cmos[CMOS_YEAR] = (*bin2bcd) (ht->tm_year); + cmos[CMOS_CENTURY] = (*bin2bcd) (19); + + set_alarm(); +} + + + + + +#else + +LOCAL void +sync_rtc_to_host_time IFN1( long, param ) +{ + time_t bintim; + + UNUSED( param ); + + cmos_count = 0; + bintim = host_time(NULL); + ht = host_localtime(&bintim); + + cmos[CMOS_SECONDS] = (*bin2bcd) (ht->tm_sec); + cmos[CMOS_MINUTES] = (*bin2bcd) (ht->tm_min); + cmos[CMOS_HOURS] = (*_24to12) ((*bin2bcd) (ht->tm_hour)); + cmos[CMOS_DAY_WEEK] = (*bin2bcd) (ht->tm_wday + 1); + cmos[CMOS_MONTH] = (*bin2bcd) (ht->tm_mon + 1); + cmos[CMOS_YEAR] = (*bin2bcd) (ht->tm_year); + cmos[CMOS_CENTURY] = (*bin2bcd) (19); + + /* + * Re-sync every 200 ticks ( ca. 11 seconds ). This stops + * the RTC from running slow on a loaded machine ( which + * loses host heartbeat events ( SIGALRM on Unix )). + * 200 ticks is not too often as to be a performance impact + * but should be often enough to be useful. + */ + + (void) add_tic_event( sync_rtc_to_host_time, 200, 0 ); +} + +GLOBAL void rtc_init IFN0() +{ +#ifdef NTVDM + dwTickCount = GetTickCount (); + dwAccumulativeMilSec = 0; +#endif + + /* Set Up the cmos time bytes to be in BCD by default */ + bin2bcd = yes_bin2bcd; + bcd2bin = yes_bcd2bin; + data_mode_yes = TRUE; + + /* Set Up the cmos hour bytes to be 24 hour by default */ + _24to12 = no_24to12; + _12to24 = no_12to24; + twenty4_hour_clock = TRUE; + + sync_rtc_to_host_time( 0 ); + + set_alarm(); +} + +#endif /* NTVDM */ + +/*( +========================= cmos_clear_shutdown_byte ============================ +PURPOSE: + To clear the "shutdown" byte in the CMOS which indicates that the + next reset is not a "soft" one. (e.g. it is a CTRL-ALT-DEL or panel + reset). This routine is needed (rather than just doung cmos_outb() + since the processor might currently be in enhanced mode with io to CMOS + virtualised. +INPUT: +OUTPUT: +=============================================================================== +)*/ + +GLOBAL void cmos_clear_shutdown_byte IFN0() +{ + cmos[CMOS_SHUT_DOWN] = 0; +} + + +#if !defined(NTVDM) && !defined(macintosh) +/*( +=============================== ValidateCmos ================================== +PURPOSE: + Initialise CMOS array from values in configuration file. +INPUT: + hostID - I.D. number of CMOS configuration entry + vals - Value of CMOS configuration entry + table - Not used +OUTPUT: + errString - Error string. + + Returns C_CONFIG_OP_OK if CMOS configuration value OK, EG_BAD_VALUE if + bad value. +=============================================================================== +)*/ + +GLOBAL SHORT ValidateCmos IFN4( + UTINY, hostID, + ConfigValues *, vals, + NameTable *, table, + CHAR *, errString +) { + int i, nItems, value, nChars; + char *strPtr = vals->string; + + for (i = 0; i < CMOS_SIZE; ++i) { + nItems = sscanf(strPtr," %x%n",&value,&nChars); + if (nItems != 1 || value > 0xff) { + *errString = '\0'; + return EG_BAD_VALUE; + } + cmos[i] = (half_word)value; + strPtr += nChars; + } + + return C_CONFIG_OP_OK; +} +#endif /* !defined(NTVDM) && !defined(macintosh) */ + + + +#ifdef TEST_HARNESS +main() +{ + int i; + half_word j; + + cmos_init(); + + printf("\n"); + for (i = 0; i < CMOS_SIZE; i++) + { + cmos_outb(CMOS_PORT, i); + cmos_inb(CMOS_DATA, &j); + printf("%c", j); + } + printf("\n"); + for (i = 0; i < CMOS_SIZE; i++) + { + cmos_outb(CMOS_PORT, i); + cmos_outb(CMOS_DATA, (i + 0x30)); + printf("%c", cmos[i]); + } + printf("\n"); + + cmos_update(); +} +#endif /* TEST_HARNESS */ diff --git a/private/mvdm/softpc.new/base/system/cmosnt.c b/private/mvdm/softpc.new/base/system/cmosnt.c new file mode 100644 index 000000000..64b5c8ac1 --- /dev/null +++ b/private/mvdm/softpc.new/base/system/cmosnt.c @@ -0,0 +1,1212 @@ +#include +#include +#include +#include +#include "insignia.h" +#include "host_def.h" +/* + * Name: cmos.c + * + * Sccs ID: @(#)cmos.c 1.38 07/11/95 + * + * Purpose: Unknown + * + * (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved. + * + */ + +/* + * O/S include files. + */ +#include +#include +#include +#include +#include + +/* + * SoftPC include files + */ + +#include "xt.h" +#include "cmos.h" +#include "cmosbios.h" +#include "ios.h" +#include "spcfile.h" +#include "error.h" +#include "config.h" +#include "timeval.h" +#include "ica.h" +#include "timer.h" +#include "tmstrobe.h" +#include "gfi.h" +#include "sas.h" +#include "debug.h" +#include "quick_ev.h" + +#include + + +half_word(*bin2bcd)(int x); +half_word(*_24to12)(half_word x); +int (*bcd2bin)(int x); +int (*_12to24)(int x); + +boolean data_mode_yes; +boolean twenty4_hour_clock; +int cmos_index = 0; + + +typedef struct _HOST_TIME{ + int Year; + int Month; + int Day; + int Hour; + int Minute; + int Second; + int WeekDay; +} HOSTTIME, *PHOSTTIME; + +HOSTTIME HostTime; /* The host time */ +PHOSTTIME ht = &HostTime; + + +IU32 rtc_period_mSeconds = 976; + +half_word cmos[CMOS_SIZE] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Timing info + alarms */ + REG_A_INIT, + REG_B_INIT, + REG_C_INIT, + REG_D_INIT, + DIAG_INIT, + SHUT_INIT, + FLOP_INIT, + DISK_INIT, + DISK_INIT, + CMOS_RESVD, + EQUIP_INIT, + BM_LO_INIT, BM_HI_INIT, + EXP_LO, EXP_HI, + DISK_EXTEND, DISK2_EXTEND, + CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, /* 0x1b - 0x1e */ + CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, /* 0x1f - 0x22 */ + CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, /* 0x23 - 0x26 */ + CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, /* 0x27 - 0x2a */ + CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, /* 0x2b - 0x2d */ + CHK_HI_INIT, CHK_LO_INIT, + EXT_LO_INIT, EXT_HI_INIT, + CENT_INIT, + INFO_128_INIT, + CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, /* 0x34 - 0x37 */ + CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, /* 0x38 - 0x3b */ + CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, CMOS_RESVD, /* 0x3c - 0x3f */ +}; + +half_word *cmos_register = &cmos[CMOS_SHUT_DOWN]; + + +int RtcLastAlarm; +int RtcAlarmTime; +int RtcHostUpdateTime; +BOOL RtcEoiPending; +int RtcUpdateCycle=-1; +unsigned char TogglePfCount; +unsigned char PendingCReg = 0; +struct host_timeval RtcTickTime = {0,0}; + + +/* + * + * =========================================================================== + * Internal functions + * =========================================================================== + * + */ + + + + +/* + * Calculates next AlarmTime in seconds based on RtcTickTime. + * Assumes that RtcHostUpdateTime == RtcTickTime->tv_sec + */ +void ResetAlarm(void) +{ + int HourDue; + int MinDue; + int SecDue; + int SecondsTillDue; + + + if (RtcLastAlarm) { + return; + } + + if (!(cmos[CMOS_REG_B] & AIE) || (cmos[CMOS_REG_B] & SET)) { + RtcAlarmTime = 0; + return; + } + + + /* + * Determine hour, min, and sec when Next Alarm is due. + * + */ + + HourDue = cmos[CMOS_HR_ALARM] >= DONT_CARE + ? ht->Hour + : (*_12to24)((*bcd2bin)(cmos[CMOS_HR_ALARM])); + + MinDue = cmos[CMOS_MIN_ALARM] >= DONT_CARE + ? ht->Minute + : (*bcd2bin)(cmos[CMOS_MIN_ALARM]); + + SecDue = cmos[CMOS_SEC_ALARM] >= DONT_CARE + ? ht->Second + 1 + : (*bcd2bin)(cmos[CMOS_SEC_ALARM]); + + + /* + * Determine Seconds until Next alarm due. NEVER schedule alarms + * for the current update cycle, as this will cause multiple alarms + * to occur because alarm interrupts are queued in RtcTick(). ie + * assume CurrTime is 1 sec in the future. + * + * AlarmSecs = SecDue + MinDue * 60 + HourDue * 3600; + * CurrSecs = ht->Second + 1 + ht->Minute * 60 + ht->Hour * 3600; + * SecondsTillDue = AlarmSecs - CurrSecs - 1; + * + */ + + SecondsTillDue = (HourDue - ht->Hour) * 3600 + + (MinDue - ht->Minute) * 60 + + SecDue - ht->Second - 1; + + if (SecondsTillDue < 0) { + SecondsTillDue += 24 *3600; + } + + SecondsTillDue++; + + /* + * The Next AlarmTime is RtcTickTime + SecondsTillDue; + */ + RtcAlarmTime = RtcTickTime.tv_sec + SecondsTillDue; + +} + + + + + +/* + * Function to change Host Time where the the Day might change. + * (ie past midnight!). + */ +BOOL +HostTimeAdjust( + int Seconds + ) +{ + TIME_FIELDS tf; + LARGE_INTEGER liTime; + + tf.Milliseconds = 0; + tf.Second = ht->Second; + tf.Minute = ht->Minute; + tf.Hour = ht->Hour; + tf.Day = ht->Day; + tf.Month = ht->Month; + tf.Year = ht->Year; + + if (!RtlTimeFieldsToTime(&tf, &liTime)) { + return FALSE; + } + + liTime.QuadPart += Int32x32To64(Seconds, 10000000); + + RtlTimeToTimeFields(&liTime, &tf); + + ht->Second = tf.Second; + ht->Minute = tf.Minute; + ht->Hour = tf.Hour; + ht->Day = tf.Day; + ht->Month = tf.Month; + ht->Year = tf.Year; + ht->WeekDay = tf.Weekday; + + return TRUE; +} + + + + +void +UpdateCmosTime( + void + ) +{ + ULONG CurrTic; + int SecsElapsed; + + + if ((cmos[CMOS_REG_B] & SET)) { + return; + } + + TogglePfCount++; + + + SecsElapsed = RtcTickTime.tv_sec - RtcHostUpdateTime; + + if (SecsElapsed > 0) { + RtcHostUpdateTime = RtcTickTime.tv_sec; + cmos[CMOS_REG_A] |= UIP; + RtcUpdateCycle = 3; + + ht->Second += SecsElapsed; + if (ht->Second >= 60) { + ht->Minute += (ht->Second / 60); + ht->Second = ht->Second % 60; + if (ht->Minute >= 60) { + ht->Hour += ht->Minute / 60; + ht->Minute = ht->Minute % 60; + + /* + * To increment Time past midnight is hard + * because we don't have a calender. Let Nt + * deal with it. + */ + if (ht->Hour >= 24) { + int Seconds; + + Seconds = (ht->Hour - 23) * 60 * 60; + ht->Hour = 23; + if (!HostTimeAdjust(Seconds)) { + ht->Hour = 0; + } + } + } + } + } + + +} + + + + +void +QueueRtcInterrupt( + unsigned char CRegFlag, + BOOL InEoi + ) +{ + unsigned long Delay; + + PendingCReg |= CRegFlag; + + if (RtcEoiPending || !PendingCReg) { + return; + } + + RtcEoiPending = TRUE; + + if (PendingCReg & C_PF) { + Delay = rtc_period_mSeconds; + } + else if (InEoi) { + Delay = 10000; + } + else { + Delay = 0; + } + + cmos[CMOS_REG_C] |= PendingCReg | C_IRQF; + + if (Delay) { + host_DelayHwInterrupt(8, // ICA_SLAVE, CPU_RTC_INT + 1, + Delay + ); + } + else { + ica_hw_interrupt(ICA_SLAVE, CPU_RTC_INT, 1); + } + + PendingCReg = 0; +} + + + +void +RtcIntEoiHook(int IrqLine, int CallCount) +{ + RtcEoiPending = FALSE; + + if (RtcLastAlarm) { + RtcLastAlarm = 0; + UpdateCmosTime(); + ResetAlarm(); + } + + QueueRtcInterrupt((half_word)((cmos[CMOS_REG_B] & PIE) && rtc_period_mSeconds ? C_PF : 0), + TRUE + ); +} + + + +void do_checksum IFN0() +{ + int i; + word checksum = 0; + + for (i = CMOS_DISKETTE; i < CMOS_CKSUM_HI; i++) + { + checksum += cmos[i]; + } + cmos[CMOS_CKSUM_LO] = checksum & 0xff; + cmos[CMOS_CKSUM_HI] = checksum >> 8; +} + +half_word yes_bin2bcd IFN1(int, x) +{ + /* converts binary x to bcd */ + half_word tens, units; + + tens = x / 10; + units = x - tens * 10; + return ((tens << 4) + units); +} + +half_word no_bin2bcd IFN1(int, x) +{ + return ((half_word) x); +} + +int yes_bcd2bin IFN1(int, x) +{ + /* converts x in bcd format to binary */ + return ((int) ((x & 0x0f) + (x >> 4) * 10)); +} + +int no_bcd2bin IFN1(int, x) +{ + return ((int) (half_word) x); +} + +int no_12to24 IFN1(int, x) +{ + return (x); +} + +half_word no_24to12 IFN1(half_word, x) +{ + return (x); +} + +half_word yes_24to12 IFN1(half_word, x) +{ + /* converts binary or bcd x from 24 to 12 hour clock */ + half_word y = (*bin2bcd) (12); + + if (x > y) + x = (x - y) | 0x80; + else if (x == 0) + x = y | 0x80; + return (x); +} + +int yes_12to24 IFN1(int, x) +{ + /* converts binary or bcd x from 12 to 24 hour clock */ + half_word y = (*bin2bcd) (12); + + if (x == (0x80 + y)) + return (0); + else if (x & 0x80) + return ((x & 0x7f) + y); + else + return (x); +} + +int verify_equip_byte IFN1(half_word *, equip) +{ + static half_word display_mask[] = + { + MDA_PRINTER, CGA_80_COLUMN, CGA_80_COLUMN, + OWN_BIOS, MDA_PRINTER + }; + int equip_err; + int num_flops; + SHORT adapter; + + /* Check the Equipment Byte */ + *equip = 0; + adapter = (SHORT) config_inquire(C_GFX_ADAPTER, NULL); + if(adapter != -1) + *equip |= display_mask[adapter]; + + if( host_runtime_inquire(C_NPX_ENABLED) ) + *equip |= CO_PROCESSOR_PRESENT; + +#ifdef SLAVEPC + if (host_runtime_inquire(C_FLOPPY_SERVER) == GFI_SLAVE_SERVER) + { + num_flops = + (*(CHAR *) config_inquire(C_SLAVEPC_DEVICE, NULL)) + ? 1:0; + } + else +#endif /* SLAVEPC */ + { + num_flops = + (*(CHAR *) config_inquire(C_FLOPPY_A_DEVICE, NULL)) + ? 1:0; +#ifdef FLOPPY_B + num_flops += + (*(CHAR *) config_inquire(C_FLOPPY_B_DEVICE, NULL)) + ? 1:0; +#endif + } + + if (num_flops == 2) + *equip |= TWO_DRIVES; + if (num_flops) + *equip |= DISKETTE_PRESENT; + + equip_err = (*equip ^ cmos[CMOS_EQUIP]); + return equip_err; +} + +/* + * ========================================================================= + * External functions + * ========================================================================= + */ + +GLOBAL void cmos_inb IFN2(io_addr, port, half_word *, value) +{ + /* + ** Tim September 92, hack for DEC 450ST + */ + if( port==0x78 ) + { + *value = 0; + return; + } + + port = port & CMOS_BIT_MASK; /* clear unused bits */ + + if (port == CMOS_DATA) + { + host_ica_lock(); + + UpdateCmosTime(); + + switch (cmos_index) { + case CMOS_REG_A: + *value = *cmos_register; + + /* + * If app polling RegA and Update Cycle pending, + * complete it. + */ + if (RtcUpdateCycle > 0 && !--RtcUpdateCycle) { + cmos[CMOS_REG_A] &= ~UIP; + if (cmos[CMOS_REG_B] & UIE) { + QueueRtcInterrupt(C_UF, FALSE); + } + else { + cmos[CMOS_REG_C] |= C_UF; + } + } + + break; + + case CMOS_REG_C: + *value = *cmos_register; + + /* + * Reading Register C on real rtc clears all bits. + * However, Need to toggle PF bit when PIE is + * not enabled for polling apps. + */ + cmos[CMOS_REG_C] = C_CLEAR; + if (!(cmos[CMOS_REG_B] & PIE) && rtc_period_mSeconds) { + if (!(*value & C_PF) || (TogglePfCount & 0x8)) { + cmos[CMOS_REG_C] |= C_PF; + } + } + + break; + + case CMOS_SECONDS: + *value = (*bin2bcd) (ht->Second); + break; + + case CMOS_MINUTES: + *value = (*bin2bcd) (ht->Minute); + break; + + case CMOS_HOURS: + *value = (*_24to12) ((*bin2bcd) (ht->Hour)); + break; + + case CMOS_DAY_WEEK: + /* Sunday = 1 on RTC, 0 in HOSTTIME */ + *value = (*bin2bcd) (ht->WeekDay + 1); + break; + + case CMOS_DAY_MONTH: + *value = (*bin2bcd) (ht->Day); + break; + + case CMOS_MONTH: + /* [1-12] on RTC, [1-12] in HOSTTIME */ + *value = (*bin2bcd) (ht->Month); + break; + + case CMOS_YEAR: + *value = (*bin2bcd) (ht->Year % 100); + break; + + case CMOS_CENTURY: + *value = (*bin2bcd) (ht->Year / 100); + break; + + default: + *value = *cmos_register; + break; + } + + host_ica_unlock(); + + } + note_trace2(CMOS_VERBOSE, "cmos_inb() - port %x, returning val %x", + port, *value); +} + + +GLOBAL void cmos_outb IFN2(io_addr, port, half_word, value) +{ + static IU32 pirUsec[] = { + 0, + 3906, + 7812, + 122, + 244, + 488, + 976, + 1953, + 3906, + 7812, + 15625, + 31250, + 62500, + 125000, + 250000, + 500000 + }; + + + /* + ** Tim September 92, hack for DEC 450ST + */ + if( port == 0x78 ) + return; + + + port = port & CMOS_BIT_MASK; /* clear unused bits */ + + note_trace2(CMOS_VERBOSE, "cmos_outb() - port %x, val %x", port, value); + + + host_ica_lock(); + UpdateCmosTime(); + + + if (port == CMOS_PORT) + { + cmos_register = &cmos[cmos_index = (value & CMOS_ADDR_MASK)]; + + } else if (port == CMOS_DATA) + { + switch (cmos_index) + { + case CMOS_REG_C: + case CMOS_REG_D: + /* These two registers are read only */ + break; + + case CMOS_REG_B: + + if (value & DM) + { + if (data_mode_yes) + { + bin2bcd = no_bin2bcd; + bcd2bin = no_bcd2bin; + data_mode_yes = FALSE; + } + } else + { + if (!data_mode_yes) + { + bin2bcd = yes_bin2bcd; + bcd2bin = yes_bcd2bin; + data_mode_yes = TRUE; + } + } + if (value & _24_HR) + { + if (!twenty4_hour_clock) + { + _24to12 = no_24to12; + _12to24 = no_12to24; + twenty4_hour_clock = TRUE; + } + } else + { + if (twenty4_hour_clock) + { + _24to12 = yes_24to12; + _12to24 = yes_12to24; + twenty4_hour_clock = FALSE; + } + } + + if (value & SET) { + value &= ~UIE; + } + + + if (*cmos_register != value) { + + unsigned char ChangedBits; + + ChangedBits = *cmos_register ^ value; + *cmos_register = value; + + if (ChangedBits & PIE) { + if ((value & PIE) && rtc_period_mSeconds) { + QueueRtcInterrupt(C_PF, FALSE); + } + } + + if (ChangedBits & (AIE | SET)) { + if (ChangedBits & SET) { + RtcUpdateCycle = -1; + cmos[CMOS_REG_A] &= ~UIP; + RtcHostUpdateTime = RtcTickTime.tv_sec; + } + ResetAlarm(); + } + } + + break; + + + case CMOS_REG_A: + /* This CMOS byte is read/write except for bit 7 */ + *cmos_register = (*cmos_register & TOP_BIT) | (value & REST); + rtc_period_mSeconds = pirUsec[*cmos_register & (RS3 | RS2 | RS1 | RS0)]; + + if ((*cmos_register & 0x70) != 0x20) + { + + note_trace1(CMOS_VERBOSE, + "Cmos unsuported divider rate 0x%02x ignored", + *cmos_register & 0x70); + } + + break; + + + case CMOS_SECONDS: + ht->Second = (*bcd2bin)(value); + break; + + case CMOS_MINUTES: + ht->Minute = (*bcd2bin)(value); + break; + + case CMOS_HOURS: + ht->Hour = (*_12to24)((*bcd2bin)(value)); + break; + + case CMOS_DAY_WEEK: + /* Sunday = 1 on RTC, 0 in HOSTTIME */ + ht->WeekDay = (*bcd2bin)(value) - 1; + break; + + case CMOS_DAY_MONTH: + ht->Day = (*bcd2bin)(value); + break; + + case CMOS_MONTH: + /* [1-12] on RTC, [1-12] in HOSTTIME */ + ht->Month = (*bcd2bin)(value); + break; + + case CMOS_YEAR: + ht->Year -= ht->Year % 100; + ht->Year += (*bcd2bin)(value); + break; + + case CMOS_CENTURY: + ht->Year %= 100; + ht->Year += (*bcd2bin)(value) * 100; + break; + + default: + *cmos_register = value; + break; + } + + + + /* + * if one of the time fields changed Reset the alarm + */ + if (cmos_index <= CMOS_HR_ALARM) { + ResetAlarm(); + } + + } else + { + note_trace2(CMOS_VERBOSE, + "cmos_outb() - Value %x to unsupported port %x", value, port); + } + + host_ica_unlock(); + +} + + + + +GLOBAL void cmos_equip_update IFN0() +{ + half_word equip; + + host_ica_lock(); + + if (verify_equip_byte(&equip)) + { + note_trace0(CMOS_VERBOSE, "updating the equip byte silently"); + cmos[CMOS_EQUIP] = equip; + /* correct the checksum */ + do_checksum(); + } + + host_ica_unlock(); +} + +/* + * * General function to change the specified cmos byte to the specified + * value + * + * MUST NOT BE USED FOR TIME. 14-Nov-1995 Jonle + */ +GLOBAL int cmos_write_byte IFN2(int, cmos_byte, half_word, new_value) +{ + if (cmos_byte >= 0 && cmos_byte <= 64) + { + + note_trace2(CMOS_VERBOSE, "cmos_write_byte() byte=%x value=%x", + cmos_byte, new_value); + + host_ica_lock(); + cmos[cmos_byte] = new_value; + do_checksum(); + host_ica_unlock(); + + return (0); + } else + { + always_trace2("ERROR: cmos write request: byte=%x value=%x", + cmos_byte, new_value); + return (1); + } + +} +/* + * * General fuunction to read specified cmos byte. + * + * MUST NOT BE USED FOR TIME. 14-Nov-1995 Jonle + * + */ +GLOBAL int cmos_read_byte IFN2(int, cmos_byte, half_word *, value) +{ + + if (cmos_byte >= 0 && cmos_byte <= 64) + { + host_ica_lock(); + *value = cmos[cmos_byte]; + host_ica_unlock(); + + note_trace2(CMOS_VERBOSE, "cmos_read_byte() byte=%x value=%x", + cmos_byte, value); + return (0); + } else + { + always_trace1("ERROR: cmos read request: byte=%x", cmos_byte); + return (1); + } + +} + + +void cmos_error IFN6(int, err, half_word, diag, half_word, equip, + int, equip_err, half_word, floppy, half_word, disk) +{ + char err_string[256]; + + if (err & BAD_SHUT_DOWN) + { + strcpy(err_string, "shut "); + note_trace0(CMOS_VERBOSE, "eek! someone's furtling with the shutdown byte"); + } else + strcpy(err_string, ""); + + if (err & BAD_REG_D) + { + strcat(err_string, "power "); + note_trace0(CMOS_VERBOSE, " The battery is dead - this shouldn't happen!"); + } + if (err & BAD_DIAG) + { + strcat(err_string, "diag "); + if (diag & BAD_BAT) + note_trace0(CMOS_VERBOSE, "bad battery"); + if (diag & BAD_CONFIG) + note_trace0(CMOS_VERBOSE, "bad config"); + if (diag & BAD_CKSUM) + note_trace0(CMOS_VERBOSE, "bad chksum"); + if (diag & W_MEM_SIZE) + note_trace0(CMOS_VERBOSE, "memory size != configuration"); + if (diag & HF_FAIL) + note_trace0(CMOS_VERBOSE, "fixed disk failure on init"); + if (diag & CMOS_CLK_FAIL) + note_trace0(CMOS_VERBOSE, "cmos clock not updating or invalid"); + } + if (err & BAD_EQUIP) + { + strcat(err_string, "equip "); + + if (equip_err) + { + if (equip_err & DRIVE_INFO) + note_trace0(CMOS_VERBOSE, "incorrect diskette - resetting"); + if (equip_err & DISPLAY_INFO) + note_trace0(CMOS_VERBOSE, "incorrect display - resetting"); + if (equip_err & NPX_INFO) + note_trace0(CMOS_VERBOSE, "incorrect npx - resetting CMOS"); + if (equip_err & RESVD_INFO) + note_trace0(CMOS_VERBOSE, "incorrect reserved bytes - resetting"); + } + } + if (err & BAD_FLOPPY) + { + strcat(err_string, "flop "); + note_trace0(CMOS_VERBOSE, "incorrect diskette type - resetting"); + } + if (err & BAD_DISK) + { + strcat(err_string, "disk "); + note_trace0(CMOS_VERBOSE, "incorrect disk type - resetting"); + } + if (err & BAD_BMS) + { + strcat(err_string, "bms "); + note_trace0(CMOS_VERBOSE, "bad base memory - resetting"); + } + if (err & BAD_XMS) + { + strcat(err_string, "extended memory "); + note_trace0(CMOS_VERBOSE, "bad extended memory CMOS entry - resetting"); + } + if (err & BAD_CHECKSUM) + { + strcat(err_string, "cksum "); + note_trace0(CMOS_VERBOSE, "bad Checksum - resetting"); + } + + if (err & BAD_SHUT_DOWN) + cmos[CMOS_SHUT_DOWN] = SHUT_INIT; + if (err & BAD_REG_D) + cmos[CMOS_REG_D] = REG_D_INIT; + if (err & BAD_DIAG) + cmos[CMOS_DIAG] = DIAG_INIT; + if (err & BAD_EQUIP) + cmos[CMOS_EQUIP] = equip; + if (err & BAD_FLOPPY) + cmos[CMOS_DISKETTE] = floppy; + if (err & BAD_DISK) + cmos[CMOS_DISK] = disk; + if (err & BAD_BMS) + { + cmos[CMOS_B_M_S_LO] = BM_LO_INIT; + cmos[CMOS_B_M_S_HI] = BM_HI_INIT; + } + if (err & BAD_XMS) + { + cmos[CMOS_E_M_S_LO] = (half_word)((sys_addr) (sas_memory_size() - PC_MEM_SIZE) >> 10); + cmos[CMOS_E_M_S_HI] = (half_word)((sys_addr) (sas_memory_size() - PC_MEM_SIZE) >> 18); + } + /* Reset the Checksum if there is any error */ + if (err) + { + /* Do the Checksum */ + do_checksum(); + } +} + + +/* rtc_nit + * Assumes Caller holds Ica lock + */ + +GLOBAL void rtc_init(void) +{ + SYSTEMTIME st; + + RtcAlarmTime = 0; + RtcLastAlarm = 0; + RtcEoiPending = FALSE; + + GetLocalTime(&st); + ht->Second = st.wSecond; + ht->Minute = st.wMinute; + ht->Hour = st.wHour; + ht->Day = st.wDay; + ht->Month = st.wMonth; + ht->Year = st.wYear; + ht->WeekDay = st.wDayOfWeek; + + host_GetSysTime(&RtcTickTime); + RtcHostUpdateTime = RtcTickTime.tv_sec; + + ResetAlarm(); +} + + + +/* RtcTick + * Assumes caller is holding Ica lock + * + * WARNING: this routine is invoked by the hi-priority heartbeat + * thread at a rate of 18.2 time per sec with minimal variance. + * It is a polling routine, and because of the hi-freq and hi-priority + * it must be mean and lean, so don't do anything which could be + * done elsewhere. + */ + +GLOBAL void RtcTick(struct host_timeval *time) +{ + /* + * Save away the RtcTick time stamp + */ + RtcTickTime = *time; + + /* + * Check if time for Alarm interrupt + */ + if (RtcAlarmTime && RtcAlarmTime <= RtcTickTime.tv_sec) { + RtcLastAlarm = RtcTickTime.tv_sec; + RtcAlarmTime = 0; + QueueRtcInterrupt(C_AF, FALSE); + } + + + /* + * If we are in an update cycle complete it. + * + */ + + if (RtcUpdateCycle >= 0) { + RtcUpdateCycle = -1; + cmos[CMOS_REG_A] &= ~UIP; + if (cmos[CMOS_REG_B] & UIE) { + QueueRtcInterrupt(C_UF, FALSE); + } + } + + /* + * If UIE active, then we have to keep HostTime in + * sync so we know when to do the Update End Interrupt. + */ + else if (cmos[CMOS_REG_B] & UIE) { + UpdateCmosTime(); + } + +} + + + +GLOBAL void cmos_init IFN0() +{ + io_addr i; + + /* Set Up the cmos time bytes to be in BCD by default */ + bin2bcd = yes_bin2bcd; + bcd2bin = yes_bcd2bin; + data_mode_yes = TRUE; + + /* Set Up the cmos hour bytes to be 24 hour by default */ + _24to12 = no_24to12; + _12to24 = no_12to24; + twenty4_hour_clock = TRUE; + + + /* attach the ports */ + io_define_inb(CMOS_ADAPTOR, cmos_inb); + io_define_outb(CMOS_ADAPTOR, cmos_outb); + + for (i = CMOS_PORT_START; i <= CMOS_PORT_END; i++) + io_connect_port(i, CMOS_ADAPTOR, IO_READ_WRITE); + + + RegisterEOIHook(8, // ICA_SLAVE, CPU_RTC_INT + RtcIntEoiHook + ); + rtc_init(); +} + + +GLOBAL void cmos_pickup IFN0() +{ + /* + * Static init plus post is used instead of external files + */ +} + + +GLOBAL void cmos_post IFN0() +{ + /* + * The IBM POST checks the current settings in the CMOS with the + * equipment determined by writing to the hardware. Any discrepencies + * cause a bad config bit to be set and the user is then requested to + * run the Setup utility. Here we check the CMOS against the current + * settings in the config structure. If there is a discrepency we + * correct the CMOS silently. + */ + int cmos_err, equip_err; + half_word diag, equip, floppy, disk; + word checksum = 0; + int i; + + + cmos_err = 0; + + /* Check the Shutdown Byte */ + if (cmos[CMOS_SHUT_DOWN]) + cmos_err |= BAD_SHUT_DOWN; + + /* Check The Power */ + if (!(cmos[CMOS_REG_D] & VRT)) + cmos_err |= BAD_REG_D; + + /* Check The Diagnostic Status Byte */ + if (diag = cmos[CMOS_DIAG]) + cmos_err |= BAD_DIAG; + + /* Check the Equipment Byte */ + if (equip_err = verify_equip_byte(&equip)) + cmos_err |= BAD_EQUIP; + + /* Check the Floppy Byte */ + floppy = gfi_drive_type(1) | (gfi_drive_type(0) << 4); + if (floppy != cmos[CMOS_DISKETTE]) + cmos_err |= BAD_FLOPPY; + + /* Check the Fixed Disk Type */ + disk = 0x30; /* Drive C type always 3 - then <<4 */ + /* check whether D drive exists */ + if ( *((CHAR *) config_inquire(C_HARD_DISK2_NAME, NULL))) + disk = 0x34; /* 3 << 4 | 4 */ + if (disk != cmos[CMOS_DISK]) + cmos_err |= BAD_DISK; + + /* Check the Base Memory */ + if ((cmos[CMOS_B_M_S_LO] != BM_LO_INIT) || (cmos[CMOS_B_M_S_HI] != BM_HI_INIT)) + cmos_err |= BAD_BMS; + + /* Check the extended memory */ + if ((cmos[CMOS_E_M_S_LO] != + ((sys_addr) (sas_memory_size() - PC_MEM_SIZE) >> 10) & 0xff) || + (cmos[CMOS_E_M_S_HI] != + ((sys_addr) (sas_memory_size() - PC_MEM_SIZE) >> 18) & 0xff)) + cmos_err |= BAD_XMS; + + /* Ignore the Contents of the Drive C and Drive D extended bytes */ + + /* Do the Checksum */ + for (i = CMOS_DISKETTE; i < CMOS_CKSUM_HI; i++) + { + checksum += cmos[i]; + } + /* If the CMOS is OK test the checksum */ + /* If not, we will have to change it anyway */ + if (!cmos_err) + { + if ((checksum & 0xff) != cmos[CMOS_CKSUM_LO]) + { + cmos_err |= BAD_CHECKSUM; + } + if ((checksum >> 8) != cmos[CMOS_CKSUM_HI]) + { + cmos_err |= BAD_CHECKSUM; + } + } + if (cmos_err) + cmos_error(cmos_err, diag, equip, equip_err, floppy, disk); + + cmos[CMOS_REG_A] = REG_A_INIT; + + /* Check the Extended Memory */ + cmos[CMOS_U_M_S_LO] = (half_word)((sys_addr) (sas_memory_size() - PC_MEM_SIZE) >> 10); + cmos[CMOS_U_M_S_HI] = (half_word)((sys_addr) (sas_memory_size() - PC_MEM_SIZE) >> 18); + + /* Set up the default cmos location */ + cmos_register = &cmos[cmos_index = CMOS_SHUT_DOWN]; + +} + + + +/* + * WE DON'T EVER read or write a central cmos + */ +GLOBAL void cmos_update IFN0() +{ + ; /* do nothing */ +} + + + +/*( +========================= cmos_clear_shutdown_byte ============================ +PURPOSE: + To clear the "shutdown" byte in the CMOS which indicates that the + next reset is not a "soft" one. (e.g. it is a CTRL-ALT-DEL or panel + reset). This routine is needed (rather than just doung cmos_outb() + since the processor might currently be in enhanced mode with io to CMOS + virtualised. +INPUT: +OUTPUT: +=============================================================================== +)*/ + +GLOBAL void cmos_clear_shutdown_byte IFN0() +{ + host_ica_lock(); + + cmos[CMOS_SHUT_DOWN] = 0; + + host_ica_unlock(); +} diff --git a/private/mvdm/softpc.new/base/system/dummy_nt.c b/private/mvdm/softpc.new/base/system/dummy_nt.c new file mode 100644 index 000000000..bd9cbd99c --- /dev/null +++ b/private/mvdm/softpc.new/base/system/dummy_nt.c @@ -0,0 +1,32 @@ +#include "insignia.h" +#include "host_def.h" +/* + * VPC Version 1.0 + * + * Title : dummy_int.c + * + * Decription : Provide a function which emulates the dummy interrupt + * within the IBM PC BIOS. + * + * Author : + * + * Notes : + */ + +#ifdef SCCSID +static char SccsID[]="@(#)dummy_int.c 1.4 08/10/92 Copyright Insignia Solutions Ltd."; +#endif + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_BIOS.seg" +#endif + +void dummy_int() +{ + ; +} diff --git a/private/mvdm/softpc.new/base/system/ica.c b/private/mvdm/softpc.new/base/system/ica.c new file mode 100644 index 000000000..0226b6c9b --- /dev/null +++ b/private/mvdm/softpc.new/base/system/ica.c @@ -0,0 +1,2244 @@ +#include "insignia.h" +#include "host_def.h" + +/* + * O/S include files. + */ +#include +#include TypesH + +/* + * SoftPC Revision 2.0 + * + * Title : ica.c + * + * Description : Interrupt Controller Adapter + * + * Author : Jim Hatfield + * (Upgraded to Rev. 2 by David Rees) + * + * Notes : The ICA is responsible for maintaining a mapping + * between an Interrupt Request line and a vector + * number defining an entry in the Interrupt Vector + * table. On reciept of a hardware interrupt, it + * passes the appropriate vector number to the cpu. + * + * The following functions are provided: + * + * ica0_init() - Initialise the first ICA (0 = Master) + * ica1_init() - Initialise the first ICA (1 = Slave) + * ica_inb() - Read a byte from an ICA register + * ica_outb() - Write a command (byte) to the ICA + * + * ica_hw_interrupt() - Raise a hardware interrupt line + * ica_clear_int() - Drop an interrupt line + * ica_intack() - Acknowledge an interrupt + * + * If DEBUG is defined, the following function + * is provided: + * + * ica_dump() - printd out contents of one element + * of adapter_state[] + * + * Restrictions : This software emulates an Intel 8259A Priority Interrupt + * controller as defined in the Intel Specification pp 2-95 to + * 2-112 and pp 2-114 to 2-181, except for the following: + * + * 1) Cascade mode is not supported at all. This mode requires + * that there is more than one 8259A in a system, whereas + * the PC/XT has only one. + * + * 2) 8080/8085 mode is not supported at all. In this mode the + * 8259A requires three INTA pulses from the CPU, and an 8088 + * only gives two. This would cause the device to lock up and + * cease to function. + * + * 3) Level triggered mode is not supported. The device is + * assumed to operate in edge triggered mode. A call of + * ica_hw_interrupt by another adapter will cause a bit to + * be latched into the Interrupt Request Register. A subsequent + * call of ica_clear_int will cause the bit to be unlatched. + * + * 4) Buffered mode has no meaning in a software emulation and + * so is ignored. + * + * 5) An enhancement is provided such that an adapter may raise + * more than one interrupt in one call of ica_hw_interrupt. + * The effect of this is that as soon as an INTACK is called + * another interrupt is requested. If the chip is in Automatic + * EOI mode then all of the interrupts will be generated in + * one burst. + * + * 5a) A further enhancement is provided such that a delay + * (a number of Intel instructions) can be requested before + * the interrupt takes effect. This delay applies to every + * interrupt if more than one is requested. + * + * 6) Special Fully Nested mode is not supported, since it is + * a submode of Cascade Mode. + * + * 7) Polling is not completely implemented. When a Poll is + * received and there was an interrupt request, the CPU INT + * line (which must have been high) is pulled low. This + * software does NOT reset the jump table address since there + * may be a software interrupt outstanding. However it does + * remove the evidence of a hardware interrupt, which will + * cause the CPU to reset the table address itself. + * + * When an unsupported mode is set, it is remembered for + * diagnostic purposes, even though it is not acted upon. + * + * Modifications for Revision 2.0 : + * 1) Restrictions 1 and 6 are lifted. The PC-AT contains two + * 8259A interrupt controllers. The first (ICA 0) is in Master + * mode, and the second (ICA 1) is in slave mode, and its + * interrupts are directed to IR2 on the master chip. Hence + * cascade mode must be supported to the extent necessary + * to emulate this situation. Also, Special Fully Nested + * Mode must work too. NB. The AT BIOS does NOT initialise + * the Master 8259A to use Special Fully Nested Mode. + * + * 2) Restriction 5a (which is an enhancement) has been + * eliminated. Apparently this never really achieved + * its aim. + * + * 3) All the static variables declared in this module + * have been placed within a structure, ADAPTER_STATE, + * which is used as the type for a two-element array. + * This allows the code to emulate two 8259As. + * + * 4) The routine ica_standard_vector_address() has been + * eliminated, because it is not used anymore. + * + * 5) The function ica_init() has been split into two: + * ica0_init() and ica1_init(). The initialization + * via ICWs will now be done by a BIOS POST routine. + * + * 6) In the PC-AT, an 8259A determines its Master/Slave + * state by examining the state of the SP/EN pin. We + * simulate this by setting a flag 'ica_master' to + * the appropriate value in the ica_init() routines. + * + * 7) The guts of the exported function ica_intack() + * have been placed in an internal routine, + * ica_accept(). This change allows for the INTAs + * to work for both the master and slave 8259As. + * + * 8) Added debug function (ica_dump) to allow module + * testing. + * + */ + +#ifdef SCCSID +LOCAL char SccsID[]="@(#)ica.c 1.38 10/19/95 Copyright Insignia Solutions Ltd."; +#endif + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_ICA.seg" +#endif + +/* these ports have iret hooks enabled automatically - others will have to + * define hooked_irets as parts of their configuration + */ +#if !defined(NTVDM) +#if defined(CPU_40_STYLE) || defined(GISP_CPU) +#define HOOKED_IRETS /* switch on IRET hooks */ +#endif +#endif + +/* + * SoftPC include files + */ +#include "xt.h" +#include "trace.h" +#include "ios.h" +#include CpuH +#include "ica.h" +#include "host.h" +#include "yoda.h" +#include "debug.h" + +#ifdef NOVELL +extern void host_sigio_event IPT0(); +#endif /* NOVELL */ + +/* + * ============================================================================ + * Local Data + * ============================================================================ + */ + +#if !defined(NTVDM) +/* + * Table of function pointers to access PIC routines + */ +void (*ica_inb_func) IPT2(io_addr, port, IU8 *, value); +void (*ica_outb_func) IPT2(io_addr, port, IU8, value); +void (*ica_hw_interrupt_func) IPT3(IU32, adapter, IU32, line_no, + IS32, call_count); +void (*ica_clear_int_func) IPT2(IU32, adapter, IU32, line_no); +#endif + +#if defined (CPU_40_STYLE) || defined (NTVDM) +#define ICA_INTACK_REJECT -1 +#endif + +#ifndef PROD +char icamsgbuf[132]; /* Text buffer for debug messages */ +#endif + +/* + * ============================================================================ + * Data relating to 8259A is replicated in two element array. + * ============================================================================ + */ + +#ifdef NTVDM + +#include + +/* + * Risc 486 ntvdm does not use iret hooks + * x86 ntvdm (monitor) uses iret hooks only on comms + * and does not require protect mode enable\disable + * control over selectors, as app code cannot switch to + * protect mode without going thru dpmi. + * + * + * NTVDM has to export ICA definition for host and for X86 kernel. + * To make the namings of these externally referenced type/var more + * sensible but leaving the code substantially as the SoftPC base, + * use macros to 'edit' the adapter_state variable and type. + * + */ +VDMVIRTUALICA VirtualIca[2]; +#define adapter_state VirtualIca +#define ADAPTER_STATE VDMVIRTUALICA +#define EOI_HOOKS /* switch on EOI hooks */ + + + + + +/* + * for ntvdm and x86 build, this variable is shared between ntvdm and + * the kernel(the kernel dispatches h/w interrupt and handles iret + * hook inside kernel) + */ + +#ifdef MONITOR +extern ULONG iretHookMask; +extern ULONG iretHookActive; +#endif + + +/* + * noop the ica_lock_set fns, since ntvdm uses a real critical section + */ + +#define ica_lock_set(x) +#define ica_lock_inc() +#define ica_lock_dec() + + +/* + * noop the swpic fnptrs + */ + +#define SWPIC_inb ica_inb +#define SWPIC_outb ica_outb +#define SWPIC_hw_interrupt ica_hw_interrupt +#define SWPIC_clear_int ica_clear_int + + +// +// to be removed: +// +// ica_hw_interrupt_func is referenced by emulator libs, so depsite the +// fact that we have removed the swpic function ptrs, we still +// have to provide a fn ptr for the emulator. +// +void +(*ica_hw_interrupt_func)( + IU32 adapter, + IU32 line_no, + IS32 call_count + ) + = ica_hw_interrupt; + + + +#else /* !NTVDM */ + +/* regular SoftPC definitions for ica */ +ADAPTER_STATE adapter_state[2]; + +/* iret hook related defines */ +#ifdef PROD +#define host_valid_iret_hook() (TRUE) +#else /* allow disabling of iret hooks whilst debugging */ +#define host_valid_iret_hook() (iretHooksEnabled) +#endif +#define host_bop_style_iret_hooks() (FALSE) +#define host_iret_bop_table_addr(line) (0) + +/* crit section style locks only available on NT */ +#define host_ica_lock() +#define host_ica_unlock() +#define host_ica_real_locks() (FALSE) + +/* macro'ise simplistic ica lock scheme */ + +LOCAL IUM8 ica_lock; + +#define ica_lock_set(x) ica_lock = x +#define ica_lock_inc() ica_lock++ +#define ica_lock_dec() ica_lock-- + +#endif /* NTVDM */ + +#ifdef HOOKED_IRETS /* iret hook related variables */ +LOCAL IBOOL iretHooksEnabled = FALSE; +LOCAL IU16 iretHookMask = 0; /* No interrupts hooked by default */ +LOCAL IU16 iretHookActive = 0; +#endif /* HOOKED_IRETS */ + + +/* + * ============================================================================ + * Local defines + * ============================================================================ + */ + +#define ICA_BASE_MASK 0xf8 /* Mask to get relevant bits out */ + +/* + * The following defines describe the usage of the mode bits + */ + +#define ICA_IC4 0x0001 /* 0 -> no ICW4, 1 -> ICW4 will be sent */ +#define ICA_SINGL 0x0002 /* 0 -> cascade, 1 -> single mode */ +#define ICA_ADI 0x0004 /* 0 -> 8 byte, 1 -> 4 byte interval */ +#define ICA_LTIM 0x0008 /* 0 -> edge, 1 -> level trigger */ +#define ICA_ICW1_MASK 0x000f /* Mask to select above bits in mode */ + +#define ICA_MPM 0x0010 /* 0 -> 8080, 1 -> 8086/8088 mode */ +#define ICA_AEOI 0x0020 /* 1 -> Automatic End-Of-Int Mode is on */ +#define ICA_MS 0x0040 /* 0 -> slave, 1 -> master mode */ +#define ICA_BUF 0x0080 /* 1 -> Buffered Mode is on */ +#define ICA_SFNM 0x0100 /* 1 -> Special Fully Nested Mode is on */ +#define ICA_ICW4_MASK 0x01f0 /* Mask to select above bits in mode */ + +#define ICA_SMM 0x0200 /* 1 -> Special Mask Mode is on */ +#define ICA_RAEOI 0x0400 /* 1 -> Rotate on Auto EOI Mode is on */ +#define ICA_RIS 0x0800 /* 0 -> deliver IRR, 1 -> deliver ISR */ +#define ICA_POLL 0x1000 /* 1 -> Polling is now in progress */ + +/* + * ============================================================================ + * Macros + * ============================================================================ + */ +#define ICA_PORT_0 \ + (adapter ? ICA1_PORT_0 : ICA0_PORT_0) + +#define ICA_PORT_1 \ + (adapter ? ICA1_PORT_1 : ICA0_PORT_1) + +#define adapter_for_port(port) \ + ((port >= ICA0_PORT_START && port <= ICA0_PORT_END) \ + ? ICA_MASTER \ + : ICA_SLAVE \ + ) + +/* + * ============================================================================ + * Internal functions + * ============================================================================ + */ + +IS32 ica_accept IPT1(IU32, adapter); + +#ifdef HOOKED_IRETS +extern IU32 ica_iret_hook_needed IPT1(IU32, line); +#endif + +#if !defined (NTVDM) +void +SWPIC_init_funcptrs IFN0() +{ + /* + * initialize PIC access functions for SW [emulated] PIC + */ + ica_inb_func = SWPIC_inb; + ica_outb_func = SWPIC_outb; + ica_hw_interrupt_func = SWPIC_hw_interrupt; + ica_clear_int_func = SWPIC_clear_int; +} +#endif + +/* + * Please note that ica_eoi is called by SUN_VA code and thus needs to + * be global. + */ + +GLOBAL void +ica_eoi IFN3(IU32, adapter, IS32 *, line, IBOOL, rotate) +{ + /* + * End Of Interrupt. If *line is -1, this is a non-specific EOI + * otherwise it is the number of the line to clear. If rotate is + * TRUE, then set the selected line to lowest priority. + */ + + ADAPTER_STATE *asp = &adapter_state[adapter]; + IS32 i, j; + IU8 bit; + IS32 EoiLineNo = -1; /* if EOI_HOOKS defined this is used otherwise */ + /* rely on compiler elimination as not read */ + + if (*line == -1) /* non specific EOI */ + { + /* + * Clear the highest priority bit in the ISR + */ + for(i = 0; i < 8; i++) + { + j = (asp->ica_hipri + i) & 7; + bit = (1 << j); + if (asp->ica_isr & bit) + { + asp->ica_isr &= ~bit; + *line = j; + EoiLineNo = (IS32)*line; + break; + } + } + } + else /* EOI on specific line */ + { + bit = 1 << *line; + if (asp->ica_isr & bit) + EoiLineNo = *line; + asp->ica_isr &= ~bit; + } + +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "**** CPU END-OF-INT %c (%d) ****", (adapter == ICA_MASTER? 'M': 'S'), *line); + trace(icamsgbuf, DUMP_NONE); + } +#endif + + if (rotate && (*line >= 0)) + asp->ica_hipri = (*line + 1) & 0x07; + +#ifdef EOI_HOOKS + /* + * CallOut to device registered EOI Hooks + */ + if (EoiLineNo != -1) + host_EOI_hook(EoiLineNo + (adapter << 3), asp->ica_count[EoiLineNo]); +#endif /* EOI_HOOKS */ + + /* + * There may be a lower priority interrupt pending, so check + */ + if ((i = ica_scan_irr(adapter)) & 0x80) + ica_interrupt_cpu(adapter, i & 0x07); + +} + +GLOBAL IU8 +ica_scan_irr IFN1(IU32, adapter) +{ + /* + * This is the routine which will decide whether an interrupt should + * be generated. It scans the IRR, the IMR and the ISR to determine + * whether one is possible. It is also called when the processor has + * accepted the interrupt to see which one to deliver. + * + * A bit set in the IRR will generate an interrupt if: + * + * 1) The corresponding bit in the IMR is clear + * AND + * 2) The corresponding bit and all higher priority bits in the ISR are + * clear (unless Special Mask Mode, in which case ISR is ignored) + * + * The highest priority set bit which meets the above conditions (if any) + * will be returned with an indicator bit (in the style needed by a Poll) + */ + + ADAPTER_STATE *asp = &adapter_state[adapter]; + IU32 i, j; + IUM8 bit, irr_and_not_imr, active_isr; + IUM8 iret_hook_mask; + +#if defined (NTVDM) + +#ifdef MONITOR + iret_hook_mask = (IU8)((iretHookActive | DelayIrqLine) >> (adapter << 3)); +#else + iret_hook_mask = (IU8)(DelayIrqLine >> (adapter << 3)); +#endif + +#else /* !NTVDM */ + /* if iret hooks are not being used, iretHookActive will always be 0 */ + iret_hook_mask = (IU8)(iretHookActive >> (adapter << 3)); +#endif + + /* + * A bit can only cause an int if it is set in the IRR + * and clear in the IMR. Generate a set of such bits + */ + + irr_and_not_imr = asp->ica_irr & ~(asp->ica_imr | iret_hook_mask); + + /* + * Does the current mode require the ica to prevent + * interrupts if that line is still active (i.e. in the isr)? + */ + if (asp->ica_mode & (ICA_SMM|ICA_SFNM)) + { + /* Neither Special Mask Mode nor Special Fully Nested Mode + * block interrupts using bits in the isr. + * + * SMM is the mode used by Windows95 and Win3.1/E + * + * Note that "Undocumented PC" says SFNM is not used by PCs and + * is only intended for larger systems with > 2 ICAs + */ + active_isr = 0; + } + else + { + /* Normal Case: Used by DOS and Win3.1/S + * In this mode the isr prevents interrupts. + */ + active_isr = asp->ica_isr; + } + + /* + * Check the trivial case first: no bits set + */ + + if (irr_and_not_imr == 0) + return(7); + + for(i = 0; i < 8; i++) + { + j = (asp->ica_hipri + i) & 7; + bit = (1 << j); + if (active_isr & bit) + return(7); /* No nested interrupt possible */ + + if (irr_and_not_imr & bit) + return((IU8)(0x80 + j)); /* Return line no. + indicator */ + } + /* Strange. We should not have got here. */ + return(7); +} + + +IS32 ica_accept IFN1(IU32, adapter) +{ + /* + * NOTE: There is no need to set the lock here, since we are called + * either from the cpu interrupt code, or from ica_inb, both of + * which will have set it for us. + */ + + ADAPTER_STATE *asp = &adapter_state[adapter]; + IU32 line1; + IS32 line2; + IU8 bit; + + /* + * Drop the INT line + */ + + asp->ica_cpu_int = FALSE; + + /* + * Scan the IRR to find the line which we will use. + * There should be one set, but check anyway + * It there isn't, use line 7. + */ + + if (!((line1 = (IU32)ica_scan_irr(adapter)) & 0x80)) + { + note_trace1(ICA_VERBOSE, "ica_int_accept(%c): No interrupt found!!", (adapter == ICA_MASTER? 'M': 'S')); + + /* we should really return a spurious interrupt - ie interrupt + * on line 7, but this is not neccessary and can cause problems + * for some programs (eg DOOM with a mouse) + */ +#if 0 + line1 = 7; +#endif + + /* Skip spurious ints. These are any that are caused by clearing an + * int when the cpu has already registered that there is an int to + * service. + * + * This used to be "#if defined(NTVDM) && defined(MONITOR)" + * and tried to remove the performance impact on the monitor. + */ + return(-1); + + } + else + { + line1 &= 0x07; + +#if defined(CPU_40_STYLE) && !defined (NTVDM) + /* allow some recursion within hooked ISRs */ + if (asp->isr_depth[line1] >= MAX_ISR_DEPTH) + { + /* disable further interrupts on this line */ + iretHookActive |= 1 << ((adapter << 3) + line1); + + /* reached maximum ISR recursion - don't do interrupt */ + return((IS32)-1); + } +#endif /* CPU_40_STYLE */ + + bit = (1 << line1); + asp->ica_isr |= bit; + + if (--(asp->ica_count[line1]) <= 0) + { /* If count exhausted for this line */ + asp->ica_irr &= ~bit; /* Then finally clear IRR bit */ + asp->ica_count[line1] = 0; /* Just in case */ + } + } + + /* + * If we are in Automatic EOI mode, then issue a non-specific EOI + */ + + if (asp->ica_mode & ICA_AEOI) + { + line2 = -1; + ica_eoi(adapter, &line2, (asp->ica_mode & ICA_RAEOI) == ICA_RAEOI); + } + +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "**** CPU INTACK %c (%d) ****", (adapter == ICA_MASTER? 'M': 'S'), line1 + asp->ica_base); + trace(icamsgbuf, DUMP_NONE); + } +#endif + + return((IS32)line1); +} + +GLOBAL void +ica_interrupt_cpu IFN2(IU32, adapter, IU32, line) +{ + /* + * This routine actually interrupts the CPU. The method it does this + * is host specific, and is done in host_cpu_interrupt(). + */ + + ADAPTER_STATE *asp = &adapter_state[adapter]; + + /* + * If the INT line is already high, do nothing. + */ + + if (asp->ica_cpu_int) + { +#ifndef PROD + if ((io_verbose & ICA_VERBOSE) && (asp->ica_int_line != line)) + { + sprintf(icamsgbuf,"******* INT LINE ALREADY HIGH %c line=%d ****", (adapter == ICA_MASTER? 'M': 'S'), asp->ica_int_line); + trace(icamsgbuf, DUMP_NONE); + } +#endif + asp->ica_int_line = line; + + return; + } + + /* + * Set the ICA internal flags + */ + + asp->ica_int_line = line; + asp->ica_cpu_int = TRUE; + + if (asp->ica_master) /* If ICA is Master */ + { +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "**** CPU INTERRUPT (%x) ****", line); + trace(icamsgbuf, DUMP_NONE); + } +#endif + + /* + * Set the 'hardware interrupt' bit in cpu_interrupt_map + */ + +#ifndef CPU_40_STYLE /* No globals in the 4.0 I/F! */ + cpu_int_delay = 0; +#endif + + host_set_hw_int(); + +#ifdef A2CPU + host_cpu_interrupt(); +#endif + +#ifdef NTVDM + /* call wow routine to check for application unable to service ints */ + WOWIdle(FALSE); +#endif + + } + else + { /* If ICA is Slave */ +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "**** SLAVE ICA INTERRUPT (%x) ****", line); + trace(icamsgbuf, DUMP_NONE); + } +#endif + /* + * Signal the Master ICA. + * NB. A kludge is used here. We know that we have + * been called from ica_hw_interrupt(), and + * therefore ica_lock will be at least 1. To + * get the effect we want, it is necessary to + * reduce the value of ica_lock for the duration + * of the call to ica_hw_interrupt. + * + * If the host has implemented critical section style locking + * then the above kludge does not apply. + */ + + ica_lock_dec(); + + ica_hw_interrupt(ICA_MASTER, asp->ica_ssr, 1); + + ica_lock_inc(); + } +} + +/* + * ============================================================================ + * External functions + * ============================================================================ + */ +void SWPIC_inb IFN2(io_addr, port, IU8 *, value) +{ +#ifndef PROD + char *reg_name; +#endif /* nPROD */ + IU32 adapter = adapter_for_port(port); + ADAPTER_STATE *asp = &adapter_state[adapter]; + + /* + * First check the validity of the port + */ + +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + if ((port != ICA_PORT_0) && (port != ICA_PORT_1)) + { + sprintf(icamsgbuf, "ica_inb: bad port (%x)", port); + trace(icamsgbuf, DUMP_NONE); + } +#endif + + /* + * If we are in the middle of a Poll command, then respond to it + */ + + if (asp->ica_mode & ICA_POLL) + { + ica_lock_set(1); /* Lock out signal handlers */ + host_ica_lock(); /* real lock if supported */ + + asp->ica_mode &= ~ICA_POLL; + + if ((*value = ica_scan_irr(adapter)) & 0x80) /* See if there is one */ + { + (void) ica_accept(adapter); /* Acknowledge it */ + host_clear_hw_int(); + /* cpu_int_call_count[0] = 0; Not used anymore */ + } + + ica_lock_set(0); + host_ica_unlock(); /* free lock if supported */ + +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "ica_inb: responding to Poll with %x", *value); + trace(icamsgbuf, DUMP_NONE); + } +#endif + } + + /* + * If the address is ICA_PORT_0, then deliver either the IRR or the ISR, + * depending on the setting of mode bit ICA_RIS. If the address is + * ICA_PORT_1, then deliver the IMR + */ + + else + { + if (port == ICA_PORT_0) + if (asp->ica_mode & ICA_RIS) + { + *value = asp->ica_isr; +#ifndef PROD + reg_name = "ISR"; +#endif /* nPROD */ + } + else + { + *value = asp->ica_irr; +#ifndef PROD + reg_name = "IRR"; +#endif /* nPROD */ + } + else + { + *value = asp->ica_imr; +#ifndef PROD + reg_name = "IMR"; +#endif /* nPROD */ + } + +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "ica_inb: delivered %s value %x", reg_name, *value); + trace(icamsgbuf, DUMP_NONE); + } +#endif + } +} + +void SWPIC_outb IFN2(io_addr, port, IU8, value) +{ + + /* + * Data sent may either be ICWs or OCWs. All of the OCWs are recognisable + * individually, but only ICW1 may be recognised directly. It will always + * be followed by ICW2, and optionally by ICW3 and/or ICW4, depending upon + * exactly what sort of ICW1 was sent. We use a sequence variable to track + * this and make sure we interpret the data correctly. After power-on, we + * ignore everything until we get an ICW1. + */ + + /* + * Some defines to detect command types + */ +#define ICA_SMM_CMD 0x40 +#define ICA_POLL_CMD 0x04 +#define ICA_RR_CMD 0x02 + + /* + * Local variables + */ + IU32 adapter = adapter_for_port(port); + ADAPTER_STATE *asp = &adapter_state[adapter]; + + SAVED IS32 sequence[2] /* -1 -> power is on but no ICWs received */ + = { -1, -1 }; /* 0 -> fully initialised, OK to proceed */ + /* 2 -> ICW1 received, awaiting ICW2 */ + /* 3 -> ICW2 received, awaiting ICW3 */ + /* 4 -> awaiting ICW4 */ + + IU32 i; /* Counter */ + IS32 line; /* Interrupt line number */ + + /* + * First check the validity of the port + */ + + if ((port & 0xfffe) != ICA_PORT_0) + { +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "ica_outb: bad port (%x)", port); + trace(icamsgbuf, DUMP_NONE); + } +#endif + return; + } + + /* + * If we get an ICW1 then we are into initialisation + */ + + if (((port & 1) == 0) && (value & 0x10)) /**** ICW1 ****/ + { + asp->ica_irr = 0; /* Clear all pending interrupts */ + asp->ica_isr = 0; /* Clear all in-progress interrupts */ + asp->ica_imr = 0; /* Clear the mask register */ + asp->ica_ssr = 0; /* No slaves selected */ + asp->ica_base = 0; /* No base address */ + + asp->ica_hipri = 0; /* Line 0 is highest priority */ + + asp->ica_mode = value & ICA_ICW1_MASK; + /* Set supplied mode bits from ICW1 */ + + for(i = 0; i < 8; i++) + asp->ica_count[i] = 0; /* Clear IRR extension */ + + asp->ica_cpu_int = FALSE; /* No CPU INT outstanding */ + sequence[adapter] = 2; /* Prepare for the rest of the sequence */ + +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + trace("ica_outb: ICW1 detected, initialisation begins", DUMP_NONE); +#endif + return; + } + +/**/ + + /* + * Lock out calls from signal handlers + */ + + ica_lock_set(1); + host_ica_lock(); /* real lock if supported */ + + /* + * It wasn't an ICW1, so use the sequence variable to direct our activities + */ + + switch(sequence[adapter]) + { + case 0: /* We are expecting an OCW */ + if (port & 1) /* Odd address -> OCW1 */ + { + asp->ica_imr = value & 0xff; +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "ica_outb: new %c IMR: %x", (adapter == ICA_MASTER? 'M': 'S'), value); + trace(icamsgbuf, DUMP_NONE); + } +#endif + if (asp->ica_cpu_int) + { + /* We might have masked out a pending interrupt */ + if (asp->ica_imr & (1 << asp->ica_int_line)) + { + asp->ica_cpu_int = FALSE; /* No CPU INT outstanding */ + if (asp->ica_master) + host_clear_hw_int(); + else + ica_clear_int(ICA_MASTER,asp->ica_ssr); + } + } + /* + * We might have unmasked a pending interrupt + */ + if (!asp->ica_cpu_int && (line = ica_scan_irr(adapter)) & 0x80) + ica_interrupt_cpu(adapter, line & 0x07); /* Generate interrupt */ + } + else +/**/ + if ((value & 8) == 0) /* Bit 3 unset -> OCW2 */ + { + switch ((value >> 5) & 0x07) + { + case 0: /* Clear rotate in auto EOI */ + asp->ica_mode &= ~ICA_RAEOI; +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + trace("ica_outb: Clear Rotate in Auto EOI",DUMP_NONE); +#endif + break; + + case 1: /* Non-specific EOI */ + line = -1; /* -1 -> highest priority */ +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + trace("ica_outb: Non-specific EOI", DUMP_NONE); +#endif + ica_eoi(adapter, &line, FALSE); + break; + + case 2: /* No operation */ + break; + + case 3: /* Specific EOI command */ + line = value & 0x07; +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "ica_outb: Specific EOI, line %d", line); + trace(icamsgbuf, DUMP_NONE); + } +#endif + ica_eoi(adapter, &line, FALSE); + break; + + case 4: /* Set rotate in auto EOI mode */ + asp->ica_mode |= ICA_RAEOI; +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + trace("ica_outb: Set Rotate in Auto EOI",DUMP_NONE); +#endif + break; + + case 5: /* Rotate on non-specific EOI */ + line = -1; /* -1 -> non specific */ +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + trace("ica_outb: Rotate on Non-specific EOI",DUMP_NONE); +#endif + ica_eoi(adapter, &line, TRUE); + break; + + case 6: /* Set priority */ + asp->ica_hipri = (value + 1) & 0x07; +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "ica_outb: Set Priority, line %d", value & 0x07); + trace(icamsgbuf, DUMP_NONE); + } +#endif + break; + + case 7: /* Rotate on specific EOI */ + line = value & 0x07; +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "ica_outb: Rotate on specific EOI, line %d", line); + trace(icamsgbuf, DUMP_NONE); + } +#endif + ica_eoi(adapter, &line, TRUE); + break; + } + } +/**/ + else /* Bit 3 set -> OCW3 */ + { + if (value & ICA_SMM_CMD) /* Set/unset SMM */ + { + asp->ica_mode = (asp->ica_mode & ~ICA_SMM) | (((IU16)value << 4) & ICA_SMM); +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + if (asp->ica_mode & ICA_SMM) + trace("ica_outb: Special Mask Mode set", DUMP_NONE); + else + trace("ica_outb: Special Mask Mode unset", DUMP_NONE); +#endif + } + + if (value & ICA_POLL_CMD) /* We are being polled */ + { + asp->ica_mode |= ICA_POLL; +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + trace("ica_outb: Poll detected!", DUMP_NONE); +#endif + } + else + if (value & ICA_RR_CMD) /* Select IRR or ISR */ + { + asp->ica_mode = (asp->ica_mode & ~ICA_RIS) | (((IU16)value << 11) & ICA_RIS); +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + if (asp->ica_mode & ICA_RIS) + trace("ica_outb: ISR selected", DUMP_NONE); + else + trace("ica_outb: IRR selected", DUMP_NONE); +#endif + } + } + break; + +/**/ + case 2: /* We are expecting a ICW2 */ + if (!(port & 1)) /* Should be odd address, so check */ + { +#ifndef PROD + sprintf(icamsgbuf, "ica_outb: bad port (%x) while awaiting ICW2", + (unsigned)port); + trace(icamsgbuf, DUMP_NONE); +#endif + } + else + { + asp->ica_base = value & ICA_BASE_MASK; +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "ica_outb: vector base set to %x", asp->ica_base); + trace(icamsgbuf, DUMP_NONE); + } +#endif + if (!(asp->ica_mode & ICA_SINGL)) + sequence[adapter] = 3; + else + if (asp->ica_mode & ICA_IC4) + sequence[adapter] = 4; + else + sequence[adapter] = 0; + } + break; + +/**/ + case 3: /* We are expecting a ICW3 */ + if (!(port & 1)) /* Should be odd address, so check */ + { +#ifndef PROD + sprintf(icamsgbuf, "ica_outb: bad port (%x) while awaiting ICW3", + (unsigned)port); + trace(icamsgbuf, DUMP_NONE); +#endif + } + else + { + asp->ica_ssr = value & 0xff; +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "ica_outb: slave register set to %x", asp->ica_ssr); + trace(icamsgbuf, DUMP_NONE); + } +#endif + if (asp->ica_mode & ICA_IC4) + sequence[adapter] = 4; + else + sequence[adapter] = 0; + } + break; + +/**/ + case 4: /* We are expecting a ICW4 */ + if (!(port & 1)) /* Should be odd address, so check */ + { +#ifndef PROD + sprintf(icamsgbuf, "ica_outb: bad port (%x) while awaiting ICW4", + (unsigned)port); + trace(icamsgbuf, DUMP_NONE); +#endif + } + else + { + asp->ica_mode = (asp->ica_mode & ~ICA_ICW4_MASK) + | (((IU16)value << 4) & ICA_ICW4_MASK); +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "ica_outb: IC4 value %x", value); + trace(icamsgbuf, DUMP_NONE); + } + /* + * Check the mode bits for sensible values + */ + if (!(asp->ica_mode & ICA_MPM)) + trace("ica_outb: attempt to set up 8080 mode!", DUMP_NONE); + + if ((asp->ica_mode & ICA_BUF) && !(asp->ica_mode & ICA_MS) + && !(asp->ica_mode & ICA_SINGL)) + trace("ica_outb: attempt to set up slave mode!", DUMP_NONE); +#endif + } + sequence[adapter] = 0; + break; + + case -1: /* Power on but so far uninitialised */ +#ifndef PROD + sprintf(icamsgbuf, "ica_outb: bad port/value (%x/%x) while awaiting ICW1", + (unsigned)port, value); + trace(icamsgbuf, DUMP_NONE); +#endif + break; + + default: /* This cannot happen */; +#ifndef PROD + trace("ica_outb: impossible error, programmer brain-dead", DUMP_NONE); +#endif + } + + ica_lock_set(0); + host_ica_unlock(); /* free lock if supported */ +} + + +void SWPIC_hw_interrupt IFN3(IU32, adapter, IU32, line_no, IS32, call_count) +{ + /* + * This routine is called by an adapter to raise an interrupt line. + * It may or may not interrupt the CPU. The CPU may or may not take + * any notice. + */ + + ADAPTER_STATE *asp = &adapter_state[adapter]; + IU8 bit; + IU32 line; +#ifdef CPU_40_STYLE + IS32 depth, *progress; +#endif /* CPU_40_STYLE */ + +#ifndef PROD + SAVED char *linename[2][8] = + { + { + "IRQ 0 TIMER", + "IRQ 1 KEYBOARD", + "IRQ 2 SLAVE_ICA", + "IRQ 3 COM2", + "IRQ 4 COM1", + "IRQ 5 PARALLEL2", + "IRQ 6 DISKETTE", + "IRQ 7 PARALLEL1" + }, + { + "IRQ 8 REALTIME CLOCK", + "IRQ 9 MOUSE", + "IRQ 10 SOFTNODE", + "IRQ 11 SOUND DRIVER", + "IRQ 12 ASPI", + "IRQ 13 COPROCESSOR", + "IRQ 14 FIXED DISK", + "IRQ 15 reserved" + } + }; +#endif + + /* + * vddsvc.h defines the NTVDM exported call to this function as: + * call_ica_hw_interrupt(int, BYTE, int); + * So, the line_no, being defined here as IU32 is not compatible with + * VDD's or other DLL's which call through here. Rather than change + * all the references to it in the source, I'm just going to AND off + * the potential garbage here. + */ + line_no &= 0xff; + + host_ica_lock(); + +#ifndef PROD + if (io_verbose & ICA_VERBOSE_LOCK) + { + if(adapter>1 || line_no>7) + printf("**** H/W INTERRUPT (%sx%d) [%d:%d] ****\n", + linename[adapter][line_no], call_count,adapter,line_no); + } +#endif + + /* + * If there is a request already outstanding on this line, then leave + * the IRR alone, but make a pass through anyway to action previously + * received but locked calls (see below for details). + */ + + bit = (1 << line_no); + if (!(asp->ica_irr & bit)) + { + asp->ica_irr |= bit; /* Pray we don't get a signal here! */ + + } + asp->ica_count[line_no] += call_count; /* Add the further requests */ + +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "**** H/W INTERRUPT (%sx%d) ****", + linename[adapter][line_no], call_count); + trace(icamsgbuf, DUMP_NONE); + } +#endif + + /* + * Check the lock flag. If it is set, then this routine is being called + * from a signal handler while something else is going on. We can't just + * ignore the call since we might lose a keyboard interrupt. What we do + * is to set ica_irr and ica_count as normal (ie code above), then return. + * The next interrupt which gets through this test will cause the stored + * interrupt to be processed. This means that any code which plays around + * with ica_irr and ica_count should take a copy first to prevent problems. + * + * If the host supports real (critical section style) locks, then we won't + * get here in the above situation, so eliminate the following test. That + * leaves both primitive & real lock styles intact. + */ + +#ifndef NTVDM + if (!host_ica_real_locks()) + { + if (ica_lock_inc()) + { +#ifndef PROD + if (io_verbose & ICA_VERBOSE_LOCK) + { + sprintf(icamsgbuf, "*"); + trace(icamsgbuf, DUMP_NONE); + } +#endif + ica_lock_dec(); + return; + } + } +#endif + +#if defined (CPU_40_STYLE) && !defined(NTVDM) + depth = asp->isr_depth[line_no]; + if (depth > 0) + { + progress = &asp->isr_progress[line_no][depth]; + *progress += 1; /* move progress along */ + if ((*progress - *(progress - 1)) > MAX_INTR_DELTA_FOR_LOST_HOOK) + { + asp->isr_time_decay[line_no][asp->isr_depth[line_no]] = 0; + --asp->isr_depth[line_no]; /* reduce depth */ + + /* clear CPU side stack */ + if (!host_bop_style_iret_hooks()) + PurgeLostIretHookLine(((adapter << 3) + line_no) + 1, depth - 1); + /* permit intrs on this line */ + iretHookActive &= ~(1 << ((adapter << 3) + line_no)); + } + } +#endif /* CPU_40_STYLE */ + + /* + * Now scan the IRR to see if we can raise a CPU interrupt. + */ + + if ((line = ica_scan_irr(adapter)) & 0x80) + ica_interrupt_cpu(adapter, line & 0x07); + + ica_lock_set(0); + host_ica_unlock(); +} + +void SWPIC_clear_int IFN2(IU32, adapter, IU32, line_no) +{ + /* + * This routine is called by an adapter to lower an input line. + * The line will then not interrupt the CPU, unless of course + * it has already done so. + */ + + ADAPTER_STATE *asp = &adapter_state[adapter]; + IU8 bit, irr_check; + + host_ica_lock(); + /* + * Decrement the call count and if zero clear the bit in the IRR + */ + + bit = (1 << line_no); + if (--(asp->ica_count[line_no]) <= 0) + { + irr_check = asp->ica_irr; + asp->ica_irr &= ~bit; + asp->ica_count[line_no] = 0; /* Just in case */ + if ((!asp->ica_master) && (ica_scan_irr(adapter)==7)) + { + asp->ica_cpu_int=FALSE; + ica_clear_int(ICA_MASTER,asp->ica_ssr); + } +#ifdef EOI_HOOKS + /* + // If the line has a pending interrupt, call the eoi hook + // to release any device waiting for an EoiHook. + */ + if ((irr_check & bit) != 0) + host_EOI_hook(line_no + (adapter << 3), -1); +#endif /* EOI_HOOKS */ + } + +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "**** ICA_CLEAR_INT, line %d ****", line_no); + trace(icamsgbuf, DUMP_NONE); + } +#endif + + host_ica_unlock(); +} + +/* + * The emulation code associated with this interrupt line has decided it + * doesn't want to generate any more interrupts, even though the ICA may not + * have got through all the interrupts previously requested. + * Simply clear the corresponding interrupt count. + */ +void ica_hw_interrupt_cancel IFN2(IU32, adapter, IU32, line_no) +{ + host_ica_lock(); + adapter_state[adapter].ica_count[line_no] = 0; + host_ica_unlock(); + ica_clear_int(adapter, line_no); +} + +#if defined(HOOKED_IRETS) || defined(NTVDM) +GLOBAL IS32 +ica_intack IFN1(IU32 *, hook_address) +#else +GLOBAL IS32 +ica_intack IFN0() +#endif /* HOOKED_IRETS */ +{ + /* + * This routine is called by the CPU when it wishes to acknowledge + * an interrupt. It is equivalent to the INTA pulses from the real + * device. The interrupt number is delivered. + * It can also be called from ica_inb as a Poll. + * + * Modification for Rev. 2: + * + * It is now necessary to detect whether a slave interrupt controller + * is attached to a particular interrupt request line on the master + * ICA. If a slave exists, it must be accessed to discover the + * interrupt vector. + */ + IS32 line; /* the IRQ line */ + IU8 bit; /* bitmask for 'line' */ + IS32 int_no; /* The interrupt number to return, 0-255 */ + ADAPTER_STATE *asp; /* working pointer to adapter */ + + host_ica_lock(); /* real lock if supported */ + + line = ica_accept(ICA_MASTER); + +#if defined (CPU_40_STYLE) || defined (NTVDM) + if (line == -1) /* skip any spurious ints */ + { + host_ica_unlock(); + return ICA_INTACK_REJECT; + } +#endif /* CPU_40_STYLE */ + + bit = (1 << line); + if (adapter_state[ICA_MASTER].ica_ssr & bit) + { + line = ica_accept(ICA_SLAVE); + int_no = line + adapter_state[ICA_SLAVE].ica_base; + +#if defined (CPU_40_STYLE) || defined (NTVDM) + if (line == -1) /* skip any spurious ints */ + { + adapter_state[ICA_MASTER].ica_isr &= ~bit; + host_ica_unlock(); + return ICA_INTACK_REJECT; + } +#endif /* CPU_40_STYLE */ + +#if defined(CPU_40_STYLE) && !defined(NTVDM) + /* do callback processing for action interrupt */ + asp = &adapter_state[ICA_SLAVE]; + if (asp->callback_fn[line] != NO_ICA_CALLBACK) + { + /* invoke callback function */ + (*asp->callback_fn[line])(asp->callback_parm[line]); + /* clear callback state reject intack call */ + asp->callback_fn[line] = NO_ICA_CALLBACK; + host_ica_unlock(); + return ICA_INTACK_REJECT; + } +#endif /* CPU_40_STYLE */ + + line += 8; /* make in range 8 - 15 for iret hook */ + + } + else + { + asp = &adapter_state[ICA_MASTER]; /* also excuse to use asp */ + +#if defined(CPU_40_STYLE) && !defined(NTVDM) + /* do callback processing for action interrupt */ + if (asp->callback_fn[line] != NO_ICA_CALLBACK) + { + /* invoke callback function */ + (*asp->callback_fn[line])(asp->callback_parm[line]); + /* clear callback state & return reject */ + asp->callback_fn[line] = NO_ICA_CALLBACK; + host_ica_unlock(); + return ICA_INTACK_REJECT; + } +#endif /* CPU_40_STYLE */ + + int_no = line + asp->ica_base; + } + + +#if defined (NTVDM) + +#ifdef MONITOR + *hook_address = host_iret_bop_table_addr(line); + if (*hook_address) { + iretHookActive |= 1 << line; + } +#else + *hook_address = 0; +#endif + + +#else +#ifdef HOOKED_IRETS + /* check whether IRET Hook required for interrupt on this line. + * If IRET trapping mechanism is via bops on stack then this may + * also be conditional on the current state of the emulated hardware. + * This is checked via a host call (or define). + */ + if (host_valid_iret_hook()) + { + *hook_address = ica_iret_hook_needed(line); + +#ifdef CPU_40_STYLE + if (*hook_address != 0) + { + IU32 al = line >= 8 ? line - 8 : line; /* line no. within adapter */ + + /* about to do iret hooked interrupt so increase depth */ + asp->isr_depth[al]++; + asp->isr_progress[al][asp->isr_depth[al]] = asp->isr_progress[al][asp->isr_depth[al]-1]; + } +#endif /* CPU_40_STYLE */ + } +#endif /* HOOKED_IRETS */ +#endif /* !NTVDM */ + + host_ica_unlock(); /* real lock if supported */ + + return(int_no); +} + + +#ifndef NTVDM +#ifdef CPU_40_STYLE + +/*( + ======================= Asynchronous Access to the ICA ========================== + + Potential asynchronous interrupt sources, in descending order of priority + so that the higher priority interrupt gets raised first (saves a bit of work) + These things will share the CPU_SIGIO_EVENT callback from the CPU, and may have + their own specific routine to be called (which presumably includes ica_hw_interrupt, + but doesn't need to do so). + +========================================================================= +)*/ +typedef struct { + IU32 adapter; + IU32 line_no; + void (*interrupt) IPT0(); + IBOOL pending; +} ICA_ASYNC_HANDLER; + +#define ICA_IMPOSSIBLE_LINE 100 + +/* Make this a GLOBAL variable so that the C compilers can't optimise + * accesses to it. + */ +GLOBAL ICA_ASYNC_HANDLER async_handlers[] = { + +#ifdef NOVELL + { ICA_SLAVE, NETWORK_INT, host_sigio_event }, +#endif /* NOVELL */ + +#ifdef SWIN_HAW + { ICA_SLAVE, SWIN_HAW_INT, 0 }, +#endif /* SWIN_HAW */ + +#ifdef ASPI + { ICA_SLAVE, ASPI_INT, 0 }, +#endif /* ASPI */ + + { 0, ICA_IMPOSSIBLE_LINE, 0} +}; + +/*( +======================= ica_async_hw_interrupt ========================== + +PURPOSE: Simplified interface to replace ica_hw_interrupt() when triggered + by truly asynchronous host facilties such as signal handlers. This + routine remembers the need for an interrupt on the appropriate line, + notifies the CPU that a SIGIO event has occurred, and issues the + necessary ica_hw_interrupt calls during the ica_sigio_event callback. + +INPUT: adapter: IU32. master/slave. + line: IU32. IRQ line interrupt will appear on. + call_count: IU32. number of interrupts (must be 1). + +========================================================================= +)*/ + +GLOBAL void ica_async_hw_interrupt IFN3(IU32, adapter, IU32, line_no, IS32, call_count) +{ + ICA_ASYNC_HANDLER *iahp; + +#ifndef PROD + if (call_count != 1) { + always_trace3("ica_async_interrupt(%s, %d, %d): call_count must be 1", + adapter? "MASTER":"SLAVE", line_no, call_count); + } +#endif /* !PROD */ + + for (iahp = async_handlers; iahp->line_no != ICA_IMPOSSIBLE_LINE; iahp++) { + if (iahp->adapter == adapter && iahp->line_no == line_no) { + + /* This is as near to an atomic action as we can easily arrange, + * though there is a minute possibility of missing an interrupt + * if it is called between the test and the store in the ica_sigio_event + * handler below. + */ + if (!iahp->pending) { + iahp->pending = TRUE; /* set the flag */ + cpu_interrupt(CPU_SIGIO_EVENT, 0); /* inform the CPU */ + } + return; + } + } + always_trace2("Unexpected ica_async_interrupt(%d, %d)", adapter, line_no); +} + +/*( + ========================== ica_sigio_event ========================== + +PURPOSE: Called by the CPU in response to cpu_interrupt(CPU_SIGIO_EVENT,0) + at a point when it is possible to make calls to the ICA hardware + emulation without suffering from race conditions etc. + +========================================================================= +)*/ + +GLOBAL void ica_sigio_event IFN0() +{ + ICA_ASYNC_HANDLER *iahp; + + for (iahp = async_handlers; iahp->line_no != ICA_IMPOSSIBLE_LINE; iahp++) { + /* This is as near to an atomic action as we can easily arrange, + * though there is a minute possibility of missing an interrupt... + */ + if (iahp->pending) { + iahp->pending = FALSE; /* clear the flag */ + if (iahp->interrupt) { + (*(iahp->interrupt))(); /* call special handler */ + } else { + ica_hw_interrupt(iahp->adapter, iahp->line_no, 1); + } + } + } + +} + +LOCAL void ica_sigio_init IFN0() +{ + ICA_ASYNC_HANDLER *iahp; + + for (iahp = async_handlers; iahp->line_no != ICA_IMPOSSIBLE_LINE; iahp++) { + iahp->pending = FALSE; + } +} + +/*( + =========================== action_interrupt ========================== + +PURPOSE: Associate an action with an interrupt on the line. When the CPU + is next able to process an interrupt on the requested line, the + callback function will be executed. That callback can then call + the relevant hardware interrupt interface once it has performed + the rest of the associated emulation. + +INPUT: adapter: IU32. master/slave. + line: IU32. IRQ line interrupt will appear on. + func: callback function address to callback when line available. + parm: IU32. parameter to pass to above fn. + +OUTPUT: Returns false (failure) if action_int already pending on that line + otherwise true (success). + +========================================================================= +)*/ +GLOBAL IBOOL +action_interrupt IFN4(IU32, adapter, IU32, line, ICA_CALLBACK, func, IU32, parm) +{ + ADAPTER_STATE *asp = &adapter_state[adapter]; + + host_ica_lock(); /* real lock if available */ + + line &= 7; + + /* check if callback already outstanding on this line */ + if (asp->callback_fn[line] != NO_ICA_CALLBACK) + { +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "action_interrupt called before line %d cleared", line); + trace(icamsgbuf, DUMP_NONE); + } +#endif /* PROD */ + host_ica_unlock(); /* real unlock if available */ + return(FALSE); + } + + /* store callback information */ + asp->callback_fn[line] = func; + asp->callback_parm[line] = parm; + + /* set interrupt request bit */ + asp->ica_irr |= (1 << line); + asp->ica_count[line]++; + + /* make apparent interrupt visible to apps */ + asp->ica_isr |= (1 << line); + + /* get cpu attention for this int. (i.e. get intack called a.s.a.p) */ + host_set_hw_int(); + + host_ica_unlock(); /* real unlock */ +} + +/*( + ======================== cancel_action_interrupt ======================= + +PURPOSE: Associate an action with an interrupt on the line. When the CPU + is next able to process an interrupt on the requested line, the + callback function will be executed. That callback can then call + the relevant hardware interrupt interface once it has performed + the rest of the associated emulation. + +INPUT: adapter: IU32. master/slave. + line: IU32. IRQ line to cancel interrupt action + +OUTPUT: None. + +========================================================================= +)*/ +GLOBAL void +cancel_action_interrupt IFN2(IU32, adapter, IU32, line) +{ + ADAPTER_STATE *asp = &adapter_state[adapter]; + + host_ica_lock(); /* real lock if available */ + + /* remove visibility of interrupt request. */ + asp->ica_isr &= ~(1 << line); + + /* irr & count should be cleared by intack, but possible this fn. + * has been called before the callback has been executed. + */ + if (asp->callback_fn[line] != NO_ICA_CALLBACK) + { + asp->ica_irr &= ~(1 << line); + asp->ica_count[line] = 0; + } + + /* clear callback information */ + asp->callback_fn[line] = NO_ICA_CALLBACK; + asp->callback_parm[line] = 0; + + host_ica_unlock(); /* remove real lock */ + +} +#endif /* CPU_40_STYLE */ + +#endif /* !NTVDM */ + + + +#if defined(NTVDM) + +#ifdef MONITOR +/* + * Assumes caller has ica lock + */ + +GLOBAL void +ica_iret_hook_called IFN1(IU32, abs_line) +{ + int i; + IU32 adapter = abs_line >> 3; + + iretHookActive &= ~(1 << abs_line); + if ((i = ica_scan_irr(adapter)) & 0x80) + ica_interrupt_cpu(adapter, i & 0x07); +} + + +GLOBAL void +ica_iret_hook_control IFN3(IU32, adapter, IU32, line, IBOOL, enable) +{ + int mask = 1 << (line + (adapter << 3)); + + host_ica_lock(); + + if (enable) + iretHookMask |= mask; + else + iretHookMask &= ~mask; + + host_ica_unlock(); +} +#else + +/* + * obsolete, to be removed... but the current ntvdm emulator libs ref + * */ + +GLOBAL void +ica_iret_hook_called IFN1(IU32, abs_line) +{ + return; // do nothing! +} +#endif + +#endif /* NTVDM */ + + +#ifdef HOOKED_IRETS +#ifndef GISP_CPU /* GISP has own version of this routine */ + +GLOBAL IU32 ica_iret_hook_needed IFN1(IU32, line) +{ + IU16 ireq_mask = 1 << line; + +#ifndef PROD + if (line < 0 || line > 15) + { + /* Line is out of range */ + sprintf(icamsgbuf, "**** ICA IRET HOOK IMPOSSIBLE line %d ****", line); + trace(icamsgbuf, DUMP_NONE); + return 0; + } +#endif + + /* does this line require iret hooks */ + if (!(iretHookMask & ireq_mask)) + /* Line not hooked. */ + return 0; + + /* if iret hooks implemented via bops, check bop table addresses ok */ + if (host_bop_style_iret_hooks()) { + iretHookActive |= ireq_mask; + return(host_iret_bop_table_addr(line)); + } + else { + return(line + 1); + } +} +#endif /* GISP_CPU */ + +GLOBAL void +ica_iret_hook_control IFN3(IU32, adapter, IU32, line, IBOOL, enable) +{ + int mask = 1 << (line + (adapter << 3)); + + if (enable) + iretHookMask |= mask; + else + iretHookMask &= ~mask; +} + + +GLOBAL void +ica_iret_hook_called IFN1(IU32, abs_line) +{ + ADAPTER_STATE *asp; + IU32 adapter = abs_line >> 3; + IU32 line = abs_line - (adapter <<3); + IU8 i; + +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "**** ICA IRET HOOK, line %d ****", line); + trace(icamsgbuf, DUMP_NONE); + } +#endif + +#ifdef CPU_40_STYLE + asp = &adapter_state[adapter]; + asp->isr_time_decay[line][asp->isr_depth[line]] = 0; + asp->isr_depth[line]--; + + /* back to base stack level so restart first level recursion counter */ + if (asp->isr_depth[line] == 0) + asp->isr_progress[line][1] = 0; + + /* enable interrupts on this line */ + if (asp->isr_depth[line] < MAX_ISR_DEPTH) + iretHookActive &= ~(1 << abs_line); +#else + UNUSED(asp); /* anti warning */ + iretHookActive &= ~(1 << abs_line); +#endif /* CPU_40_STYLE */ + + + if ((i = ica_scan_irr(adapter)) & 0x80) + ica_interrupt_cpu(adapter, i & 0x07); +} + + +#if defined(CPU_40_STYLE) +#define HOWOFTEN 18 /* approx once per second */ +#define MAXAGE 8 /* passes before purge */ +GLOBAL void +ica_check_stale_iret_hook IFN0() +{ + SAVED int howoften = 18; + int line, depth, loop; + ADAPTER_STATE *asp; + IS32 *cpdelay; + + howoften --; + if (howoften == 0) + { + howoften = 18; + + host_ica_lock(); + asp = &adapter_state[0]; + for (line = 0; line < 8; line++) + { + if (iretHookMask & (1 << line)) + { + for (depth = 0; depth < asp->isr_depth[line]; depth++) + { + asp->isr_time_decay[line][depth]++; + if (asp->isr_time_decay[line][depth] == MAXAGE) + { + asp->isr_time_decay[line][depth] = 0; + if (depth == 0 && asp->ica_count[line] == 0) + continue; /* line idle */ + + cpdelay = &asp->isr_time_decay[line][depth]; + /* lose hook data for this depth */ + loop = depth; + while(loop <= asp->isr_depth[line]) + { + loop ++; + *cpdelay = *(cpdelay + 1); + cpdelay++; + } + asp->isr_depth[line]--; + + /* fix cpu side */ + PurgeLostIretHookLine(line + 1, depth); + + /* permit intrs on this line */ + iretHookActive &= ~(1 << line); + + break; /* one hook at a time */ + } + } + } + } + asp = &adapter_state[1]; + for (line = 0; line < 8; line++) + { + if (iretHookMask & (0x10 << line)) + { + for (depth = 0; depth < asp->isr_depth[line]; depth++) + { + asp->isr_time_decay[line][depth]++; + if (asp->isr_time_decay[line][depth] == MAXAGE) + { + asp->isr_time_decay[line][depth] = 0; + if (depth == 0 && asp->ica_count[line] == 0) + continue; /* line idle */ + + cpdelay = &asp->isr_time_decay[line][depth]; + /* lose hook data for this depth */ + loop = depth; + while(loop <= asp->isr_depth[line]) + { + loop ++; + *cpdelay = *(cpdelay + 1); + cpdelay++; + } + asp->isr_depth[line]--; + + /* fix cpu side */ + PurgeLostIretHookLine(line + 9, depth); + + /* permit intrs on this line */ + iretHookActive &= ~(1 << (8 + line)); + + break; /* one hook at a time */ + } + } + } + } + host_ica_unlock(); + } +} +#endif /* CPU_40_STYLE */ +#endif /* HOOKED_IRETS */ + + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_INIT.seg" +#endif + +#define INIT0_ICW1 (IU8)0x11 +#define INIT0_ICW2 (IU8)0x08 +#define INIT0_ICW3 (IU8)0x04 +#define INIT0_ICW4 (IU8)0x01 + +#ifdef NTVDM +#define INIT0_OCW1 (IU8)0x0 + +#else + +/* POST leaves some int lines masked out (including comms and lpt lines) */ +/* The setting of the bits is spread out throughout the real POST code + * but is collected into one place here. I think that this will not cause + * any problems but it is conceivable that it will harm other OS's than + * DOS (eg OS/2 or coherent etc.) + */ +#define INIT0_OCW1 (IU8)0xb8 +#endif /* NTVDM */ + +void ica0_post IFN0() +{ + ica_outb(ICA0_PORT_0, INIT0_ICW1); + ica_outb(ICA0_PORT_1, INIT0_ICW2); + ica_outb(ICA0_PORT_1, INIT0_ICW3); + ica_outb(ICA0_PORT_1, INIT0_ICW4); + ica_outb(ICA0_PORT_1, INIT0_OCW1); +} + +void ica0_init IFN0() +{ + io_addr i; + + /* + * Set up the IO chip select logic for adapter 0. (Master). + */ + +#ifdef NTVDM + io_define_inb(ICA0_ADAPTOR, ica_inb); + io_define_outb(ICA0_ADAPTOR, ica_outb); +#else + io_define_inb(ICA0_ADAPTOR, ica_inb_func); + io_define_outb(ICA0_ADAPTOR, ica_outb_func); +#endif + + for(i = ICA0_PORT_START; i <= ICA0_PORT_END; i++) + io_connect_port(i, ICA0_ADAPTOR, IO_READ_WRITE); + + adapter_state[ICA_MASTER].ica_master = TRUE; + + +#ifndef NTVDM + +#ifdef CPU_40_STYLE + for (i = 0; i < 8; i++) + { + adapter_state[ICA_MASTER].callback_fn[i] = NO_ICA_CALLBACK; + adapter_state[ICA_MASTER].isr_depth[i] = 0; + } + + ica_sigio_init(); + +#endif /* CPU_40_STYLE */ + + +#ifdef HOOKED_IRETS + /* on iret-hooked, non NT ports, enable iret hooks */ + iretHooksEnabled = TRUE; +#endif + +#endif /* !NTVDM */ + +} + + +#define INIT1_ICW1 (IU8)0x11 +#define INIT1_ICW2 (IU8)0x70 +#define INIT1_ICW3 (IU8)0x02 +#define INIT1_ICW4 (IU8)0x01 + +#ifdef NTVDM +#define INIT1_OCW1 (IU8)0x0 + + +/* POST leaves some int lines masked out (reserved lines and RTC) */ +/* see the comment on POST setting mask bits for master ica */ +#elif ASPI +#define INIT1_OCW1 (IU8)0x8d +#else /* ASPI */ +#define INIT1_OCW1 (IU8)0x9d +#endif /* ASPI */ + + + + +void ica1_post IFN0() +{ + ica_outb(ICA1_PORT_0, INIT1_ICW1); + ica_outb(ICA1_PORT_1, INIT1_ICW2); + ica_outb(ICA1_PORT_1, INIT1_ICW3); + ica_outb(ICA1_PORT_1, INIT1_ICW4); + ica_outb(ICA1_PORT_1, INIT1_OCW1); +} + +void ica1_init IFN0() +{ + io_addr i; + + /* + * Set up the IO chip select logic for adapter 1. (Slave). + */ + +#ifdef NTVDM + io_define_inb(ICA1_ADAPTOR, ica_inb); + io_define_outb(ICA1_ADAPTOR, ica_outb); +#else + io_define_inb(ICA1_ADAPTOR, ica_inb_func); + io_define_outb(ICA1_ADAPTOR, ica_outb_func); +#endif + + for(i = ICA1_PORT_START; i <= ICA1_PORT_END; i++) + io_connect_port(i, ICA1_ADAPTOR, IO_READ_WRITE); + + adapter_state[ICA_SLAVE].ica_master = FALSE; + +#if defined(CPU_40_STYLE) && !defined(NTVDM) + for (i = 0; i < 8; i++) + { + adapter_state[ICA_SLAVE].callback_fn[i] = NO_ICA_CALLBACK; + adapter_state[ICA_SLAVE].isr_depth[i] = 0; + } +#endif /* CPU_40_STYLE */ + +} + + +#if !defined(PROD) +/* + * The following functions are used for DEBUG purposes only. + */ +LOCAL void +ica_print_int IFN2(char *, str, IS32, val) +{ + printf("%-20s 0x%02X\n", str, val); +} + +LOCAL void +ica_print_str IFN2(char *, str, char *, val) +{ + printf("%-20s %s\n", str, val); +} + +GLOBAL void +ica_dump IFN1(IU32, adapter) +{ + ADAPTER_STATE *asp = &adapter_state[adapter]; + char buff[80]; + int i; + + if (adapter == ICA_MASTER) + printf("MASTER 8259A State:\n\n"); + else + printf("SLAVE 8259A State:\n\n"); + + ica_print_str("ica_master", (asp->ica_master ? "Master" : "Slave")); + ica_print_int("ica_irr", asp->ica_irr); + ica_print_int("ica_isr", asp->ica_isr); + ica_print_int("ica_imr", asp->ica_imr); + ica_print_int("ica_ssr", asp->ica_ssr); + ica_print_int("ica_base", asp->ica_base); + ica_print_int("ica_hipri", asp->ica_hipri); + ica_print_int("ica_mode", asp->ica_mode); + printf("%-20s %8d%8d%8d%8d%8d%8d%8d%8d\n", "ica_count", + asp->ica_count[0], asp->ica_count[1], asp->ica_count[2], asp->ica_count[3], + asp->ica_count[4], asp->ica_count[5], asp->ica_count[6], asp->ica_count[7]); + ica_print_int("ica_int_line", asp->ica_int_line); + ica_print_str("ica_cpu_int", (asp->ica_cpu_int ? "TRUE" : "FALSE")); + +#if defined(CPU_40_STYLE) && !defined(NTVDM) + printf("%-20s %8d%8d%8d%8d%8d%8d%8d%8d\n", "callback_parm", + asp->callback_parm[0], asp->callback_parm[1], asp->callback_parm[2], asp->callback_parm[3], + asp->callback_parm[4], asp->callback_parm[5], asp->callback_parm[6], asp->callback_parm[7]); + printf("%-20s %8p%8p%8p%8p%8p%8p%8p%8p\n", "callback_fn", + asp->callback_fn[0], asp->callback_fn[1], asp->callback_fn[2], asp->callback_fn[3], + asp->callback_fn[4], asp->callback_fn[5], asp->callback_fn[6], asp->callback_fn[7]); + printf("%-20s %8d%8d%8d%8d%8d%8d%8d%8d\n", "isr_depth", + asp->isr_depth[0], asp->isr_depth[1], asp->isr_depth[2], asp->isr_depth[3], + asp->isr_depth[4], asp->isr_depth[5], asp->isr_depth[6], asp->isr_depth[7]); + for (i=0; i<(MAX_ISR_DEPTH + 1); i++) + { + int j; + int progress[8]; + IBOOL some_progress = FALSE; + + for (j = 0; j < 8; j++) + { + if (asp->isr_depth[j] >= i) + { + some_progress = TRUE; + progress[j] = asp->isr_progress[j][i]; + } + else + { + progress[j] = 0; + } + } + sprintf (buff, "isr_progress[%d]", i); + printf("%-20s %8d%8d%8d%8d%8d%8d%8d%8d\n", buff, + progress[0], progress[1], progress[2], progress[3], + progress[4], progress[5], progress[6], progress[7]); + if (!some_progress) + break; + } + for (i=0; iisr_depth[j] >= i) + { + decay[j] = asp->isr_time_decay[j][i]; + some_decay = TRUE; + } + else + { + decay[j] = 0; + } + } + sprintf (buff, "isr_time_decay[%d]", i); + printf("%-20s %8d%8d%8d%8d%8d%8d%8d%8d\n", buff, + decay[0], decay[1], decay[2], decay[3], + decay[4], decay[5], decay[6], decay[7]); + if (!some_decay) + break; + } +#endif /* CPU_40_STYLE && !NTVDM */ + + printf("\n\n"); +} +#endif /* PROD */ + diff --git a/private/mvdm/softpc.new/base/system/ica.old b/private/mvdm/softpc.new/base/system/ica.old new file mode 100644 index 000000000..7841dc031 --- /dev/null +++ b/private/mvdm/softpc.new/base/system/ica.old @@ -0,0 +1,2011 @@ +#include "insignia.h" +#include "host_def.h" + +/* + * O/S include files. + */ +#include +#include TypesH + +/* + * SoftPC Revision 2.0 + * + * Title : ica.c + * + * Description : Interrupt Controller Adapter + * + * Author : Jim Hatfield + * (Upgraded to Rev. 2 by David Rees) + * + * Notes : The ICA is responsible for maintaining a mapping + * between an Interrupt Request line and a vector + * number defining an entry in the Interrupt Vector + * table. On reciept of a hardware interrupt, it + * passes the appropriate vector number to the cpu. + * + * The following functions are provided: + * + * ica0_init() - Initialise the first ICA (0 = Master) + * ica1_init() - Initialise the first ICA (1 = Slave) + * ica_inb() - Read a byte from an ICA register + * ica_outb() - Write a command (byte) to the ICA + * + * ica_hw_interrupt() - Raise a hardware interrupt line + * ica_clear_int() - Drop an interrupt line + * ica_intack() - Acknowledge an interrupt + * + * If DEBUG is defined, the following function + * is provided: + * + * ica_dump() - printd out contents of one element + * of adapter_state[] + * + * Restrictions : This software emulates an Intel 8259A Priority Interrupt + * controller as defined in the Intel Specification pp 2-95 to + * 2-112 and pp 2-114 to 2-181, except for the following: + * + * 1) Cascade mode is not supported at all. This mode requires + * that there is more than one 8259A in a system, whereas + * the PC/XT has only one. + * + * 2) 8080/8085 mode is not supported at all. In this mode the + * 8259A requires three INTA pulses from the CPU, and an 8088 + * only gives two. This would cause the device to lock up and + * cease to function. + * + * 3) Level triggered mode is not supported. The device is + * assumed to operate in edge triggered mode. A call of + * ica_hw_interrupt by another adapter will cause a bit to + * be latched into the Interrupt Request Register. A subsequent + * call of ica_clear_int will cause the bit to be unlatched. + * + * 4) Buffered mode has no meaning in a software emulation and + * so is ignored. + * + * 5) An enhancement is provided such that an adapter may raise + * more than one interrupt in one call of ica_hw_interrupt. + * The effect of this is that as soon as an INTACK is called + * another interrupt is requested. If the chip is in Automatic + * EOI mode then all of the interrupts will be generated in + * one burst. + * + * 5a) A further enhancement is provided such that a delay + * (a number of Intel instructions) can be requested before + * the interrupt takes effect. This delay applies to every + * interrupt if more than one is requested. + * + * 6) Special Fully Nested mode is not supported, since it is + * a submode of Cascade Mode. + * + * 7) Polling is not completely implemented. When a Poll is + * received and there was an interrupt request, the CPU INT + * line (which must have been high) is pulled low. This + * software does NOT reset the jump table address since there + * may be a software interrupt outstanding. However it does + * remove the evidence of a hardware interrupt, which will + * cause the CPU to reset the table address itself. + * + * When an unsupported mode is set, it is remembered for + * diagnostic purposes, even though it is not acted upon. + * + * Modifications for Revision 2.0 : + * 1) Restrictions 1 and 6 are lifted. The PC-AT contains two + * 8259A interrupt controllers. The first (ICA 0) is in Master + * mode, and the second (ICA 1) is in slave mode, and its + * interrupts are directed to IR2 on the master chip. Hence + * cascade mode must be supported to the extent necessary + * to emulate this situation. Also, Special Fully Nested + * Mode must work too. NB. The AT BIOS does NOT initialise + * the Master 8259A to use Special Fully Nested Mode. + * + * 2) Restriction 5a (which is an enhancement) has been + * eliminated. Apparently this never really achieved + * its aim. + * + * 3) All the static variables declared in this module + * have been placed within a structure, ADAPTER_STATE, + * which is used as the type for a two-element array. + * This allows the code to emulate two 8259As. + * + * 4) The routine ica_standard_vector_address() has been + * eliminated, because it is not used anymore. + * + * 5) The function ica_init() has been split into two: + * ica0_init() and ica1_init(). The initialization + * via ICWs will now be done by a BIOS POST routine. + * + * 6) In the PC-AT, an 8259A determines its Master/Slave + * state by examining the state of the SP/EN pin. We + * simulate this by setting a flag 'ica_master' to + * the appropriate value in the ica_init() routines. + * + * 7) The guts of the exported function ica_intack() + * have been placed in an internal routine, + * ica_accept(). This change allows for the INTAs + * to work for both the master and slave 8259As. + * + * 8) Added debug function (ica_dump) to allow module + * testing. + * + */ + +#ifdef SCCSID +LOCAL char SccsID[]="@(#)ica.c 1.31 10/7/94 Copyright Insignia Solutions Ltd."; +#endif + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_ICA.seg" +#endif + +/* these ports have iret hooks enabled automatically - others will have to + * define hooked_irets as parts of their configuration + */ +#if defined(CPU_40_STYLE) || defined(NTVDM) || defined(GISP_CPU) +#define HOOKED_IRETS /* switch on IRET hooks */ +#endif +/* + * SoftPC include files + */ +#include "xt.h" +#include "trace.h" +#include "ios.h" +#include CpuH +#include "ica.h" +#include "host.h" +#include "yoda.h" +#include "debug.h" + +#ifdef NTVDM +#include "nt_eoi.h" +#endif + +/* + * ============================================================================ + * Local Data + * ============================================================================ + */ + +/* + * Table of function pointers to access PIC routines + */ +void (*ica_inb_func) IPT2(io_addr, port, IU8 *, value); +void (*ica_outb_func) IPT2(io_addr, port, IU8, value); +void (*ica_hw_interrupt_func) IPT3(IU32, adapter, IU32, line_no, + IS32, call_count); +#ifdef DELAYED_INTS +void (*ica_hw_interrupt_delay_func) IPT4(IU32, adapter, IU8, line_no, + IS32, call_count, IS32, delay); +#endif +void (*ica_clear_int_func) IPT2(IU32, adapter, IU32, line_no); + +/* + * This variable only appears to be accessed local to this module, so make it + * local for 4.0 rather than depending on xt.c to define it. If anyone + * really needs to set it globally, they should put it into ica.h rather than + * kludging our nice clean cpu interface. So there. + */ +#ifdef CPU_40_STYLE +LOCAL IUM8 ica_lock; + +#define MAX_ISR_DEPTH 2 +#define ICA_INTACK_REJECT -1 +#endif + +#ifndef PROD +char icamsgbuf[132]; /* Text buffer for debug messages */ +#endif + +/* + * ============================================================================ + * Data relating to 8259A is replicated in two element array. + * ============================================================================ + */ + +#ifdef NTVDM +/* + * NT VDM has to export ICA definition for host and for X86 kernel. To make the + * namings of these externally referenced type/var more sensible but leaving + * the code substantially as the SoftPC base, use macros to 'edit' the + * adapter_state variable and type. + */ +VDMVIRTUALICA VirtualIca[2]; +#define adapter_state VirtualIca +#define ADAPTER_STATE VDMVIRTUALICA + +#define EOI_HOOKS /* switch on EOI hooks */ + +/* iret hook related defines */ +#ifndef MONITOR +/* only valid in real mode or when enabled from DPMI */ +#define host_valid_iret_hook() (!getPE() || iretHooksEnabled) +#define host_bop_style_iret_hooks() (FALSE) +#else +#define host_valid_iret_hook() (TRUE) +#define host_bop_style_iret_hooks() (TRUE) + +#endif +extern ULONG DelayIrqLine; /* see nt_eoi.c, delayed ints */ +BOOL PMEmulHookEnabled = FALSE; /* PM iret hooks for emulator on/off */ +#define host_ica_real_locks() (TRUE) +#else /* !NTVDM */ + +/* regular SoftPC definitions for ica */ +ADAPTER_STATE adapter_state[2]; + +/* iret hook related defines */ +#ifdef PROD +#define host_valid_iret_hook() (TRUE) +#else /* allow disabling of iret hooks whilst debugging */ +#define host_valid_iret_hook() (iretHooksEnabled) +#endif +#define host_bop_style_iret_hooks() (FALSE) +#define host_iret_bop_table_addr(line) (0) + +/* crit section style locks only available on NT */ +#define host_ica_lock() +#define host_ica_unlock() +#define host_ica_real_locks() (FALSE) + +#endif /* NTVDM */ + +#ifdef HOOKED_IRETS /* iret hook related variables */ +LOCAL IBOOL iretHooksEnabled = FALSE; +LOCAL IU16 iretHookMask = 0; /* No interrupts hooked by default */ +#endif +LOCAL IU16 iretHookActive = 0; + +/* + * ============================================================================ + * Local defines + * ============================================================================ + */ + +#define ICA_BASE_MASK 0xf8 /* Mask to get relevant bits out */ + +/* + * The following defines describe the usage of the mode bits + */ + +#define ICA_IC4 0x0001 /* 0 -> no ICW4, 1 -> ICW4 will be sent */ +#define ICA_SINGL 0x0002 /* 0 -> cascade, 1 -> single mode */ +#define ICA_ADI 0x0004 /* 0 -> 8 byte, 1 -> 4 byte interval */ +#define ICA_LTIM 0x0008 /* 0 -> edge, 1 -> level trigger */ +#define ICA_ICW1_MASK 0x000f /* Mask to select above bits in mode */ + +#define ICA_MPM 0x0010 /* 0 -> 8080, 1 -> 8086/8088 mode */ +#define ICA_AEOI 0x0020 /* 1 -> Automatic End-Of-Int Mode is on */ +#define ICA_MS 0x0040 /* 0 -> slave, 1 -> master mode */ +#define ICA_BUF 0x0080 /* 1 -> Buffered Mode is on */ +#define ICA_SFNM 0x0100 /* 1 -> Special Fully Nested Mode is on */ +#define ICA_ICW4_MASK 0x01f0 /* Mask to select above bits in mode */ + +#define ICA_SMM 0x0200 /* 1 -> Special Mask Mode is on */ +#define ICA_RAEOI 0x0400 /* 1 -> Rotate on Auto EOI Mode is on */ +#define ICA_RIS 0x0800 /* 0 -> deliver IRR, 1 -> deliver ISR */ +#define ICA_POLL 0x1000 /* 1 -> Polling is now in progress */ + +/* + * ============================================================================ + * Macros + * ============================================================================ + */ +#define ICA_PORT_0 \ + (adapter ? ICA1_PORT_0 : ICA0_PORT_0) + +#define ICA_PORT_1 \ + (adapter ? ICA1_PORT_1 : ICA0_PORT_1) + +#define adapter_for_port(port) \ + ((port >= ICA0_PORT_START && port <= ICA0_PORT_END) \ + ? ICA_MASTER \ + : ICA_SLAVE \ + ) + +/* + * ============================================================================ + * Internal functions + * ============================================================================ + */ + +LOCAL void ica_interrupt_cpu IPT2(IU32, adapter, IU32, line); +IU8 ica_scan_irr IPT1(IU32, adapter); +IS32 ica_accept IPT1(IU32, adapter); + +#ifdef HOOKED_IRETS +extern IU32 ica_iret_hook_needed IPT1(IU32, line); +#endif + +void +SWPIC_init_funcptrs IFN0() +{ + /* + * initialize PIC access functions for SW [emulated] PIC + */ + ica_inb_func = SWPIC_inb; + ica_outb_func = SWPIC_outb; +#ifdef DELAYED_INTS + ica_hw_interrupt_delay_func = SWPIC_hw_interrupt_delay; +#endif + ica_hw_interrupt_func = SWPIC_hw_interrupt; + ica_clear_int_func = SWPIC_clear_int; +} + +/* + * Please note that ica_eoi is called by SUN_VA code and thus needs to + * be global. + */ + +void ica_eoi IFN3(IU32, adapter, IS32 *, line, IBOOL, rotate) +{ + /* + * End Of Interrupt. If *line is -1, this is a non-specific EOI + * otherwise it is the number of the line to clear. If rotate is + * TRUE, then set the selected line to lowest priority. + */ + + ADAPTER_STATE *asp = &adapter_state[adapter]; + IS32 i, j; + IU8 bit; + IS32 EoiLineNo = -1; /* if EOI_HOOKS defined this is used otherwise */ + /* rely on compiler elimination as not read */ + + if (*line == -1) /* non specific EOI */ + { + /* + * Clear the highest priority bit in the ISR + */ + for(i = 0; i < 8; i++) + { + j = (asp->ica_hipri + i) & 7; + bit = (1 << j); + if (asp->ica_isr & bit) + { + asp->ica_isr &= ~bit; + *line = j; + EoiLineNo = (IS32)*line; + break; + } + } + } + else /* EOI on specific line */ + { + bit = 1 << *line; + if (asp->ica_isr & bit) + EoiLineNo = *line; + asp->ica_isr &= ~bit; + } + +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "**** CPU END-OF-INT (%d) ****", *line); + trace(icamsgbuf, DUMP_NONE); + } +#endif + + if (rotate && (*line >= 0)) + asp->ica_hipri = (*line + 1) & 0x07; + +#ifdef EOI_HOOKS + /* + * CallOut to device registered EOI Hooks + */ + if (EoiLineNo != -1) + host_EOI_hook(EoiLineNo + (adapter << 3), asp->ica_count[EoiLineNo]); +#endif /* EOI_HOOKS */ + + /* + * There may be a lower priority interrupt pending, so check + */ + if ((i = ica_scan_irr(adapter)) & 0x80) + ica_interrupt_cpu(adapter, i & 0x07); +} + +IU8 ica_scan_irr IFN1(IU32, adapter) +{ + /* + * This is the routine which will decide whether an interrupt should + * be generated. It scans the IRR, the IMR and the ISR to determine + * whether one is possible. It is also called when the processor has + * accepted the interrupt to see which one to deliver. + * + * A bit set in the IRR will generate an interrupt if: + * + * 1) The corresponding bit in the IMR is clear + * AND + * 2) The corresponding bit and all higher priority bits in the ISR are + * clear (unless Special Mask Mode, in which case ISR is ignored) + * + * The highest priority set bit which meets the above conditions (if any) + * will be returned with an indicator bit (in the style needed by a Poll) + */ + + ADAPTER_STATE *asp = &adapter_state[adapter]; + IU32 i, j; + IU8 bit, irr_and_not_imr; + IU8 iret_hook_mask; + + /* if iret hooks are not being used, iretHookActive will always be 0 */ + iret_hook_mask = (IU8)(iretHookActive >> (adapter << 3)); + +#ifdef NTVDM + iret_hook_mask |= (IU8)(DelayIrqLine >> (adapter << 3)); +#endif + /* + * A bit can only cause an int if it is set in the IRR + * and clear in the IMR. Generate a set of such bits + */ + + irr_and_not_imr = asp->ica_irr & ~(asp->ica_imr | iret_hook_mask); + + /* + * Check the trivial case first: no bits set + */ + + if (!irr_and_not_imr) + return(7); + + /* + * Handle Special Mask Mode separately, to avoid a test in the loop + */ + + if (asp->ica_mode & ICA_SMM) + { + for(i = 0; i < 8; i++) + { + j = (asp->ica_hipri + i) & 7; + + if (irr_and_not_imr & (1 << j)) + return(0x80 + j); /* Return line no. + indicator */ + } + } + else +#ifndef DELAYED_INTS /* normal code */ + { + if (asp->ica_mode & ICA_SFNM) + return(7); /* No interrupt possible */ + + for(i = 0; i < 8; i++) + { + j = (asp->ica_hipri + i) & 7; + bit = (1 << j); + if (asp->ica_isr & bit) + { + if (irr_and_not_imr & bit) + return(0x80 + j);/* Return line no. + indicator */ + return(7); /* No interrupt possible */ + } + + if (irr_and_not_imr & bit) + return(0x80 + j); /* Return line no. + indicator */ + } + /* Strange. We should not have got here. */ + return(7); + } +#else /* DELAYED_INTS */ + { + IU32 jt; + IS32 tdelay; + + /* Some very dubious code here - attempt to ignore high priority + * delayed interrupts if there is a lower priority one with less + * delay */ + j=8;tdelay=999999; + for(i = 0; i < 8; i++) + { + jt = (asp->ica_hipri + i) & 7; + bit = (1 << jt); + if (asp->ica_isr & bit) + { + return(7); /* No interrupt possible */ + } + + if (irr_and_not_imr & bit) + if(asp->ica_curr_delay[jt] < tdelay) + { + j=jt;tdelay=asp->ica_curr_delay[jt]; + } + } + if(j ^= 8) + return(0x80 + j); /* Return line no. + indicator */ + else + /* Strange. We should not have got here. */ + return(7); + } +#endif /* DELAYED_INTS */ +} + + +IS32 ica_accept IFN1(IU32, adapter) +{ + /* + * NOTE: There is no need to set the lock here, since we are called + * either from the cpu interrupt code, or from ica_inb, both of + * which will have set it for us. + */ + + ADAPTER_STATE *asp = &adapter_state[adapter]; + IU32 line1; + IS32 line2; + IU8 bit; + + /* + * Drop the INT line + */ + + asp->ica_cpu_int = FALSE; + + /* + * Scan the IRR to find the line which we will use. + * There should be one set, but check anyway + * It there isn't, use line 7. + */ + + if (!((line1 = (IU32)ica_scan_irr(adapter)) & 0x80)) + { +#if defined(NTVDM) && defined(MONITOR) + /* Skip spurious ints. These are any that are caused by clearing an + * int when the cpu has already registered that there is an int to + * service. This change tries to remove the performance impact on + * the monitor. + */ + return(-1); +#endif + +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + trace("ica_int_accept: No interrupt found!!", DUMP_NONE); +#endif + line1 = 7; + } + else + { + line1 &= 0x07; + +#ifdef CPU_40_STYLE + /* allow some recursion within hooked ISRs */ + if (asp->isr_depth[line1] >= MAX_ISR_DEPTH) + { + /* disable further interrupts on this line */ + iretHookActive |= 1 << ((adapter << 3) + line1); + + /* do lost iret test here */ + asp->isr_max_depth_req[line1]++; + + /* reached maximum ISR recursion - don't do interrupt */ + return((IS32)-1); + } +#endif /* CPU_40_STYLE */ + + bit = (1 << line1); + asp->ica_isr |= bit; + +#ifndef DELAYED_INTS + + if (--(asp->ica_count[line1]) <= 0) + { /* If count exhausted for this line */ + asp->ica_irr &= ~bit; /* Then finally clear IRR bit */ + asp->ica_count[line1] = 0; /* Just in case */ + } + +#else /* DELAYED_INTS */ + if (--(asp->ica_count[line1]) <= 0) + { /* If count exhausted for this line */ + asp->ica_irr &= ~bit; /* Then finally clear IRR bit */ + asp->ica_count[line1] = 0; /* Just in case */ + asp->ica_curr_delay[line1]=0; /* Just in case */ + asp->ica_delay[line1] = 0; /* Just in case */ + } + else /* reset delay count */ + asp->ica_curr_delay[line1] = asp->ica_delay[line1]; +#endif /* DELAYED_INTS */ + + } + + /* + * If we are in Automatic EOI mode, then issue a non-specific EOI + */ + + if (asp->ica_mode & ICA_AEOI) + { + line2 = -1; + ica_eoi(adapter, &line2, (asp->ica_mode & ICA_RAEOI) == ICA_RAEOI); + } + +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "**** CPU INTACK (%d) ****", line1 + asp->ica_base); + trace(icamsgbuf, DUMP_NONE); + } +#endif + + return((IS32)line1); +} + +LOCAL void ica_interrupt_cpu IFN2(IU32, adapter, IU32, line) +{ + /* + * This routine actually interrupts the CPU. The method it does this + * is host specific, and is done in host_cpu_interrupt(). + */ + + ADAPTER_STATE *asp = &adapter_state[adapter]; + + /* + * If the INT line is already high, do nothing. + */ + + if (asp->ica_cpu_int) + { +#ifndef PROD + if ((io_verbose & ICA_VERBOSE) && (asp->ica_int_line != line)) + { + sprintf(icamsgbuf,"******* INT LINE ALREADY HIGH line=%d ****", asp->ica_int_line); + trace(icamsgbuf, DUMP_NONE); + } +#endif + asp->ica_int_line = line; + +#ifndef DELAYED_INTS + return; +#else + /* save delay for old int */ + asp->ica_curr_delay[asp->ica_int_line]=cpu_int_delay; +#endif /* DELAYED_INTS */ + + } + + /* + * Set the ICA internal flags + */ + + asp->ica_int_line = line; + asp->ica_cpu_int = TRUE; + +#ifdef DELAYED_INTS + cpu_int_delay = asp->ica_curr_delay[line]; +#endif /* DELAYED_INTS */ + + if (asp->ica_master) /* If ICA is Master */ + { +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "**** CPU INTERRUPT (%x) ****", line); + trace(icamsgbuf, DUMP_NONE); + } +#endif + + /* + * Set the 'hardware interrupt' bit in cpu_interrupt_map + */ + +#ifndef DELAYED_INTS +#ifndef CPU_40_STYLE /* No globals in the 4.0 I/F! */ + cpu_int_delay = 0; +#endif +#else /* DELAYED_INTS */ + cpu_int_delay = asp->ica_curr_delay[line]; +#endif /* DELAYED_INTS */ + + host_set_hw_int(); + +#ifdef A2CPU + host_cpu_interrupt(); +#endif + +#ifdef NTVDM + /* call wow routine to check for application unable to service ints */ + if (WOWIdleRoutine) + (*WOWIdleRoutine)(); +#endif + + } + else + { /* If ICA is Slave */ +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "**** SLAVE ICA INTERRUPT (%x) ****", line); + trace(icamsgbuf, DUMP_NONE); + } +#endif + /* + * Signal the Master ICA. + * NB. A kludge is used here. We know that we have + * been called from ica_hw_interrupt(), and + * therefore ica_lock will be at least 1. To + * get the effect we want, it is necessary to + * reduce the value of ica_lock for the duration + * of the call to ica_hw_interrupt. + * + * If the host has implemented critical section style locking + * then the above kludge does not apply. + */ + + ica_lock--; + +#ifndef DELAYED_INTS + + ica_hw_interrupt(ICA_MASTER, asp->ica_ssr, 1); + +#else /* DELAYED_INTS */ + adapter_state[ICA_MASTER].ica_curr_delay[line] = asp->ica_curr_delay[line]; + adapter_state[ICA_MASTER].ica_delay[line] = asp->ica_delay[line]; + ica_hw_interrupt_delay(ICA_MASTER, asp->ica_ssr, 1, cpu_int_delay); +#endif /* DELAYED_INTS */ + + ica_lock++; + } +} + +/* + * ============================================================================ + * External functions + * ============================================================================ + */ + +void SWPIC_inb IFN2(io_addr, port, IU8 *, value) +{ +#ifndef PROD + char *reg_name; +#endif /* nPROD */ + IU32 adapter = adapter_for_port(port); + ADAPTER_STATE *asp = &adapter_state[adapter]; + + /* + * First check the validity of the port + */ + +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + if ((port != ICA_PORT_0) && (port != ICA_PORT_1)) + { + sprintf(icamsgbuf, "ica_inb: bad port (%x)", port); + trace(icamsgbuf, DUMP_NONE); + } +#endif + + /* + * If we are in the middle of a Poll command, then respond to it + */ + + if (asp->ica_mode & ICA_POLL) + { + ica_lock = 1; /* Lock out signal handlers */ + host_ica_lock(); /* real lock if supported */ + + asp->ica_mode &= ~ICA_POLL; + + if ((*value = ica_scan_irr(adapter)) & 0x80) /* See if there is one */ + { + (void) ica_accept(adapter); /* Acknowledge it */ + host_clear_hw_int(); + /* cpu_int_call_count[0] = 0; Not used anymore */ + } + + ica_lock = 0; + host_ica_unlock(); /* free lock if supported */ + +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "ica_inb: responding to Poll with %x", *value); + trace(icamsgbuf, DUMP_NONE); + } +#endif + } + + /* + * If the address is ICA_PORT_0, then deliver either the IRR or the ISR, + * depending on the setting of mode bit ICA_RIS. If the address is + * ICA_PORT_1, then deliver the IMR + */ + + else + { + if (port == ICA_PORT_0) + if (asp->ica_mode & ICA_RIS) + { + *value = asp->ica_isr; +#ifndef PROD + reg_name = "ISR"; +#endif /* nPROD */ + } + else + { + *value = asp->ica_irr; +#ifndef PROD + reg_name = "IRR"; +#endif /* nPROD */ + } + else + { + *value = asp->ica_imr; +#ifndef PROD + reg_name = "IMR"; +#endif /* nPROD */ + } + +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "ica_inb: delivered %s value %x", reg_name, *value); + trace(icamsgbuf, DUMP_NONE); + } +#endif + } +} + +void SWPIC_outb IFN2(io_addr, port, IU8, value) +{ + + /* + * Data sent may either be ICWs or OCWs. All of the OCWs are recognisable + * individually, but only ICW1 may be recognised directly. It will always + * be followed by ICW2, and optionally by ICW3 and/or ICW4, depending upon + * exactly what sort of ICW1 was sent. We use a sequence variable to track + * this and make sure we interpret the data correctly. After power-on, we + * ignore everything until we get an ICW1. + */ + + /* + * Some defines to detect command types + */ +#define ICA_SMM_CMD 0x40 +#define ICA_POLL_CMD 0x04 +#define ICA_RR_CMD 0x02 + + /* + * Local variables + */ + IU32 adapter = adapter_for_port(port); + ADAPTER_STATE *asp = &adapter_state[adapter]; + + SAVED IS32 sequence[2] /* -1 -> power is on but no ICWs received */ + = { -1, -1 }; /* 0 -> fully initialised, OK to proceed */ + /* 2 -> ICW1 received, awaiting ICW2 */ + /* 3 -> ICW2 received, awaiting ICW3 */ + /* 4 -> awaiting ICW4 */ + + IU32 i; /* Counter */ + IS32 line; /* Interrupt line number */ + + /* + * First check the validity of the port + */ + + if ((port & 0xfffe) != ICA_PORT_0) + { +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "ica_outb: bad port (%x)", port); + trace(icamsgbuf, DUMP_NONE); + } +#endif + return; + } + + /* + * If we get an ICW1 then we are into initialisation + */ + + if (((port & 1) == 0) && (value & 0x10)) /**** ICW1 ****/ + { + asp->ica_irr = 0; /* Clear all pending interrupts */ + asp->ica_isr = 0; /* Clear all in-progress interrupts */ + asp->ica_imr = 0; /* Clear the mask register */ + asp->ica_ssr = 0; /* No slaves selected */ + asp->ica_base = 0; /* No base address */ + + asp->ica_hipri = 0; /* Line 0 is highest priority */ + + asp->ica_mode = value & ICA_ICW1_MASK; + /* Set supplied mode bits from ICW1 */ + + for(i = 0; i < 8; i++) + asp->ica_count[i] = 0; /* Clear IRR extension */ + + asp->ica_cpu_int = FALSE; /* No CPU INT outstanding */ + sequence[adapter] = 2; /* Prepare for the rest of the sequence */ + +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + trace("ica_outb: ICW1 detected, initialisation begins", DUMP_NONE); +#endif + return; + } + +/**/ + + /* + * Lock out calls from signal handlers + */ + + ica_lock = 1; + host_ica_lock(); /* real lock if supported */ + + /* + * It wasn't an ICW1, so use the sequence variable to direct our activities + */ + + switch(sequence[adapter]) + { + case 0: /* We are expecting an OCW */ + if (port & 1) /* Odd address -> OCW1 */ + { + asp->ica_imr = value & 0xff; +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "ica_outb: new IMR: %x", value); + trace(icamsgbuf, DUMP_NONE); + } +#endif + if (asp->ica_cpu_int) + { + /* We might have masked out a pending interrupt */ + if (asp->ica_imr & (1 << asp->ica_int_line)) + { + asp->ica_cpu_int = FALSE; /* No CPU INT outstanding */ + if (asp->ica_master) + host_clear_hw_int(); + else + ica_clear_int(ICA_MASTER,asp->ica_ssr); + } + } + /* + * We might have unmasked a pending interrupt + */ + if (!asp->ica_cpu_int && (line = ica_scan_irr(adapter)) & 0x80) + ica_interrupt_cpu(adapter, line & 0x07); /* Generate interrupt */ + } + else +/**/ + if ((value & 8) == 0) /* Bit 3 unset -> OCW2 */ + { + switch ((value >> 5) & 0x07) + { + case 0: /* Clear rotate in auto EOI */ + asp->ica_mode &= ~ICA_RAEOI; +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + trace("ica_outb: Clear Rotate in Auto EOI",DUMP_NONE); +#endif + break; + + case 1: /* Non-specific EOI */ + line = -1; /* -1 -> highest priority */ +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + trace("ica_outb: Non-specific EOI", DUMP_NONE); +#endif + ica_eoi(adapter, &line, FALSE); + break; + + case 2: /* No operation */ + break; + + case 3: /* Specific EOI command */ + line = value & 0x07; +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "ica_outb: Specific EOI, line %d", line); + trace(icamsgbuf, DUMP_NONE); + } +#endif + ica_eoi(adapter, &line, FALSE); + break; + + case 4: /* Set rotate in auto EOI mode */ + asp->ica_mode |= ICA_RAEOI; +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + trace("ica_outb: Set Rotate in Auto EOI",DUMP_NONE); +#endif + break; + + case 5: /* Rotate on non-specific EOI */ + line = -1; /* -1 -> non specific */ +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + trace("ica_outb: Rotate on Non-specific EOI",DUMP_NONE); +#endif + ica_eoi(adapter, &line, TRUE); + break; + + case 6: /* Set priority */ + asp->ica_hipri = (value + 1) & 0x07; +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "ica_outb: Set Priority, line %d", value & 0x07); + trace(icamsgbuf, DUMP_NONE); + } +#endif + break; + + case 7: /* Rotate on specific EOI */ + line = value & 0x07; +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "ica_outb: Rotate on specific EOI, line %d", line); + trace(icamsgbuf, DUMP_NONE); + } +#endif + ica_eoi(adapter, &line, TRUE); + break; + } + } +/**/ + else /* Bit 3 set -> OCW3 */ + { + if (value & ICA_SMM_CMD) /* Set/unset SMM */ + { + asp->ica_mode = (asp->ica_mode & ~ICA_SMM) | (((IU16)value << 4) & ICA_SMM); +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + if (asp->ica_mode & ICA_SMM) + trace("ica_outb: Special Mask Mode set", DUMP_NONE); + else + trace("ica_outb: Special Mask Mode unset", DUMP_NONE); +#endif + } + + if (value & ICA_POLL_CMD) /* We are being polled */ + { + asp->ica_mode |= ICA_POLL; +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + trace("ica_outb: Poll detected!", DUMP_NONE); +#endif + } + else + if (value & ICA_RR_CMD) /* Select IRR or ISR */ + { + asp->ica_mode = (asp->ica_mode & ~ICA_RIS) | (((IU16)value << 11) & ICA_RIS); +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + if (asp->ica_mode & ICA_RIS) + trace("ica_outb: ISR selected", DUMP_NONE); + else + trace("ica_outb: IRR selected", DUMP_NONE); +#endif + } + } + break; + +/**/ + case 2: /* We are expecting a ICW2 */ + if (!(port & 1)) /* Should be odd address, so check */ + { +#ifndef PROD + sprintf(icamsgbuf, "ica_outb: bad port (%x) while awaiting ICW2", + (unsigned)port); + trace(icamsgbuf, DUMP_NONE); +#endif + } + else + { + asp->ica_base = value & ICA_BASE_MASK; +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "ica_outb: vector base set to %x", asp->ica_base); + trace(icamsgbuf, DUMP_NONE); + } +#endif + if (!(asp->ica_mode & ICA_SINGL)) + sequence[adapter] = 3; + else + if (asp->ica_mode & ICA_IC4) + sequence[adapter] = 4; + else + sequence[adapter] = 0; + } + break; + +/**/ + case 3: /* We are expecting a ICW3 */ + if (!(port & 1)) /* Should be odd address, so check */ + { +#ifndef PROD + sprintf(icamsgbuf, "ica_outb: bad port (%x) while awaiting ICW3", + (unsigned)port); + trace(icamsgbuf, DUMP_NONE); +#endif + } + else + { + asp->ica_ssr = value & 0xff; +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "ica_outb: slave register set to %x", asp->ica_ssr); + trace(icamsgbuf, DUMP_NONE); + } +#endif + if (asp->ica_mode & ICA_IC4) + sequence[adapter] = 4; + else + sequence[adapter] = 0; + } + break; + +/**/ + case 4: /* We are expecting a ICW4 */ + if (!(port & 1)) /* Should be odd address, so check */ + { +#ifndef PROD + sprintf(icamsgbuf, "ica_outb: bad port (%x) while awaiting ICW4", + (unsigned)port); + trace(icamsgbuf, DUMP_NONE); +#endif + } + else + { + asp->ica_mode = (asp->ica_mode & ~ICA_ICW4_MASK) + | (((IU16)value << 4) & ICA_ICW4_MASK); +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "ica_outb: IC4 value %x", value); + trace(icamsgbuf, DUMP_NONE); + } + /* + * Check the mode bits for sensible values + */ + if (!(asp->ica_mode & ICA_MPM)) + trace("ica_outb: attempt to set up 8080 mode!", DUMP_NONE); + + if ((asp->ica_mode & ICA_BUF) && !(asp->ica_mode & ICA_MS) + && !(asp->ica_mode & ICA_SINGL)) + trace("ica_outb: attempt to set up slave mode!", DUMP_NONE); +#endif + } + sequence[adapter] = 0; + break; + + case -1: /* Power on but so far uninitialised */ +#ifndef PROD + sprintf(icamsgbuf, "ica_outb: bad port/value (%x/%x) while awaiting ICW1", + (unsigned)port, value); + trace(icamsgbuf, DUMP_NONE); +#endif + break; + + default: /* This cannot happen */; +#ifndef PROD + trace("ica_outb: impossible error, programmer brain-dead", DUMP_NONE); +#endif + } + + ica_lock = 0; + host_ica_unlock(); /* free lock if supported */ +} + + +#ifndef DELAYED_INTS +void SWPIC_hw_interrupt IFN3(IU32, adapter, IU32, line_no, IS32, call_count) +#else /* DELAYED_INTS */ +void SWPIC_hw_interrupt_delay IFN4(IU32, adapter, IU32, line_no, IS32, call_count, IS32, delay) +#endif /* DELAYED_INTS */ +{ + /* + * This routine is called by an adapter to raise an interrupt line. + * It may or may not interrupt the CPU. The CPU may or may not take + * any notice. + */ + + ADAPTER_STATE *asp = &adapter_state[adapter]; + IU8 bit; + IU32 line; + +#ifndef PROD + SAVED char *linename[2][8] = + { + { + "TIMER", + "KEYBOARD", + "RESERVED", + "COM2", + "COM1", + "PARALLEL2", + "DISKETTE", + "PARALLEL1" + }, + { + "REALTIME CLOCK", + "PC NETWORK", + "RESERVED", + "RESERVED", + "RESERVED", + "COPROCESSOR", + "FIXED DISK", + "RESERVED" + } + }; +#endif + + host_ica_lock(); + +#ifndef PROD + if (io_verbose & ICA_VERBOSE_LOCK) + { + if(adapter>1 || line_no>7) + printf("**** H/W INTERRUPT (%sx%d) [%d:%d] ****\n", + linename[adapter][line_no], call_count,adapter,line_no); + } +#endif + + /* + * If there is a request already outstanding on this line, then leave + * the IRR alone, but make a pass through anyway to action previously + * received but locked calls (see below for details). + */ + + bit = (1 << line_no); + if (!(asp->ica_irr & bit)) + { + asp->ica_irr |= bit; /* Pray we don't get a signal here! */ + +#ifdef DELAYED_INTS + asp->ica_delay[line_no] = delay; + asp->ica_curr_delay[line_no] = delay; +#endif /* DELAYED_INTS */ + } + asp->ica_count[line_no] += call_count; /* Add the further requests */ + +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "**** H/W INTERRUPT (%sx%d) ****", + linename[adapter][line_no], call_count); + trace(icamsgbuf, DUMP_NONE); + } +#endif + + /* + * Check the lock flag. If it is set, then this routine is being called + * from a signal handler while something else is going on. We can't just + * ignore the call since we might lose a keyboard interrupt. What we do + * is to set ica_irr and ica_count as normal (ie code above), then return. + * The next interrupt which gets through this test will cause the stored + * interrupt to be processed. This means that any code which plays around + * with ica_irr and ica_count should take a copy first to prevent problems. + * + * If the host supports real (critical section style) locks, then we won't + * get here in the above situation, so eliminate the following test. That + * leaves both primitive & real lock styles intact. + */ + + if (!host_ica_real_locks()) + { + if (ica_lock++) + { +#ifndef PROD + if (io_verbose & ICA_VERBOSE_LOCK) + { + sprintf(icamsgbuf, "*"); + trace(icamsgbuf, DUMP_NONE); + } +#endif + ica_lock--; + return; + } + } + +#ifdef CPU_40_STYLE + if (asp->isr_depth[line_no] >= MAX_ISR_DEPTH) + { + asp->isr_max_depth_req[line_no]++; + + /* first cut at lost iret hook detection - to be upgraded */ + if (asp->isr_max_depth_req[line_no] > 80) + { + asp->isr_max_depth_req[line_no] = 0; + + /* all stacked entries to be cleared */ + asp->isr_depth[line_no] = 0; + + /* permit intrs on this line */ + iretHookActive &= ~(1 << ((adapter << 3) + line_no)); + + /* clear CPU side stack */ + if (!host_bop_style_iret_hooks()) + PurgeLostIretHookLine(((adapter << 3) + line_no) + 1); + } + } +#endif /* CPU_40_STYLE */ + + /* + * Now scan the IRR to see if we can raise a CPU interrupt. + */ + + if ((line = ica_scan_irr(adapter)) & 0x80) + ica_interrupt_cpu(adapter, line & 0x07); + + ica_lock = 0; + host_ica_unlock(); +} + +#ifdef DELAYED_INTS +void SWPIC_hw_interrupt(adapter, line_no, call_count) +IU32 adapter; +IU8 line_no; +IS32 call_count; +{ + ica_hw_interrupt_delay(adapter, line_no, call_count, 0); +} +#endif /* DELAYED_INTS */ + +void SWPIC_clear_int IFN2(IU32, adapter, IU32, line_no) +{ + /* + * This routine is called by an adapter to lower an input line. + * The line will then not interrupt the CPU, unless of course + * it has already done so. + */ + + ADAPTER_STATE *asp = &adapter_state[adapter]; + IU8 bit, irr_check; + + host_ica_lock(); + /* + * Decrement the call count and if zero clear the bit in the IRR + */ + + bit = (1 << line_no); + if (--(asp->ica_count[line_no]) <= 0) + { + irr_check = asp->ica_irr; + asp->ica_irr &= ~bit; + asp->ica_count[line_no] = 0; /* Just in case */ + if ((!asp->ica_master) && (ica_scan_irr(adapter)==7)) + { + asp->ica_cpu_int=FALSE; + ica_clear_int(ICA_MASTER,asp->ica_ssr); + } +#ifdef EOI_HOOKS + /* + // If the line has a pending interrupt, call the eoi hook + // to release any device waiting for an EoiHook. + */ + if ((irr_check & bit) != 0) + host_EOI_hook(line_no + (adapter << 3), -1); +#endif /* EOI_HOOKS */ + } + +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "**** ICA_CLEAR_INT, line %d ****", line_no); + trace(icamsgbuf, DUMP_NONE); + } +#endif + + host_ica_unlock(); +} + +/* + * The emulation code associated with this interrupt line has decided it + * doesn't want to generate any more interrupts, even though the ICA may not + * have got through all the interrupts previously requested. + * Simply clear the corresponding interrupt count. + */ +void ica_hw_interrupt_cancel IFN2(IU32, adapter, IU32, line_no) +{ + host_ica_lock(); + adapter_state[adapter].ica_count[line_no] = 0; + host_ica_unlock(); + ica_clear_int(adapter, line_no); +} + +#ifdef HOOKED_IRETS +GLOBAL IS32 +ica_intack IFN1(IU32 *, hook_address) +#else +GLOBAL IS32 +ica_intack IFN0() +#endif /* HOOKED_IRETS */ +{ + /* + * This routine is called by the CPU when it wishes to acknowledge + * an interrupt. It is equivalent to the INTA pulses from the real + * device. The interrupt number is delivered. + * It can also be called from ica_inb as a Poll. + * + * Modification for Rev. 2: + * + * It is now necessary to detect whether a slave interrupt controller + * is attached to a particular interrupt request line on the master + * ICA. If a slave exists, it must be accessed to discover the + * interrupt vector. + */ + IS32 line; /* the IRQ line */ + IU8 bit; /* bitmask for 'line' */ + IS32 int_no; /* The interrupt number to return, 0-255 */ + ADAPTER_STATE *asp; /* working pointer to adapter */ + + host_ica_lock(); /* real lock if supported */ + + line = ica_accept(ICA_MASTER); + +#ifdef CPU_40_STYLE + if (line == -1) /* skip any spurious ints */ + { + host_ica_unlock(); + return ICA_INTACK_REJECT; + } +#endif /* CPU_40_STYLE */ + + bit = (1 << line); + if (adapter_state[ICA_MASTER].ica_ssr & bit) + { + line = ica_accept(ICA_SLAVE); + int_no = line + adapter_state[ICA_SLAVE].ica_base; + +#ifdef CPU_40_STYLE + if (line == -1) /* skip any spurious ints */ + { + host_ica_unlock(); + return ICA_INTACK_REJECT; + } +#endif /* CPU_40_STYLE */ + +#ifdef CPU_40_STYLE + /* do callback processing for action interrupt */ + asp = &adapter_state[ICA_SLAVE]; + if (asp->callback_fn[line] != NO_ICA_CALLBACK) + { + /* invoke callback function */ + (*asp->callback_fn[line])(asp->callback_parm[line]); + /* clear callback state reject intack call */ + asp->callback_fn[line] = NO_ICA_CALLBACK; + host_ica_unlock(); + return ICA_INTACK_REJECT; + } +#endif /* CPU_40_STYLE */ + line += 8; /* make in range 8 - 15 for iret hook */ + } + else + { + asp = &adapter_state[ICA_MASTER]; /* also excuse to use asp */ + +#ifdef CPU_40_STYLE + /* do callback processing for action interrupt */ + if (asp->callback_fn[line] != NO_ICA_CALLBACK) + { + /* invoke callback function */ + (*asp->callback_fn[line])(asp->callback_parm[line]); + /* clear callback state & return reject */ + asp->callback_fn[line] = NO_ICA_CALLBACK; + host_ica_unlock(); + return ICA_INTACK_REJECT; + } +#endif /* CPU_40_STYLE */ + + int_no = line + asp->ica_base; + } + +#ifdef HOOKED_IRETS + /* check whether IRET Hook required for interrupt on this line. + * If IRET trapping mechanism is via bops on stack then this may + * also be conditional on the current state of the emulated hardware. + * This is checked via a host call (or define). + */ + if (host_valid_iret_hook()) + { + *hook_address = ica_iret_hook_needed(line); + +#ifdef CPU_40_STYLE + if (*hook_address != 0) + { + /* about to do iret hooked interrupt so increase depth */ + asp->isr_depth[line]++; + } +#endif /* CPU_40_STYLE */ + } +#endif /* HOOKED_IRETS */ + + host_ica_unlock(); /* real lock if supported */ + + return(int_no); +} + +#ifdef CPU_40_STYLE +/*( + =========================== action_interrupt ========================== + +PURPOSE: Associate an action with an interrupt on the line. When the CPU + is next able to process an interrupt on the requested line, the + callback function will be executed. That callback can then call + the relevant hardware interrupt interface once it has performed + the rest of the associated emulation. + +INPUT: adapter: IU32. master/slave. + line: IU32. IRQ line interrupt will appear on. + func: callback function address to callback when line available. + parm: IU32. parameter to pass to above fn. + +OUTPUT: Returns false (failure) if action_int already pending on that line + otherwise true (success). + +========================================================================= +)*/ +GLOBAL IBOOL +action_interrupt IFN4(IU32, adapter, IU32, line, ICA_CALLBACK, func, IU32, parm) +{ + ADAPTER_STATE *asp = &adapter_state[adapter]; + + host_ica_lock(); /* real lock if available */ + + line &= 7; + + /* check if callback already outstanding on this line */ + if (asp->callback_fn[line] != NO_ICA_CALLBACK) + { +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "action_interrupt called before line %d cleared", line); + trace(icamsgbuf, DUMP_NONE); + } +#endif /* PROD */ + host_ica_unlock(); /* real unlock if available */ + return(FALSE); + } + + /* store callback information */ + asp->callback_fn[line] = func; + asp->callback_parm[line] = parm; + + /* set interrupt request bit */ + asp->ica_irr |= (1 << line); + asp->ica_count[line]++; + + /* make apparent interrupt visible to apps */ + asp->ica_isr |= (1 << line); + + /* get cpu attention for this int. (i.e. get intack called a.s.a.p) */ + host_set_hw_int(); + + host_ica_unlock(); /* real unlock */ +} + +/*( + ======================== cancel_action_interrupt ======================= + +PURPOSE: Associate an action with an interrupt on the line. When the CPU + is next able to process an interrupt on the requested line, the + callback function will be executed. That callback can then call + the relevant hardware interrupt interface once it has performed + the rest of the associated emulation. + +INPUT: adapter: IU32. master/slave. + line: IU32. IRQ line to cancel interrupt action + +OUTPUT: None. + +========================================================================= +)*/ +GLOBAL void +cancel_action_interrupt IFN2(IU32, adapter, IU32, line) +{ + ADAPTER_STATE *asp = &adapter_state[adapter]; + + host_ica_lock(); /* real lock if available */ + + /* remove visibility of interrupt request. */ + asp->ica_isr &= ~(1 << line); + + /* irr & count should be cleared by intack, but possible this fn. + * has been called before the callback has been executed. + */ + if (asp->callback_fn[line] != NO_ICA_CALLBACK) + { + asp->ica_irr &= ~(1 << line); + asp->ica_count[line] = 0; + } + + /* clear callback information */ + asp->callback_fn[line] = NO_ICA_CALLBACK; + asp->callback_parm[line] = 0; + + host_ica_unlock(); /* remove real lock */ + +} +#endif /* CPU_40_STYLE */ + +#ifdef HOOKED_IRETS + +#ifndef GISP_CPU /* GISP has own version of this routine */ +GLOBAL IU32 ica_iret_hook_needed IFN1(IU32, line) +{ + IU16 ireq_mask = 1 << line; + +#ifndef PROD + if (line < 0 || line > 15) + { + /* Line is out of range */ + sprintf(icamsgbuf, "**** ICA IRET HOOK IMPOSSIBLE line %d ****", line); + trace(icamsgbuf, DUMP_NONE); + return 0; + } +#endif + + /* does this line require iret hooks */ + if (!(iretHookMask & ireq_mask)) + /* Line not hooked. */ + return 0; + + /* if iret hooks implemented via bops, check bop table addresses ok */ + if (host_bop_style_iret_hooks()) + return(host_iret_bop_table_addr(line)); + else + return(line + 1); +} +#endif /* GISP_CPU */ + +GLOBAL void +ica_iret_hook_control IFN3(IU32, adapter, IU32, line, IBOOL, enable) +{ +#ifndef CCPU /* CCPU doesn't support iret hooks */ + int mask = 1 << (line + (adapter << 3)); + + if (enable) + iretHookMask |= mask; + else + iretHookMask &= ~mask; +#endif /* CCPU */ +} + +GLOBAL void +ica_iret_hook_called IFN1(IU32, line) +{ + ADAPTER_STATE *asp; + IU32 adapter = line >> 3; + IU8 i; + +#ifndef PROD + if (io_verbose & ICA_VERBOSE) + { + sprintf(icamsgbuf, "**** ICA IRET HOOK, line %d ****", line); + trace(icamsgbuf, DUMP_NONE); + } +#endif + +#ifdef CPU_40_STYLE + asp = &adapter_state[adapter]; + line >>= (adapter << 3); + asp->isr_depth[line]--; + + /* cant go beyond max depth so can clear counters used at max depth */ + asp->isr_max_depth_req[line] = 0; + asp->isr_max_depth_ack[line] = 0; + + /* enable interrupts on this line */ + if (asp->isr_depth[line] < MAX_ISR_DEPTH) + iretHookActive &= ~(1 << line); +#else + UNUSED(asp); /* anti warning */ + iretHookActive &= ~(1 << line); +#endif /* CPU_40_STYLE */ + + + if ((i = ica_scan_irr(adapter)) & 0x80) + ica_interrupt_cpu(adapter, i & 0x07); +} + +/* Interfaces to allow iret hooks to be enabled/disabled. On NT, enable called + * from DPMI when app requests a switch into protected mode. The assumption is + * that if it does this, it will not lose an IRET BOP table as it might if it + * does its own protected mode memory management. The disable fn. is then + * called when an app. exits. + * On non NTVDM ports with hooks enabled the hooks are enabled at initialisation + * time. (N.B. this is mainly a debugging feature). + */ +GLOBAL void +ica_enable_iret_hooks() +{ + iretHooksEnabled = TRUE; +} + +#ifdef NTVDM +// The following routines are used to support IRET hooks. If an interrupt +// uses an IRET hook then the ICA will not generate a interrupt of that +// type until the IRET hook has been called. + + +// Disable/Enable iret hooks for an ireq line + +void ica_enable_iret_hook(int adapter, int line, int enable) +{ + VDMVIRTUALICA *asp = &VirtualIca[adapter]; + int mask = 1 << (line + adapter*8); + + host_ica_lock(); + + + // Update iret hook mask + + if(enable) + IretHooked |= mask; // Enable iret hook + else + IretHooked &= ~mask; // Disable iret hook + + host_ica_unlock(); +} +#endif + + +GLOBAL void +ica_disable_iret_hooks() +{ + iretHooksEnabled = FALSE; +} +#endif /* HOOKED_IRETS */ + +#ifdef NTVDM +/* Provide external hook to call interrupts - for VDDs that can't see + * function pointer. + */ +void call_ica_hw_interrupt IFN3(IU32, adapter, IU32, line, IS32, call_count) +{ + ica_hw_interrupt(adapter, line, call_count); +} +#endif /* NTVDM */ + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_INIT.seg" +#endif + +#define INIT0_ICW1 (IU8)0x11 +#define INIT0_ICW2 (IU8)0x08 +#define INIT0_ICW3 (IU8)0x04 +#define INIT0_ICW4 (IU8)0x01 +/* POST leaves some int lines masked out (including comms and lpt lines) */ +/* The setting of the bits is spread out throughout the real POST code + * but is collected into one place here. I think that this will not cause + * any problems but it is conceivable that it will harm other OS's than + * DOS (eg OS/2 or coherent etc.) + */ +#define INIT0_OCW1 (IU8)0xb8 + +void ica0_post IFN0() +{ + ica_outb(ICA0_PORT_0, INIT0_ICW1); + ica_outb(ICA0_PORT_1, INIT0_ICW2); + ica_outb(ICA0_PORT_1, INIT0_ICW3); + ica_outb(ICA0_PORT_1, INIT0_ICW4); + ica_outb(ICA0_PORT_1, INIT0_OCW1); +} + +void ica0_init IFN0() +{ + io_addr i; + + /* + * Set up the IO chip select logic for adapter 0. (Master). + */ + + io_define_inb(ICA0_ADAPTOR, ica_inb_func); + io_define_outb(ICA0_ADAPTOR, ica_outb_func); + + for(i = ICA0_PORT_START; i <= ICA0_PORT_END; i++) + io_connect_port(i, ICA0_ADAPTOR, IO_READ_WRITE); + + adapter_state[ICA_MASTER].ica_master = TRUE; + +#ifdef CPU_40_STYLE + for (i = 0; i < 8; i++) + { + adapter_state[ICA_MASTER].callback_fn[i] = NO_ICA_CALLBACK; + adapter_state[ICA_MASTER].isr_depth[i] = 0; + } +#endif /* CPU_40_STYLE */ + +#if defined(HOOKED_IRETS) && !defined(NTVDM) + /* on iret-hooked, non NT ports, enable iret hooks */ + ica_enable_iret_hooks(); +#endif +} + + +#define INIT1_ICW1 (IU8)0x11 +#define INIT1_ICW2 (IU8)0x70 +#define INIT1_ICW3 (IU8)0x02 +#define INIT1_ICW4 (IU8)0x01 +/* POST leaves some int lines masked out (reserved lines and RTC) */ +/* see the comment on POST setting mask bits for master ica */ +#define INIT1_OCW1 (IU8)0x9d + +void ica1_post IFN0() +{ + ica_outb(ICA1_PORT_0, INIT1_ICW1); + ica_outb(ICA1_PORT_1, INIT1_ICW2); + ica_outb(ICA1_PORT_1, INIT1_ICW3); + ica_outb(ICA1_PORT_1, INIT1_ICW4); + ica_outb(ICA1_PORT_1, INIT1_OCW1); +} + +void ica1_init IFN0() +{ + io_addr i; + + /* + * Set up the IO chip select logic for adapter 1. (Slave). + */ + + io_define_inb(ICA1_ADAPTOR, ica_inb_func); + io_define_outb(ICA1_ADAPTOR, ica_outb_func); + + for(i = ICA1_PORT_START; i <= ICA1_PORT_END; i++) + io_connect_port(i, ICA1_ADAPTOR, IO_READ_WRITE); + + adapter_state[ICA_SLAVE].ica_master = FALSE; + +#ifdef CPU_40_STYLE + for (i = 0; i < 8; i++) + { + adapter_state[ICA_SLAVE].callback_fn[i] = NO_ICA_CALLBACK; + adapter_state[ICA_SLAVE].isr_depth[i] = 0; + } +#endif /* CPU_40_STYLE */ + +} + +#ifndef PROD +/* + * The following functions are used for DEBUG purposes only. + */ +LOCAL void +ica_print_int IFN2(char *, str, IS32, val) +{ + printf("%-20s 0x%02X\n", str, val); +} + +LOCAL void +ica_print_str IFN2(char *, str, char *, val) +{ + printf("%-20s %s\n", str, val); +} + +GLOBAL void +ica_dump IFN1(IU32, adapter) +{ + ADAPTER_STATE *asp = &adapter_state[adapter]; + + if (adapter == ICA_MASTER) + printf("MASTER 8259A State:\n\n"); + else + printf("SLAVE 8259A State:\n\n"); + + ica_print_str("ica_master", (asp->ica_master ? "Master" : "Slave")); + ica_print_int("ica_irr", asp->ica_irr); + ica_print_int("ica_isr", asp->ica_isr); + ica_print_int("ica_imr", asp->ica_imr); + ica_print_int("ica_ssr", asp->ica_ssr); + ica_print_int("ica_base", asp->ica_base); + ica_print_int("ica_hipri", asp->ica_hipri); + ica_print_int("ica_mode", asp->ica_mode); + ica_print_int("ica_int_line", asp->ica_int_line); + ica_print_str("ica_cpu_int", (asp->ica_cpu_int ? "TRUE" : "FALSE")); + + printf("\n\n"); +} +#endif /* PROD */ +#ifdef NTVDM + +void SoftPcEoi(int Adapter, int* Line) { + ica_eoi(Adapter, Line, 0); +} + +//Restart delayed interrupts + +BOOL ica_restart_interrupts(int adapter) +{ + int i; + + if((i = ica_scan_irr(adapter)) & 0x80) { + ica_interrupt_cpu(adapter, i &= 0x07); + return TRUE; + } + + return FALSE; +} +//New ICA interrupt state reset function + +void ica_reset_interrupt_state(void) +{ + int line_no; + + host_ica_lock(); + + for(line_no = 0; line_no < 8; line_no++) { + VirtualIca[ICA_MASTER].ica_count[line_no] = + VirtualIca[ICA_SLAVE].ica_count[line_no] = 0; + ica_clear_int(ICA_MASTER,line_no); + ica_clear_int(ICA_SLAVE,line_no); + } + + + //Clear interrupt counters + VirtualIca[ICA_MASTER].ica_cpu_int = + VirtualIca[ICA_SLAVE].ica_cpu_int = FALSE; + + DelayIretHook = 0; + DelayIrqLine = 0; + + //Tell CPU to remove any pending interrupts + host_clear_hw_int(); + + host_ica_unlock(); +} + + +/* + * Handle callout from DPMI to say that an app has asked DPMI to switch it + * to protected mode. We use this as an indicator that a protected mode app + * will work with the Iret Hook system. If an app does it's own thing with + * selectors et al, the BOP table will be hidden, swallowed and generally + * lost. Attempts then to transfer control to it will fault. + * Known examples of such unfriendliness are the DOS Lotus 123 r3 series. + */ +VOID EnableEmulatorIretHooks(void) +{ + PMEmulHookEnabled = TRUE; +} + +/* + * The app is closing - turn off the Iret Hooks in case the next app is + * iret hook unfriendly. If it's a friendly app, we'll be called again + * via the Enable... routine above. + */ +VOID DisableEmulatorIretHooks(void) +{ + PMEmulHookEnabled = FALSE; +} + +// +// Retry DelayInts (not iret hooks!) +// +// IrqLine - IrqLineBitMask, to be cleared +// +VOID ica_RestartInterrupts(ULONG IrqLine) +{ +#ifdef MONITOR + + // + // on x86 we may get multiple bits set + // so check both slave and master + // + UndelayIrqLine = 0; + + if (!ica_restart_interrupts(ICA_SLAVE)) + ica_restart_interrupts(ICA_MASTER); +#else + host_ica_lock(); + + DelayIrqLine &= ~IrqLine; + + ica_restart_interrupts(IrqLine >> 3 ? ICA_SLAVE : ICA_MASTER); + + host_ica_unlock(); +#endif +} +#endif /* NTVDM */ diff --git a/private/mvdm/softpc.new/base/system/idetect.c b/private/mvdm/softpc.new/base/system/idetect.c new file mode 100644 index 000000000..27695c326 --- /dev/null +++ b/private/mvdm/softpc.new/base/system/idetect.c @@ -0,0 +1,505 @@ +#include "insignia.h" +#include "host_def.h" + +/* INSIGNIA (SUB)MODULE SPECIFICATION + ----------------------------- + + + THIS PROGRAM SOURCE FILE IS SUPPLIED IN CONFIDENCE TO THE + CUSTOMER, THE CONTENTS OR DETAILS OF ITS OPERATION MUST + NOT BE DISCLOSED TO ANY OTHER PARTIES WITHOUT THE EXPRESS + AUTHORISATION FROM THE DIRECTORS OF INSIGNIA SOLUTIONS LTD. + + (see /vpc/1.0/Master/src/hdrREADME for help) + +DOCUMENT : name and number + +RELATED DOCS : include all relevant references + +DESIGNER : Phil Bousfield & Jerry Kramskoy + +REVISION HISTORY : +First version : 31-Aug-89, simplified Phil's idea, and + produced an interface. + +SUBMODULE NAME : + +SOURCE FILE NAME : idetect.c + +PURPOSE : provide idle detect for SoftPC, so it goes into + hibernation on detecting consecutive time periods + of unsuccessful keyboard polling at a HIGH RATE + with no graphics activity. Idling cannot occur + if polling occurs at too low a rate. + +SccsID = @(#)idetect.c 1.11 10/11/93 Copyright Insignia Solutions Ltd. + + +[1.INTERMODULE INTERFACE SPECIFICATION] + +[1.0 INCLUDE FILE NEEDED TO ACCESS THIS INTERFACE FROM OTHER SUBMODULES] + + INCLUDE FILE : idetect.gi + +[1.1 INTERMODULE EXPORTS] + + PROCEDURES() : idle_ctl((int)flag) + idetect((int)event) + idle_set(int)minpoll, (int)minperiod) + + DATA : int idle_no_video/disk/comlpt + +--------------------------------------------------------------------- +[1.2 DATATYPES FOR [1.1] (if not basic C types)] + + STRUCTURES/TYPEDEFS/ENUMS: + +--------------------------------------------------------------------- +[1.3 INTERMODULE IMPORTS] + host_release_timeslice() - block process until interesting + system activity occurs (such as + time tick, I/O etc) +--------------------------------------------------------------------- + +[1.4 DESCRIPTION OF INTERMODULE INTERFACE] + +[1.4.1 IMPORTED OBJECTS] + none + +[1.4.2 EXPORTED OBJECTS] +===================================================================== +GLOBAL int idle_no_video + +PURPOSE cleared by gvi layer, and video bios ; + set by this interface every time tick. + keeps track of video activity. + +GLOBAL int idle_no_disk + +PURPOSE cleared by disk bios ; + set by this interface every time tick. + keeps track of video activity. + +GLOBAL int idle_no_comlpt + +PURPOSE cleared by com/lpt layer, + set by this interface every time tick. + keeps track of com/lpt port activity + + + +===================================================================== +PROCEDURE : void idle_ctl((int)flag) + +PURPOSE : enable/disable idle detect. + +PARAMETERS + + flag : 0 - disable + other - enable. + +DESCRIPTION : all idetect() calls ignored if disabled .. + can't idle in this case. + +ERROR INDICATIONS : none +===================================================================== +PROCEDURE : void idetect((int)event) + +PURPOSE : idle detect interface. + +PARAMETERS + + event : IDLE_INIT - initialise (clears all + counters) + IDLE_KYBD_POLL _ report an unsucessful keyboard + poll made by application + IDLE_TICK - check activity during last + time tick + IDLE_WAITIO - application has demanded i/p + and none is available. idle. + +GLOBALS : idle_no_video/disk/comlpt is read for IDLE_TICK, and + reset. + +DESCRIPTION : keeps track of when application appears to be + idling. + +ERROR INDICATIONS : none + +ERROR RECOVERY : bad 'event' value ignored. +===================================================================== +PROCEDURE : void idle_set((int)minpoll, (int)minperiod) + +PURPOSE : configure parameters for idling. + +PARAMETERS + + minpoll : 0 - don't change + other - specify minimum #.of unsuccessful kybd + polls to be made in 1 time tick + to qualify as an idle time period. + minperiod : 0 - don't change + other - specify minimum #.of consecutive idle + time periods to elapse before going + idle. (e.g; 3 = 3 time ticks) + +DESCRIPTION : controls sensitivity for idle detection. + +ERROR INDICATIONS : none + +ERROR RECOVERY : bad values ignored. +===================================================================== + + +===================================================================== +[3.INTERMODULE INTERFACE DECLARATIONS] +===================================================================== + +[3.1 INTERMODULE IMPORTS] */ + +/* [3.1.1 #INCLUDES] */ +/* [3.1.2 DECLARATIONS] */ +#include "xt.h" +#include "timer.h" + +#ifdef NTVDM +/* NT configuration flag showing user request for idle support */ +IMPORT BOOL IdleDisabledFromPIF; +IMPORT BOOL ExternalWaitRequest; +IMPORT BOOL VDMForWOW; +IMPORT void WaitIfIdle(void); +IMPORT VOID PrioWaitIfIdle(half_word); +#endif /* NTVDM */ + +/* [3.2 INTERMODULE EXPORTS] */ +#include "idetect.h" + +/* +5.MODULE INTERNALS : (not visible externally, global internally)] + +[5.1 LOCAL DECLARATIONS] */ + +/* [5.1.1 #DEFINES] */ + +/* [5.1.2 TYPEDEF, STRUCTURE, ENUM DECLARATIONS] */ + + +/* [5.1.3 PROCEDURE() DECLARATIONS] */ +#ifdef NTVDM +void idle_kybd_poll(); +void idle_tick(); +#else + LOCAL void idle_kybd_poll(); + LOCAL void idle_tick(); +#endif + + +/* ------------------------------------------------------------------- +[5.2 LOCAL DEFINITIONS] + + [5.2.1 INTERNAL DATA DEFINITIONS */ + +#ifndef NTVDM +int idle_no_video; +int idle_no_comlpt; +int idle_no_disk; + +static int i_counter = 0; +static int nCharPollsPerTick = 0; +static int ienabled = 0; +static int minConsecutiveTicks = 12; +static int minFailedPolls = 10; + + +#else +#include "..\..\..\..\inc\vdm.h" + +/* NTVDM + * Some of our static global variables are located in 16 bit memory area + * so we reference as pointers, inititializaed by kb_setup_vectors + */ +word minFailedPolls = 8; +word ienabled = 0; +word ShortIdle=0; +word IdleNoActivity = 0; + + +word *pICounter; +#define i_counter (*pICounter) + +word *pCharPollsPerTick; +#define nCharPollsPerTick (*pCharPollsPerTick) + +word *pMinConsecutiveTicks; +#define minConsecutiveTicks (*pMinConsecutiveTicks) + +#endif /* NTVDM */ + +/* [5.2.2 INTERNAL PROCEDURE DEFINITIONS] */ + +/* +====================================================================== +FUNCTION : idle_kybd_poll() +PURPOSE : called from keyboard BIOS as result of + application polling kybd unsuccessfully. +====================================================================== +*/ + + +#ifndef NTVDM +#ifdef SMEG +#include "smeg_head.h" + +GLOBAL LONG dummy_long_1, dummy_long_2; +GLOBAL BOOL system_has_idled = FALSE; +#endif + + +LOCAL void my_host_release_timeslice() +{ +#ifdef SMEG + /* + * Set marker and waste time (SIGPROF screws up + * host_release_timeslice) + */ + + LONG i; + + smeg_set(SMEG_IN_IDLE); + + system_has_idled = TRUE; + + for (i = 0; i < 100000; i++) + dummy_long_1 += dummy_long_2; + + smeg_clear(SMEG_IN_IDLE); +#else + host_release_timeslice(); +#endif + + /* re-count polls in next tick */ + nCharPollsPerTick = 0; +} +#endif /* NTVDM */ + +#ifdef NTVDM +/* + * NT uses a slightly modified algorithum to attempt to catch screen updating + * apps. It also supports Idling calls from VDDs and thus must test which + * thread requests the idle. + */ +void idle_kybd_poll(void) +{ + + /* + * We don't support wow apps reading the kbd + * if a wow app comes here we must prevent them + * from hogging the CPU, so we will always do + * and idle no matter what. + */ + if (VDMForWOW) { + host_release_timeslice(); + return; + } + + /* go idle if enough consecutive PC timer interrupts + * have elapsed during which time unsuccessful polling has + * occurred at a large enough rate for each tick. + */ + + if (i_counter >= minConsecutiveTicks) + { + host_release_timeslice(); + } + + /* another unsuccessful poll ! */ + nCharPollsPerTick++; +} +#else +LOCAL void idle_kybd_poll() +{ + /* go idle if enough consecutive PC timer interrupts + * have elapsed during which time unsuccessful polling has + * occurred at a large enough rate for each tick. + */ + if (i_counter >= minConsecutiveTicks) + { + my_host_release_timeslice(); + } + + /* another unsuccessful poll ! */ + nCharPollsPerTick++; +} +#endif + +/* +====================================================================== +FUNCTION : idle_tick() +PURPOSE : check polling activity and graphics activity + that's occurred during last tick. If no video + memory writes, and high enough keyboard poll + rate (when no i/p available) increment counter + for triggering going idle. Otherwise reset + counter. +====================================================================== +*/ + +#ifdef NTVDM +void idle_tick(void) +{ + /* Has another thread asked us to idle? */ + if (ExternalWaitRequest) + { + WaitIfIdle(); + ExternalWaitRequest = FALSE; + } +#ifdef MONITOR + if(*pNtVDMState & VDM_IDLEACTIVITY) + { + *pNtVDMState &= ~ VDM_IDLEACTIVITY; + IdleNoActivity = 0; + } +#endif + if (IdleNoActivity) + { + /* no graphics or comms/lpt activity has occurred... + * see whether enough polling of kybd has occurred + * to kick off the idling counter. + */ + if (nCharPollsPerTick >= minFailedPolls) { + i_counter++; + if (ShortIdle) { + PrioWaitIfIdle(94); + } + } + } + else + { + + + /* + * Check for apps which cheat idle detection by updating + * clocks on the screen causing video activity. + */ + ShortIdle = nCharPollsPerTick >= minFailedPolls && i_counter >= 8; + + /* invalidate all accumulated ticks */ + i_counter = 0; + IdleNoActivity = 1; + } + + nCharPollsPerTick = 0; +} + +#else /* NTVDM */ +LOCAL void idle_tick() +{ + if (idle_no_video && idle_no_disk && idle_no_comlpt) + { + /* no graphics or comms/lpt activity has occurred... + * see whether enough polling of kybd has occurred + * to kick off the idling counter. + */ + if (nCharPollsPerTick >= minFailedPolls) + i_counter++; + } + else + { + i_counter = 0; + } + + /* set flags and zero poll counter for next time period + */ + idle_no_video = 1; + idle_no_disk = 1; + idle_no_comlpt = 1; + + nCharPollsPerTick = 0; +} +#endif + +/* +7.INTERMODULE INTERFACE IMPLEMENTATION : + +[7.1 INTERMODULE DATA DEFINITIONS] */ + + + +/* +[7.2 INTERMODULE PROCEDURE DEFINITIONS] */ + +void idetect (event) +int event; +{ +#ifndef NTVDM + if (!ienabled) + return; +#endif + + switch (event) + { + /* application waiting for input - go idle */ + case IDLE_WAITIO: +#ifdef NTVDM +#ifdef MONITOR + *pNtVDMState &= ~VDM_IDLEACTIVITY; +#endif + IdleNoActivity = 1; + PrioWaitIfIdle(10); + break; +#else + my_host_release_timeslice(); +#endif + /* fall thru to idle init */ + + /* initialise flags and counter */ + case IDLE_INIT: + nCharPollsPerTick = 0; + i_counter = 0; +#ifdef NTVDM + IdleNoActivity = 1; +#else + idle_no_video = 1; + idle_no_disk = 1; + idle_no_comlpt = 1; +#endif + break; + + /* application polling for keyboard input */ + case IDLE_KYBD_POLL: + idle_kybd_poll(); + break; + + case IDLE_TIME_TICK: + idle_tick(); + break; + + } +} + +void idle_set (minpoll, minperiod) +int minpoll, minperiod; +{ + if (minperiod > 0) + minConsecutiveTicks = minperiod; + + if (minpoll > 0) + minFailedPolls = minpoll; +} + +void idle_ctl (flag) +int flag; +{ +#ifdef NTVDM +#ifdef PIG + ienabled = 0; +#else + if (IdleDisabledFromPIF) /* configured setting overrides normal control*/ + ienabled = 0; + else + ienabled = flag; +#endif /* PIG */ +#else + ienabled = flag; +#endif /* NTVDM */ +} diff --git a/private/mvdm/softpc.new/base/system/illegalp.c b/private/mvdm/softpc.new/base/system/illegalp.c new file mode 100644 index 000000000..e38786214 --- /dev/null +++ b/private/mvdm/softpc.new/base/system/illegalp.c @@ -0,0 +1,395 @@ +#include "insignia.h" +#include "host_def.h" +/*[ + Name: illegal_op.c + Derived From: Base 2.0 + Author: William Gulland + Created On: Unknown + Sccs ID: @(#)illegal_op.c 1.19 07/04/95 + Notes: Called from the CPU. + Purpose: The CPU has encountered an illegal op code. + + (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved. + +]*/ + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_ERROR.seg" +#endif + + +/* + * O/S include files. + */ +#include +#include TypesH + +/* + * SoftPC include files + */ +#include "xt.h" +#include "sas.h" +#include CpuH +#include "bios.h" +#include "error.h" +#include "config.h" +#include "debug.h" +#include "yoda.h" + +#ifndef PROD +IU32 IntelMsgDest = IM_DST_TRACE; +#endif + +/* Routine to produce human readable form of where an illegal instruction occured */ +LOCAL VOID where IFN3(CHAR *, string, word, cs, LIN_ADDR, ip) +{ + double_word ea = effective_addr(cs, ip); + + sprintf(string, +#ifdef PROD + "CS:%04x IP:%04x OP:%02x %02x %02x %02x %02x", +#else /* PROD */ + "CS:IP %04x:%04x OP:%02x %02x %02x %02x %02x", +#endif /* PROD */ + cs, ip, + sas_hw_at(ea), sas_hw_at(ea+1), sas_hw_at(ea+2), + sas_hw_at(ea+3),sas_hw_at(ea+4)); +} + +#if defined(NTVDM) && defined(MONITOR) +#define GetInstructionPointer() getEIP() +#endif + + +void illegal_op() +{ +#ifndef PROD + CHAR string[100]; + + where(string, getCS(), GetInstructionPointer()); + host_error(EG_BAD_OP, ERR_QU_CO_RE, string); +#endif +} + +void illegal_op_int() +{ + CHAR string[100]; + word cs, ip; + +#ifdef NTVDM + UCHAR opcode; + double_word ea; +#endif + + /* the cs and ip of the faulting instruction should be on the top of the stack */ + sys_addr stack; + + stack=effective_addr(getSS(),getESP()); + + ip = sas_hw_at(stack) + (sas_hw_at(stack+1)<<8); + cs = sas_hw_at(stack+2) + (sas_hw_at(stack+3)<<8); + + where(string, cs, ip); + +#ifndef NTVDM +#ifdef PROD + host_error(EG_BAD_OP, ERR_QU_CO_RE, string); +#else /* PROD */ + assert1( NO, "Illegal instruction\n%s\n", string ); + force_yoda(); +#endif /* PROD */ + +#else /* NTVDM */ +#ifdef PROD +#if define(MONITOR) || define(CPU_40_STYLE) + host_error(EG_BAD_OP, ERR_QU_CO_RE, string); +#else + ea = effective_addr(cs, ip); + opcode = sas_hw_at(ea); + if (opcode == 0x66 || opcode == 0x67) + host_error(EG_BAD_OP386, ERR_QU_CO_RE, string); + else + host_error(EG_BAD_OP, ERR_QU_CO_RE, string); +#endif /* MONITOR */ +#endif /* PROD */ +#endif /* NTVDM */ + + + + /* the user has requested a `continue` */ + /* we don't know how many bytes this instr should be, so guess 1 */ + if (ip == 0xffff) { + cs ++; + sas_store (stack+2, cs & 0xff); + sas_store (stack+3, (cs >> 8) & 0xff); + } + ip ++; + sas_store (stack , ip & 0xff); + sas_store (stack+1, (ip >> 8) & 0xff); + unexpected_int(); +} + + +void illegal_dvr_bop IFN0() +{ +#ifndef NTVDM + sys_addr bop_addr; + CHAR buf[256]; + + /* This is called when an Insignia Intel driver decides that + * this (old) SoftWindows is not compatible. + * + * We should: + * a) Put up a localised panel complaining that + * the named driver CS:[eIP] with decimal + * version AX is incompatible with the SoftWindows. + * N.B. The most compatible way to pass the + * name of the driver is by embedded bytes just + * after the BOP. The problem is caused by the + * fact that the driver may be either 16-bit RM + * or a 32-bit flat VxD so the address of the + * string can be either 16/32 bits, and we + * need to be able to execute (and do nothing) + * on the shipping SoftPC 1.xx which prevents + * us doing anything with 32-bit registers! + * + * BOP driver_incompat + * jmp SHORT over_name + * db 'somename.drv', 0 + * over_name: + * + * b) setCF(0) + */ + + buf[0] = '\0'; + bop_addr = effective_addr(getCS(), GetInstructionPointer()); + if (sas_hw_at(bop_addr) == 0xEB) + { + IU8 data; + char *p; + + p = buf; + bop_addr += 2; /* Skip the xEB xXX */ + do { + data = sas_hw_at(bop_addr++); + *p++ = data; + } while (data != 0); + sprintf(p-1, " v%d.%02d", getAX() / 100, getAX() % 100); + } + host_error(EG_DRIVER_MISMATCH, ERR_CONT, buf); + setCF(0); +#endif /* ! NTVDM */ +} + + +#ifndef PROD +LOCAL void print_msg IPT1( IU32, ofs ); + +void dvr_bop_trace IFN0() +{ + sys_addr bop_addr; + + /* + * BOP driver_incompat + * jmp SHORT over_name + * db 'somename.drv', 0 + * over_name: + * + */ + + bop_addr = effective_addr(getCS(), GetInstructionPointer()); + if (sas_hw_at(bop_addr) == 0xEB) + { + print_msg(bop_addr+2); /* Skip the xEB xXX */ + } +} + +GLOBAL void trace_msg_bop IFN0() +{ + sys_addr ea, ofs; + + /* + Stack frame expected: + N.B. VxDs lives in a flat segment, (mostly) protected mode world! + This code expects the address to have been converted to a base-0 + linear address already. + + | | + -------------- + | 4 byte | + ESP--> | eff. addr | + -------------- + */ + + if (sas_hw_at(BIOS_VIRTUALISING_BYTE) != 0) + fprintf(trace_file, "** WARNING ** Virtual byte non-zero\n"); + + ea = getESP(); + ea = effective_addr(getSS(), ea); + ofs = sas_dw_at_no_check(ea); + print_msg(ofs); +} + +LOCAL void print_msg IFN1( IU32, ofs ) +{ + SAVED IBOOL start_buffer = TRUE; + SAVED char string[164], *p = NULL; + char finalStr[180]; + IU32 res, width; + + if (start_buffer) + { + memset(string, 0, sizeof(string)); + p = string; + start_buffer = FALSE; + } + + do + { + /* do things which must be done at the start of a line. */ + *p = sas_hw_at(ofs++); + if (*p == '#') + { + /* found poss reg. sequence in string */ + + p++; + p[0] = sas_hw_at(ofs); + if (('A' <= p[0]) && (p[0] <= 'Z')) + p[0] += 'a' - 'A'; + p[1] = sas_hw_at(ofs+1); + if (('A' <= p[1]) && (p[1] <= 'Z')) + p[1] += 'a' - 'A'; + if (p[0] == 'e') + { + /* may be esp, esi, eax, etc... */ + + p[2] = sas_hw_at(ofs+2); + if (('A' <= p[2]) && (p[2] <= 'Z')) + p[2] += 'a' - 'A'; + p[3] = '\0'; + width = 8; + } + else + { + /* If not eXX then can only be two letters long */ + p[2] = '\0'; + width = 4; + } + + if (strcmp(p, "al") == 0) + { res = getAL(); width = 2; } + else if (strcmp(p, "ah") == 0) + { res = getAH(); width = 2; } + else if (strcmp(p, "bl") == 0) + { res = getBL(); width = 2; } + else if (strcmp(p, "bh") == 0) + { res = getBH(); width = 2; } + else if (strcmp(p, "cl") == 0) + { res = getCL(); width = 2; } + else if (strcmp(p, "ch") == 0) + { res = getCH(); width = 2; } + else if (strcmp(p, "dl") == 0) + { res = getDL(); width = 2; } + else if (strcmp(p, "dh") == 0) + { res = getDH(); width = 2; } + else if (strcmp(p, "ax") == 0) + res = getAX(); + else if (strcmp(p, "bx") == 0) + res = getBX(); + else if (strcmp(p, "cx") == 0) + res = getCX(); + else if (strcmp(p, "dx") == 0) + res = getDX(); + else if (strcmp(p, "si") == 0) + res = getSI(); + else if (strcmp(p, "di") == 0) + res = getDI(); + else if (strcmp(p, "sp") == 0) + res = getSP(); + else if (strcmp(p, "bp") == 0) + res = getBP(); + else if (strcmp(p, "eax") == 0) + res = getEAX(); + else if (strcmp(p, "ebx") == 0) + res = getEBX(); + else if (strcmp(p, "ecx") == 0) + res = getECX(); + else if (strcmp(p, "edx") == 0) + res = getEDX(); + else if (strcmp(p, "esi") == 0) + res = getESI(); + else if (strcmp(p, "edi") == 0) + res = getEDI(); + else if (strcmp(p, "esp") == 0) + res = getESP(); + else if (strcmp(p, "ebp") == 0) + res = getEBP(); + else if (strcmp(p, "cs") == 0) + res = getCS(); + else if (strcmp(p, "ds") == 0) + res = getDS(); + else if (strncmp(p, "es", 2) == 0) + { res = getES(); width = 4; p[2] = '\0'; } + else if (strcmp(p, "fs") == 0) + res = getFS(); + else if (strcmp(p, "gs") == 0) + res = getGS(); + else if (strcmp(p, "fl") == 0) + res = getFLAGS(); + else if (strcmp(p, "efl") == 0) + res = getEFLAGS(); + else + *p = '\0'; /* else just write the '#' */ + if (*p) + { + /* Overwrite the "#xx" with it's value */ + + ofs += (p[2] ? 3: 2); + p--; + if (width == 8) + sprintf(p, "%08x", res); + else if (width == 4) + sprintf(p, "%04x", res); + else + sprintf(p, "%02x", res); + p += strlen(p); + } + } + else if (*p != '\r') /* ignore CR's */ + { + if (*p == '\n' || (p - string >= (sizeof(string) - 4))) + { + p[1] = '\0'; + sprintf(finalStr, "intel msg at %04x:%04x : %s", + getCS(), GetInstructionPointer(), string); +#ifdef CPU_40_STYLE + if (IntelMsgDest & IM_DST_TRACE) + { + fprintf(trace_file, finalStr); + } +#ifndef CCPU + if (IntelMsgDest & IM_DST_RING) + { + AddToTraceXBuffer( ((GLOBAL_TraceVectorSize - 2) << 4) + 0, + finalStr ); + } +#endif /* CCPU */ +#else /* CPU_40_STYLE */ + fprintf(trace_file, finalStr); +#endif /* CPU_40_STYLE */ + memset(string, 0, sizeof(string)); + p = string; + } + else if (*p == '\0') /* no more - stop */ + break; + else + p++; + } + } while ((p - string) < sizeof(string) - 4); +} +#endif /* ! PROD */ diff --git a/private/mvdm/softpc.new/base/system/makefile b/private/mvdm/softpc.new/base/system/makefile new file mode 100644 index 000000000..6ee4f43fa --- /dev/null +++ b/private/mvdm/softpc.new/base/system/makefile @@ -0,0 +1,6 @@ +# +# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source +# file to this component. This file merely indirects to the real make file +# that is shared by all the components of NT OS/2 +# +!INCLUDE $(NTMAKEENV)\makefile.def diff --git a/private/mvdm/softpc.new/base/system/qevnt.c b/private/mvdm/softpc.new/base/system/qevnt.c new file mode 100644 index 000000000..c866fb574 --- /dev/null +++ b/private/mvdm/softpc.new/base/system/qevnt.c @@ -0,0 +1,611 @@ +/* + * + * NTVDM specific version of Quick event dispatcher. + * + * See quick_ev.c for current insignia compatibility level, and full + * documentation. Functionally compatible with: + * + * "quick_ev.c 1.43 07/04/95 Copyright Insignia Solutions Ltd" + * + * Quick Events are fully supported on Risc platforms. + * Quick Events are stubbed to dispatch immediatley on x86 platforms. + * Tick events are not supported on any platform, (no longer used) + * All Global quick event interfaces use the host_ica_lock for + * synchronization. + * + * 11-Dec-1995 Jonle + */ + +#include +#include +#include +#include +#include "insignia.h" +#include "host_def.h" +#include +#include +#include +#include TypesH +#include MemoryH +#include "xt.h" +#include CpuH +#include "error.h" +#include "config.h" +#include "debug.h" +#include "timer.h" +#include "host_hfx.h" +#include "quick_ev.h" +#include "timestmp.h" +#include "ica.h" +#include "nt_eoi.h" + + + +/* + * The Quick event structure + */ +typedef struct _QuickEventEntry { + LIST_ENTRY qevListEntry; + LARGE_INTEGER DueTimeStamp; + ULONG DelayTime; + Q_CALLBACK_FN qevCallBack; + long Param; + ULONG QuickEventId; +} QEV_ENTRY, *PQEV_ENTRY; + + +/* Quick event handle structure. externally its defined + * as a LONGLONG, internally we manipulate as a QEVHANDLE union + * giving us a simple and 99% effective algorithm for verifying + * qevent handles. + * + * CAVEAT: the QEVHANDLE union MUST not be larger than a LONGLONG. + */ +typedef union _QuickEventHandle { + struct { + PVOID pvQuickEvent; + ULONG QuickEventId; + }; + LONGLONG Handle; +} QEVHANDLE, PQEVHANDLE; + + +LIST_ENTRY QuickEventListHead = {&QuickEventListHead,&QuickEventListHead}; +ULONG qevNextHandleId=0; +LARGE_INTEGER qevNextDueTime = {0,0}; + +extern void host_TimeStamp(PLARGE_INTEGER pliTime); // nt_timer.c + + +/* + * Calibration variables + */ +#define DEFAULT_IJCTIME 10 +#define CALIBCYCLE16 16 // CALIBCYCLE16 must be 16, because hard coded + // shift operations are used to avoid division. + + +void quick_tick_recalibrate(void); +GLOBAL IBOOL DisableQuickTickRecal = FALSE; +ULONG qevJumpRestart = 100; +ULONG qevUsecPerIJC = 0; +ULONG qevCalibUsecPerIJC; +int qevCalibCycle=0; + +BOOL QevInitialized = FALSE; + +LARGE_INTEGER qevCalibCount={0,0}; +LARGE_INTEGER qevCalibTime={0,0}; +LARGE_INTEGER qevPeriodTime={0,0}; + +VOID +q_event_init( + void + ) +{ +#ifndef MONITOR + PLIST_ENTRY Next; + PQEV_ENTRY pqevEntry; + + +#if DBG + if (sizeof(QEVHANDLE) > sizeof(ULONGLONG)) { + DbgPrint("sizeof(QEVHANDLE) > sizeof(ULONGLONG)\n"); + DbgBreakPoint(); + } +#endif + + host_ica_lock(); + + // + // do first time initialization, this must be done before ANY + // devices access the quick event interface. + // + if (!QevInitialized ) { + qevJumpRestart = host_get_jump_restart(); + qevUsecPerIJC = DEFAULT_IJCTIME * qevJumpRestart; + qevCalibUsecPerIJC = DEFAULT_IJCTIME * qevJumpRestart; + qevPeriodTime.QuadPart = 100000 * 16; // tick every 100 ms, cycle =16 + QevInitialized = TRUE; + } + + if (IsListEmpty(&QuickEventListHead)) { + host_q_ev_set_count(0); + qevNextDueTime.QuadPart = 0; + } + + qevCalibCycle=0; + qevCalibCount.QuadPart = 0; + host_TimeStamp(&qevCalibTime); + + host_ica_unlock(); +#endif +} + + +#ifndef MONITOR + +/* + * Caller must hold ica lock + */ +void +ResetCpuQevCount( + PLARGE_INTEGER CurrTime + ) +{ + LARGE_INTEGER DiffTime; + PQEV_ENTRY pqevEntry; + ULONG DelayTime; + + if (IsListEmpty(&QuickEventListHead)) { + host_q_ev_set_count(0); + qevNextDueTime.QuadPart = 0; + return; + } + + pqevEntry = CONTAINING_RECORD(QuickEventListHead.Flink, + QEV_ENTRY, + qevListEntry + ); + + DiffTime.QuadPart = pqevEntry->DueTimeStamp.QuadPart - CurrTime->QuadPart; + + /* + * If behind schedule use a reduced delay time to speed up + * dispatching of events. Can't go too fast or quick events will + * batch up. + */ + if (DiffTime.QuadPart < 0) { + DelayTime = (pqevEntry->DelayTime >> 1) + 1; + } + else { + DelayTime = DiffTime.LowPart; /* ignore overflow! */ + } + + qevNextDueTime.QuadPart = CurrTime->QuadPart + DelayTime; + host_q_ev_set_count(host_calc_q_ev_inst_for_time(DelayTime)); +} +#endif + + + +/* + * add_q_event_t - add event to do in n usecs + * + * + */ + +q_ev_handle +add_q_event_t( + Q_CALLBACK_FN func, + unsigned long Time, + long param + ) +{ + +#ifdef MONITOR + /* + * On X86 dispatch immediately, as x86 has no efficient way + * to acheive usec granularity. + */ + + (*func)(param); + + return (q_ev_handle)1; + + +#else /* MONITOR */ + + QEVHANDLE qevHandle; + PLIST_ENTRY Next; + PQEV_ENTRY NewEntry; + PQEV_ENTRY EarlierEntry; + PQEV_ENTRY pqevEntry; + LARGE_INTEGER CurrTime; + + + host_ica_lock(); + + NewEntry = qevHandle.pvQuickEvent = malloc(sizeof(QEV_ENTRY)); + if (!NewEntry) { + host_ica_unlock(); + return (q_ev_handle)1; + } + + host_TimeStamp(&CurrTime); + + NewEntry->DueTimeStamp.QuadPart = CurrTime.QuadPart + Time; + NewEntry->qevCallBack = func; + NewEntry->Param = param; + NewEntry->QuickEventId = qevNextHandleId++; + qevHandle.QuickEventId = NewEntry->QuickEventId; + + /* + * The Quick event list is sorted in ascending order + * by DueTimeStamp, insert in sorted order. + */ + EarlierEntry = NULL; + Next = QuickEventListHead.Blink; + while (Next != &QuickEventListHead) { + pqevEntry = CONTAINING_RECORD(Next, QEV_ENTRY, qevListEntry); + if (NewEntry->DueTimeStamp.QuadPart > + pqevEntry->DueTimeStamp.QuadPart) + { + EarlierEntry = pqevEntry; + break; + } + Next= Next->Blink; + } + + /* + * If Earlier Entry found, chain the new entry in after + * the earlier entry, and set the DelayTimes. + */ + if (EarlierEntry) { + Next = EarlierEntry->qevListEntry.Flink; + NewEntry->qevListEntry.Flink = Next; + NewEntry->qevListEntry.Blink = &EarlierEntry->qevListEntry; + EarlierEntry->qevListEntry.Flink = &NewEntry->qevListEntry; + NewEntry->DelayTime = (ULONG)(NewEntry->DueTimeStamp.QuadPart - + EarlierEntry->DueTimeStamp.QuadPart); + + if (Next == &QuickEventListHead) { + QuickEventListHead.Blink = &NewEntry->qevListEntry; + } + else { + pqevEntry = CONTAINING_RECORD(Next, QEV_ENTRY, qevListEntry); + pqevEntry->qevListEntry.Blink = &NewEntry->qevListEntry; + pqevEntry->DelayTime = (ULONG)(pqevEntry->DueTimeStamp.QuadPart - + NewEntry->DueTimeStamp.QuadPart); + } + } + + /* + * Earlier Entry not found insert at head of list, + * reset the cpu count and real expected due time. + */ + else { + InsertHeadList(&QuickEventListHead, &NewEntry->qevListEntry); + NewEntry->DelayTime = Time; + ResetCpuQevCount(&CurrTime); + } + + host_ica_unlock(); + + return qevHandle.Handle; + + +#endif +} + + + + +/* + * add_q_event_i - add event to do in n number of instructions. + * + * HOWEVER, instructions is interpreted as time with (1 instr\1 usec). + * It is not Instruction Jump Counts (IJC). + * + */ +q_ev_handle +add_q_event_i( + Q_CALLBACK_FN func, + unsigned long instrs, + long param + ) +{ + return add_q_event_t(func, instrs, param); +} + + +/* + * Called from the cpu when a count of zero is reached + */ +VOID +dispatch_q_event( + void + ) +{ +#ifndef MONITOR + PQEV_ENTRY pqevEntry; + LARGE_INTEGER CurrTime; + Q_CALLBACK_FN qevCallBack = NULL; + long Param; + + + host_ica_lock(); + + if (!IsListEmpty(&QuickEventListHead)) { + pqevEntry = CONTAINING_RECORD(QuickEventListHead.Flink, + QEV_ENTRY, + qevListEntry + ); + + qevCallBack = pqevEntry->qevCallBack; + Param = pqevEntry->Param; + + RemoveEntryList(&pqevEntry->qevListEntry); + free(pqevEntry); + } + + if (IsListEmpty(&QuickEventListHead)) { + host_q_ev_set_count(0); + qevNextDueTime.QuadPart = 0; + } + else { + host_TimeStamp(&CurrTime); + ResetCpuQevCount(&CurrTime); + } + + host_ica_unlock(); + + if (qevCallBack) { + (*qevCallBack)(Param); + } +#endif +} + + +VOID +delete_q_event( + q_ev_handle Handle + ) +{ +#ifndef MONITOR + QEVHANDLE qevHandle; + PLIST_ENTRY Next; + LARGE_INTEGER CurrTime; + PQEV_ENTRY pqevEntry; + PQEV_ENTRY EntryFound; + + + qevHandle.Handle = Handle; + + host_ica_lock(); + + // + // Search the qev list for the entry to ensure + // that the qevHandle exists. + // + EntryFound = NULL; + Next = QuickEventListHead.Flink; + while (Next != &QuickEventListHead) { + pqevEntry = CONTAINING_RECORD(Next, QEV_ENTRY, qevListEntry); + Next = Next->Flink; + if (pqevEntry == qevHandle.pvQuickEvent && + pqevEntry->QuickEventId == qevHandle.QuickEventId) + { + EntryFound = pqevEntry; + break; + } + } + + if (!EntryFound) { + host_ica_unlock(); + return; + } + + // + // Adjust the Next entry's DelayTime. + // + if (Next != &QuickEventListHead) { + pqevEntry = CONTAINING_RECORD(Next, QEV_ENTRY, qevListEntry); + pqevEntry->DelayTime += EntryFound->DelayTime; + } + + // + // If the entry being removed was at the head of the list + // Get curr time and remember that head has changed. + // + if (EntryFound->qevListEntry.Blink == &QuickEventListHead) { + host_TimeStamp(&CurrTime); + } + else { + CurrTime.QuadPart = 0; + } + + // + // Remove the entry found, and reset Cpu qev count + // if head has changed + // + RemoveEntryList(&EntryFound->qevListEntry); + free(EntryFound); + + // + // if head of list changed, reset the Cpu quick event count + // + if (CurrTime.QuadPart) { + ResetCpuQevCount(&CurrTime); + } + + + host_ica_unlock(); +#endif +} + + + +#ifndef MONITOR + +/* + * The QuickEvent list stores time in usecs. The CPU quick event counter + * uses Instruction Jump Counts (IJC) which tracks progress in emulated + * code as opposed to time. The following calibration code attempts to + * relate the two. + */ + +/* + * Convert time in usecs to Instruction Jump Counts (IJC) + */ + +IU32 +calc_q_inst_for_time( + IU32 Usecs + ) +{ + ULONG InstrJumpCounts; + + InstrJumpCounts = (Usecs * qevJumpRestart)/qevUsecPerIJC; + if (!InstrJumpCounts) { + InstrJumpCounts = 1; + } + + return InstrJumpCounts; +} + + +/* + * Convert Instruction Jump Counts (IJC) to time in usecs + */ +IU32 +calc_q_time_for_inst( + IU32 InstrJumpCounts + ) +{ + ULONG Usecs; + + Usecs = InstrJumpCounts * qevUsecPerIJC / qevJumpRestart; + if (!Usecs) { + Usecs = 1; + } + + + return Usecs; +} + + + + + +/* + * Calibration of quick events. + * + * quick_tick_recalibrate is invoked on each timer event. Its purpose is + * to align progress in emulated code with real time. Progress in emulated + * code is tracked by the cpu with Instruction Jump Counts (IJC). + * Real Time is tracked by the NT performance counter, with resolution + * in usecs (via host_TimeStamp). + * + * On each call to quick_tick_rcalibrate we retrieve the cpu's IJC, and + * the current time, giving us a Usec to Instruction Jump Count ratio. + * A running average of the UsecPerIJC ratio is used to convert between + * real time and IJC's to set the cpu's quick event counter. An averageing + * method was chosen because: + * + * - avoidance of unusual code fragments which may give artificial ratios. + * + * - The cpu emulator only increments the Instruction Jump Counter when it + * is emulating code, extended durations out of the emulator produces + * unrealistically high UsecPerIJC ratios. + * + * - performance overhead of updating the ratio. + * + */ + +void +quick_tick_recalibrate(void) +{ + LARGE_INTEGER CurrTime, PeriodTime; + ULONG usecPerIJC; + ULONG CalibCount; + +#ifndef PROD + if (DisableQuickTickRecal) { + qevUsecPerIJC = DEFAULT_IJCTIME * qevJumpRestart; + return; + } +#endif + + host_ica_lock(); + + CalibCount = host_get_q_calib_val(); + if (!CalibCount) { + host_ica_unlock(); + return; + } + + qevCalibCount.QuadPart += CalibCount; + + + if (++qevCalibCycle == CALIBCYCLE16) { + host_TimeStamp(&CurrTime); + PeriodTime.QuadPart = CurrTime.QuadPart - qevCalibTime.QuadPart; + qevCalibTime = CurrTime; + qevPeriodTime.QuadPart = (qevPeriodTime.QuadPart + PeriodTime.QuadPart) >> 1; + qevCalibCycle = 0; + } + else { + // + // Use an estimate of elapsed time, to avoid calling system on + // every timer event. + // + PeriodTime.QuadPart = (qevPeriodTime.QuadPart >> 4) * qevCalibCycle; + CurrTime.QuadPart = qevCalibTime.QuadPart + qevPeriodTime.QuadPart; + } + + // + // Calculate usecPerIJC for this period, ensuring that its not too + // large, which is caused by app spending most of its time outside + // of the emulator (Idle, network etc.). + // + usecPerIJC = (ULONG)((PeriodTime.QuadPart * qevJumpRestart)/qevCalibCount.QuadPart); + if (usecPerIJC > 10000) { // max at 100 usec PerIJC + usecPerIJC = 10000; + } + else if (usecPerIJC < 100 ) { // min at 1 usec Per IJC + usecPerIJC = 100; + } + + + // + // Add it into the averaged usecPerIJC, with 25% weight + // + qevUsecPerIJC = (usecPerIJC + qevUsecPerIJC + (qevCalibUsecPerIJC << 1)) >> 2; + + + if (!qevCalibCycle) { + qevCalibUsecPerIJC = qevUsecPerIJC; + qevCalibCount.QuadPart = 0; + } + + + // + // Check the quick event list for late events. If more than a msec + // behind, reduce the delay, and inform the emulator so it + // will dispatch soon. + // + if (qevNextDueTime.QuadPart && + qevNextDueTime.QuadPart < CurrTime.QuadPart - 1000) + { + ULONG InstrJumpCounts; + + InstrJumpCounts = (host_q_ev_get_count() >> 1) + 1; + host_q_ev_set_count(InstrJumpCounts); + } + + host_ica_unlock(); + +} + +#endif diff --git a/private/mvdm/softpc.new/base/system/quick_ev.c b/private/mvdm/softpc.new/base/system/quick_ev.c new file mode 100644 index 000000000..235f54493 --- /dev/null +++ b/private/mvdm/softpc.new/base/system/quick_ev.c @@ -0,0 +1,1556 @@ +#include "insignia.h" +#include "host_def.h" +/* + * SoftPC Revision 2.0 + * + * Title : Quick event dispatcher + * + * Desription : This module contains those function calls necessary to + * interface to the quick event dispatcher + * + * Public functions: + * q_event_init() : initialise conditions + * add_q_event_i() : do an event after a given number of + * instructions + * add_q_event_t() : do an event after a given number of + * microseconds + * delete_q_event(): delete an entry from the event queue + * + * Author : WTG Charnell + * + * Notes : + * + * This is what I (Mike) think happens in this module (before + * CPU_40_STYLE). + * + * This module handles two types of events - quick events, and tick events + * which are similar in most ways. The module contains functions to + * add events, delete events and dispatch events (action them) for both + * types. The only significant difference (apart from the fact that + * they're held in different (but similar) data structures, is that + * the quick event dispatch function is called from the CPU when the + * next quick event must be dispatched, while the tic event dispatch + * function is called on every timer tick, and only causes dispatch + * of an event when enough calls have taken place to reach the next event. + * + * The impression the module gives is that tic events were added as an + * after thought... + * + * The most important data structure is the Q_EVENT structure, from + * which most other structures are built. This has the following + * elements:- + * + * func - the action function to be called when the event goes + * off. + * time_from_last Contains the delta time from the previous entry + * in the time ordered chain of events (see below). + * handle - Unique handle to identify an event. + * param - Paramter passed to the action function when it's + * called. + * next,previous - pointers for a time ordered list of events. + * next_free - Dual purpose - link free structures together, or + * form a hash chain for a table hashed on handle. + * + * q_list_head & q_list_tail (and their equivalents tic_list_head & + * tic_list_tail) are used to keep a time-ordered dual linked list + * (yes, you guessed it, it was written by wtgc) of events. + */ + +#ifdef SCCSID +LOCAL char SccsID[]="@(#)quick_ev.c 1.43 07/04/95 Copyright Insignia Solutions Ltd."; +#endif + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_QUICKEV.seg" +#endif + +/* +** Normal UNIX includes +*/ +#include +#include +#include +#include TypesH +#include MemoryH + +/* +** SoftPC includes +*/ +#include "xt.h" +#include CpuH +#include "error.h" +#include "config.h" +#include "debug.h" +#include "timer.h" + +#ifdef SFELLOW +#include "malloc.h" +#else +/* for host_malloc & host_free */ +#include "host_hfx.h" +#endif /* SFELLOW */ + +#include "quick_ev.h" + +#if defined(CPU_40_STYLE) && !defined (SFELLOW) +#include "timestmp.h" /* for timestamp definitions */ +#endif + +#ifdef NTVDM +#include "ica.h" +#endif + + +#define HASH_SIZE 16 +#define HASH_MASK 0xf + +#ifdef CPU_40_STYLE +/* defines for calibration mechanism */ +#define Q_RATIO_HISTORY_SHIFT 3 /* power of two selection */ +#define Q_RATIO_HISTORY_SIZE (1 << Q_RATIO_HISTORY_SHIFT) /* corresponding size */ +#define Q_RATIO_WRAP_MASK (Q_RATIO_HISTORY_SIZE - 1) +#define Q_RATIO_DEFAULT 1 +#endif /* CPU_40_STYLE */ + +typedef enum { EVENT_TIME, EVENT_INSTRUCTIONS, EVENT_TICK } EVENTTYPE; + +/* + * Structure for event list elements + */ + +struct Q_EVENT +{ + void (* func)(); + unsigned long time_from_last; + unsigned long original_time; + q_ev_handle handle; + long param; + EVENTTYPE event_type; + struct Q_EVENT *next; + struct Q_EVENT *previous; + struct Q_EVENT *next_free; +}; + +typedef struct Q_EVENT t_q_event; +typedef t_q_event *TQ_TABLE[]; + +typedef void (*VOID_FUNC)(); +typedef ULONG (*ULONG_FUNC)(); + +/* +** our static vars. +*/ +#if defined(CPU_40_STYLE) && !defined(SFELLOW) +LOCAL struct { + IU32 jc_ms; + IU32 time_ms; +} q_ratio_history[Q_RATIO_HISTORY_SIZE]; +LOCAL IUM32 q_ratio_head = 0L; +LOCAL IBOOL q_ratio_initialised = FALSE; +LOCAL QTIMESTAMP previous_tstamp; +LOCAL IU32 ideal_q_rate = 1, real_q_rate = 1; +#endif /* CPU_40_STYLE && !SFELLOW */ + +LOCAL t_q_event *q_free_list_head = NULL; +LOCAL t_q_event *q_list_head = NULL; +LOCAL t_q_event *q_list_tail = NULL; + +LOCAL t_q_event *q_ev_hash_table[HASH_SIZE]; +LOCAL q_ev_handle next_free_handle = 1; + +/* + Separate list for events on timer ticks +*/ +#if defined(SFELLOW) +/* + * a single, shared free list (both tic and quick events + * use the same structs) + */ +#define tic_free_list_head q_free_list_head +#else +LOCAL t_q_event *tic_free_list_head = NULL; +#endif /* SFELLOW */ +LOCAL t_q_event *tic_list_head = NULL; +LOCAL t_q_event *tic_list_tail = NULL; + +LOCAL t_q_event *tic_ev_hash_table[HASH_SIZE]; +LOCAL q_ev_handle tic_next_free_handle = 1; +LOCAL ULONG tic_event_count = 0; + +#if defined(CPU_40_STYLE) && !defined(SFELLOW) +LOCAL void init_q_ratio IPT0(); +LOCAL void add_new_q_ratio IPT2(IU32, jumps_ms, IU32, time_ms); +LOCAL void q_weighted_ratio IPT2(IU32 *, mant, IU32 *, divis); +void quick_tick_recalibrate IPT0(); + +#else +#define init_q_ratio() +#endif /* CPU_40_STYLE && !SFELLOW */ + +LOCAL ULONG calc_q_ev_time_for_inst IPT1(ULONG, inst); + +LOCAL q_ev_handle gen_add_q_event IPT4(Q_CALLBACK_FN, func, unsigned long, time, long, param, EVENTTYPE, event_type); + +/* + * Global vars + */ +#if defined(CPU_40_STYLE) && !defined(SFELLOW) +GLOBAL IBOOL DisableQuickTickRecal = FALSE; +#endif + + +#if defined NTVDM && !defined MONITOR +/* NTVDM + * + * The Timer hardware emulation for NT is multithreaded + * So we use the ica critsect to synchronize access to the following + * quick event functions: + * + * q_event_init() + * add_q_event_i() + * add_q_event_t() + * delete_q_event() + * dispatch_q_event() + * + * tic events are not affected + * On x86 platforms (MONITOR) the quick event mechanism + * is to call the func directly so synchronization is not needed. + * + */ + +#endif + + +/* + * initialise linked list etc + */ + +#ifdef ANSI +LOCAL void q_event_init_structs(t_q_event **head, t_q_event **tail, + t_q_event **free_ptr, t_q_event *table[], + q_ev_handle *free_handle) +#else +LOCAL void q_event_init_structs(head, tail, free_ptr, table, free_handle) +t_q_event **head; +t_q_event **tail; +t_q_event **free_ptr; +t_q_event *table[]; +q_ev_handle *free_handle; +#endif /* ANSI */ +{ + int i; + t_q_event *ptr; + + while (*head != NULL) { + ptr = *head; + *head = (*head)->next; +#ifdef SFELLOW + ptr->next_free = *free_ptr; + *free_ptr = ptr; + } + *head = *tail = NULL; +#else /* SFELLOW */ + host_free(ptr); + } + while (*free_ptr != NULL) { + ptr = *free_ptr; + *free_ptr = (*free_ptr)->next_free; + host_free(ptr); + } + *head = *tail = *free_ptr=NULL; +#endif /* SFELLOW */ + + *free_handle = 1; + for (i = 0; i < HASH_SIZE; i++){ + table[i] = NULL; + } +} + +LOCAL t_q_event* makeSomeFreeEvents IPT0() +{ + t_q_event *nptr; +#ifdef SFELLOW + IUH count; + + nptr = SFMalloc(4096,TRUE); + for (count=0; count< (4096/sizeof(t_q_event)); count++) + { + nptr->next_free = q_free_list_head; + q_free_list_head = nptr; + nptr++; + } + nptr = q_free_list_head; + q_free_list_head = nptr->next_free; +#else + nptr = (t_q_event *)host_malloc(sizeof(t_q_event)); +#endif + return nptr; +} + +VOID q_event_init IFN0() +{ + +#if defined NTVDM && !defined MONITOR + host_ica_lock(); +#endif + + + host_q_ev_set_count(0); + q_event_init_structs(&q_list_head, &q_list_tail, &q_free_list_head, + q_ev_hash_table, &next_free_handle); + sure_sub_note_trace0(Q_EVENT_VERBOSE,"q_event_init called"); + + init_q_ratio(); + +#if defined NTVDM && !defined MONITOR + host_ica_unlock(); +#endif +} + +LOCAL VOID +tic_ev_set_count IFN1(ULONG, x ) +{ + tic_event_count = x; +} + +LOCAL ULONG +tic_ev_get_count IFN0() +{ + return(tic_event_count); +} + +VOID tic_event_init IFN0() +{ + tic_ev_set_count(0); + q_event_init_structs(&tic_list_head, &tic_list_tail, &tic_free_list_head, + tic_ev_hash_table, &tic_next_free_handle); + sure_sub_note_trace0(Q_EVENT_VERBOSE,"tic_event_init called"); +} + +/* + * add item to list of quick events to do + */ +LOCAL q_ev_handle +add_event IFN10(t_q_event **, head, t_q_event **, tail, t_q_event **, free, + t_q_event **, table, q_ev_handle *, free_handle, Q_CALLBACK_FN, func, + unsigned long, time, long, param, unsigned long, time_to_next_trigger, + EVENTTYPE, event_type ) +{ + + t_q_event *ptr, *nptr, *pp, *hptr; + int finished; + unsigned long run_time; + q_ev_handle handle; + + if (*head != NULL) + { + (*head)->time_from_last = time_to_next_trigger; + sure_sub_note_trace1(Q_EVENT_VERBOSE, + "add_event changes current list head to %d", + (*head)->time_from_last); + + } + + if (time==0) + { + /* do func immediately */ + sure_sub_note_trace0(Q_EVENT_VERBOSE, "add_event doing func immediately"); + (*func)(param); + return 0; + } + + /* get a structure element to hold the event */ + if (*free == NULL) + { + /* we have no free list elements, so we must create one */ +#if defined(SFELLOW) + if ((nptr = (t_q_event *)makeSomeFreeEvents()) == +#else + if ((nptr = (t_q_event *)host_malloc(sizeof(t_q_event))) == +#endif /* SFELLOW */ + (t_q_event *)0 ) + { + always_trace0("ARRGHH! malloc failed in add_q_event"); +#if defined(SFELLOW) + return 0; +#else + return 0xffff; +#endif /* SFELLOW */ + } + } + else + { + /* use the first free element */ + nptr = *free; + *free = nptr->next_free; + } + + handle = (*free_handle)++; + if ((handle == 0) || (handle == 0xffff)) + { + handle = 1; + *free_handle=2; + } + nptr->handle = handle; + nptr->param = param; + nptr->event_type = event_type; + + /* now put the new event into the hash table structure */ + hptr=table[handle & HASH_MASK]; + if (hptr == NULL) + { + /* the event has hashed to a previously unused hash */ + table[handle & HASH_MASK] = nptr; + } + else + { + /* find the end of the list of events that hash to this + ** hash number + */ + while ((hptr->next_free) != NULL) + { + hptr = hptr->next_free; + } + hptr->next_free = nptr; + } + nptr -> next_free = NULL; + + /* fill the rest of the element */ + nptr->func=func; + + /* find the place in the list (sorted in time order) where + the new event must go */ + ptr = *head; + run_time = 0; + finished = FALSE; + while (!finished) + { + if (ptr == NULL) + { + finished=TRUE; + } + else + { + run_time += ptr->time_from_last; + if (time < run_time) + { + finished=TRUE; + } + else + { + ptr=ptr->next; + } + } + } + + /* ptr points to the event which should follow the new event in the + ** list, so if it is NULL the new event goes at the end of the list. + */ + if (ptr == NULL) + { + /* must add on to the end of the list */ + if (*tail==NULL) + { + /* list is empty */ + sure_sub_note_trace0(Q_EVENT_VERBOSE, + "linked list was empty"); + *head = *tail = nptr; + nptr->next = NULL; + nptr->previous=NULL; + nptr->time_from_last = time; + nptr->original_time = time; + } + else + { + (*tail)->next = nptr; + nptr->time_from_last = time-run_time; + nptr->original_time = nptr->time_from_last; + nptr->previous = *tail; + *tail = nptr; + nptr->next = NULL; + sure_sub_note_trace1(Q_EVENT_VERBOSE, + "adding event to the end of the list, diff from previous = %d", + nptr->time_from_last); + } + } + else + { + /* event is not on the end of the list */ + if (ptr->previous == NULL) + { + /* must be at head of (non empty) list */ + sure_sub_note_trace0(Q_EVENT_VERBOSE, + "adding event to the head of the list"); + *head=nptr; + ptr->previous = nptr; + nptr->time_from_last = time; + nptr->original_time = time; + ptr->time_from_last -= time; + nptr->next = ptr; + nptr->previous = NULL; + } + else + { + /* the event is in the middle of the list */ + pp = ptr->previous; + pp->next = nptr; + ptr->previous = nptr; + nptr->next = ptr; + nptr->previous = pp; + nptr->time_from_last = time - + (run_time-(ptr->time_from_last)); + nptr->original_time = nptr->time_from_last; + ptr->time_from_last -= nptr->time_from_last; + sure_sub_note_trace1(Q_EVENT_VERBOSE, + "adding event to the middle of the list, diff from previous = %d", + nptr->time_from_last); + } + } + + return(handle); +} + +GLOBAL q_ev_handle add_q_event_i IFN3(Q_CALLBACK_FN, func, + unsigned long, instrs, + long, param) +{ + return(gen_add_q_event(func, instrs, param, EVENT_INSTRUCTIONS)); +} + +LOCAL q_ev_handle gen_add_q_event IFN4(Q_CALLBACK_FN, func, + unsigned long, event_value, + long, param, + EVENTTYPE, event_type) +{ + q_ev_handle handle; + unsigned long jumps_remaining_to_count_down; + unsigned long time_remaining_to_next_trigger; + unsigned long jumps_till_trigger; + unsigned long event_time; + +#if (defined(NTVDM) && defined(MONITOR)) || defined(GISP_CPU) /* No quick events - just call func */ + (*func)(param); + return(1); +#endif /* NTVDM & MONITOR */ + +#if defined NTVDM && !defined MONITOR + host_ica_lock(); +#endif + + jumps_remaining_to_count_down = (unsigned long)host_q_ev_get_count(); + +#if defined(CPU_40_STYLE) + sure_sub_note_trace1(Q_EVENT_VERBOSE, + "jumps remaining to count down in cpu = %d", + jumps_remaining_to_count_down); + + time_remaining_to_next_trigger = + host_calc_q_ev_time_for_inst( jumps_remaining_to_count_down ); +#else + time_remaining_to_next_trigger = jumps_remaining_to_count_down; +#endif + + if( event_type == EVENT_TIME ) + { + sure_sub_note_trace1(Q_EVENT_VERBOSE, + "got request to do func in %d usecs", event_value); + + /* 1 usec -> 1 usec */ + event_time = event_value; + } + else + { + sure_sub_note_trace1(Q_EVENT_VERBOSE, + "got request to do func in %d instructions", event_value); + + /* 1 million instrs/sec -> 1 instr takes 1 usec */ + event_time = event_value; + } + + sure_sub_note_trace1(Q_EVENT_VERBOSE, + "time remaining to next trigger = %d", time_remaining_to_next_trigger); + + handle = add_event( &q_list_head, &q_list_tail, &q_free_list_head, + q_ev_hash_table, &next_free_handle, func, event_time, param, + time_remaining_to_next_trigger, event_type ); + + /* set up the counter */ + if (q_list_head) + { +#ifdef CPU_40_STYLE + + if (q_list_head->time_from_last > q_list_head->original_time) + { + jumps_till_trigger = 1; + } + else + { + jumps_till_trigger = host_calc_q_ev_inst_for_time( + q_list_head->time_from_last); + + if (jumps_till_trigger == 0) + { + jumps_till_trigger = 1; + } + } + host_q_ev_set_count(jumps_till_trigger); + + sure_sub_note_trace1( Q_EVENT_VERBOSE, + "setting CPU counter to %d", jumps_till_trigger ); + +#else /* CPU_40_STYLE */ + + host_q_ev_set_count(q_list_head->time_from_last); +#endif /* CPU_40_STYLE */ + } + sure_sub_note_trace1(Q_EVENT_VERBOSE,"q_event returning handle %d",handle); + + /* + * Notify host of event iff we are really queueing it. This is + * to support CPUs that don't drive qevents (Sun HW) + */ + host_note_queue_added(event_value); + +#if defined NTVDM && !defined MONITOR + host_ica_unlock(); +#endif + + return( (q_ev_handle)handle ); +} + +q_ev_handle add_tic_event IFN3(Q_CALLBACK_FN, func, unsigned long, time, long, param) +{ + q_ev_handle handle; + unsigned long cur_count_val; + + cur_count_val = (unsigned long)tic_ev_get_count(); + sure_sub_note_trace1(Q_EVENT_VERBOSE, + "got request to do func in %d ticks", time); + sure_sub_note_trace1(Q_EVENT_VERBOSE, + "current tick delay count = %d", cur_count_val); + + handle = + add_event( &tic_list_head, &tic_list_tail, &tic_free_list_head, + tic_ev_hash_table, &tic_next_free_handle, func, time, param, + cur_count_val, EVENT_TICK ); + /* set up the counter */ + if (tic_list_head) + tic_ev_set_count(tic_list_head->time_from_last); + sure_sub_note_trace1(Q_EVENT_VERBOSE,"tic_event returning handle %d",handle); + return( handle ); +} + +GLOBAL q_ev_handle add_q_event_t IFN3(Q_CALLBACK_FN, func, unsigned long, time, + long, param) +{ +#ifdef CPU_40_STYLE + return (gen_add_q_event(func, time, param, EVENT_TIME)); +#else + return (gen_add_q_event(func, host_calc_q_ev_inst_for_time(time),param, EVENT_TIME)); +#endif +} + +/* + * Called from the cpu when a count of zero is reached + */ + +LOCAL VOID +dispatch_event IFN6(t_q_event **, head, t_q_event **, tail, t_q_event **, free, + TQ_TABLE, table, VOID_FUNC, set_count, ULONG_FUNC, get_count ) +{ + /* now is the time to do the event at the head of the list */ + int finished, finished2; + q_ev_handle handle; + t_q_event *ptr, *hptr, *last_hptr; + + UNUSED(get_count); + + finished = FALSE; + while (!finished) { + /* first adjust the lists */ + ptr = *head; + if (ptr == NULL) /* firewall */ + { + finished = TRUE; + continue; + } + *head = ptr->next; + if (*head != NULL) { + + IU32 jumps; + + (*head)->previous = NULL; + /* adjust counter to time to new head item */ + + jumps = host_calc_q_ev_inst_for_time( + (*head)->time_from_last); + + /* A quick event delay of zero means ignore */ + + if( jumps == 0 ) + { + /* Convert to a small but actionable delay */ + + jumps = 1; + } + + switch( (*head)->event_type ) + { + case EVENT_TIME: + + sure_sub_note_trace2( Q_EVENT_VERBOSE, + "set new time delay %d usecs -> %d jumps", + (*head)->time_from_last, + jumps ); + + (*set_count)( jumps ); + + break; + + case EVENT_INSTRUCTIONS: +#ifdef CPU_40_STYLE + sure_sub_note_trace2( Q_EVENT_VERBOSE, + "set new inst delay %d usecs -> %d jumps", + (*head)->time_from_last, + jumps ); + + (*set_count)( jumps ); + +#else + sure_sub_note_trace1(Q_EVENT_VERBOSE, + "set new inst delay %d", + (*head)->time_from_last ); + + (*set_count)((*head)->time_from_last); +#endif + break; + + case EVENT_TICK: + sure_sub_note_trace1(Q_EVENT_VERBOSE, + "set new tick delay %d", + (*head)->time_from_last ); + + (*set_count)((*head)->time_from_last); + + break; + + default: +#ifndef PROD + always_trace1( "Invalid quick event type %d", + (*head)->event_type ); + assert( FALSE ); +#endif + break; + } + + } else { + /* the queue is now empty */ + sure_sub_note_trace0(Q_EVENT_VERBOSE,"list is now empty"); + *tail = NULL; + } + /* find the event in the hash structure */ + handle = ptr->handle; + finished2 = FALSE; + hptr=table[handle & HASH_MASK]; + last_hptr = hptr; + while (!finished2) { + if (hptr == NULL) { + finished2 = TRUE; + always_trace0("quick event being done but not in hash list!!"); + } else { + if (hptr->handle == handle) { + /* found it! */ + finished2 = TRUE; + if (last_hptr == hptr) { + /* it was the first in the list for that hash */ + table[handle & HASH_MASK] = hptr->next_free; + } else { + last_hptr->next_free = hptr->next_free; + } + } else { + last_hptr = hptr; + hptr = hptr->next_free; + } + } + } + /* link the newly free element into the free list */ + ptr->next_free = *free; + *free = ptr; + + sure_sub_note_trace1(Q_EVENT_VERBOSE,"performing event (handle = %d)", handle); + + (* (ptr->func))(ptr->param); /* do event */ + + if (*head == NULL) { + finished = TRUE; + } else { + if ((*head) -> time_from_last != 0) { + /* not another event to dispatch */ + finished=TRUE; + } else { + sure_sub_note_trace0(Q_EVENT_VERBOSE,"another event to dispatch at this time, so do it now.."); + } + } + } +} + +VOID user_dispatch_q_event (user_set_count,user_get_count) + +VOID (*user_set_count)(); +ULONG (*user_get_count)(); + +{ + dispatch_event(&q_list_head, + &q_list_tail, + &q_free_list_head, + q_ev_hash_table, + user_set_count, + user_get_count); +} + +VOID dispatch_tic_event IFN0() +{ + ULONG count; + + if ( (count = tic_ev_get_count()) > 0 ) + { + tic_ev_set_count( --count ); + if (!count) + dispatch_event( &tic_list_head, &tic_list_tail, + &tic_free_list_head, tic_ev_hash_table, + tic_ev_set_count, tic_ev_get_count ); + } +} + +VOID dispatch_q_event IFN0() +{ +#if defined NTVDM && !defined MONITOR + host_ica_lock(); +#endif + + dispatch_event( &q_list_head, &q_list_tail, &q_free_list_head, + q_ev_hash_table, host_q_ev_set_count, + host_q_ev_get_count ); + +#if defined NTVDM && !defined MONITOR + host_ica_unlock(); +#endif +} + +/* + * delete a previuosly queued event by handle + */ + +LOCAL ULONG +unit_scaler IFN1 +( + IU32, val +) +{ + return val; +} + +LOCAL VOID +delete_event IFN7(t_q_event **, head, t_q_event **, tail, t_q_event **, free, + TQ_TABLE, table, q_ev_handle, handle, VOID_FUNC, set_count, + ULONG_FUNC, get_count ) +{ + int time_counted_down, finished, cur_counter, handle_found, time_to_next_trigger; + t_q_event *ptr, *pptr, *last_ptr; + ULONG_FUNC scale_func, unscale_func; + + if (handle == 0) + { + sure_sub_note_trace0(Q_EVENT_VERBOSE," zero handle"); + return; + } + sure_sub_note_trace1(Q_EVENT_VERBOSE,"deleting event, handle=%d",handle); + ptr = table[handle & HASH_MASK]; + + handle_found = FALSE; + finished = FALSE; + last_ptr = ptr; + + /* find and remove event from hash structure */ + while (!finished) { + if (ptr == NULL) { + /* we can't find the handle in the hash structure */ + finished = TRUE; + } else { + if (ptr->handle == handle) { + /* found it ! */ + if (last_ptr == ptr) { + /* it was the first in the list */ + table[handle & HASH_MASK] = ptr->next_free; + } else { + last_ptr->next_free = ptr->next_free; + } + finished = TRUE; + handle_found = TRUE; + } else { + last_ptr = ptr; + ptr = ptr->next_free; + } + } + } + if (handle_found) { + pptr = ptr->previous; + if (pptr != NULL) { + pptr->next = ptr->next; + } + pptr = ptr->next; + if (pptr != NULL) { + pptr->previous = ptr->previous; + pptr->time_from_last += ptr->time_from_last; + } + if (ptr == *tail) { + *tail = ptr->previous; + } + ptr->next_free = *free; + *free = ptr; + if (ptr == *head) { + /* this is the event currently + being counted down to, so + we need to alter the counter */ + + switch( (*head)->event_type ) + { + case EVENT_TIME: + case EVENT_INSTRUCTIONS: +#if defined(CPU_40_STYLE) + scale_func = host_calc_q_ev_inst_for_time; +#else + scale_func = unit_scaler; +#endif + unscale_func = host_calc_q_ev_time_for_inst; + break; + + case EVENT_TICK: + sure_sub_note_trace0( Q_EVENT_VERBOSE, + "deleting tick event" ); + scale_func = unit_scaler; + unscale_func = unit_scaler; + + break; + + default: +#ifndef PROD + always_trace1( "Invalid quick event type %d", + (*head)->event_type ); + assert( FALSE ); +#endif + break; + } + + cur_counter = (*get_count)(); + +#ifdef CPU_40_STYLE + /* + * We are deleting an unexpired event at the + * the head of the queue. In the EDL CPU it is + * impossible for this event to still be in the + * queue and cur_counter to be negative. + * This is also true of the tick event counter + * mechanism ( see dispatch_tic_event() ). + */ + +#ifndef PROD + if( cur_counter < 0 ) + { + always_trace1( "cur_counter is negative (%d)", + cur_counter ); + FmDebug(0); + } +#endif +#endif + + time_to_next_trigger = (*scale_func)(cur_counter); + time_counted_down = ptr->time_from_last - time_to_next_trigger; + + *head = ptr->next; + pptr = ptr->next; + if (pptr != NULL) { + /* + * pptr->time_from_last was adjusted above to include + * the time_from_last of the event we are deleting + */ + + if (pptr->time_from_last <= time_counted_down) + { + /* enough elapsed to dispatch next */ + dispatch_q_event(); + } + else + { + /* set countdown from new head */ + pptr->time_from_last -= time_counted_down; + (*set_count)( + (*unscale_func)( pptr->time_from_last )); + } + }else { + /* event list is now empty */ + (*set_count)(0); + } + } + sure_sub_note_trace0(Q_EVENT_VERBOSE,"event deleted"); + } else { + sure_sub_note_trace0(Q_EVENT_VERBOSE,"handle not found"); + } +} + +VOID delete_q_event IFN1(q_ev_handle, handle ) +{ +#if defined NTVDM && !defined MONITOR + host_ica_lock(); +#endif + + delete_event( &q_list_head, &q_list_tail, &q_free_list_head, + q_ev_hash_table, handle, host_q_ev_set_count, + host_q_ev_get_count ); + +#if defined NTVDM && !defined MONITOR + host_ica_unlock(); +#endif +} + +VOID delete_tic_event IFN1(q_ev_handle, handle ) +{ + delete_event( &tic_list_head, &tic_list_tail, &tic_free_list_head, + tic_ev_hash_table, handle, tic_ev_set_count, + tic_ev_get_count ); +} + +#if defined(CPU_40_STYLE) && !defined(SFELLOW) +LOCAL void +init_q_ratio IFN0() +{ + ISH loop; + +#ifdef CCPU + /* CCPU doesn't support recalibrating quick evs */ + DisableQuickTickRecal = TRUE; +#endif + if (host_getenv("DisableQuickTickRecal") != (char *)0) + DisableQuickTickRecal = TRUE; + + /* initialise q_ratio buffer */ + for (loop = 0; loop < Q_RATIO_HISTORY_SIZE; loop++) + { + q_ratio_history[loop].jc_ms = Q_RATIO_DEFAULT; + q_ratio_history[loop].time_ms = Q_RATIO_DEFAULT; + } + ideal_q_rate = 1; + real_q_rate = 1; + /* write 'first' timestamp */ + host_q_write_timestamp(&previous_tstamp); + q_ratio_initialised = TRUE; +} + +LOCAL void +add_new_q_ratio IFN2(IU32, jumps_ms, IU32, time_ms) +{ + /* add new value & update circular buffer index */ + q_ratio_history[q_ratio_head].jc_ms = jumps_ms; + q_ratio_history[q_ratio_head].time_ms = time_ms; + q_ratio_head = (q_ratio_head + 1) & Q_RATIO_WRAP_MASK; +} + +LOCAL void +q_weighted_ratio IFN2(IU32 *, mant, IU32 *, divis) +{ + IUM32 index; + IU32 jsum, jmin = (IU32)-1, jmax = 0; + IU32 tsum, tmin = (IU32)-1, tmax = 0; + + index = q_ratio_head; /* start at 'oldest' (next to be overwritten) */ + tsum = jsum = 0; + /* take sum of history ratios */ + do { + /* update sum of jumps + max & min */ + if (q_ratio_history[index].jc_ms < jmin) + jmin = q_ratio_history[index].jc_ms; + if (q_ratio_history[index].jc_ms > jmax) + jmax = q_ratio_history[index].jc_ms; + jsum += q_ratio_history[index].jc_ms; + + /* update sum of time + max & min */ + if (q_ratio_history[index].time_ms < tmin) + tmin = q_ratio_history[index].time_ms; + if (q_ratio_history[index].time_ms > tmax) + tmax = q_ratio_history[index].time_ms; + tsum += q_ratio_history[index].time_ms; + + index = (index + 1) & Q_RATIO_WRAP_MASK; + + } while(index != q_ratio_head); + + /* remove extreme values */ + jsum -= jmin; + jsum -= jmax; + + tsum -= tmin; + tsum -= tmax; + + jsum /= Q_RATIO_HISTORY_SIZE - 2; + tsum /= Q_RATIO_HISTORY_SIZE - 2; + + *mant = jsum; + *divis = tsum; +} + +/*********************************************************************** + Recalibration: + +ijc == InitialJumpCounter +measure minimum counter period - ijc->0 counters. (usecPerIJC) + +1 tick = 54945us + +so 1 tick 'should' take 54945/usecPerIJC = N (ijc) jumps. + +per tick: + get time delta. (approx 54945) + divide by usecPerIJC to get # of ijc's. (numijc) + multiply by ijc to get theoretical jumpcal for delta. (idealjc) + get real jumpcal for delta. (realjc) + +tick adjust ratio is therefore realjc * requestime / idealjc + +****************************************************************************/ + +/* calculate a number for number of pig-synchs per microsecond for a 33Mhz processor: +** Assume a synch on average every 5 Intel instructions, and each intel +** instruction takes about 2 cycles on average. The proper answer comes out as +** 3.3, but this has to be an integer, so round it down to 3 +*/ +#define SYNCS_PER_USEC 3 + +static IU32 jumpRestart = (IU32)-1; +static IU32 usecPerIJC = (IU32)-1; + +/* + * host_calc_q_ev_inst_for_time for CPU_40_STYLE ports. See above for + * recalibration vars used to scale time->jumps + */ + +IU32 +calc_q_inst_for_time IFN1(IU32, time) +{ +#ifdef SYNCH_TIMERS + return (time * SYNCS_PER_USEC); +#else + IU32 inst, jumps; + + /* be crude before initialisation */ + if (usecPerIJC == (IU32)-1) + return(time / 10); /* CCPU style! */ + + /* first adjust us -> jumps */ + jumps = (time * jumpRestart) / usecPerIJC; + + /* now fine adjust jumps for recent period */ + inst = (jumps * real_q_rate) / (ideal_q_rate); + + return(inst); +#endif /* SYNCH_TIMERS */ +} + +/* + * Time quick events are held internally with time unscaled. CPU reports + * current elapsed time as scaled - convert from scaled->unscaled. + * This routine implements the mathematical inverse of the above routine + * except for the boundary condition checking. + */ + +IU32 +calc_q_time_for_inst IFN1(IU32, inst) +{ +#ifdef SYNCH_TIMERS + return (inst / SYNCS_PER_USEC); +#else + IU32 time, jumps; + + /* be crude before initialisation */ + if (usecPerIJC == (IU32)-1) + return(inst * 10); /* CCPU style! */ + + /* remove fine scaling */ + jumps = (inst * ideal_q_rate) / real_q_rate; + + /* now usec/jump adjustment */ + time = (jumps * usecPerIJC) / jumpRestart; + + /* allow for rounding to 0 on small numbers */ + if (time == 0 && inst != 0) + return(inst); + else + return(time); +#endif /* SYNCH_TIMERS */ +} + +#define FIRSTFEW 33 +#define IJCPERIOD 91 + +GLOBAL void +quick_tick_recalibrate IFN0() +{ + QTIMESTAMP now; + IU32 idealrate, realrate; + IUH tdiff; + extern int soft_reset; + static int firstfew = FIRSTFEW; + static QTIMESTAMP ijc_tstamp; + static IU32 ijc_recount, ijc_calib; + +#if defined(CCPU) || !defined(PROD) + /* allow dev disabling of quick tick recal. Yoda 'qrecal {on|off}' */ + if (DisableQuickTickRecal) + { + ideal_q_rate = Q_RATIO_DEFAULT; + real_q_rate = Q_RATIO_DEFAULT; + return; + } +#endif /* PROD */ + + /* Boot time introduces some unrealistic time intervals - avoid them */ + if (!soft_reset) + return; + + /* quick event initialisation only on warm boot */ + if (!q_ratio_initialised) + { + init_q_ratio(); + return; + } + + if (firstfew) + { + switch (firstfew) + { + case FIRSTFEW: /* first tick after reset */ + host_q_write_timestamp(&previous_tstamp); + jumpRestart = host_get_jump_restart(); + break; + + case 1: /* last tick of 'firstfew' */ + host_q_write_timestamp(&now); + /* get real elapsed time of firstfew ticks */ + tdiff = host_q_timestamp_diff(&previous_tstamp, &now); + + /* get CPU activity rate in the period */ + realrate = host_get_q_calib_val(); + + usecPerIJC = (tdiff * jumpRestart) / realrate; + + sure_sub_note_trace4(Q_EVENT_VERBOSE, + "Baseline time for ijc = %d us (%d*%d)/%d", + usecPerIJC, tdiff, + jumpRestart, realrate); + host_q_write_timestamp(&previous_tstamp); + ijc_tstamp.data[0] = previous_tstamp.data[0]; + ijc_tstamp.data[1] = previous_tstamp.data[1]; + ijc_recount = IJCPERIOD; + ijc_calib = 1; + break; + } + firstfew --; + return; + } + else /* periodic update of usecPerIJC value */ + { + ijc_recount--; + if (ijc_recount == 0) + { + if (ijc_calib > 50000) /* questimate value 1% of us */ + { + host_q_write_timestamp(&now); + tdiff = host_q_timestamp_diff(&ijc_tstamp, &now); + usecPerIJC = (tdiff * jumpRestart) / ijc_calib; + sure_sub_note_trace4(Q_EVENT_VERBOSE, + "New usecPerIJC %d us (%d*%d)/%d", + usecPerIJC, tdiff, + jumpRestart, ijc_calib); + ijc_recount = IJCPERIOD; + ijc_tstamp.data[0] = now.data[0]; + ijc_tstamp.data[1] = now.data[1]; + ijc_calib = 1; + } + else /* too small (idling?) - keep current value for now */ + { + sure_sub_note_trace1(Q_EVENT_VERBOSE, + "No new usecPerIJC as calib too small (%d)", ijc_calib); + host_q_write_timestamp(&ijc_tstamp); + ijc_calib = 1; + ijc_recount = IJCPERIOD; + } + } + } + + /* make ratio of code progress to elapsed time period */ + host_q_write_timestamp(&now); + tdiff = host_q_timestamp_diff(&previous_tstamp, &now); + + /* + * The recalibration must be done by the 'slow' ticker. If the + * heartbeat is running too quickly for some reason, ignore + * recal requests until approx correct period is achieved. (This + * definition of 'correct' allows for signal waywardness). + */ + if (tdiff < 5000) + return; + + /* idle, graphics, net waits all can spoil recalibrations day... */ + if (tdiff > 5*54945) /* 54945 is 1000000us/18.2 */ + { + /* skip this attempt, try again when more settled */ + host_q_write_timestamp(&previous_tstamp); + return; + } + + idealrate = (tdiff * jumpRestart) / usecPerIJC; + + if (idealrate == 0) + return; /* usecPerIJC too high - idling or stuck in C */ + + realrate = host_get_q_calib_val(); + + if (realrate == 0) /* must be idling or stuck in C */ + return; /* try again when actually moving */ + + ijc_calib += realrate; + +#ifdef AVERAGED /* not for the moment */ + /* add new value to buffer */ + add_new_q_ratio(idealrate, realrate); + + /* ... and get average of accumulated ratios */ + q_weighted_ratio(&ideal_q_rate, &real_q_rate); +#else + ideal_q_rate = idealrate; + real_q_rate = realrate; +#endif + + /* timestamp for next recalc period */ + host_q_write_timestamp(&previous_tstamp); +} + + + + +#ifndef NTVDM + +/* functions required to implement the add_q_ev_int_action interface */ +LOCAL Q_INT_ACT_REQ int_act_qhead; +IS32 int_act_qident = 0; + +/*( + =========================== add_new_int_action ========================== +PURPOSE: add to the add_q_ev_int_action queue. +INPUT: func, adapter, line, parm - as add_q_ev_int_action +OUTPUT: queue identifier or -1 failure +========================================================================= +)*/ +LOCAL IU32 +add_new_int_action IFN4(Q_CALLBACK_FN, func, IU32, adapter, IU32, line, IU32, parm) +{ + Q_INT_ACT_REQ_PTR qptr, prev; /* list walkers */ + SAVED IBOOL firstcall = TRUE; + + if (firstcall) /* ensure head node setup on first call */ + { + firstcall = FALSE; + int_act_qhead.ident = 0; + int_act_qhead.next = Q_INT_ACT_NULL; + } + + /* maintain permanent head node for efficiency */ + + /* check whether head used (ident == 0 means unused) */ + if (int_act_qhead.ident == 0) + { + /* copy parameters to head node */ + int_act_qhead.func = func; + int_act_qhead.adapter = adapter; + int_act_qhead.line = line; + int_act_qhead.param = parm; + + /* get identifier for node */ + int_act_qident ++; + /* cope with (eventual) wrap */ + if (int_act_qident > 0) + int_act_qhead.ident = int_act_qident; + else + int_act_qhead.ident = int_act_qident = 1; + } + else /* find end of queue */ + { + /* start where head node points */ + qptr = int_act_qhead.next; + prev = &int_act_qhead; + + while (qptr != Q_INT_ACT_NULL) + { + prev = qptr; + qptr = qptr->next; + } + /* add new node */ + prev->next = (Q_INT_ACT_REQ_PTR)host_malloc(sizeof(Q_INT_ACT_REQ)); + /* malloc ok? */ + if (prev->next == Q_INT_ACT_NULL) + return((IU32)-1); + + /* initialise node */ + qptr = prev->next; + qptr->next = Q_INT_ACT_NULL; + qptr->func = func; + qptr->adapter = adapter; + qptr->line = line; + qptr->param = parm; + + /* get identifier for node */ + int_act_qident ++; + /* cope with (eventual) wrap */ + if (int_act_qident > 0) + qptr->ident = int_act_qident; + else + qptr->ident = int_act_qident = 1; + } + + sure_sub_note_trace2(Q_EVENT_VERBOSE,"add_new_q_int_action added fn %#x as id %d", (IHPE)func, int_act_qident); +} + +/*( + =========================== select_int_action ========================== +PURPOSE: choose from the q'ed add_q_ev_int_action requests which delay has + expired. Call action_interrupt with the appropriate parameters. Remove + request from queue. +INPUT: long: identifier of request +OUTPUT: None. +========================================================================= +)*/ +LOCAL void +select_int_action IFN1(long, identifier) +{ + Q_INT_ACT_REQ_PTR qptr, prev; /* list walkers */ + + /* check permanent head node first */ + if (int_act_qhead.ident == (IS32)identifier) + { + action_interrupt(int_act_qhead.adapter, int_act_qhead.line, + int_act_qhead.func, int_act_qhead.param); + int_act_qhead.ident = 0; /* mark unused */ + } + else /* search list */ + { + /* start search beyond head */ + qptr = int_act_qhead.next; + prev = &int_act_qhead; + + while (qptr != Q_INT_ACT_NULL && qptr->ident != (IS32)identifier) + { + prev = qptr; + qptr = qptr->next; + } + + /* if node found, dispatch action_int */ + if (qptr != Q_INT_ACT_NULL) + { + action_interrupt(qptr->adapter, qptr->line, qptr->func, qptr->param); + /* and remove node */ + prev->next = qptr->next; /* connect around node */ + host_free(qptr); /* chuck back on heap */ + } + else /* odd - identifier not found! */ + { + assert1(FALSE, "select_int_action: id %d not found",identifier); + } + } +} + +/*( + =========================== add_q_ev_int_action ========================== +PURPOSE: Prepare to call a hardware interrupt after a quick event managed + delay. The interrupt must be called from the passed callback + function at the same time as any associated emulation. The callback + will be called once the delay has expired and the cpu is ready to + receive interrupts on the passed line. See also ica.c:action_interrupt() + +INPUT: time: unsigned long - us of delay before calling action_interrupt + func: callback function address to callback when line available. + adapter: IU32. master/slave. + line: IU32. IRQ line interrupt will appear on. + parm: IU32. parameter to pass to above fn. + +OUTPUT: Returns q_ev_handle associated with quick event delay +========================================================================= +)*/ +GLOBAL q_ev_handle +add_q_ev_int_action IFN5(unsigned long, time, Q_CALLBACK_FN, func, IU32, adapter, IU32, line, IU32, parm) +{ + IU32 action_id; /* int_action list id */ + + /* store action_int parameters in internal list */ + action_id = add_new_int_action(func, adapter, line, parm); + + /* check for failure */ + if (action_id == -1) + return((q_ev_handle)-1); + + /* set quick event up to call selection func on expiry */ + return( add_q_event_t(select_int_action, time, (long)action_id) ); +} + +#endif + +#endif /* CPU_40_STYLE && !SFELLOW */ + +#ifdef QEVENT_TESTER + +/* + * The routine qevent_tester() below can be called from a BOP, which + * in turn can be called from a .BAT file using bop.com in a loop. + * This doesn't test the quick event system exhaustively but puts it + * under a bit more pressure. + */ + +LOCAL q_ev_handle handles[256]; +LOCAL IU8 deleter = 1; + +LOCAL void +tester_func IFN1 +( + IU32, param +) +{ + SAVED IU8 do_delete = 0; + + handles[param] = 0; + + if( handles[deleter] && (( do_delete++ & 0x1 ) == 0 )) + { + delete_q_event( handles[deleter] ); + } + + deleter += 7; +} + +GLOBAL void +qevent_tester IFN0() +{ + SAVED IU8 indx = 0; + + handles[indx++] = add_q_event_i((Q_CALLBACK_FN) tester_func, 100, indx ); + handles[indx++] = add_q_event_t((Q_CALLBACK_FN) tester_func, 300, indx ); + handles[indx++] = add_q_event_i((Q_CALLBACK_FN) tester_func, 1000, indx ); + handles[indx++] = add_q_event_t((Q_CALLBACK_FN) tester_func, 3000, indx ); + handles[indx++] = add_q_event_i((Q_CALLBACK_FN) tester_func, 10000, indx ); + handles[indx++] = add_q_event_t((Q_CALLBACK_FN) tester_func, 30000, indx ); + handles[indx++] = add_q_event_i((Q_CALLBACK_FN) tester_func, 100000, indx ); + handles[indx++] = add_q_event_t((Q_CALLBACK_FN) tester_func, 300000, indx ); +} +#endif /* QEVENT_TESTER */ diff --git a/private/mvdm/softpc.new/base/system/rom.c b/private/mvdm/softpc.new/base/system/rom.c new file mode 100644 index 000000000..2a7190bce --- /dev/null +++ b/private/mvdm/softpc.new/base/system/rom.c @@ -0,0 +1,723 @@ +#include "insignia.h" +#include "host_def.h" +/* +* SoftPC Revision 3.0 +* +* Title : ROM init functions +* +* Author : Ade Brownlow +* +* NB : These functions are used by BOTH the c and assembler cpus. +* also note that host_read_resource now returns a long. +* +* SCCS ID: @(#)rom.c 1.53 06/16/95 +* +* (C) Copyright Insignia Solutions Ltd, 1994. +*/ + +#include +#if defined(NTVDM) && defined(MONITOR) +#include +#endif + +#include TypesH +#include MemoryH + +/* + * SoftPC include files + */ +#include "xt.h" +#include "sas.h" +#include CpuH +#include "error.h" +#include "config.h" +#include "rom.h" +#include "debug.h" +#include "ckmalloc.h" +#include "yoda.h" +#include "gispsvga.h" + +#ifdef CPU_40_STYLE +#ifdef CCPU +#include "ccpusas4.h" +#else /* ! CCPU */ +#include "Cpu_c.h" +#endif /* ! CCPU */ +#endif /* CPU_40_STYLE */ + +#ifndef BIOS1ROM_FILENAME +#define BIOS1ROM_FILENAME "bios1.rom" +#endif /* BIOS1ROM_FILENAME */ + +#ifndef BIOS2ROM_FILENAME +#ifdef CPU_40_STYLE +#define BIOS2ROM_FILENAME "bios4.rom" +#else /* CPU_40_STYLE */ +#define BIOS2ROM_FILENAME "bios2.rom" +#endif /* CPU_40_STYLE */ +#endif /* BIOS2ROM_FILENAME */ + +#ifndef EGAROM_FILENAME +#define EGAROM_FILENAME "ega.rom" +#endif /* EGAROM_FILENAME */ + +#ifndef VGAROM_FILENAME +#define VGAROM_FILENAME "vga.rom" +#endif /* VGAROM_FILENAME */ + +#ifndef V7VGAROM_FILENAME +#define V7VGAROM_FILENAME "v7vga.rom" +#endif /* V7VGAROM_FILENAME */ + +#ifdef GISP_SVGA +#define GISP_VGAROM_FILENAME "hwvga.rom" +#define GISP_BIOS1ROM_FILENAME "hwbios1.rom" +#define GISP_BIOS2ROM_FILENAME BIOS2ROM_FILENAME +#endif + +#ifndef ADAPTOR_ROM_START +#define ADAPTOR_ROM_START 0xc8000 +#endif /* ADAPTOR_ROM_START */ + +#ifndef ADAPTOR_ROM_END +#define ADAPTOR_ROM_END 0xe0000 +#endif /* ADAPTOR_ROM_END */ + +#define ADAPTOR_ROM_INCREMENT 0x800 + +#ifndef EXPANSION_ROM_START +#define EXPANSION_ROM_START 0xe0000 +#endif /* EXPANSION_ROM_START */ + +#ifndef EXPANSION_ROM_END +#define EXPANSION_ROM_END 0xf0000 +#endif /* EXPANSION_ROM_END */ + +#define EXPANSION_ROM_INCREMENT 0x10000 + +#define ROM_SIGNATURE 0xaa55 + +/* Current SoftPC verion number */ +#define MAJOR_VER 0x03 +#define MINOR_VER 0x00 + +#if defined(macintosh) && defined(A2CPU) + /* Buffer is temporarily allocted - no bigger than needed. */ +#define ROM_BUFFER_SIZE 1024*25 +#else + /* Using sas_scratch_buffer - will get 64K anyway. */ +#define ROM_BUFFER_SIZE 1024*64 +#endif + +LOCAL LONG read_rom IPT2(char *, name, sys_addr, address); +LOCAL half_word do_rom_checksum IPT1(sys_addr, addr); + +#ifdef ANSI +extern long host_read_resource (int, char *, host_addr, int ,int); +#else +extern long host_read_resource (); +#endif + +/*( + *=========================== patchCheckSum ================================ + * patchCheckSum + * + * Purpose + * This function calculates the check-sum for the indicated ROM, + * and patches it in at the indicated offset into the ROM. + * + * It also checks that the ROM has the correct signature, and length, + * and rounds the size up to a multiple of 512 bytes. + * + * Note this routine should not be called once paging is turned on. + * + * Input + * start Physical address of start of ROM + * length length of ROM in bytes + * offset Checksum byte offset from start. + * + * Outputs + * None. + * + * Description + * We round the size-up to a multiple of 512 bytes, check the + * signature, then patch-in the checksum. +)*/ + +LOCAL void +patchCheckSum IFN3(PHY_ADDR, start, PHY_ADDR, length, PHY_ADDR, offset) +{ + PHY_ADDR roundedLength; + IU16 signature; + IU8 checksum; + IU8 *buffer; + PHY_ADDR currByte; + PHY_ADDR indicatedLength; + + + roundedLength = (length + 511) & (~511); + sas_connect_memory(start, start + roundedLength - 1, SAS_RAM); + +#ifndef PROD + if (roundedLength != length) { + always_trace3("ROM at 0x%.5lx length rounded up from 0x%.8lx to 0x%.8lx", start, length, roundedLength); + } + + if (roundedLength > (128 * 1024)) { + always_trace2("ROM at 0x%.5lx has a length of 0x%.8lx which is more than 128K", start, roundedLength); + force_yoda(); + return; + } + + if ((roundedLength <= offset) || (roundedLength < 4)) { + always_trace1("ROM at 0x%.5lx is too short!", start); + force_yoda(); + return; + } +#endif + + signature = sas_PR16(start); + if (signature != 0xaa55) { + always_trace2("ROM at 0x%.5lx has an invalid signature 0x%.4x (should be aa55)", start, signature); + sas_PW16(start, 0xaa55); + } + + indicatedLength = sas_PR8(start + 2) * 512; + if (indicatedLength != roundedLength) { + always_trace3("ROM at 0x%.5lx has incorrect length 0x%.8lx (actually 0x%.8lx)", start, indicatedLength, roundedLength); + sas_PW8(start + 2, roundedLength / 512); + } + + + check_malloc(buffer, roundedLength, IU8); + + sas_loads((LIN_ADDR)start, buffer, roundedLength); + + checksum = 0; + for (currByte = 0; currByte < roundedLength; currByte++) { + checksum += buffer[currByte]; + } + host_free(buffer); + + if (checksum != 0) { + always_trace2("ROM at 0x%.8lx has incorrect checksum 0x%.2x", + start, checksum); + sas_PW8(start + offset, + (IU8)((IS8)sas_PR8(start + offset) - checksum)); + } + sas_connect_memory(start, start + roundedLength - 1, SAS_ROM); + +} + + +/*( +=============================== read_video_rom ============================ +PURPOSE: Load the appropriate video rom file. +INPUT: None. +OUTPUT: None. +=========================================================================== +)*/ +GLOBAL void read_video_rom IFN0() +{ +#ifdef REAL_VGA + read_rom (VGAROM_FILENAME, EGA_ROM_START); +#else /* REAL_VGA */ + PHY_ADDR romLength = 0; + + switch ((ULONG) config_inquire(C_GFX_ADAPTER, NULL)) + { +#ifndef GISP_SVGA +#ifdef VGG + case VGA: +#ifdef V7VGA + romLength = read_rom (V7VGAROM_FILENAME, EGA_ROM_START); +#else /* V7VGA */ + romLength = read_rom (VGAROM_FILENAME, EGA_ROM_START); +#endif /* V7VGA */ + break; +#endif /* VGG */ + +#ifdef EGG + case EGA: + romLength = read_rom (EGAROM_FILENAME, EGA_ROM_START); + break; +#endif /* EGG */ + + default: + /* No rom required */ + break; + +#else /* GISP_SVGA */ + + /* GISP_SVGA - only have the gisp vga roms or, none for CGA boot */ + case VGA: + romLength = read_rom (GISP_VGAROM_FILENAME, EGA_ROM_START); + default: + break; + +#endif /* GISP_SVGA */ + + } + + if (romLength != 0) + { + /* There is a problem with emm386 and Windows start up, which + * is cured by setting the video bios rom internal length + * to 32Kb. + * Is seems that the V86 manager (or emm386) incorrectly + * maps C6000..C7FFF during initialisation. + * We round up the video ROM to 32Kb to avoid this problem, + * which reduces the amount of "upper memory" RAM available to + * dos extenders by 12K. + */ + if (romLength < (32*1024)) + romLength = (32*1024); + patchCheckSum(EGA_ROM_START, romLength, 5); + } +#endif /* not REAL_VGA */ +} + +GLOBAL void rom_init IFN0() +{ +#if !defined(NTVDM) || ( defined(NTVDM) && !defined(X86GFX) ) + /* + * Fill up all of ROM (Intel C0000 upwards) with bad op-codes. + * This is the Expansion ROM and the BIOS ROM. + * This will enable the CPU to trap any calls to ROM that are not made at a + * valid entry point. + */ + +#ifdef GISP_SVGA + mapHostROMs( ); +#else /* GISP_SVGA */ +#if defined(macintosh) && defined(A2CPU) + /* not macintosh 2.0 cpus - they have sparse M */ +#else + sas_fills( ROM_START, BAD_OP, PC_MEM_SIZE - ROM_START); +#endif /* macintosh && A2CPU */ +#endif /* GISP_SVGA */ + + /* + * emm386 needs a hole to put it's page frame in. + */ +#if defined(SPC386) && !defined(GISP_CPU) + sas_connect_memory(0xc0000, 0xfffff, SAS_ROM); +#endif + + /* Load the video rom. */ + read_video_rom(); + + /* load the rom bios */ +#ifdef GISP_SVGA + if ((ULONG) config_inquire(C_GFX_ADAPTER, NULL) == CGA ) + { + read_rom (BIOS1ROM_FILENAME, BIOS_START); + read_rom (BIOS2ROM_FILENAME, BIOS2_START); + } + else + { + read_rom (GISP_BIOS1ROM_FILENAME, BIOS_START); + read_rom (GISP_BIOS2ROM_FILENAME, BIOS2_START); + } + +#else /* GISP_SVGA */ + + read_rom (BIOS1ROM_FILENAME, BIOS_START); + read_rom (BIOS2ROM_FILENAME, BIOS2_START); + +#endif /* GISP_SVGA */ + +#else /* !NTVDM | (NTVDM & !X86GFX) */ + + /* + * Now tell the CPU what it's not allowed to write over... + * + * These used to be done for everyone, but now they're only done for NT + * as everyone else should have done it inside read_rom. + */ + sas_connect_memory (BIOS_START, 0xFFFFFL, SAS_ROM); +#ifdef EGG + sas_connect_memory (EGA_ROM_START, EGA_ROM_END-1, SAS_ROM); +#endif +#endif /* !NTVDM | (NTVDM & !X86GFX) */ + + host_rom_init(); +} + +LOCAL LONG read_rom IFN2(char *, name, sys_addr, address) +{ +#if !(defined(NTVDM) && defined(MONITOR)) + host_addr tmp; + long size = 0; + + /* do a rom load - use the sas_io buffer to get it the right way round */ + /* BIOS rom first. */ + /* Mac on 2.0 cpu doesn't want to use sas scratch buffer. */ +#if defined(macintosh) && defined(A2CPU) + tmp = (host_addr)host_malloc(ROM_BUFFER_SIZE); +#else + tmp = (host_addr)sas_scratch_address(ROM_BUFFER_SIZE); +#endif + + if (!tmp) + { + host_error(EG_MALLOC_FAILURE, ERR_CONT | ERR_QUIT, NULL); + return(0); + } + if (size = host_read_resource(ROMS_REZ_ID, name, tmp, ROM_BUFFER_SIZE, TRUE)) + { + sas_connect_memory( address, address+size, SAS_RAM); + sas_stores (address, tmp, size); + sas_connect_memory( address, address+size, SAS_ROM); + } + +#if defined(macintosh) && defined(A2CPU) + host_free((char *)tmp); +#endif + + return( size ); +#else + return ( 0L ); +#endif /* !(NTVDM && MONITOR) */ +} + +LOCAL half_word do_rom_checksum IFN1(sys_addr, addr) +{ + LONG sum = 0; + sys_addr last_byte_addr; + + last_byte_addr = addr + (sas_hw_at(addr+2)*512); + + for (; addr> 4); + setIP((addr & 0xffff)); + host_simulate(); + setCS(savedCS); + setIP(savedIP); + assert1(NO, "Additional ROM located and initialised at 0x%x ", addr-3); + } + else + { + assert2(NO, "Bad additonal ROM located at 0x%x, checksum = 0x%x\n", addr, checksum); + } + } + } +} + +GLOBAL void search_for_roms IFN0() +{ +#if !defined(NTVDM) || (defined(NTVDM) && !defined(X86GFX)) +#ifndef GISP_SVGA +/* + First search for adaptor ROM modules +*/ + do_search_for_roms(ADAPTOR_ROM_START, + ADAPTOR_ROM_END, ADAPTOR_ROM_INCREMENT); + +/* + Now search for expansion ROM modules +*/ + do_search_for_roms(EXPANSION_ROM_START, + EXPANSION_ROM_END, EXPANSION_ROM_INCREMENT); +#endif /* GISP_SVGA */ +#endif /* !NTVDM | (NTVDM & !X86GFX) */ +} + + +GLOBAL void rom_checksum IFN0() +{ +#if !defined(NTVDM) || (defined(NTVDM) && !defined(X86GFX) ) + patchCheckSum(BIOS_START, PC_MEM_SIZE - BIOS_START, + 0xfffff - BIOS_START); +#endif /* !NTVDM | (NTVDM & !X86GFX) */ +} + +GLOBAL VOID patch_rom IFN2(sys_addr, addr, half_word, val) +{ +#if !defined(NTVDM) || (defined(NTVDM) && !defined(X86GFX) ) + UTINY old_val; + + /* + * 4.0 style CPUs don't export this variable, and if sas hasn't been + * inited, then the sas_connect will drop out to yoda. + */ + +#ifdef CPU_40_STYLE + + IU8 *hostPtr; + + /* TMM 14/2/95 + * ----------- + * What we are doing here is replacing the sas_connect() method of writing to ROM + * with the new approach of poking the values directly in there. See display_string() + * below for a more detiled discussion of the why's and wherefores. + */ + +#ifdef macintosh + + /* The Mac config system wants to call this routine before the + * CPU exists, so we'd better invent a Mac-specific IBOOL to + * make the symptom non-fatal - finding and fixing the cause + * is too hard. + */ + { + extern IBOOL SafeToCallSas; + + if (!SafeToCallSas) + return; + } + +#endif /* macintosh */ + + /* The page might not be present (Arrggghhhh!!!!!) + ** so we can't do anything sensible and must give + ** up. We print an error though. + */ + hostPtr = getPtrToPhysAddrByte (addr); + if (hostPtr == 0) + { + host_error(EG_OWNUP, ERR_QUIT, NULL); + return; + } + + old_val = *hostPtr; + + /* Optimisation - don't upset the world if the value is unchanged. + */ + if (old_val == val) + return; + + *hostPtr = val; + +/* + * Adjust the checksum value by new - old. + * val is now difference between new and old value. + * We don't do this for GISP_SVGA because the checksums are already + * screwed, and attempting to write to the real host system ROM would + * only make things worse! + */ + +#ifndef GISP_SVGA + /* Now get the checksum at the end of the ROM */ + hostPtr = getPtrToPhysAddrByte (0xFFFFFL); + if (hostPtr == 0) + { + host_error(EG_OWNUP, ERR_QUIT, NULL); + return; + } + + /* Now set the checksum to the difference between the old and new values */ + *hostPtr -= (val - old_val); + +#endif /* GISP_SVGA */ + +#else /* CPU_40_STYLE */ + + /* + * 4.0 style CPUs don't export this variable, and if sas hasn't been + * inited, then the sas_connect will drop out to yoda. + */ + + if (Length_of_M_area == 0) + return; + + old_val = sas_hw_at( addr ); + + /* Optimisation - don't upset the world if the value is unchanged. + */ + if (old_val == val) + return; + + sas_connect_memory (addr, addr, SAS_RAM); + sas_store (addr,val); + sas_connect_memory (addr, addr, SAS_ROM); +/* + * Adjust the checksum value by new - old. + * val is now difference between new and old value. + * We don't do this for GISP_SVGA because the checksums are already + * screwed, and attempting to write to the real host system ROM would + * only make things worse! + */ + +#ifndef GISP_SVGA + val -= old_val; + old_val = sas_hw_at( 0xFFFFFL ); + + old_val -= val; + sas_connect_memory (0xFFFFFL, 0xFFFFFL, SAS_RAM); + sas_store (0xFFFFFL, old_val); + sas_connect_memory (0xFFFFFL, 0xFFFFFL, SAS_ROM); +#endif /* GISP_SVGA */ + +#endif /* CPU_40_STYLE */ + +#endif /* !NTVDM | (NTVDM & !X86GFX) */ +} + +#ifndef GISP_SVGA + +/* + * These routines were used by 2.0 CPUs which performed + * post-write checks. Since all 3.0 and later CPUs do + * pre-write checks they're no longer needed. + */ + +#if !(defined(NTVDM) & defined(MONITOR)) +void update_romcopy IFN1(long, addr) +{ + UNUSED( addr ); +} +#endif + +GLOBAL void copyROM IFN0() +{ +} + +#endif /* GISP_SVGA */ + +/* + * To enable our drivers to output messages generated from + * our bops we use a scratch area inside our rom. + */ +#ifndef GISP_SVGA +LOCAL sys_addr cur_loc = DOS_SCRATCH_PAD; +#else /* GISP_SVGA */ +/* For GISP svga builds, we initialise from gispROMInit() */ +sys_addr cur_loc; +#endif /* GISP_SVGA */ + +GLOBAL void display_string IFN1(char *, string_ptr) +{ +#if !defined(NTVDM) || (defined(NTVDM) && !defined(X86GFX) ) + /* + * Put the message "*string_ptr" in the ROM + * scratch area where the drivers know where + * to output it from. + */ + +#ifdef CPU_40_STYLE + + IU8 *hostPtr; + IU16 count; + IU32 endLinAddr; + + /* In a paging environment, we must be careful as a + ** the ROM area could have been copied and/or mapped + ** as read only. We must alter the memory which is + ** currently at the linear address of the ROM (whether + ** that is actually our rom or a RAM copy of it). We + ** must force this alteration despite any protection + ** placed on the page by the Intel page tables. + */ + + /* get a host pointer to the memory behind the required + ** linear address. + */ + hostPtr = getPtrToLinAddrByte(cur_loc); + + /* The page might not be present (Arrggghhhh!!!!!) + ** so we can't do anything sensible and must give + ** up. We print an error though. + */ + if (hostPtr == 0) + { + host_error(EG_OWNUP, ERR_QUIT, NULL); + return; + } + + /* the area to be patched must lie entirely in one intel page for + ** this method to be sure to work. So check it. + */ + endLinAddr = (cur_loc + strlen(string_ptr) + 2); + if (((endLinAddr ^ DOS_SCRATCH_PAD) > 0xfff) || (endLinAddr > DOS_SCRATCH_PAD_END)) + { +#ifndef PROD + fprintf(trace_file, "*** Warning ***: patch string into ROM too long; tuncating string '%s'", string_ptr); +#endif + if ((DOS_SCRATCH_PAD_END ^ DOS_SCRATCH_PAD) > 0xfff) + { + /* The defined DOS scratch pad crosses a page + ** boundary. must truncate to the page boundary, + ** allowing for the '$' and terminating zero + */ + string_ptr[0xffd - (DOS_SCRATCH_PAD & 0xfff)] = '\0'; + } + else + { + /* The string overflows the DOS scratch pad. We + ** must truncate to the scrtach pad boundary, + ** allowing for the '$' and terminating zero + */ + string_ptr[cur_loc - DOS_SCRATCH_PAD - 2] = '\0'; + } + } + for (count = 0; count < strlen(string_ptr); count++) + { + *IncCpuPtrLS8(hostPtr) = string_ptr[count]; + } + /* Terminate the string */ + *IncCpuPtrLS8(hostPtr) = '$'; + *IncCpuPtrLS8(hostPtr) = '\0'; +#else /* CPU_40_STYLE */ + sas_connect_memory(DOS_SCRATCH_PAD, DOS_SCRATCH_PAD_END, SAS_RAM); + sas_stores(cur_loc, (host_addr)string_ptr, strlen(string_ptr)); + cur_loc += strlen(string_ptr); + + /* Terminate the string */ + sas_store(cur_loc, '$'); + sas_store(cur_loc + 1, '\0'); + sas_disconnect_memory(DOS_SCRATCH_PAD, DOS_SCRATCH_PAD_END); + cur_loc -= strlen(string_ptr); +#endif /* CPU_40_STYLE */ +#endif /* !NTVDM | !MONITOR */ + cur_loc+=strlen(string_ptr); +} + +GLOBAL void clear_string IFN0() +{ + cur_loc = DOS_SCRATCH_PAD; /* Need to reset this pointer to start of ** + ** scratch area to prevent messages being ** + ** repeatedly displayed. */ + display_string (""); +} + +/* Returns the SoftPC version to our device drivers */ + +GLOBAL void softpc_version IFN0() +{ + setAH(MAJOR_VER); + setAL(MINOR_VER); +} diff --git a/private/mvdm/softpc.new/base/system/sources b/private/mvdm/softpc.new/base/system/sources new file mode 100644 index 000000000..deb6527fc --- /dev/null +++ b/private/mvdm/softpc.new/base/system/sources @@ -0,0 +1,68 @@ +!IF 0 + +Copyright (c) 1989 Microsoft Corporation + +Module Name: + + sources. + +Abstract: + + This file specifies the target component being built and the list of + sources files needed to build that component. Also specifies optional + compiler switches and libraries that are unique for the component being + built. + + +Author: + + Steve Wood (stevewo) 12-Apr-1990 + +NOTE: Commented description of this file is in \nt\bak\bin\sources.tpl + +!ENDIF + + +MAJORCOMP=spcbase +MINORCOMP=system + +TARGETNAME=system + +TARGETPATH=obj + + +NTPROFILEINPUT=yes + +# Pick one of the following and delete the others +TARGETTYPE=LIBRARY + + +TARGETLIBS= + +SOFTPC_TREE=$(BASEDIR)\private\mvdm\softpc.new + +INCLUDES=$(SOFTPC_TREE)\host\inc;$(SOFTPC_TREE)\base\inc;$(BASEDIR)\private\inc + +!IF $(ALPHA) +GPSIZE=0 +!ELSE +GPSIZE=0 +!ENDIF + + + +SOURCES=at_dma.c \ + cmosnt.c \ + ica.c \ + idetect.c \ + illegalp.c \ + qevnt.c \ + rom.c \ + timer.c \ + timestrb.c \ + dummy_nt.c \ + unexp_nt.c + +!INCLUDE $(SOFTPC_TREE)\obj.vdm\CDEFINE.INC + +UMTYPE=console diff --git a/private/mvdm/softpc.new/base/system/timer.c b/private/mvdm/softpc.new/base/system/timer.c new file mode 100644 index 000000000..88b7781c3 --- /dev/null +++ b/private/mvdm/softpc.new/base/system/timer.c @@ -0,0 +1,2881 @@ +#include "insignia.h" +#include "host_def.h" + +/* + * SoftPC version 2.0 + * + * Title : Time Handler + * + * Description : Emulate the 8253 3-channel timer; invoke 'BIOS + * sytem timer interrupt code', cursor flash, repeat + * key processing etc. + * + * Author : Jerry Kramskoy + * + * Notes : There is only one real time timer per process, this + * module counts clock ticks and distributes calls + * to the appropriate functions as required. + * + * This module is host independent - see xxxx_timer.c + * where xxxx is a machine type for host dependent stuff. + * + * Mods: (r3.2) : (SCR 257). Code has been added to time_tick() to spot + * that video has been disabled for a period. If this is + * so, clear the screen. Refresh when video is enabled + * again. + * + * (r3.4) : Make use of the host time structures host_timeval, + * host_timezone, and host_tm, which are equivalent + * to the Unix BSD4.2 structures. + * Also convert references to gettimeofday() to + * host_getIdealTime(). + */ + +#ifdef SCCSID +static char SccsID[]="@(#)timer.c 1.41 05/31/95 Copyright Insignia Solutions Ltd."; +#endif + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_SUPPORT.seg" +#endif + + +/* + * O/S include files. + */ + +#include +#include TypesH +#include TimeH + +/* + * SoftPC include files + */ +#include "xt.h" +#include CpuH +#include "sas.h" +#include "ios.h" +#include "ica.h" +#include "trace.h" +#include "bios.h" +#include "host.h" +#include "timer.h" +#include "timeval.h" +#include "idetect.h" +#include "debug.h" +#include "quick_ev.h" + +#ifndef PROD +#include +#endif + +#ifdef HUNTER +#include "hunter.h" +#endif + +#ifdef NTVDM +#include "fla.h" +#include "nt_eoi.h" +#include "nt_reset.h" +#include "nt_pif.h" +#undef LOCAL +#define LOCAL +#endif + +/* Imports */ + + +/* + * ============================================================================ + * Local static data and defines + * ============================================================================ + */ + +/* 'idealtime' gets initialised to be the host system's current + * time value (timer_init()), and thereafter gets incremented by + * the value 'idealInterval' every time that time_tick() gets called + * which gives the illusion of a 100% accurate signal delivery + */ + +static struct host_timeval idealtime; +static unsigned long idealInterval; +#ifdef NTVDM +ULONG timer_delay_size= HOST_IDEAL_ALARM >> 1; // usecs +ULONG EoiPending=0; +ULONG EoiIntsPending=0; +ULONG EoiDelayInUse=0; +int ticks_blocked = 0; +#else /* NTVDM */ +static unsigned long ticksPerIdealInterval; +static int ticks_blocked = 0; +#endif /* NTVDM */ + +#ifndef PROD +static char buf[80]; /* Used for tracing messages */ +#endif + +#ifdef HUNTER /* Only needed for HUNTER */ +word timer_batch_count; /* Batch update when PC tick occurs */ +#endif +int timer_int_enabled; /* Whether Bios timer ints are required */ + + +/* control word format */ + +/* Values in D54 of control word - number of bytes to read/load into counter */ +#define LATCH 0 +#define RL_LSB 1 +#define RL_MSB 2 +#define RL_LMSB 3 + +/* Values in D321 of control word - the counter mode. */ +#define INT_ON_TERMINALCOUNT 0 +#define PROG_ONESHOT 1 +#define RATE_GEN 2 +#define SQUAREWAVE_GEN 3 +#define SW_TRIG_STROBE 4 +#define HW_TRIG_STROBE 5 +/* NB. 6 = RATE_GEN, 7 = SQUAREWAVE_GEN */ + +/* Values in D0 of control word - whether prog wants to read/write binary or BCD to counter */ +#define BINARY 0 +#define BCD 1 + +#define INDEFINITE (ULONG)-1 +#define STARTLO 0 +#define STARTHI 1 +#define NOREPEAT 0 +#define REPEAT ~NOREPEAT + +#define WRITE_SIGNAL 1 +#define GATE_SIGNAL 2 + +#define UNLOCKED 0 +#define LOCKED ~UNLOCKED + +#define STATE_FUNCTION void +#define UNBLOCK_FUNCTION void +#define GATENABLED_FUNCTION void +#define UPDATECOUNTER_FUNCTION void + +/* + * Timer read state + */ +#define UNREAD 0 /* Timer is in normal state */ +#define READMSB 1 /* First byte of LMSB mode read, but not second yet */ +#define READSTATUS 2 /* Status latched, will read it first */ + +/* + * These two figures give a timer frequency of 1.193 MHz (which is + * how fast the 8235 is clocked. This means that the timer will wrap round + * every 1/18.2th of a second... the same amount of time as the PC tick + * rate. This is not surprizing, as the PC tick rate is controlled by + * timer 0. Every time timer 0 wraps, the PC is interrupted by the timer. + */ + +#define TIMER_CLOCK_NUMER 1000 +#define TIMER_CLOCK_DENOM 1193 + +typedef half_word TSIGNAL; + +/* the following structure defines an output waveform from a + * timer channel. The waveform consists of 'n' clocks at one + * logic level, and 'm' ticks at the other logic level. + * Which level starts the waveform is given by 'startLogicLevel'. + * e.g; the following waveform ... + */ + +typedef struct { + long clocksAtLoLogicLevel; + long clocksAtHiLogicLevel; + long period; + long startLogicLevel; + long repeatWaveForm; +} WAVEFORM; + +/* __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ + * | | | | | + * |__ __ __| |__ __ __| | + * + * would be described by + * clocksAtLoLogicLevel = 3 + * clocksAtHiLogicLevel = 6 + * startLogicLevel = STARTHI + * repeatWaveForm = TRUE; + * + * + * The overall state of a counter is represented by the following + * structure. Its contents are described below. + */ + +typedef enum trigCond_ {LEVEL, EDGE} trigCond; +typedef enum countload_ {AVAILABLE, USED} countload; + +typedef struct { + int m; + int bcd; + int rl; + + STATE_FUNCTION (*state) IPT2(int, signal, half_word, value); + STATE_FUNCTION (*statePriorWt) IPT2(int, signal, half_word, value); + STATE_FUNCTION (*stateOnGate) IPT2(int, signal, half_word, value); + UNBLOCK_FUNCTION (*actionOnWtComplete) IPT0(); + UNBLOCK_FUNCTION (*actionOnGateEnabled) IPT0(); + void (*getTime) IPT1(struct host_timeval *, t); + + unsigned char outblsb; + unsigned char outbmsb; + unsigned long initialCount; + int readState; + int countlatched; + unsigned char latchvaluelsb; + unsigned char latchvaluemsb; + unsigned char latchstatus; + word Count; + countload newCount; + word tickadjust; + struct host_timeval activationTime; + int tc; + int freezeCounter; + +#ifndef NTVDM + unsigned long lastTicks; + long microtick; + long timeFrig; + word saveCount; + int guessesPerHostTick; /* How often per host tick are we forced to guess? */ + int guessesSoFar; /* How many times have we guessed so far? */ +#endif + + unsigned int delay; + + trigCond trigger; + TSIGNAL gate; + TSIGNAL clk; + WAVEFORM out; +} COUNTER_UNIT; + +/* + * When the counter is programmed, the 8253 receives a control word. + * (see pg 6-266 of manual). The counter being programmed is specified + * within this word. Provided 'rl' is non-zero, then this counter is + * being reprogrammed, and we remember the values of m (mode), rl + * (control of which bytes are involved in a read or load sequence) + * and bcd (whether the counter is in binary or bcd mode). + * Based on rl, the counter then must receive one or two bytes via + * outb's. Two states are used to accept 'outblsb' or + * 'outbmsb', or both. When the full byte complement has been received, + * 'initialCount' gets set to the value specified by 'outblsb' and 'outbmsb', + * taking account of BCD etc., along with 'Count'. + * 'Count' gets adjusted by the value of 'timeadjust'. + * 'timeadjust' is initialised to zero every time a new mode + * word (non-zero) is received. For certain modes of the counter, + * if they are sent a new count, without receiving a new mode, then + * this will cause the counter to start counting from this new count + * at some stage (based on mode and gate values). SInce we are not + * maintaining the counters continually (rather we prod them as a + * result of io or gate activity) then there is a good chance we + * will be late at resetting a counter for counting again. Hence + * 'timeadjust' is calculated for this lateness, and used as a + * correction factor. + + * If a 'latch counter' command ('rl'=0 in command word) is issued, then + * the current counter value is latched into 'latchvaluelsb' and + * 'latchvaluemsb', and the flag 'countlatched' is set non-zero. + * If this flag is non-zero during a counter read, then these latched + * bytes are returned, and upon completion of the read sequence, the + * flag is cleared. If this flag is zero, then the current counter value + * is read, and returned. 'donate' is used to point at the appropriate + * byte to be delivered to the 'inb'. + + * when a counter activates (i.e; count begins or continues after + * a gate signal change) a time stamp is taken, to enable a time delta + * to be calculated whenever the counter is read .. this is stored in + * 'activationTime'. + + * A state function (state), representing the current state + * of the counter, gets called whenever inb,outb accesses occur, or when + * the ppi's signal TIM2GATESPK changes. reading/writing of the counters + * (as opposed to the control word register) always 'blocks' the current + * state,and puts the counter into a temporary state which handles reading or + * loading the counter. The blocked state is remembered in 'statePriorWt'. + * Once the counter has been loaded or read (as specified by its 'rl' + * parameter) then 'actionOnWtComplete' gets called. Typically this in turn + * reverts the counter back to the state it was in before it became + * blocked. + + * If a counter is read, then the function 'updateCounter' gets called to + * determine what the current counter value is. + * If the counter's gate signal is disabling counting, and the counter + * has been fully programmed (and hence able to count), then the counter + * will be in the state 'awaitingGate'. When the appropriate gate signal + * appears (via a ppi call), the counter activates by calling the + * function 'actionOnGateEnabled'. This will take some sort of action, and then + * place the counter into the state 'stateOnGate'. + * + * sending a new count to a counter in modes 2 or 3 will not take + * effect until the end of the current period ... hence 'delay' + * is used as an indicator (for sound logic emulation only) of + * this. If the counter has say 10 clocks left to count down to + * the end of the period when it receives new waveform parameters, + * this information is passed onto the sound logic, with a 'delay' + * of 10. Otherwise 'delay' is not used. + * + * On some operating systems, the real time clock may well have to + * coarse a granularity. If the 8253 is read to quickly, there is a + * very good chance that the OS clock will still be reading the same. + * To cater for this, a frig factor 'microsecs' has been introduced. + * This gets incremented every time the above condition is detected, + * and used as part of the counter update calculations. Whenever + * the OS actually says something sensible, it gets cleared again. + */ + +static COUNTER_UNIT timers[3], *pcu; + +LOCAL STATE_FUNCTION uninit IPT2(int, signal, half_word, value); +LOCAL STATE_FUNCTION awaitingGate IPT2(int, signal, half_word, value); +LOCAL STATE_FUNCTION waitingFor1stWrite IPT2(int, signal, half_word, value); +LOCAL STATE_FUNCTION waitingFor2ndWrite IPT2(int, signal, half_word, value); +LOCAL STATE_FUNCTION Counting0 IPT2(int, signal, half_word, value); +LOCAL STATE_FUNCTION Counting_4_5 IPT2(int, signal, half_word, value); +LOCAL STATE_FUNCTION Counting1 IPT2(int, signal, half_word, value); +LOCAL STATE_FUNCTION Counting_2_3 IPT2(int, signal, half_word, value); +LOCAL UNBLOCK_FUNCTION resumeCounting_1_5 IPT0(); +LOCAL GATENABLED_FUNCTION resumeCounting_2_3_4 IPT0(); +LOCAL void resumeAwaitGate IPT0(); +LOCAL UNBLOCK_FUNCTION CounterBufferLoaded IPT0(); +LOCAL UNBLOCK_FUNCTION timererror IPT0(); +LOCAL GATENABLED_FUNCTION runCount IPT0(); +LOCAL void controlWordReg IPT1(half_word, cwd); +LOCAL void latchStatusValue IPT0(); +LOCAL void readCounter IPT0(); +LOCAL void timestamp IPT0(); +LOCAL void outputWaveForm IPT5(unsigned int, delay, unsigned long, lowclocks, + unsigned long, hiclocks, int, lohi, int, repeat); +LOCAL void outputHigh IPT0(); +LOCAL void outputLow IPT0(); +LOCAL void setOutputAfterMode IPT0(); +LOCAL void loadCounter IPT0(); +LOCAL void updateCounter IPT0(); +LOCAL void startCounting IPT0(); + +#ifdef NTVDM +unsigned long updateCount(void); +#else +LOCAL void updateCount IPT3(unsigned long, ticks, unsigned long *, wrap, + struct host_timeval *, now); +#endif +LOCAL unsigned short bin_to_bcd IPT1(unsigned long, val); +LOCAL word bcd_to_bin IPT1(word, val); +LOCAL void emu_8253 IPT3(io_addr, port, int, signal, half_word, value); +LOCAL void Timer_init IPT0(); +LOCAL unsigned long timer_conv IPT1(word, count); +LOCAL void issueIREQ0 IPT1(unsigned int, n); +#ifndef NTVDM +LOCAL unsigned long guess IPT0(); +LOCAL void throwaway IPT0(); +#endif +#ifdef SYNCH_TIMERS +GLOBAL void IdealTimeInit IPT0(); +#else +LOCAL void IdealTimeInit IPT0(); +#endif +LOCAL void updateIdealTime IPT0(); +LOCAL void getIdealTime IPT1(struct host_timeval *, t); +#ifndef NTVDM +LOCAL void getHostSysTime IPT1(struct host_timeval *, t); +LOCAL void checktimelock IPT0(); +#endif +LOCAL void setTriggerCond IPT0(); +LOCAL void WtComplete IPT0(); +LOCAL void counter_init IPT1(COUNTER_UNIT *, p); +#ifndef NTVDM +LOCAL void setLastWrap IPT2(unsigned int, nclocks, struct host_timeval *, now); +LOCAL void timer_generate_int IPT1(long, n); +LOCAL void timer_multiple_ints IPT1(long, n); + +#define MAX_BACK_SECS 15 +LOCAL IU32 max_backlog = 0; /* max # of ints allowed to queue up */ +IBOOL active_int_event = FALSE; /* current quick_event for timer queue */ +IU32 more_timer_mult = 0; /* additions to timer int queue */ +IU32 timer_multiple_delay = 0; /* us delay to next timer queue elem */ +#endif + +#if defined(NTVDM) + +void timer_generate_int(void); +unsigned long clocksSinceCounterUpdate(struct host_timeval *pCuurTime, + struct host_timeval *pLastTime, + word *pCounter); +void ReinitIdealTime IPT1(struct host_timeval *, t); +void host_GetSysTime(struct host_timeval *time); +void InitPerfCounter(void); + +/* holds real time values for counter zero */ +struct host_timeval LastTimeCounterZero; +word RealTimeCountCounterZero; + + +#ifndef PROD +ULONG NtTicTesting = 0; /* tracing specific to NT port */ +ULONG TicsGenerated; +ULONG TicsReceived; +#endif + + /* for optimizing timer hardware interrupt generation */ +word TimerInt08Seg = TIMER_INT_SEGMENT; +word TimerInt08Off = TIMER_INT_OFFSET; +word TimerInt1CSeg; +word TimerInt1COff; + + + +#else + +static int timelock; /* locks out time_tick if set */ +static int needtick; /* causes time_tick() to be called if set */ + +/* + * Data for the hack to make sure that windows in standard mode doesn't get two timer + * ticks too close together. + */ + +LOCAL BOOL hack_active=FALSE; /* This boolean indicates that we are spacing + timer interrupts out by discarding timer ticks. + It is set when we see a protected mode tick */ +LOCAL BOOL too_soon_after_previous=FALSE; /* This boolean is set on when an interrupt is + generated... a quick event is requested to + clear it again after a "fixed" number of + instructions */ +LOCAL BOOL ticks_lost_this_time=FALSE; /* This boolean is set if any interrupts were + required to be generated while too_soon_after_previous + was TRUE - if it's TRUE when too_soon_after_previous + is being set to FALSE, we generate an immediate + interrupt to get the best responsiveness */ +LOCAL ULONG real_mode_ticks_in_a_row = 0; /* A count of the number of real mode ticks in a row... + this is used to disable the hack again when we have + left protected mode for a good while */ +LOCAL ULONG instrs_per_tick = 37000; /* Nominal (as timed on the reference machine - a SPARC 1+) */ +LOCAL ULONG adj_instrs_per_tick = 0; /* The estimated number of Intel instructions being emulated + each 20th of a second */ +LOCAL ULONG n_rm_instrs_before_full_speed = 3000000;/* Nominal number of instructions to be emulated in real mode + before we're convinced that we're staying back in real mode */ +LOCAL ULONG adj_n_real_mode_ticks_before_full_speed = 0;/* The value which real_mode_ticks_in_a_row must reach + before the hack is disabled */ +#ifndef PROD +LOCAL ULONG ticks_ignored = 0; /* For information purposes only. */ +#endif + +#endif /* NTVDM */ + +#ifndef PROD /* Specific Timer change tracing that isn't timer_verbose */ + + +GLOBAL int DoTimerChangeTracing = 0; +#endif + +#if !defined(NTVDM) +#if defined(IRET_HOOKS) && defined(GISP_CPU) +extern IBOOL HostDelayTimerInt IPT1(int, numberInts); +extern IBOOL HostPendingTimerInt IPT0(); +extern void HostResetTimerInts IPT0(); + +#endif /* IRET_HOOKS && GISP_CPU */ +#endif + +/* + * ============================================================================ + * External variables + * ============================================================================ + */ + +boolean timer_video_enabled; + +/* + * Table of function pointers to access TIMER routines + */ +void (*timer_inb_func) IPT2(io_addr, port, half_word *, value); +void (*timer_outb_func) IPT2(io_addr, port, half_word, value); +void (*timer_gate_func) IPT2(io_addr, port, half_word, value); +void (*timer_tick_func) IPT0(); + +/* + * ============================================================================ + * External functions + * ============================================================================ + */ + +void +SWTMR_init_funcptrs IFN0() +{ + /* + * initialize access functions for SW [emulated] TIMER + */ + timer_inb_func = SWTMR_inb; + timer_outb_func = SWTMR_outb; + timer_gate_func = SWTMR_gate; + timer_tick_func = SWTMR_time_tick; + +#ifndef NTVDM + /* + * initialise stuff for PM timer hack + */ + too_soon_after_previous = FALSE; + if (adj_n_real_mode_ticks_before_full_speed == 0){ + HOST_TIMER_DELAY_SIZE=25000; + adj_instrs_per_tick = host_speed (instrs_per_tick); + adj_n_real_mode_ticks_before_full_speed = n_rm_instrs_before_full_speed / adj_instrs_per_tick; + } +#endif +} + +void +SWTMR_time_tick IFN0() +{ + + /* + * Give the idle detector a chance to see if we are really idle. + */ +#ifndef NTVDM + /* this is done in Nt's host heartbeat */ + IDLE_tick(); +#endif + + /* + * Interrupt routine - called from time_strobe event/signal handler. + * That is called from host_timer_event + */ + +#ifndef NTVDM + /* protect ourselves from shafting a timer-channel in midst-program + * ... the lock is controlled by timer_inb(),_outb() and _gate() + */ + + if (timelock == LOCKED) + { + needtick = ~0; + return; + } +#endif + + /* ideal time goes up by the number of timer clocks + * equivalent to the interval between calls to 'time_tick' + * (we assume these calls appear at perfectly spaced intervals ... + * thus ignoring fluctuations on the host system) + * The idea is to give an illusion of constant ticks here + */ + + updateIdealTime(); + + pcu = &timers[0]; + updateCounter(); + + /* + * Counter 2 is only used for sound, or for timing very short + * times. For timing short times (~100ms) we need accurate time + * all the time. + */ + + pcu = &timers[2]; + updateCounter(); +} + + +/* + * The timer low I/O functions that support the Intel 8253 Counter chip. + * + * The Counters are used by the PC in the following ways: + * + * Counter 0 - Bios time of day function + * Counter 1 - Handler memory refresh + * Counter 2 - Drive Speaker Interface (plus input on PPI) + * + */ + +/* + * These control the timer chip. they are the interface between the + * CPU and the timer chip. + */ + +void SWTMR_gate IFN2(io_addr, port, half_word, value) +{ +#ifdef NTVDM + host_ica_lock(); +#else + timelock = LOCKED; +#endif + + emu_8253 (port, GATE_SIGNAL, value); +#ifndef PROD + if (io_verbose & TIMER_VERBOSE) + { + sprintf(buf, "timer_gate() - sending %d to port 0x%x", value, port); + trace(buf, DUMP_REG); + } +#endif + +#ifdef NTVDM + host_ica_unlock(); +#else + checktimelock(); +#endif +} + + +void SWTMR_inb IFN2(io_addr, port, half_word *, value) +{ +#ifdef NTVDM + host_ica_lock(); +#else + timelock = LOCKED; +#endif + + + pcu = &timers[port & 3]; + if (!pcu->countlatched) + readCounter(); + switch (pcu->readState) + { + case UNREAD: + switch (pcu->rl) + { + case RL_LSB: + *value = pcu->latchvaluelsb; + pcu->countlatched = 0; /* Unlatch the value read by inb() */ + break; + case RL_LMSB: + *value = pcu->latchvaluelsb; + pcu->readState = READMSB; /* Read LSB, next in read MSB. */ + break; + case RL_MSB: + *value = pcu->latchvaluemsb; + pcu->countlatched = 0; /* Unlatch the value read by inb() */ + break; + } + break; + case READMSB: + *value = pcu->latchvaluemsb; + pcu->countlatched = 0; /* Unlatch the value read by inb() */ + pcu->readState = UNREAD; /* Read MSB, back to unread state. */ + break; + case READSTATUS: + *value = pcu->latchstatus; + pcu->readState = UNREAD; + break; + } +#ifndef PROD + if (io_verbose & TIMER_VERBOSE) + { + sprintf(buf, "timer_inb() - Returning %d(0x%x) for port 0x%x", *value, *value, port); + trace(buf, DUMP_REG); + } +#endif +#ifdef NTVDM + host_ica_unlock(); +#else + checktimelock(); +#endif + +} + + +void SWTMR_outb IFN2(io_addr, port, half_word, value) +{ +#if defined(NTVDM) || defined(GISP_SVGA) + if (port == 0x4f) /* dead port used by PS/2 XGA bios for DAC delays */ + return; +#ifdef NTVDM + host_ica_lock(); +#endif +#else + timelock = LOCKED; +#endif + + port = port & TIMER_BIT_MASK; + if(port == 0x43) + controlWordReg(value); + else + emu_8253 (port, WRITE_SIGNAL, value); +#ifndef PROD + if (io_verbose & TIMER_VERBOSE) + { + sprintf(buf, "timer_outb() - Value %d to port 0x%x", value, port); + trace(buf, DUMP_REG); + } +#endif + +#ifdef NTVDM + host_ica_unlock(); +#else + checktimelock(); +#endif + +} + + +/* --------------------------------------------------------------------------- */ +/* */ +/* Return the current DOS tick value based on Timer 0 */ +/* */ +/* --------------------------------------------------------------------------- */ + +#ifndef NTVDM +GLOBAL ULONG get_DOS_ticks IFN0() +{ + return( timers[0].Count ); +} +#endif /* NTVDM */ + +#ifdef NTVDM +/* + * called by host to update the current ideal time + * after a block and resume. + */ +void ReinitIdealTime IFN1(struct host_timeval *, t) +{ + + /* + * Currently these are all time stamped by the same thing! + */ + LastTimeCounterZero = + timers[2].activationTime = + timers[1].activationTime = + timers[0].activationTime = + idealtime = *t; + /* + * Clear out extra pending interrupts + */ + if (EoiPending) { + EoiPending = 1; + } + + EoiIntsPending = 0; + +} +#endif + + + + +/* **************************************************************************** */ +/* **************************************************************************** */ +/* **************************************************************************** */ + +#ifndef NTVDM +/* check whether a time lock (set while application io is being serviced) + * has blocked out an alarm signal ... call time_tick() to catch up if so + * ... (time_tick() sets timelock = ~0, and just returns, if it sees the time + * lock set + */ + +LOCAL void checktimelock IFN0() +{ + timelock = UNLOCKED; + if (needtick) + { + needtick = 0; + time_tick(); + } +} +#endif + +/* + * emulate the 8253 chip. + * + * emu_8253(port,signal,value) + * + * port - port address being accessed + * (port & 3) gives A0,A1 lines + * + * signal - WRITE_SIGNAL (outb) or + * GATE_SIGNAL (ppi TIM2GATESPK change) + * + * value - + * for WRITE_SIGNAL, value = byte being written to chip + * for GATE_SIGNAL, value = GATE_SIGNAL_LOW or + * GATE_SIGNAL_RISE + */ + + +LOCAL void emu_8253 IFN3(io_addr, port, int, signal, half_word, value) +{ + + int A0A1; + + /* get address lines A0 and A1 */ + A0A1 = port & 3; + + /* handle the access */ + pcu = &timers[A0A1]; + (pcu->state)(signal,value); +} + + +/* if a timer channel is unitialised, this is its associated + * state function ... simply ignore all accesses in this state + * A state transition from this state is only possible via + * the procedure controlReg() + */ + + + +/* handle write access to the control word register. + * The documentation does not specify what happens if a mode + * setting control word is issued while a counter is active. + * In this model, we assume it resets the operation back to + * the start of a new counter programming sequence + */ + +/*ADE*/ +#define SELECT_0 0x00 +#define SELECT_1 0x01 +#define SELECT_2 0x02 +#define READ_BACK 0x03 + +LOCAL void controlWordReg IFN1(half_word, cwd) +{ + int rl,m,channel; + half_word select_bits; + + /* decode control word */ + channel = (cwd & 0xc0) >> 6; + if(channel == READ_BACK) + { + /* decode read back command */ + select_bits = (cwd & 0xe) >> 1; + /* first look for counters to latch */ + if (!(cwd & 0x20)) + { + /* count bit low so latch selected counters */ + if (select_bits & 0x01) + { + /* counter 0 */ + pcu = &timers[0]; + readCounter(); + pcu->countlatched = 1; + } + if (select_bits & 0x02) + { + /* counter 1 */ + pcu = &timers[1]; + readCounter(); + pcu->countlatched = 1; + } + if (select_bits & 0x04) + { + /* counter 2 */ + pcu = &timers[2]; + readCounter(); + pcu->countlatched = 1; + } + } + + /* now look for the status latch */ + if (!(cwd & 0x10)) + { + /* status bit low - status to be latched */ + if (select_bits & 0x01) + { + /* counter 0 */ + pcu = &timers[0]; + latchStatusValue(); + } + if (select_bits & 0x02) + { + /* counter 1 */ + pcu = &timers[1]; + latchStatusValue(); + } + if (select_bits & 0x04) + { + /* counter 2 */ + pcu = &timers[2]; + latchStatusValue(); + } + } + } + else + { + pcu = &timers[channel]; + rl = (cwd & 0x30) >> 4; + + + /* are we simply latching the present count value, or are + * programming up a new mode ?? + */ + if (rl == LATCH) + { /* latching present count value */ + readCounter(); + pcu->countlatched = 1; + return; + } + else + { /* new mode */ + if (pcu == &timers[0]) + timer_int_enabled = FALSE; + pcu->countlatched = 0; + pcu->tc = 0; + pcu->tickadjust = 0; +#ifndef NTVDM + pcu->microtick = 0; + pcu->saveCount = 0; +#endif + + m = (cwd & 0xe) >> 1; + if(m > 5)m -= 4; /* Modes 6 and 7 don't exist - they are intepreted as modes 2 and 3 */ + pcu->m = m; + setTriggerCond(); + setOutputAfterMode(); + pcu->bcd = cwd & 1; + pcu->rl = rl; + pcu->actionOnWtComplete = CounterBufferLoaded; + pcu->actionOnGateEnabled = CounterBufferLoaded; + pcu->statePriorWt = pcu->state; + pcu->state = waitingFor1stWrite; + } + } +} + +/* latch status ready for reading */ +LOCAL void latchStatusValue IFN0() +{ + /* + * Status byte is of format : + * + * |OUT|Null Count|RW1|RW0|M2|M1|M0|BCD| + * + */ + + /* NULL COUNT still only approximated. Who cares? */ + pcu->latchstatus = + (pcu->out.startLogicLevel<<7) + | (pcu->newCount == AVAILABLE ? (1<<6) : 0) + | (pcu->rl<<4) + | (pcu->m<<1) | (pcu->bcd); + pcu->readState = READSTATUS; +} + +/* set up flag establishing type of trigger condition for + * counter bassed on its mode + */ + +LOCAL void setTriggerCond IFN0() +{ + switch (pcu->m) + { + case RATE_GEN: + case SQUAREWAVE_GEN: + case SW_TRIG_STROBE: + case INT_ON_TERMINALCOUNT: + pcu->trigger = LEVEL; + return; + case PROG_ONESHOT: + case HW_TRIG_STROBE: + pcu->trigger = EDGE; + return; + } +} + + +/* transfer count buffer into counter */ + +LOCAL void loadCounter IFN0() +{ + unsigned long modulo; +#ifndef NTVDM + IU32 maxback; +#endif + + /* set counter */ + /* get correct modulo to use for counter calculations */ + modulo = (pcu->outbmsb << 8) | pcu->outblsb; + if (pcu->bcd == BCD) + { + if(modulo) + modulo = bcd_to_bin((word)modulo); + else + modulo = 10000L; + } + else + if(!modulo)modulo = 0x10000L; + + /* Beware - Count and initialCount are different sizes, so don't merge the next two lines!! */ + pcu->initialCount = modulo; + pcu->Count = (word)modulo; + + /* + * not at terminal count anymore, so reflect this fact by resetting + * tc (which I think means "reached terminal count" + */ + pcu->tc = 0; + pcu->newCount = USED; + if(pcu == &timers[0]) + { + /* Get rid of pending interrupts - these may no longer me appropriate - eg. in Sailing */ + ica_hw_interrupt_cancel(ICA_MASTER,CPU_TIMER_INT); +#ifdef NTVDM + RealTimeCountCounterZero = pcu->Count; +#endif + +#ifndef NTVDM + /* how many interrupts in MAX_BACK_SECS seconds? */ + maxback = (1193180 * MAX_BACK_SECS) / modulo; + + if (maxback > max_backlog) + { +#ifndef PROD + fprintf(trace_file, "setting max backlog to %d\n", maxback); +#endif + max_backlog = maxback; + } +#endif + + } + +#if defined(NTVDM) && !defined(PROD) + if (NtTicTesting) { + printf("Timer %d modulo=%lu %dHz\n", + pcu-timers, modulo, 1193180/modulo); + } +#endif /*NTVDM & !PROD*/ +} + +/* read counter into latch, ready for next read */ + +LOCAL void readCounter IFN0() +{ + int countread; + + updateCounter(); + +#ifdef NTVDM + /* + * Timer Zero is a special case, as it is maintaned + * by IdealInterval, and not RealTime. We must give + * real time granularity + */ + countread = pcu == &timers[0] ? RealTimeCountCounterZero + : pcu->Count; + if (pcu->bcd == BCD) + countread = bin_to_bcd(countread); + +#else + if(pcu->bcd == BCD) + countread = bin_to_bcd(pcu->Count); + else + countread = pcu->Count; +#endif + + pcu->latchvaluemsb = countread >> 8; + pcu->latchvaluelsb = countread & 0xff; + sure_note_trace1(TIMER_VERBOSE,"reading count %d",pcu->Count); +} + +/* active counter (mode 0) lost its gate ... gate has now + * reappeared. Either continue 'active' counting (pre terminal count) + * or continue decrementing, but with OUT signal at high indefinitely. + */ +LOCAL GATENABLED_FUNCTION resumeCounting0onGate IFN0() +{ + if (pcu->freezeCounter) + { + pcu->freezeCounter = 0; + timestamp(); + } + if (pcu->newCount == AVAILABLE) + loadCounter(); + if (!pcu->tc) + { + timestamp(); + pcu->stateOnGate = Counting0; + runCount(); + } + else + pcu->state = Counting0; +} + +LOCAL GATENABLED_FUNCTION resumeCounting0 IFN0() +{ + int doadjust = 0; + if (pcu->freezeCounter) + { + pcu->freezeCounter = 0; + timestamp(); + } + if (pcu->newCount == AVAILABLE) + { + doadjust = 1; + loadCounter(); + } + if (!pcu->tc) + { + pcu->stateOnGate = Counting0; + runCount(); + } + else + { + pcu->state = Counting0; + if (doadjust) + pcu->Count -= pcu->tickadjust; + } +} + +LOCAL GATENABLED_FUNCTION resumeCounting_2_3_4_onGate IFN0() +{ + /* for modes 2 and 3, ought to wait until counter + * completes its current period, but we cant be as accurate + * as that + */ + if (pcu->newCount == AVAILABLE) + loadCounter(); + if (pcu->m == RATE_GEN || pcu->m == SQUAREWAVE_GEN) + pcu->stateOnGate = Counting_2_3; + else + pcu->stateOnGate = Counting_4_5; + timestamp(); + runCount(); +} + +LOCAL GATENABLED_FUNCTION resumeCounting_2_3_4 IFN0() +{ + /* for modes 2 and 3, ought to wait until counter + * completes its current period, but we cant be as accurate + * as that + */ + if (pcu->newCount == AVAILABLE) + { + pcu->delay = pcu->Count; + loadCounter(); + } + if (pcu->m == RATE_GEN || pcu->m == SQUAREWAVE_GEN) + pcu->stateOnGate = Counting_2_3; + else + pcu->stateOnGate = Counting_4_5; + runCount(); +} + + +LOCAL GATENABLED_FUNCTION runCount IFN0() +{ + unsigned long lowticks, hiticks; + unsigned long adjustedCount; /* For count = 0 and BCD */ + + adjustedCount = timer_conv(pcu->Count); + pcu->state = pcu->stateOnGate; + switch (pcu->m) + { + case INT_ON_TERMINALCOUNT: + outputWaveForm(pcu->delay,adjustedCount, + INDEFINITE,STARTLO,NOREPEAT); + return; + case PROG_ONESHOT: + loadCounter(); + outputWaveForm(pcu->delay,adjustedCount, + INDEFINITE,STARTLO,NOREPEAT); + pcu->Count -= pcu->tickadjust; + return; + case RATE_GEN: + loadCounter(); + outputWaveForm(pcu->delay,1, + adjustedCount-1,STARTHI,REPEAT); + pcu->Count -= pcu->tickadjust; + return; + case SQUAREWAVE_GEN: + loadCounter(); + if (!(pcu->Count & 1)) + lowticks = hiticks = adjustedCount >> 1; + else + { + lowticks = (adjustedCount - 1) >> 1; + hiticks = (adjustedCount + 1) >> 1; + } + outputWaveForm(pcu->delay,lowticks, hiticks,STARTHI,REPEAT); + pcu->Count -= pcu->tickadjust; + return; + case SW_TRIG_STROBE: + outputWaveForm(pcu->delay,1, adjustedCount,STARTHI,NOREPEAT); + return; + case HW_TRIG_STROBE: + loadCounter(); + outputWaveForm(pcu->delay,1, adjustedCount,STARTHI,NOREPEAT); + return; + } +} + + +/* return to state waiting for gate signal */ + +LOCAL void resumeAwaitGate IFN0() +{ + pcu->actionOnWtComplete = timererror; + pcu->state = awaitingGate; + awaitingGate(GATE_SIGNAL,pcu->gate); +} + + + +/* ========================= OUTPUT SIGNAL UTILITIES ====================== */ +/* ========================= OUTPUT SIGNAL UTILITIES ====================== */ +/* ========================= OUTPUT SIGNAL UTILITIES ====================== */ + +/* set state of output signal after a mode command has + * been programmed (see pages 6-266 - 6-268 of Intel manual 231306-001) + */ + +LOCAL void setOutputAfterMode IFN0() +{ + switch (pcu->m) + { + case INT_ON_TERMINALCOUNT: + outputLow( /*INDEFINITE*/ ); + return; + case PROG_ONESHOT: + case RATE_GEN: + case SQUAREWAVE_GEN: + case SW_TRIG_STROBE: + case HW_TRIG_STROBE: + outputHigh( /*INDEFINITE*/ ); + return; + } +} + + +/* set output state low ... inform sound chip emulation if + * channel 2 + */ + +LOCAL void outputLow IFN0() +{ + outputWaveForm(0,INDEFINITE,0,STARTLO,NOREPEAT); +} + + +/* set output state high ... inform sound chip emulation if + * channel 2 + */ + +LOCAL void outputHigh IFN0() +{ + outputWaveForm(0,0,INDEFINITE,STARTHI,NOREPEAT); +} + + +/* when the wave form is deterministic, tell the sound emulation about it. + * delay - if <>0, don't start this waveform for + * this number of counter clocks. + * lowclocks - the #.counter clocks to stay low for + * hiclocks - the #.counter clocks to stay high for + * (either parameter may be INDEFINITE duration) + * lohi - 0 ==> start at low logic level + * - <>0 ==> start at high logic level + * repeat - 0 ==> don't + * <>0 ==> repeat. + * + * (n.b; 1 counter clock period = 1.19318 usecs) + */ + +LOCAL void outputWaveForm IFN5(unsigned int, delay, unsigned long, lowclocks, + unsigned long, hiclocks, int, lohi, int, repeat) +{ +#ifdef DOCUMENTATION + int ch; +#endif /* DOCUMENTATION */ + pcu->out.startLogicLevel = lohi; + pcu->out.repeatWaveForm = repeat; + pcu->out.clocksAtLoLogicLevel = lowclocks; + pcu->out.clocksAtHiLogicLevel = hiclocks; + if (repeat == REPEAT) + pcu->out.period = lowclocks + hiclocks; + if (pcu == &timers[2]) + { + host_timer2_waveform(delay,lowclocks,hiclocks,lohi,repeat); + } + pcu->delay = 0; + +#ifdef DOCUMENTATION + if (pcu==&timers[0]) + ch = 0; + if (pcu==&timers[1]) + ch = 1; + if (pcu==&timers[2]) + ch = 2; + sprintf(buf,"ch.%d waveform:delay %d lo %d hi %d lohi %d repeat %d\n", + ch,delay,lowclocks,hiclocks,lohi,repeat); + trace(buf,0); +#endif /* DOCUMENTATION */ +} + +/* time stamp the counter unit ... it is counting from this time + */ + +LOCAL void timestamp IFN0() +{ +#ifdef NTVDM + /* update counter zero time stamp */ + if (pcu == &timers[0]) { + host_GetSysTime(&LastTimeCounterZero); + } +#else + /* Initialise lastTicks before referencing it in updateCount() */ + /* Makes Norton SYSINFO version 5.0 work on fast (HP) machines */ + pcu->lastTicks = 0 ; +#endif + /* Go and get the time since it was activated */ + (*pcu->getTime)(&pcu->activationTime); +} + +LOCAL UNBLOCK_FUNCTION timererror IFN0() +{ + always_trace0("time error!!!!"); +} + +/* *************** COUNTER UPDATING FUNCTIONS FOR NON_IDLE COUNTERS **********/ +/* *************** COUNTER UPDATING FUNCTIONS FOR NON_IDLE COUNTERS **********/ +/* *************** COUNTER UPDATING FUNCTIONS FOR NON_IDLE COUNTERS **********/ + + +/* ************************ STATE FUNCTIONS ********************************* */ +/* ************************ STATE FUNCTIONS ********************************* */ +/* ************************ STATE FUNCTIONS ********************************* */ + +/* + * STATE_FUNCTION uninit(); + * STATE_FUNCTION awaitingGate(); + * STATE_FUNCTION waitingFor1stWrite(); + * STATE_FUNCTION waitingFor2ndWrite(); + * STATE_FUNCTION Counting0(); + * STATE_FUNCTION Counting_4_5(); + * STATE_FUNCTION Counting1(); + * STATE_FUNCTION Counting_2_3(); + */ + +LOCAL STATE_FUNCTION uninit IFN2(int, signal, half_word, value) +{ + if (signal == GATE_SIGNAL) + pcu->gate = value; +} + +LOCAL STATE_FUNCTION awaitingGate IFN2(int, signal, half_word, value) +{ + switch (signal) + { + case GATE_SIGNAL: + pcu->gate = value; + if (value == GATE_SIGNAL_LOW) + return; + + /* this is pathological ... should never have to + * wait for gate for channel 0 + */ + if (pcu == &timers[0]) + timer_int_enabled = TRUE; + + (pcu->actionOnGateEnabled)(); + return; + case WRITE_SIGNAL: + pcu->actionOnWtComplete = resumeAwaitGate; + pcu->statePriorWt = pcu->state; + waitingFor1stWrite(signal,value); + return; + } +} + +/* + * Perform first of (probably) 2 writes. + * This is either called directly when some other state is + * written to, or set up as the current state when the timer mode is changed. + * If the timer is in 'read/write 2 bytes' mode, set the timer state + * to 'waiting for second byte'. + */ + +LOCAL STATE_FUNCTION waitingFor1stWrite IFN2(int, signal, half_word, value) +{ + switch (signal) + { + case GATE_SIGNAL: + /* remember gate signal state */ + pcu->gate = value; + return; + case WRITE_SIGNAL: + switch (pcu->rl) + { + case RL_LSB: + pcu->outblsb = value; + /* Zero the most signifcant byte. */ + pcu->outbmsb = 0; + pcu->newCount = AVAILABLE; + WtComplete(); + return; + case RL_LMSB: + pcu->outblsb = value; + pcu->state = waitingFor2ndWrite; + return; + case RL_MSB: + pcu->outbmsb = value; + /* Zero the least signifcant byte. */ + pcu->outblsb = 0; + pcu->newCount = AVAILABLE; + WtComplete(); + return; + } + } +} + +/* + * Write second byte to timer and unblock it. + */ + +LOCAL STATE_FUNCTION waitingFor2ndWrite IFN2(int, signal, half_word, value) +{ + switch (signal) + { + case GATE_SIGNAL: + /* remember gate signal state */ + pcu->gate = value; + return; + case WRITE_SIGNAL: + pcu->newCount = AVAILABLE; + pcu->outbmsb = value; + WtComplete(); + return; + } +} + + +/* + * the full complement of bytes has been read/loaded. During this + * phase, the gate signal might have been removed ... if so, + * change state to wait for an enabling gate signal. Otherwise + * take appropriate action to get back to previous state + */ + +LOCAL void WtComplete IFN0() +{ + if (pcu->gate == GATE_SIGNAL_LOW && pcu->trigger == LEVEL) + { + pcu->state = awaitingGate; + awaitingGate(GATE_SIGNAL, pcu->gate); + } + else + (pcu->actionOnWtComplete)(); +} + +/* active counter (Interrupt on Terminal Count) + * if the gate is lost, then + * set the output indefinitely high if at terminal count, or + * indefinitely low if still counting (i.e; extend current low + * level signal duration). + * if count reprogrammed during this time, this new count will be + * used on next trigger (gate). + * else + * if new count programmed, stop counter on receiving 1st byte. + * start new count on second byte. (done by resumeCounting0()) + */ + +LOCAL STATE_FUNCTION Counting0 IFN2(int, signal, half_word, value) +{ + pcu->actionOnGateEnabled = resumeCounting0onGate; + pcu->actionOnWtComplete = resumeCounting0; + + switch (signal) + { + case GATE_SIGNAL: + if (value == GATE_SIGNAL_HIGH) + return; + /* we're about to freeze timer channel ... + * get an up to date count. This might change the + * state of the counter. + */ + updateCounter(); + pcu->gate = value; + if (pcu->tc) + outputHigh(); + else + outputLow(); + pcu->state = awaitingGate; + return; + case WRITE_SIGNAL: + pcu->freezeCounter = 1; + updateCounter(); + if (pcu->tc) + outputHigh(); + else + outputLow(); + pcu->statePriorWt = pcu->state; + waitingFor1stWrite(signal,value); + return; + } +} + +/* active counter (programmable One-Shot) + * if cvounter loses its gate, then simply wait for retrigger + * to start off count again. + */ + +LOCAL STATE_FUNCTION Counting1 IFN2(int, signal, half_word, value) +{ + pcu->actionOnGateEnabled = startCounting; + pcu->actionOnWtComplete = resumeCounting_1_5; + + switch (signal) + { + case GATE_SIGNAL: + /* ignore transition to low on trigger. + * any rising edge retriggers the counter. + */ + if (value == GATE_SIGNAL_LOW) + return; + pcu->gate = GATE_SIGNAL_HIGH; + pcu->stateOnGate = Counting1; + timestamp(); + runCount(); + return; + case WRITE_SIGNAL: + pcu->statePriorWt = pcu->state; + waitingFor1stWrite(signal,value); + return; + } +} + +LOCAL UNBLOCK_FUNCTION resumeCounting_1_5 IFN0() +{ + /* if terminal count has been reached, wait for the next + * trigger ... any new count value programmed will be used + * then. + * Otherwise, even if new count is available, it still won't + * be used until next trigger + */ + if (pcu->gate == GATE_SIGNAL_RISE) + { + pcu->state = Counting1; + if (pcu->m == HW_TRIG_STROBE) + pcu->state = Counting_4_5; + return; + } + + if (pcu->tc) + pcu->state = awaitingGate; + else + { + pcu->state = Counting1; + if (pcu->m == HW_TRIG_STROBE) + pcu->state = Counting_4_5; + } +} + +LOCAL STATE_FUNCTION Counting_2_3 IFN2(int, signal, half_word, value) +{ + pcu->actionOnGateEnabled = resumeCounting_2_3_4_onGate; + pcu->actionOnWtComplete = resumeCounting_2_3_4; + + switch (signal) + { + case GATE_SIGNAL: + if (value == GATE_SIGNAL_HIGH) + return; + /* we're about to freeze timer channel ... + * get an up to date count. This might change the + * state of the counter. + */ + updateCounter(); + pcu->gate = value; + outputHigh(); + pcu->state = awaitingGate; + return; + case WRITE_SIGNAL: + pcu->statePriorWt = pcu->state; + waitingFor1stWrite(signal,value); + return; + } +} + +LOCAL STATE_FUNCTION Counting_4_5 IFN2(int, signal, half_word, value) +{ + pcu->actionOnGateEnabled = resumeCounting_2_3_4_onGate; + pcu->actionOnWtComplete = resumeCounting_2_3_4; + if (pcu->m == HW_TRIG_STROBE) + { + pcu->actionOnGateEnabled = resumeCounting_1_5; + pcu->actionOnWtComplete = resumeCounting_1_5; + } + + switch (signal) + { + case GATE_SIGNAL: + if (value == GATE_SIGNAL_HIGH) + return; + /* we're about to freeze timer channel ... + * get an up to date count. This might change the + * state of the counter. + */ + updateCounter(); + pcu->gate = value; + outputHigh(); + pcu->state = awaitingGate; + return; + case WRITE_SIGNAL: + pcu->statePriorWt = pcu->state; + waitingFor1stWrite(signal,value); + return; + } +} + +/* ****************** UNBLOCK FUNCTIONS ************************************* */ +/* ****************** UNBLOCK FUNCTIONS ************************************* */ +/* ****************** UNBLOCK FUNCTIONS ************************************* */ + +/* upon reaching this state, the timer's count register can be + * loaded (as per 'rl') ... and it can potentially start counting + * depending upon the state of its gate signal. + * If it can begin counting, then setup the output waveform that will + * appear at the timer channel's OUT signal. + * (If this channel is for sound, the waveform is exactly known) + */ + +LOCAL UNBLOCK_FUNCTION CounterBufferLoaded IFN0() +{ + unsigned long lowticks, hiticks, adjustedCount; + pcu->actionOnWtComplete = timererror; + loadCounter(); + +#ifdef DOCUMENTATION + /* + * Output state of timer if tracing. + * Currently dumpCounter has no effect, so just leave this in + * case anyone wants to implement it properly. + */ + + if (io_verbose & TIMER_VERBOSE) + { + dumpCounter(); + } +#endif /* DOCUMENTATION */ + + if (pcu->gate != GATE_SIGNAL_LOW) + { + if (pcu == &timers[0]) + timer_int_enabled = TRUE; + timestamp(); + adjustedCount = timer_conv(pcu->Count); + switch (pcu->m) + { + case INT_ON_TERMINALCOUNT: + outputWaveForm(pcu->delay,adjustedCount, + INDEFINITE,STARTLO,NOREPEAT); + pcu->Count -= pcu->tickadjust; + pcu->state = Counting0; + return; + case PROG_ONESHOT: + outputWaveForm(pcu->delay,adjustedCount, + INDEFINITE,STARTLO,NOREPEAT); + pcu->Count -= pcu->tickadjust; + pcu->state = Counting1; + return; + case RATE_GEN: + outputWaveForm(pcu->delay,1, + adjustedCount-1,STARTHI,REPEAT); + pcu->Count -= pcu->tickadjust; + pcu->state = Counting_2_3; + return; + case SQUAREWAVE_GEN: + if (!(pcu->Count & 1)) + lowticks = hiticks = adjustedCount >> 1; + else + { + lowticks = (adjustedCount - 1) >> 1; + hiticks = (adjustedCount + 1) >> 1; + } + outputWaveForm(pcu->delay,lowticks, + hiticks,STARTHI,REPEAT); + pcu->Count -= pcu->tickadjust; + pcu->state = Counting_2_3; + return; + case SW_TRIG_STROBE: + case HW_TRIG_STROBE: + outputWaveForm(pcu->delay,1, + adjustedCount,STARTHI,NOREPEAT); + pcu->Count -= pcu->tickadjust; + pcu->state = Counting_4_5; + return; + } + } + else + if (pcu == &timers[0]) + timer_int_enabled = FALSE; + pcu->state = awaitingGate; + pcu->actionOnGateEnabled = startCounting; + switch (pcu->m) + { + case INT_ON_TERMINALCOUNT: + pcu->stateOnGate = Counting0; + return; + case PROG_ONESHOT: + pcu->stateOnGate = Counting1; + return; + case RATE_GEN: + case SQUAREWAVE_GEN: + pcu->stateOnGate = Counting_2_3; + return; + case SW_TRIG_STROBE: + case HW_TRIG_STROBE: + pcu->stateOnGate = Counting_4_5; + return; + } +} + +LOCAL void startCounting IFN0() +{ + timestamp(); + runCount(); +} + +#ifndef NTVDM +/* calculate the number of 8253 clocks elapsed since counter was last + * activated + */ + +LOCAL unsigned long clocksSinceCounterActivated IFN1(struct host_timeval *, now) +{ + struct host_timeval *first; + register unsigned long usec_val, nclocks; + register unsigned int secs; + + first = &pcu->activationTime; + (*pcu->getTime)(now); + + /* calculate #.usecs elapsed */ + + secs = (int)(now->tv_sec - first->tv_sec); + switch (secs) + { + case 0: usec_val = now->tv_usec - first->tv_usec; +#ifndef PROD + if (io_verbose & TIMER_VERBOSE) + if ( usec_val == 0 ) + trace("clocksSinceCounterActivated() == 0 !", 0); +#endif + nclocks = (usec_val * TIMER_CLOCK_DENOM) / TIMER_CLOCK_NUMER; + break; + + case 1: usec_val = 1000000L + now->tv_usec - first->tv_usec; + nclocks = (usec_val * TIMER_CLOCK_DENOM) / TIMER_CLOCK_NUMER; + break; + + default: + nclocks = ((now->tv_usec - first->tv_usec) * TIMER_CLOCK_DENOM) / TIMER_CLOCK_NUMER; + nclocks += secs * (1000000L * TIMER_CLOCK_DENOM / TIMER_CLOCK_NUMER); +#ifndef PROD + if (io_verbose & TIMER_VERBOSE) { + sprintf(buf, "timer[%d]: %d seconds have passed!", pcu-timers, secs); + trace(buf, DUMP_NONE); + } +#endif + break; + } + return nclocks; +} + +#endif + + +LOCAL void updateCounter IFN0() +{ +#ifndef NTVDM + unsigned long nticks; + struct host_timeval now; +#endif /* NTVDM */ + unsigned long wrap; + + switch (pcu->m) + { + case INT_ON_TERMINALCOUNT: + case RATE_GEN: + case SQUAREWAVE_GEN: + if (pcu->gate == GATE_SIGNAL_LOW) + return; +#ifdef NTVDM + wrap = updateCount(); +#else + nticks = clocksSinceCounterActivated(&now); + updateCount(nticks, &wrap,&now); +#endif + if (wrap) + pcu->tickadjust = pcu->Count; + if (pcu->m == INT_ON_TERMINALCOUNT && wrap) + pcu->tc = 1; + if (pcu == &timers[0] && wrap){ + if (pcu->m != INT_ON_TERMINALCOUNT) + issueIREQ0((unsigned int)wrap); + else + issueIREQ0(1); +#ifdef HUNTER + timer_batch_count = wrap; +#endif + + } + return; + case PROG_ONESHOT: + case SW_TRIG_STROBE: + case HW_TRIG_STROBE: + if (pcu->tc) + return; +#ifdef NTVDM + wrap = updateCount(); +#else + nticks = clocksSinceCounterActivated(&now); + updateCount(nticks, &wrap,&now); +#endif + if (wrap) + { + pcu->Count = 0; + pcu->tc = 1; +#ifdef NTVDM + RealTimeCountCounterZero = 0; +#endif + + } +#ifdef HUNTER + if (pcu == &timers[0]){ + timer_batch_count = wrap; + } +#endif + return; + } +} + + +#ifndef NTVDM +#ifndef DELAYED_INTS +/* + * timer_no_longer_too_soon() - this is the function invoked by the quick event manager + * "HOST_TIMER_TOOLONG_DELAY" instructions after a hardware interrupt is generated. It + * clears the variable "too_soon_after_previous" to allow more interrupts to be + * generated and kicks off an immediate one if any have been suppressed this time. + */ +LOCAL void timer_no_longer_too_soon IFN1(long, dummy) +{ + UNUSED(dummy); + + too_soon_after_previous = FALSE; + if (ticks_lost_this_time){ + /* At least one tick was suppressed... so send another one immediately */ + timer_generate_int (1); + } +} + +/* + * timer_generate_int() -The routine to generate a single timer hardware interrupt (and to + * schedule a quick event timer call on itself to have the remaining pending interrupts + * generated at a later time). + * + */ +LOCAL void timer_generate_int IFN1(long, n) +{ +#if !(defined(GISP_CPU) || defined(CPU_40_STYLE)) + if (getPE()){ + /* Prot mode tick... */ +#ifndef PROD + if (!hack_active){ + SAVED BOOL first=TRUE; + + always_trace0 ("PM timer Hack activated."); + if (first){ + always_trace1 ("Min # instrs between interrupts = %d", HOST_TIMER_TOOLONG_DELAY); + always_trace1 (" Nominal instrs_per_tick = %d", instrs_per_tick); + always_trace1 (" adjusted instrs_per_tick = %d", adj_instrs_per_tick); + always_trace1 (" # rm instrs before full speed = %d", n_rm_instrs_before_full_speed); + always_trace1 (" rm ticks before full speed = %d", adj_n_real_mode_ticks_before_full_speed); + first = FALSE; + } + } +#endif + hack_active = TRUE; + real_mode_ticks_in_a_row = 0; + + }else{ + /* Real Mode Tick... */ + if (hack_active){ + real_mode_ticks_in_a_row++; + if (real_mode_ticks_in_a_row >= adj_n_real_mode_ticks_before_full_speed){ + hack_active = FALSE; + always_trace0 ("PM timer Hack deactivated."); + } + } + } +#endif /* ! (GISP_CPU||CPU_40_STYLE) */ + + if (hack_active){ + if (!too_soon_after_previous){ + ica_hw_interrupt(ICA_MASTER,CPU_TIMER_INT, 1); + too_soon_after_previous = TRUE; + ticks_lost_this_time = FALSE; + add_q_event_i(timer_no_longer_too_soon,HOST_TIMER_TOOLONG_DELAY,0); + }else{ + ticks_lost_this_time = TRUE; +#ifndef PROD + ticks_ignored++; + if (!(ticks_ignored & 0xFF)){ + always_trace0 ("another 256 ticks lost!"); + } +#endif + } + }else{ +#ifndef GISP_CPU + ica_hw_interrupt(ICA_MASTER,CPU_TIMER_INT, 1); + } +} +#else /* GISP_CPU */ +#if defined(IRET_HOOKS) + if (!HostDelayTimerInt(n)) + { /* no host need to delay this timer int, so generate one now. */ + ica_hw_interrupt(ICA_MASTER,CPU_TIMER_INT, 1); + } + +#else /* !IRET_HOOKS */ + /* GISP_CPU doesn't use quick events so use ica_hw_interrupt(,,n). */ + ica_hw_interrupt(ICA_MASTER,CPU_TIMER_INT, n); +#endif /* IRET_HOOKS */ + } +} +#endif /* GISP_CPU */ + +#endif /* DELAYED_INTS */ + +#else /* NTVDM */ + + +/* + * TimerGenerateMultipleInterrupts + * + */ +void TimerGenerateMultipleInterrupts(long n) +{ + + + if (!EoiPending) { + EoiPending += n; + ica_hw_interrupt(ICA_MASTER,CPU_TIMER_INT, n); + } + else { + if (n > 5 && (dwWNTPifFlags & COMPAT_TIMERTIC)) { + n = 5; + } + + if (EoiIntsPending/n < 19) { // less than a second behind ? + EoiIntsPending += n; + } + else { + EoiIntsPending++; + } + } +} + + +#ifndef MONITOR + +/* On RISC ports, it is dangerous to call getIF from a non-CPU thread, + so we replace the call with a peek at the global 'EFLAGS' variable + until the CPU emulator getIF is made safe. +*/ + +#define getIF() (GLOBAL_EFLAGS & 0x200) + +#endif /* !MONITOR */ + + +/* timer_generate_int NTVDM + * + */ +void timer_generate_int (void) +{ + word lo, hi, wrap; + + /* + * For Nt port see if we really need to generate + * an int, checking if an app has hooked real-mode + * or protect-mode vectors. + * + * If we don't need to do it, then update the bios + * Data tic count directly. + * + * WARNING according to sfrost it is not safe to + * use sas, because of multithreading. + */ + + + hi = * (word *)(Start_of_M_area+0x1c*4+2); + lo = * (word *)(Start_of_M_area+0x1c*4); + wrap = (word) *(half_word *)(Start_of_M_area + ((ULONG)hi << 4) + lo); + if (!getIF() || ((hi != TimerInt1CSeg || lo != TimerInt1COff) && wrap != 0xcf) || + *(word *)(Start_of_M_area+0x08*4+2) != TimerInt08Seg || + *(word *)(Start_of_M_area+0x08*4) != TimerInt08Off ) + { + TimerGenerateMultipleInterrupts(1); + } + else { /* update Bios Data Area directly */ + ++(*(double_word *)(Start_of_M_area + TIMER_LOW)); + + /* Wrap at 24 hours ? */ + if (*(double_word *)(Start_of_M_area + TIMER_LOW) == 0x1800b0) + { + *(word *)(Start_of_M_area + TIMER_LOW) = 0; + *(word *)(Start_of_M_area + TIMER_HIGH) = 0; + *(half_word *)(Start_of_M_area+TIMER_OVFL)=1; + } + + /* decr motor count */ + --(*(half_word *)(Start_of_M_area + MOTOR_COUNT)); + + /* if motor count went to zero turn off the motor */ + if (!*(half_word *)(Start_of_M_area + MOTOR_COUNT)) + { + *(half_word *)(Start_of_M_area + MOTOR_STATUS) &= 0xF0; + fla_outb(DISKETTE_DOR_REG, 0x0C); + } + + if (EoiDelayInUse && !(--EoiDelayInUse)) { + host_DelayHwInterrupt(CPU_TIMER_INT, 0, 0xFFFFFFFF); + } + } +} + + + +/* TimerEoiHook + * + * EoiHook for the timer interrupt used to regulate the flow of + * timer interrupts to ensure that ints are not generated too + * close together. This routine is invoked by the ica EoiHook + * callbacks. + * + */ +void TimerEoiHook(int IrqLine, int CallCount) +{ + if (EoiPending) + --EoiPending; + + if (CallCount < 0) { // interrupts were canceled + EoiIntsPending = 0; + EoiPending = 0; + } + else if (CallCount) { + EoiDelayInUse = 100; + host_DelayHwInterrupt(CPU_TIMER_INT, + 0, + timer_delay_size + ); + } + else if (EoiIntsPending) { + EoiDelayInUse = 100; + if (host_DelayHwInterrupt(CPU_TIMER_INT, + EoiIntsPending, + timer_delay_size + )) + { + EoiPending = EoiIntsPending; + } + EoiIntsPending = 0; + } + else { + if (EoiDelayInUse && !(--EoiDelayInUse)) { + host_DelayHwInterrupt(CPU_TIMER_INT, 0, 0xFFFFFFFF); + } + } + +} + +#endif /* NTVDM */ + + +#ifndef NTVDM +/* + * Handle a cranked up timer where multiple interrupts are + * required per tick. Schedule 'n' ints over a tick. Period + * stored in quick event argument rather than in global. + */ +LOCAL void timer_multiple_ints IFN1(long, num_ints) +{ + /* generate timer int */ + timer_generate_int(1); + + /* one less to do */ + num_ints --; + + /* any more arrived whilst we were q_ expiring? */ + num_ints += more_timer_mult; + more_timer_mult = 0; + + /* throw away ints that are going to take more than MAX_BACK_SECS + * to clear up. (!!!!) + */ + if (num_ints > max_backlog) + { + num_ints = max_backlog; + } + + /* schedule next int (if required) */ + if (num_ints == 0) + { + active_int_event = FALSE; + /* 1.193180 usecs per clock */ + max_backlog = (1193180 * MAX_BACK_SECS) / timers[0].initialCount; + } + else /* more work to do */ + { + /* set new quick_ev off - delay determined by timer wrap rate */ + add_q_event_t(timer_multiple_ints, timer_multiple_delay, num_ints); + } + +} +#endif + + +LOCAL void issueIREQ0 IFN1(unsigned int, n) +{ + IU16 int_delay; /* delay before handling wrapped int */ + +#ifndef PROD +static pig_factor = 0; +static time_factor = 0; +#endif + +#ifdef PIG +extern IBOOL ccpu_pig_enabled; +#endif + +#ifndef PROD + if ( time_factor == 0 ) + { + char *env; + + env = host_getenv("TIMER_FACTOR"); + if ( env ) + time_factor = atoi(env); + if ( time_factor == 0 ) + time_factor = 1; +#ifdef PIG + if ( pig_factor == 0 ) + { + env = host_getenv("PIG_TIMER_FACTOR"); + if ( env ) + pig_factor = atoi(env); + if ( pig_factor == 0 ) + pig_factor = 10; + } +#else + pig_factor = 1; +#endif + } +#endif + + if (ticks_blocked == 0) + { +#ifndef PROD +#ifdef PIG + if ( ccpu_pig_enabled ) { + ticks_blocked = pig_factor-1; + } else +#endif + ticks_blocked = time_factor-1; +#endif + if (timer_int_enabled) + { +#ifdef DELAYED_INTS + ica_hw_interrupt_delay(ICA_MASTER,CPU_TIMER_INT, n, + HOST_TIMER_INT_DELAY); +#else /* !DELAYED_INTS */ + +#ifdef NTVDM + if (n > 0) + timer_delay_size= HOST_IDEAL_ALARM/(n+1); + + if (n == 1) { + timer_generate_int(); + } + else if (n > 1){ + TimerGenerateMultipleInterrupts(n); + } +#else /* !NTVDM */ + + + /* if we've got a quick event running, add to its workload */ + if (active_int_event) + { + /* spread interrupts through system tick */ + int_delay = SYSTEM_TICK_INTV / (n + 1); + if (int_delay < timer_multiple_delay) + timer_multiple_delay = int_delay; + more_timer_mult += n; + } + else + { + /* ensure multiple delay restarts at sensible speed */ + timer_multiple_delay = SYSTEM_TICK_INTV >> 1; + if (n == 1) + { + timer_generate_int(1); + } + else + { + /* spread interrupts through system tick */ + timer_generate_int(1); + timer_multiple_delay = SYSTEM_TICK_INTV / n; + active_int_event = TRUE; + add_q_event_t(timer_multiple_ints, timer_multiple_delay, n-1); + } + } + +#endif /* !NTVDM */ +#endif /* !DELAYED_INTS */ + } + } + else if (ticks_blocked > 0) + { + ticks_blocked--; + } +} + + + +#ifdef NTVDM +unsigned long clocksSinceCounterUpdate(struct host_timeval *pCurrTime, + struct host_timeval *pLastTime, + word *pCounter ) +{ + unsigned long clocks, wrap, usecs; + + + /* Calculate usecs elapsed and clocks elapsed since last update + * + * For NT port timer zero's IdealInterval is exact to a modulo + * of 65536, for efficiency and accuracy we stick with the exact + * number of clocks between IdealIntervals. + */ + if (pCounter == &timers[0].Count) { /* update quick way for IdealTime */ + if (pCurrTime->tv_sec != pLastTime->tv_sec || + pCurrTime->tv_usec != pLastTime->tv_usec ) + { + *pLastTime = *pCurrTime; + return 65536/pcu->initialCount; + } + else { + usecs = clocks = 0; + } + } + else { /* calc diff in usecs and clocks elapsed */ + usecs = (unsigned long)(pCurrTime->tv_sec - pLastTime->tv_sec); + if (!usecs) { + usecs = pCurrTime->tv_usec - pLastTime->tv_usec; + } + else if (usecs == 1) { + usecs = 1000000L - pLastTime->tv_usec + pCurrTime->tv_usec; + } + else { + usecs = pCurrTime->tv_usec - pLastTime->tv_usec + + (pCurrTime->tv_sec - pLastTime->tv_sec) * 1000000L; + } + + /* ... clocks elapsed 1.193180 usecs per clock + * + * However, app time is not real time so round down + * a teency bit by truncating the "180" + * + * clocks = (usecs * 1193)/1000 + (usecs * 180)/1000000; + */ + + clocks = (usecs * 1193)/1000; + } + + /* how many times did counter wrap ? */ + wrap = clocks/pcu->initialCount; + + /* calc ticks from elapsed clocks */ + clocks = clocks && pcu->initialCount ? clocks % pcu->initialCount : 0; + *pCounter = (word) (pcu->initialCount - clocks); + + /* if the count wrapped reset Last Update time stamp */ + if (wrap) { + *pLastTime = *pCurrTime; + + if ((ULONG)pLastTime->tv_usec < usecs) { + pLastTime->tv_sec--; + pLastTime->tv_usec = 1000000L + pLastTime->tv_usec - usecs; + } + else { + pLastTime->tv_usec -= usecs; + } + } + + return wrap; +} + + +unsigned long updateCount(void) +{ + unsigned long wrap; + struct host_timeval curr; + + + /* + * For timer zero, update real time count, time stamp + */ + if (pcu == &timers[0]) { + host_GetSysTime(&curr); + clocksSinceCounterUpdate(&curr, + &LastTimeCounterZero, + &RealTimeCountCounterZero); + } + + /* + * Update the pcu count, time stamps + */ + (*pcu->getTime)(&curr); + wrap = clocksSinceCounterUpdate(&curr, + &pcu->activationTime, + &pcu->Count); + + return wrap; +} + + +#else +LOCAL void updateCount IFN3(unsigned long, ticks, unsigned long *, wrap, + struct host_timeval *, now) +{ + unsigned long modulo = pcu->initialCount; + + /* + * PCLABS version 4.2 uses counter 2 (the sound channel) to + * time around 45 ms on a 8MHz 286. On SoftPC we cannot + * guarantee to go that fast, and so we must wind the tick + * rate down to ensure that the counter does not wrap. How much + * we wind down the tick rate is host dependent. The object is + * to get the test finishing in less than + * host_timer_2_frig_factor/18 secs. + * + * host_timer_2_frig_factor is now redundant. 28/4/93 niall. + */ + + if (pcu == &timers[2]) { + /* + * PMINFO uses ~counter, so one tick becomes 0. + * 2 ticks is just as good. Avoid guessing (frig_factor!). + */ + if ((ticks - pcu->lastTicks) == 0) + ticks = 2; + } + + /* if the counter has been read too quickly after its last + * access, then the host may not show any visible change in + * host time ... in which case we just guess at a suitable + * number of elapsed ticks. + */ + + if ((long)(ticks - pcu->lastTicks) <= 0){ + ticks = guess(); + }else{ + throwaway(); + pcu->lastTicks = ticks; + } + + /* the counter holds some count down value ... + * if the number of 8253 clocks elapsed exceeds this amount + * then the counter must have wrapped + */ + + if ( ticks < modulo ) { + *wrap = 0; + } else { + *wrap = 1; + ticks -= modulo; + + if ( pcu->m == INT_ON_TERMINALCOUNT ) + modulo = 0x10000L; + + if ( ticks >= modulo ) { + *wrap += ticks/modulo; + ticks %= modulo; + +#ifndef PROD + if (io_verbose & TIMER_VERBOSE) + if ( pcu->m == INT_ON_TERMINALCOUNT ) { + sprintf(buf, "%lx wraps for timer[%d]", *wrap, pcu-timers); + trace(buf, DUMP_NONE); + } +#endif + } + } + + /* calculate new counter value */ + pcu->Count = (word)(modulo-ticks); + + /* calculate time at which last wrap point occurred, and + * use this to stamp the counter + */ + + if (*wrap) + setLastWrap((unsigned int)(modulo-pcu->Count),now); + +} + + + +/* calculate time for last wrap around of counter, and use this + * to mark counter activation time. + */ + +LOCAL void setLastWrap IFN2(unsigned int, nclocks, struct host_timeval *, now) +{ + struct host_timeval *stamp; + unsigned long usecs; + + stamp = &pcu->activationTime; + *stamp = *now; + usecs = ((unsigned long)nclocks * TIMER_CLOCK_NUMER) / TIMER_CLOCK_DENOM; + + if (stamp->tv_usec < usecs) + { + stamp->tv_sec--; + stamp->tv_usec += 1000000L; + } + stamp->tv_usec -= usecs; + + pcu->lastTicks = nclocks; +} + +#endif /* NTVDM*/ + + + +#ifndef NTVDM +/* + * If the host timer gives the same result as last time it was called, + * we must give the illusion that time has passed. + * The algorithm uesd is to keep track of how often we have to guess + * between host timer ticks, and to assume that guesses should be evenly + * distributed between host ticks, ie. the time between two guesses should be: + * Guess ticks = hosttickinterval/nguesses + * If we find that the total guessed time is getting dangerously near to being the time + * between two host ticks, we start reducing the guess tick interval so as to avoid + * guessing a total time that is too large. + * + * From observation, applications use the timer in both coarse and fine 'modes'. + * The coarse mode is the hardware interrupt handler and then in between + * interrupts, the timer is polled to detect time passing (hence guess below). + * The fine mode polling does not commence until some portion of the tick time + * has elapsed - probably as the coarse int handler will consume some of the + * time. If guess() bases its timefrig over the whole tick, then given the + * above behaviour, a polling counter can reach tick end time before the int + * is delivered. This can fool applications (e.g. Win 3.1 VTD) into having + * time pass at the wrong rate (approx double for Win 3.1). By calculating + * the timefrig on most (7/8) of the tick period, this problem is avoided. + */ + +LOCAL unsigned long guess IFN0() +{ + if (!pcu->microtick) + { + pcu->saveCount = pcu->Count; + pcu->timeFrig = ((ticksPerIdealInterval * 7) >> 3) / pcu->guessesPerHostTick; /* guesses over 7/8 of tick */ +#ifndef PROD + if (io_verbose & TIMER_VERBOSE) { + sprintf(buf, "guess init timer[%d]: timeFrig = %lx", pcu-timers, pcu->timeFrig); + trace(buf, DUMP_NONE); + } +#endif + } + if(pcu->guessesSoFar++ > pcu->guessesPerHostTick) + { + /* + * PC Program is reading the timer more often than in the last timer tick, so need to + * decay timeFrig to avoid too much 'time' passing between host ticks + */ + pcu->timeFrig = (pcu->timeFrig >> 1) + 1; +#ifndef PROD + if (io_verbose & TIMER_VERBOSE) { + sprintf(buf, "guess decay: timeFrig = %lx", pcu->timeFrig); + trace(buf, DUMP_NONE); + } +#endif + } + pcu->microtick += pcu->timeFrig; + return (pcu->microtick + pcu->lastTicks); +} + + +/* + * After a few (maybe none) guesses, the host timer has finally ticked. + * Try and work out a good frig factor for the next few guesses, based + * on the number of guesses we had to make. + */ +LOCAL void throwaway IFN0() +{ + pcu->guessesPerHostTick = (pcu->guessesPerHostTick + pcu->guessesSoFar)>>1; + pcu->guessesSoFar = 2; /* Handy to count from 2! */ + if (!pcu->microtick) + return; +#ifndef PROD + if (io_verbose & TIMER_VERBOSE) + { + sprintf(buf, "throwaway: guessesPerHostTick = %d", (int)pcu->guessesPerHostTick); + trace(buf, DUMP_NONE); + } +#endif + pcu->Count = pcu->saveCount; + pcu->microtick = 0; +} + +#endif /* ndef NTVDM */ + +LOCAL unsigned short bin_to_bcd IFN1(unsigned long, val) +{ + register unsigned short m, bcd, i; + + m = (short)(val % 10000L); + bcd = 0; + for (i=0; i<4; i++) + { + bcd = bcd | ((m % 10) << (i << 2)); + m /= 10; + } + return(bcd); +} + +/* + * convert 4 decade bcd value to binary + */ +LOCAL word bcd_to_bin IFN1(word, val) +{ + register word bin, i, mul; + bin = 0; + mul = 1; + for (i=0; i<4; i++) + { + bin += (val & 0xf) * mul; + mul *= 10; + val = val >> 4; + } + return (bin); +} + +/* + * this routine returns the number of timer clocks equivalent + * to the input count, allowing for timer mode and down count. + */ + +LOCAL unsigned long timer_conv IFN1(word, count) +{ + if (!count) + { + if (pcu->bcd == BCD) + return 10000L; + else + return 0x10000L; + } + else + return (unsigned long)count; +} + + +/* this routine returns the current ideal time value ... + * this is a very coarse resolution time ... it only changes + * per call to time_tick(). It does however represent what the + * system time would be given 100% accurate time signal + * ... this routine gets used for time-stamping if time_tick() + * is active, otherwise time-stamping is done using + * getHostSysTime() ... see below. + */ + +LOCAL void getIdealTime IFN1(struct host_timeval *, t) +{ + t->tv_sec = idealtime.tv_sec; + t->tv_usec = idealtime.tv_usec; +} + +/* update our ideal time by the period (in usecs) between timer signals + * from the host as though these were delivered 100% accurately + */ + +LOCAL void updateIdealTime IFN0() +{ + idealtime.tv_usec += idealInterval; + if (idealtime.tv_usec > 1000000L) + { + idealtime.tv_usec -=1000000L; + idealtime.tv_sec++; + } +} + +#ifndef NTVDM + +/* get current host system time ... used for time-stamping and + * querying during io from Intel application + */ + +LOCAL void getHostSysTime IFN1(struct host_timeval *, t) +{ + struct host_timezone dummy; + host_gettimeofday(t, &dummy); + + /* + * check that we haven't gone back in time. + */ + + if (t->tv_sec < idealtime.tv_sec || + (t->tv_usec < idealtime.tv_usec && t->tv_sec == idealtime.tv_sec)) + { + /* + * The real time has fallen behind the ideal time. + * This should never happen... If it does we must + * stay at the ideal time. + */ + +#ifndef PROD +#ifndef PIG + sprintf(buf,"TIME WARP!!"); + trace(buf,0); +#endif +#endif + *t = idealtime; + } +} +#endif /* !NTVDM */ + + +/* + * Used to temporarily stop the timer interrupts. PCLABS bench29 + * causes this to be called iff a 80287 is being used. + */ + +void axe_ticks IFN1(int, ticks) +{ +#ifndef PROD + /* + * No need to axe ticks if timers are disabled by toff2 (if + * ticks_blocked is negative) + */ + if (ticks_blocked >=0) +#endif /* PROD */ + ticks_blocked = ticks; +} + +/* + * Initialization code + */ +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_INIT.seg" +#endif + +#ifdef SYNCH_TIMERS + +GLOBAL void IdealTimeInit IFN0() +{ + + extern IU32 Q_timer_restart_val; + + idealInterval = Q_timer_restart_val; + +#else + +LOCAL void IdealTimeInit IFN0() +{ + idealInterval = HOST_IDEAL_ALARM; + +#endif + +#ifndef NTVDM + getHostSysTime(&idealtime); + ticksPerIdealInterval = (idealInterval * TIMER_CLOCK_DENOM) / TIMER_CLOCK_NUMER; +#endif +} + +LOCAL void Timer_init IFN0() +{ + int i; + for (i=0; i<3; i++) + counter_init(&timers[i]); +#ifdef NTVDM + timers[0].getTime = getIdealTime; /* Use the 'ideal' time for timer 0, ie. calls to time_tick */ + timers[1].getTime = host_GetSysTime; /* We don't really expect anyone to use timer 1 */ + timers[2].getTime = host_GetSysTime; /* Use real host time for timer 2 */ +#else + timers[0].getTime = getIdealTime; /* Use the 'ideal' time for timer 0, ie. calls to time_tick */ + timers[1].getTime = getHostSysTime; /* We don't really expect anyone to use timer 1 */ + timers[2].getTime = getHostSysTime; /* Use real host time for timer 2 */ +#endif +} + +LOCAL void counter_init IFN1(COUNTER_UNIT *, p) +{ + p->state = uninit; + p->initialCount = 0x10000L; /* Avoid dividing by zero in updateCount()! */ +#ifndef NTVDM + p->guessesPerHostTick = p->guessesSoFar = 2; /* Handy to count from 2! */ + p->timeFrig = ticksPerIdealInterval / p->guessesPerHostTick; +#endif +} + +#if !defined (NTVDM) +#if defined(IRET_HOOKS) && defined(GISP_CPU) +/*( + *======================= TimerHookAgain() ============================ + * TimerHookAgain + * + * Purpose + * This is the function that we tell the ica to call when a timer + * interrupt service routine IRETs. + * + * Input + * adapter_id The adapter id for the line. (Note the caller doesn't + * know what this is, he's just returning something + * we gave him earlier). + * + * Outputs + * return TRUE if there are more interrupts to service, FALSE otherwise. + * + * Description + * Check if we have a delayed interrupt, if so then generate the timer int + * and return TRUE, else return FALSE +)*/ + +GLOBAL IBOOL +TimerHookAgain IFN1(IUM32, adapter) +{ char scancode; + + if (HostPendingTimerInt()) + { /* We have a host delayed interrupt, so generate a timer int. */ + sure_note_trace0(TIMER_VERBOSE,"callback with delayed timer int."); + ica_hw_interrupt(ICA_MASTER,CPU_TIMER_INT, 1); + return(TRUE); /* more to do */ + } + else + { + return(FALSE); + } +} + +#endif /* IRET_HOOKS && GISP_CPU */ +#endif /* !NTVDM */ + +void timer_init IFN0() +{ + io_addr i; + + /* + * Set up the IO chip select logic for this adaptor + */ + + io_define_inb(TIMER_ADAPTOR, timer_inb_func); + io_define_outb(TIMER_ADAPTOR, timer_outb_func); + + for(i = TIMER_PORT_START; i < TIMER_PORT_END; i++) + { + if( (i & 3) == 3 ) + io_connect_port(i, TIMER_ADAPTOR, IO_WRITE); /* Control port - write only */ + else + io_connect_port(i, TIMER_ADAPTOR, IO_READ_WRITE); /* Timer port - read/write */ + } + + IdealTimeInit(); + + Timer_init(); + +#ifndef NTVDM + timelock = UNLOCKED; + needtick = 0; +#else + RegisterEOIHook(CPU_TIMER_INT, TimerEoiHook); +#endif + + /* + * Start up the host alarm system + */ + + host_timer_init(); + +#if !defined(NTVDM) +#if defined(IRET_HOOKS) && defined(GISP_CPU) + /* + * Remove any existing hook call-back, and re-instate it afresh. + * TimerHookAgain is what gets called on a timer int iret. + */ + + Ica_enable_hooking(CPU_TIMER_INT, NULL, ICA_MASTER); + Ica_enable_hooking(CPU_TIMER_INT, TimerHookAgain, ICA_MASTER); + + /* Host routine to reset any internal data for IRET_HOOK delayed ints. */ + HostResetTimerInts(); + +#endif /* IRET_HOOKS && GISP_CPU */ + + + active_int_event = FALSE; /* clear any cranked timer state */ + more_timer_mult = 0; + +#if defined(CPU_40_STYLE) + ica_iret_hook_control(ICA_MASTER, CPU_TIMER_INT, TRUE); +#endif +#endif /* !NTVDM */ +} + +void timer_post IFN0() +{ + /* enable gates on all timer channels */ + timer_gate(TIMER0_REG,GATE_SIGNAL_RISE); /* start timer 1 going... */ + timer_gate(TIMER1_REG,GATE_SIGNAL_RISE); + timer_gate(TIMER2_REG,GATE_SIGNAL_RISE); + + timer_outb(TIMER_MODE_REG,0x36); + timer_outb(TIMER0_REG,0); + timer_outb(TIMER0_REG,0); + + timer_outb(TIMER_MODE_REG,0x54); + timer_outb(TIMER1_REG,17); + + timer_outb(TIMER_MODE_REG,0xb6); + timer_outb(TIMER2_REG,0x68); + timer_outb(TIMER2_REG,0x04); +} + +#ifdef DOCUMENTATION +#ifndef PROD + +/* + * Debugging code.... + * This code has no effect. It is left here in case anyone wants to + * expand it in future. + */ + +dumpCounter IFN0() +{ + static char *modes[] = + { "int on tc", + "prog one shot", + "rate gen", + "squarewave gen", + "sw trig strobe", + "hw trig strobe" + }; + + static char *as[] = + { "binary", + "bcd" + }; + + char *p, *q; + + p = modes[pcu->m]; + q = as[pcu->bcd]; +} +#endif /* nPROD */ +#endif /* DOCUMENTATION */ diff --git a/private/mvdm/softpc.new/base/system/timestrb.c b/private/mvdm/softpc.new/base/system/timestrb.c new file mode 100644 index 000000000..300186b4f --- /dev/null +++ b/private/mvdm/softpc.new/base/system/timestrb.c @@ -0,0 +1,120 @@ +#include "insignia.h" +#include "host_def.h" +/* + * SoftPC Version 3.0 + * + * Title : Time Strobe + * + * Description : This is the central base routine that is called from the + * host alarm (approx 20 times a second). It replaces the + * previous time_tick() routine in the timer module which now + * is called from this module's timer_strobe() and just deals + * with the periodic updates required for the timer. + * + * Author : Leigh Dworkin + * + * Notes : + * Code has been added to time_tick() to spot + * that video has been disabled for a period. If this is + * so, clear the screen. Refresh when video is enabled + * again. + * Modified 21/6/89 by J.D.R. to allow another alarm call + * to be made. This is used by the autoflush mechanism. + * + */ + +/* + * static char SccsID[]="@(#)timestrobe.c 1.12 11/01/94 Copyright Insignia Solutions Ltd."; + */ + + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_SUPPORT.seg" +#endif + + +/* + * O/S include files. + */ + +/* + * SoftPC include files + */ +#include "xt.h" +#include "cmos.h" +#include "timer.h" +#include "tmstrobe.h" +#include "gmi.h" +#include "gfx_upd.h" +#include "host_qev.h" + +#ifdef HUNTER +#include +#include "hunter.h" +#endif + +#include "host_gfx.h" + +static void dummy_alarm() +{ +} + +/**************************************************************************************/ +/* External Functions */ +/**************************************************************************************/ +void time_strobe() +{ + +#define VIDEO_COUNT_LIMIT 19 /* One second, plus a bit */ + static int video_count = 0; + static boolean video_off = FALSE; + +#if !defined(REAL_TIMER) && !defined(NTVDM) + time_tick(); +#endif + +#ifdef HUNTER + do_hunter(); +#endif + + +#ifndef NTVDM +#ifndef REAL_TIMER + /* Update the real time clock */ + rtc_tick(); +#endif /* REAL_TIMER */ + + dispatch_tic_event(); + +#if defined(CPU_40_STYLE) + ica_check_stale_iret_hook(); +#endif +#endif + + /* + * Check to see if the screen is currently enabled. + */ + if (timer_video_enabled) { + if (video_off) { + screen_refresh_required(); + video_off = FALSE; + } + video_count = 0; + } + else { + video_count++; + if (video_count == VIDEO_COUNT_LIMIT) { + host_clear_screen(); + video_off = TRUE; + } + } +#ifdef EGA_DUMP + dump_tick(); +#endif +} + diff --git a/private/mvdm/softpc.new/base/system/unexp_nt.c b/private/mvdm/softpc.new/base/system/unexp_nt.c new file mode 100644 index 000000000..9f3ce240b --- /dev/null +++ b/private/mvdm/softpc.new/base/system/unexp_nt.c @@ -0,0 +1,95 @@ +#include "insignia.h" +#include "host_def.h" +/* + * SoftPC Version 2.0 + * + * Title : Unexpected interrupt routine + * + * Description : This function is called for those interrupt vectors + * which should not occur. + * + * Author : Henry Nash + * + * Notes : None + * + */ + +#ifdef SCCSID +static char SccsID[]="@(#)unexp_int.c 1.8 06/15/95 Copyright Insignia Solutions Ltd."; +#endif + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_ERROR.seg" +#endif + + +/* + * O/S include files. + */ +#include TypesH + +/* + * SoftPC include files + */ +#include "xt.h" +#include CpuH +#include "bios.h" +#include "ica.h" +#include "ios.h" +#include "sas.h" +#include "debug.h" + +#define INTR_FLAG 0x6b +#define EOI 0x20 + +void unexpected_int() +{ + half_word m_isr, m_imr, s_isr, s_imr; + + /* Read ica registers to determine interrupt reason */ + + outb(ICA0_PORT_0, 0x0b); + inb(ICA0_PORT_0, &m_isr); + + /* HW or SW ? */ + + if ( m_isr == 0 ) + { + /* Non hardware interrupt(= software) */ + m_isr = 0xFF; + always_trace0("Non hardware interrupt(= software)"); + } + else + { + /* Hardware interrupt */ + inb(ICA0_PORT_1, &m_imr); + if ((m_imr & 0xfb) != 0) + always_trace1("hardware interrupt master isr %02x", m_isr); + m_imr |= m_isr; + m_imr &= 0xfb; /* avoid masking line 2 as it's the other ica */ + + /* check second ICA too */ + outb(ICA1_PORT_0, 0x0b); + inb(ICA1_PORT_0, &s_isr); + if (s_isr != 0) /* ie hardware int on second ica */ + { + always_trace1("hardware interrupt slave isr %02x", s_isr); + inb(ICA1_PORT_1, &s_imr); /* get interrupt mask */ + s_imr |= s_isr; /* add the one that wasn't expected */ + outb(ICA1_PORT_1, s_imr); /* and mask out */ + outb(ICA1_PORT_0, EOI); + } + + /* now wind down main ica */ + outb(ICA0_PORT_1, m_imr); + outb(ICA0_PORT_0, EOI); + } + + /* Set Bios data area up with interrupt cause */ + sas_store(BIOS_VAR_START + INTR_FLAG, m_isr); +} diff --git a/private/mvdm/softpc.new/base/unix/makefile b/private/mvdm/softpc.new/base/unix/makefile new file mode 100644 index 000000000..6ee4f43fa --- /dev/null +++ b/private/mvdm/softpc.new/base/unix/makefile @@ -0,0 +1,6 @@ +# +# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source +# file to this component. This file merely indirects to the real make file +# that is shared by all the components of NT OS/2 +# +!INCLUDE $(NTMAKEENV)\makefile.def diff --git a/private/mvdm/softpc.new/base/unix/sources b/private/mvdm/softpc.new/base/unix/sources new file mode 100644 index 000000000..0d25e118a --- /dev/null +++ b/private/mvdm/softpc.new/base/unix/sources @@ -0,0 +1,57 @@ +!IF 0 + +Copyright (c) 1989 Microsoft Corporation + +Module Name: + + sources. + +Abstract: + + This file specifies the target component being built and the list of + sources files needed to build that component. Also specifies optional + compiler switches and libraries that are unique for the component being + built. + + +Author: + + Steve Wood (stevewo) 12-Apr-1990 + +NOTE: Commented description of this file is in \nt\bak\bin\sources.tpl + +!ENDIF + + +MAJORCOMP=spcbase +MINORCOMP=unix + +TARGETNAME=unix + +TARGETPATH=obj + + + +# Pick one of the following and delete the others +TARGETTYPE=LIBRARY + + +TARGETLIBS= + +SOFTPC_TREE=$(BASEDIR)\private\mvdm\softpc.new + +INCLUDES=$(SOFTPC_TREE)\host\inc;$(SOFTPC_TREE)\base\inc + +!IF $(ALPHA) +GPSIZE=0 +!ELSE +GPSIZE=4 +!ENDIF + + + +SOURCES=unix_emm.c + +!INCLUDE $(SOFTPC_TREE)\obj.vdm\CDEFINE.INC + +UMTYPE=console diff --git a/private/mvdm/softpc.new/base/video/cga.c b/private/mvdm/softpc.new/base/video/cga.c new file mode 100644 index 000000000..27b4b940c --- /dev/null +++ b/private/mvdm/softpc.new/base/video/cga.c @@ -0,0 +1,1490 @@ +#include "insignia.h" +#include "host_def.h" + +#if !defined(NTVDM) || (defined(NTVDM) && !defined(X86GFX) ) + +/* + * SoftPC Revision 3.0 + * + * Title : IBM Colour/Graphics Adapter simulator + * + * Description : Simulates the IBM CGA. + * + * Author : Rod MacGregor / Henry Nash + * + * Notes : The earlier versions of this module could run on an ADM 3E, + * a dumb ANSI standard terminal, in debug mode or in a Sun + * Window. In the interests of sanity and as the versions other + * than the Sun were not fully developed, they were removed. if + * interested in the workings of these implementations they are + * available in the SCCS file before version 2.36. + * + * The supported functions are: + * + * cga_init Initialise the subsystem + * cga_term Terminate the subsystem + * cga_inb I/P a byte from the MC6845 chip + * cga_outb O/P a byte to the MC6845 chip + * + * In the new EGA world, we use screen start instead of screen base. + * This is also a WORD address if the adapter is in text mode. + * (Thats how the EGA works!) + * So we don't have to double it now. Ho Hum. + * + * Mods: (r2.71): In the real 6845 chip, the pointer which addresses the + * base of the screen is a WORD ptr. We've just discovered + * this; all usage of the variable 'screen_base' assumes + * that it is a BYTE ptr. Hence in cga_outb() we now + * double the value in screen_base when it is set. + * + * (r3.2) : (SCR 258). cur_offset now declared as static. + * + * (r3.3) : (SCR 257). Set timer_video_enabled when the bit in + * the M6845 mode register which controls the video + * display is changed. Also neatened the indentation + * for outb(). + * + */ + +/* + * static char SccsID[]="@(#)cga.c 1.36 05/05/95 Copyright Insignia Solutions Ltd."; + */ + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_CGA.seg" +#endif + +/* + * O/S include files. + */ +#include +#include TypesH +#include StringH +#include FCntlH + +/* + * SoftPC include files + */ +#include "xt.h" +#include "timeval.h" +#include "timer.h" +#include CpuH +#include "ios.h" +#include "gmi.h" +#include "gfx_upd.h" +#include "gvi.h" +#include "sas.h" +#include "cga.h" +#include "error.h" +#include "config.h" +#include "host.h" +#include "trace.h" +#include "debug.h" +#include "cpu_vid.h" +#ifdef EGG +#include "egacpu.h" +#endif /* EGG */ +#include "video.h" +#include "ckmalloc.h" + +#ifdef REAL_VGA +#include "avm361.h" +#else +#include "host_gfx.h" +#endif + + +/* + *============================================================================ + * Local Defines, Macros & Declarations + *============================================================================ + */ + +#define CURSOR_NON_DISPLAY_BIT (1 << 5) + /* Bit in Cursor Start Register which + makes the cursor invisible */ +#define CURSOR_USED_BITS 0x1f + /* Mask to clear out unused bits */ + +static int current_mode = -1; /* Value of Mode Select at last call */ + +/* + * MC6845 Registers + */ + +#ifdef HUNTER +half_word MC6845[MC6845_REGS]; /* The current values of the MC6845 registers */ +half_word mode_reg; /* The value of the mode control register */ +#endif + +static half_word index_reg = 00 ; /* Index register */ + +/* + * 6845 Register variables + */ +static half_word R0_horizontal_total; +static half_word R1_horizontal_displayed = 80; +static half_word R2_horizontal_sync_pos; +static half_word R3_horizontal_sync_width; +static half_word R4_vertical_total; +static half_word R5_vertical_total_adjust; +static half_word R6_vertical_displayed = 25; +static half_word R7_vertical_sync; +static half_word R9_max_scan_line_addr = 7; +static half_word R8_interlace; +static half_word Ra_cursor_start = 0; +static half_word Rb_cursor_end = 0; +static half_word Re_cursor_loc_high = 0; +static half_word Rf_cursor_loc_low = 0; + +/* + * global variables peculiar to the cga + */ + +CGA_GLOBS CGA_GLOBALS; + +GLOBAL VOID (*bios_ch2_byte_wrt_fn)(); +GLOBAL VOID (*bios_ch2_word_wrt_fn)(); + +GLOBAL IU8 *cga_screen_buf = 0; + +/* + * Globals used in various functions to synchronise the display + */ + +int cursor_over_screen = FALSE; /* When set to TRUE the cursor is over the */ + /* screen areas and the cursor should flash */ + +/* + * Static forward declarations. + */ + +static void set_cga_palette IPT2(int, screen_mode, int, res); +static void update_cursor_shape IPT0(); + + +#ifdef A3CPU +IMPORT WRT_POINTERS Glue_writes; +#else +IMPORT MEM_HANDLERS Glue_writes; +#endif /* A3CPU */ +IMPORT WRT_POINTERS simple_writes; +IMPORT READ_POINTERS Glue_reads; +IMPORT READ_POINTERS read_glue_ptrs; +IMPORT READ_POINTERS simple_reads; + +#ifdef A2CPU +LOCAL ULONG dummy_read IFN1(ULONG, offset) +{ + UNUSED(offset); + return 0; +} + +LOCAL void dummy_str_read IFN3(UTINY *, dest, ULONG, offset, ULONG, count) +{ + UNUSED(dest); + UNUSED(offset); + UNUSED(count); +} + +LOCAL READ_POINTERS dummy_reads = +{ + dummy_read, + dummy_read +#ifndef NO_STRING_OPERATIONS + , + dummy_str_read +#endif /* NO_STRING_OPERATIONS */ +}; +#endif /* A2CPU */ + +/* + *========================================================================== + * Global Functions + *========================================================================== + */ + +/* + ********** Functions that operate on the I/O Address Space ******************** + */ + +/* + * Global variables + */ + +half_word bg_col_mask = 0x70; +reg regen_start; /* Regen start address */ + +void cga_inb IFN2(io_addr, address, half_word *, value) +{ + +static int cga_state = 0; /* current cga status state */ +static long state_count = 1; /* position in that state */ +static int sub_state = 0; /* sub state for cga state 2 */ +static unsigned long gmfudge = 17; /* Random number seed for pseudo-random + bitstream generator to give the state + lengths below that 'genuine' hardware + feel to progs that require it! */ +register unsigned long h; + +/* + * relative 'lengths' of each state. State 2 is *3 as it has 3 sub states + */ +static int s_lengths[] = { 8, 18, 8, 6 }; + +/* + * Read from MC6845 Register + */ + +if ( address == 0x3DA ) { + + /* + * Status register, simulated adapter has + * + * bit setting + * --- ------- + * Display enable 1/0 Toggling each inb + * Light Pen 0 + * Light Pen 0 + * Vertical Sync 1/0 Toggling each inb + * 4-7 Unused 0,0,0,0 + * + * The upper nibble of the byte is always set. + * Some programs synchronise with the display by waiting for the + * next vertical retrace. + * + * We attempt to follow the following waveform + * + * -- ---------- + * VS |_____________________________________________________| |____ + * + * + * ------------- - - ------------------ + * DE |__||__||__ ... about 180 _| + * + *State|--- 0 ----|-------------- 1 -----------------|-- 3 --|-- 4 --| + * + * We do this with a 4 state machine. Each state has a count associated + * with it to represent the relative time spent in each state. When this + * count is exhausted the machine moves into the next state. One Inb + * equals 1 count. The states are as follows: + * 0: VS low, DE high. + * 1: VS low, DE toggles. This works via an internal state. + * 3: VS low, DE high. + * 4: VS high,DE high. + * + */ + + state_count --; /* attempt relative 'timings' */ + switch (cga_state) { + + case 0: + if (state_count == 0) { /* change to next state ? */ + h = gmfudge << 1; + gmfudge = (h&0x80000000L) ^ (gmfudge & 0x80000000L)? h|1 : h; + state_count = s_lengths[1] + (gmfudge & 3); + cga_state = 1; + } + *value = 0xf1; + break; + + case 1: + if (state_count == 0) { /* change to next state ? */ + h = gmfudge << 1; + gmfudge = (h&0x80000000L) ^ (gmfudge & 0x80000000L)? h|1 : h; + state_count = s_lengths[2] + (gmfudge & 3); + cga_state = 2; + sub_state = 2; + } + switch (sub_state) { /* cycle through 0,0,1 sequence */ + case 0: /* to represent DE toggling */ + *value = 0xf0; + sub_state = 1; + break; + case 1: + *value = 0xf0; + sub_state = 2; + break; + case 2: + *value = 0xf1; + sub_state = 0; + break; + } + break; + + case 2: + if (state_count == 0) { /* change to next state ? */ + h = gmfudge << 1; + gmfudge = (h&0x80000000L) ^ (gmfudge & 0x80000000L)? h|1 : h; + state_count = s_lengths[3] + (gmfudge & 3); + cga_state = 3; + } + *value = 0xf1; + break; + + case 3: + if (state_count == 0) { /* wrap back to first state */ + h = gmfudge << 1; + gmfudge = (h&0x80000000L) ^ (gmfudge & 0x80000000L)? h|1 : h; + state_count = s_lengths[0] + (gmfudge & 3); + cga_state = 0; + } + *value = 0xf9; + break; + } +} +else if ( (address & 0xFFF9) == 0x3D1) + { + + /* + * Internal data register, the only supported internal + * registers are E and F the cursor address registers. + */ + + switch (index_reg) { + + case 0xE: + *value = (get_cur_y() * get_chars_per_line() + get_cur_x() ) >> 8; + break; + case 0xF: + *value = (get_cur_y() * get_chars_per_line() + get_cur_x()) & 0xff; + break; + case 0x10: case 0x11: + *value = 0; + break; + default: + note_trace1(CGA_VERBOSE, + "Read from unsupported MC6845 internal reg %x", + index_reg); + } + } +else + /* + * Read from a write only register + */ + + *value = 0x00; +} + + +void cga_outb IFN2(io_addr, address, half_word, value) +{ + +/* + * Output to a 6845 register + */ + +word cur_offset; /* The cursor position registers */ +static half_word last_mode = -1; +static half_word last_screen_length = 25; +static half_word video_mode; +/* + * Variable used to see if text character height has changed, so that + * unnecessary calls to host_change_mode can be avoided. + */ +static half_word last_max_scan_line = 7; + +/* + * Masks for testing the input byte. The MODE_MASK hides the (unsupported) + * blink bit and the video enable bit to ascertain whether any mode specific + * variables need to be changed. The BLINK_MASK hides the blink bit for storing + * the current_mode between changes. + */ + +#define RESET 0x00 +#define ALPHA_80x25 0x01 +#define GRAPH 0x02 +#define BW_ENABLE 0x04 +#define GRAPH_640x200 0x10 +#define MODE_MASK 0x17 +#define BLINK_MASK 0x1F +#define COLOR_MASK 0x3F + + note_trace2(CGA_VERBOSE, "cga_outb: port %x value %x", address, value); + +switch (address) { + case 0x3D0: + case 0x3D2: + case 0x3D4: + case 0x3D6: + + /* + * Index Register + */ + index_reg = value; + break; + + case 0x3D1: + case 0x3D3: + case 0x3D5: + case 0x3D7: +#ifdef HUNTER + MC6845[index_reg] = value; +#endif + +/* + * This is the data register, the function to be performed depends on the + * value in the index register + * + * The various registers affect the position and size of the screen and the + * image on it. The screen can be logically divided into two halves: the + * displayed text and the rest which is the border. The border colour can + * be changed by programming the 3D9 register. + * NB. Currently SoftPC does not obey positioning & display sizing + * information - the display remains constant. + * The first 8 registers (R0-R7) affect the size & position of the display; + * their effects are as follows: + * R0 - R3 control the horizontal display aspects & R4 - R7 the vertical. + * + * The diagram below attempts to show how each is related to the screen + * size & shape. + * + * (Shaded Area - border) + * ________________________________________________________ <------------- + * |......................................................| | | R5 | + * |..|-----------------------------------------------|...| | <---- | + * |..| |...| | | | + * |..|c> |...| | | | + * |..| |...| | | | + * |..| |...| | | | + * |..| |...| | | | + * |..| |...| R R R + * |..| |...| 4 6 7 + * |..| |...| | | | + * |..| |...| | | | + * |..| |...| | | | + * |..| |...| | | | + * |..| |...| | | | + * |..| |...| | | | + * |..|_______________________________________________|...| | <------- + * |......................................................| | + * -------------------------------------------------------- <------------ + * ^ ^ + * |-----------------------R0-----------------------------| + * | ^ | + * |R3| | + * | | ^ | + * | |--------------------R1--------------------------| + * | | + * |-----------------------R2--------------------------| + * + * The reason for having 4 registers to handle the full range of values + * is because they are actually used to control the horizontal & vertical + * traces on the screen hence: + * R0 - total time of scan + * R1 - active display - scan on + * R2 - time sync for scan off/on/off + * R3 - time to scan on + * + * R1 + * ------------------------------------------------- + * | | + * | | + * R3 | | + * ---- --- + * <---------------------R2--------------------------> + * <---------------------R0-----------------------------> + * + * The veritcal registers organise an analagous trace. The two traces are + * synchronised by Register 8. + * + * This is why altering these values on the PC will move the display or + * more likely cause garbaging of the image! + */ + + switch ( index_reg ) { + case 0x00: + /* + * total horizontal display (inc border) + */ + R0_horizontal_total = value; + break; + + case 0x01: + /* + * Specify the number of characters per row + */ + if (value > 80) { + always_trace1("cga_outb: trying to set width %d", value); + value = 80; + } + R1_horizontal_displayed = value; + set_horiz_total(value); + break; + + case 0x02: + /* + * Right hand edge of displayed text + * affect left_border(?), right_border(?) + */ + R2_horizontal_sync_pos = value; + break; + + case 0x03: + /* + * Left hand edge of displayed text + * affect left_border, right_border + */ + R3_horizontal_sync_width = value; + break; + + case 0x04: + /* + * total vertical display (inc border) + */ + R4_vertical_total = value; + break; + + case 0x05: + /* + * Top edge of displayed text + * affect top_border, bottom_border + */ + R5_vertical_total_adjust = value; + break; + + case 0x06: + /* + * If the screen length is 0, this effectively means + * don't display anything. + */ + if(value == 0) + { + host_clear_screen(); + set_display_disabled(TRUE); + last_screen_length = 0; + } + else + { + /* + * Specify the screen length - in our + * implementation used only in text mode. + * affect top_border, bottom_border + */ + R6_vertical_displayed = value; + set_screen_length( R1_horizontal_displayed * R6_vertical_displayed * 2 ); + } + /* + * check if we are resetting the screen to + * display again + */ + if((value != 0) && (last_screen_length == 0)) + { + set_display_disabled(FALSE); + host_flush_screen(); + last_screen_length = value; + } + + + break; + + case 0x07: + /* + * bottom of displayed text + * affect top_border(?), bottom_border(?) + */ + R7_vertical_sync = value; + break; + + case 0x08: + /* + * interlace of traces - hold constant + */ + R8_interlace = 2; + break; + + case 0x09: + /* + * Specify the character height - in our + * implementation used only in text mode. + * The actual number of pixels is one + * more than this value. + */ + R9_max_scan_line_addr = value; + set_char_height_recal(R9_max_scan_line_addr + 1); + set_screen_height_recal( R6_vertical_displayed*(R9_max_scan_line_addr+1) - 1); + flag_mode_change_required(); + screen_refresh_required(); + break; + + /* + * A defines the cursor start scan line + * B defines the cursor stop scan line + */ + case 0x0A: + /* bypass redundant updates */ + if (Ra_cursor_start != value) + { + Ra_cursor_start = value; +#ifdef REAL_VGA + CRTC_REG(0xa, value); +#endif + update_cursor_shape(); + } + break; + case 0x0B: + /* bypass redundant updates */ + if (Rb_cursor_end != (value & CURSOR_USED_BITS)) + { + Rb_cursor_end = (value & CURSOR_USED_BITS); +#ifdef REAL_VGA + CRTC_REG(0xb, value); +#endif + update_cursor_shape(); + } + break; + + /* + * C & D define the start of the regen buffer + */ + case 0x0C: + /* + * High byte + */ + if (value != regen_start.byte.high) + { + regen_start.byte.high = value; + host_screen_address_changed(regen_start.byte.high, + regen_start.byte.low); + set_screen_start(regen_start.X % (short)(CGA_REGEN_LENGTH/2) ); + screen_refresh_required(); + } +#ifdef REAL_VGA + CRTC_REG(0xc, value); +#endif + break; + + case 0x0D: + /* + * low byte + */ + if (value != regen_start.byte.low) + { + regen_start.byte.low = value; + host_screen_address_changed(regen_start.byte.high, + regen_start.byte.low); + set_screen_start(regen_start.X % (short)(CGA_REGEN_LENGTH/2)); + screen_refresh_required(); + } +#ifdef REAL_VGA + CRTC_REG(0xd, value); +#endif + break; + + /* + * E and F define the cursor coordinates in characters + */ + case 0x0E: + /* + * High byte + */ + if (Re_cursor_loc_high != value) + { + Re_cursor_loc_high = value; + + if(get_cga_mode() == TEXT) + host_cga_cursor_has_moved(get_cur_x(), get_cur_y()); + cur_offset = (value << 8) | Rf_cursor_loc_low; + cur_offset -= get_screen_start(); + set_cur_y( cur_offset / get_chars_per_line() ); + set_cur_x( cur_offset % get_chars_per_line() ); + + } + break; + + case 0x0F: + /* + * low byte + */ + if (Rf_cursor_loc_low != value) + { + Rf_cursor_loc_low = value; + + if(get_cga_mode() == TEXT) + host_cga_cursor_has_moved(get_cur_x(), get_cur_y()); + cur_offset = (Re_cursor_loc_high << 8) | value; + cur_offset -= get_screen_start(); + set_cur_y( cur_offset / get_chars_per_line()); + set_cur_x( cur_offset % get_chars_per_line()); + + } + break; + + default: + note_trace2(CGA_VERBOSE, "Unsupported 6845 reg %x=%x(write)", + index_reg, value); + } + break; + + case 0x3D8: + /* + * Mode control register. The first + * six bits are encoded as follows: + * + * BIT Function Status + * --- -------- ------ + * 0 A/N 80x25 mode Supported + * 1 Graphics Select Supported + * 2 B/W Select Supported + * 3 Enable Video Supported + * 4 640x200 B/W mode Supported + * 5 Change B/G intensity to blink Not Supported + * 6,7 Unused + */ + +#ifdef HUNTER + mode_reg = value; +#endif + timer_video_enabled = (boolean) (value & VIDEO_ENABLE); + + if (value != current_mode) { + + if (value == RESET) + set_display_disabled(TRUE); /* Chip reset - do nothing */ + else { + /* + * Take note whether color or B/W + */ + + set_cga_color_select( !(value & BW_ENABLE) ); + + /* + * Set up for graphics or text + */ + if (value & GRAPH) { + set_chars_per_line(R1_horizontal_displayed<<1); + set_cursor_visible(FALSE); + set_cga_mode(GRAPHICS); + host_set_border_colour(0); + set_word_addressing(FALSE); /* bytes per line = chars per line */ + set_cga_resolution( (value & GRAPH_640x200 ? HIGH : MEDIUM) ); + if (get_cga_resolution() == HIGH) { + video_mode = 6; + set_pix_width(1); + } + else { + video_mode = (get_cga_color_select() ? 4 : 5); + set_pix_width(2); + } + if (video_mode != last_mode) + { + host_change_mode(); + set_cga_palette(get_cga_mode(),get_cga_resolution()); + } + } + else { /* Text, presumably */ + set_chars_per_line(R1_horizontal_displayed); + set_cga_mode(TEXT); + set_cursor_visible(TRUE); + set_word_addressing_recal(TRUE); /* so that bytes per line is twice chars per line */ + + if (value & 0x20) + /* blinking - not supported */ + bg_col_mask = 0x70; + else + /* using blink bit to provide 16 background colours */ + bg_col_mask = 0xf0; + + if (value & ALPHA_80x25) + { + video_mode = (get_cga_color_select() ? 3 : 2); + set_pix_width(1); + set_pix_char_width(8); + } + else + { + video_mode = (get_cga_color_select() ? 1 : 0); + set_pix_width(2); + set_pix_char_width(16); + } + + +/* + * Avoid mode changes with disabled screen. + * + * Text mode changes are also needed if the character height changes. The + * character height is set here rather than when that register is set. This + * avoids unnecessary mode changes, as the character height is set before we + * know if a graphics or text mode is to be entered. + */ + if ( (value & VIDEO_ENABLE) && ((video_mode != last_mode) || + (last_max_scan_line != R9_max_scan_line_addr))) + { + last_max_scan_line = R9_max_scan_line_addr; + host_change_mode(); /* redo fonts etc */ + set_cga_palette(get_cga_mode(),get_cga_resolution()); + } + } + set_bytes_per_line(R1_horizontal_displayed<<1); + set_offset_per_line(get_bytes_per_line()); + + if (video_mode != last_mode) { + if (value & VIDEO_ENABLE) { + set_display_disabled(FALSE); + screen_refresh_required(); + last_mode = video_mode; /* Do this here so when screen display is re-enabled we do 'pending' mode change */ + } + else + set_display_disabled(TRUE); + } + else if ((value & VIDEO_ENABLE) + != (current_mode & VIDEO_ENABLE)) { + if (value & VIDEO_ENABLE) { + set_display_disabled(FALSE); + host_flush_screen(); + } + else + set_display_disabled(TRUE); + } + } + + } + + current_mode = value; + break; + + case 0x3D9: + /* + * The Color Select Register. Just save this into a + * variable so the machine-specific graphics s/w can + * see it, then call a host specific routine to act on it. + */ + + if ((value & COLOR_MASK) != get_cga_colormask() ) { + set_cga_colormask(value & COLOR_MASK); + set_cga_palette(get_cga_mode(),get_cga_resolution()); + } + break; + + default: + /* + * Write to an unsupported 6845 internal register + */ + + note_trace2(CGA_VERBOSE, "Write to unsupported 6845 reg %x=%x", + address,value); + break; + + } +} + + +/* + * Set up the host palette & border for the current CGA screen mode and resolution + */ + +static void set_cga_palette IFN2(int, screen_mode, int, res) +{ + /* + * palette for color text - 16 colors for FG and BG + * These tables are also used to set some graphic mode palette entries + * since they represent a 'standard' set of colors. + */ + + static PC_palette cga_text_palette[] = + { + 0x00, 0x00, 0x00, /* Black */ + 0x22, 0x22, 0xBB, /* Blue */ + 0x00, 0xAA, 0x00, /* Green */ + 0x00, 0xAA, 0xAA, /* Cyan */ + 0xAA, 0x00, 0x00, /* Red */ + 0xAA, 0x00, 0xAA, /* Magenta */ + 0xAA, 0x88, 0x00, /* Brown */ + 0xCC, 0xCC, 0xCC, /* White */ + 0x55, 0x55, 0x55, /* Grey */ + 0x22, 0x22, 0xEE, /* Light Blue */ + 0x00, 0xEE, 0x00, /* Light Green */ + 0x00, 0xEE, 0xEE, /* Light Cyan */ + 0xEE, 0x00, 0x00, /* Light Red */ + 0xEE, 0x00, 0xEE, /* Light Magenta*/ + 0xEE, 0xEE, 0x00, /* Yellow */ + 0xFF, 0xFF, 0xFF /* Bright White */ + }; + + + /* + * NOTE: The medium resolution graphics colors below have their first + * and second indices reversed, due to a "feature" in the supplied + * graphics system library routines. We are trying to persuade IBM + * to change the spec of the CGA accordingly. + */ + + + /* + * Medium resolution graphics, color set 1 (Green, Red, Brown) + */ + + static PC_palette cga_graph_m1l[] = + { + 0x00, 0x00, 0x00, /* Set dynamically */ + 0x00, 0xAA, 0x00, /* Green */ + 0xAA, 0x00, 0x00, /* Red */ + 0xAA, 0x88, 0x00 /* Brown */ + }; + + /* + * As above but with high intensity bit on + */ + + static PC_palette cga_graph_m1h[] = + { + 0x00, 0x00, 0x00, /* Set dynamically */ + 0x00, 0xEE, 0x00, /* Green (alt Red) */ + 0xEE, 0x00, 0x00, /* Red (alt Green) */ + 0xEE, 0xEE, 0x00 /* Yellow */ + }; + + /* + * Medium resolution graphics, color set 2 (Cyan, Magenta, White) + */ + + static PC_palette cga_graph_m2l[] = + { + 0x00, 0x00, 0x00, /* Set dynamically */ + 0x00, 0xAA, 0xAA, /* Magenta (alt Cyan) */ + 0xAA, 0x00, 0xAA, /* Cyan (alt Magenta) */ + 0xCC, 0xCC, 0xCC /* White */ + }; + + + /* + * As above but with high intensity bit on + */ + + static PC_palette cga_graph_m2h[] = + { + 0x00, 0x00, 0x00, /* Set dynamically */ + 0x00, 0xEE, 0xEE, /* Magenta (alt Cyan) */ + 0xEE, 0x00, 0xEE, /* Cyan (alt Magenta) */ + 0xFF, 0xFF, 0xFF /* White */ + }; + + /* + * Medium resolution graphics, color set 3 (Cyan, Red, White) + * This is what you get when the "Black & White" bit is on!!! + */ + + static PC_palette cga_graph_m3l[] = + { + 0x00, 0x00, 0x00, /* Set dynamically */ + 0x00, 0xAA, 0xAA, /* Cyan (alt Red) */ + 0xAA, 0x00, 0x00, /* Red (alt Cyan) */ + 0xCC, 0xCC, 0xCC /* White */ + }; + + /* + * As above but with high intensity on + */ + + static PC_palette cga_graph_m3h[] = + { + 0x00, 0x00, 0x00, /* Set dynamically */ + 0x00, 0xEE, 0xEE, /* Cyan (alt Red) */ + 0xEE, 0x00, 0x00, /* Red (alt Cyan) */ + 0xFF, 0xFF, 0xFF /* White */ + }; + + + /* + * High resolution graphics + */ + + static PC_palette cga_graph_high[] = + { + 0x00, 0x00, 0x00, /* Black */ + 0x00, 0x00, 0x00 /* Set dynamically */ + }; + + + /* + * Local variables + */ + + PC_palette *cga_graph_med; + int ind; + + /* + * If the mode is TEXT use cga_text_palette + */ + + if (screen_mode == TEXT) + { + host_set_palette(cga_text_palette, 16); + host_set_border_colour(get_cga_colormask() &0xf); + } + + else /* Mode must be GRAPHICS */ + if (res == MEDIUM) + { + /* + * Select the appropriate slot array, then fill in the background. + * + * Note: 1) On a CGA driving an IBM Color Monitor, the intensity + * of these three colors (but NOT the background color) + * is affected by bit 4 of the Color Register. + * + * 2) The documentation says that bit 5 of the Color + * register selects one of two color sets. On a CGA + * driving an IBM Color Monitor, this is true UNLESS + * the B/W Enable bit in the Mode Set register is on, + * in which case you get a third set unaffected by + * bit 5 of the Color Register. + */ + + if (!get_cga_color_select() ) /* Set 3 */ + if (get_cga_colormask() & 0x10) /* High */ + cga_graph_med = cga_graph_m3h; + else /* Low */ + cga_graph_med = cga_graph_m3l; + else + if (get_cga_colormask() & 0x20) /* Set 2 */ + if (get_cga_colormask() & 0x10) /* High */ + cga_graph_med = cga_graph_m2h; + else /* Low */ + cga_graph_med = cga_graph_m2l; + else /* Set 1 */ + if (get_cga_colormask() & 0x10) /* High */ + cga_graph_med = cga_graph_m1h; + else /* Low */ + cga_graph_med = cga_graph_m1l; + + /* + * Load the background color from the TEXT palette + */ + + ind = get_cga_colormask() & 15; /* Lower 4 bits select color */ + cga_graph_med->red = cga_text_palette[ind].red; + cga_graph_med->green = cga_text_palette[ind].green; + cga_graph_med->blue = cga_text_palette[ind].blue; + + /* + * Load it + */ + host_set_palette(cga_graph_med,4); + + } + else /* Must be high resolution graphics */ + { + /* + * The background is BLACK, and the foreground is selected + * from the lower 4 bits of the Color Register + */ + + ind = (get_cga_colormask() & 15); + cga_graph_high[1].red = cga_text_palette[ind].red; + cga_graph_high[1].green = cga_text_palette[ind].green; + cga_graph_high[1].blue = cga_text_palette[ind].blue; + + host_set_palette(cga_graph_high,2); + } +} + +static void update_cursor_shape IFN0() +{ + /* + * This function actions a change to the cursor shape + * when either the cursor start or cursor end registers + * are updated with DIFFERENT values. + */ + half_word temp_start; + + + set_cursor_height1(0); + set_cursor_start1(0); + + if ( (Ra_cursor_start & CURSOR_NON_DISPLAY_BIT) + || ( Ra_cursor_start > CGA_CURS_START)) { + /* + * Either of these conditions causes the + * cursor to disappear on the real PC + */ + set_cursor_height(0); + set_cursor_visible(FALSE); + } + else { + temp_start = Ra_cursor_start & CURSOR_USED_BITS; + set_cursor_visible(TRUE); + if (Rb_cursor_end > CGA_CURS_START) { /* block */ + set_cursor_height(CGA_CURS_START); + set_cursor_start(0); + } + else if (temp_start <= Rb_cursor_end) { /* 'normal' */ + set_cursor_start(temp_start); + set_cursor_height(Rb_cursor_end - temp_start + 1); + } + else { /* wrap */ + set_cursor_start(0); + set_cursor_height(Rb_cursor_end); + set_cursor_start1(temp_start); + set_cursor_height1(get_char_height() - temp_start); + } + } + base_cursor_shape_changed(); + + + host_cursor_size_changed(Ra_cursor_start, Rb_cursor_end); + +} + +#if !defined(EGG) && !defined(A3CPU) && !defined(A2CPU) && !defined(C_VID) && !defined(A_VID) + +/* + The following functions are MEM_HANDLER functions for the CGA-only + build with no C_VID (no a common build). They are unused for most + variants of SoftPC. +*/ + +#define INTEL_SRC 0 +#define HOST_SRC 1 + +/* +======================== cga_only_simple_handler ========================= +PURPOSE: This function provides a stub for the unused MEM_HANDLER + functions. This function probably shouldn't be called hence + the trace statement. +INPUT: None. +OUTPUT: None. +========================================================================== +*/ +LOCAL void cga_only_simple_handler IFN0() +{ + always_trace0("cga_only_simple_handler called"); + setVideodirty_total(getVideodirty_total() + 1); +} + +/* +=========================== cga_only_b_write ============================= +PURPOSE: Byte write function. Puts the value at the given address + and increments dirty_flag. +INPUT: Address (in terms of M) and value to put there. +OUTPUT: None. +========================================================================== +*/ +LOCAL void cga_only_b_write IFN2(UTINY *, addr, ULONG, val) +{ + host_addr ptr; + ULONG offs; + + offs = (ULONG) (addr - gvi_pc_low_regen); + ptr = get_screen_ptr(offs); + *ptr = val & 0xff; + setVideodirty_total(getVideodirty_total() + 1); +} + +/* +=========================== cga_only_w_write ============================= +PURPOSE: Word write function. Puts the value at the given address + and increments dirty_flag. +INPUT: Address (in terms of M) and value to put there. +OUTPUT: None. +========================================================================== +*/ +LOCAL void cga_only_w_write IFN2(UTINY *, addr, ULONG, val) +{ + host_addr ptr; + ULONG offs; + + offs = (ULONG) (addr - gvi_pc_low_regen); + ptr = get_screen_ptr(offs); + *ptr++ = val & 0xff; + *ptr = (val >> 8) & 0xff; + setVideodirty_total(getVideodirty_total() + 2); +} + +/* +=========================== cga_only_b_fill ============================== +PURPOSE: Byte fill function. Fills the given address range with the + value and increments dirty_flag. +INPUT: Address range (in terms of M) and value to put there. +OUTPUT: None. +========================================================================== +*/ +LOCAL void cga_only_b_fill IFN3(UTINY *, laddr, UTINY *, haddr, ULONG, val ) +{ + host_addr ptr; + IS32 len; + ULONG offs; + + offs = (ULONG) (laddr - gvi_pc_low_regen); + ptr = get_screen_ptr(offs); + for (len = (haddr - laddr); len > 0; len--) + *ptr++ = val; +} + +/* +=========================== cga_only_w_fill ============================== +PURPOSE: Word fill function. Fills the given address range with the + value and increments dirty_flag. +INPUT: Address range (in terms of M) and value to put there. +OUTPUT: None. +========================================================================== +*/ +LOCAL void cga_only_w_fill IFN3(UTINY *, laddr, UTINY *, haddr, ULONG, val ) +{ + host_addr ptr; + IS32 len; + IU8 lo; + IU8 hi; + ULONG offs; + + lo = val & 0xff; + hi = (val >> 8) & 0xff; + offs = (ULONG) (laddr - gvi_pc_low_regen); + ptr = get_screen_ptr(offs); + for (len = (haddr - laddr) >> 1; len > 0; len--) + { + *ptr++ = lo; + *ptr++ = hi; + } +} + +LOCAL void cga_only_b_move IFN4(UTINY *, laddr, UTINY *, haddr, UTINY *, src, + UTINY, src_type) +{ + host_addr src_ptr; + host_addr dst_ptr; + IS32 len; + ULONG offs; + BOOL move_bwds = getDF(); + + offs = (ULONG) (laddr - gvi_pc_low_regen); + dst_ptr = get_screen_ptr(offs); + len = haddr - laddr; + if ((src_type == HOST_SRC) || (src < (UTINY *)gvi_pc_low_regen) || + ((UTINY *)gvi_pc_high_regen < src)) + { + /* Ram source */ + if (src_type == INTEL_SRC) + src_ptr = get_byte_addr(src); + else + src_ptr = src; + + /* Ram to video move - video is always forwards, ram + ** depends on BACK_M. + */ + if (move_bwds) + { + dst_ptr += len; +#ifdef BACK_M + src_ptr -= len; + for ( ; len > 0; len--) + *(--dst_ptr) = *(++src_ptr); +#else + src_ptr += len; + for ( ; len > 0; len--) + *(--dst_ptr) = *(--src_ptr); +#endif /* BACK_M */ + } + else + { +#ifdef BACK_M + for ( ; len > 0; len--) + *dst_ptr++ = *src_ptr--; +#else + memcpy(dst_ptr, src_ptr, len); +#endif /* BACK_M */ + } + } + else + { + /* Video source */ + offs = (ULONG) (src - gvi_pc_low_regen); + src_ptr = get_screen_ptr(offs); + + /* Video to video move - both sets of memory are always + ** forwards. + */ + if (move_bwds) + { + dst_ptr += len; + src_ptr += len; + for ( ; len > 0; len--) + *(--dst_ptr) = *(--src_ptr); + } + else + memcpy(dst_ptr, src_ptr, len); + } +} + +LOCAL MEM_HANDLERS cga_only_handlers = +{ + cga_only_b_write, + cga_only_w_write, + cga_only_b_fill, + cga_only_w_fill, + cga_only_b_move, + cga_only_simple_handler /* word move - not used? */ +}; + +#endif /* not EGG or A3CPU or A2CPU or C_VID or A_VID */ + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_INIT.seg" +#endif + +void cga_init() +{ +IMPORT void Glue_set_vid_rd_ptrs IPT1(READ_POINTERS *, handler ); +IMPORT void Glue_set_vid_wrt_ptrs IPT1(WRT_POINTERS *, handler ); + +io_addr i; + +#ifdef HUNTER +for (i = 0; i < MC6845_REGS; i++) + MC6845[i] = 0; +#endif + + +/* + * Set up the IO chip select logic for this adaptor + */ + +io_define_inb(CGA_ADAPTOR, cga_inb); +io_define_outb(CGA_ADAPTOR, cga_outb); + +for(i = CGA_PORT_START; i <= CGA_PORT_END; i++) + io_connect_port(i, CGA_ADAPTOR, IO_READ_WRITE); + +/* + * Initialise the adapter, assume Alpha numeric 80x25 as start up state + * with active page of zero & default cursor + */ + + gvi_pc_low_regen = CGA_REGEN_START; + gvi_pc_high_regen = CGA_REGEN_END; + set_cursor_start(8-CGA_CURS_HEIGHT); + set_cursor_height(CGA_CURS_HEIGHT); + set_cga_color_select(FALSE); /* B/W at switch-on */ + set_cga_colormask(0); /* Will be set by BIOS */ + +#ifndef GISP_CPU +/* GISP CPU physically cannot perform read and/or write checks */ + +#ifdef JOKER + + /* gmi_define_mem(SAS_VIDEO, &Glue_writes); */ + Glue_set_vid_wrt_ptrs(&simple_writes); + Glue_set_vid_rd_ptrs(&simple_reads); + +#else /* not JOKER */ + + +#ifdef A3CPU +#ifdef C_VID + Cpu_set_vid_wrt_ptrs( &Glue_writes ); + Cpu_set_vid_rd_ptrs( &Glue_reads ); + Glue_set_vid_wrt_ptrs( &simple_writes ); + Glue_set_vid_rd_ptrs( &simple_reads ); +#else + Cpu_set_vid_wrt_ptrs( &simple_writes ); + Cpu_set_vid_rd_ptrs( &simple_reads ); +#endif /* C_VID */ +#else /* not A3CPU */ +#ifdef A2CPU + gmi_define_mem(SAS_VIDEO, &vid_handlers); + read_pointers = dummy_reads; +#else +#if !defined(EGG) && !defined(C_VID) && !defined(A_VID) + gmi_define_mem(SAS_VIDEO, &cga_only_handlers); +#else + gmi_define_mem(SAS_VIDEO, &Glue_writes); + read_pointers = Glue_reads; + Glue_set_vid_wrt_ptrs( &simple_writes ); + Glue_set_vid_rd_ptrs( &simple_reads ); +#endif /* not EGG or C_VID or A_VID */ +#endif /* A2CPU */ +#endif /* A3CPU */ + +#endif /* JOKER */ +#endif /* GISP_CPU */ + +#ifdef CPU_40_STYLE + setVideochain(3); + SetWritePointers(); + SetReadPointers(3); +#endif /* CPU_40_STYLE */ + + sas_connect_memory(gvi_pc_low_regen,gvi_pc_high_regen,(half_word)SAS_VIDEO); + + current_mode = -1; /* Only used by outb */ + + set_char_height(8); + set_pc_pix_height(1); + set_host_pix_height(2); + set_word_addressing(TRUE); + set_screen_height(199); + set_screen_limit(0x4000); + set_horiz_total(80); /* calculate screen params from this val, and prev 2 */ + set_pix_width(1); + set_pix_char_width(8); + + set_cga_mode(TEXT); + set_cursor_height(CGA_CURS_HEIGHT); + set_cursor_start(8-CGA_CURS_HEIGHT); + set_screen_start(0); + + check_malloc(cga_screen_buf, CGA_REGEN_LENGTH, IU8); + set_screen_ptr(cga_screen_buf); + setVideoscreen_ptr(get_screen_ptr(0)); + + sas_fillsw(CGA_REGEN_START, (7 << 8)| ' ', CGA_REGEN_LENGTH >> 1); + /* Fill with blanks */ + + bios_ch2_byte_wrt_fn = simple_bios_byte_wrt; + bios_ch2_word_wrt_fn = simple_bios_word_wrt; +} + +void cga_term IFN0() +{ + io_addr i; + + /* + * Disconnect the IO chip select logic for this adapter + */ + + for(i = CGA_PORT_START; i <= CGA_PORT_END; i++) + io_disconnect_port(i, CGA_ADAPTOR); + /* + * Disconnect RAM from the adaptor + */ + sas_disconnect_memory(gvi_pc_low_regen,gvi_pc_high_regen); + + if (cga_screen_buf != 0) + { + host_free(cga_screen_buf); + cga_screen_buf = 0; + } +} + + +#if !defined(EGG) && !defined(C_VID) && !defined(A_VID) + +GLOBAL CGA_ONLY_GLOBS *VGLOBS = NULL; +LOCAL CGA_ONLY_GLOBS CgaOnlyGlobs; +/*( +============================ setup_vga_globals ============================= +PURPOSE: This function is provided for CGA-only builds to set up a + dummy VGLOBS structure which avoids the need to ifdef all + references to VGLOBS->dirty_flag and VGLOBS->screen_ptr. +INPUT: None. +OUTPUT: None. +============================================================================ +)*/ +GLOBAL void setup_vga_globals IFN0() +{ +#ifndef CPU_40_STYLE /* Evid interface */ + VGLOBS = &CgaOnlyGlobs; +#endif +} +#endif /* not EGG or C_VID or A_VID */ +#endif /* !NTVDM | (NTVDM & !X86GFX) */ diff --git a/private/mvdm/softpc.new/base/video/ega_dmmy.c b/private/mvdm/softpc.new/base/video/ega_dmmy.c new file mode 100644 index 000000000..30c761618 --- /dev/null +++ b/private/mvdm/softpc.new/base/video/ega_dmmy.c @@ -0,0 +1,47 @@ +#include "insignia.h" +#include "host_def.h" + +#if !defined(NTVDM) || (defined(NTVDM) && !defined(X86GFX) ) + +/* + * SccsID = "@(#)ega_dummy.c 1.6 8/25/93 Copyright Insignia Solutions Ltd." + */ + + +#ifdef EGG + +/* Dummy routines for EGA */ + +#include "xt.h" +#include "sas.h" +#include "ios.h" +#include "gmi.h" +#include "gvi.h" +#include "debug.h" +#include "egacpu.h" +#include "egaports.h" +#include "gfx_upd.h" +#include "egagraph.h" + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_EGA.seg" +#endif + +/* dummy stuff to keep linker happy */ +#define def_dummy(type,name,res) \ +type name() { note_entrance0("name");res; } + +def_dummy(int,get_ega_switch_setting,return 0) + + +/*-----------dummy write handlers -------------------------*/ + +/*-----------end of dummy stuff ---------------------------*/ +#endif /* EGG */ + +#endif /* !NTVDM | (NTVDM & !X86GFX) */ diff --git a/private/mvdm/softpc.new/base/video/ega_mode.c b/private/mvdm/softpc.new/base/video/ega_mode.c new file mode 100644 index 000000000..e2be88bdc --- /dev/null +++ b/private/mvdm/softpc.new/base/video/ega_mode.c @@ -0,0 +1,798 @@ +#include "insignia.h" +#include "host_def.h" +/* INSIGNIA (SUB)MODULE SPECIFICATION + ----------------------------- + + + THIS PROGRAM SOURCE FILE IS SUPPLIED IN CONFIDENCE TO THE + CUSTOMER, THE CONTENTS OR DETAILS OF ITS OPERATION MUST + NOT BE DISCLOSED TO ANY OTHER PARTIES WITHOUT THE EXPRESS + AUTHORISATION FROM THE DIRECTORS OF INSIGNIA SOLUTIONS LTD. + +DESIGNER : S.Frost + +REVISION HISTORY : +First version : 12 Aug 1988, J.Roper + +SOURCE FILE NAME : ega_mode.c + +PURPOSE : To decide which mode the EGA is in according to variables set in ega_ports.c and + to choose the appropriate update and paint routines accordingly. + +SccsID[]="@(#)ega_mode.c 1.26 06/01/95 Copyright Insignia Solutions Ltd."; + + +[1.INTERMODULE INTERFACE SPECIFICATION] + +[1.0 INCLUDE FILE NEEDED TO ACCESS THIS INTERFACE FROM OTHER SUBMODULES] + + INCLUDE FILE : ega_mode.gi + +[1.1 INTERMODULE EXPORTS] + + PROCEDURES() : choose_ega_display_mode + + DATA : uses EGA_GRAPH.display_state which is set in ega_ports.c, to + determine what memory organisation the display side is in, and + hence what sort of update and paint routines to use. + +------------------------------------------------------------------------- +[1.2 DATATYPES FOR [1.1] (if not basic C types)] + + STRUCTURES/TYPEDEFS/ENUMS: + +uses enum DISPLAY_STATE which is declared in ega_graph.pi. + +uses EGA_GRAPH structure for global variables set by the ports and + used by the display. + +------------------------------------------------------------------------- +[1.3 INTERMODULE IMPORTS] + (not o/s objects or standard libs) + + PROCEDURES() : vote_ega_mode() + host_set_paint_routine(DISPLAY_MODE) + + DATA : EGA_GRAPH struct. + +------------------------------------------------------------------------- + +[1.4 DESCRIPTION OF INTERMODULE INTERFACE] + +[1.4.1 IMPORTED OBJECTS] + +[1.4.2 EXPORTED OBJECTS] + +========================================================================= +PROCEDURE : choose_ega_display_mode + +PURPOSE : To decide which memory organisation is being used by the + ega, and to pick the best update and paint routines accordingly. + The paint routines are host specific, and so the memory organisation + is indicated by an enum (called DISPLAY_MODE), describing each sort + of memory organisation. + +PARAMETERS : none + +GLOBALS : uses EGA_GRAPH struct, specially display_state to decide which mode is being used. + +========================================================================= + + +/*======================================================================= +[3.INTERMODULE INTERFACE DECLARATIONS] +========================================================================= + +[3.1 INTERMODULE IMPORTS] */ + + +#ifndef REAL_VGA +#ifdef EGG + +/* [3.1.1 #INCLUDES] */ + +#include "xt.h" +#include "error.h" +#include "config.h" +#include "gvi.h" +#include "egacpu.h" +#include "debug.h" +#include "gmi.h" +#include "gfx_upd.h" +#include "egagraph.h" +#include "vgaports.h" +#include "egaports.h" +#include "host_gfx.h" + +#ifdef GORE +#include "gore.h" +#endif /* GORE */ + +/* [3.1.2 DECLARATIONS] */ + +/* [3.2 INTERMODULE EXPORTS] */ + +#include "egamode.h" + +boolean (*choose_display_mode)(); + +/* +5.MODULE INTERNALS : (not visible externally, global internally)] + +[5.1 LOCAL DECLARATIONS] */ + +/* [5.1.1 #DEFINES] */ +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_EGA.seg" +#endif + +/* [5.1.2 TYPEDEF, STRUCTURE, ENUM DECLARATIONS] */ + +/* [5.1.3 PROCEDURE() DECLARATIONS] */ + +/* +========================================================================= +PROCEDURE : set_up_screen_ptr() + +PURPOSE : Decide which plane the information must come from for displaying + +PARAMETERS : none + +GLOBALS : uses EGA_GRAPH struct, plane_mask to decide which planes are enabled + +========================================================================= +*/ + +LOCAL VOID +set_up_screen_ptr() +{ + if( get_memory_chained() ) + { + if( plane01_enabled() ) + set_screen_ptr(EGA_plane01); + else + if( plane23_enabled() ) + set_screen_ptr(EGA_plane23); + else + assert0(NO,"No planes enabled for chain mode"); + } + else + set_screen_ptr(EGA_planes); +} + +/* ----------------------------------------------------------------------- +[5.2 LOCAL DEFINITIONS] + + [5.2.1 INTERNAL DATA DEFINITIONS */ + +GLOBAL DISPLAY_MODE choose_mode[] = { + + /* unchained, no cga mem bank, no shift reg */ + + EGA_HI, /* 350 height, no pixel doubling */ + EGA_HI_WR, /* 350 height, no pixel doubling */ + EGA_HI_SP, /* 350 height, no pixel doubling */ + EGA_HI_SP_WR, /* 350 height, no pixel doubling */ + + EGA_MED, /* 200 height, no pixel doubling */ + EGA_MED_WR, /* 200 height, no pixel doubling */ + EGA_MED_SP, /* 200 height, no pixel doubling */ + EGA_MED_SP_WR, /* 200 height, no pixel doubling */ + + EGA_HI_FUN, /* 350 height, pixel doubling */ + EGA_HI_FUN, /* 350 height, pixel doubling */ + EGA_HI_FUN, /* 350 height, pixel doubling */ + EGA_HI_FUN, /* 350 height, pixel doubling */ + + EGA_LO, /* 200 height, pixel doubling */ + EGA_LO_WR, /* 200 height, pixel doubling */ + EGA_LO_SP, /* 200 height, pixel doubling */ + EGA_LO_SP_WR, /* 200 height, pixel doubling */ + + /* unchained, no cga_mem_bank, shift reg */ + + EGA_HI_FUN, + EGA_HI_FUN, + EGA_HI_FUN, + EGA_HI_FUN, + + EGA_MED_FUN, + EGA_MED_FUN, + EGA_MED_FUN, + EGA_MED_FUN, + + EGA_HI_FUN, + EGA_HI_FUN, + EGA_HI_FUN, + EGA_HI_FUN, + + EGA_LO_FUN, + EGA_LO_FUN, + EGA_LO_FUN, + EGA_LO_FUN, + + /* unchained, cga_mem_bank, no shift reg */ + + CGA_HI_FUN, + CGA_HI_FUN, + CGA_HI_FUN, + CGA_HI_FUN, + + CGA_HI, /* 200 height, no pixel doubling, the real bios mode */ + CGA_HI_FUN, /* 200 height, no pixel doubling, the real bios mode, wrap */ + CGA_HI_FUN, /* 200 height, no pixel doubling, the real bios mode, split screen */ + CGA_HI_FUN, /* 200 height, no pixel doubling, the real bios mode, split screen, wrap */ + + CGA_HI_FUN, + CGA_HI_FUN, + CGA_HI_FUN, + CGA_HI_FUN, + + CGA_HI_FUN, + CGA_HI_FUN, + CGA_HI_FUN, + CGA_HI_FUN, + + /* unchained, cga_mem_bank, shift reg */ + + CGA_HI_FUN, + CGA_HI_FUN, + CGA_HI_FUN, + CGA_HI_FUN, + + CGA_HI_FUN, + CGA_HI_FUN, + CGA_HI_FUN, + CGA_HI_FUN, + + CGA_HI_FUN, + CGA_HI_FUN, + CGA_HI_FUN, + CGA_HI_FUN, + + CGA_HI_FUN, + CGA_HI_FUN, + CGA_HI_FUN, + CGA_HI_FUN, + + /* chained, no cga_mem_bank, no shift reg */ + + EGA_TEXT_80, /* 350 scan lines */ + EGA_TEXT_80_WR, /* 350 scan lines */ + EGA_TEXT_80_SP, /* 350 scan lines */ + EGA_TEXT_80_SP_WR, /* 350 scan lines */ + + CGA_TEXT_80, /* 200 scan lines */ + CGA_TEXT_80_WR, /* 200 scan lines */ + CGA_TEXT_80_SP, /* 200 scan lines */ + CGA_TEXT_80_SP_WR, /* 200 scan lines */ + + EGA_TEXT_40, /* 350 scan lines */ + EGA_TEXT_40_WR, /* 350 scan lines */ + EGA_TEXT_40_SP, /* 350 scan lines */ + EGA_TEXT_40_SP_WR, /* 350 scan lines */ + + CGA_TEXT_40, /* 200 scan lines */ + CGA_TEXT_40_WR, /* 200 scan lines */ + CGA_TEXT_40_SP, /* 200 scan lines */ + CGA_TEXT_40_SP_WR, /* 200 scan lines */ + + /* chained, no cga_mem_bank, shift reg */ + + TEXT_80_FUN, + TEXT_80_FUN, + TEXT_80_FUN, + TEXT_80_FUN, + + TEXT_80_FUN, + TEXT_80_FUN, + TEXT_80_FUN, + TEXT_80_FUN, + + TEXT_40_FUN, + TEXT_40_FUN, + TEXT_40_FUN, + TEXT_40_FUN, + + TEXT_40_FUN, + TEXT_40_FUN, + TEXT_40_FUN, + TEXT_40_FUN, + + /* chained, cga mem bank, no shift reg */ + + CGA_MED_FUN, + CGA_MED_FUN, + CGA_MED_FUN, + CGA_MED_FUN, + + CGA_MED_FUN, + CGA_MED_FUN, + CGA_MED_FUN, + CGA_MED_FUN, + + CGA_MED_FUN, + CGA_MED_FUN, + CGA_MED_FUN, + CGA_MED_FUN, + + CGA_MED_FUN, + CGA_MED_FUN, + CGA_MED_FUN, + CGA_MED_FUN, + + /* chained, cga mem banks shift reg */ + + CGA_MED_FUN, /* not 200 scan lines and not double pix width */ + CGA_MED_FUN, /* not 200 scan lines and not double pix width, wrap */ + CGA_MED_FUN, /* not 200 scan lines and not double pix width, split */ + CGA_MED_FUN, /* not 200 scan lines and not double pix width, wrap split */ + + CGA_MED_FUN, /* not double pix width */ + CGA_MED_FUN, /* not double pix width */ + CGA_MED_FUN, /* not double pix width */ + CGA_MED_FUN, /* not double pix width */ + + CGA_MED_FUN, /* not 200 scan lines */ + CGA_MED_FUN, /* not 200 scan lines */ + CGA_MED_FUN, /* not 200 scan lines */ + CGA_MED_FUN, /* not 200 scan lines */ + + CGA_MED, /* proper bios mode */ + CGA_MED_FUN, /* proper bios mode, wrap */ + CGA_MED_FUN, /* proper bios mode, split */ + CGA_MED_FUN, /* proper bios mode, split, wrap */ + + + /* text mode(!), unchained, no cga mem bank, no shift reg + ** we think the textness overrides the unchainedness + */ + + TEXT_80_FUN, + TEXT_80_FUN, + TEXT_80_FUN, + TEXT_80_FUN, + + TEXT_80_FUN, + TEXT_80_FUN, + TEXT_80_FUN, + TEXT_80_FUN, + + TEXT_40_FUN, + TEXT_40_FUN, + TEXT_40_FUN, + TEXT_40_FUN, + + TEXT_40_FUN, + TEXT_40_FUN, + TEXT_40_FUN, + TEXT_40_FUN, + + /* unchained, no cga_mem_bank, shift reg */ + + EGA_HI_FUN, + EGA_HI_FUN, + EGA_HI_FUN, + EGA_HI_FUN, + + EGA_MED_FUN, + EGA_MED_FUN, + EGA_MED_FUN, + EGA_MED_FUN, + + EGA_HI_FUN, + EGA_HI_FUN, + EGA_HI_FUN, + EGA_HI_FUN, + + EGA_LO_FUN, + EGA_LO_FUN, + EGA_LO_FUN, + EGA_LO_FUN, + + /* unchained, cga_mem_bank, no shift reg */ + + CGA_HI_FUN, + CGA_HI_FUN, + CGA_HI_FUN, + CGA_HI_FUN, + + CGA_HI, /* 200 height, no pixel doubling, the real bios mode */ + CGA_HI_FUN, /* 200 height, no pixel doubling, the real bios mode, wrap */ + CGA_HI_FUN, /* 200 height, no pixel doubling, the real bios mode, split screen */ + CGA_HI_FUN, /* 200 height, no pixel doubling, the real bios mode, split screen, wrap */ + + CGA_HI_FUN, + CGA_HI_FUN, + CGA_HI_FUN, + CGA_HI_FUN, + + CGA_HI_FUN, + CGA_HI_FUN, + CGA_HI_FUN, + CGA_HI_FUN, + + /* unchained, cga_mem_bank, shift reg */ + + CGA_HI_FUN, + CGA_HI_FUN, + CGA_HI_FUN, + CGA_HI_FUN, + + CGA_HI_FUN, + CGA_HI_FUN, + CGA_HI_FUN, + CGA_HI_FUN, + + CGA_HI_FUN, + CGA_HI_FUN, + CGA_HI_FUN, + CGA_HI_FUN, + + CGA_HI_FUN, + CGA_HI_FUN, + CGA_HI_FUN, + CGA_HI_FUN, + + /* chained, no cga_mem_bank, no shift reg */ + + EGA_TEXT_80, /* 350 scan lines */ + EGA_TEXT_80_WR, /* 350 scan lines */ + EGA_TEXT_80_SP, /* 350 scan lines */ + EGA_TEXT_80_SP_WR, /* 350 scan lines */ + + CGA_TEXT_80, /* 200 scan lines */ + CGA_TEXT_80_WR, /* 200 scan lines */ + CGA_TEXT_80_SP, /* 200 scan lines */ + CGA_TEXT_80_SP_WR, /* 200 scan lines */ + + EGA_TEXT_40, /* 350 scan lines */ + EGA_TEXT_40_WR, /* 350 scan lines */ + EGA_TEXT_40_SP, /* 350 scan lines */ + EGA_TEXT_40_SP_WR, /* 350 scan lines */ + + CGA_TEXT_40, /* 200 scan lines */ + CGA_TEXT_40_WR, /* 200 scan lines */ + CGA_TEXT_40_SP, /* 200 scan lines */ + CGA_TEXT_40_SP_WR, /* 200 scan lines */ + + /* chained, no cga_mem_bank, shift reg */ + + TEXT_80_FUN, + TEXT_80_FUN, + TEXT_80_FUN, + TEXT_80_FUN, + + TEXT_80_FUN, + TEXT_80_FUN, + TEXT_80_FUN, + TEXT_80_FUN, + + TEXT_40_FUN, + TEXT_40_FUN, + TEXT_40_FUN, + TEXT_40_FUN, + + TEXT_40_FUN, + TEXT_40_FUN, + TEXT_40_FUN, + TEXT_40_FUN, + + /* chained, cga mem bank, no shift reg */ + + CGA_MED_FUN, + CGA_MED_FUN, + CGA_MED_FUN, + CGA_MED_FUN, + + CGA_MED_FUN, + CGA_MED_FUN, + CGA_MED_FUN, + CGA_MED_FUN, + + CGA_MED_FUN, + CGA_MED_FUN, + CGA_MED_FUN, + CGA_MED_FUN, + + CGA_MED_FUN, + CGA_MED_FUN, + CGA_MED_FUN, + CGA_MED_FUN, + + /* chained, cga mem banks shift reg */ + + CGA_MED_FUN, /* not 200 scan lines and not double pix width */ + CGA_MED_FUN, /* not 200 scan lines and not double pix width, wrap */ + CGA_MED_FUN, /* not 200 scan lines and not double pix width, split */ + CGA_MED_FUN, /* not 200 scan lines and not double pix width, wrap split */ + + CGA_MED_FUN, /* not double pix width */ + CGA_MED_FUN, /* not double pix width */ + CGA_MED_FUN, /* not double pix width */ + CGA_MED_FUN, /* not double pix width */ + + CGA_MED_FUN, /* not 200 scan lines */ + CGA_MED_FUN, /* not 200 scan lines */ + CGA_MED_FUN, /* not 200 scan lines */ + CGA_MED_FUN, /* not 200 scan lines */ + + CGA_MED, /* proper bios mode */ + CGA_MED_FUN, /* proper bios mode, wrap */ + CGA_MED_FUN, /* proper bios mode, split */ + CGA_MED_FUN, /* proper bios mode, split, wrap */ + +}; + +/* [5.2.2 INTERNAL PROCEDURE DEFINITIONS] */ + +LOCAL void ega_dummy_calc IFN0() +{ +} + +static void set_update_routine(mode) +DISPLAY_MODE mode; +{ +#ifndef NTVDM + static int last_height = 200; + + if (last_height != get_screen_height()) { + last_height = get_screen_height(); + } + note_entrance1("set_update_routine called for mode %s", get_mode_string(mode) ); + switch (mode) { + case EGA_TEXT_40_SP_WR: + case EGA_TEXT_80_SP_WR: + case CGA_TEXT_40_SP_WR: + case CGA_TEXT_80_SP_WR: + assert0( is_it_text(), "In text memory mode, but not in alpha mode !!" ); + set_gfx_update_routines( ega_wrap_split_text_update, SIMPLE_MARKING, NO_SCROLL ); + host_update_fonts(); + break; + case EGA_TEXT_40_SP: + case EGA_TEXT_80_SP: + case CGA_TEXT_40_SP: + case CGA_TEXT_80_SP: + assert0( is_it_text(), "In text memory mode, but not in alpha mode !!" ); + set_gfx_update_routines( ega_split_text_update, SIMPLE_MARKING, NO_SCROLL ); + host_update_fonts(); + break; + case EGA_TEXT_40_WR: + case EGA_TEXT_80_WR: + assert0( is_it_text(), "In text memory mode, but not in alpha mode !!" ); + assert1( get_screen_height() == 350, "screen height %d for text mode", get_screen_height() ); + set_gfx_update_routines( ega_wrap_text_update, SIMPLE_MARKING, NO_SCROLL ); + host_update_fonts(); + break; + case EGA_TEXT_40: + case EGA_TEXT_80: + assert0( is_it_text(), "In text memory mode, but not in alpha mode !!" ); + assert1( get_screen_height() == 350, "screen height %d for text mode", get_screen_height() ); + set_gfx_update_routines( ega_text_update, SIMPLE_MARKING, TEXT_SCROLL ); + host_update_fonts(); + break; + case CGA_TEXT_40_WR: + case CGA_TEXT_80_WR: + assert0( is_it_text(), "In text memory mode, but not in alpha mode !!" ); + assert1( get_screen_height() == 200, "screen height %d for text mode", get_screen_height() ); + set_gfx_update_routines( ega_wrap_text_update, SIMPLE_MARKING, NO_SCROLL ); + host_update_fonts(); + break; + case CGA_TEXT_40: + case CGA_TEXT_80: + assert0( is_it_text(), "In text memory mode, but not in alpha mode !!" ); + assert1( get_screen_height() == 200, "screen height %d for text mode", get_screen_height() ); + set_gfx_update_routines( text_update, SIMPLE_MARKING, CGA_TEXT_SCROLL ); + host_update_fonts(); + break; + case CGA_MED: + assert0( !is_it_text(), "In graphics memory mode, but not in graphics mode !!" ); + set_gfx_update_routines( cga_med_graph_update, CGA_GRAPHICS_MARKING, CGA_GRAPH_SCROLL ); + break; + case CGA_HI: + assert0( !is_it_text(), "In graphics memory mode, but not in graphics mode !!" ); + set_gfx_update_routines( cga_hi_graph_update, CGA_GRAPHICS_MARKING, CGA_GRAPH_SCROLL ); + break; + case EGA_HI_WR: + case EGA_MED_WR: + case EGA_LO_WR: + assert0( !is_it_text(), "In graphics memory mode, but not in graphics mode !!" ); + set_gfx_update_routines( ega_wrap_graph_update, EGA_GRAPHICS_MARKING, NO_SCROLL ); + break; + case EGA_HI: + case EGA_MED: + case EGA_LO: + assert0( !is_it_text(), "In graphics memory mode, but not in graphics mode !!" ); +#ifdef GORE + set_gfx_update_routines( process_object_list, EGA_GRAPHICS_MARKING, EGA_GRAPH_SCROLL ); +#else + set_gfx_update_routines( ega_graph_update, EGA_GRAPHICS_MARKING, EGA_GRAPH_SCROLL ); +#endif /* GORE */ + break; + case EGA_HI_SP_WR: + case EGA_MED_SP_WR: + case EGA_LO_SP_WR: + assert0( !is_it_text(), "In graphics memory mode, but not in graphics mode !!" ); + set_gfx_update_routines( ega_wrap_split_graph_update, EGA_GRAPHICS_MARKING, NO_SCROLL ); + break; + case EGA_HI_SP: + case EGA_MED_SP: + case EGA_LO_SP: + assert0( !is_it_text(), "In graphics memory mode, but not in graphics mode !!" ); + set_gfx_update_routines( ega_split_graph_update, EGA_GRAPHICS_MARKING, NO_SCROLL ); + break; + case TEXT_40_FUN: + case TEXT_80_FUN: + assert1(NO,"Funny memory organisation selected %s", get_mode_string(mode) ); + do_display_trace("dumping EGA_GRAPH struct ...", dump_EGA_GRAPH()); + set_gfx_update_routines( text_update, SIMPLE_MARKING, NO_SCROLL ); + host_update_fonts(); + break; + case CGA_HI_FUN: + assert1(NO,"Funny memory organisation selected %s", get_mode_string(mode) ); + do_display_trace("dumping EGA_GRAPH struct ...", dump_EGA_GRAPH()); + set_gfx_update_routines( cga_hi_graph_update, CGA_GRAPHICS_MARKING, NO_SCROLL ); + break; + case CGA_MED_FUN: + assert1(NO,"Funny memory organisation selected %s", get_mode_string(mode) ); + do_display_trace("dumping EGA_GRAPH struct ...", dump_EGA_GRAPH()); + set_gfx_update_routines( cga_med_graph_update, CGA_GRAPHICS_MARKING, NO_SCROLL ); + break; + case EGA_HI_FUN: + case EGA_MED_FUN: + case EGA_LO_FUN: + assert1(NO,"Funny memory organisation selected %s", get_mode_string(mode) ); + do_display_trace("dumping EGA_GRAPH struct ...", dump_EGA_GRAPH()); +#ifdef GORE + set_gfx_update_routines( process_object_list, EGA_GRAPHICS_MARKING, NO_SCROLL ); +#else + set_gfx_update_routines( ega_graph_update, EGA_GRAPHICS_MARKING, NO_SCROLL ); +#endif /* GORE */ + break; + case DUMMY_FUN: + assert0(NO,"Using the dummy mode!!"); + set_gfx_update_routines( ega_dummy_calc, SIMPLE_MARKING, NO_SCROLL ); + break; + default: + assert1(NO,"Bad display mode %d", (int) mode ); + break; + } +#endif /* NTVDM */ +} + + +/* +7.INTERMODULE INTERFACE IMPLEMENTATION : + +[7.1 INTERMODULE DATA DEFINITIONS] */ + +/* +[7.2 INTERMODULE PROCEDURE DEFINITIONS] */ + + + +void ega_mode_init() +{ + /* + ** This bit moved here from ega_video_init(), since it's all about + ** the emulation of the video hardware, not the video BIOS. + ** WJG 22/8/90 + ** Set the host graphics paint function to match the base update + ** function and the PC graphics mode. + ** Normally the host gfx func is not set until the next timer tick + ** as the mode change can involve quite a lot of Intel instructions. + ** However when booting SoftPC the EGA is going into a known mode. + ** This was added to fix a convoluted Fatal bug. + ** 1) Enter a gfx mode in EGA. + ** 2) Reset SoftPC. + ** 3) Bring up the disk panel as soon as you can. + ** 4) SoftPC crashes. + ** Cause: Because SoftPC was in gfx mode the paint function remains + ** a gfx mode paint function even though SoftPC thinks it is now in + ** text mode. When the panel is displayed a full screen update is + ** forced which then gets too confused and dies. + */ + set_update_routine(DUMMY_FUN); +} + + +boolean choose_ega_display_mode() +{ + DISPLAY_MODE mode; + int old_offset; + + note_entrance0("choose ega display mode"); + + /* + * offset_per_line depends upon whether chained addressing is being used. This is + * because we interleave the planes, rather than anything the EGA does. + */ + + old_offset = get_offset_per_line(); + if ( get_memory_chained() ) { + set_offset_per_line_recal(get_actual_offset_per_line() << 1); + } + else { + set_offset_per_line_recal(get_actual_offset_per_line()); + } + + /* + * If the offset has actually changed, repaint the whole screen + */ + + if ( old_offset != get_offset_per_line() ) + screen_refresh_required(); + + /* + * It is possible that the display hardware will wrap the plane addressing. This occurs + * when the screen_start plus the screen_length are longer than the plane length. + * When in chained mode there is two planes length before wrapping occurs. + */ + + if ( get_memory_chained() ) { + set_screen_can_wrap( (get_screen_start()<<1) + get_screen_length() > 2*EGA_PLANE_DISP_SIZE ); + } + else { + set_screen_can_wrap( get_screen_start() + get_screen_length() > EGA_PLANE_DISP_SIZE ); + } + + /* + * split screen comes into operation when screen_split is less than screen height + * split screen used is used as part of munge_index. + */ + + set_split_screen_used( get_screen_split() < get_screen_height() ); + + /* + * For the purposes of choosing a mode set up boolean values for chars per line (to help + * select the correct text mode), and screen height (to select EGA resolution). + */ + + set_200_scan_lines( (get_screen_height()/get_pc_pix_height()) == 200 ); + + /* + * Set up the appropriate update routine according to the memory organisation selected + * and return an indication of whether more than 1 plane can be used by the display. + * + * Note that in chained mode plane01 is considered to be one plane. Similarly for plane23 + * + * We have to be careful that a nasty program, such as EGA-PICS, hasn't set up a ridiculously big + * screen size for the CGA modes (presumably caused by us being unlucky when the timer tick goes off). + */ + if(is_it_cga() && get_screen_length() > 0x4000) + mode = DUMMY_FUN; + else + mode = choose_mode[get_munged_index()]; + + /* + * Now set up screen pointers appropriately. + */ + + set_up_screen_ptr(); + + set_update_routine(mode); + + /* + * set up the paint routine to correspond with the memory organisation and the update routine + * (this bit is host specific) + */ + + host_set_paint_routine(mode,get_screen_height()); + + /* + * The screen needs refreshing, because the update and paint routines have changed. + * Indicate to the update routines that the next time they are called, they must update + * the whole screen + */ + + screen_refresh_required(); + return TRUE; +} + +#endif /* EGG */ +#endif /* REAL_VGA */ diff --git a/private/mvdm/softpc.new/base/video/ega_prts.c b/private/mvdm/softpc.new/base/video/ega_prts.c new file mode 100644 index 000000000..b30fc8b5e --- /dev/null +++ b/private/mvdm/softpc.new/base/video/ega_prts.c @@ -0,0 +1,3459 @@ +#include "insignia.h" +#include "host_def.h" +/* INSIGNIA (SUB)MODULE SPECIFICATION + ----------------------------- + + + THIS PROGRAM SOURCE FILE IS SUPPLIED IN CONFIDENCE TO THE + CUSTOMER, THE CONTENTS OR DETAILS OF ITS OPERATION MUST + NOT BE DISCLOSED TO ANY OTHER PARTIES WITHOUT THE EXPRESS + AUTHORISATION FROM THE DIRECTORS OF INSIGNIA SOLUTIONS LTD. + +DOCUMENT : name and number + +RELATED DOCS : include all relevant references + +DESIGNER : + +REVISION HISTORY : +First version : 13 July 1988, J.Roper + +SUBMODULE NAME : ega + +SOURCE FILE NAME : ega_ports.c + +PURPOSE : emulation of EGA registers (ports). + Calls lower levels of the EGA emulation to do the real work. + +static char SccsID[]="@(#)ega_ports.c 1.54 07/18/94 Copyright Insignia Solutions Ltd."; + + +[1.INTERMODULE INTERFACE SPECIFICATION] + +[1.0 INCLUDE FILE NEEDED TO ACCESS THIS INTERFACE FROM OTHER SUBMODULES] + + INCLUDE FILE : ega_ports.gi + +[1.1 INTERMODULE EXPORTS] + + PROCEDURES() : + void ega_init() + void ega_term() + int ega_get_line_compare() (* hunter only *) + int ega_get_max_scan_lines() (* hunter only *) + +------------------------------------------------------------------------- +[1.2 DATATYPES FOR [1.1] (if not basic C types)] +------------------------------------------------------------------------- +[1.3 INTERMODULE IMPORTS] + (not o/s objects or standard libs) + + PROCEDURES() : + io_define_inb + io_define_outb + io_connect_port + io_disconnect_port + + DATA : give name, and source module name + +------------------------------------------------------------------------- + +[1.4 DESCRIPTION OF INTERMODULE INTERFACE] + +[1.4.1 IMPORTED OBJECTS] + +DATA OBJECTS : specify in following procedure descriptions + how these are accessed (read/modified) + +FILES ACCESSED : NONE + +DEVICES ACCESSED : NONE + +SIGNALS CAUGHT : NONE + +SIGNALS ISSUED : NONE + + +[1.4.2 EXPORTED OBJECTS] +========================================================================= +PROCEDURE : ega_init + +PURPOSE : initialize EGA. + +PARAMETERS : none + +GLOBALS : none + +DESCRIPTION : establish ega ports. + initialize ega code to sensible state. + +ERROR INDICATIONS : none. + +ERROR RECOVERY : none. +========================================================================= + +========================================================================= +PROCEDURE : ega_term + +PURPOSE : terminate EGA. + +PARAMETERS : none + +GLOBALS : none + +DESCRIPTION : remove ega ports. + free up allocated memory etc. + +ERROR INDICATIONS : none. + +ERROR RECOVERY : none. +========================================================================= + +========================================================================= +PROCEDURE : ega_seq_outb((io_addr) port, (half_word) value) + +PURPOSE : deal with bytes written to the sequencer chip's ports, and pass + appropriate info to ega sub-modules. + +PARAMETERS + port : port address written to. + value : the byte written to the port. + +GLOBALS : none + +DESCRIPTION : + +ERROR INDICATIONS : none. + +ERROR RECOVERY : none. +========================================================================= + +========================================================================= +PROCEDURE : ega_crtc_outb((io_addr) port, (half_word) value) + +PURPOSE : deal with bytes written to the sequencer chip's ports, and pass + appropriate info to ega sub-modules. + +PARAMETERS + port : port address written to. + value : the byte written to the port. + +GLOBALS : none + +DESCRIPTION : + +ERROR INDICATIONS : none. + +ERROR RECOVERY : none. +========================================================================= + +========================================================================= +PROCEDURE : ega_crtc_inb((io_addr) port, (half_word) *value) + +PURPOSE : deal with an attempt to read a byte from one of the crtc's register ports, + and gets info from appropriate ega sub-modules. + +PARAMETERS + port : port address written to. + value : pointer to memory byte where value read from port should go. + +GLOBALS : none + +DESCRIPTION : + +ERROR INDICATIONS : none. + +ERROR RECOVERY : none. +========================================================================= + +========================================================================= +PROCEDURE : ega_gc_outb((io_addr) port, (half_word) value) + +PURPOSE : deal with bytes written to the graphics controller chip's ports, + and pass appropriate info to ega sub-modules. + +PARAMETERS + port : port address written to. + value : the byte written to the port. + +GLOBALS : none + +DESCRIPTION : + +ERROR INDICATIONS : none. + +ERROR RECOVERY : none. +========================================================================= + +========================================================================= +PROCEDURE : ega_ac_outb((io_addr) port, (half_word) value) + +PURPOSE : deal with bytes written to the attribute controller chip's ports, and pass + appropriate info to ega sub-modules. + +PARAMETERS + port : port address written to. + value : the byte written to the port. + +GLOBALS : none + +DESCRIPTION : + +ERROR INDICATIONS : none. + +ERROR RECOVERY : none. +========================================================================= + +========================================================================= +PROCEDURE : ega_misc_outb((io_addr) port, (half_word) value) + +PURPOSE : deal with bytes written to the miscellaneous register's port, and pass + appropriate info to ega sub-modules. + +PARAMETERS + port : port address written to. + value : the byte written to the port. + +GLOBALS : none + +DESCRIPTION : + +ERROR INDICATIONS : none. + +ERROR RECOVERY : none. +========================================================================= + +========================================================================= +PROCEDURE : ega_feat_outb((io_addr) port, (half_word) value) + +PURPOSE : deal with bytes written to the Feature Control register's port, and pass + appropriate info to ega sub-modules. + +PARAMETERS + port : port address written to. + value : the byte written to the port. + +GLOBALS : none + +DESCRIPTION : + +ERROR INDICATIONS : none. + +ERROR RECOVERY : none. +========================================================================= + +========================================================================= +PROCEDURE : ega_ipstat0_inb((io_addr) port, (half_word) *value) + +PURPOSE : deal with an attempt to read a byte from the input status register 0 port, + and gets info from appropriate ega sub-modules. + +PARAMETERS + port : port address written to. + value : pointer to memory byte where value read from port should go. + +GLOBALS : none + +DESCRIPTION : + +ERROR INDICATIONS : none. + +ERROR RECOVERY : none. +========================================================================= + +========================================================================= +PROCEDURE : ega_ipstat1_inb((io_addr) port, (half_word) *value) + +PURPOSE : deal with an attempt to read a byte from the input status register 1 port, + and gets info from appropriate ega sub-modules. + +PARAMETERS + port : port address written to. + value : pointer to memory byte where value read from port should go. + +GLOBALS : none + +DESCRIPTION : + +ERROR INDICATIONS : none. + +ERROR RECOVERY : none. +========================================================================= + +========================================================================= +PROCEDURE : int ega_get_line_compare() + +PURPOSE : Hunter only - returns the line compare value + from the crtc registers structure + +PARAMETERS : none + +GLOBALS : none + +DESCRIPTION : Obtains the line compare value from bit 4 of the + overflow register (0x7) and the line compare + register (0x18). + +ERROR INDICATIONS : none. + +ERROR RECOVERY : none. +========================================================================= + +========================================================================= + +PROCEDURE : int ega_get_max_scan_lines() + +PURPOSE : Hunter only - returns the maximum scan lines value + from the crtc registers structure + +PARAMETERS : none + +GLOBALS : none + +DESCRIPTION : Obtains the max scan lines value from the max scan + lines register (0x9). + +ERROR INDICATIONS : none. + +ERROR RECOVERY : none. +========================================================================= + + +/*======================================================================= +[3.INTERMODULE INTERFACE DECLARATIONS] +========================================================================= + +[3.1 INTERMODULE IMPORTS] */ + +/* [3.1.1 #INCLUDES] */ + + +#ifndef REAL_VGA /* ega port handling moved to host for REAL_VGA */ +#ifdef EGG + +#include "xt.h" +#include CpuH +#include "debug.h" +#include "timer.h" +#include "sas.h" +#include "gmi.h" +#include "gvi.h" +#include "ios.h" +#include "ica.h" +#include "gfx_upd.h" +#include "egacpu.h" +#include "egagraph.h" +#include "egaread.h" +#include "egamode.h" +#include "error.h" +#include "config.h" + +#include "host_gfx.h" +#include "egaports.h" + +#ifdef GORE +#include "gore.h" +#endif /* GORE */ + +#include "ga_mark.h" +#include "ga_defs.h" + +/* [3.2 INTERMODULE EXPORTS] */ + + +/* [3.1.2 DECLARATIONS] */ + +IMPORT void ega_mode_init IPT0(); +IMPORT int get_ega_switch_setting IPT0(); +IMPORT void v7_get_banks IPT2(UTINY *, rd_bank, UTINY *, wrt_bank ); +#ifndef cursor_changed +IMPORT void cursor_changed IPT2(int, x, int, y); +#endif /* cursor_changed */ +IMPORT void update_shift_count IPT0(); + +/* +5.MODULE INTERNALS : (not visible externally, global internally)] + +[5.1 LOCAL DECLARATIONS] */ + +LOCAL void vote_ega_mode IPT0(); +LOCAL void ega_seq_outb_index IPT2(io_addr, port, half_word, value); +LOCAL void ega_crtc_outb IPT2(io_addr, port, half_word, value); +LOCAL void ega_crtc_inb IPT2(io_addr, port, half_word *, value); +LOCAL void ega_ac_outb IPT2(io_addr, port, half_word, value); +LOCAL void ega_misc_outb IPT2(io_addr, port, half_word, value); +LOCAL void ega_feat_outb IPT2(io_addr, port, half_word, value); +LOCAL void ega_ipstat0_inb IPT2(io_addr, port, half_word *, value); +LOCAL void ega_ipstat1_inb IPT2(io_addr, port, half_word *, value); + +/* [5.1.1 #DEFINES] */ +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_EGA.seg" +#endif + +GLOBAL VOID ega_gc_outw IPT2(io_addr, port, word, outval); + +/* + * EGA_PLANE_DISP_SIZE is already declared in egaports.h. However if V7VGA is + * defined using this definition will cause problems. See BCN 1486 for details. + */ +#define EGA_PLANE_SZ 0x10000 + +/* [5.1.2 TYPEDEF, STRUCTURE, ENUM DECLARATIONS] */ +#ifdef BIT_ORDER1 +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned hardware_reset : 1, /* NO */ + word_or_byte_mode : 1, /* YES */ + address_wrap : 1, /* NO */ + output_control : 1, /* YES - screen goes black */ + count_by_two : 1, /* NO */ + horizontal_retrace_select : 1, /* NO */ + select_row_scan_counter : 1, /* NO */ + compatibility_mode_support : 1; /* YES - CGA graphics banks */ + } as_bfld; +} MODE_CONTROL; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 3, + line_compare_bit_8 : 1, /* YES */ + start_vertical_blank_bit_8 : 1, /* NO */ + vertical_retrace_start_bit_8 : 1, /* NO */ + vertical_display_enab_end_bit_8 : 1, /* YES */ + vertical_total_bit_8 : 1; /* NO */ + } as_bfld; +} CRTC_OVERFLOW; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 3, + maximum_scan_line : 5; /* YES */ + } as_bfld; +} MAX_SCAN_LINE; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 3, + cursor_start : 5; /* YES */ + } as_bfld; +} CURSOR_START; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 1, + cursor_skew_control : 2, /* NO */ + cursor_end : 5; /* YES */ + } as_bfld; +} CURSOR_END; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 6, + synchronous_reset : 1, /* Ditto (could implement as enable_ram)*/ + asynchronous_reset : 1; /* NO - damages video and font RAM */ + } as_bfld; +} SEQ_RESET; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 4, + dot_clock : 1, /* YES - distinguishes 40 or 80 chars */ + shift_load : 1, /* NO */ + bandwidth : 1, /* NO */ + eight_or_nine_dot_clocks : 1; /* NO - only for mono display */ + } as_bfld; +} CLOCKING_MODE; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 4, + all_planes : 4; /* YES */ + } as_bfld; +} MAP_MASK; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 4, + character_map_select_b : 2, /* YES */ + character_map_select_a : 2; /* YES */ + } as_bfld; + struct { + unsigned not_used : 4, + map_selects : 4; /* YES */ + } character; +} CHAR_MAP_SELECT; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned + not_used : 5, /* If above 2 not both 1, bank 0 set 2 */ + not_odd_or_even : 1, /* YES (check consistency) */ + extended_memory : 1, /* NO - assume full 256K on board */ + alpha_mode : 1; /* YES (check consistency) */ + } as_bfld; +} MEMORY_MODE; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 4, + set_or_reset : 4; /* YES - write mode 0 only */ + } as_bfld; +} SET_OR_RESET; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 4, + enable_set_or_reset : 4; /* YES - write mode 0 only */ + } as_bfld; +} ENABLE_SET_OR_RESET; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 4, + color_compare : 4; /* YES - read mode 1 only */ + } as_bfld; +} COLOR_COMPARE; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 3, + function_select : 2, /* YES - write mode 0 only */ + rotate_count : 3; /* YES - write mode 0 only */ + } as_bfld; +} DATA_ROTATE; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 5, + map_select : 3; /* YES */ + } as_bfld; +} READ_MAP_SELECT; + +typedef union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 2, + shift_register_mode : 1, /* YES - CGA colour graphics */ + odd_or_even : 1, /* YES (check for consistency) */ + read_mode : 1, /* YES */ + test_condition : 1, /* NO */ + write_mode : 2; /* YES */ + } as_bfld; +} MODE; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 4, + memory_map : 2, /* YES - location of EGA in M */ + odd_or_even : 1, /* YES (check consistency) */ + graphics_mode : 1; /* YES */ + } as_bfld; +} MISC_REG; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 4, + color_dont_care : 4; /* YES - read mode 1 only */ + } as_bfld; +} COLOR_DONT_CARE; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned + not_used : 4, + background_intensity_or_blink : 1, /* NO - never blink */ + enable_line_graphics_char_codes : 1, /* NO mono display only */ + display_type : 1, /* NO - always colour display */ + graphics_mode : 1; /* YES - with Sequencer Mode reg */ + } as_bfld; +} AC_MODE_CONTROL; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned vertical_retrace_polarity : 1, /* YES - switch between 200/350 lines */ + horizontal_retrace_polarity : 1, /* NO - probably destroys display! */ + page_bit_odd_even : 1, /* NO - selects 32k page in odd/even? */ + disable_internal_video_drivers : 1, /* NO - like switching PC off */ + clock_select : 2, /* YES - only for switch address */ + enable_ram : 1, /* YES - writes to display mem ignored */ + io_address_select : 1; /* NO - only used for mono screens */ + } as_bfld; +} MISC_OUTPUT_REG; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 4, + reserved : 2, /* YES - ignore */ + feature_control : 2; /* NO - device not supported */ + } as_bfld; +} FEAT_CONT_REG; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned crt_interrupt : 1, /* YES - sequence if not timing */ + reserved : 2, /* YES - all bits 1 */ + switch_sense : 1, /* YES - switch selected by clock sel. */ + not_used : 4; /* YES - all bits 1 */ + } as_bfld; +} INPUT_STAT_REG0; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 2, + video_status_mux : 2, /* NO */ + color_plane_enable : 4; /* YES NB. affects attrs in text mode */ + } as_bfld; +} COLOR_PLANE_ENABLE; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 1, /* YES - set to 1 */ + diagnostic_0 : 1, /* NO - set to 0 */ + diagnostic_1 : 1, /* NO - set to 0 */ + vertical_retrace : 1, /* YES - sequence only */ + light_pen_switch : 1, /* YES - set to 0 */ + light_pen_strobe : 1, /* YES - set to 1 */ + display_enable : 1; /* YES - sequence only */ + } as_bfld; +} INPUT_STAT_REG1; +#endif +#ifdef BIT_ORDER2 +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned compatibility_mode_support : 1, /* YES - CGA graphics banks */ + select_row_scan_counter : 1, /* NO */ + horizontal_retrace_select : 1, /* NO */ + count_by_two : 1, /* NO */ + output_control : 1, /* YES - screen goes black */ + address_wrap : 1, /* NO */ + word_or_byte_mode : 1, /* YES */ + hardware_reset : 1; /* NO */ + } as_bfld; +} MODE_CONTROL; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned vertical_total_bit_8 : 1, /* NO */ + vertical_display_enab_end_bit_8 : 1, /* YES */ + vertical_retrace_start_bit_8 : 1, /* NO */ + start_vertical_blank_bit_8 : 1, /* NO */ + line_compare_bit_8 : 1, /* YES */ + not_used : 3; + } as_bfld; +} CRTC_OVERFLOW; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned maximum_scan_line : 5, /* YES */ + not_used : 3; + } as_bfld; +} MAX_SCAN_LINE; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned cursor_start : 5, /* YES */ + not_used : 3; + } as_bfld; +} CURSOR_START; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned cursor_end : 5, /* YES */ + cursor_skew_control : 2, /* NO */ + not_used : 1; + } as_bfld; +} CURSOR_END; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned asynchronous_reset : 1, /* NO - damages video and font RAM */ + synchronous_reset : 1, /* Ditto (could implement as enable_ram)*/ + not_used : 6; + } as_bfld; +} SEQ_RESET; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned eight_or_nine_dot_clocks : 1, /* NO - only for mono display */ + bandwidth : 1, /* NO */ + shift_load : 1, /* NO */ + dot_clock : 1, /* YES - distinguishes 40 or 80 chars */ + not_used : 4; + } as_bfld; +} CLOCKING_MODE; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned all_planes : 4, /* YES */ + not_used : 4; + } as_bfld; +} MAP_MASK; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned character_map_select_a : 2, /* YES */ + character_map_select_b : 2, /* YES */ + not_used : 4; + } as_bfld; + struct { + unsigned map_selects : 4, /* YES */ + not_used : 4; + } character; +} CHAR_MAP_SELECT; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned alpha_mode : 1, /* YES (check consistency) */ + extended_memory : 1, /* NO - assume full 256K on board */ + not_odd_or_even : 1, /* YES (check consistency) */ + not_used : 5; /* If above 2 not both 1, bank 0 set 2 */ + } as_bfld; +} MEMORY_MODE; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned set_or_reset : 4, /* YES - write mode 0 only */ + not_used : 4; + } as_bfld; +} SET_OR_RESET; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned enable_set_or_reset : 4, /* YES - write mode 0 only */ + not_used : 4; + } as_bfld; +} ENABLE_SET_OR_RESET; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned color_compare : 4, /* YES - read mode 1 only */ + not_used : 4; + } as_bfld; +} COLOR_COMPARE; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned rotate_count : 3, /* YES - write mode 0 only */ + function_select : 2, /* YES - write mode 0 only */ + not_used : 3; + } as_bfld; +} DATA_ROTATE; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned map_select : 3, /* YES - read mode 0 only */ + not_used : 5; + } as_bfld; +} READ_MAP_SELECT; + +typedef union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned write_mode : 2, /* YES */ + test_condition : 1, /* NO */ + read_mode : 1, /* YES */ + odd_or_even : 1, /* YES (check for consistency) */ + shift_register_mode : 1, /* YES - CGA colour graphics */ + not_used : 2; + } as_bfld; +} MODE; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned graphics_mode : 1, /* YES */ + odd_or_even : 1, /* YES (check consistency) */ + memory_map : 2, /* YES - location of EGA in M */ + not_used : 4; + } as_bfld; +} MISC_REG; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned color_dont_care : 4, /* YES - read mode 1 only */ + not_used : 4; + } as_bfld; +} COLOR_DONT_CARE; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned graphics_mode : 1, /* YES - with Sequencer Mode reg */ + display_type : 1, /* NO - always colour display */ + enable_line_graphics_char_codes : 1, /* NO mono display only */ + background_intensity_or_blink : 1, /* NO - never blink */ + not_used : 4; + } as_bfld; +} AC_MODE_CONTROL; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned io_address_select : 1, /* NO - only used for mono screens */ + enable_ram : 1, /* YES - writes to display mem ignored */ + clock_select : 2, /* YES - only for switch address */ + disable_internal_video_drivers : 1, /* NO - like switching PC off */ + page_bit_odd_even : 1, /* NO - selects 32k page in odd/even? */ + horizontal_retrace_polarity : 1, /* NO - probably destroys display! */ + vertical_retrace_polarity : 1; /* YES - switch between 200/350 lines */ + } as_bfld; +} MISC_OUTPUT_REG; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned feature_control : 2, /* NO - device not supported */ + reserved : 2, /* YES - ignore */ + not_used : 4; + } as_bfld; +} FEAT_CONT_REG; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 4, /* YES - all bits 1 */ + switch_sense : 1, /* YES - switch selected by clock sel. */ + reserved : 2, /* YES - all bits 1 */ + crt_interrupt : 1; /* YES - sequence if not timing */ + } as_bfld; +} INPUT_STAT_REG0; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned color_plane_enable : 4, /* YES NB. affects attrs in text mode */ + video_status_mux : 2, /* NO */ + not_used : 2; + } as_bfld; +} COLOR_PLANE_ENABLE; + +typedef union +{ + struct { + unsigned abyte : 8; + } as; + struct { + unsigned display_enable : 1, /* YES - sequence only */ + light_pen_strobe : 1, /* YES - set to 1 */ + light_pen_switch : 1, /* YES - set to 0 */ + vertical_retrace : 1, /* YES - sequence only */ + diagnostic_1 : 1, /* NO - set to 0 */ + diagnostic_0 : 1, /* NO - set to 0 */ + not_used : 1; /* YES - set to 1 */ + } as_bfld; +} INPUT_STAT_REG1; +#endif + + + +/* [5.1.3 PROCEDURE() DECLARATIONS] */ + + +/* ----------------------------------------------------------------------- +[5.2 LOCAL DEFINITIONS] + + [5.2.1 INTERNAL DATA DEFINITIONS */ + +/* + +/* EGA REGISTERS */ +/* Comments after bitfields indicate whether change of value affects emulated screen display or memory interface */ + +/* Registers not contained in an LSI device */ + +static MISC_OUTPUT_REG miscellaneous_output_register; + +static FEAT_CONT_REG feature_control_register; + +static INPUT_STAT_REG0 input_status_register_zero; + +static INPUT_STAT_REG1 input_status_register_one; + +/* The Sequencer Registers */ +#ifdef BIT_ORDER1 +static struct +{ + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 5, + index : 3; + } as_bfld; + } address; + + SEQ_RESET reset; + CLOCKING_MODE clocking_mode; + MAP_MASK map_mask; + CHAR_MAP_SELECT character_map_select; + MEMORY_MODE memory_mode; +} sequencer; + + +/* The CRT Controller Registers */ + +static struct +{ + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 3, + index : 5; + } as_bfld; + } address; + + byte horizontal_total; /* NO - screen trash if wrong value */ + byte horizontal_display_end; /* YES - defines line length!! */ + byte start_horizontal_blanking; /* NO */ + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 1, + display_enable_skew_control : 2, /* NO */ + end_blanking : 5; /* NO */ + } as_bfld; + } end_horizontal_blanking; + + byte start_horizontal_retrace; /* NO */ + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 1, + horizontal_retrace_delay : 2, /* NO */ + end_horizontal_retrace : 5; /* NO */ + } as_bfld; + } end_horizontal_retrace; + + byte vertical_total; /* NO */ + CRTC_OVERFLOW crtc_overflow; + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 3, + preset_row_scan : 5; /* NO */ + } as_bfld; + } preset_row_scan; + + MAX_SCAN_LINE maximum_scan_line; + CURSOR_START cursor_start; + CURSOR_END cursor_end; + byte start_address_high; /* YES */ + byte start_address_low; /* YES */ + byte cursor_location_high; /* YES */ + byte cursor_location_low; /* YES */ + byte vertical_retrace_start; /* NO */ + byte light_pen_high; /* NO */ + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned + not_used : 2, + enable_vertical_interrupt : 1, /* YES - ditto */ + clear_vertical_interrupt : 1, /* YES - needs investigation */ + vertical_retrace_end : 4; /* NO */ + } as_bfld; + } vertical_retrace_end; + + byte light_pen_low; /* NO */ + byte vertical_display_enable_end; /* YES - defines screen height */ + byte offset; /* YES (maybe!) ??????? */ + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 3, + underline_location : 5; /* NO (mono display only) */ + } as_bfld; + } underline_location; + + byte start_vertical_blanking; /* NO */ + byte end_vertical_blanking; /* NO */ + MODE_CONTROL mode_control; + byte line_compare; /* YES */ + +} crt_controller; + + +/* The Graphics Controller Registers */ + +static struct +{ + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 4, + index : 4; + } as_bfld; + } address; + + SET_OR_RESET set_or_reset; + ENABLE_SET_OR_RESET enable_set_or_reset; + COLOR_COMPARE color_compare; + DATA_ROTATE data_rotate; + READ_MAP_SELECT read_map_select; + MODE mode; + MISC_REG miscellaneous; + COLOR_DONT_CARE color_dont_care; + byte bit_mask_register; /* YES - write modes 0 & 2 */ + byte graphics_1_position; /* NO */ + byte graphics_2_position; /* NO */ +} graphics_controller; + + +/* The Attribute Controller Registers */ + +static struct +{ + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 3, + index : 5; + } as_bfld; + } address; + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned + not_used : 2, /* YES */ + secondary_red : 1, /* YES */ + secondary_green : 1, /* YES */ + secondary_blue : 1, /* YES */ + red : 1, /* YES */ + green : 1, /* YES */ + blue : 1; /* YES */ + } as_bfld; + } palette[EGA_PALETTE_SIZE]; + + AC_MODE_CONTROL mode_control; + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 2, + secondary_red_border : 1, /* YES */ + secondary_green_border : 1, /* YES */ + secondary_blue_border : 1, /* YES */ + red_border : 1, /* YES */ + green_border : 1, /* YES */ + blue_border : 1; /* YES - real thing isn't good at this */ + } as_bfld; + } overscan_color; + + COLOR_PLANE_ENABLE color_plane_enable; + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned not_used : 4, + horizontal_pel_panning : 4; /* NO */ + } as_bfld; + } horizontal_pel_panning; +} attribute_controller; +#endif + +#ifdef BIT_ORDER2 +static struct +{ + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned index : 3, + not_used : 5; + } as_bfld; + } address; + + SEQ_RESET reset; + CLOCKING_MODE clocking_mode; + MAP_MASK map_mask; + CHAR_MAP_SELECT character_map_select; + MEMORY_MODE memory_mode; +} sequencer; + + +/* The CRT Controller Registers */ + +static struct +{ + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned index : 5, + not_used : 3; + } as_bfld; + } address; + + byte horizontal_total; /* NO - screen trash if wrong value */ + byte horizontal_display_end; /* YES - defines line length!! */ + byte start_horizontal_blanking; /* NO */ + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned end_blanking : 5, /* NO */ + display_enable_skew_control : 2, /* NO */ + not_used : 1; + } as_bfld; + } end_horizontal_blanking; + + byte start_horizontal_retrace; /* NO */ + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned end_horizontal_retrace : 5, /* NO */ + horizontal_retrace_delay : 2, /* NO */ + not_used : 1; + } as_bfld; + } end_horizontal_retrace; + + byte vertical_total; /* NO */ + CRTC_OVERFLOW crtc_overflow; + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned preset_row_scan : 5, /* NO */ + not_used : 3; + } as_bfld; + } preset_row_scan; + + MAX_SCAN_LINE maximum_scan_line; + CURSOR_START cursor_start; + CURSOR_END cursor_end; + byte start_address_high; /* YES */ + byte start_address_low; /* YES */ + byte cursor_location_high; /* YES */ + byte cursor_location_low; /* YES */ + byte vertical_retrace_start; /* NO */ + byte light_pen_high; /* NO */ + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned vertical_retrace_end : 4, /* NO */ + clear_vertical_interrupt : 1, /* YES - needs investigation */ + enable_vertical_interrupt : 1, /* YES - ditto */ + not_used : 2; + } as_bfld; + } vertical_retrace_end; + + byte light_pen_low; /* NO */ + byte vertical_display_enable_end; /* YES - defines screen height */ + byte offset; /* YES (maybe!) ??????? */ + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned underline_location : 5, /* NO (mono display only) */ + not_used : 3; + } as_bfld; + } underline_location; + + byte start_vertical_blanking; /* NO */ + byte end_vertical_blanking; /* NO */ + MODE_CONTROL mode_control; + byte line_compare; /* YES */ + +} crt_controller; + + +/* The Graphics Controller Registers */ + +static struct +{ + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned index : 4, + not_used : 4; + } as_bfld; + } address; + + SET_OR_RESET set_or_reset; + ENABLE_SET_OR_RESET enable_set_or_reset; + COLOR_COMPARE color_compare; + DATA_ROTATE data_rotate; + READ_MAP_SELECT read_map_select; + MODE mode; + MISC_REG miscellaneous; + COLOR_DONT_CARE color_dont_care; + byte bit_mask_register; /* YES - write modes 0 & 2 */ + byte graphics_1_position; /* NO */ + byte graphics_2_position; /* NO */ +} graphics_controller; + + +/* The Attribute Controller Registers */ + +static struct +{ + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned index : 5, + not_used : 3; + } as_bfld; + } address; + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned blue : 1, /* YES */ + green : 1, /* YES */ + red : 1, /* YES */ + secondary_blue : 1, /* YES */ + secondary_green : 1, /* YES */ + secondary_red : 1, /* YES */ + not_used : 2; /* YES */ + } as_bfld; + } palette[EGA_PALETTE_SIZE]; + + AC_MODE_CONTROL mode_control; + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned blue_border : 1, /* YES - real thing isn't good at this */ + green_border : 1, /* YES */ + red_border : 1, /* YES */ + secondary_blue_border : 1, /* YES */ + secondary_green_border : 1, /* YES */ + secondary_red_border : 1, /* YES */ + not_used : 2; + } as_bfld; + } overscan_color; + + COLOR_PLANE_ENABLE color_plane_enable; + + union + { + struct { + unsigned abyte : 8; + } as; + struct { + unsigned horizontal_pel_panning : 4, /* NO */ + not_used : 4; + } as_bfld; + } horizontal_pel_panning; +} attribute_controller; +#endif + +static boolean ac_index_state = NO; +extern half_word bg_col_mask; /* Used to work out the background colour */ + +IMPORT VOID _ega_gc_outb_index IPT2(io_addr,port,half_word,value); +IMPORT VOID _ega_gc_outb_mask IPT2(io_addr,port,half_word,value); +IMPORT VOID _ega_gc_outb_mask_ff IPT2(io_addr,port,half_word,value); + +/* Declarations for new multi-routine graphics controller */ +void ega_gc_set_reset IPT2(io_addr, port, half_word, value); +void ega_gc_enable_set IPT2(io_addr, port, half_word, value); +void ega_gc_compare IPT2(io_addr, port, half_word, value); +void ega_gc_rotate IPT2(io_addr, port, half_word, value); +void ega_gc_read_map IPT2(io_addr, port, half_word, value); +void ega_gc_mode IPT2(io_addr, port, half_word, value); +void ega_gc_misc IPT2(io_addr, port, half_word, value); +void ega_gc_dont_care IPT2(io_addr, port, half_word, value); +LOCAL void ega_gc_mask IPT2(io_addr, port, half_word, value); +void ega_gc_mask_ff IPT2(io_addr, port, half_word, value); +LOCAL void ega_index_invalid IPT2(io_addr, port, half_word, value); + +void (*ega_gc_regs[]) IPT2(io_addr, port, half_word, value) = { + ega_gc_set_reset, + ega_gc_enable_set, + ega_gc_compare, + ega_gc_rotate, + ega_gc_read_map, + ega_gc_mode, + ega_gc_misc, + ega_gc_dont_care, + ega_gc_mask, + ega_index_invalid, + ega_index_invalid, + ega_index_invalid, + ega_index_invalid, + ega_index_invalid, + ega_index_invalid, + ega_index_invalid, +}; + +#ifndef A2CPU +void (*ega_gc_regs_cpu[]) IPT2(io_addr,port,half_word,value) = { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, +}; +#endif /* A2CPU */ + +/* Declarations for new seqencer code */ +void ega_seq_reset IPT2(io_addr, port, half_word, value); +void ega_seq_clock IPT2(io_addr, port, half_word, value); +void ega_seq_map_mask IPT2(io_addr, port, half_word, value); +void ega_seq_char_map IPT2(io_addr, port, half_word, value); +void ega_seq_mem_mode IPT2(io_addr, port, half_word, value); + +void (*ega_seq_regs[]) IPT2(io_addr, port, half_word, value) = +{ + ega_seq_reset, + ega_seq_clock, + ega_seq_map_mask, + ega_seq_char_map, + ega_seq_mem_mode, + ega_index_invalid, + ega_index_invalid, + ega_index_invalid, +}; + + +/* [5.2.2 INTERNAL PROCEDURE DEFINITIONS] */ + +/* +========================================================================== +FUNCTION : set_index_state() +PURPOSE : Set the attribute controller to use the next value + written to its port as the index value. +EXTERNAL OBJECTS: +RETURN VALUE : None +INPUT PARAMS : None +RETURN PARAMS : None +========================================================================== +*/ + +void set_index_state IFN0() +{ + /* + * Seems strange, but in_index_state changes the state & returns the result + * so we set state to NO, so that next call of in_index_state will return YES + */ + ac_index_state = NO; +} + +/* +========================================================================== +FUNCTION : in_index_state() +PURPOSE : To determine if the value written to the attribute + controller is destined for the index register, or + another register specified by the current index + value. +EXTERNAL OBJECTS: +RETURN VALUE : Boolean +INPUT PARAMS : None +RETURN PARAMS : None +========================================================================== +*/ + +boolean in_index_state IFN0() +{ + ac_index_state = ! ac_index_state; + return(ac_index_state); +} + +/* +========================================================================== +FUNCTION : do_new_cursor() +PURPOSE : deals with the shape of the cursor according to + char_height, cursor_start and cursor_end. See Tech + Memo 88.6.1 for details. +EXTERNAL OBJECTS: EGA_GRAPH.cursor_start,EGA_GRAPH.cursor_height,EGA_cursor_start1, + EGA_GRAPH.cursor_height1,host_cursor_has_changed(). +RETURN VALUE : None +INPUT PARAMS : None +RETURN PARAMS : None +========================================================================== +*/ + +LOCAL void do_new_cursor IFN0() +{ + + note_entrance0("do_new_cursor()"); + +#ifdef VGG + if ( video_adapter == VGA ) { + note_entrance0("VGA cursor"); + set_cursor_start(crt_controller.cursor_start.as_bfld.cursor_start); + set_cursor_height(crt_controller.cursor_end.as_bfld.cursor_end - crt_controller.cursor_start.as_bfld.cursor_start); + set_cursor_start1(0); /* cursor never splits */ + set_cursor_height1(0); + set_cursor_visible(TRUE); + host_cursor_size_changed(crt_controller.cursor_start.as_bfld.cursor_start, + crt_controller.cursor_end.as_bfld.cursor_end); + } else { +#endif + if (crt_controller.cursor_start.as_bfld.cursor_start >= get_char_height() ) { + note_entrance0("No cursor"); + set_cursor_visible(FALSE); + host_cursor_size_changed(crt_controller.cursor_start.as_bfld.cursor_start | 0x20, + crt_controller.cursor_end.as_bfld.cursor_end); + } + else if (crt_controller.cursor_end.as_bfld.cursor_end == 0) { + note_entrance0("cursor from start to bum"); + set_cursor_start1(0); + set_cursor_height1(0); + set_cursor_start(crt_controller.cursor_start.as_bfld.cursor_start); + set_cursor_height(get_char_height() - get_cursor_start()); + set_cursor_visible(TRUE); + host_cursor_size_changed(crt_controller.cursor_start.as_bfld.cursor_start, + crt_controller.cursor_end.as_bfld.cursor_end); + } + else if (crt_controller.cursor_end.as_bfld.cursor_end < crt_controller.cursor_start.as_bfld.cursor_start) { + note_entrance0("2 cursors"); + set_cursor_start1(0); + set_cursor_height1(crt_controller.cursor_end.as_bfld.cursor_end); + set_cursor_start(crt_controller.cursor_start.as_bfld.cursor_start); + set_cursor_height(get_char_height() - get_cursor_start()); + set_cursor_visible(TRUE); + host_cursor_size_changed(crt_controller.cursor_start.as_bfld.cursor_start, + crt_controller.cursor_end.as_bfld.cursor_end); + } + else if (crt_controller.cursor_end.as_bfld.cursor_end == crt_controller.cursor_start.as_bfld.cursor_start) { + note_entrance0("One line cursor"); + set_cursor_start(crt_controller.cursor_start.as_bfld.cursor_start); + set_cursor_height(1); + set_cursor_start1(0); + set_cursor_height1(0); + set_cursor_visible(TRUE); + host_cursor_size_changed(crt_controller.cursor_start.as_bfld.cursor_start, + crt_controller.cursor_end.as_bfld.cursor_end); + } + else if (crt_controller.cursor_end.as_bfld.cursor_end - 1 >= get_char_height()) { + note_entrance0("block cursor"); + set_cursor_start(0); + set_cursor_height(get_char_height()); + set_cursor_start1(0); + set_cursor_height1(0); + set_cursor_visible(TRUE); + host_cursor_size_changed(crt_controller.cursor_start.as_bfld.cursor_start, + crt_controller.cursor_end.as_bfld.cursor_end); + } + else { + assert2(((crt_controller.cursor_end.as_bfld.cursor_end - 1) >= crt_controller.cursor_start.as_bfld.cursor_start), + "cursor values do not match default set Start %d, End %d", + crt_controller.cursor_end.as_bfld.cursor_end, + crt_controller.cursor_start.as_bfld.cursor_start); + note_entrance0("normal cursor"); + set_cursor_start(crt_controller.cursor_start.as_bfld.cursor_start); + set_cursor_height(crt_controller.cursor_end.as_bfld.cursor_end - crt_controller.cursor_start.as_bfld.cursor_start); + set_cursor_start1(0); + set_cursor_height1(0); + set_cursor_visible(TRUE); + host_cursor_size_changed(crt_controller.cursor_start.as_bfld.cursor_start, + crt_controller.cursor_end.as_bfld.cursor_end); + } +#ifdef VGG + } +#endif + + if(( get_cur_y() < 0 ) || + ((( get_cur_y() + 1 ) * get_char_height()) > get_screen_height() )) + { + set_cursor_visible( FALSE ); + } + + base_cursor_shape_changed(); +} + +/* +========================================================================== +FUNCTION : do_chain_majority_decision() +PURPOSE : deals with any contention regarding whether the + ega registers indicate that the addressing of the + planes is in chained mode or not. If the result + of the election is a new addressing mode, then + the video routines, read mode and paint modules + are informed of the change. +EXTERNAL OBJECTS: uses local ega register data to count votes. +RETURN VALUE : None +INPUT PARAMS : None +RETURN PARAMS : None +========================================================================== +*/ + + +LOCAL void do_chain_majority_decision IFN0() +{ + static int current_votes=0; + int new_votes; + + new_votes = sequencer.memory_mode.as_bfld.not_odd_or_even ? 0 : 1 ; /* 0 - chained */ + new_votes += graphics_controller.mode.as_bfld.odd_or_even ; /* 1 - chained */ + new_votes += graphics_controller.miscellaneous.as_bfld.odd_or_even ; /* 1 - chained */ + + if( new_votes == 1 && current_votes > 1 ) + { + /* + * Transition from chained to unchained + */ + + EGA_CPU.chain = UNCHAINED; + setVideochain(EGA_CPU.chain); + ega_read_routines_update(); + ega_write_routines_update(CHAINED); + set_memory_chained(NO); + flag_mode_change_required(); + } + else + if( new_votes > 1 && current_votes == 1 ) + { + /* + * Transition from unchained to chained + */ + + EGA_CPU.chain = CHAIN2; + setVideochain(EGA_CPU.chain); + ega_read_routines_update(); + ega_write_routines_update(CHAINED); + set_memory_chained(YES); + flag_mode_change_required(); + } + + current_votes = new_votes; +} + + +/* +7.INTERMODULE INTERFACE IMPLEMENTATION : + +/* +[7.1 INTERMODULE DATA DEFINITIONS] */ + +/* + * This structure should contain all the global definitions used by EGA + */ + +struct EGA_GLOBALS EGA_GRAPH; +struct EGA_CPU_GLOBALS EGA_CPU; + +byte *EGA_planes; + +int ega_int_enable; + +GLOBAL UTINY *ega_gc_outb_index_addr; + + +/* +[7.2 INTERMODULE PROCEDURE DEFINITIONS] */ + +GLOBAL void +set_banking IFN2(UTINY, rd_bank, UTINY, wrt_bank) +{ + ULONG roffs, woffs; +#ifdef PIG + IMPORT ULONG pig_vid_bank; +#endif + +#ifdef V7VGA + if( get_seq_chain4_mode() && get_chain4_mode() ) + { + roffs = (ULONG)rd_bank << 16; + woffs = (ULONG)wrt_bank << 16; + } + else + { + roffs = (ULONG)rd_bank << 18; + woffs = (ULONG)wrt_bank << 18; + } +#else + UNUSED(rd_bank); + UNUSED(wrt_bank); + roffs = 0; + woffs = 0; +#endif + +#ifdef PIG + pig_vid_bank = woffs; +#endif + setVideorplane(EGA_planes + roffs); + setVideowplane(EGA_planes + woffs); + +#ifdef VGG + if( get_256_colour_mode() ) + setVideov7_bank_vid_copy_off(woffs >> 2); + else +#endif /* VGG */ + setVideov7_bank_vid_copy_off(woffs >> 4); + +#ifdef GORE + gd.max_vis_addr = get_screen_length() - 1 + woffs; +#endif /* GORE */ +} + +GLOBAL void +update_banking IFN0() +{ + UTINY rd_bank, wrt_bank; + +#ifdef V7VGA + v7_get_banks( &rd_bank, &wrt_bank ); +#else + rd_bank = wrt_bank = 0; +#endif + + set_banking( rd_bank, wrt_bank ); +} + +VOID +init_vga_globals IFN0() +{ + setVideov7_bank_vid_copy_off(0); + setVideosr_lookup(sr_lookup); + setVideovideo_copy(&video_copy[0]); + setVideoscratch(sas_scratch_address(0x10000)); + setVideoscreen_ptr(EGA_planes); + setVideorotate(0); +#if !defined(NTVDM) || (defined(NTVDM) && !defined(X86GFX)) +#ifndef CPU_40_STYLE /* EVID */ + setVideomark_byte(_simple_mark_sml); + setVideomark_word(_simple_mark_sml); + setVideomark_string(_simple_mark_lge); +#else + SetMarkPointers(0); +#endif /* CPU_40_STYLE - EVID */ +#endif + + + update_banking(); +} + +void ega_init IFN0() +{ + note_entrance0("ega_init"); + /* + * Define sequencer's ports + */ + + io_define_outb(EGA_SEQ_ADAP_INDEX,ega_seq_outb_index); + io_define_outb(EGA_SEQ_ADAP_DATA,ega_seq_reset); + io_connect_port(EGA_SEQ_INDEX,EGA_SEQ_ADAP_INDEX,IO_WRITE); + io_connect_port(EGA_SEQ_DATA,EGA_SEQ_ADAP_DATA,IO_WRITE); + + /* + * Define CRTC's ports + */ + + io_define_outb(EGA_CRTC_ADAPTOR,ega_crtc_outb); + io_define_inb(EGA_CRTC_ADAPTOR,ega_crtc_inb); + io_connect_port(EGA_CRTC_INDEX,EGA_CRTC_ADAPTOR,IO_WRITE); + io_connect_port(EGA_CRTC_DATA,EGA_CRTC_ADAPTOR,IO_READ_WRITE); + + /* + * Define Graphics Controller's ports + */ + + ega_gc_outb_index_addr = (UTINY *) &graphics_controller.address; + + /*io_define_outb(EGA_GC_ADAP_INDEX,ega_gc_outb_index);*/ + io_define_out_routines(EGA_GC_ADAP_INDEX, ega_gc_outb_index, ega_gc_outw, NULL, NULL); + +#ifndef CPU_40_STYLE /* TEMPORARY */ + Cpu_define_outb(EGA_GC_ADAP_INDEX,_ega_gc_outb_index); +#endif + + io_define_outb(EGA_GC_ADAP_DATA,ega_gc_set_reset); + Cpu_define_outb(EGA_GC_ADAP_DATA,NULL); +#ifndef A2CPU + ega_gc_regs_cpu[8] = NULL; +#endif + + io_connect_port(EGA_GC_INDEX,EGA_GC_ADAP_INDEX,IO_WRITE); + io_connect_port(EGA_GC_DATA,EGA_GC_ADAP_DATA,IO_WRITE); + + /* + * Define Attribute controller's ports + */ + + io_define_outb(EGA_AC_ADAPTOR,ega_ac_outb); + io_connect_port(EGA_AC_INDEX_DATA,EGA_AC_ADAPTOR,IO_WRITE); + io_connect_port(EGA_AC_SECRET,EGA_AC_ADAPTOR,IO_WRITE); + + /* + * Define Miscellaneous register's port + */ + + io_define_outb(EGA_MISC_ADAPTOR,ega_misc_outb); + io_connect_port(EGA_MISC_REG,EGA_MISC_ADAPTOR,IO_WRITE); + + /* + * Define Feature controller's port + */ + + io_define_outb(EGA_FEAT_ADAPTOR,ega_feat_outb); + io_connect_port(EGA_FEAT_REG,EGA_FEAT_ADAPTOR,IO_WRITE); + + /* + * Define Input Status Register 0 port + */ + + io_define_inb(EGA_IPSTAT0_ADAPTOR,ega_ipstat0_inb); + io_connect_port(EGA_IPSTAT0_REG,EGA_IPSTAT0_ADAPTOR,IO_READ); + + /* + * Define Input Status Register 1 port + */ + + io_define_inb(EGA_IPSTAT1_ADAPTOR,ega_ipstat1_inb); + io_connect_port(EGA_IPSTAT1_REG,EGA_IPSTAT1_ADAPTOR,IO_READ); + + /* + * Initialise internals of EGA + * +++++++++++++++++++++++++++ + */ + + /* hardware reset sets Misc reg to 0, so.. */ + /* Perhaps this should be in 'ega_reset()'? */ + + miscellaneous_output_register.as.abyte = 0; + + set_pc_pix_height(1); /* set by bit 7 of the misc reg */ + set_host_pix_height(1); + + /* Initialize address map */ + + graphics_controller.miscellaneous.as.abyte = 0; + graphics_controller.read_map_select.as_bfld.map_select = 0; + + /* Looking for bright white */ + + graphics_controller.color_compare.as_bfld.color_compare = 0xf; + + /* All planes significant */ + + graphics_controller.color_dont_care.as_bfld.color_dont_care = 0xf; + + /* Initialise crtc screen height fields and set screen height to be consistent */ + + crt_controller.vertical_display_enable_end = 0; + crt_controller.crtc_overflow.as_bfld.vertical_display_enab_end_bit_8 = 0; + + set_screen_height(0); + + init_vga_globals(); + + EGA_CPU.fun_or_protection = 1; /* assume complicated until we know it's easy */ + + setVideobit_prot_mask(0xffffffff); + + ega_write_init(); + ega_read_init(); + ega_mode_init(); /* sets a flag in ega_mode.c to allow optimisation of mode changes without falling over */ + + /* + * Some parts of input status register always return 1, so set fields accordingly + */ + input_status_register_zero.as.abyte = 0x7f ; + + /* + * set up some variables to get us going + * (They may have to be changed in the fullness of time) + */ + + gvi_pc_low_regen = CGA_REGEN_START; + gvi_pc_high_regen = CGA_REGEN_END; + + choose_display_mode = choose_ega_display_mode; + + set_pix_width(1); + set_pix_char_width(8); + set_display_disabled(FALSE); + + set_char_height(8); + set_screen_limit(0x8000); + set_screen_start(0); + set_word_addressing(YES); + set_actual_offset_per_line(80); + set_offset_per_line(160); /* chained */ + set_horiz_total(80); /* calc screen params from this and prev 3 */ + set_screen_split(511); /* make sure there is no split screen to start with ! */ + + set_prim_font_index(0); + set_sec_font_index(0); + + set_regen_ptr(0,EGA_planes); + + /* prevent copyright message mysteriously disappearing */ + timer_video_enabled = TRUE; + +} + +void ega_term IFN0() +{ + +int index; + + note_entrance0("ega_term"); + + /* + * Disconnect sequencer's ports + */ + + io_disconnect_port(EGA_SEQ_INDEX,EGA_SEQ_ADAP_INDEX); + io_disconnect_port(EGA_SEQ_DATA,EGA_SEQ_ADAP_DATA); + + /* + * Disconnect CRTC's ports + */ + + io_disconnect_port(EGA_CRTC_INDEX,EGA_CRTC_ADAPTOR); + io_disconnect_port(EGA_CRTC_DATA,EGA_CRTC_ADAPTOR); + + /* + * Disconnect Graphics Controller's ports + */ + + io_disconnect_port(EGA_GC_INDEX,EGA_GC_ADAP_INDEX); + io_disconnect_port(EGA_GC_DATA,EGA_GC_ADAP_DATA); + + /* + * Disconnect Attribute controller's ports + */ + + io_disconnect_port(EGA_AC_INDEX_DATA,EGA_AC_ADAPTOR); + io_disconnect_port(EGA_AC_SECRET,EGA_AC_ADAPTOR); + + /* + * Disconnect Miscellaneous register's port + */ + + io_disconnect_port(EGA_MISC_REG,EGA_MISC_ADAPTOR); + + /* + * Disconnect Feature controller's port + */ + + io_disconnect_port(EGA_FEAT_REG,EGA_FEAT_ADAPTOR); + + /* + * Disconnect Input Status Register 0 port + */ + + io_disconnect_port(EGA_IPSTAT0_REG,EGA_IPSTAT0_ADAPTOR); + + /* + * Disconnect Input Status Register 1 port + */ + + io_disconnect_port(EGA_IPSTAT1_REG,EGA_IPSTAT1_ADAPTOR); + + /* + * Free internals of EGA + */ + + /* free the font files */ + for (index = 0; index < 4; index++) + host_free_font(index); + + /* Disable CPU read processing */ + ega_read_term(); + ega_write_term(); +} + +LOCAL void ega_seq_outb_index IFN2(io_addr, port, half_word, value) +{ +#ifdef PROD + UNUSED(port); +#endif + note_entrance2("ega_seq_outb_index(%x,%x)", port, value); + assert1(value<5,"Bad seq index %d",value); + NON_PROD(sequencer.address.as.abyte = value); + io_redefine_outb(EGA_SEQ_ADAP_DATA,ega_seq_regs[value & 7]); +} + +void ega_seq_reset IFN2(io_addr, port, half_word, value) +{ +#ifdef PROD + UNUSED(port); +#endif + note_entrance2("ega_seq_reset(%x,%x)", port, value); + /* change reset register */ + note_entrance0("reset register"); + sequencer.reset.as.abyte = value ; + if (sequencer.reset.as_bfld.asynchronous_reset==0) + set_bit_display_disabled(ASYNC_RESET); + else + clear_bit_display_disabled(ASYNC_RESET); + if (sequencer.reset.as_bfld.synchronous_reset==0) + set_bit_display_disabled(SYNC_RESET); + else + clear_bit_display_disabled(SYNC_RESET); +} + +void ega_seq_clock IFN2(io_addr, port, half_word, value) +{ +register int dot_clock; + +#ifdef PROD + UNUSED(port); +#endif + note_entrance2("ega_seq_clock(%x,%x)", port, value); + /* clock mode register */ + dot_clock = sequencer.clocking_mode.as_bfld.dot_clock; + sequencer.clocking_mode.as.abyte = value; + if (sequencer.clocking_mode.as_bfld.dot_clock != dot_clock) { + /* + ** Switch to/from double width pixels + */ + if (sequencer.clocking_mode.as_bfld.dot_clock==1) { + set_pix_width(2); + set_double_pix_wid(YES); + set_pix_char_width(16); + } else { + set_pix_width(1); + set_double_pix_wid(NO); + set_pix_char_width(8); + } + flag_mode_change_required(); + } +} + +void ega_seq_map_mask IFN2(io_addr, port, half_word, value) +{ +#ifdef PROD + UNUSED(port); +#endif + note_entrance2("ega_seq_map_mask(%x,%x)", port, value); + + /* map mask register */ + + /* + * Different display plane(s) have been enabled. Update the video + * routines to deal with this + */ + + setVideoplane_enable(value & 0xf); + setVideoplane_enable_mask(sr_lookup[value & 0xf]); + write_state.pe = ((value & 0xf) == 0xf) ? 1 : 0; + setVideowrstate(EGA_CPU.ega_state.mode_0.lookup); + + ega_write_routines_update(PLANES_ENABLED); +} + +void ega_seq_char_map IFN2(io_addr, port, half_word, value) +{ +register int map_selects; + +#ifdef PROD + UNUSED(port); +#endif + note_entrance2("ega_seq_char_map(%x,%x)", port, value); + /* char map select reg */ + map_selects = sequencer.character_map_select.character.map_selects; + sequencer.character_map_select.as.abyte = value; + if (sequencer.character_map_select.character.map_selects != map_selects) + { + /* + ** character mapping attributes have changed. + ** + ** If fonts selected are different bit 3 of attribute byte in alpha mode + ** selects which of the two fonts to use (giving 512 chars). + */ + + EGA_GRAPH.attrib_font_select = (sequencer.character_map_select.as_bfld.character_map_select_a != + sequencer.character_map_select.as_bfld.character_map_select_b ); + set_prim_font_index(sequencer.character_map_select.as_bfld.character_map_select_a); + set_sec_font_index(sequencer.character_map_select.as_bfld.character_map_select_b); + + host_select_fonts(get_prim_font_index(), get_sec_font_index()); + flag_mode_change_required(); + } +} + +void ega_seq_mem_mode IFN2(io_addr, port, half_word, value) +{ +#ifdef PROD + UNUSED(port); +#endif + note_entrance2("ega_seq_mem_mode(%x,%x)", port, value); + + /* mem mode register */ + + sequencer.memory_mode.as.abyte = value ; + + /* + ** Decide alpha/graphics mode by voting + */ + vote_ega_mode(); + + /* + * See if this causes a by-election for plane addressing + */ + + do_chain_majority_decision(); + + assert1(sequencer.memory_mode.as_bfld.extended_memory == 1,"Someone is trying to set extended memory to 0 (reg=%x)",value); +} + +LOCAL void ega_crtc_outb IFN2(io_addr, port, half_word, value) +{ + SHORT offset; + struct { /* avoid alignment problems with casts */ + unsigned value : 8; + } new; + static int old_underline_start; + + + note_entrance2("ega_crtc_outb(%x,%x)", port, value); + new.value = value; + switch (port) { + case 0x3d4: + note_entrance1("New crtc index %d",value); + crt_controller.address.as.abyte = value; + break; + case 0x3d5: + note_entrance1( "Index %d", crt_controller.address.as_bfld.index ); + switch (crt_controller.address.as_bfld.index) { + case 0: + note_entrance0("horiz total"); + NON_PROD(crt_controller.horizontal_total = value); + break; + case 1: + note_entrance0("horiz display end"); + crt_controller.horizontal_display_end = value+1; + set_horiz_total(crt_controller.horizontal_display_end); + break; + case 2: + note_entrance0("start horiz blank"); + NON_PROD(crt_controller.start_horizontal_blanking = value); + break; + case 3: + note_entrance0("end horiz blank"); + NON_PROD(crt_controller.end_horizontal_blanking.as.abyte = value); + break; + case 4: + note_entrance0("start horiz retrace"); + NON_PROD(crt_controller.start_horizontal_retrace = value); + break; + case 5: + note_entrance0("end horiz retrace"); + NON_PROD(crt_controller.end_horizontal_retrace.as.abyte = value); + break; + case 6: + note_entrance0("vert tot"); + NON_PROD(crt_controller.vertical_total = value); + break; + case 7: + note_entrance0("overflow"); + if (crt_controller.crtc_overflow.as_bfld.vertical_display_enab_end_bit_8 != + ((CRTC_OVERFLOW*)&new)->as_bfld.vertical_display_enab_end_bit_8) + { + /* + * Screen height changed + */ + +#ifdef VGG + /* + * if VGG is set then the screen height + * definition is extended from 9 bits to + * 10. Thus the 9th bit is now a 'med' + * bit and not a 'hi' bit. + */ + set_screen_height_med_recal( + ((CRTC_OVERFLOW*)&new)->as_bfld.vertical_display_enab_end_bit_8 ); +#else + set_screen_height_hi_recal( + ((CRTC_OVERFLOW*)&new)->as_bfld.vertical_display_enab_end_bit_8 ); +#endif + flag_mode_change_required(); + } + if (crt_controller.crtc_overflow.as_bfld.line_compare_bit_8 != + ((CRTC_OVERFLOW*)&new)->as_bfld.line_compare_bit_8) + { + /* + * split screen height changed + */ + + EGA_GRAPH.screen_split.as_bfld.top_bit = + ((CRTC_OVERFLOW*)&new)->as_bfld.line_compare_bit_8; + + if( !get_split_screen_used() ) + flag_mode_change_required(); + + screen_refresh_required(); + } + crt_controller.crtc_overflow.as.abyte = value; + break; + case 8: + note_entrance0("preset row scan"); + NON_PROD(crt_controller.preset_row_scan.as.abyte = value); + break; + case 9: + note_entrance0("max scan line"); + if (crt_controller.maximum_scan_line.as_bfld.maximum_scan_line != + ((MAX_SCAN_LINE*)&new)->as_bfld.maximum_scan_line) + { + set_char_height_recal( + (((MAX_SCAN_LINE*)&new)->as_bfld.maximum_scan_line)+1); + do_new_cursor(); + } + crt_controller.maximum_scan_line.as.abyte = value; + break; + case 10: + note_entrance0("cursor start"); + if (crt_controller.cursor_start.as_bfld.cursor_start != + ((CURSOR_START*)&new)->as_bfld.cursor_start) + { + crt_controller.cursor_start.as.abyte = value; + do_new_cursor(); + } + break; + case 11: + note_entrance0("cursor end"); + if (crt_controller.cursor_end.as_bfld.cursor_end != + ((CURSOR_END*)&new)->as_bfld.cursor_end) + { + crt_controller.cursor_end.as.abyte = value; + assert0(crt_controller.cursor_end.as_bfld.cursor_skew_control == 0, + "Someone is trying to use cursor skew"); + do_new_cursor(); + } + break; + case 12: + note_entrance0("start address high"); + if (crt_controller.start_address_high != value) + { + set_screen_start((value << 8) + crt_controller.start_address_low); + host_screen_address_changed(crt_controller.start_address_high, + crt_controller.start_address_low); + /* check if it wraps now */ + if ( get_memory_chained() ) { + if( (get_screen_start()<<1) + get_screen_length() > 2*EGA_PLANE_SZ ) + choose_ega_display_mode(); + } + else { + if( get_screen_start() + get_screen_length() > EGA_PLANE_SZ ) + choose_ega_display_mode(); + } + screen_refresh_required(); + } + crt_controller.start_address_high = value; + break; + case 13: + note_entrance0("start address low"); + if (crt_controller.start_address_low != value) + { + set_screen_start((crt_controller.start_address_high << 8) + value); + host_screen_address_changed(crt_controller.start_address_high, + crt_controller.start_address_low); + /* check if it wraps now */ + if ( get_memory_chained() ) { + if( (get_screen_start()<<1) + get_screen_length() > 2*EGA_PLANE_SZ ) + choose_ega_display_mode(); + } + else { + if( get_screen_start() + get_screen_length() > EGA_PLANE_SZ ) + choose_ega_display_mode(); + } + screen_refresh_required(); + } + crt_controller.start_address_low = value; + break; + case 14: + note_entrance0("cursor loc high"); + if (crt_controller.cursor_location_high != value) + { + crt_controller.cursor_location_high = value; + + offset = (value<<8) | crt_controller.cursor_location_low; + offset -= get_screen_start(); + + set_cur_x(offset % crt_controller.horizontal_display_end); + set_cur_y(offset / crt_controller.horizontal_display_end); + + do_new_cursor(); + + if(!get_mode_change_required() && is_it_text()) + cursor_changed( get_cur_x(), get_cur_y()); + } + break; + case 15: + note_entrance0("cursor loc lo"); + if (crt_controller.cursor_location_low != value) + { + crt_controller.cursor_location_low = value; + + offset = value | (crt_controller.cursor_location_high<<8); + offset -= get_screen_start(); + + set_cur_x(offset % crt_controller.horizontal_display_end); + set_cur_y(offset / crt_controller.horizontal_display_end); + + do_new_cursor(); + + if(!get_mode_change_required() && is_it_text()) + cursor_changed( get_cur_x(), get_cur_y()); + } + break; + case 16: + note_entrance0("vert retrace start"); + NON_PROD(crt_controller.vertical_retrace_start = value); + break; + case 17: + note_entrance0("vert retrace end"); + crt_controller.vertical_retrace_end.as.abyte = value; + if ((value & 32) == 32) + ega_int_enable = 0; + else + ega_int_enable = 1; + if ((value & 16) != 16) + { + ica_clear_int(AT_EGA_VTRACE_ADAPTER,AT_EGA_VTRACE_INT); + /* + * clear status latch + */ + input_status_register_zero.as_bfld.crt_interrupt = 0; /* = !VS */ + } + /* ??? */ + break; + case 18: + note_entrance0("vert disp enable end"); + if (crt_controller.vertical_display_enable_end != value) + { + crt_controller.vertical_display_enable_end = value; + set_screen_height_lo_recal(value); + } + break; + case 19: + note_entrance0("offset"); + if (crt_controller.offset != value) + { + crt_controller.offset = value; + set_actual_offset_per_line(value<<1); /* actual offset into plane in bytes */ + flag_mode_change_required(); + } + break; + case 20: + note_entrance0("underline loc"); + crt_controller.underline_location.as.abyte = value; + if( value != old_underline_start ) + { + old_underline_start = value; + set_underline_start( + crt_controller.underline_location.as_bfld.underline_location); + screen_refresh_required(); + } + break; + case 21: + note_entrance0("start vert blank"); + NON_PROD(crt_controller.start_vertical_blanking = value); + break; + case 22: + note_entrance0("end vert blank"); + NON_PROD(crt_controller.end_vertical_blanking = value); + break; + case 23: + note_entrance0("mode control"); + if (crt_controller.mode_control.as_bfld.compatibility_mode_support != + ((MODE_CONTROL*)&new)->as_bfld.compatibility_mode_support) + { + if ( (((MODE_CONTROL*)&new)->as_bfld.compatibility_mode_support) == 0) + set_cga_mem_bank(YES); + else set_cga_mem_bank(NO); + flag_mode_change_required(); + } + if (crt_controller.mode_control.as_bfld.word_or_byte_mode != + ((MODE_CONTROL*)&new)->as_bfld.word_or_byte_mode) + { + set_word_addressing_recal( + (((MODE_CONTROL*)&new)->as_bfld.word_or_byte_mode) == 0 ); + } + crt_controller.mode_control.as.abyte = value; + assert0(crt_controller.mode_control.as_bfld.select_row_scan_counter == 1,"Row scan 0"); + assert0(crt_controller.mode_control.as_bfld.horizontal_retrace_select == 0, + "retrace select 1"); + assert0(crt_controller.mode_control.as_bfld.output_control == 0,"output control set"); + assert0(crt_controller.mode_control.as_bfld.hardware_reset == 1,"hardware reset cleared"); + break; + case 24: + note_entrance0("line compare reg"); + if (crt_controller.line_compare != value) + { + crt_controller.line_compare = value; + EGA_GRAPH.screen_split.as_bfld.low_byte = value; + + if( !get_split_screen_used() ) + flag_mode_change_required(); + + screen_refresh_required(); + + } + break; + default: + assert1(NO,"Bad crtc index %d",crt_controller.address.as_bfld.index); + break; + } + break; + default: + assert1(NO,"Bad port passed %x", port ); + break; + } +} + +LOCAL void ega_crtc_inb IFN2(io_addr, port, half_word *, value) +{ +#ifdef PROD + UNUSED(port); +#endif + note_entrance3("ega_crtc_inb(%x,%x) index %d", port, value, crt_controller.address.as_bfld.index); + switch(crt_controller.address.as_bfld.index) { + case 10: + *value = crt_controller.cursor_start.as.abyte ; + note_entrance1("cursor start %d",*value); + break; + case 11: + *value = crt_controller.cursor_end.as.abyte ; + note_entrance1("cursor end %d",*value); + break; + case 12: + *value = crt_controller.start_address_high ; + note_entrance1("start address high %x",*value); + break; + case 13: + *value = crt_controller.start_address_low ; + note_entrance1("start address low %x",*value); + break; + case 14: + *value = crt_controller.cursor_location_high ; + note_entrance1("cursor location high %x",*value); + break; + case 15: + *value = crt_controller.cursor_location_low ; + note_entrance1("cursor location low %x",*value); + break; + case 16: + *value = 0; /* light pen high */ + note_entrance1("light pen high %x",*value); + break; + case 17: + *value = 0; /* light pen low */ + note_entrance1("light pen low %x",*value); + break; + default: + assert1(crt_controller.address.as_bfld.index>24,"inb from bad crtc index %d",crt_controller.address.as_bfld.index); + *value = IO_EMPTY_PORT_BYTE_VALUE; + break; + } +} + + +void ega_gc_outb_index IFN2(io_addr, port, half_word, value) +{ +#ifdef PROD + UNUSED(port); +#endif + note_entrance2("ega_gc_outb_index(%x,%x)", port, value); + NON_PROD(graphics_controller.address.as.abyte = value); + assert1(value<9,"Bad gc index %d",value); + + io_redefine_outb(EGA_GC_ADAP_DATA,ega_gc_regs[value & 15]); + Cpu_define_outb(EGA_GC_ADAP_DATA,ega_gc_regs_cpu[value & 15]); +} + + +/**/ + + +/*( ega_gc_outw +** Most PC programs do an "OUT DX, AX" which sets up the GC index +** register with the AL and the GC data register with AH. +** Avoid going through generic_outw() by doing it all here! +)*/ +GLOBAL VOID ega_gc_outw IFN2(io_addr, port, word, outval) +{ + reg temp; + INT value; + + temp.X = outval; + value = temp.byte.low; + + NON_PROD(graphics_controller.address.as.abyte = value); + + assert1(value<9,"Bad gc index %#x", value); + + value &= 15; + + io_redefine_outb(EGA_GC_ADAP_DATA,ega_gc_regs[value]); + Cpu_define_outb(EGA_GC_ADAP_DATA,ega_gc_regs_cpu[value]); + + (*(ega_gc_regs[value]))(port+1, temp.byte.high); +} + + +/**/ + + +void ega_gc_set_reset IFN2(io_addr, port, half_word, value) +{ +register int set_reset; + +#ifdef PROD + UNUSED(port); +#endif + note_entrance2("ega_gc_set_reset(%x,%x)", port, value); + + set_reset = graphics_controller.set_or_reset.as_bfld.set_or_reset; + graphics_controller.set_or_reset.as.abyte = value; + + if (graphics_controller.set_or_reset.as_bfld.set_or_reset != set_reset) + { + EGA_CPU.set_reset = graphics_controller.set_or_reset.as_bfld.set_or_reset; + ega_write_routines_update(SET_RESET); + } +} + +void ega_gc_enable_set IFN2(io_addr, port, half_word, value) +{ +register int en_set_reset; + +#ifdef PROD + UNUSED(port); +#endif + note_entrance2("ega_gc_enable_set(%x,%x)", port, value); + + en_set_reset = graphics_controller.enable_set_or_reset.as_bfld.enable_set_or_reset; + graphics_controller.enable_set_or_reset.as.abyte = value; + + if (graphics_controller.enable_set_or_reset.as_bfld.enable_set_or_reset != en_set_reset) + { + EGA_CPU.sr_enable = graphics_controller.enable_set_or_reset.as_bfld.enable_set_or_reset; + write_state.sr = graphics_controller.enable_set_or_reset.as_bfld.enable_set_or_reset==0?0:1; + setVideowrstate(EGA_CPU.ega_state.mode_0.lookup); + ega_write_routines_update(ENABLE_SET_RESET); + } +} + +void ega_gc_compare IFN2(io_addr, port, half_word, value) +{ +register int colour_compare; + +#ifdef PROD + UNUSED(port); +#endif + note_entrance2("ega_gc_compare(%x,%x)", port, value); + colour_compare = graphics_controller.color_compare.as_bfld.color_compare; + graphics_controller.color_compare.as.abyte = value; + if (graphics_controller.color_compare.as_bfld.color_compare != colour_compare) + { + read_state.colour_compare = graphics_controller.color_compare.as_bfld.color_compare; + if (read_state.mode == 1) ega_read_routines_update(); + } +} + +void ega_gc_rotate IFN2(io_addr, port, half_word, value) +{ + struct { + unsigned value : 8; + } new; + +#ifdef PROD + UNUSED(port); +#endif + note_entrance2("ega_gc_rotate(%x,%x)", port, value); + note_entrance0("data rotate"); + new.value = value; + if (graphics_controller.data_rotate.as_bfld.rotate_count != ((DATA_ROTATE*)&new)->as_bfld.rotate_count ) + { + setVideorotate(((DATA_ROTATE*)&new)->as_bfld.rotate_count); + ega_write_routines_update(ROTATION); + } + + if (graphics_controller.data_rotate.as_bfld.function_select != ((DATA_ROTATE*)&new)->as_bfld.function_select) + { + write_state.func = ((DATA_ROTATE*)&new)->as_bfld.function_select; + setVideowrstate(EGA_CPU.ega_state.mode_0.lookup); + ega_write_routines_update(FUNCTION); + } + EGA_CPU.fun_or_protection = (value != 0) || write_state.bp; + graphics_controller.data_rotate.as.abyte = value; +} + +void ega_gc_read_map IFN2(io_addr, port, half_word, value) +{ +#ifdef PROD + UNUSED(port); +#endif + note_entrance2("ega_gc_read_map(%x,%x)", port, value); + + setVideoread_mapped_plane(value & 3); + + update_shift_count(); +} + +void ega_gc_mode IFN2(io_addr, port, half_word, value) +{ +MODE new_mode; + +#ifdef PROD + UNUSED(port); +#endif + note_entrance2("ega_gc_set_reset(%x,%x)", port, value); + new_mode.as.abyte = value; + if (graphics_controller.mode.as_bfld.write_mode != new_mode.as_bfld.write_mode) + { + /* + * write mode change + */ + + EGA_CPU.write_mode = new_mode.as_bfld.write_mode; + setVideowrmode(EGA_CPU.write_mode); + ega_write_routines_update(WRITE_MODE); + } + + if (graphics_controller.mode.as_bfld.read_mode != new_mode.as_bfld.read_mode) + { + /* + * read mode change + */ + read_state.mode = new_mode.as_bfld.read_mode; + ega_read_routines_update(); + } + + if (graphics_controller.mode.as_bfld.shift_register_mode != new_mode.as_bfld.shift_register_mode) + { + /* + * going to/from one cga graphics mode to another + */ + set_graph_shift_reg(new_mode.as_bfld.shift_register_mode); + flag_mode_change_required(); + } + + graphics_controller.mode.as.abyte = new_mode.as.abyte; + + /* + * Check for any change to chained mode rule by having an election + * (Note: EGA registers must be updated before calling election) + */ + + do_chain_majority_decision(); + + assert0(graphics_controller.mode.as_bfld.test_condition == 0,"Test conditon set"); +} + +void ega_gc_misc IFN2(io_addr, port, half_word, value) +{ +register int memory_map; + +#ifdef PROD + UNUSED(port); +#endif + note_entrance2("ega_gc_misc(%x,%x)", port, value); + memory_map = graphics_controller.miscellaneous.as_bfld.memory_map; + graphics_controller.miscellaneous.as.abyte = value; + if (graphics_controller.miscellaneous.as_bfld.memory_map != memory_map) + { + /* + * Where EGA appears in PC memory space changed. + */ + if (miscellaneous_output_register.as_bfld.enable_ram) + sas_disconnect_memory(gvi_pc_low_regen,gvi_pc_high_regen); + + switch (graphics_controller.miscellaneous.as_bfld.memory_map) + { + case 0: + gvi_pc_low_regen = 0xA0000; + gvi_pc_high_regen = 0xBFFFF; + break; + case 1: + gvi_pc_low_regen = 0xA0000; + gvi_pc_high_regen = 0xAFFFF; + break; + case 2: + gvi_pc_low_regen = 0xB0000; + gvi_pc_high_regen = 0xB7FFF; + break; + case 3: + gvi_pc_low_regen = 0xB8000; + gvi_pc_high_regen = 0xBFFFF; + break; + } + + if (miscellaneous_output_register.as_bfld.enable_ram) + sas_connect_memory(gvi_pc_low_regen,gvi_pc_high_regen,(half_word)SAS_VIDEO); + + /* + * Tell cpu associated modules that regen area has moved + */ + + ega_read_routines_update(); + ega_write_routines_update(RAM_MOVED); + } + + /* + ** Vote on alpha/graphics mode. + */ + vote_ega_mode(); + + /* + * Check for any change to chained mode rule by having an election + * (Note: EGA registers must be updated before calling election) + */ + + do_chain_majority_decision(); +} + +void ega_gc_dont_care IFN2(io_addr, port, half_word, value) +{ +register int colour_dont_care; + +#ifdef PROD + UNUSED(port); +#endif + note_entrance2("ega_gc_dont_care(%x,%x)", port, value); + colour_dont_care = graphics_controller.color_dont_care.as_bfld.color_dont_care; + graphics_controller.color_dont_care.as.abyte = value; + if (graphics_controller.color_dont_care.as_bfld.color_dont_care != colour_dont_care) + { + read_state.colour_dont_care = graphics_controller.color_dont_care.as_bfld.color_dont_care; + if (read_state.mode == 1) ega_read_routines_update(); + } +} + +/* + * The EGA mask register is written to more times than all other ports added together! + * To help make this register fast, we have two different routines to handle it: + * ega_gc_mask for when the register's current value is not 0xFF, ie. masking is active + * ega_gc_mask_ff for when the mask register = 0xFF, so masking is disabled. + */ + +/*( +** ega_mask_register_changed +** This gets called whenever the mask register gets changed, and +** updates the internals appropriately. Since the mask registers +** are hit more than any other registers, this should do the job! +** +** Rather than calling the monster ega_write_routines_update() (in "ega_write.c"), +** we do as little as we possibly can here! +** In particular, all we do is set the video write pointer handlers +** to the appropriate one and update the internal EGA_CPU state... +** +** We DON'T do anything about altering the marking funcs, etc. +** +** See also "vga_mask_register_changed" in "vga_ports.c" +** +** NB: GLOBAL for JOKER. +** +)*/ +#include "cpu_vid.h" + +GLOBAL VOID ega_mask_register_changed IFN1(BOOL, gotBitProtection) +{ + ULONG state; + SAVED IU8 masks[] = {0x1f, 0x01, 0x0f, 0x0f}; + IMPORT WRT_POINTERS *mode_chain_handler_table[]; +#ifdef V7VGA + IMPORT UTINY Last_v7_fg_bg, fg_bg_control; +#endif + + write_state.bp = gotBitProtection; + setVideowrstate(EGA_CPU.ega_state.mode_0.lookup); + EGA_CPU.fun_or_protection = (gotBitProtection || (graphics_controller.data_rotate.as.abyte != 0)); + + /* Check that we're not trying to handle any pathological cases here... + ** This means we chicken out for Chain2 and V7VGA dithering. + */ + + if ((EGA_CPU.chain == CHAIN2) +#ifdef V7VGA + || ( Last_v7_fg_bg != fg_bg_control) +#endif /* V7VGA */ + ) + { + ega_write_routines_update(BIT_PROT); + + return; + } + + /* the "mode_0" union variant has the largest "lookup" field (5 bits.) */ + + state = EGA_CPU.ega_state.mode_0.lookup & masks[EGA_CPU.write_mode]; + +#ifdef A3CPU +#ifdef C_VID + Glue_set_vid_wrt_ptrs(&mode_chain_handler_table[EGA_CPU.saved_mode_chain][state]); +#else + Cpu_set_vid_wrt_ptrs(&mode_chain_handler_table[EGA_CPU.saved_mode_chain][state]); +#endif /* C_VID */ +#else +#if !(defined(NTVDM) && defined(MONITOR)) + Glue_set_vid_wrt_ptrs(&mode_chain_handler_table[EGA_CPU.saved_mode_chain][state]); +#endif /* !(NTVDM && MONITOR) */ +#endif /* A3CPU */ + + EGA_CPU.saved_state = state; +} + + +/**/ + + +/* ega_gc_mask is the one that is usually called */ + +LOCAL void ega_gc_mask IFN2(io_addr, port, half_word, value) +{ + register unsigned int mask; + +#ifdef PROD + UNUSED(port); +#endif + note_entrance2("ega_gc_mask(%x,%x)", port, value); + + /* + * Update video routine according to new bit protection + */ + + mask = value | (((USHORT)value) << 8); + mask |= (mask << 16); /* replicate the mask into 4 bytes */ + setVideobit_prot_mask(mask); + setVideodata_xor_mask(~(EGA_CPU.calc_data_xor & mask)); + setVideolatch_xor_mask(EGA_CPU.calc_latch_xor & mask); + if( value == 0xff ) + { +#ifndef USE_OLD_MASK_CODE + ega_mask_register_changed(/*bit protection :=*/0); +#else + write_state.bp = 0; + setVideowrstate(EGA_CPU.ega_state.mode_0.lookup); + EGA_CPU.fun_or_protection = (graphics_controller.data_rotate.as.abyte != 0); + ega_write_routines_update(BIT_PROT); +#endif /* USE_OLD_MASK_CODE */ + + /* Alter the function table used by ega_gc_index */ + ega_gc_regs[8] = ega_gc_mask_ff; + +#ifndef CPU_40_STYLE /* TEMPORARY */ +#ifndef A2CPU + /* Alter the function table used by assembler ega_gc_index */ + ega_gc_regs_cpu[8] = _ega_gc_outb_mask_ff; +#endif +#endif + + io_redefine_outb(EGA_GC_ADAP_DATA,ega_gc_mask_ff); + +#ifndef CPU_40_STYLE /* TEMPORARY */ + Cpu_define_outb(EGA_GC_ADAP_DATA,_ega_gc_outb_mask_ff); +#endif + } +} + +/* This version isn't called so often */ +void ega_gc_mask_ff IFN2(io_addr, port, half_word, value) +{ + register unsigned int mask; + +#ifdef PROD + UNUSED(port); +#endif + note_entrance2("ega_gc_mask(%x,%x)", port, value); + + /* + * Update video routine according to new bit protection + */ + + if(value != 0xff) + { + mask = value | (((USHORT)value) << 8); + mask |= (mask << 16); /* replicate the mask into 4 bytes */ + setVideobit_prot_mask(mask); + setVideodata_xor_mask(~(EGA_CPU.calc_data_xor & mask)); + setVideolatch_xor_mask(EGA_CPU.calc_latch_xor & mask); +#ifndef USE_OLD_MASK_CODE + ega_mask_register_changed(/*bit protection :=*/1); +#else + write_state.bp = 1; + setVideowrstate(EGA_CPU.ega_state.mode_0.lookup); + EGA_CPU.fun_or_protection = TRUE; + ega_write_routines_update(BIT_PROT); +#endif /* USE_OLD_MASK_CODE*/ + + /* Alter the function table used by ega_gc_index */ + ega_gc_regs[8] = ega_gc_mask; + +#ifndef CPU_40_STYLE /* TEMPORARY */ +#ifndef A2CPU + /* Alter the function table used by assembler ega_gc_index */ + ega_gc_regs_cpu[8] = _ega_gc_outb_mask; +#endif +#endif + + io_redefine_outb(EGA_GC_ADAP_DATA,ega_gc_mask); + +#ifndef CPU_40_STYLE /* TEMPORARY */ + Cpu_define_outb(EGA_GC_ADAP_DATA,_ega_gc_outb_mask); +#endif + } +} + +LOCAL void ega_index_invalid IFN2(io_addr, port, half_word, value) +{ +#ifdef PROD + UNUSED(port); + UNUSED(value); +#endif + note_entrance2("ega_index_invalid(%x,%x)", port, value); + assert1(NO,"Invalid index %d",graphics_controller.address.as_bfld.index); +} + +LOCAL void ega_ac_outb IFN2(io_addr, port, half_word, value) +{ + struct { + unsigned value : 8; + } new; + +#ifdef PROD + UNUSED(port); +#endif + note_entrance2("ega_ac_outb(%x,%x)", port, value); + assert1( port == EGA_AC_INDEX_DATA || port == EGA_AC_SECRET, "Bad port %x", port); + new.value = value; + if ( in_index_state() ) { + note_entrance1("Setting index to %d", value); + attribute_controller.address.as.abyte = value; + } else { + switch (attribute_controller.address.as_bfld.index) { + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: +/* + * A real EGA monitor behaves in a strange way: + * When it is in 200 scan line mode (vertical_retrace_polarity = 0) + * it emulates a CGA monitor - not just in screen resolution, but also + * in the way it inteprets the colour signals: + * Instead of having 6 colour signals: RGBrgb, + * it has 4, RGBI. The Intensity signal is on the same input pin as the secondary green signal. + */ + note_entrance1("Change palette %d",attribute_controller.address.as_bfld.index); + attribute_controller.palette[attribute_controller.address.as_bfld.index].as.abyte = value; + if(miscellaneous_output_register.as_bfld.vertical_retrace_polarity) + { + EGA_GRAPH.palette[attribute_controller.address.as_bfld.index].red = + get_palette_color(red,secondary_red); + EGA_GRAPH.palette[attribute_controller.address.as_bfld.index].green = + get_palette_color(green,secondary_green); + EGA_GRAPH.palette[attribute_controller.address.as_bfld.index].blue = + get_palette_color(blue,secondary_blue); + } + else + { + /* Interpret secondary_green as intensity */ + EGA_GRAPH.palette[attribute_controller.address.as_bfld.index].red = + get_palette_color(red,secondary_green); + EGA_GRAPH.palette[attribute_controller.address.as_bfld.index].green = + get_palette_color(green,secondary_green); + EGA_GRAPH.palette[attribute_controller.address.as_bfld.index].blue = + get_palette_color(blue,secondary_green); + } + host_set_palette(EGA_GRAPH.palette,EGA_PALETTE_SIZE); + break; + case 16: + note_entrance0("mode control reg"); + if (attribute_controller.mode_control.as_bfld.background_intensity_or_blink != + ((AC_MODE_CONTROL*)&new)->as_bfld.background_intensity_or_blink) + { + set_intensity( ((AC_MODE_CONTROL*)&new)->as_bfld.background_intensity_or_blink ); + } + + attribute_controller.mode_control.as.abyte = value; + + if (attribute_controller.mode_control.as_bfld.background_intensity_or_blink) + /* blinking - not supported */ + bg_col_mask = 0x70; + else + /* using blink bit to provide 16 background colours */ + bg_col_mask = 0xf0; + + /* + ** Vote on alpha/graphics mode + */ + vote_ega_mode(); + assert0(attribute_controller.mode_control.as_bfld.display_type == 0, "Mono display selected"); + assert0(attribute_controller.mode_control.as_bfld.enable_line_graphics_char_codes == 0, + "line graphics enabled"); + break; + case 17: + note_entrance0("set border"); + attribute_controller.overscan_color.as.abyte = value; + EGA_GRAPH.border[RED] = get_border_color(red_border,secondary_red_border); + EGA_GRAPH.border[GREEN] = get_border_color(green_border,secondary_green_border); + EGA_GRAPH.border[BLUE] = get_border_color(blue_border,secondary_blue_border); + host_set_border_colour(value); + break; + case 18: + note_entrance1("color plane enable %x",value); + if ( attribute_controller.color_plane_enable.as_bfld.color_plane_enable != + ((COLOR_PLANE_ENABLE*)&new)->as_bfld.color_plane_enable ) { + set_plane_mask(((COLOR_PLANE_ENABLE*)&new)->as_bfld.color_plane_enable); + host_change_plane_mask(get_plane_mask()); /* Update Host palette */ + } + attribute_controller.color_plane_enable.as.abyte = value; + break; + case 19: + note_entrance0("horiz pel panning"); + NON_PROD(attribute_controller.horizontal_pel_panning.as.abyte = value); + break; + default: + assert1(NO,"Bad ac index %d", attribute_controller.address.as_bfld.index); + break; + } + } +} + +LOCAL void ega_misc_outb IFN2(io_addr, port, half_word, value) +{ +MISC_OUTPUT_REG new; + +#ifdef PROD + UNUSED(port); +#endif + note_entrance2("ega_misc_outb(%x,%x)", port, value); + assert1(port==EGA_MISC_REG,"Bad port %x",port); + new.as.abyte = value; + if (miscellaneous_output_register.as_bfld.enable_ram != new.as_bfld.enable_ram) + { + /* + * writes to plane memory en/disabled + */ + + note_entrance0("Ram enabled"); + if(new.as_bfld.enable_ram) + sas_connect_memory(gvi_pc_low_regen,gvi_pc_high_regen,(half_word)SAS_VIDEO); + else + sas_disconnect_memory(gvi_pc_low_regen,gvi_pc_high_regen); + + EGA_CPU.ram_enabled = new.as_bfld.enable_ram; + ega_read_routines_update(); + ega_write_routines_update(RAM_ENABLED); + } + + if (miscellaneous_output_register.as_bfld.vertical_retrace_polarity != + new.as_bfld.vertical_retrace_polarity) + { + /* + * Going to/from CGA monitor compatibility mode + * if this bit is set, it means that the pixels are 'stretched' vertically. + */ + + set_pc_pix_height( new.as_bfld.vertical_retrace_polarity ? 1 : 2); + flag_mode_change_required(); + } + + miscellaneous_output_register.as.abyte = new.as.abyte; + + set_bit_display_disabled(miscellaneous_output_register.as_bfld.disable_internal_video_drivers ? VIDEO_DRIVERS_DISABLED : 0); + + /* + * register value used by ipsr0 to find out the index into the switches + * so that correct switch setting can be returned. + */ +} + +LOCAL void ega_feat_outb IFN2(io_addr, port, half_word, value) +{ +#ifdef PROD + UNUSED(port); + UNUSED(value); +#endif + note_entrance2("ega_feat_outb(%x,%x)", port, value); + NON_PROD(feature_control_register.as.abyte = value); +} + +LOCAL void ega_ipstat0_inb IFN2(io_addr, port, half_word *, value) +{ +#ifdef PROD + UNUSED(port); +#endif + note_entrance1("ega_ipstat0_inb(%x)", port); + input_status_register_zero.as_bfld.switch_sense = + + /* The following function call used to pass the argument + ** miscellaneous_output_register.as_bfld.clock_select + ** but the function expects no argument so it was removed. + */ + get_ega_switch_setting(); + *value = input_status_register_zero.as.abyte; + note_entrance1("returning %x",*value); +} + +LOCAL void ega_ipstat1_inb IFN2(io_addr, port, half_word *, value) +{ + + /* + * The whole of this routine has been nicked from the cga without modification + * The s_lengths array should probably be altered for the ega timings, and somewhere + * an interrupt should be fired off. + */ + + static int ega_state = 0; /* current ega status state */ + static int state_count = 1; /* position in that state */ + static int sub_state = 0; /* sub state for ega state 2 */ + + static unsigned long gmfudge = 17; /* Random number seed for pseudo-random + bitstream generator to give the state lengths below that 'genuine' feel to + progs that require it! */ + register unsigned long h; + + /* + * relative 'lengths' of each state. State 2 is *3 as it has 3 sub states + */ + + static int s_lengths[] = { 8, 18, 8, 6 }; + + /* + * Status register, simulated adapter has + * + * bit setting + * --- ------- + * Display enable 1/0 Toggling each inb + * Light Pen 0 + * Light Pen 0 + * Vertical Sync 1/0 Toggling each inb + * 4-7 Unused 0,0,0,0 + * + * The upper nibble of the byte is always set. + * Some programs synchronise with the display by waiting for the + * next vertical retrace. + * + * We attempt to follow the following waveform + * + * -- ---------- + * VS |_____________________________________________________| |____ + * + * + * ------------- - - ------------------ + * DE |__||__||__ ... about 180 _| + * + *State|--- 0 ----|-------------- 1 -----------------|-- 3 --|-- 4 --| + * + * We do this with a 4 state machine. Each state has a count associated + * with it to represent the relative time spent in each state. When this + * count is exhausted the machine moves into the next state. One Inb + * equals 1 count. The states are as follows: + * 0: VS low, DE high. + * 1: VS low, DE toggles. This works via an internal state. + * 3: VS low, DE high. + * 4: VS high,DE high. + * + */ + +#ifdef PROD + UNUSED(port); +#endif + note_entrance1("ega_ipstat1_inb(%x)", port); + note_entrance2("ega_ipstat1_inb(%x,%x)", port, value); + + set_index_state(); /* Initialize the Attribute register flip-flop (EGA tech ref, p 56) */ + + state_count --; /* attempt relative 'timings' */ + switch (ega_state) { + + case 0: + if (state_count == 0) { /* change to next state ? */ + h = gmfudge << 1; + gmfudge = (h&0x80000000) ^ (gmfudge & 0x80000000)? h|1 : h; + state_count = s_lengths[1] + (gmfudge & 3); + ega_state = 1; + } + input_status_register_zero.as_bfld.crt_interrupt = 1; /* = !VS */ + *value = 0xf1; + break; + + case 1: + if (state_count == 0) { /* change to next state ? */ + h = gmfudge << 1; + gmfudge = (h&0x80000000) ^ (gmfudge & 0x80000000)? h|1 : h; + state_count = s_lengths[2] + (gmfudge & 3); + ega_state = 2; + sub_state = 2; + } + switch (sub_state) { /* cycle through 0,0,1 sequence */ + case 0: /* to represent DE toggling */ + *value = 0xf0; + sub_state = 1; + break; + case 1: + *value = 0xf0; + sub_state = 2; + break; + case 2: + *value = 0xf1; + sub_state = 0; + break; + } + input_status_register_zero.as_bfld.crt_interrupt = 1; /* = !VS */ + break; + + case 2: + if (state_count == 0) { /* change to next state ? */ + h = gmfudge << 1; + gmfudge = (h&0x80000000) ^ (gmfudge & 0x80000000)? h|1 : h; + state_count = s_lengths[3] + (gmfudge & 3); + ega_state = 3; + } + *value = 0xf1; + input_status_register_zero.as_bfld.crt_interrupt = 1; /* = !VS */ + break; + + case 3: + if (state_count == 0) { /* wrap back to first state */ + h = gmfudge << 1; + gmfudge = (h&0x80000000) ^ (gmfudge & 0x80000000)? h|1 : h; + state_count = s_lengths[0] + (gmfudge & 3); + ega_state = 0; + } + input_status_register_zero.as_bfld.crt_interrupt = 0; /* = !VS */ + *value = 0xf9; + break; + } + note_entrance1("returning %x",*value); +} + +LOCAL void vote_ega_mode IFN0() +{ + static int old_votes = 3; + int votes; + + votes = sequencer.memory_mode.as_bfld.alpha_mode ? 0 : 1; + votes += graphics_controller.miscellaneous.as_bfld.graphics_mode; + votes += attribute_controller.mode_control.as_bfld.graphics_mode; + assert1( votes == 3 || votes == 0, "Headline: Mode government returned with small majority %d", votes); + if ((old_votes < 2) && (votes >= 2)) + { + /* change to graphics mode */ + set_text_mode(NO); + flag_mode_change_required(); + } + else if ((old_votes >= 2) && (votes < 2)) + { + /* change to text mode */ + set_text_mode(YES); + flag_mode_change_required(); + } + old_votes = votes; +} + +#ifdef HUNTER + +/* Get line compare value */ + +int ega_get_line_compare IFN0() + + { + int return_value; + + return_value = crt_controller.line_compare; + if (crt_controller.crtc_overflow.as_bfld.line_compare_bit_8 != 0) + return_value += 0x100; + return (return_value); + } /* ega_get_line_compare */ + +/* Get maximum scan lines value */ + +int ega_get_max_scan_lines IFN0() + + { + return (crt_controller.maximum_scan_line.as_bfld.maximum_scan_line); + } /* ega_get_max_scan_lines */ + +/* Set line compare value */ + +void ega_set_line_compare IFN1(int, lcomp_val) + { + CRTC_OVERFLOW new_overflow; + + new_overflow.as.abyte = crt_controller.crtc_overflow.as.abyte; + if (lcomp_val >= 0x100) + new_overflow.as_bfld.line_compare_bit_8 = 1; + else + new_overflow.as_bfld.line_compare_bit_8 = 0; + + outb(EGA_CRTC_INDEX, 7); + outb(EGA_CRTC_DATA, new_overflow.as.abyte); + outb(EGA_CRTC_INDEX, 24); + outb(EGA_CRTC_DATA, lcomp_val & 0xff); + } + +#endif /* HUNTER */ +#endif /* EGG */ +#endif /* REAL_VGA */ diff --git a/private/mvdm/softpc.new/base/video/ega_read.c b/private/mvdm/softpc.new/base/video/ega_read.c new file mode 100644 index 000000000..667aa12e9 --- /dev/null +++ b/private/mvdm/softpc.new/base/video/ega_read.c @@ -0,0 +1,1002 @@ +#include "insignia.h" +#include "host_def.h" + +#if !(defined(NTVDM) && defined(MONITOR)) + +/* INSIGNIA (SUB)MODULE SPECIFICATION + ----------------------------- + + + THIS PROGRAM SOURCE FILE IS SUPPLIED IN CONFIDENCE TO THE + CUSTOMER, THE CONTENTS OR DETAILS OF ITS OPERATION MUST + NOT BE DISCLOSED TO ANY OTHER PARTIES WITHOUT THE EXPRESS + AUTHORISATION FROM THE DIRECTORS OF INSIGNIA SOLUTIONS LTD. + +DOCUMENT : name and number + +RELATED DOCS : include all relevant references + +DESIGNER : + +REVISION HISTORY : +First version : August 1988, J. Maiden +Second version : February 1991, John Shanly, SoftPC 3.0 + +SUBMODULE NAME : ega + +SOURCE FILE NAME : ega_read.c + +PURPOSE : emulation of EGA read operations + +SccsID = @(#)ega_read.c 1.32 09/07/94 Copyright Insignia Solutions Ltd. + + +[1.INTERMODULE INTERFACE SPECIFICATION] + +[1.0 INCLUDE FILE NEEDED TO ACCESS THIS INTERFACE FROM OTHER SUBMODULES] + + INCLUDE FILE : ega_read.gi + +[1.1 INTERMODULE EXPORTS] + + PROCEDURES() : + void ega_read_init() + void ega_read_term() + void ega_read_routines_update() + DATA : +------------------------------------------------------------------------- +[1.2 DATATYPES FOR [1.1] (if not basic C types)] +------------------------------------------------------------------------- +[1.3 INTERMODULE IMPORTS] + (not o/s objects or standard libs) + + PROCEDURES() : + + DATA : give name, and source module name + +------------------------------------------------------------------------- + +[1.4 DESCRIPTION OF INTERMODULE INTERFACE] + +[1.4.1 IMPORTED OBJECTS] + +[1.4.2 EXPORTED OBJECTS] +========================================================================= +PROCEDURE : ega_read_init + +PURPOSE : initialize EGA read aspects. + +PARAMETERS : none + +GLOBALS : none + +DESCRIPTION : initialize ega read data and code to sensible state. + +ERROR INDICATIONS : none. + +ERROR RECOVERY : none. +========================================================================= +PROCEDURE : ega_read_term + +PURPOSE : terminate EGA read aspects. + +PARAMETERS : none + +GLOBALS : none + +DESCRIPTION : set things up so that read processing is effectively turned off. + +ERROR INDICATIONS : none. + +ERROR RECOVERY : none. +========================================================================= + +PROCEDURE : ega_read_routines_update + +PURPOSE : Update read state to match registers. + +PARAMETERS : none + +GLOBALS : none + +DESCRIPTION : Examines RAM enabled/disabled bit, read mode, chained/unchained + and either mapped plane or colour compare and colour don't + care states. Sets global variables that allow byte_read, + word_read and string_read to yield the data that would be + read from M. + +ERROR INDICATIONS : none. + +ERROR RECOVERY : none. + +========================================================================= + +/*======================================================================= +[3.INTERMODULE INTERFACE DECLARATIONS] +========================================================================= + +[3.1 INTERMODULE IMPORTS] */ + +/* [3.1.1 #INCLUDES] */ + + +#ifdef EGG + +#include "xt.h" +#include CpuH +#include "debug.h" +#include "sas.h" +#include "gmi.h" +#include "gvi.h" +#include "ios.h" +#include "egacpu.h" +#include "egaports.h" +#include "egaread.h" +#include "ga_mark.h" +#include "ga_defs.h" +#include "cpu_vid.h" + +/* [3.1.2 DECLARATIONS] */ + +/* [3.2 INTERMODULE EXPORTS] */ + +/* +5.0 MODULE INTERNALS : (not visible externally, global internally)] + +[5.1 LOCAL DECLARATIONS] */ + +/* [5.1.1 #DEFINES] */ + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_EGA.seg" +#endif + +#if defined(EGA_DUMP) || defined(EGA_STAT) +#define change_read_pointers(ptr) dump_change_read_pointers(&ptr) +#else +#ifdef EGATEST +#define change_read_pointers(ptr) read_pointers = ptr +#else +#define change_read_pointers(ptr) read_glue_ptrs = ptr +#endif /* EGATEST */ +#endif + +/* [5.1.2 TYPEDEF, STRUCTURE, ENUM DECLARATIONS] */ + + +/* [5.1.3 PROCEDURE() DECLARATIONS] */ + + +/* ----------------------------------------------------------------------- +[5.2 LOCAL DEFINITIONS] + + [5.2.1 INTERNAL DATA DEFINITIONS */ + +extern IU32 glue_b_read(); +extern IU32 glue_w_read(); +extern void glue_str_read(); + +#ifndef REAL_VGA +READ_POINTERS read_glue_ptrs; + +/* If we have no string operations, the host allocates storage for "read_pointers" */ + +#ifndef NO_STRING_OPERATIONS +GLOBAL READ_POINTERS read_pointers; +#endif /* NO_STRING_OPERATIONS */ + + +#ifndef CPU_40_STYLE /* i.e. EVID without introducing an EVID define */ +#ifndef EGATEST +#ifndef A3CPU +#ifndef JOKER +READ_POINTERS Glue_reads = +{ + glue_b_read, + glue_w_read + +#ifndef NO_STRING_OPERATIONS + , + glue_str_read +#endif /* NO_STRING_OPERATIONS */ +}; +#endif /* JOKER */ +#endif /* A3CPU */ +#endif /* EGATEST */ + +READ_POINTERS simple_reads = +{ + _simple_b_read, + _simple_w_read + +#ifndef NO_STRING_OPERATIONS + , + _simple_str_read +#endif /* NO_STRING_OPERATIONS */ +}; + +READ_POINTERS pointers_RAM_off = +{ + _rd_ram_dsbld_byte, + _rd_ram_dsbld_word + +#ifndef NO_STRING_OPERATIONS + , + _rd_ram_dsbld_string +#endif /* NO_STRING_OPERATIONS */ +}; + +READ_POINTERS pointers_mode0_nch = +{ + _rdm0_byte_nch, + _rdm0_word_nch + +#ifndef NO_STRING_OPERATIONS + , + _rdm0_string_nch +#endif /* NO_STRING_OPERATIONS */ +}; + +#ifdef VGG +READ_POINTERS pointers_mode0_ch4 = +{ + _rdm0_byte_ch4, + _rdm0_word_ch4 + +#ifndef NO_STRING_OPERATIONS + , + _rdm0_string_ch4 +#endif /* NO_STRING_OPERATIONS */ +}; +#endif + +READ_POINTERS pointers_mode1_nch = +{ + _rdm1_byte_nch, + _rdm1_word_nch + +#ifndef NO_STRING_OPERATIONS + , + _rdm1_string_nch +#endif /* NO_STRING_OPERATIONS */ +}; + +#ifdef VGG +READ_POINTERS pointers_mode1_ch4 = +{ + _rdm1_byte_ch4, + _rdm1_word_ch4 + +#ifndef NO_STRING_OPERATIONS + , + _rdm1_string_ch4 +#endif /* NO_STRING_OPERATIONS */ +}; +#endif + +#ifdef A_VID +extern IU32 _ch2_md0_byte_read_glue(); +extern IU32 _ch2_md0_word_read_glue(); +extern void _ch2_md0_str_read_glue(); + +extern IU32 _ch2_md1_byte_read_glue(); +extern IU32 _ch2_md1_word_read_glue(); +extern void _ch2_md1_str_read_glue(); + +READ_POINTERS pointers_mode0_ch2 = +{ + _ch2_md0_byte_read_glue, + _ch2_md0_word_read_glue + +#ifndef NO_STRING_OPERATIONS + , + _ch2_md0_str_read_glue +#endif /* NO_STRING_OPERATIONS */ +}; + +READ_POINTERS pointers_mode1_ch2 = +{ + _ch2_md1_byte_read_glue, + _ch2_md1_word_read_glue + +#ifndef NO_STRING_OPERATIONS + , + _ch2_md1_str_read_glue +#endif /* NO_STRING_OPERATIONS */ +}; +#else /* AVID */ + +extern void rdm0_string_ch2 IPT3(UTINY *, dest, ULONG, offset, ULONG, count ); +extern void rdm1_string_ch2 IPT3(UTINY *, dest, ULONG, offset, ULONG, count ); +extern IU32 rdm0_byte_ch2 IPT1(ULONG, offset ); +extern IU32 rdm1_byte_ch2 IPT1(ULONG, offset ); +extern IU32 rdm0_word_ch2 IPT1(ULONG, offset ); +extern IU32 rdm1_word_ch2 IPT1(ULONG, offset ); + +READ_POINTERS pointers_mode0_ch2 = +{ + rdm0_byte_ch2, + rdm0_word_ch2 + +#ifndef NO_STRING_OPERATIONS + , + rdm0_string_ch2 +#endif /* NO_STRING_OPERATIONS */ +}; + +READ_POINTERS pointers_mode1_ch2 = +{ + rdm1_byte_ch2, + rdm1_word_ch2 + +#ifndef NO_STRING_OPERATIONS + , + rdm1_string_ch2 +#endif /* NO_STRING_OPERATIONS */ +}; + +#endif /* A_VID */ + + +#ifdef A3CPU +#ifdef C_VID +GLOBAL READ_POINTERS C_vid_reads; +#endif /* C_VID */ +#else +#ifdef C_VID +GLOBAL READ_POINTERS C_vid_reads; +#else +GLOBAL READ_POINTERS A_vid_reads; +#endif /* A_VID */ +#endif /* A3CPU */ + +#ifndef GISP_CPU +#if (defined(A_VID) && defined(A2CPU) && !defined(A3CPU)) || (defined(A3CPU) && defined(C_VID)) +extern IU32 _glue_b_read(); +extern IU32 _glue_w_read(); +extern void _glue_str_read(); + +READ_POINTERS Glue_reads = +{ + _glue_b_read, + _glue_w_read + +#ifndef NO_STRING_OPERATIONS + , + _glue_str_read +#endif /* NO_STRING_OPERATIONS */ + +}; +#endif +#endif /* GISP_CPU */ + +#else /* CPU_40_STYLE - evid */ + +#ifdef C_VID +/* C_Evid glue */ +extern read_byte_ev_glue IPT1(IU32, eaOff); +extern read_word_ev_glue IPT1(IU32, eaOff); +extern read_str_fwd_ev_glue IPT3(IU8 *, dest, IU32, eaOff, IU32, count); +READ_POINTERS Glue_reads = +{ + read_byte_ev_glue, + read_word_ev_glue, + read_str_fwd_ev_glue +}; +#else +READ_POINTERS Glue_reads = { 0, 0, 0 }; +#endif /* C_VID */ +READ_POINTERS simple_reads; +READ_POINTERS pointers_mode0_nch; +READ_POINTERS pointers_mode1_nch; +READ_POINTERS pointers_mode0_ch4; +READ_POINTERS pointers_mode1_ch4; +READ_POINTERS pointers_mode0_ch2; +READ_POINTERS pointers_mode1_ch2; +GLOBAL READ_POINTERS C_vid_reads; +GLOBAL READ_POINTERS A_vid_reads; + +ULONG EasVal; +IU32 latchval; /* for get_latch() etc macros */ +#endif /* CPU_40_STYLE - evid */ + +READ_STATE read_state; + +#ifndef NO_STRING_OPERATIONS +GLOBAL void (*string_read_ptr)(); +#endif /* NO_STRING_OPERATIONS */ + +/* comparison masks for read mode 1 */ +ULONG comp0, comp1, comp2, comp3; + +/* colour comparison don't care masks for read mode 1 */ +ULONG dont_care0, dont_care1, dont_care2, dont_care3; + +/* [5.2.2 INTERNAL PROCEDURE DEFINITIONS] */ + +/* Used to correct writes to M when in mode 0 */ + +GLOBAL IU32 +rdm0_byte_ch2 IFN1(ULONG, offset ) +{ + IU32 lsb; + UTINY temp; + + lsb = offset & 0x1; + offset = ( offset >> 1 ) << 2; + setVideolatches(*(IU32 *)( EGA_planes + offset )); + + offset |= lsb; + + temp = EGA_CPU.read_mapped_plane_ch2[offset]; + +#ifdef C_VID + EasVal = temp; +#endif + return( temp ); +} + +/* Used to correct writes to M when in mode 0 */ + +GLOBAL IU32 +rdm0_word_ch2 IFN1(ULONG, offset ) +{ + IU32 temp; + IU32 lsb; + + setVideolatches(*(IU32 *)( EGA_planes + + ((( offset + 1 ) >> 1 ) << 2 ))); + + lsb = offset & 0x1; + offset = ( offset >> 1 ) << 2; + + if( lsb ) + { + temp = EGA_CPU.read_mapped_plane_ch2[offset + 1]; + temp |= ( EGA_CPU.read_mapped_plane_ch2[offset + 4] << 8 ); + } + else + { + temp = EGA_CPU.read_mapped_plane_ch2[offset]; + temp |= ( EGA_CPU.read_mapped_plane_ch2[offset + 1] << 8 ); + } + +#ifdef C_VID + EasVal = temp; +#endif + return( temp ); +} + +/* Used to correct writes to M when in mode 0 */ + +GLOBAL void +rdm0_string_ch2 IFN3(UTINY *, dest, ULONG, offset, ULONG, count ) +{ + ULONG lsb; + ULONG inc; + UTINY *planes; + + if( getDF() ) + setVideolatches(*(IU32 *)( EGA_planes + (( offset >> 1 ) << 2 ))); + else + setVideolatches(*(IU32 *)( EGA_planes + ((( offset + count - 1 ) >> 1 ) << 2 ))); + + lsb = offset & 0x1; + offset = ( offset >> 1 ) << 2; + + if( lsb ) + { + offset += 1; + inc = 3; + } + else + inc = 1; + + planes = EGA_CPU.read_mapped_plane_ch2; + + while( count-- ) + { +#ifdef BACK_M + *dest-- = *(planes + offset); +#else + *dest++ = *(planes + offset); +#endif + offset += inc; + inc ^= 0x2; + } +} + +/* Used to correct writes to M when in mode 1 */ + +GLOBAL IU32 +rdm1_byte_ch2 IFN1(ULONG, offset ) +{ + IU32 temp, lsb; + + lsb = offset & 0x1; + offset = ( offset >> 1 ) << 2; + setVideolatches(*(IU32 *)( EGA_planes + offset )); + + if( lsb ) + { + offset += 1; + + temp = (IU32)((( EGA_plane01[offset] ^ comp1 ) | dont_care1 ) + & (( EGA_plane23[offset] ^ comp3 ) | dont_care3 )); + } + else + { + temp = (IU32)((( EGA_plane01[offset] ^ comp0 ) | dont_care0 ) + & (( EGA_plane23[offset] ^ comp2 ) | dont_care2 )); + } + +#ifdef C_VID + EasVal = temp; +#endif + return( temp ); +} + +GLOBAL IU32 +rdm1_word_ch2 IFN1(ULONG, offset ) /* used to correct writes to M when in mode 1 */ +{ + IU32 temp1, temp2, lsb; + + setVideolatches(*(IU32 *)( EGA_planes + ((( offset + 1 ) >> 1 ) << 2 ))); + + lsb = offset & 0x1; + offset = ( offset >> 1 ) << 2; + + if( lsb ) + { + offset += 1; + temp1 = (( EGA_plane01[offset] ^ comp1 ) | dont_care1 ) + & (( EGA_plane23[offset] ^ comp3 ) | dont_care3 ); + + offset += 3; + temp2 = (( EGA_plane01[offset] ^ comp0 ) | dont_care0 ) + & (( EGA_plane23[offset] ^ comp2 ) | dont_care2 ); + } + else + { + temp1 = (( EGA_plane01[offset] ^ comp0 ) | dont_care0 ) + & (( EGA_plane23[offset] ^ comp2 ) | dont_care2 ); + + offset += 1; + temp2 = (( EGA_plane01[offset] ^ comp1 ) | dont_care1 ) + & (( EGA_plane23[offset] ^ comp3 ) | dont_care3 ); + } + + temp1 |= temp2 << 8; + +#ifdef C_VID + EasVal = temp1; +#endif + return( temp1 ); +} + +GLOBAL void +rdm1_string_ch2 IFN3(UTINY *, dest, ULONG, offset, ULONG, count ) /* used to correct writes to M when in mode 1 */ +{ + UTINY *p01, *p23; + ULONG tcount, lsb; + +#ifdef BACK_M +#define PLUS - +#define MINUS + +#else +#define PLUS + +#define MINUS - +#endif + + if( getDF() ) + setVideolatches(*(IU32 *)( EGA_planes + (( offset >> 1 ) << 2 ))); + else + setVideolatches(*(IU32 *)( EGA_planes + ((( offset + count - 1 ) >> 1 ) << 2 ))); + + dest = dest PLUS count; + + lsb = offset & 0x1; + offset = ( offset >> 1 ) << 2; + + /* Two streams of source data */ + + p01 = &EGA_plane01[offset]; + p23 = &EGA_plane23[offset]; + + offset = 0; + + if( lsb ) + { + *(dest MINUS count) = (( *(p01 + 1) ^ comp1 ) | dont_care1 ) + & (( *(p23 + 1) ^ comp3 ) | dont_care3 ); + count--; + offset += 4; + } + + tcount = count & ~1; + + while( tcount-- ) + { + *(dest MINUS tcount) = (( *(p01 + offset) ^ comp0) | dont_care0 ) + & (( *(p23 + offset) ^ comp2 ) | dont_care2 ); + + tcount--; + offset += 1; + + *(dest MINUS tcount) = (( *(p01 + offset) ^ comp1) | dont_care1 ) + & (( *(p23 + offset) ^ comp3 ) | dont_care3 ); + + offset += 3; + } + + if( count & 1 ) + { + *(dest MINUS count) = (( *(p01 + offset) ^ comp0 ) | dont_care0 ) + & (( *(p23 + offset) ^ comp2 ) | dont_care2 ); + } +} + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_GRAPHICS.seg" +#endif + +#if !(defined(NTVDM) && defined(MONITOR)) +GLOBAL void +Glue_set_vid_rd_ptrs IFN1(READ_POINTERS *, handler ) +{ +#ifndef CPU_40_STYLE /* EVID */ +#ifdef A3CPU +#ifdef C_VID + + C_vid_reads.b_read = handler->b_read; + C_vid_reads.w_read = handler->w_read; + C_vid_reads.str_read = handler->str_read; + +#else + UNUSED(handler); +#endif +#else /* A3CPU */ +#ifdef C_VID + + C_vid_reads.b_read = handler->b_read; + C_vid_reads.w_read = handler->w_read; + +#ifndef NO_STRING_OPERATIONS + C_vid_reads.str_read = handler->str_read; +#endif /* NO_STRING_OPERATIONS */ + +#else + + A_vid_reads = *handler; + +#if 0 + A_vid_reads.b_read = handler->b_read; + A_vid_reads.w_read = handler->w_read; +#ifndef NO_STRING_OPERATIONS + A_vid_reads.str_read = handler->str_read; +#endif /* NO_STRING_OPERATIONS */ +#endif /* 0 */ + +#endif /* C_VID */ +#endif /* A3CPU */ +#endif /* CPU_40_STYLE - EVID */ +} +#endif /* !(NTVDM && MONITOR) */ + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_EGA.seg" +#endif + +GLOBAL void +update_shift_count IFN0() + +{ + switch( EGA_CPU.chain ) + { + case UNCHAINED: + + /* + * Interleaved - need a shift count for accessing the mapped plane + */ + +#ifdef BIGEND + setVideoread_shift_count(( 3 - getVideoread_mapped_plane() ) << 3); +#else + setVideoread_shift_count(getVideoread_mapped_plane() << 3); +#endif /* BIGEND */ + + + break; + + case CHAIN2: + + /* + * Planar - need an offset for accessing the mapped plane + */ + + EGA_CPU.read_mapped_plane_ch2 = EGA_planes + + (getVideoread_mapped_plane() & 2) * EGA_PLANE_SIZE; + + break; + +#ifdef VGG + case CHAIN4: + + /* + * Interleaved - doesn't need any magic numbers + */ + + break; +#endif /* VGG */ + } +} + +void +ega_read_routines_update IFN0() + +{ + LOCAL BOOL ram_off = TRUE; /* optimised to avoid updates if ram disabled */ + LOCAL READ_POINTERS *read_ptrs; + + /* ram disabled and not now being enabled */ + + if( ram_off && (!EGA_CPU.ram_enabled )) + return; + + if( !EGA_CPU.ram_enabled ) /* video off, just return 0xff */ + { +#ifdef CPU_40_STYLE + SetReadPointers(2); +#else /* CPU_40_STYLE */ + +#ifndef GISP_CPU +#ifdef A3CPU +#ifdef C_VID + Glue_set_vid_rd_ptrs( &pointers_RAM_off ); +#else + Cpu_set_vid_rd_ptrs( &pointers_RAM_off ); +#endif /* C_VID */ +#else + Glue_set_vid_rd_ptrs( &pointers_RAM_off ); +#endif /* A3CPU */ +#endif /* GISP_CPU */ + +#ifndef NO_STRING_OPERATIONS + setVideofwd_str_read_addr(_rd_ram_dsbld_fwd_string_lge); + setVideofwd_str_read_addr(_rd_ram_dsbld_bwd_string_lge); +#endif /* NO_STRING_OPERATIONS */ + +#endif /* CPU_40_STYLE */ + + ram_off = TRUE; /* prevent recalcs until ram enabled again */ + + return; + } + + ram_off = FALSE; + + if( read_state.mode == 0 ) /* read mode 0 */ + { + /* chained in write mode implies chained for reading too */ + + switch( EGA_CPU.chain ) + { + case UNCHAINED: +#ifdef CPU_40_STYLE + SetReadPointers(0); +#else /* CPU_40_STYLE */ + + read_ptrs = &pointers_mode0_nch; +#ifndef NO_STRING_OPERATIONS + setVideofwd_str_read_addr(_rdm0_fwd_string_nch_lge); + setVideobwd_str_read_addr(_rdm0_bwd_string_nch_lge); +#endif /* NO_STRING_OPERATIONS */ +#endif /* CPU_40_STYLE */ + break; + + case CHAIN2: +#ifdef CPU_40_STYLE + SetReadPointers(0); +#else /* CPU_40_STYLE */ + + read_ptrs = &pointers_mode0_ch2; +#ifndef NO_STRING_OPERATIONS + string_read_ptr = rdm0_string_ch2; +#endif /* NO_STRING_OPERATIONS */ +#endif /* CPU_40_STYLE */ + EGA_CPU.read_mapped_plane_ch2 = EGA_planes + + (getVideoread_mapped_plane() & 2)*EGA_PLANE_SIZE; + break; + +#ifdef VGG + case CHAIN4: +#ifdef CPU_40_STYLE + SetReadPointers(0); +#else /* CPU_40_STYLE */ + + read_ptrs = &pointers_mode0_ch4; +#ifndef NO_STRING_OPERATIONS + setVideofwd_str_read_addr(_rdm0_fwd_string_ch4_lge); + setVideobwd_str_read_addr(_rdm0_bwd_string_ch4_lge); +#endif + +#endif /* CPU_40_STYLE */ + break; +#endif /* VGG */ + } + } + else /* read mode 1 */ + { + switch( EGA_CPU.chain ) + { + case UNCHAINED: + /* preserve or complement values by xor with comps later */ + + setVideodont_care(~sr_lookup[read_state.colour_dont_care]); + setVideocolour_comp(~sr_lookup[read_state.colour_compare]); + +#ifdef CPU_40_STYLE + SetReadPointers(1); +#else /* CPU_40_STYLE */ + + read_ptrs = &pointers_mode1_nch; +#ifndef NO_STRING_OPERATIONS + setVideofwd_str_read_addr(_rdm1_fwd_string_nch_lge); + setVideobwd_str_read_addr(_rdm1_bwd_string_nch_lge); +#endif /* NO_STRING_OPERATIONS */ +#endif /* CPU_40_STYLE */ + break; + + case CHAIN2: + dont_care0 = read_state.colour_dont_care & 1 ? 0 : 0xff; + dont_care1 = read_state.colour_dont_care & 2 ? 0 : 0xff; + dont_care2 = read_state.colour_dont_care & 4 ? 0 : 0xff; + dont_care3 = read_state.colour_dont_care & 8 ? 0 : 0xff; + + comp0 = read_state.colour_compare & 1 ? 0 : 0xff; + comp1 = read_state.colour_compare & 2 ? 0 : 0xff; + comp2 = read_state.colour_compare & 4 ? 0 : 0xff; + comp3 = read_state.colour_compare & 8 ? 0 : 0xff; + +#ifdef CPU_40_STYLE + SetReadPointers(1); +#else /* CPU_40_STYLE */ + + read_ptrs = &pointers_mode1_ch2; +#ifndef NO_STRING_OPERATIONS + string_read_ptr = rdm1_string_ch2; +#endif /* NO_STRING_OPERATIONS */ + +#endif /* CPU_40_STYLE */ + + break; + +#ifdef VGG + case CHAIN4: + setVideodont_care(( read_state.colour_dont_care & 1 ) ? 0 : 0xff); + setVideocolour_comp(( read_state.colour_compare & 1 ) ? 0 : 0xff); + +#ifdef CPU_40_STYLE + SetReadPointers(1); +#else /* CPU_40_STYLE */ + + read_ptrs = &pointers_mode1_ch4; +#ifndef NO_STRING_OPERATIONS + setVideofwd_str_read_addr(_rdm1_fwd_string_ch4_lge); + setVideobwd_str_read_addr(_rdm1_bwd_string_ch4_lge); +#endif /* NO_STRING_OPERATIONS */ +#endif /* CPU_40_STYLE */ + break; +#endif /* VGG */ + } + } + + update_shift_count(); + update_banking(); + +#ifndef CPU_40_STYLE +#ifndef GISP_CPU +#ifdef A3CPU +#ifdef C_VID + Glue_set_vid_rd_ptrs( read_ptrs ); +#else + Cpu_set_vid_rd_ptrs( read_ptrs ); +#endif /* C_VID */ +#else + Glue_set_vid_rd_ptrs( read_ptrs ); +#endif /* A3CPU */ +#endif /* GISP_CPU */ +#endif /* CPU_40_STYLE */ +} + +void +ega_read_init IFN0() + +{ + read_state.mode = 0; + read_state.colour_compare = 0x0f; /* looking for bright white */ + read_state.colour_dont_care = 0xf; /* all planes significant */ + +#ifdef CPU_40_STYLE + SetReadPointers(2); +#else /* CPU_40_STYLE */ + +#ifndef NO_STRING_OPERATIONS + setVideofwd_str_read_addr(_rd_ram_dsbld_fwd_string_lge); + setVideobwd_str_read_addr(_rd_ram_dsbld_bwd_string_lge); +#endif /* NO_STRING_OPERATIONS */ +#endif /* CPU_40_STYLE */ + + setVideoread_mapped_plane(0); + + ega_read_routines_update(); /* initialise M */ + +#if defined(EGA_DUMP) || defined(EGA_STAT) + dump_read_pointers_init(); +#endif + +#if !defined(EGATEST) && !defined(A3CPU) + read_pointers = Glue_reads; +#endif /* EGATEST */ + +#ifndef CPU_40_STYLE +#ifndef GISP_CPU +#ifdef A3CPU +#ifdef C_VID + Cpu_set_vid_rd_ptrs( &Glue_reads ); + Glue_set_vid_rd_ptrs( &pointers_mode0_nch ); +#else + Cpu_set_vid_rd_ptrs( &pointers_mode0_nch ); +#endif /* C_VID */ +#else /* A3CPU */ + Glue_set_vid_rd_ptrs( &pointers_mode0_nch ); +#endif /* A3CPU */ +#endif /* GISP_CPU */ +#endif /* CPU_40_STYLE */ +} + +void +ega_read_term IFN0() + +{ + /* + * Turn off read calculations for non EGA/VGA adaptors + */ + +#ifdef CPU_40_STYLE + SetReadPointers(3); +#else /* CPU_40_STYLE */ + +#ifndef GISP_CPU +#ifdef A3CPU +#ifdef C_VID + Glue_set_vid_rd_ptrs( &simple_reads ); +#else + Cpu_set_vid_rd_ptrs( &simple_reads ); +#endif /* C_VID */ +#else + Glue_set_vid_rd_ptrs( &simple_reads ); +#endif /* A3CPU */ +#endif /* GISP_CPU */ +#endif /* CPU_40_STYLE */ +} + +#endif /* REAL_VGA */ +#endif /* EGG */ + +#endif /* !(NTVDM && MONITOR) */ diff --git a/private/mvdm/softpc.new/base/video/ega_trcr.c b/private/mvdm/softpc.new/base/video/ega_trcr.c new file mode 100644 index 000000000..da7d21a41 --- /dev/null +++ b/private/mvdm/softpc.new/base/video/ega_trcr.c @@ -0,0 +1,278 @@ +#include "insignia.h" +#include "host_def.h" + +#if !defined(NTVDM) || (defined(NTVDM) && !defined(X86GFX) ) + +/* + * SccsID @(#)ega_tracer.c 1.7 8/25/93 Copyright Insignia Solutions + * Set of routines to output all accesses to the EGA, in a form that + * can be read in & executed by the stand-alone EGA. + * + */ + + +#ifdef EGA_DUMP + +#include +#include TypesH + +#include "xt.h" +#include "sas.h" +#include "gmi.h" +#include "egatrace.h" +#include "egaports.h" +#include "gfx_upd.h" +#include CpuH + +IMPORT VOID host_applClose IPT0(); + +static FILE *dump_file; +mem_handlers dump_writes; + +static void putl(addr,dest_file) +byte *addr; +FILE *dest_file; +{ + sys_addr addr_m = addr-M; + + putc(addr_m & 0xff,dest_file); + addr_m >>= 8; + putc(addr_m & 0xff,dest_file); + addr_m >>= 8; + putc(addr_m & 0xff,dest_file); +} + +dump_inb(port) +int port; +{ + putc(INB,dump_file); + putc(port & 0xff,dump_file); + putc((port>>8) & 0xff,dump_file); +} + +dump_inw(port) +int port; +{ + putc(INW,dump_file); + putc(port & 0xff,dump_file); + putc((port>>8) & 0xff,dump_file); +} + +dump_outb(port,value) +int port,value; +{ + putc(OUTB,dump_file); + putc(port & 0xff,dump_file); + putc((port>>8) & 0xff,dump_file); + putc(value,dump_file); +} + +dump_outw(port,value) +int port,value; +{ + putc(OUTW,dump_file); + putc(port & 0xff,dump_file); + putc((port>>8) & 0xff,dump_file); + putc(value & 0xff,dump_file); + putc((value >> 8),dump_file); +} + +boolean dump_b_write(addr) +host_addr addr; +{ + putc(WRITE_BYTE,dump_file); + putl(addr,dump_file); + putc(*addr,dump_file); + + (*dump_writes.b_write)(addr); +} + +boolean dump_w_write(addr) +host_addr addr; +{ + putc(WRITE_WORD,dump_file); + putl(addr,dump_file); + putc(*addr,dump_file); + putc(*(addr+1),dump_file); + + (*dump_writes.w_write)(addr); +} + +boolean dump_b_fill(l_addr,h_addr) +host_addr l_addr,h_addr; +{ + putc(FILL_BYTE,dump_file); + putl(l_addr,dump_file); + putl(h_addr,dump_file); + putc(*l_addr,dump_file); + + (*dump_writes.b_fill)(l_addr,h_addr); +} + +boolean dump_w_fill(l_addr,h_addr) +host_addr l_addr,h_addr; +{ + putc(FILL_WORD,dump_file); + putl(l_addr,dump_file); + putl(h_addr,dump_file); + putc(*l_addr,dump_file); + putc(*(l_addr+1),dump_file); + + (*dump_writes.w_fill)(l_addr,h_addr); +} + +boolean dump_b_move(l_addr,h_addr) +host_addr l_addr,h_addr; +{ + host_addr i; + + putc(MOVE_BYTE,dump_file); + putl(l_addr,dump_file); + putl(h_addr,dump_file); + putl(haddr_of_src_string,dump_file); + for(i=l_addr;i<=h_addr;i++) + { + putc(*i,dump_file); + } + + (*dump_writes.b_move)(l_addr,h_addr); +} + +boolean dump_w_move(l_addr,h_addr) +host_addr l_addr,h_addr; +{ + host_addr i; + + putc(MOVE_BYTE,dump_file); + putl(l_addr,dump_file); + putl(h_addr,dump_file); + putl(haddr_of_src_string,dump_file); + for(i=l_addr;i<=h_addr;i++) + { + putc(*i,dump_file); + } + + (*dump_writes.w_move)(l_addr,h_addr); +} + +dump_tick() +{ + putc(TICK,dump_file); +} + +dump_scroll(mode,direction,video_addr,video_off,video_cols,lr,tc,rd,cd,lines,attr) +byte mode,direction; +sys_addr video_addr; +word video_off,video_cols; +byte lr,tc,rd,cd,lines,attr; +{ + putc(SCROLL,dump_file); + putc(mode,dump_file); + putc(direction,dump_file); + putl(video_addr,dump_file); + putc(video_off,dump_file); + putc(video_off >> 8,dump_file); + putc(video_cols,dump_file); + putc(lr,dump_file); + putc(tc,dump_file); + putc(rd,dump_file); + putc(cd,dump_file); + putc(lines,dump_file); + putc(attr,dump_file); +} + + +static void recalc_dump(),byte_read_dump(),word_read_dump(),string_read_dump(); + +struct READ_POINTERS + { + void (*recalc_read) (); + void (*byte_read) (); + void (*word_read) (); + void (*string_read) (); + } dump_read_pointers = { recalc_dump, byte_read_dump, word_read_dump, + string_read_dump }; + +extern struct READ_POINTERS read_pointers; + +/* + * cpu read handlers + * rely on C being called if read_pointer.xxxx_read + * does not point at byte_read_mode0 + */ + +static void recalc_dump() +{ + printf("recalc dump called!!!\n"); +} + +static void byte_read_dump(addr) +byte *addr; +{ + putc(READ_BYTE,dump_file); + putl(addr,dump_file); + (*dump_read_pointers.byte_read)(addr); +} + +static void word_read_dump(addr) +byte *addr; +{ + putc(READ_WORD,dump_file); + putl(addr,dump_file); + (*dump_read_pointers.word_read)(addr); +} + +static void string_read_dump(laddr,haddr) +byte *laddr,*haddr; +{ + putc(READ_STRING,dump_file); + putl(laddr,dump_file); + putl(haddr,dump_file); + putc(getDF(),dump_file); + (*dump_read_pointers.string_read)(laddr,haddr); +} + +dump_read_pointers_init() +{ + read_pointers = dump_read_pointers; +} + +dump_change_read_pointers(ptr) +struct READ_POINTERS *ptr; +{ + dump_read_pointers = *ptr; +} + +static mem_handlers catch_writes = + {dump_b_write,dump_w_write,dump_b_fill,dump_w_fill,dump_b_move,dump_w_move}; + +void dump_add_checkpoint() +{ + putc(CHECKPT,dump_file); +} + +dump_init(file_name,type) +char *file_name; +char type; +{ + dump_file = fopen(file_name,"w"); + if(dump_file == NULL) + { + host_applClose(); + printf("ARRGGH can't open %s\n",file_name); + exit(1); + } + putc(type,dump_file); + + dump_writes = vid_handlers; + gmi_define_mem(VIDEO,&catch_writes); +} + +dump_end() +{ + fclose(dump_file); +} + +#endif + +#endif /* !NTVDM | (NTVDM & !X86GFX) */ diff --git a/private/mvdm/softpc.new/base/video/ega_vide.c b/private/mvdm/softpc.new/base/video/ega_vide.c new file mode 100644 index 000000000..28f73127e --- /dev/null +++ b/private/mvdm/softpc.new/base/video/ega_vide.c @@ -0,0 +1,2356 @@ +#include "insignia.h" +#include "host_def.h" +/* INSIGNIA (SUB)MODULE SPECIFICATION + ----------------------------- + + + THIS PROGRAM SOURCE FILE IS SUPPLIED IN CONFIDENCE TO THE + CUSTOMER, THE CONTENTS OR DETAILS OF ITS OPERATION MUST + NOT BE DISCLOSED TO ANY OTHER PARTIES WITHOUT THE EXPRESS + AUTHORISATION FROM THE DIRECTORS OF INSIGNIA SOLUTIONS LTD. + +DOCUMENT : EGA BIOS + +RELATED DOCS : IBM EGA Technical reference. + +DESIGNER : William Gulland + +REVISION HISTORY : +First version : 17/8/88 William + +SUBMODULE NAME : ega_video + +PURPOSE : Emulate IBM EGA BIOS. + + +SccsID[]="@(#)ega_video.c 1.70 07/04/95 Copyright Insignia Solutions Ltd."; + + +[1.INTERMODULE INTERFACE SPECIFICATION] + + +[1.1 INTERMODULE EXPORTS] + + PROCEDURES() : give procedure type,name, and argument types + void ega_video_init() + void ega_video_io() + + DATA : give type and name + +------------------------------------------------------------------------- +[1.2 DATATYPES FOR [1.1] (if not basic C types)] + + STRUCTURES/TYPEDEFS/ENUMS: + +------------------------------------------------------------------------- +[1.3 INTERMODULE IMPORTS] + (not o/s objects or standard libs) + + PROCEDURES() : give name, and source module name + + DATA : give name, and source module name + +------------------------------------------------------------------------- + +[1.4 DESCRIPTION OF INTERMODULE INTERFACE] + +[1.4.1 IMPORTED OBJECTS] + +DATA OBJECTS : specify in following procedure descriptions + how these are accessed (read/modified) + +[1.4.2 EXPORTED OBJECTS] +========================================================================= +PROCEDURE : ega_video_init() + +PURPOSE : Initialize EGA-specific bits of the video BIOS. + +PARAMETERS None + +ACCESS : called from video_init if EGA installed. + +DESCRIPTION : describe what (not how) function does + + Initializes ega_info & ega_info3. + +========================================================================= + +/*======================================================================= +[3.INTERMODULE INTERFACE DECLARATIONS] +========================================================================= + +[3.1 INTERMODULE IMPORTS] */ + +/* [3.1.1 #INCLUDES] */ + + +#ifdef EGG +#include +#include TypesH +#include FCntlH + +#include "xt.h" +#include CpuH +#include "sas.h" +#include "ios.h" +#include "gmi.h" +#include "gvi.h" +#include "bios.h" +#include "error.h" +#include "config.h" +#include "equip.h" +#include "egacpu.h" +#include "egaports.h" +#include "gfx_upd.h" +#include "egagraph.h" +#include "egaread.h" +#include "video.h" +#include "egavideo.h" +#include "vgaports.h" +#include "debug.h" +#include "timer.h" +#include "host_gfx.h" +#include "idetect.h" +#ifndef PROD +#include "trace.h" +#endif +#include "host.h" + +#ifdef GISP_SVGA +#include HostHwVgaH +#include "hwvga.h" +#endif /* GISP_SVGA */ + +/* [3.1.2 DECLARATIONS] */ + +GLOBAL IU8 Video_mode; /* Shadow copy of BIOS video mode */ +GLOBAL IU8 Currently_emulated_video_mode = 0; /* Holds last video mode + * set through bios */ + +#if defined(NTVDM) && defined(X86GFX) +/* Loads font from PC's BIOS into video memory */ +IMPORT void loadNativeBIOSfont IPT1( int, lines ); +#endif + +#ifdef NTVDM +IMPORT int soft_reset; +IMPORT BOOL VDMForWOW; +IMPORT BOOL WowModeInitialized; +#ifndef X86GFX +IMPORT void mouse_video_mode_changed(int new_video_mode); +#endif +#endif /* NTVDM */ + +#ifdef CPU_40_STYLE +GLOBAL IBOOL forceVideoRmSemantics = FALSE; +#endif + +/* +5.MODULE INTERNALS : (not visible externally, global internally)] + +[5.1 LOCAL DECLARATIONS] */ + +#ifdef ANSI +GLOBAL void ega_set_mode(void),ega_char_gen(void); +static void ega_set_palette(void),ega_alt_sel(void); +GLOBAL void ega_set_cursor_mode(void); +static void ega_emul_set_palette(void); +#else +GLOBAL void ega_set_mode(),ega_char_gen(); +static void ega_set_palette(),ega_alt_sel(); +GLOBAL void ega_set_cursor_mode(); +static void ega_emul_set_palette(); +#endif /* ANSI */ +static void (*ega_video_func[]) () = { + ega_set_mode, + ega_set_cursor_mode, + vd_set_cursor_position, + vd_get_cursor_position, + vd_get_light_pen, + vd_set_active_page, + vd_scroll_up, + vd_scroll_down, + vd_read_attrib_char, + vd_write_char_attrib, + vd_write_char, + ega_emul_set_palette, + vd_write_dot, + vd_read_dot, + vd_write_teletype, + vd_get_mode, + ega_set_palette, + ega_char_gen, + ega_alt_sel, + vd_write_string, +#ifdef VGG + not_imp, + not_imp, + not_imp, + not_imp, + not_imp, + not_imp, + vga_disp_comb, /* Function 1A */ + vga_disp_func, + vga_int_1C, /* Save/Restore Video State */ +#endif + }; + +static int v7_mode_64_munge[4] ={0, 3, 12, 15}; +IMPORT half_word bg_col_mask; + +#ifdef VGG +/* + * Define arrays for mapping the Video BIOS call start and end + * cursor scanline to their corresponding VGA/EGA register values. + * There are seperate arrays for cursor start and end and for + * 8x8 and 8x16 char cell sizes. + */ + +UTINY vga_cursor8_start[17][17] = { + /*00*/ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, + /*01*/ 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + /*02*/ 0x00, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + /*03*/ 0x00, 0x01, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + /*04*/ 0x00, 0x01, 0x05, 0x06, 0x07, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + /*05*/ 0x00, 0x01, 0x02, 0x05, 0x06, 0x07, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + /*06*/ 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + /*07*/ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + /*08*/ 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, 0x05, 0x06, 0x07, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + /*09*/ 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, 0x04, 0x05, 0x06, 0x07, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + /*10*/ 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, 0x04, 0x04, 0x05, 0x06, 0x07, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, + /*11*/ 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x05, 0x06, 0x07, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + /*12*/ 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x05, 0x06, 0x07, 0x0c, 0x0c, 0x0c, 0x0c, + /*13*/ 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x05, 0x06, 0x07, 0x0d, 0x0d, 0x0d, + /*14*/ 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x05, 0x06, 0x07, 0x0e, 0x0e, + /*15*/ 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x05, 0x06, 0x07, 0x0f, + /*16*/ 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x05, 0x06, 0x07, + }; + + +UTINY vga_cursor16_start[17][17] = { + /*00*/ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, + /*01*/ 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + /*02*/ 0x00, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + /*03*/ 0x00, 0x01, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + /*04*/ 0x00, 0x01, 0x0c, 0x0d, 0x0e, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + /*05*/ 0x00, 0x01, 0x02, 0x0c, 0x0d, 0x0e, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + /*06*/ 0x00, 0x01, 0x02, 0x08, 0x0c, 0x0d, 0x0e, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + /*07*/ 0x00, 0x01, 0x02, 0x08, 0x08, 0x0c, 0x0d, 0x0e, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + /*08*/ 0x00, 0x01, 0x02, 0x08, 0x08, 0x08, 0x0c, 0x0d, 0x0e, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + /*09*/ 0x00, 0x01, 0x02, 0x08, 0x08, 0x08, 0x08, 0x0c, 0x0d, 0x0e, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, + /*10*/ 0x00, 0x01, 0x02, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0c, 0x0d, 0x0e, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, + /*11*/ 0x00, 0x01, 0x02, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0c, 0x0d, 0x0e, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, + /*12*/ 0x00, 0x01, 0x02, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0c, 0x0d, 0x0e, 0x0c, 0x0c, 0x0c, 0x0c, + /*13*/ 0x00, 0x01, 0x02, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0c, 0x0d, 0x0e, 0x0d, 0x0d, 0x0d, + /*14*/ 0x00, 0x01, 0x02, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0c, 0x0d, 0x0e, 0x0e, 0x0e, + /*15*/ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x0f, + /*16*/ 0x00, 0x01, 0x02, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0c, 0x0d, 0x0e, + }; + +#ifdef USE_CURSOR_END_TABLES + +UTINY vga_cursor8_end[17][17] = { + /*00*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /*01*/ 0x01, 0x01, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + /*02*/ 0x02, 0x02, 0x02, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + /*03*/ 0x03, 0x03, 0x03, 0x03, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + /*04*/ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + /*05*/ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + /*06*/ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + /*07*/ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + /*08*/ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + /*09*/ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + /*10*/ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + /*11*/ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + /*12*/ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + /*13*/ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + /*14*/ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + /*15*/ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + /*16*/ 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }; + +UTINY vga_cursor16_end[17][17] = { + /*00*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /*01*/ 0x01, 0x01, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + /*02*/ 0x02, 0x02, 0x02, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + /*03*/ 0x03, 0x03, 0x03, 0x03, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + /*04*/ 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + /*05*/ 0x0f, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + /*06*/ 0x0f, 0x0f, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + /*07*/ 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + /*08*/ 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + /*09*/ 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + /*10*/ 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + /*11*/ 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + /*12*/ 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x0f, 0x0f, + /*13*/ 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x0f, + /*14*/ 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, + /*15*/ 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + /*16*/ 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, + }; +#endif /* USE_CURSOR_END_TABLES */ +#endif /* VGG */ + +/* [5.1.1 #DEFINES] */ +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "VIDEO_BIOS_EGA.seg" +#endif + +/* [5.1.2 TYPEDEF, STRUCTURE, ENUM DECLARATIONS] */ + + +/* [5.1.3 PROCEDURE() DECLARATIONS] */ + +/* ----------------------------------------------------------------------- +[5.2 LOCAL DEFINITIONS] + + [5.2.1 INTERNAL DATA DEFINITIONS */ + +/* [5.2.2 INTERNAL PROCEDURE DEFINITIONS] */ + + +/* +========================================================================== +FUNCTION : do_outb +PURPOSE : handy utility to output a value to an EGA chip register. +INPUT PARAMS : index port, register, value to write +RETURN PARAMS : None +========================================================================== +FUNCTION : follow_ptr +PURPOSE : handy utility to follow a 'long' intel pointer. +INPUT PARAMS : Address in M of the pointer +RETURN PARAMS : Address in M of the pointed-to byte. +========================================================================== +FUNCTION : low_set_mode +PURPOSE : Does low-level mode change. +EXTERNAL OBJECTS: list any used, and state changes incurred +RETURN VALUE : +INPUT PARAMS : mode: screen mode to change to. +RETURN PARAMS : +========================================================================== +FUNCTION : load_font +PURPOSE : load part of a font into EGA font memory. +EXTERNAL OBJECTS: list any used, and state changes incurred +RETURN VALUE : +INPUT PARAMS : sys_addr table Address in M of the character bitmaps + int count number of characters to redefine + int char_off first character to redefine + int font_no font to change + int nbytes Number of bytes per character +RETURN PARAMS : +========================================================================== +PROCEDURE : ega_set_mode() +PURPOSE : Switch screen mode. +PARAMETERS : AL = mode. + +GLOBALS : describe what exported data objects are + accessed and how. Likewise for imported + data objects. + +ACCESS : via ega_video_func[] jump table. + +RETURNED VALUE : None. + +DESCRIPTION : +========================================================================== +PROCEDURE : ega_alt_sel() +PURPOSE : Get EGA info +PARAMETERS : BL = function +GLOBALS : +ACCESS : via ega_video_func[] jump table. +RETURNED VALUE : None. +DESCRIPTION : +========================================================================== +FUNCTION : ega_set_palette +PURPOSE : brief description +EXTERNAL OBJECTS: list any used, and state changes incurred +RETURN VALUE : +INPUT PARAMS : +RETURN PARAMS : +========================================================================== +FUNCTION : ega_emul_set_palette +PURPOSE : brief description +EXTERNAL OBJECTS: list any used, and state changes incurred +RETURN VALUE : +INPUT PARAMS : +RETURN PARAMS : +========================================================================== +FUNCTION : ega_char_gen +PURPOSE : brief description +EXTERNAL OBJECTS: list any used, and state changes incurred +RETURN VALUE : +INPUT PARAMS : +RETURN PARAMS : +========================================================================== +FUNCTION : write_ch_set/xor() +PURPOSE : Output character to screen in EGA graphics modes. +EXTERNAL OBJECTS: list any used, and state changes incurred +RETURN VALUE : +INPUT PARAMS : +RETURN PARAMS : +========================================================================== +FUNCTION : name +PURPOSE : brief description +EXTERNAL OBJECTS: list any used, and state changes incurred +RETURN VALUE : +INPUT PARAMS : +RETURN PARAMS : +========================================================================== +*/ +#ifdef VGG +/* Called for not implemented functions */ +void not_imp IFN0() +{ + setAL(0); +} +#endif + +static void do_outb IFN3(int, index,int, ega_reg, byte, value) +{ + outb(index,ega_reg); + outb(index+1,value); +} + +sys_addr video_effective_addr IFN2(IU16, seg, IU16, offset) +{ +#ifdef CPU_40_STYLE + if (forceVideoRmSemantics) + { + /* can't call effective_addr, as the segment is almost + ** certainly bogus in prot mode. This mode of operation + ** should ONLY be used when we are bypassing going to v86 + ** mode to do a video bios operation (see WinVDD.c) + */ + return((sys_addr)((((IU32)seg)<<4) + offset)); + } + else +#endif + { + return effective_addr(seg, offset); + } +} + +sys_addr follow_ptr IFN1(sys_addr, addr) +{ + return video_effective_addr(sas_w_at_no_check(addr+2), + sas_w_at_no_check(addr)); +} + +void low_set_mode IFN1(int, mode) +{ + int i; + sys_addr save_addr,params_addr,palette_addr; + word temp_word; + half_word start, end, video_mode; + + + params_addr = find_mode_table(mode,&save_addr); + +/* setup Sequencer */ +#ifndef REAL_VGA + do_outb(EGA_SEQ_INDEX,0,1); /* Synchronous reset - turn off Sequencer */ +#else + do_outb(EGA_SEQ_INDEX,0,0); /* Reset - turn off Sequencer */ +#endif + do_outb(EGA_CRTC_INDEX,0x11,0); + for(i=0;i 0x13) + video_mode += 0x4c; + else if ((video_mode == 1) && extensions_controller.foreground_latch_1) + video_mode = extensions_controller.foreground_latch_1; + } + + if (video_mode >= 0x60) + { + video_pc_low_regen = vd_ext_graph_table[video_mode-0x60].start_addr; + video_pc_high_regen = vd_ext_graph_table[video_mode-0x60].end_addr; + } + else if (video_mode >= 0x40) + { + video_pc_low_regen = vd_ext_text_table[video_mode-0x40].start_addr; + video_pc_high_regen = vd_ext_text_table[video_mode-0x40].end_addr; + } + else + { + video_pc_low_regen = vd_mode_table[video_mode].start_addr; + video_pc_high_regen = vd_mode_table[video_mode].end_addr; + } +#else + video_pc_low_regen = vd_mode_table[video_mode].start_addr; + video_pc_high_regen = vd_mode_table[video_mode].end_addr; +#endif /* V7VGA */ + +#ifdef VGG + if (video_adapter == VGA) { + i = get_scanlines(); /* WARNING - needs the BIOS variables! */ + if(mode == 0x13 || mode > 0x65) + { + init_vga_dac(2); /* 256 colour DAC table */ + } + else if(i == RS200 || mode == 0x63 || mode == 0x64) + { + init_vga_dac(1); /* DACs to emulate CGA palette - RGB + Intensity*/ + } + else + { + init_vga_dac(0); /* DACs to emulate EGA palette - RGB + rgb */ + } + outb(VGA_DAC_MASK,0xff); + /* Initialize the fancy VGA palette stuff to look like an EGA */ + inb(EGA_IPSTAT1_REG, (half_word *)&temp_word); + outb(EGA_AC_INDEX_DATA, 20); /* Pixel padding register */ + outb(EGA_AC_INDEX_DATA, 0); /* Use first block of 64 in DACs */ + } +#endif +} + +/* Load part of a font into EGA font memory. */ +void load_font IFN5 + ( + sys_addr, table, /* Address in M of the character bitmaps */ + int, count, /* number of characters to redefine */ + int, char_off, /* first character to redefine */ + int, font_no, /* font to change */ + int, nbytes /* Number of bytes per character */ + ) +{ +#if !(defined(NTVDM) && defined(X86GFX)) + int i,j; + sys_addr font_addr; + sys_addr data_addr; +#endif /* !(NTVDM && X86GFX) */ + half_word temp_word; + half_word video_mode; + static word font_off[] = { 0, 0x4000, 0x8000, 0xc000, 0x2000, 0x6000, 0xa000, 0xe000 }; + +/* First switch to font loading mode */ + low_set_mode(FONT_LOAD_MODE); + + +#if defined(NTVDM) && defined(X86GFX) + loadNativeBIOSfont( 25 ); + +#else +#ifdef GISP_SVGA + if( hostIsFullScreen( ) ) + { + loadFontToVGA( table , count , char_off , font_no , nbytes ); + } + else + { + loadFontToEmulation( table , count , char_off , font_no , nbytes ); + } +#else /* GISP_SVGA */ + + + /* Work out where to put the font. */ + font_addr = 0xA0000 + font_off[font_no] + FONT_MAX_HEIGHT*char_off; + data_addr = table; + + for(i=0;i 0x13) + video_mode += 0x4c; + else if ((video_mode == 1) && extensions_controller.foreground_latch_1) + video_mode = extensions_controller.foreground_latch_1; +#endif /* V7VGA */ + + low_set_mode(video_mode); + inb(EGA_IPSTAT1_REG,&temp_word); + outb(EGA_AC_INDEX_DATA, EGA_PALETTE_ENABLE); /* re-enable video */ +} + +void recalc_text IFN1(int, height) +{ + int scan_lines; + half_word video_mode; + word screen_height; + half_word oflo; + half_word protect; +#ifdef NTVDM + MAX_SCAN_LINE crtc_reg9; +#endif + + video_mode = sas_hw_at_no_check(vd_video_mode); +#ifdef V7VGA + if (video_adapter == VGA) + if (video_mode > 0x13) + video_mode += 0x4c; + else if ((video_mode == 1) && extensions_controller.foreground_latch_1) + video_mode = extensions_controller.foreground_latch_1; +#endif /* V7VGA */ + + if(video_adapter == EGA && !(get_EGA_switches() & 1) && (video_mode < 4)) + scan_lines = 200; /* Low res text mode */ + else + scan_lines = get_screen_height() + 1; + + sas_store_no_check(ega_char_height, height); + sas_store_no_check(vd_rows_on_screen, scan_lines/height - 1); + if ( video_mode < 4 && scan_lines/height == 25 ) + sas_storew_no_check(VID_LEN, video_mode<2 ? 0x800 : 0x1000); + else + sas_storew_no_check(VID_LEN,(sas_hw_at_no_check(vd_rows_on_screen)+1)*sas_w_at_no_check(VID_COLS)*2); +#ifdef NTVDM + /* preserve other bits in register 9 for VGA */ + if (video_adapter == VGA) { + outb(EGA_CRTC_INDEX, 9); + inb(EGA_CRTC_DATA, (half_word *) &crtc_reg9); + crtc_reg9.as_bfld.maximum_scan_line = height -1; + outb(EGA_CRTC_DATA, crtc_reg9.as.abyte); + } + else + do_outb(EGA_CRTC_INDEX,9,height-1); /* Character height */ +#else + do_outb(EGA_CRTC_INDEX,9,height-1); /* Character height */ +#endif + do_outb(EGA_CRTC_INDEX,0xA,height-1); /* Cursor start */ + do_outb(EGA_CRTC_INDEX,0xB,0); /* Cursor end */ + + /* + * VGA adapter height setting occupies Vertical Display End register + * plus 2 bits in the overflow register. The overflow register may also + * be write protected. + */ + if (video_adapter == VGA) + { +#ifdef NTVDM + /* Some globals that the mouse driver needs to have available */ + /* when an application (such as any CW based apps.) makes a */ + /* call to int 33h AX = 26h. */ + + IMPORT word VirtualX, VirtualY; +#endif /* NTVDM */ + + screen_height = (sas_hw_at_no_check(vd_rows_on_screen)+1)*height-1; + +#ifdef NTVDM + /* Create the virtual screen size maximums for the text modes */ + /* This is needed here for CW applications. */ + + VirtualX = 640; /* This is always this value */ + if(scan_lines == 401) + VirtualY = 400; /* 50 text row mode - 400 scanlines */ + else if(scan_lines == 351) + VirtualY = 344; /* 43 text row mode - 350 scanlines */ + else + VirtualY = 200; /* Failsafe - 25 row mode or rest! */ + +#endif /* NTVDM */ + + outb(EGA_CRTC_INDEX, 7); /* overflow register */ + inb(EGA_CRTC_DATA, &oflo); + outb(EGA_CRTC_INDEX, 0x11); /* vert sync contains protect bit */ + inb(EGA_CRTC_DATA, &protect); + + if (screen_height & 0x100) + oflo |= 2; /* bit 8 of height -> bit 1 of overflow register */ + else + oflo &= ~2; + if (screen_height & 0x200) + oflo |= 0x40; /* bit 9 of height -> bit 6 of overflow register */ + else + oflo &= ~0x40; + if ((protect & 0x80) == 0x80) /* overflow reg protected */ + { + do_outb(EGA_CRTC_INDEX, 0x11, protect & 0x7f); /* enable writes */ + do_outb(EGA_CRTC_INDEX, 7, oflo); /* overflow reg */ + do_outb(EGA_CRTC_INDEX, 0x11, protect); /* put back old value */ + } + else + do_outb(EGA_CRTC_INDEX, 7, oflo); /* overflow reg */ + + do_outb(EGA_CRTC_INDEX,0x12, screen_height & 0xff); /* Vertical display end = scan lines */ + } + else + if (video_adapter == EGA) + { + screen_height = (sas_hw_at_no_check(vd_rows_on_screen)+1)*height-1; + outb(EGA_CRTC_INDEX, 7); /* overflow register */ + inb(EGA_CRTC_DATA, &oflo); + if (screen_height & 0x100) + oflo |= 2; /* bit 8 of height -> bit 1 of overflow reg */ + else + oflo &= ~2; + do_outb(EGA_CRTC_INDEX, 7, oflo); /* overflow reg */ + do_outb(EGA_CRTC_INDEX, 0x12, screen_height & 0xff); /* Vertical display end = scan lines */ + } + else + { + assert1(NO, "Bad video adapter (%d) in recalc_text", video_adapter); + } + + do_outb(EGA_CRTC_INDEX,0x14,height); /* Underline scan line - ie no underline */ +} + +static void set_graph_font IFN1(int, height) +{ + switch (getBL()) + { + case 0: + sas_store_no_check(vd_rows_on_screen, getDL()-1); + break; + case 1: + sas_store_no_check(vd_rows_on_screen, 13); + break; + case 2: + sas_store_no_check(vd_rows_on_screen, 24); + break; + case 3: + sas_store_no_check(vd_rows_on_screen, 42); + break; + default: + assert2(FALSE,"Illegal char gen sub-function %#x:%#x",getAL(),getBL()); + } + sas_store_no_check(ega_char_height, height); +} + +LOCAL VOID +write_ch_set IFN5(sys_addr, char_addr, int, screen_off, + int, colour, int, nchs, int, scan_length) +{ + unsigned int i, j, colourmask, data, temp, char_height; + unsigned int *screen; + register sys_addr font; + +#ifndef REAL_VGA + + /* + * video mode 11 (VGA 640x480 2 colour mode) is a special case as + * it does not have a 'no display' attribute. + */ + + if( sas_hw_at_no_check(vd_video_mode) == 0x11 ) + colourmask = ~0; + else + colourmask = sr_lookup[colour & 0xf]; + + font = char_addr; + + screen = (unsigned int *) &EGA_planes[screen_off << 2]; + char_height = sas_hw_at_no_check(ega_char_height); + + if( nchs == 1 ) + { + for( i = char_height; i > 0; i-- ) + { + data = sas_hw_at_no_check(font); + font++; + temp = data << 8; + data |= temp; + temp = data << 16; + data |= temp; + + *screen = data & colourmask; + screen += scan_length; + } + } + else + { + scan_length -= nchs; + + for( i = char_height; i > 0; i-- ) + { + data = sas_hw_at_no_check(font); + font++; + temp = data << 8; + data |= temp; + temp = data << 16; + data |= temp; + + data &= colourmask; + + for( j = nchs; j > 0; j-- ) + { + *screen++ = data; + } + + screen += scan_length; + } + } +#else + vga_card_w_ch_set(char_addr, screen_off, colour, nchs, scan_length, char_height); +#endif +} + +void write_ch_xor IFN5(sys_addr, char_addr, int, screen_off, + int, colour, int, nchs, int, scan_length) +{ + unsigned int i, j, colourmask, data, temp, char_height; + unsigned int *screen; + register sys_addr font; + +#ifndef REAL_VGA + /* + * video mode 11 (VGA 640x480 2 colour mode) is a special case as + * it does not have a 'no display' attribute. + */ + if(sas_hw_at_no_check(vd_video_mode) == 0x11) + colourmask = ~0; + else + colourmask = sr_lookup[colour & 0xf]; + + font = char_addr; + char_height = sas_hw_at_no_check(ega_char_height); + + screen = (unsigned int *) &EGA_planes[screen_off << 2]; + + if( nchs == 1 ) + { + for( i = char_height; i > 0; i-- ) + { + data = sas_hw_at_no_check(font); + font++; + temp = data << 8; + data |= temp; + temp = data << 16; + data |= temp; + + *screen ^= data & colourmask; + screen += scan_length; + } + } + else + { + scan_length -= nchs; + + for( i = char_height; i > 0; i-- ) + { + data = sas_hw_at_no_check(font); + font++; + temp = data << 8; + data |= temp; + temp = data << 16; + data |= temp; + + data &= colourmask; + + for( j = nchs; j > 0; j-- ) + { + *screen++ ^= data; + } + + screen += scan_length; + } + } +#else + vga_card_w_ch_xor(char_addr, screen_off, colour, nchs, scan_length, char_height); +#endif +} + +GLOBAL void ega_set_mode IFN0() +{ + int pag; + sys_addr save_addr,font_addr; + int font_offset; + half_word temp_word; + byte mode_byte; + byte video_mode; +#ifdef V7VGA + byte saveBL; +#endif /* V7VGA */ + +#ifndef PROD + trace("setting video mode", DUMP_REG); +#endif + +#ifdef GISP_SVGA + /* Try and catch mode changes early */ + + /* Are we in the ROMS at the BOP 10 ? */ + if( getCS( ) == EgaROMSegment ) + { + if( videoModeIs( getAL( ) , GRAPH ) ) + { + /* Seem to have got a video mode int 10 */ + videoInfo.modeType = GRAPH; + if( !hostEasyMode( ) ) + { + videoInfo.forcedFullScreen = TRUE; + + /* point IP at the JMP to host roms */ + setIP( 0x820 ); + + /* and return, to let the host bios do the change */ + return; + } + + + } + + /* Not in the vga roms so carry on */ + } +#endif /* GISP_SVGA */ + +#ifdef V7VGA + /* + Real video-7 maps mode 7 and mode f to mode 0. + */ + + if (video_adapter==VGA) { + video_mode=(getAL()&0x7F); + if (video_mode==7||video_mode==0xF) { + setAL(getAL()&0x80); + always_trace1("V7 doesn't support mode %02x, using mode 0\n",video_mode); + } + } +#endif + + if (is_bad_vid_mode(getAL())) + { +#ifdef V7VGA + if ((video_adapter == VGA) && is_v7vga_mode(getAL() + 0x4c)) + { + saveBL = getBL(); + /* Put the mode value where the V7 BIOS expects it */ + setBL(getAL() + 0x4c); + v7vga_extended_set_mode(); + setBL(saveBL); + } + else +#endif /* V7VGA */ + always_trace1("Bad video mode - %d.\n", getAL()); + return; + } + + video_mode=(getAL()&0x7F); + +#ifdef V7VGA + /* + * The real V7 VGA does not change into 40 col mode while + * in any proprietary text mode. (A bug ?!) + * Emulate this behaviour ! + */ + if ( video_adapter == VGA && video_mode == 1 + && is_v7vga_mode(extensions_controller.foreground_latch_1) ) { + saveBL = getBL(); + /* + * This is all backwards - we make the v7vga extended mode setup + * believe the new mode is the old one. Probably the real card's BIOS + * is just as confused as this code. + * Put the mode value where the V7 BIOS expects it. + */ + setBL(extensions_controller.foreground_latch_1); + v7vga_extended_set_mode(); + setBL(saveBL); + return; + } + + /* + * Don't confuse the tricky V7 extended mode setting, as + * implemented in v7_video.c, v7vga_extended_set_mode(). + * low_set_mode() looks at it. Zero it. + */ + extensions_controller.foreground_latch_1 = 0; +#endif /* V7VGA */ + +/* + * Only update the global video mode if we're in the system virtual machine. + * The global mode should then be valid for use in timer interrupts. + */ + + if (sas_hw_at_no_check(BIOS_VIRTUALISING_BYTE) == 0) + Video_mode = video_mode; + + sas_store_no_check(vd_video_mode, getAL() & 0x7F); /* get rid of top bit - indicates clear or not */ + sas_store_no_check(ega_info, (sas_hw_at_no_check(ega_info) & 0x7F ) | (getAL() & 0x80)); /* update screen clear flag in ega_info */ + +#ifdef CPU_40_STYLE + if (forceVideoRmSemantics && (!get_EGA_no_clear())) + { + /* empty the planes... */ + memset(&EGA_planes[0], 0, 64*1024*4); + } +#endif + +#ifdef MSWDVR + /* + * If the video mode has actually changed, then call + * host_mswin_disable(). + */ + if (Currently_emulated_video_mode != video_mode) + { +#ifdef CPU_40_STYLE + if (!getPE()) + { + host_mswin_disable(); + } +#else + host_mswin_disable(); +#endif /* CPU_40_STYLE */ + } +#endif /* MSWDVR */ + + Currently_emulated_video_mode = video_mode; + +#if defined(NTVDM) && defined(X86GFX) + /* + ** Tim August 92. MicroSoft. + ** Give host a chance to do a zany non-standard mode change. + ** For Microsoft NT this is a transition to full-screen ie. the + ** real PC's video BIOS and graphics board. + ** + ** Return value of TRUE means host has done the mode change for + ** us, so no need to continue. + */ + { + extern BOOL hostModeChange IPT0(); + + if( hostModeChange() ) + return; + } +#endif /* NTVDM & X86GFX */ + + save_addr = follow_ptr(EGA_SAVEPTR); + if(alpha_num_mode()) + { +#ifdef VGG + /* load_font will do the mode change for us */ + if (video_adapter == VGA) + { +#ifdef NTVDM + /* Some globals that the mouse driver needs to have available */ + /* when an application (such as any CW based apps.) makes a */ + /* call to int 33h AX = 26h. */ + + IMPORT word VirtualX, VirtualY; +#endif /* NTVDM */ + + switch (get_VGA_lines()) + { + case S350: + load_font(EGA_CGMN,256,0,0,14); +#ifdef NTVDM + VirtualX = 640; + VirtualY = 344; +#endif /* NTVDM */ + break; + case S400: + load_font(EGA_HIFONT,256,0,0,16); +#ifdef NTVDM + /* This one gets hit the most by C.W. applications. */ + /* Actually, the other cases never seem to get hit */ + /* but are there JUST IN CASE! The 43 and 50 row */ + /* modes in recalc_text(). */ + + VirtualX = 640; + VirtualY = 200; +#endif /* NTVDM */ + break; + default: + load_font(EGA_CGDDOT,256,0,0,8); +#ifdef NTVDM + VirtualX = 640; + VirtualY = 400; +#endif /* NTVDM */ + } + } + else +#endif /* VGG */ + { + if(get_EGA_switches() & 1) + load_font(EGA_CGMN,256,0,0,14); + else + load_font(EGA_CGDDOT,256,0,0,8); + } + /* Now see if we have a nasty font to load */ + font_addr = follow_ptr(save_addr+ALPHA_FONT_OFFSET); + if(font_addr != 0) + { + /* See if it applies to us */ + font_offset = 11; + do + { + mode_byte = sas_hw_at_no_check(font_addr + font_offset); + if(mode_byte == video_mode) + { + load_font(follow_ptr(font_addr+6),sas_w_at_no_check(font_addr+2),sas_w_at_no_check(font_addr+4), sas_hw_at_no_check(font_addr+1), sas_hw_at_no_check(font_addr)); + recalc_text(sas_hw_at_no_check(font_addr)); + if(sas_hw_at_no_check(font_addr+10) != 0xff) + sas_store_no_check(vd_rows_on_screen, sas_hw_at_no_check(font_addr+10)-1); + break; + } + font_offset++; + } while(mode_byte != 0xff); + } + } + else + { + /* graphics mode. No font load, so do mode change ourselves */ + low_set_mode(video_mode); + /* Set up default graphics font */ + sas_storew_no_check(EGA_FONT_INT*4+2,EGA_SEG); + if(video_mode == 16) + sas_storew_no_check(EGA_FONT_INT*4,EGA_CGMN_OFF); + else +#ifdef VGG + if (video_mode == 17 || video_mode == 18) + sas_storew_no_check(EGA_FONT_INT*4,EGA_HIFONT_OFF); + else +#endif + sas_storew_no_check(EGA_FONT_INT*4,EGA_CGDDOT_OFF); + /* Now see if we have a nasty font to load */ + font_addr = follow_ptr(save_addr+GRAPH_FONT_OFFSET); + if(font_addr != 0) + { + /* See if it applies to us */ + font_offset = 7; + do + { + mode_byte = sas_hw_at_no_check(font_addr + font_offset); + if(mode_byte == video_mode) + { + sas_store_no_check(vd_rows_on_screen, sas_hw_at_no_check(font_addr)-1); + sas_store_no_check(ega_char_height, sas_hw_at_no_check(font_addr+1)); + sas_move_bytes_forward(font_addr+3, 4*EGA_FONT_INT, 4); + break; + } + font_offset++; + } while(mode_byte != 0xff); + } + } + + sas_store_no_check(vd_current_page, 0); + sas_storew_no_check((sys_addr)VID_ADDR, 0); + sas_storew_no_check((sys_addr)VID_INDEX, EGA_CRTC_INDEX); +/* + * CGA bios fills this entry in 'vd_mode_table' with 'this is a bad mode' + * value, so make one up for VGA - used in VGA bios disp_func + */ + if(video_mode < 8) + sas_store_no_check(vd_crt_mode, vd_mode_table[video_mode].mode_control_val); + else if(video_mode < 0x10) + sas_store_no_check(vd_crt_mode, 0x29); + else + sas_store_no_check(vd_crt_mode, 0x1e); + if(video_mode == 6) + sas_store_no_check(vd_crt_palette, 0x3f); + else + sas_store_no_check(vd_crt_palette, 0x30); + + for(pag=0; pag<8; pag++) + sas_storew_no_check(VID_CURPOS + 2*pag, 0); + +#ifdef V7VGA + set_host_pix_height(1); + set_banking( 0, 0 ); +#endif + +#ifdef NTVDM + /* Don't want to clear screen on startup if integrated with the console. */ + if (soft_reset) +#endif /* NTVDM */ + { + /* Clear screen */ + if(!get_EGA_no_clear()) + { +#ifdef REAL_VGA + sas_fillsw_16(video_pc_low_regen, vd_mode_table[video_mode].clear_char, + (video_pc_high_regen - video_pc_low_regen)/ 2 + 1); +#else /* REAL_VGA */ + sas_fillsw(video_pc_low_regen, vd_mode_table[video_mode].clear_char, + (video_pc_high_regen - video_pc_low_regen)/ 2 + 1); +#ifdef NTVDM + /* + * Need to call host clear screen on NT because text windows don't + * resize and we need to clear portion not being written to. + */ + host_clear_screen(); + host_mark_screen_refresh(); +#endif /* NTVDM */ +#endif /* REAL_VGA */ + } + } + inb(EGA_IPSTAT1_REG,&temp_word); + outb(EGA_AC_INDEX_DATA, EGA_PALETTE_ENABLE); /* re-enable video */ +#if defined(NTVDM) && !defined(X86GFX) + /* tell mouse that video mode is changed so it can update its own + * EGA registers(for EGA.SYS interface). Only do this on RISC machine. + * On X86 machines, ntio.sys int10 handler redirects set mode call + * to mouse first which then goes to ega_video_io. + */ + mouse_video_mode_changed(video_mode); +#endif +#ifndef PROD + trace("end of video set mode", DUMP_NONE); +#endif +} + +/* + * Set the cursor start and end positions. A bit strange, in that it assumes + * the caller thinks the cursor is in an 8*8 character cell ... but this + * should be a copy of the IBM EGA BIOS routine ... what more can we do? + */ +#define CGA_CURSOR_OFF_MASK 0x60 +#define CGA_CURSOR_OFF_VALUE 0x20 +#define EGA_CURSOR_OFF_START 0x1e +#define EGA_CURSOR_OFF_END 0x00 + +GLOBAL void ega_set_cursor_mode IFN0() +{ + /* + * Set cursor mode + * Parameters: + * CX - cursor value (CH - start scanline, CL - stop scanline) + */ + int start,end,char_height; + + /* get cursor start and end scan lines */ + start = getCH(); + end = getCL(); + + /* The following check is done to see if the application is trying + to turn the cursor off using a technique that worked on the CGA. + If the application wants to turn the cursor off, it is faked + up using suitable EGA start and end values */ + if ((start & CGA_CURSOR_OFF_MASK) == CGA_CURSOR_OFF_VALUE) + { + sure_sub_note_trace0(CURSOR_VERBOSE,"ega curs - application req curs off??"); + start = EGA_CURSOR_OFF_START; + end = EGA_CURSOR_OFF_END; + } + /* If the application has enabled cursor emulation, try to fake + up the same cursor appearance on the EGA 14 scan line character + matrix as you would get on the CGA 8 scan line matrix. */ + else if(!get_EGA_cursor_no_emulate()) + { + sure_sub_note_trace2(CURSOR_VERBOSE,"emulate CGA cursor using EGA cursor, CGA vals; start=%d, end = %d",start,end); + + char_height = sas_hw_at_no_check(ega_char_height); + +#ifdef VGG + if (video_adapter == VGA) { + UTINY saved_start; + + if ( start > 0x10 ) + start = 0x10; + if ( end > 0x10 ) + end = 0x10; + + /* + * No more guessing, take the exact values from a real VGA: + */ + + saved_start = start; + + if ( char_height >= 16 ) { + start = vga_cursor16_start[end][start]; +#ifdef USE_CURSOR_END_TABLES + end = vga_cursor16_end[end][saved_start]]; +#else + if ( end && (end > 3 || saved_start > end) ) + if ( end != 0xF && end >= saved_start + && end <= saved_start + 2 ) + end = 0xE; + else + end = 0xF; +#endif + } else { + start = vga_cursor8_start[end][start]; +#ifdef USE_CURSOR_END_TABLES + end = vga_cursor8_end[end][saved_start]]; +#else + if ( end && (end > 3 || saved_start > end) + && !(saved_start==6 && end==6) ) + end = 7; +#endif + } + } else { +#endif /* VGG */ + /* EGA does not allow for character height & does this. */ + if(start > 4)start += 5; + if(end > 4)end += 5; + + /* adjust end scan line because the last line is specified by + the cursor end register MINUS 1 on the EGA ... */ + end++; + + /* on the EGA, cursors extending to the bottom of the character + matrix are achieved by setting the end register to 0 ... */ + + if (start != 0 && end >= char_height) + end = 0; + + /* this last bit defies any explanation, but it is what the + IBM BIOS does ... */ + if ((end - start) == 0x10) + end++; +#ifdef VGG + } +#endif + } + + /* actually set the EGA registers */ + sure_sub_note_trace2(CURSOR_VERBOSE,"ega_cur mode start %d end %d", start,end); + do_outb(EGA_CRTC_INDEX, R10_CURS_START, start); + do_outb(EGA_CRTC_INDEX, R11_CURS_END, end); + + /* + * Update BIOS data variables + */ + + sas_storew_no_check((sys_addr)VID_CURMOD, getCX()); + setAH(0); +} + +/* This routine is an approximate conversion of the corresponding IBM BIOS routine. + * I don't think the IBM version works either. + */ +static void ega_emul_set_palette IFN0() +{ + sys_addr save_table; + half_word work_BL; + byte temp; + + save_table = follow_ptr( follow_ptr(EGA_SAVEPTR)+PALETTE_OFFSET); +/* setup attribute chip - NB need to do an inb() to clear the address */ + inb(EGA_IPSTAT1_REG,&temp); + work_BL = getBL(); + if(getBH() == 0) + { + sas_store_no_check(vd_crt_palette, (sas_hw_at_no_check(vd_crt_palette) & 0xe0) | (work_BL & 0x1f)); + work_BL = (work_BL & 7) | ((work_BL<<1) & 0x10); + if(!alpha_num_mode()) + { + /* set Palette 0 (the background) */ + outb(EGA_AC_INDEX_DATA,0); + outb(EGA_AC_INDEX_DATA,work_BL); + if(save_table) + sas_store_no_check(save_table, work_BL); + } + /* set the overscan register (the border) */ + outb(EGA_AC_INDEX_DATA,17); + outb(EGA_AC_INDEX_DATA,work_BL); + if(save_table) + sas_store_no_check(save_table+16, work_BL); + + /* Now set BL as if we came in with BH = 1 */ + work_BL = (sas_hw_at_no_check(vd_crt_palette) & 0x20)>>5; + } + +/* Now do BH = 1 stuff. */ + if(!alpha_num_mode()) + { + sas_store_no_check(vd_crt_palette, (sas_hw_at_no_check(vd_crt_palette) & 0xdf) | ((work_BL<<5) & 0x20)); + work_BL = work_BL | (sas_hw_at_no_check(vd_crt_palette) & 0x10) | 2; + outb(EGA_AC_INDEX_DATA,1); + outb(EGA_AC_INDEX_DATA,work_BL); + if(save_table) + sas_store_no_check(save_table+16, work_BL); + work_BL += 2; + outb(EGA_AC_INDEX_DATA,2); + outb(EGA_AC_INDEX_DATA,work_BL); + if(save_table) + sas_store_no_check(save_table+16, work_BL); + work_BL += 2; + outb(EGA_AC_INDEX_DATA,3); + outb(EGA_AC_INDEX_DATA,work_BL); + if(save_table) + sas_store_no_check(save_table+16, work_BL); + } + outb(EGA_AC_INDEX_DATA, EGA_PALETTE_ENABLE); /* re-enable video */ +} + +static void ega_set_palette IFN0() +{ + int i; + byte temp; + sys_addr save_table, palette_table; + half_word old_mask; + + save_table = follow_ptr( follow_ptr(EGA_SAVEPTR)+PALETTE_OFFSET); +/* setup attribute chip - NB need to do an inb() to clear the address */ + inb(EGA_IPSTAT1_REG,&temp); + switch (getAL()) + { + case 0: + outb(EGA_AC_INDEX_DATA,getBL()); + outb(EGA_AC_INDEX_DATA,getBH()); + outb(EGA_AC_INDEX_DATA, EGA_PALETTE_ENABLE); + if(save_table) + sas_store_no_check(save_table + getBL(), getBH()); + break; + case 1: + outb(EGA_AC_INDEX_DATA,17); /* the border colour register */ + outb(EGA_AC_INDEX_DATA,getBH()); + outb(EGA_AC_INDEX_DATA, EGA_PALETTE_ENABLE); + if(save_table) + sas_store_no_check(save_table + 16, getBH()); + break; + case 2: + palette_table = video_effective_addr(getES(), + getDX()); + for(i=0;i<16;i++) + { + outb(EGA_AC_INDEX_DATA,i); + outb(EGA_AC_INDEX_DATA,sas_hw_at_no_check(palette_table+i)); + } + outb(EGA_AC_INDEX_DATA,17); + outb(EGA_AC_INDEX_DATA,sas_hw_at_no_check(palette_table+16)); + outb(EGA_AC_INDEX_DATA, EGA_PALETTE_ENABLE); + if(save_table) + for(i=0;i<17;i++) + sas_store_no_check(save_table + i, sas_hw_at_no_check(palette_table+i)); + break; + case 3: +/**/ + /* Select blinking or intensity - bit3 of AR10 */ + /*inb(EGA_IPSTAT1_REG,&temp);*/ + outb(EGA_AC_INDEX_DATA,16); /* mode control index */ + inb(EGA_AC_SECRET,&temp); /* Old value */ + outb(EGA_AC_INDEX_DATA, + (temp & 0xf7) | ((getBL() & 1)<<3)); + inb(EGA_IPSTAT1_REG,&temp); + outb(EGA_AC_INDEX_DATA, EGA_PALETTE_ENABLE); +/**/ + old_mask = bg_col_mask; + if (getBL()) + { + bg_col_mask = 0x70; + assert0(FALSE,"Blinking not supported"); + sas_store_no_check(vd_crt_mode, 0x29); + } + else + { + bg_col_mask = 0xf0; /* Intensity bit set */ + sas_store_no_check(vd_crt_mode, 0x09); + } + + if ( bg_col_mask != old_mask ) + screen_refresh_required(); + + break; + default: +#ifdef VGG + if (video_adapter == VGA) + vga_set_palette(); /* VGA has many more subfuncs */ + else + { + assert1(FALSE,"Bad set palette submode %#x",getAL()); + not_imp(); + } +#else + assert1(FALSE,"Bad set palette submode %#x",getAL()); + setAL(0); +#endif + break; + } +} + +GLOBAL void ega_char_gen IFN0() +{ + switch (getAL()) + { + case 3: + do_outb(EGA_SEQ_INDEX,3,getBL()); + break; + case 0: + case 0x10: + load_font(video_effective_addr(getES(),getBP()),getCX(),getDX(),getBL(),getBH()); + if(getAL()==0x10) + recalc_text(getBH()); + +#if defined(NTVDM) && defined(X86GFX) + if( getBH()==0x16 ) + loadNativeBIOSfont( 25 ); + else if( getBH()==0x14 ) + loadNativeBIOSfont( 28 ); + else + loadNativeBIOSfont( 50 ); +#endif /* NTVDM && X86GFX */ + break; + case 1: + case 0x11: + load_font(EGA_CGMN,256,0,getBL(),14); + if(getAL()==0x11) + recalc_text(14); + +#if defined(NTVDM) && defined(X86GFX) + loadNativeBIOSfont( 28 ); +#endif /* NTVDM & X86GFX */ + break; + case 2: + case 0x12: + load_font(EGA_CGDDOT,256,0,getBL(),8); + if(getAL()==0x12) + recalc_text(8); + +#if defined(NTVDM) && defined(X86GFX) + loadNativeBIOSfont( 50 ); +#endif /* NTVDM & X86GFX */ + break; +#ifdef VGG + case 4: + case 0x14: + load_font(EGA_HIFONT,256,0,getBL(),16); + if(getAL()==0x14) + recalc_text(16); + +#if defined(NTVDM) && defined(X86GFX) + loadNativeBIOSfont( 25 ); +#endif /* NTVDM & X86GFX */ + break; +#endif /* VGG */ + case 0x20: + sas_storew_no_check(BIOS_EXTEND_CHAR*4,getBP()); + sas_storew_no_check(BIOS_EXTEND_CHAR*4+2,getES()); + break; + case 0x21: + sas_storew_no_check(EGA_FONT_INT*4,getBP()); + sas_storew_no_check(EGA_FONT_INT*4+2,getES()); + set_graph_font(getCX()); + break; + case 0x22: +#if defined(NTVDM) && defined(X86GFX) + sas_storew_no_check(EGA_FONT_INT*4,nativeFontAddresses[F8x14].off); + sas_storew_no_check(EGA_FONT_INT*4+2,nativeFontAddresses[F8x14].seg); +#else + sas_storew_no_check(EGA_FONT_INT*4,EGA_CGMN_OFF); + sas_storew_no_check(EGA_FONT_INT*4+2,EGA_SEG); +#endif /* NTVDM & X86GFX */ + set_graph_font(14); + break; + case 0x23: +#if defined(NTVDM) && defined(X86GFX) + sas_storew_no_check(EGA_FONT_INT*4,nativeFontAddresses[F8x8pt1].off); + sas_storew_no_check(EGA_FONT_INT*4+2,nativeFontAddresses[F8x8pt1].seg); +#else + sas_storew_no_check(EGA_FONT_INT*4,EGA_CGDDOT_OFF); + sas_storew_no_check(EGA_FONT_INT*4+2,EGA_SEG); +#endif /* NTVDM & X86GFX */ + set_graph_font(8); + break; +#ifdef VGG + case 0x24: +#if defined(NTVDM) && defined(X86GFX) + sas_storew_no_check(EGA_FONT_INT*4,nativeFontAddresses[F8x16].off); + sas_storew_no_check(EGA_FONT_INT*4+2,nativeFontAddresses[F8x16].seg); +#else + sas_storew_no_check(EGA_FONT_INT*4,EGA_HIFONT_OFF); + sas_storew_no_check(EGA_FONT_INT*4+2,EGA_SEG); +#endif /* NTVDM & X86GFX */ + set_graph_font(16); + break; +#endif + case 0x30: + setCX(sas_hw_at_no_check(ega_char_height)); + setDL(sas_hw_at_no_check(vd_rows_on_screen)); + switch (getBH()) + { + case 0: + setBP(sas_w_at_no_check(BIOS_EXTEND_CHAR*4)); + setES(sas_w_at_no_check(BIOS_EXTEND_CHAR*4+2)); + break; + case 1: + setBP(sas_w_at_no_check(EGA_FONT_INT*4)); + setES(sas_w_at_no_check(EGA_FONT_INT*4+2)); + break; + +#if defined(NTVDM) && defined(X86GFX) + +/* ntdetect.com gets the font info from real card on NT boot. VDM reads it into + * array 'nativeFontAddresses'. Return these fonts as Insignia ROM not loaded. + */ + case 2: + setBP(nativeFontAddresses[F8x14].off); + setES(nativeFontAddresses[F8x14].seg); + break; + case 3: + setBP(nativeFontAddresses[F8x8pt1].off); + setES(nativeFontAddresses[F8x8pt1].seg); + break; + case 4: + setBP(nativeFontAddresses[F8x8pt2].off); + setES(nativeFontAddresses[F8x8pt2].seg); + break; + case 5: + setBP(nativeFontAddresses[F9x14].off); + setES(nativeFontAddresses[F9x14].seg); + break; + case 6: + setBP(nativeFontAddresses[F8x16].off); + setES(nativeFontAddresses[F8x16].seg); + break; + case 7: + setBP(nativeFontAddresses[F9x16].off); + setES(nativeFontAddresses[F9x16].seg); + break; + +#else /* NTVDM & X86GFX */ + + case 2: + setBP(EGA_CGMN_OFF); + setES(EGA_SEG); + break; + case 3: + setBP(EGA_CGDDOT_OFF); + setES(EGA_SEG); + break; + case 4: + setBP(EGA_INT1F_OFF); + setES(EGA_SEG); + break; + case 5: + setBP(EGA_CGMN_FDG_OFF); + setES(EGA_SEG); + break; + +#ifdef VGG + case 6: + case 7: + setBP(EGA_HIFONT_OFF); + setES(EGA_SEG); + break; +#endif /* VGG */ +#endif /* NTVDM & X86GFX */ + default: + assert2(FALSE,"Illegal char_gen subfunction %#x %#x",getAL(),getBH()); + } + break; + default: + assert1(FALSE,"Illegal char_gen %#x",getAL()); + } +} + +static void ega_alt_sel IFN0() +{ + switch (getBL()) + { + case 0x10: + setBH( get_EGA_disp() ); + setBL( get_EGA_mem() ); + setCH( get_EGA_feature() ); + setCL( get_EGA_switches() ); + break; + case 0x20: + /* Was "enable Print Screen that can do variables lines on screen." + * This PC/XT bug fix function is redundant on PC/AT's and + * is removed by BCN3330 -- it has been broken since BCN101. + */ + assert1(FALSE,"Illegal alt_sel %#x",getBL()); + setAL(0); /* A function we don't support */ + break; + default: +#ifdef VGG + if (video_adapter == VGA) + vga_func_12(); /* Try extra VGA stuff */ + else +#endif + { + setAL(0); /* A function we don't support */ + assert1(FALSE,"Illegal alt_sel %#x",getBL()); + } + } +} + + +/* +7.INTERMODULE INTERFACE IMPLEMENTATION : + +/* +[7.1 INTERMODULE DATA DEFINITIONS] */ +/* +[7.2 INTERMODULE PROCEDURE DEFINITIONS] */ + +void ega_video_init IFN0() +{ + EQUIPMENT_WORD equip_flag; + + /* + * ESTABLISH EQUIPMENT WORD INITIAL VIDEO MODE FIELD. + * + * This field will already have been initialised by this stage + * to 00(binary) from the corresponding field of the CMOS equipment + * byte; in that context 00(binary) meant 'primary display has its + * own BIOS'. + * + * However, 00(binary) is not meaningful as the initial mode field + * and must be updated at this point to 10(binary) for 80X25 colour. + */ + equip_flag.all = sas_w_at_no_check(EQUIP_FLAG); + equip_flag.bits.video_mode = VIDEO_MODE_80X25_COLOUR; + sas_storew_no_check(EQUIP_FLAG, equip_flag.all); + +#if !defined(NTVDM) || ( defined(NTVDM) && !defined(X86GFX) ) +/* Initialize the INTs */ + sas_storew_no_check(BIOS_EXTEND_CHAR*4, EGA_INT1F_OFF); + sas_storew_no_check(BIOS_EXTEND_CHAR*4+2, EGA_SEG); + sas_move_bytes_forward(BIOS_VIDEO_IO*4, 0x42*4, 4); /* save old INT 10 as INT 42 */ + sas_storew_no_check(BIOS_VIDEO_IO*4, EGA_ENTRY_OFF); + sas_storew_no_check(BIOS_VIDEO_IO*4+2, EGA_SEG); + +/* Now set up the EGA BIOS variables */ + if (video_adapter == VGA) + sas_storew_no_check(EGA_SAVEPTR,VGA_PARMS_OFFSET); + else + sas_storew_no_check(EGA_SAVEPTR,EGA_PARMS_OFFSET); + sas_storew_no_check(EGA_SAVEPTR+2,EGA_SEG); +#endif /* !NTVDM | (NTVDM & !X86GFX) */ +#if defined(NTVDM) && defined(X86GFX) + sas_store_no_check(ega_info,0x60); /* Clear on mode change, 256K, EGA active, emulate cursor */ +#else +#ifdef V7VGA + if ( video_adapter == VGA ) + sas_store_no_check(ega_info, 0x70); /* Clear on mode change, 256K, Extensions allowed, EGA active, emulate cursor */ + else + sas_store_no_check(ega_info, 0x60); /* Clear on mode change, 256K, EGA active, emulate cursor */ +#else /* V7VGA -- Macs don't have V7 */ + sas_store_no_check(ega_info, 0x60); /* Clear on mode change, 256K, EGA active, emulate cursor */ +#endif /* V7VGA */ + +#endif /* NTVDM & X86GFX */ +#if !(defined(NTVDM) && defined(X86GFX)) + /* Some VGA cards eg ET4000, store info here needed for sync. + * Inherit that info from page 0 copy. + */ + sas_store_no_check(ega_info3, 0xf9); /* feature bits = 0xF, EGA installed, use 8*14 font */ +#endif + + +#ifdef VGG + set_VGA_flags(S400 | VGA_ACTIVE); +#endif + +/* Set the default mode */ + ega_set_mode(); +} + +void ega_video_io IFN0() +{ + + +#if defined(NTVDM) && !defined(X86GFX) + if (stream_io_enabled && getAH()!= 0x0E && getAX() != 0x13FF) + disable_stream_io(); +#endif + + + /* + * The type of operation is coded into the AH register. Some PC code + * calls AH functions that are for other even more advanced cards - so we + * ignore these. + */ + +#ifdef V7VGA +#define check_video_func(AH) ((AH >= 0 && AH < EGA_FUNC_SIZE) || (AH == 0x6f && video_adapter == VGA)) +#else +#define check_video_func(AH) (AH >= 0 && AH < EGA_FUNC_SIZE) +#endif + + if (getAH() != 0xff) + assert1(check_video_func(getAH()),"Illegal EGA VIO:%#x",getAH()); + if (check_video_func(getAH())) + { + IDLE_video(); /* add video anti-idle indicator */ +#ifdef V7VGA + if (getAH() == 0x6f) + v7vga_func_6f(); + else +#endif /* V7VGA */ + (*ega_video_func[getAH()])(); + setCF(0); + } + else + setCF(1); +} + +/***** Routines to handle the EGA graphics modes,called from video.c **********/ +void ega_graphics_write_char IFN6(int, col, int, row, int, ch, + int, colour, int, page, int, nchs) +{ + sys_addr char_addr; + register int i; + int screen_off; + byte char_height; + register int scan_length = sas_w_at_no_check(VID_COLS); + + char_height = sas_hw_at_no_check(ega_char_height); + char_addr = follow_ptr(EGA_FONT_INT*4)+char_height*ch; + screen_off = page*sas_w_at_no_check(VID_LEN)+row*scan_length*char_height+col; +#ifdef V7VGA + if ( video_adapter == VGA ) + if (sas_hw_at_no_check(vd_video_mode) == 0x18) + colour = v7_mode_64_munge[colour&3]; +#endif /* V7VGA */ + if(colour & 0x80) + write_ch_xor(char_addr,screen_off,colour,nchs,scan_length); + else + write_ch_set(char_addr,screen_off,colour,nchs,scan_length); + +#ifndef REAL_VGA + nchs--; + + if( nchs ) + { + for(i=char_height;i>0;i--) + { + (*update_alg.mark_fill)( screen_off, screen_off + nchs ); + screen_off += scan_length; + } + } + else + { + for(i=char_height;i>0;i--) + { + (*update_alg.mark_byte)(screen_off); + screen_off += scan_length; + } + } +#endif +} + +void ega_write_dot IFN4(int, colour, int, page, int, pixcol, int, row) +{ + register int screen_off,pixmask,setmask,colourmask,temp; + + screen_off = page*sas_w_at_no_check(VID_LEN)+(row*sas_w_at_no_check(VID_COLS)&0xFFFF)+pixcol/8; + pixmask = 0x80 >> (pixcol&7); + +#ifndef REAL_VGA + + temp = pixmask << 8; + pixmask |= temp; + temp = pixmask << 16; + pixmask |= temp; + +#ifdef V7VGA + if ( video_adapter == VGA ) + if (sas_hw_at_no_check(vd_video_mode) == 0x18) + colour = v7_mode_64_munge[colour&3]; +#endif /* V7VGA */ + + colourmask = sr_lookup[colour & 0xf]; + + setmask = pixmask & colourmask; + + if( colour & 0x80 ) + { + /* XOR pixel */ + + temp = *( (unsigned int *) EGA_planes + screen_off ); + *( (unsigned int *) EGA_planes + screen_off ) = temp ^ setmask; + } + else + { + /* set/clear pixel */ + + temp = *( (unsigned int *) EGA_planes + screen_off ); + temp &= ~pixmask; + *( (unsigned int *) EGA_planes + screen_off ) = ( temp | setmask ); + } + + /* Get the screen updated */ + + (*update_alg.mark_byte)(screen_off); +#else + vga_card_w_dot(screen_off, pixmask, colour); +#endif +} + +void ega_sensible_graph_scroll_up IFN6(int, row, + int, col, int, rowsdiff, int, colsdiff, int, lines, int, attr) +{ + register int col_incr = sas_w_at_no_check(VID_COLS); + register int i,source,dest; + byte char_height; + boolean screen_updated; + + char_height = sas_hw_at_no_check(ega_char_height); + dest = sas_w_at_no_check(VID_ADDR)+row*col_incr*char_height+col; + rowsdiff *= char_height; + lines *= char_height; + source = dest+lines*col_incr; +#ifdef REAL_VGA + vga_card_scroll_up(source, dest, rowsdiff, colsdiff, lines, attr, col_incr); +#else + screen_updated = (col+colsdiff) <= col_incr; /* Check for silly scroll */ + + if(screen_updated) + screen_updated = (*update_alg.scroll_up)(dest,colsdiff,rowsdiff,attr,lines,0); + + for(i=0;i> 16 ) | data; + the_char[i] = ( data >> 8 ) | data; + screen_off += sas_w_at_no_check(VID_COLS); + } +#else + vga_card_read_ch(screen_off, sas_w_at_no_check(VID_COLS), char_height, the_char); +#endif + /* Now search the font */ + search_font((char *)the_char,(int)char_height); +} +void ega_read_dot IFN3(int, page, int, col, int, row) +{ + int screen_off; + int shift; + unsigned int data; + byte val; + byte mask; +#ifdef REAL_VGA + extern half_word vga_card_read_dot(); +#endif + + + /* + * The following fixes a bug in print screen from DOS shell. + * There is a bug in DOS shell that results in -1 and -2 being + * passed through for the row. Ignoring these values stops + * SoftPC falling over. + */ + + if (row & 0x8000) + return; + + screen_off = page*sas_w_at_no_check(VID_LEN)+row*sas_w_at_no_check(VID_COLS)+(col/8); + /* + * The value to return is calculated as: + * val = plane0 | plane1*2**1 | plane2*2**2 | plane3*2**3 + * The masked-out bit from each plane must therefore be + * shifted right to bit 0 (note it may already be there) + * and then shifted up again by the appropriate amount for + * each plane. + */ + + mask = 0x80 >> (col & 7); + shift = 7 - (col & 7); + +#ifndef REAL_VGA + + data = *((unsigned int *) EGA_planes + screen_off ); + + val = ((data >> 24) & mask) >> shift; + val |= (((data >> 16) & mask) >> shift) << 1; + val |= (((data >> 8) & mask) >> shift) << 2; + val |= ((data & mask) >> shift) << 3; + +#else + val = vga_card_read_dot(screen_off, shift); +#endif + setAL(val); +} + +/* + * Routine to grovel around with the fancy EGA mode tables to find the register parameters. + * This is also called by the mouse driver, because it needs to know where the default + * EGA register table for the current mode is stored. + */ +sys_addr find_mode_table IFN2(int, mode, sys_addr *, save_addr) +{ + sys_addr params_addr; +/* get address of the SAVEPTR table, and hence the video params table. */ + *save_addr = follow_ptr(EGA_SAVEPTR); + params_addr = follow_ptr(*save_addr) + mode*EGA_PARMS_SIZE; +/* If we are modes F or 10, adjust to pick up the 256K EGA parameters */ + +#ifdef NTVDM + /* only take real mode number */ + mode &= 0x7F; +#endif + if(mode == 0xF || mode == 0x10) + params_addr += 2*EGA_PARMS_SIZE; +#ifdef VGG + if (video_adapter == VGA) + { +#ifdef V7VGA + /* If mode is 0x60+, pick up parameters from 0x1d onwards */ + if (mode >= 0x60) + params_addr -= 67*EGA_PARMS_SIZE; + else + if (mode >= 0x40) + params_addr -= 25*EGA_PARMS_SIZE; + else +#endif /* V7VGA */ +/* If we are modes 0x11 - 0x13, pick up parameters from entry 0x1a onwards */ + if(mode == 0x11 || mode == 0x12 || mode == 0x13) + params_addr += 9*EGA_PARMS_SIZE; + else if(mode < 4 || mode == 7) /* Alphanumeric mode */ + { + switch(get_VGA_lines()) + { + case S350: /* EGA-type 350 scanlines */ + params_addr += 19*EGA_PARMS_SIZE; + break; + case S400: /* Real VGA text mode */ + switch(mode) + { + case 0: + case 1: + params_addr += (0x17-mode)*EGA_PARMS_SIZE; + break; + case 2: + case 3: + params_addr += (0x18-mode)*EGA_PARMS_SIZE; + break; + case 7: + params_addr += (0x19-mode)*EGA_PARMS_SIZE; + } + default: /* 200 scanlines - OK as is. */ + break; + } + } + } + else +#endif /* VGG */ + { /* EGA */ +/* If modes 0-3, activate enhancement if switches say so */ + if( (get_EGA_switches() & 1) && mode < 4) + params_addr += 19*EGA_PARMS_SIZE; + } + +#if defined(NTVDM) && defined(X86GFX) + /* + * Tim August 92, Microsoft. + * Make text modes (0-3) use our mode parameters in KEYBOARD.SYS + * Three entries in table: 40x25, 80x25 & 80x25 mono + * Make that 4 - add font load mode B. We have to be defensive in + * case of dubious values from cards or m/c. (Pro II/EISA, Olivetti MP) + * Table order: 40x25, 80x25, mono, font + */ + { + extern word babyModeTable; + extern UTINY tempbabymode[]; + + if(babyModeTable == 0) /* ntio not loaded - use temp table */ + { + if (!soft_reset) /* be absolutely sure about this */ + { + /* magic location:good until 16 bit code is running */ + sas_stores(0x41000, tempbabymode, 2 * EGA_PARMS_SIZE); + if (mode == 0xb) + params_addr = 0x41000 + EGA_PARMS_SIZE; + else + params_addr = 0x41000; /* if not mode 3 tough */ + return params_addr; + } +#ifndef PROD + else + printf("NTVDM:video window parm table not loaded but system initialised\n"); +#endif + } + if(babyModeTable > 0) + { + if (get_VGA_lines() == S350 && mode < 4) + { + if (mode < 2) + params_addr = babyModeTable + 4*EGA_PARMS_SIZE; + else + params_addr = babyModeTable + 5*EGA_PARMS_SIZE; + } + else + { + if (mode < 4) + { + mode = mode/2; + params_addr = babyModeTable + mode*EGA_PARMS_SIZE; + } + else + { + if (mode == 0xb) + params_addr = babyModeTable + 3 * EGA_PARMS_SIZE; + else if (mode == 7) /* skip first 2 table entries */ + params_addr = babyModeTable + 2 * EGA_PARMS_SIZE; + } + } + } + } +#endif /* NTVDM & X86GFX */ + + return params_addr; +} + +/* + * Calculate how many scanlines are currently displayed, and return a code: + * RS200: 200 scanlines + * RS350: 350 scanlines + * RS400: 400 scanlines + * RS480: 480 scanlines + * + * Different numbers of scanlines are returned as the code corresonding + * to the nearest kosher scanline number. + */ + +int get_scanlines IFN0() +{ + int scanlines,res; + + scanlines = sas_hw_at_no_check(ega_char_height) * sas_hw_at_no_check(vd_rows_on_screen); + + if(scanlines <= 275) + res = RS200; + else if(scanlines <=375) + res = RS350; + else if(scanlines <= 440) + res = RS400; + else + res = RS480; + + return (res); +} + +#endif /* EGG */ diff --git a/private/mvdm/softpc.new/base/video/ega_writ.c b/private/mvdm/softpc.new/base/video/ega_writ.c new file mode 100644 index 000000000..64c9db4b0 --- /dev/null +++ b/private/mvdm/softpc.new/base/video/ega_writ.c @@ -0,0 +1,861 @@ +#include "insignia.h" +#include "host_def.h" + +#if !(defined(NTVDM) && defined(MONITOR)) + +/* INSIGNIA (SUB)MODULE SPECIFICATION + ----------------------------- + + + THIS PROGRAM SOURCE FILE IS SUPPLIED IN CONFIDENCE TO THE + CUSTOMER, THE CONTENTS OR DETAILS OF ITS OPERATION MUST + NOT BE DISCLOSED TO ANY OTHER PARTIES WITHOUT THE EXPRESS + AUTHORISATION FROM THE DIRECTORS OF INSIGNIA SOLUTIONS LTD. + +DOCUMENT : name and number + +RELATED DOCS : include all relevant references + +DESIGNER : J.Roper + +REVISION HISTORY : +First version : 7/22/88 W.Gulland + +SUBMODULE NAME : ega_write + +SOURCE FILE NAME : ega_write.c + +PURPOSE : control the way writes to EGA memory is emulated. + This module looks at the state of the EGA when it is changed + via writes to the EGA registers, and works out what to do about it. + + +SccsID = @(#)ega_write.c 1.40 12/15/95 Copyright Insignia Solutions Ltd. + +/*======================================================================= +[3.INTERMODULE INTERFACE DECLARATIONS] +========================================================================= + +[3.1 INTERMODULE IMPORTS] */ + +/* [3.1.1 #INCLUDES] */ + + +#include +#include TypesH +#include FCntlH + +#ifdef EGG +#include "xt.h" +#include CpuH +#include "debug.h" +#include "gmi.h" +#include "gvi.h" +#include "egacpu.h" +#include "egaports.h" +#include "cpu_vid.h" +#include "video.h" + + +/* [3.1.2 DECLARATIONS] */ +#if defined(EGA_DUMP) || defined(EGA_STAT) +extern WRT_POINTERS dump_writes; +#endif + +extern WRT_POINTERS mode0_gen_handlers, mode0_copy_handlers; +extern WRT_POINTERS mode1_handlers, mode2_handlers; + +/* [3.2 INTERMODULE EXPORTS] */ + +/* +5.MODULE INTERNALS : (not visible externally, global internally)] + +[5.1 LOCAL DECLARATIONS] */ +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_EGA.seg" +#endif + +#ifndef REAL_VGA + +#ifdef V7VGA +IMPORT UTINY fg_bg_control; +GLOBAL UTINY Last_v7_fg_bg; /* used by {ev}ga_mask_register_changed() */ +#endif + +#ifndef CPU_40_STYLE /* EVID without introducing EVID define */ + +WRT_POINTERS *mode_chain_handler_table[] = +{ + &mode_table.nch.mode_0[0], + &mode_table.nch.mode_1[0], + &mode_table.nch.mode_2[0], +#ifdef VGG + &mode_table.nch.mode_3[0], +#endif + + &mode_table.nch.mode_0[0], /* This should be chain 2 eventually */ + &mode_table.nch.mode_1[0], /* This should be chain 2 eventually */ + &mode_table.nch.mode_2[0], /* This should be chain 2 eventually */ +#ifdef VGG + &mode_table.nch.mode_3[0], /* This should be chain 2 eventually */ +#endif + +#ifdef VGG + &mode_table.ch4.mode_0[0], + &mode_table.ch4.mode_1[0], + &mode_table.ch4.mode_2[0], + &mode_table.ch4.mode_3[0], +#endif /* VGG */ +}; + +#ifndef EGATEST +IMPORT VOID glue_b_write IPT2(UTINY *, addr, ULONG, val); +IMPORT VOID glue_w_write IPT2(UTINY *, addr, ULONG, val); +IMPORT VOID glue_b_fill IPT3(UTINY *, laddr, UTINY *, haddr, ULONG, val); +IMPORT VOID glue_w_fill IPT3(UTINY *, laddr, UTINY *, haddr, ULONG, val); +IMPORT VOID glue_b_move IPT4(UTINY *, laddr, UTINY *, haddr, UTINY *, src, UTINY, src_type); +IMPORT VOID glue_w_move IPT3(UTINY *, laddr, UTINY *, haddr, UTINY *, src); + +#ifndef GISP_CPU +#ifdef A3CPU +#ifdef C_VID +IMPORT VOID _glue_b_write IPT2(UTINY *, addr, ULONG, val); +IMPORT VOID _glue_w_write IPT2(UTINY *, addr, ULONG, val); +IMPORT VOID _glue_b_fill IPT3(UTINY *, laddr, UTINY *, haddr, ULONG, val); +IMPORT VOID _glue_w_fill IPT3(UTINY *, laddr, UTINY *, haddr, ULONG, val); +IMPORT VOID _glue_b_fwd_move IPT0(); +IMPORT VOID _glue_b_bwd_move IPT0(); +IMPORT VOID _glue_w_fwd_move IPT0(); +IMPORT VOID _glue_w_bwd_move IPT0(); + +GLOBAL WRT_POINTERS Glue_writes = +{ + _glue_b_write, + _glue_w_write + +#ifndef NO_STRING_OPERATIONS + , + _glue_b_fill, + _glue_w_fill, + _glue_b_fwd_move, + _glue_b_bwd_move, + _glue_w_fwd_move, + _glue_w_bwd_move + +#endif /* NO_STRING_OPERATIONS */ + +}; + +GLOBAL WRT_POINTERS C_vid_writes; +#endif /* C_VID */ +#else + +#ifdef A_VID +IMPORT VOID _glue_b_write(); +IMPORT VOID _glue_w_write(); +IMPORT VOID _glue_b_fill(); +IMPORT VOID _glue_w_fill(); +IMPORT VOID _glue_b_move(); +IMPORT VOID _glue_w_move(); + +GLOBAL MEM_HANDLERS Glue_writes = +{ + _glue_b_write, + _glue_w_write, + _glue_b_fill, + _glue_w_fill, + _glue_b_move, + _glue_w_move, +}; + +GLOBAL WRT_POINTERS A_vid_writes; + +#else + +GLOBAL MEM_HANDLERS Glue_writes = +{ + glue_b_write, + glue_w_write, + glue_b_fill, + glue_w_fill, + glue_b_move, + glue_w_move, +}; + +GLOBAL WRT_POINTERS C_vid_writes; +#endif /* C_VID */ +#endif /* A3CPU */ +#endif /* GISP_CPU */ +#endif /* EGATEST */ + +IMPORT VOID _simple_b_write(); +IMPORT VOID _simple_w_write(); +IMPORT VOID _simple_b_fill(); +IMPORT VOID _simple_w_fill(); +IMPORT VOID _simple_bf_move(); +IMPORT VOID _simple_wf_move(); +IMPORT VOID _simple_bb_move(); +IMPORT VOID _simple_wb_move(); + +WRT_POINTERS simple_writes = +{ + _simple_b_write, + _simple_w_write +#ifndef NO_STRING_OPERATIONS + , + _simple_b_fill, + _simple_w_fill, + _simple_bf_move, + _simple_bb_move, + _simple_wf_move, + _simple_wb_move + +#endif /* NO_STRING_OPERATIONS */ +}; + +IMPORT VOID _dt0_bw_nch(); +IMPORT VOID _dt0_ww_nch(); +IMPORT VOID _dt0_bf_nch(); +IMPORT VOID _dt0_wf_nch(); +IMPORT VOID _vid_md0_bfm_0_8(); +IMPORT VOID _vid_md0_bbm_0_8(); +IMPORT VOID _vid_md0_wfm_0_8(); +IMPORT VOID _vid_md0_wbm_0_8(); + +IMPORT VOID _dt2_bw_nch(); +IMPORT VOID _dt2_ww_nch(); +IMPORT VOID _dt2_bf_nch(); +IMPORT VOID _dt2_wf_nch(); +IMPORT VOID _vid_md2_bfm_0_8(); +IMPORT VOID _vid_md2_bbm_0_8(); +IMPORT VOID _vid_md2_wfm_0_8(); +IMPORT VOID _vid_md2_wbm_0_8(); + +IMPORT VOID _dt3_bw_nch(); +IMPORT VOID _dt3_ww_nch(); +IMPORT VOID _dt3_bf_nch(); +IMPORT VOID _dt3_wf_nch(); +IMPORT VOID _vid_md3_bfm_0_8(); +IMPORT VOID _vid_md3_bbm_0_8(); +IMPORT VOID _vid_md3_wfm_0_8(); +IMPORT VOID _vid_md3_wbm_0_8(); + +WRT_POINTERS dth_md0_writes = +{ + _dt0_bw_nch, + _dt0_ww_nch + +#ifndef NO_STRING_OPERATIONS + , + _dt0_bf_nch, + _dt0_wf_nch, + _vid_md0_bfm_0_8, + _vid_md0_bbm_0_8, + _vid_md0_wfm_0_8, + _vid_md0_wbm_0_8 + +#endif /* NO_STRING_OPERATIONS */ + +}; + +WRT_POINTERS dth_md2_writes = +{ + _dt2_bw_nch, + _dt2_ww_nch + +#ifndef NO_STRING_OPERATIONS + , + _dt2_bf_nch, + _dt2_wf_nch, + _vid_md2_bfm_0_8, + _vid_md2_bbm_0_8, + _vid_md2_wfm_0_8, + _vid_md2_wbm_0_8 +#endif /* NO_STRING_OPERATIONS */ + +}; + +WRT_POINTERS dth_md3_writes = +{ + _dt3_bw_nch, + _dt3_ww_nch + +#ifndef NO_STRING_OPERATIONS + , + _dt3_bf_nch, + _dt3_wf_nch, + _vid_md3_bfm_0_8, + _vid_md3_bbm_0_8, + _vid_md3_wfm_0_8, + _vid_md3_wbm_0_8 + +#endif /* NO_STRING_OPERATIONS */ + +}; + +#else /* CPU_40_STYLE - EVID */ +WRT_POINTERS *mode_chain_handler_table[] = { 0 }; +#ifdef C_VID + +/* C_Evid glue */ +extern void write_byte_ev_glue IPT2(IU32, eaOff, IU8, eaVal); +extern void write_word_ev_glue IPT2(IU32, eaOff, IU16, eaVal); +extern void fill_byte_ev_glue IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void fill_word_ev_glue IPT3(IU32, eaOff, IU8, eaVal, IU32, count); +extern void move_byte_fwd_ev_glue IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +extern void move_word_fwd_ev_glue IPT4(IU32, eaOff, IHPE, fromOff, IU32, count, IBOOL, srcInRAM); +MEM_HANDLERS Glue_writes = +{ + write_byte_ev_glue, + write_word_ev_glue, + fill_byte_ev_glue, + fill_word_ev_glue, + move_byte_fwd_ev_glue, + move_word_fwd_ev_glue, +}; +#else /* C_VID */ +/* no glue required */ +MEM_HANDLERS Glue_writes = { 0, 0, 0, 0, 0, 0 }; +#endif /* CVID */ +WRT_POINTERS dth_md0_writes; +WRT_POINTERS dth_md2_writes; +WRT_POINTERS simple_writes; +WRT_POINTERS dth_md3_writes; +#endif /* CPU_40_STYLE - EVID */ + +IMPORT VOID ega_copy_b_write(); +IMPORT VOID ega_mode0_chn_b_write(); +IMPORT VOID ega_mode1_chn_b_write(); +IMPORT VOID ega_mode2_chn_b_write(); + +IMPORT VOID ega_copy_w_write(); +IMPORT VOID ega_mode0_chn_w_write(); +IMPORT VOID ega_mode1_chn_w_write(); +IMPORT VOID ega_mode2_chn_w_write(); + +/* Handy array to extract all 4 plane values in one go. */ + +ULONG sr_lookup[16] = +{ +#ifdef LITTLEND + 0x00000000,0x000000ff,0x0000ff00,0x0000ffff, + 0x00ff0000,0x00ff00ff,0x00ffff00,0x00ffffff, + 0xff000000,0xff0000ff,0xff00ff00,0xff00ffff, + 0xffff0000,0xffff00ff,0xffffff00,0xffffffff +#endif +#ifdef BIGEND + 0x00000000,0xff000000,0x00ff0000,0xffff0000, + 0x0000ff00,0xff00ff00,0x00ffff00,0xffffff00, + 0x000000ff,0xff0000ff,0x00ff00ff,0xffff00ff, + 0x0000ffff,0xff00ffff,0x00ffffff,0xffffffff +#endif +}; + +GLOBAL VOID +stub IFN0() +{ + /* + * For VGA write modes we don't do because they represent + * unlikely combinations of registers. + */ +} + +GLOBAL ULONG calc_data_xor; +GLOBAL ULONG calc_latch_xor; + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_GRAPHICS.seg" +#endif + +#if !(defined(NTVDM) && defined(MONITOR)) +GLOBAL VOID +Glue_set_vid_wrt_ptrs IFN1(WRT_POINTERS *, handler ) +{ + +#ifndef CPU_40_STYLE /* EVID */ +#ifndef GISP_CPU +#ifdef A3CPU +#ifdef C_VID + + C_vid_writes.b_write = handler->b_write; + C_vid_writes.w_write = handler->w_write; + C_vid_writes.b_fill = handler->b_fill; + C_vid_writes.w_fill = handler->w_fill; + C_vid_writes.b_fwd_move = handler->b_fwd_move; + C_vid_writes.b_bwd_move = handler->b_bwd_move; + C_vid_writes.w_fwd_move = handler->w_fwd_move; + C_vid_writes.w_bwd_move = handler->w_bwd_move; + +#else + UNUSED(handler); +#endif /* C_VID */ +#else +#ifdef C_VID + + C_vid_writes.b_write = handler->b_write; + C_vid_writes.w_write = handler->w_write; + +#ifndef NO_STRING_OPERATIONS + + C_vid_writes.b_fill = handler->b_fill; + C_vid_writes.w_fill = handler->w_fill; + C_vid_writes.b_fwd_move = handler->b_fwd_move; + C_vid_writes.b_bwd_move = handler->b_bwd_move; + C_vid_writes.w_fwd_move = handler->w_fwd_move; + C_vid_writes.w_bwd_move = handler->w_bwd_move; + +#endif /* NO_STRING_OPERATIONS */ + +#else + + A_vid_writes = *handler; + +#if 0 + A_vid_writes.b_write = handler->b_write; + A_vid_writes.w_write = handler->w_write; + +#ifndef NO_STRING_OPERATIONS + + A_vid_writes.b_fill = handler->b_fill; + A_vid_writes.w_fill = handler->w_fill; + A_vid_writes.b_fwd_move = handler->b_fwd_move; + A_vid_writes.b_bwd_move = handler->b_bwd_move; + A_vid_writes.w_fwd_move = handler->w_fwd_move; + A_vid_writes.w_bwd_move = handler->w_bwd_move; + +#endif /* NO_STRING_OPERATIONS */ +#endif /* 0 */ + +#endif /* C_VID */ +#endif /* A3CPU */ +#endif /* GISP_CPU */ +#endif /* CPU_40_STYLE - EVID */ +} +#endif /* !(NTVDM && MONITOR) */ + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_EGA.seg" +#endif + +/* Initialize the write module */ + +VOID +ega_write_init IFN0() +{ + WRT_POINTERS *handler; + + note_entrance0("ega_write_init"); + + EGA_CPU.saved_state = 0; + EGA_CPU.write_mode = 0; + EGA_CPU.chain = UNCHAINED; + setVideochain(EGA_CPU.chain); + setVideowrmode(EGA_CPU.write_mode); + setVideowrstate(0); + + handler = &mode_chain_handler_table[0][0]; + +#ifdef CPU_40_STYLE + /* ensure correct write mode in place for initial font writes */ + SetWritePointers(); +#endif + +#ifdef JOKER + + Glue_set_vid_wrt_ptrs(handler); + +#else /* not JOKER */ + +#if defined(EGA_DUMP) || defined(EGA_STAT) + dump_writes = handler; +#else +#ifdef EGATEST + gmi_define_mem(VIDEO,(*handler)); +#else +#ifndef GISP_CPU +#ifdef A3CPU +#ifdef C_VID + Cpu_set_vid_wrt_ptrs( &Glue_writes ); + Glue_set_vid_wrt_ptrs( handler ); +#else + Cpu_set_vid_wrt_ptrs( handler ); +#endif /* C_VID */ +#else + gmi_define_mem(VIDEO,&Glue_writes); + Glue_set_vid_wrt_ptrs( handler ); +#endif /* A3CPU */ +#endif /* GISP_CPU */ +#endif /* EGATEST */ +#endif /* EGA_DUMP || EGA_STAT */ +#endif /* JOKER */ + + ega_write_routines_update(WRITE_MODE); + ega_write_routines_update(RAM_MOVED); + ega_write_routines_update(RAM_ENABLED); + ega_write_routines_update(SET_RESET); + ega_write_routines_update(ENABLE_SET_RESET); + ega_write_routines_update(FUNCTION); +} + +VOID +ega_write_term IFN0() +{ + /* + * ensure that if you are an EGA and then change to a VGA (or vice + * versa) the write mode will be changed by the new adaptor. Otherwise + * this gives a 'drunken' font + */ + + EGA_CPU.write_mode = 0; + EGA_CPU.ega_state.mode_0.lookup = + (EGA_CPU.ega_state.mode_0.lookup == 0) ? 1 : 0; + setVideowrmode(EGA_CPU.write_mode); + + ega_write_routines_update(WRITE_MODE); +} + + +/* analyze the write state, and update the routines if necesary */ + +VOID +ega_write_routines_update IFN1(CHANGE_TYPE, reason ) +{ + ULONG state; + ULONG mode_and_chain; + WRT_POINTERS *handler; +#ifndef PROD + LOCAL WRT_POINTERS *last_handler; +#endif + + note_entrance1("ega_write_routines_update(%d)",reason); + + switch( reason ) + { + case FUNCTION: + switch (write_state.func) + { + case 0: /* Assign */ + setVideodata_and_mask(0xffffffff); + setVideodata_xor_mask(~(getVideobit_prot_mask())); + setVideolatch_xor_mask(getVideobit_prot_mask()); + EGA_CPU.calc_data_xor = 0xffffffff; + EGA_CPU.calc_latch_xor = 0xffffffff; + break; + + case 1: /* AND */ + setVideodata_and_mask(0xffffffff); + setVideodata_xor_mask(~(getVideobit_prot_mask())); + setVideolatch_xor_mask(0); + EGA_CPU.calc_data_xor = 0xffffffff; + EGA_CPU.calc_latch_xor = 0x00000000; + break; + + case 2: /* OR */ + setVideodata_and_mask(0); + setVideodata_xor_mask(0xffffffff); + setVideolatch_xor_mask( + getVideobit_prot_mask()); + EGA_CPU.calc_data_xor = 0x00000000; + EGA_CPU.calc_latch_xor = 0xffffffff; + break; + + case 3: /* XOR */ + setVideodata_and_mask(0xffffffff); + setVideodata_xor_mask(0xffffffff); + setVideolatch_xor_mask( + getVideobit_prot_mask()); + EGA_CPU.calc_data_xor = 0x00000000; + EGA_CPU.calc_latch_xor = 0xffffffff; + break; + } + + setVideocalc_data_xor(EGA_CPU.calc_data_xor); + setVideocalc_latch_xor(EGA_CPU.calc_latch_xor); + break; + + case WRITE_MODE: + /* write mode 3 has set/reset enabled for all planes + * so recalulate the mask ignoring the sr_enable register + * otherwise set the mask in case mode 3 last time. + */ + if( EGA_CPU.write_mode == 3) { + setVideosr_nmask(0); + setVideosr_masked_val(sr_lookup[EGA_CPU.set_reset]); + } else { + setVideosr_nmask(~sr_lookup[EGA_CPU.sr_enable]); + setVideosr_masked_val(sr_lookup[EGA_CPU.set_reset & EGA_CPU.sr_enable]); + } + break; + + case SET_RESET: + EGA_CPU.sr_value= sr_lookup[EGA_CPU.set_reset]; + if( EGA_CPU.write_mode == 3) { + setVideosr_masked_val(sr_lookup[EGA_CPU.set_reset]); + } else { + setVideosr_masked_val(sr_lookup[EGA_CPU.set_reset & EGA_CPU.sr_enable]); + } + break; + + case ENABLE_SET_RESET: + if( EGA_CPU.write_mode == 3) { + setVideosr_nmask(0); + setVideosr_masked_val(sr_lookup[EGA_CPU.set_reset]); + } else { + setVideosr_nmask(~sr_lookup[EGA_CPU.sr_enable]); + setVideosr_masked_val(sr_lookup[EGA_CPU.set_reset & EGA_CPU.sr_enable]); + } + break; + + case PLANES_ENABLED: + if (EGA_CPU.chain == CHAIN2) + { + if( getVideoplane_enable() & 0xc ) + { + setVideorplane(EGA_plane23); + setVideowplane(EGA_plane23); + } + else + { + setVideorplane(EGA_plane01); + setVideowplane(EGA_plane01); + } + } + break; + + case CHAINED: + switch( EGA_CPU.chain ) + { + case UNCHAINED: + case CHAIN4: + update_banking(); + break; + + case CHAIN2: + if( getVideoplane_enable() & 0xc ) + { + setVideorplane(EGA_plane23); + setVideowplane(EGA_plane23); + } + else + { + setVideorplane(EGA_plane01); + setVideowplane(EGA_plane01); + } + break; + } + + break; + + case RAM_MOVED: + case RAM_ENABLED: + case BIT_PROT: + /* No action required */ + break; + +/* + * Rotates are only partially supported in Avid and Cvid. + * Mode 0 unchained byte writes are supported. Word writes are also + * supported in this case, as they use the byte write routines. + * + * Manage Your Money is the only application currently known to use rotates, + * as of 22 Jan 1993. + */ + case ROTATION: + if (getVideorotate() > 0) + { +#ifdef CPU_40_STYLE + /* Write pointer change required but probably + * no state change otherwise. + */ + SetWritePointers(); +#endif + always_trace3("Possible unsupported data rotate mode %d chain %d rotate by %d", + EGA_CPU.write_mode, + EGA_CPU.chain, getVideorotate()); + } + break; + + default: + assert0( NO, "Bad reason in ega_write_routines_update" ); + break; + } + + /* + * Now select the right set of write routines according to the current state. + */ + + switch( EGA_CPU.write_mode ) + { + case 0: + state = EGA_CPU.ega_state.mode_0.lookup; + break; + + case 1: + state = EGA_CPU.ega_state.mode_1.lookup; + break; + + case 2: + state = EGA_CPU.ega_state.mode_2.lookup; + break; + +#ifdef VGG + case 3: + state = EGA_CPU.ega_state.mode_3.lookup; + break; +#endif /* VGG */ + + default: + assert1( NO, "Bad write mode %d\n", EGA_CPU.write_mode ); + break; + } + +#ifdef VGG + mode_and_chain = (EGA_CPU.chain << 2) + EGA_CPU.write_mode; +#else + mode_and_chain = (EGA_CPU.chain * 3) + EGA_CPU.write_mode; +#endif /* VGG */ + + if(( EGA_CPU.saved_mode_chain != mode_and_chain ) + || ( EGA_CPU.saved_state != state ) +#ifdef V7VGA + || ( Last_v7_fg_bg != fg_bg_control) +#endif /* V7VGA */ + ) + { + setVideowrmode(EGA_CPU.write_mode); /* reset for 'copy case' below */ + + if( EGA_CPU.chain == CHAIN2 ) + switch (EGA_CPU.write_mode) + { + case 0: + if( state == 0 ) /* basic text */ + { + handler = &mode0_copy_handlers; +#ifdef CPU_40_STYLE + setVideowrmode(4); /* indicate 'copy case' */ +#endif /* CPU_40_STYLE */ + bios_ch2_byte_wrt_fn = ega_copy_b_write; + bios_ch2_word_wrt_fn = ega_copy_w_write; + } + else + { + handler = &mode0_gen_handlers; + bios_ch2_byte_wrt_fn = ega_mode0_chn_b_write; + bios_ch2_word_wrt_fn = ega_mode0_chn_w_write; + } + break; + + case 1: + handler = &mode1_handlers; + bios_ch2_byte_wrt_fn = ega_mode1_chn_b_write; + bios_ch2_word_wrt_fn = ega_mode1_chn_w_write; + break; + + case 2: + case 3: /* We don't support mode 3, chain 2 - JS */ + handler = &mode2_handlers; + bios_ch2_byte_wrt_fn = ega_mode2_chn_b_write; + bios_ch2_word_wrt_fn = ega_mode2_chn_w_write; + break; + } + else + { +#ifdef V7VGA + /* + * Is it the V7VGA foreground dithering extension ? + */ + + if( fg_bg_control & 0x8 ) + { + setVideodither(1); /* enable Evid dither fns */ + switch( EGA_CPU.write_mode ) + { + case 0: + handler = &dth_md0_writes; + break; + + case 1: + + /* + * No fg dither variant for write mode 1 + */ + + handler = &mode_chain_handler_table[mode_and_chain][state]; + break; + + case 2: + handler = &dth_md2_writes; + break; + + case 3: + handler = &dth_md3_writes; + break; + } + } + else +#endif /* V7VGA */ + setVideodither(0); /* disable Evid dither fns */ + + handler = &mode_chain_handler_table[mode_and_chain][state]; + } + +#ifdef CPU_40_STYLE + SetWritePointers(); +#else /* CPU_40_STYLE */ + +#if defined(EGA_DUMP) || defined(EGA_STAT) + dump_writes = handler; +#else + /* Tell the glue code about the new write routines */ + +#ifdef EGATEST + gmi_redefine_mem(VIDEO,(*handler)); +#else +#ifndef GISP_CPU +#ifdef A3CPU +#ifdef C_VID + Glue_set_vid_wrt_ptrs( handler ); +#else + Cpu_set_vid_wrt_ptrs( handler ); +#endif /* C_VID */ +#else + Glue_set_vid_wrt_ptrs( handler ); +#endif /* A3CPU */ +#endif /* GISP_CPU */ +#endif /* EGATEST */ +#endif + +#endif /* CPU_40_STYLE */ + +#ifndef PROD + last_handler = handler; +#endif + + set_mark_funcs(); + + EGA_CPU.saved_state = state; + EGA_CPU.saved_mode_chain = mode_and_chain; +#ifdef V7VGA + Last_v7_fg_bg = fg_bg_control; +#endif + } +} +#endif /* REAL VGA */ +#endif /* EGG */ + +#endif /* !(NTVDM && MONITOR) */ diff --git a/private/mvdm/softpc.new/base/video/egawrtm0.c b/private/mvdm/softpc.new/base/video/egawrtm0.c new file mode 100644 index 000000000..b34aaa825 --- /dev/null +++ b/private/mvdm/softpc.new/base/video/egawrtm0.c @@ -0,0 +1,1366 @@ +#include "insignia.h" +#include "host_def.h" + +#if !(defined(NTVDM) && defined(MONITOR)) + +/* INSIGNIA (SUB)MODULE SPECIFICATION + ----------------------------- + + + THIS PROGRAM SOURCE FILE IS SUPPLIED IN CONFIDENCE TO THE + CUSTOMER, THE CONTENTS OR DETAILS OF ITS OPERATION MUST + NOT BE DISCLOSED TO ANY OTHER PARTIES WITHOUT THE EXPRESS + AUTHORISATION FROM THE DIRECTORS OF INSIGNIA SOLUTIONS LTD. + + +DOCUMENT : name and number + +RELATED DOCS : include all relevant references + +DESIGNER : P. Jadeja + +REVISION HISTORY : +First version : P. Jadeja, SoftPC 2.0, 10-Aug-88 +Second version : John Shanly, SoftPC 3.0, 9 April 1991 + +SUBMODULE NAME : write mode 0 + +SOURCE FILE NAME : ega_write_mode0.c + +PURPOSE : purpose of this submodule + +SccsID = "@(#)ega_wrtm0.c 1.31 11/01/94 Copyright Insignia Solutions Ltd." + + +[1.INTERMODULE INTERFACE SPECIFICATION] + +[1.0 INCLUDE FILE NEEDED TO ACCESS THIS INTERFACE FROM OTHER SUBMODULES] + + INCLUDE FILE : xxx.gi + +[1.1 INTERMODULE EXPORTS] + + PROCEDURES() : ega_mode0_chn_b_write(); + ega_mode0_chn_w_write(); + ega_mode0_chn_b_fill(); + ega_mode0_chn_w_fill(); + ega_mode0_chn_b_move(); + ega_mode0_chn_w_move(); + + ega_copy_b_write(); + ega_copy_w_write(); + ega_copy_b_fill(); + ega_copy_w_fill(); + ega_copy_b_move(); + ega_copy_w_move(); + + ega_copy_all_b_write(); + DATA : give type and name + +------------------------------------------------------------------------- +[1.2 DATATYPES FOR [1.1] (if not basic C types)] + + STRUCTURES/TYPEDEFS/ENUMS: + +------------------------------------------------------------------------- +[1.3 INTERMODULE IMPORTS] + (not o/s objects or standard libs) + + PROCEDURES() : give name, and source module name + + DATA : give name, and source module name + +------------------------------------------------------------------------- + +[1.4 DESCRIPTION OF INTERMODULE INTERFACE] + +[1.4.1 IMPORTED OBJECTS] + +DATA OBJECTS : specify in following procedure descriptions + how these are accessed (read/modified) + +FILES ACCESSED : list all files, how they are accessed, + how file data is interpreted, etc. if relevant + (else omit) + +DEVICES ACCESSED : list all devices accessed, special modes used + (e.g; termio structure). if relevant (else + omit) + +SIGNALS CAUGHT : list any signals caught if relevant (else omit) + +SIGNALS ISSUED : list any signals sent if relevant (else omit) + + +[1.4.2 EXPORTED OBJECTS] +========================================================================= +PROCEDURE : + +PURPOSE : + +PARAMETERS + + name : describe contents, and legal values + for output parameters, indicate by "(o/p)" + at start of description + +GLOBALS : describe what exported data objects are + accessed and how. Likewise for imported + data objects. + +ACCESS : specify if signal or interrupt handler + if relevant (else omit) + +ABNORMAL RETURN : specify if exit() or longjmp() etc. + can be called if relevant (else omit) + +RETURNED VALUE : meaning of function return values + +DESCRIPTION : describe what (not how) function does + +ERROR INDICATIONS : describe how errors are returned to caller + +ERROR RECOVERY : describe how procedure reacts to errors +========================================================================= + + +/*======================================================================= +[3.INTERMODULE INTERFACE DECLARATIONS] +========================================================================= + +[3.1 INTERMODULE IMPORTS] */ + +/* [3.1.1 #INCLUDES] */ + + +#ifdef EGG + +#include TypesH +#include "xt.h" +#include CpuH +#include "debug.h" +#include "gmi.h" +#include "sas.h" +#include "egacpu.h" +#include "egaports.h" +#include "cpu_vid.h" +#include "gfx_upd.h" +#include "host.h" + +/* [3.1.2 DECLARATIONS] */ + +/* [3.2 INTERMODULE EXPORTS] */ + + +/* +5.MODULE INTERNALS : (not visible externally, global internally)] + +[5.1 LOCAL DECLARATIONS] */ + +/* [5.1.1 #DEFINES] */ +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#ifdef PROD +#include "SOFTPC_EGA.seg" +#else +#include "SOFTPC_EGA_WRITE.seg" +#endif +#endif + +/* [5.1.2 TYPEDEF, STRUCTURE, ENUM DECLARATIONS] */ + +typedef union { + unsigned short as_word; + struct { +#ifdef BIGEND + unsigned char hi_byte; + unsigned char lo_byte; +#else + unsigned char lo_byte; + unsigned char hi_byte; +#endif + } as_bytes; + struct { + unsigned char first_byte; + unsigned char second_byte; + } as_array; +} TWO_BYTES; + +/* [5.1.3 PROCEDURE() DECLARATIONS] */ + +/* ----------------------------------------------------------------------- +[5.2 LOCAL DEFINITIONS] + + [5.2.1 INTERNAL DATA DEFINITIONS */ + +/* [5.2.2 INTERNAL PROCEDURE DEFINITIONS] */ + +/* +7.INTERMODULE INTERFACE IMPLEMENTATION : +*/ + +/* +[7.1 INTERMODULE DATA DEFINITIONS] */ + +#ifdef A_VID +IMPORT VOID _ch2_copy_byte_write(); +IMPORT VOID _ch2_copy_word_write(); +IMPORT VOID _ch2_copy_byte_fill_glue(); +IMPORT VOID _ch2_copy_word_fill_glue(); +IMPORT VOID _ch2_copy_byte_move_glue(); +IMPORT VOID _ch2_copy_word_move_glue(); +IMPORT VOID _ch2_copy_byte_move_glue_fwd(); +IMPORT VOID _ch2_copy_word_move_glue_fwd(); +IMPORT VOID _ch2_copy_byte_move_glue_bwd(); +IMPORT VOID _ch2_copy_word_move_glue_bwd(); + +IMPORT VOID _ch2_mode0_chn_byte_write_glue(); +IMPORT VOID _ch2_mode0_chn_word_write_glue(); +IMPORT VOID _ch2_mode0_chn_byte_fill_glue(); +IMPORT VOID _ch2_mode0_chn_word_fill_glue(); +IMPORT VOID _ch2_mode0_chn_byte_move_glue(); +IMPORT VOID _ch2_mode0_chn_word_move_glue(); + +WRT_POINTERS mode0_copy_handlers = +{ + _ch2_copy_byte_write, + _ch2_copy_word_write + +#ifndef NO_STRING_OPERATIONS + , + _ch2_copy_byte_fill_glue, + _ch2_copy_word_fill_glue, + _ch2_copy_byte_move_glue_fwd, + _ch2_copy_byte_move_glue_bwd, + _ch2_copy_word_move_glue_fwd, + _ch2_copy_word_move_glue_bwd + +#endif /* NO_STRING_OPERATIONS */ + +}; + +WRT_POINTERS mode0_gen_handlers = +{ + _ch2_mode0_chn_byte_write_glue, + _ch2_mode0_chn_word_write_glue + +#ifndef NO_STRING_OPERATIONS + , + _ch2_mode0_chn_byte_fill_glue, + _ch2_mode0_chn_word_fill_glue, + _ch2_mode0_chn_byte_move_glue, + _ch2_mode0_chn_byte_move_glue, + _ch2_mode0_chn_word_move_glue, + _ch2_mode0_chn_word_move_glue + +#endif /* NO_STRING_OPERATIONS */ + +}; +#else +VOID ega_copy_b_write(); +VOID ega_copy_w_write(); +VOID ega_copy_b_fill(); +VOID ega_copy_w_fill(); +VOID ega_copy_b_move_fwd IPT4(ULONG, offset, ULONG, eas, ULONG, count, ULONG, src_flag ); +VOID ega_copy_b_move_bwd IPT4(ULONG, offset, ULONG, eas, ULONG, count, ULONG, src_flag ); +VOID ega_copy_w_move_fwd IPT4(ULONG, offset, ULONG, eas, ULONG, count, ULONG, src_flag ); +VOID ega_copy_w_move_bwd IPT4(ULONG, offset, ULONG, eas, ULONG, count, ULONG, src_flag ); + + +VOID ega_mode0_chn_b_write(); +VOID ega_mode0_chn_w_write(); +VOID ega_mode0_chn_b_fill(); +VOID ega_mode0_chn_w_fill(); +VOID ega_mode0_chn_b_move_fwd IPT4(ULONG, ead, ULONG, eas, ULONG, count, ULONG, src_flag ); +VOID ega_mode0_chn_b_move_bwd IPT4(ULONG, ead, ULONG, eas, ULONG, count, ULONG, src_flag ); +VOID ega_mode0_chn_w_move_fwd IPT4(ULONG, ead, ULONG, eas, ULONG, count, ULONG, src_flag ); +VOID ega_mode0_chn_w_move_bwd IPT4(ULONG, ead, ULONG, eas, ULONG, count, ULONG, src_flag ); + + +WRT_POINTERS mode0_copy_handlers = +{ + ega_copy_b_write, + ega_copy_w_write + +#ifndef NO_STRING_OPERATIONS + , + ega_copy_b_fill, + ega_copy_w_fill, + ega_copy_b_move_fwd, + ega_copy_b_move_bwd, + ega_copy_w_move_fwd, + ega_copy_w_move_bwd, + +#endif /* NO_STRING_OPERATIONS */ +}; + +WRT_POINTERS mode0_gen_handlers = +{ + ega_mode0_chn_b_write, + ega_mode0_chn_w_write + +#ifndef NO_STRING_OPERATIONS + , + ega_mode0_chn_b_fill, + ega_mode0_chn_w_fill, + ega_mode0_chn_b_move_fwd, + ega_mode0_chn_b_move_bwd, + ega_mode0_chn_w_move_fwd, + ega_mode0_chn_w_move_bwd, + +#endif /* NO_STRING_OPERATIONS */ +}; +#endif /* A_VID */ + +/* +[7.2 INTERMODULE PROCEDURE DEFINITIONS] */ + +byte rotate IFN2(byte, value, int, nobits) +{ + /* + * Rotate a byte right by nobits. Do this by making a copy of + * the byte into the msbyte of the word, and then shifting the + * word by the required amount, and then returning the resulting low byte. + */ + + TWO_BYTES double_num; + + double_num.as_bytes.lo_byte = double_num.as_bytes.hi_byte = value; + double_num.as_word >>= nobits; + return double_num.as_bytes.lo_byte; +} + +VOID +ega_copy_b_write IFN2(ULONG, value, ULONG, offset ) +{ + ULONG lsb; + note_entrance0("ega_copy_b_write"); + + (*update_alg.mark_byte)( offset ); + + lsb = offset & 0x1; + offset = (offset >> 1) << 2; + offset |= lsb; + + *(IU8 *)(getVideowplane() + offset) = value; +} + +VOID +ega_copy_w_write IFN2(ULONG, value, ULONG, offset ) +{ + ULONG lsb; + UTINY *planes; + + note_entrance0("ega_copy_w_write"); + + (*update_alg.mark_word)( offset ); + + lsb = offset & 0x1; + offset = (offset >> 1) << 2; + planes = getVideowplane() + offset; + + if( lsb ) + { + *(planes + 1) = value; + *(planes + 4) = value >> 8; + } + else + { + *planes = value; + *(planes + 1) = value >> 8; + } +} + +VOID +ega_copy_b_fill IFN3(ULONG, value, ULONG, offset, ULONG, count ) +{ + ULONG lsb; + ULONG inc; + UTINY *planes; + + note_entrance0("ega_copy_b_fill"); + + (*update_alg.mark_fill)( offset, offset + count - 1 ); + + lsb = offset & 0x1; + offset = (offset >> 1) << 2; + + planes = getVideowplane() + offset; + + if( lsb ) + { + planes += 1; + inc = 3; + } + else + inc = 1; + + while( count-- ) + { + *planes = (UTINY) value; + planes += inc; + inc ^= 2; + } +} + +#ifdef BIGEND +#define first_half(wd) (((wd) & 0xff00) >> 8) +#define sec_half(wd) ((wd) & 0xff) +#else +#define first_half(wd) ((wd) & 0xff) +#define sec_half(wd) (((wd) & 0xff00) >> 8) +#endif + +VOID +ega_copy_w_fill IFN3(ULONG, value, ULONG, offset, ULONG, count ) +{ + ULONG lsb; + USHORT *planes; + + note_entrance0("ega_copy_w_fill"); + +#ifdef BIGEND + value = ((value >> 8) & 0xff) | ((value << 8) & 0xff00); +#endif + + count >>= 1; + + /* the 3rd parameter is needed by GORE */ + (*update_alg.mark_wfill)( offset, offset + count - 1, 0 ); + + lsb = offset & 0x1; + offset = (offset >> 1) << 2; + + planes = (USHORT *) (getVideowplane() + offset); + + if( lsb ) + { + word swapped = ((value >> 8) & 0xff) | ((value << 8) & 0xff00); + + *((UTINY *) planes + 1) = first_half(value); + + count--; + planes += 2; + + while( count-- ) + { + *planes = swapped; + planes += 2; + } + + *((UTINY *) planes) = sec_half(value); + } + else + { + while( count-- ) + { + *planes = value; + planes += 2; + } + } +} + +LOCAL VOID +ega_copy_move IFN6(UTINY *, dst, UTINY *, eas, ULONG, count, ULONG, src_flag, + ULONG, w, IBOOL, forward ) +{ + ULONG lsbeas, lsbdst; + ULONG easinc, dstinc; + ULONG easoff, dstoff; + UTINY *planes; + + note_entrance0("ega_copy_move"); + + (*update_alg.mark_string)( (ULONG) dst, (ULONG) dst + count - 1); + + planes = (UTINY *) getVideowplane(); + + if( src_flag == 1 ) + { + if(!forward) + { + eas += w; + dst += w; + } + + lsbeas = (ULONG) eas & 0x1; + lsbdst = (ULONG) dst & 0x1; + + if(forward) + { + easinc = lsbeas ? 3 : 1; + dstinc = lsbdst ? 3 : 1; + } + else + { + easinc = lsbeas ? -1 : -3; + dstinc = lsbdst ? -1 : -3; + } + + easoff = (( (ULONG) eas >> 1 ) << 2 ) | lsbeas; + dstoff = (( (ULONG) dst >> 1 ) << 2 ) | lsbdst; + + while( count-- ) + { + *(planes + dstoff) = *(planes + easoff); + + dstoff += dstinc; + easoff += easinc; + dstinc ^= 0x2; + easinc ^= 0x2; + } + } + else + { + if(!forward) + { + dst += w; +#ifdef BACK_M + eas -= w; +#else + eas += w; +#endif + } + + lsbdst = (ULONG) dst & 0x1; + + if(forward) + { +#ifdef BACK_M + easinc = -1; +#else + easinc = 1; +#endif + dstinc = lsbdst ? 3 : 1; + } + else + { +#ifdef BACK_M + easinc = 1; +#else + easinc = -1; +#endif + dstinc = lsbdst ? -1 : -3; + } + + dstoff = (((ULONG) dst >> 1 ) << 2 ) | lsbdst; + + while( count-- ) + { + *(planes + dstoff) = *eas; + + dstoff += dstinc; + eas += easinc; + dstinc ^= 0x2; + } + } +} + + +VOID +ega_copy_b_move IFN4(UTINY *, offset, UTINY *, eas, ULONG, count, + ULONG, src_flag ) +{ + ega_copy_move(offset, eas, count, src_flag, 0, getDF() ? FALSE : TRUE); +} + +VOID +ega_copy_b_move_fwd IFN4(ULONG, offset, ULONG, eas, ULONG, count, + ULONG, src_flag ) +{ + ega_copy_move( (UTINY *)offset, (UTINY *)eas, count, src_flag, 0, TRUE ); +} + +VOID +ega_copy_b_move_bwd IFN4(ULONG, offset, ULONG, eas, ULONG, count, + ULONG, src_flag ) +{ + ega_copy_move( (UTINY *)offset, (UTINY *)eas, count, src_flag, 0, FALSE ); +} + +VOID +ega_copy_w_move IFN4(UTINY *, offset, UTINY *, eas, ULONG, count, + ULONG, src_flag ) +{ + ega_copy_move(offset, eas, count << 1, src_flag, 1, getDF() ? FALSE : TRUE); +} + +VOID +ega_copy_w_move_fwd IFN4(ULONG, offset, ULONG, eas, ULONG, count, + ULONG, src_flag ) +{ + ega_copy_move( (UTINY *)offset, (UTINY *)eas, count << 1, src_flag, 1, TRUE ); +} + +VOID +ega_copy_w_move_bwd IFN4(ULONG, offset, ULONG, eas, ULONG, count, + ULONG, src_flag ) +{ + ega_copy_move( (UTINY *)offset, (UTINY *)eas, count << 1, src_flag, 1, FALSE ); +} + +VOID +ega_mode0_chn_b_write IFN2(ULONG, value, ULONG, offset ) +{ + ULONG lsb; + + note_entrance0("ega_mode0_chn_b_write"); + + (*update_alg.mark_byte)( offset ); + + lsb = offset & 0x1; + offset = (offset >> 1) << 2; + + if( lsb ) /* odd address, in plane 1 or 3 */ + { + offset |= 0x1; + + /* + * check if plane1 enabled + */ + + if( getVideoplane_enable() & 2 ) + { + /* + * check if set/reset function enable for this plane + */ + + if( EGA_CPU.sr_enable & 2 ) + { + value = *((UTINY *) &EGA_CPU.sr_value + 1); + value = do_logicals( value, get_latch1 ); + EGA_plane01[offset] = value; + } + else + { + /* + * set/reset not enabled so here we go + */ + + if( getVideorotate() > 0 ) + value = rotate( value, getVideorotate() ); + + EGA_plane01[offset] = do_logicals( value, get_latch1 ); + } + } + + /* + * check if plane3 enabled + */ + + if( getVideoplane_enable() & 8 ) + { + /* + * check if set/reset function enable for this plane + */ + + if( EGA_CPU.sr_enable & 8 ) + { + value = *((UTINY *) &EGA_CPU.sr_value + 3); + value = do_logicals( value, get_latch3 ); + EGA_plane23[offset] = value; + } + else + { + /* + * set/reset not enabled so here we go + */ + + if( getVideorotate() > 0 ) + value = rotate( value, getVideorotate() ); + + EGA_plane23[offset] = do_logicals( value, get_latch3 ); + } + } + } + else + { /* even address, in plane 0 or 2 */ + /* + * check if plane0 enabled + */ + + if( getVideoplane_enable() & 1 ) + { + + /* + * check if set/reset function enable for this plane + */ + + if(( EGA_CPU.sr_enable & 1 )) + { + value = *((UTINY *) &EGA_CPU.sr_value); + value = do_logicals( value, get_latch0 ); + EGA_plane01[offset] = value; + } + else + { + /* + * set/reset not enabled so here we go + */ + + if( getVideorotate() > 0 ) + value = rotate( value, getVideorotate() ); + + EGA_plane01[offset] = do_logicals( value, get_latch0 ); + } + } + + /* + * check if plane2 enabled + */ + + if( getVideoplane_enable() & 4 ) + { + + /* + * check if set/reset function enable for this plane + */ + + if(( EGA_CPU.sr_enable & 4 )) + { + value = *((UTINY *) &EGA_CPU.sr_value + 2); + value = do_logicals( value, get_latch2 ); + EGA_plane23[offset] = value; + } + else + { + /* + * set/reset not enabled so here we go + */ + + if( getVideorotate() > 0 ) + value = rotate( value, getVideorotate() ); + + EGA_plane23[offset] = do_logicals( value, get_latch2 ); + } + } + } +} + +VOID +ega_mode0_chn_b_fill IFN3(ULONG, value, ULONG, offset, ULONG, count ) +{ + ULONG high_offset; + UTINY value1, value2; + + note_entrance0("ega_mode0_chn_b_fill"); + + /* + * Starting on an odd address is inconvenient - go forward one + */ + + if(( (ULONG) offset & 1) && count ) + { + ega_mode0_chn_b_write( value, offset++ ); + count--; + } + + /* + * Ending on an even address is inconvenient - go back one + */ + + if(( (ULONG) ( offset + count - 1 ) & 1) == 0 && count ) + { + ega_mode0_chn_b_write( value, offset + count - 1 ); + count--; + } + + high_offset = offset + count - 1; + + (*update_alg.mark_fill)( offset, high_offset ); + + offset = (offset >> 1) << 2; + high_offset = (high_offset >> 1) << 2; + + switch( getVideoplane_enable() & 0x3 ) + { + case 0x1: /* just plane 0 ie even addresses to be written */ + if (EGA_CPU.sr_enable & 1) + { + value = *((UTINY *) &EGA_CPU.sr_value); + } + else + { + value = rotate( value, getVideorotate() ); + } + + value = do_logicals( value, get_latch0 ); + fill_alternate_bytes((IS8 *)&EGA_plane01[offset], + (IS8 *)&EGA_plane01[high_offset], + (IS8)value); + break; + + case 0x2: /* just plane 1 ie odd addresses to be written */ + if (EGA_CPU.sr_enable & 2) + { + value = *((UTINY *) &EGA_CPU.sr_value + 1); + } + else + { + value = rotate( value, getVideorotate() ); + } + + value = do_logicals( value, get_latch1 ); + fill_alternate_bytes((IS8 *)&EGA_plane01[offset + 1], + (IS8 *)&EGA_plane01[high_offset], + (IS8)value); + break; + + case 0x3: /* sensible case is to have both chained planes write enabled */ + if (EGA_CPU.sr_enable & 1) + { + value1 = *((UTINY *) &EGA_CPU.sr_value); + } + else + { + value1 = rotate( value, getVideorotate() ); + } + + if (EGA_CPU.sr_enable & 2) + { + value2 = *((UTINY *) &EGA_CPU.sr_value + 1); + } + else + { + value2 = rotate(value,getVideorotate()); + } + + value = value1 | value2 << 8; + value = do_logicals( value, get_latch01 ); + value = (value << 8) | (value >> 8); + + fill_both_bytes( value, (USHORT *)&EGA_plane01[offset], count >> 1 ); + break; + } /* end of switch on plane01 enabled */ + + switch( getVideoplane_enable() & 0xc ) + { + case 0x4: + if( EGA_CPU.sr_enable & 4 ) + { + value = *((UTINY *) &EGA_CPU.sr_value + 2); + } + else + { + value = rotate( value, getVideorotate() ); + } + + value = do_logicals( value, get_latch2 ); + fill_alternate_bytes((IS8 *)&EGA_plane23[offset], + (IS8 *)&EGA_plane23[high_offset], + (IS8)value ); + break; + + case 0x8: + if( EGA_CPU.sr_enable & 8 ) + { + value = *((UTINY *) &EGA_CPU.sr_value + 3); + } + else + { + value = rotate( value, getVideorotate() ); + } + + value = do_logicals( value, get_latch3 ); + fill_alternate_bytes((IS8 *)&EGA_plane23[offset + 1], + (IS8 *)&EGA_plane23[high_offset], + (IS8)value ); + break; + + case 0xc: + if (EGA_CPU.sr_enable & 4) + { + value1 = *((UTINY *) &EGA_CPU.sr_value + 2); + } + else + { + value1 = rotate( value, getVideorotate() ); + } + + if (EGA_CPU.sr_enable & 8) + { + value2 = *((UTINY *) &EGA_CPU.sr_value + 3); + } + else + { + value2 = rotate( value, getVideorotate() ); + } + + value = value1 | value2 << 8; + value = do_logicals( value, get_latch23 ); + value = (value << 8) | (value >> 8); + + fill_both_bytes( value, (USHORT *)&EGA_plane01[offset], count >> 1 ); + break; + } +} + + +VOID +ega_mode0_chn_w_fill IFN3(ULONG, value, ULONG, offset, ULONG, count ) +{ + ULONG high_offset; + UTINY value1, value2; + IBOOL odd = FALSE; + + note_entrance0("ega_mode0_chn_w_fill"); + + /* + * Starting on an odd address is inconvenient - go forward one - + * and take the even address write off the top as well. + */ + + if(( (ULONG) offset & 1) && count ) + { + odd = TRUE; + ega_mode0_chn_b_write( value, offset++ ); + count -= 2; + ega_mode0_chn_b_write( value >> 8, offset + count ); + } + + high_offset = offset + count - 1; + + /* the 3rd parameter is needed by GORE */ + (*update_alg.mark_wfill)( offset, high_offset, 0 ); + + offset = (offset >> 1) << 2; + high_offset = (high_offset >> 1) << 2; + + switch( getVideoplane_enable() & 0x3 ) + { + case 0x1: /* just plane 0 ie even addresses to be written */ + if (EGA_CPU.sr_enable & 1) + { + value1 = *((UTINY *) &EGA_CPU.sr_value); + } + else + { + value1 = odd ? value >> 8 : value; + + if( getVideorotate() > 0 ) + value1 = rotate( value1, getVideorotate() ); + } + + value1 = do_logicals( value1, get_latch0 ); + fill_alternate_bytes((IS8 *)&EGA_plane01[offset], + (IS8 *)&EGA_plane01[high_offset], + (IS8)value1 ); + + break; + + case 0x2: /* just plane 1 ie odd addresses to be written */ + if (EGA_CPU.sr_enable & 2) + { + value1 = *((UTINY *) &EGA_CPU.sr_value + 1); + } + else + { + value1 = odd ? value : value >> 8; + + if( getVideorotate() > 0 ) + value1 = rotate( value1, getVideorotate() ); + } + + value1 = do_logicals( value1, get_latch1 ); + fill_alternate_bytes((IS8 *)&EGA_plane01[offset + 1], + (IS8 *)&EGA_plane01[high_offset], + (IS8)value1 ); + + break; + + case 0x3: /* sensible case is to have both chained planes write enabled */ + if (EGA_CPU.sr_enable & 1) + { + value1 = *((UTINY *) &EGA_CPU.sr_value); + } + else + { + value1 = odd ? value >> 8 : value; + + if( getVideorotate() > 0 ) + value1 = rotate( value1, getVideorotate() ); + } + + if (EGA_CPU.sr_enable & 2) + { + value2 = *((UTINY *) &EGA_CPU.sr_value + 1); + } + else + { + value2 = odd ? value : value >> 8; + + if( getVideorotate() > 0 ) + value2 = rotate( value2, getVideorotate() ); + } + + value = value1 | value2 << 8; + value = do_logicals( value, get_latch01 ); + + fill_both_bytes( value, (USHORT *)&EGA_plane01[offset], count >> 1 ); + + break; + + } /* end of switch on plane01 enabled */ + + switch( getVideoplane_enable() & 0xc ) + { + case 0x4: + if( EGA_CPU.sr_enable & 4 ) + { + value1 = *((UTINY *) &EGA_CPU.sr_value + 2); + } + else + { + value1 = odd ? value >> 8 : value; + + if( getVideorotate() > 0 ) + value1 = rotate( value1, getVideorotate() ); + } + + value1 = do_logicals( value1, get_latch2 ); + fill_alternate_bytes((IS8 *)&EGA_plane23[offset], + (IS8 *)&EGA_plane23[high_offset], + (IS8)value1 ); + + break; + + case 0x8: + if( EGA_CPU.sr_enable & 8 ) + { + value2 = *((UTINY *) &EGA_CPU.sr_value + 3); + } + else + { + value2 = odd ? value : value >> 8; + + if( getVideorotate() > 0 ) + value2 = rotate( value2, getVideorotate() ); + } + + value2 = do_logicals( value2, get_latch3 ); + fill_alternate_bytes((IS8 *)&EGA_plane23[offset + 1], + (IS8 *)&EGA_plane23[high_offset], + (IS8)value2 ); + + break; + + case 0xc: + if (EGA_CPU.sr_enable & 4) + { + value1 = *((UTINY *) &EGA_CPU.sr_value + 2); + } + else + { + value1 = odd ? value >> 8 : value; + + if( getVideorotate() > 0 ) + value1 = rotate( value1, getVideorotate() ); + } + + if (EGA_CPU.sr_enable & 8) + { + value2 = *((UTINY *) &EGA_CPU.sr_value + 3); + } + else + { + value2 = odd ? value : value >> 8; + + if( getVideorotate() > 0 ) + value2 = rotate( value2, getVideorotate() ); + } + + value = value1 | value2 << 8; + value = do_logicals( value, get_latch23 ); + + fill_both_bytes( value, (USHORT *)&EGA_plane01[offset], count >> 1 ); + + break; + } +} + +LOCAL VOID +ega_mode0_chn_move_ram_src IFN5(UTINY *, eas, LONG, count, UTINY *, ead, + UTINY *, EGA_plane, ULONG, plane ) +{ + ULONG offset; + UTINY *src_offset; + UTINY value; + ULONG lsb, srcinc; + + src_offset = (UTINY *) eas; + offset = (ULONG) ead; + + if(( offset & 1 ) != ( plane & 1 )) + { +#ifdef BACK_M + src_offset--; +#else + src_offset++; +#endif + offset++; + count--; + } + +#ifdef BACK_M + srcinc = -2; +#else + srcinc = 2; +#endif + + lsb = offset & 1; + offset = (offset >> 1) << 2; + offset |= lsb; + + /* + * check if set/reset function enable for this plane + */ + + if( EGA_CPU.sr_enable & ( 1 << plane )) + { + value = *((UTINY *) &EGA_CPU.sr_value + plane ); + + while( count > 0 ) + { + count -= 2; + + EGA_plane[offset] = do_logicals( value, get_latch(plane) ); + offset += 4; + } + } + else + { + while( count > 0 ) + { + value = *src_offset; + src_offset += srcinc; + count -= 2; + + /* + * set/reset not enabled so here we go + */ + + if( getVideorotate() > 0 ) + value = rotate( value, getVideorotate() ); + + value = do_logicals( value, get_latch(plane) ); + EGA_plane[offset] = value; + offset += 4; + } + } +} + +LOCAL VOID +ega_mode0_chn_move_vid_src IFN7(UTINY *, eas, LONG, count, UTINY *, ead, + UTINY *, EGA_plane, UTINY *, scratch, ULONG, plane, ULONG, w ) +{ + ULONG offset; + ULONG src_offset; + UTINY *source; + UTINY value; + UTINY valsrc; + ULONG lsb, inc, srcinc; + + offset = (ULONG ) ead; + + if(( offset & 1 ) != ( plane & 1 )) + { + eas++; +#ifdef BACK_M + scratch--; +#else + scratch++; +#endif + offset++; + count--; + } + + src_offset = (ULONG) eas; + +#ifdef BACK_M + srcinc = -2; +#else + srcinc = 2; +#endif + inc = 4; + + lsb = offset & 1; + offset = (offset >> 1) << 2; + offset |= lsb; + + lsb = src_offset & 1; + src_offset = (src_offset >> 1) << 2; + src_offset |= lsb; + + source = &EGA_plane[src_offset] + (w << 2); + + /* + * check if set/reset function enable for this plane + */ + + if( EGA_CPU.sr_enable & ( 1 << plane )) + { + value = *((UTINY *) &EGA_CPU.sr_value + plane ); + + while( count > 0 ) + { + count -= 2; + valsrc = *source; + source += inc; + EGA_plane[offset] = do_logicals( value, valsrc ); + offset += inc; + } + } + else + { + while( count > 0 ) + { + count -= 2; + + value = *(UTINY *) scratch; + scratch += srcinc; + + valsrc = *source; + source += inc; + + /* + * set/reset not enabled so here we go + */ + + if( getVideorotate() > 0 ) + value = rotate( value, getVideorotate() ); + + value = do_logicals( value, valsrc ); + EGA_plane[offset] = value; + offset += inc; + } + } +} + +VOID +ega_mode0_chn_move IFN6(UTINY, w, UTINY *, ead, UTINY *, eas, ULONG, count, + ULONG, src_flag, IBOOL, forwards ) +{ + UTINY *scratch; + IMPORT VOID (*string_read_ptr)(); + + note_entrance0("ega_mode0_chn_move"); + + if( src_flag == 1 ) + { + /* + * Source is in EGA, latches will change with each byte moved. We + * restore CPU's view of source in regen, and use it to update planes + * with the aid of the SAS scratch area. + */ + +#ifdef BACK_M + scratch = getVideoscratch() + 0x10000 - 1; +#else + scratch = getVideoscratch(); +#endif + + if( !forwards ) + { + eas += - count + 1 + w; + ead += - count + 1 + w; + } + + (*string_read_ptr)( scratch, eas, count ); + + if( getVideoplane_enable() & 1 ) + ega_mode0_chn_move_vid_src( eas, count, ead, EGA_plane01, scratch, 0, 0 ); + + if( getVideoplane_enable() & 2 ) + ega_mode0_chn_move_vid_src( eas, count, ead, EGA_plane01, scratch, 1, w ); + + if( getVideoplane_enable() & 4 ) + ega_mode0_chn_move_vid_src( eas, count, ead, EGA_plane23, scratch, 2, 0 ); + + if( getVideoplane_enable() & 8 ) + ega_mode0_chn_move_vid_src( eas, count, ead, EGA_plane23, scratch, 3, w ); + } + else + { + if( !forwards ) + { +#ifdef BACK_M + eas += count - 1 - w; +#else + eas += - count + 1 + w; +#endif + ead += - count + 1 + w; + } + + if( getVideoplane_enable() & 1 ) + ega_mode0_chn_move_ram_src( eas, count, ead, EGA_plane01, 0 ); + + if( getVideoplane_enable() & 2 ) + ega_mode0_chn_move_ram_src( eas, count, ead, EGA_plane01, 1 ); + + if( getVideoplane_enable() & 4 ) + ega_mode0_chn_move_ram_src( eas, count, ead, EGA_plane23, 2 ); + + if( getVideoplane_enable() & 8 ) + ega_mode0_chn_move_ram_src( eas, count, ead, EGA_plane23, 3 ); + } + + (*update_alg.mark_string)( (ULONG) ead, (ULONG) ead + count ); +} + + +VOID +ega_mode0_chn_b_move IFN4(ULONG, ead, ULONG, eas, ULONG, count, ULONG, src_flag) +{ + ega_mode0_chn_move( 0, (UTINY *)ead, (UTINY *)eas, count, src_flag, getDF() ? FALSE : TRUE); +} + +VOID +ega_mode0_chn_b_move_fwd IFN4(ULONG, ead, ULONG, eas, ULONG, count, + ULONG, src_flag ) +{ + ega_mode0_chn_move( 0, (UTINY *)ead, (UTINY *)eas, count, src_flag, TRUE ); +} + +VOID +ega_mode0_chn_b_move_bwd IFN4(ULONG, ead, ULONG, eas, ULONG, count, + ULONG, src_flag ) +{ + ega_mode0_chn_move( 0, (UTINY *)ead, (UTINY *)eas, count, src_flag, FALSE ); +} + +VOID +ega_mode0_chn_w_move IFN4(ULONG, ead, ULONG, eas, ULONG, count, ULONG, src_flag) +{ + ega_mode0_chn_move(1, (UTINY *)ead, (UTINY *)eas, count << 1, src_flag, getDF() ? FALSE : TRUE); +} + +VOID +ega_mode0_chn_w_move_fwd IFN4(ULONG, ead, ULONG, eas, ULONG, count, + ULONG, src_flag ) +{ + ega_mode0_chn_move(1,(UTINY *)ead, (UTINY *)eas, count << 1, src_flag, TRUE ); +} + +VOID +ega_mode0_chn_w_move_bwd IFN4(ULONG, ead, ULONG, eas, ULONG, count, + ULONG, src_flag ) +{ + ega_mode0_chn_move(1,(UTINY *)ead, (UTINY *)eas, count << 1, src_flag, FALSE ); +} + +VOID +ega_mode0_chn_w_write IFN2(ULONG, value, ULONG, offset ) +{ + note_entrance0("ega_mode0_chn_w_write"); + + ega_mode0_chn_b_write( value, offset ); + ega_mode0_chn_b_write( value >> 8, offset + 1 ); +} + +#endif + +#endif /* !(NTVDM && MONITOR) */ diff --git a/private/mvdm/softpc.new/base/video/egwrtm12.c b/private/mvdm/softpc.new/base/video/egwrtm12.c new file mode 100644 index 000000000..2d42e9213 --- /dev/null +++ b/private/mvdm/softpc.new/base/video/egwrtm12.c @@ -0,0 +1,1218 @@ +#include "insignia.h" +#include "host_def.h" + +#if !defined(NTVDM) || (defined(NTVDM) && !defined(X86GFX) ) + +/* INSIGNIA (SUB)MODULE SPECIFICATION + ----------------------------- + + + THIS PROGRAM SOURCE FILE IS SUPPLIED IN CONFIDENCE TO THE + CUSTOMER, THE CONTENTS OR DETAILS OF ITS OPERATION MUST + NOT BE DISCLOSED TO ANY OTHER PARTIES WITHOUT THE EXPRESS + AUTHORISATION FROM THE DIRECTORS OF INSIGNIA SOLUTIONS LTD. + + +DOCUMENT : name and number + +RELATED DOCS : include all relevant references + +DESIGNER : J Maiden + +REVISION HISTORY : +First version : J Maiden, SoftPC 2.0 +Second version : J Shanly, SoftPC 3.0 + +SUBMODULE NAME : write mode 1 and 2 + +SOURCE FILE NAME : ega_writem1.c + +PURPOSE : functions to write to EGA memory in write modes 1 & 2 + + +SccsID = @(#)ega_wrtm12.c 1.20 3/9/94 Copyright Insignia Solutions Ltd. + +[1.INTERMODULE INTERFACE SPECIFICATION] + +[1.0 INCLUDE FILE NEEDED TO ACCESS THIS INTERFACE FROM OTHER SUBMODULES] + + INCLUDE FILE : ega_cpu.pi + +[1.1 INTERMODULE EXPORTS] + + PROCEDURES() : + ega_mode1_chn_b_write(); + ega_mode1_chn_w_write(); + ega_mode1_chn_b_fill(); + ega_mode1_chn_w_fill(); + ega_mode1_chn_b_move(); + ega_mode1_chn_w_move(); + ega_mode2_chn_b_write(); + ega_mode2_chn_w_write(); + ega_mode2_chn_b_fill(); + ega_mode2_chn_w_fill(); + ega_mode2_chn_b_move(); + ega_mode2_chn_w_move(); + + DATA : give type and name + +------------------------------------------------------------------------- +[1.2 DATATYPES FOR [1.1] (if not basic C types)] + + STRUCTURES/TYPEDEFS/ENUMS: + +------------------------------------------------------------------------- +[1.3 INTERMODULE IMPORTS] + (not o/s objects or standard libs) + + +------------------------------------------------------------------------- + +[1.4 DESCRIPTION OF INTERMODULE INTERFACE] + +[1.4.1 IMPORTED OBJECTS] + +DATA OBJECTS : struct EGA_CPU + +FILES ACCESSED : NONE + +DEVICES ACCESSED : NONE + +SIGNALS CAUGHT : NONE + +SIGNALS ISSUED : NONE + + +[1.4.2 EXPORTED OBJECTS] + +/*======================================================================= +[3.INTERMODULE INTERFACE DECLARATIONS] +========================================================================= + +[3.1 INTERMODULE IMPORTS] */ + +/* [3.1.1 #INCLUDES] */ + + +#ifdef EGG + +#include "xt.h" +#include "debug.h" +#include "sas.h" +#include TypesH +#include CpuH +#include "gmi.h" +#include "egacpu.h" +#include "egaports.h" +#include "cpu_vid.h" +#include "gfx_upd.h" + +/* [3.1.2 DECLARATIONS] */ + + +/* [3.2 INTERMODULE EXPORTS] */ + + +/* +5.MODULE INTERNALS : (not visible externally, global internally)] + +[5.1 LOCAL DECLARATIONS] */ + +/* [5.1.1 #DEFINES] */ + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#ifdef PROD +#include "SOFTPC_EGA.seg" +#else +#include "SOFTPC_EGA_WRITE.seg" +#endif +#endif + +/* [5.1.2 TYPEDEF, STRUCTURE, ENUM DECLARATIONS] */ + + +/* [5.1.3 PROCEDURE() DECLARATIONS] */ + + +/* ----------------------------------------------------------------------- +[5.2 LOCAL DEFINITIONS] + + [5.2.1 INTERNAL DATA DEFINITIONS */ + +/* [5.2.2 INTERNAL PROCEDURE DEFINITIONS] */ + + +/* +7.INTERMODULE INTERFACE IMPLEMENTATION : + +/* +[7.1 INTERMODULE DATA DEFINITIONS] */ + +#ifdef A_VID +IMPORT VOID _ch2_mode1_chn_byte_write_glue(); +IMPORT VOID _ch2_mode1_chn_word_write_glue(); +IMPORT VOID _ch2_mode1_chn_byte_fill_glue(); +IMPORT VOID _ch2_mode1_chn_word_fill_glue(); +IMPORT VOID _ch2_mode1_chn_byte_move_glue(); +IMPORT VOID _ch2_mode1_chn_word_move_glue(); + +WRT_POINTERS mode1_handlers = +{ + _ch2_mode1_chn_byte_write_glue, + _ch2_mode1_chn_word_write_glue + +#ifndef NO_STRING_OPERATIONS + , + _ch2_mode1_chn_byte_fill_glue, + _ch2_mode1_chn_word_fill_glue, + _ch2_mode1_chn_byte_move_glue, + _ch2_mode1_chn_byte_move_glue, + _ch2_mode1_chn_word_move_glue, + _ch2_mode1_chn_word_move_glue + +#endif /* NO_STRING_OPERATIONS */ +}; + +IMPORT VOID _ch2_mode2_chn_byte_write_glue(); +IMPORT VOID _ch2_mode2_chn_word_write_glue(); +IMPORT VOID _ch2_mode2_chn_byte_fill_glue(); +IMPORT VOID _ch2_mode2_chn_word_fill_glue(); +IMPORT VOID _ch2_mode2_chn_byte_move_glue(); +IMPORT VOID _ch2_mode2_chn_word_move_glue(); + +WRT_POINTERS mode2_handlers = +{ + _ch2_mode2_chn_byte_write_glue, + _ch2_mode2_chn_word_write_glue + +#ifndef NO_STRING_OPERATIONS + , + _ch2_mode2_chn_byte_fill_glue, + _ch2_mode2_chn_word_fill_glue, + _ch2_mode2_chn_byte_move_glue, + _ch2_mode2_chn_byte_move_glue, + _ch2_mode2_chn_word_move_glue, + _ch2_mode2_chn_word_move_glue + +#endif /* NO_STRING_OPERATIONS */ +}; +#else +VOID ega_mode1_chn_b_write(); +VOID ega_mode1_chn_w_write(); +VOID ega_mode1_chn_b_fill(); +VOID ega_mode1_chn_w_fill(); +VOID ega_mode1_chn_b_move(); +VOID ega_mode1_chn_w_move(); + +VOID ega_mode2_chn_b_write(); +VOID ega_mode2_chn_w_write(); +VOID ega_mode2_chn_b_fill(); +VOID ega_mode2_chn_w_fill(); +VOID ega_mode2_chn_b_move IPT4(ULONG, ead, ULONG, eas, + ULONG, count, ULONG, src_flag); +VOID ega_mode2_chn_w_move IPT4(ULONG, ead, ULONG, eas, + ULONG, count, ULONG, src_flag); + +WRT_POINTERS mode1_handlers = +{ + ega_mode1_chn_b_write, + ega_mode1_chn_w_write + +#ifndef NO_STRING_OPERATIONS + , + ega_mode1_chn_b_fill, + ega_mode1_chn_w_fill, + ega_mode1_chn_b_move, + ega_mode1_chn_b_move, + ega_mode1_chn_w_move, + ega_mode1_chn_w_move, + +#endif /* NO_STRING_OPERATIONS */ + +}; + +WRT_POINTERS mode2_handlers = +{ + ega_mode2_chn_b_write, + ega_mode2_chn_w_write + +#ifndef NO_STRING_OPERATIONS + , + ega_mode2_chn_b_fill, + ega_mode2_chn_w_fill, + ega_mode2_chn_b_move, + ega_mode2_chn_b_move, + ega_mode2_chn_w_move, + ega_mode2_chn_w_move, + +#endif /* NO_STRING_OPERATIONS */ + +}; +#endif /* A_VID */ + + +GLOBAL VOID +copy_alternate_bytes IFN3(byte *, start, byte *, end, byte *, source) +{ + while (start <= end) + { + *start = *source; + start += 4; /* advance by longs, writing bytes */ + source += 4; + } +} + +GLOBAL VOID +fill_alternate_bytes IFN3(byte *, start, byte *, end, byte, value ) +{ + while( start <= end ) + { + *start = value; + start += 4; /* advance by longs, writing bytes */ + } +} + +#ifdef BIGEND +#define first_half(wd) ((wd & 0xff00) >> 8) +#define sec_half(wd) (wd & 0xff) +#else +#define first_half(wd) (wd & 0xff) +#define sec_half(wd) ((wd & 0xff00) >> 8) +#endif + +GLOBAL VOID +fill_both_bytes IFN3(USHORT, data, USHORT *, dest, ULONG, len ) +{ + USHORT swapped; + +#ifdef BIGEND + swapped = ((data & 0xff00) >> 8) | ((data & 0xff) << 8); +#endif + + if( (ULONG) dest & 1 ) + { + *((UTINY *) dest) = first_half(data); + + dest = (USHORT *) ((ULONG) dest + 1); + len--; + + while( len-- ) + { + *dest = data; + dest += 2; + } + + *((UTINY *) dest) = sec_half(data); + } + else + { + while( len-- ) + { +#ifdef BIGEND + *dest = swapped; +#else + *dest = data; +#endif + dest += 2; + } + } +} + + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_EGA_CHN.seg" +#endif + +VOID +ega_mode1_chn_b_write IFN2(ULONG, value, ULONG, offset ) +{ + ULONG lsb; + + UNUSED(value); + + note_entrance0("ega_mode1_chn_b_write"); + + lsb = offset & 1; + offset = (offset >> 1) << 2; + + if( lsb ) /* odd address, in plane 1 or 3 */ + { + if( getVideoplane_enable() & 2 ) + EGA_plane01[offset + 1] = get_latch1; + + if( getVideoplane_enable() & 8 ) + EGA_plane23[offset + 1] = get_latch3; + } + else /* even address, in plane 0 or 2 */ + { + if( getVideoplane_enable() & 1 ) + EGA_plane01[offset] = get_latch0; + + if( getVideoplane_enable() & 4 ) + EGA_plane23[offset] = get_latch2; + } + + update_alg.mark_byte( offset ); +} + +VOID +ega_mode1_chn_w_write IFN2(ULONG, value, ULONG, offset ) +{ + ULONG lsb; + + UNUSED(value); + + note_entrance0("ega_mode1_chn_w_write"); + + lsb = offset & 1; + offset = (offset >> 1) << 2; + + if( lsb ) /* odd address, low byte in planes 1 and 3 */ + { + if( getVideoplane_enable() & 2 ) + EGA_plane01[offset + 1] = get_latch1; + + if( getVideoplane_enable() & 1 ) + EGA_plane01[offset + 4] = get_latch0; + + if( getVideoplane_enable() & 8 ) + EGA_plane23[offset + 1] = get_latch3; + + if( getVideoplane_enable() & 4 ) + EGA_plane23[offset + 4] = get_latch2; + } + else /* even address, low byte in planes 0 and 2 */ + { + if( getVideoplane_enable() & 1 ) + EGA_plane01[offset] = get_latch0; + + if( getVideoplane_enable() & 2 ) + EGA_plane01[offset + 1] = get_latch1; + + if( getVideoplane_enable() & 4 ) + EGA_plane23[offset] = get_latch2; + + if( getVideoplane_enable() & 8 ) + EGA_plane23[offset + 1] = get_latch3; + } + + update_alg.mark_word( offset ); +} + +/* used by both byte and word mode1 fill */ + +LOCAL VOID +ega_mode1_chn_fill IFN2(ULONG, offset, ULONG, count ) +{ + ULONG low_offset; /* distance into regen buffer of start of write */ + ULONG high_offset; /* distance into regen buffer of end of write */ + ULONG length; /* length of fill in bytes */ + ULONG lsb; + + note_entrance0("ega_mode1_chn_fill"); + + /* + * Complicated by possibility that only one of a chained pair of + * planes is write enabled, needing alternate bytes to be written. + */ + + high_offset = offset + count - 1; + lsb = high_offset & 1; + high_offset = (high_offset >> 1) << 2; + high_offset |= lsb; + + low_offset = offset; + length = count; + + switch( getVideoplane_enable() & 3 ) + { + case 1: /* just plane 0, ie even addresses to be written */ + if( offset & 1 ) + low_offset++; + + low_offset = (low_offset >> 1) << 2; + fill_alternate_bytes( &EGA_plane01[low_offset], + &EGA_plane01[high_offset], get_latch0 ); + break; + + case 2: /* just plane 1, ie odd addresses to be written */ + if(( offset & 1 ) == 0 ) + low_offset++; + + low_offset = (low_offset >> 1) << 2; + fill_alternate_bytes( &EGA_plane01[low_offset], + &EGA_plane01[high_offset], get_latch1 ); + break; + + case 3: /* sensible case is to have both chained planes write enabled */ + lsb = low_offset & 1; + low_offset = (low_offset >> 1) << 2; + + if( lsb ) + { + EGA_plane01[low_offset + 1] = get_latch1; + low_offset += 4; + length--; + } + + if( length & 1 ) + { + length -= 1; + EGA_plane01[low_offset + (length << 1)] = get_latch0; + } + + fill_both_bytes( get_latch1 | get_latch0 << 8, + (USHORT *)&EGA_plane01[low_offset], length >> 1 ); + break; + } /* end of switch on plane01 enabled */ + + low_offset = offset; + length = count; + + switch( getVideoplane_enable() & 0xc ) /* isolate 2 bits for planes2 and 3 */ + { + case 4: /* just plane 2, ie even addresses to be written */ + if( low_offset & 1 ) + low_offset++; + + low_offset = (low_offset >> 1) << 2; + fill_alternate_bytes( &EGA_plane23[low_offset], + &EGA_plane23[high_offset], get_latch2 ); + break; + + case 8: /* just plane 3, ie odd addresses to be written */ + if(( low_offset & 1 ) == 0 ) + low_offset++; + + low_offset = (low_offset >> 1) << 2; + fill_alternate_bytes( &EGA_plane23[low_offset], + &EGA_plane23[high_offset], get_latch3 ); + break; + + case 12: /* sensible case is to have both chained planes write enabled */ + lsb = low_offset & 1; + low_offset = (low_offset >> 1) << 2; + + if( lsb ) + { + EGA_plane23[low_offset + 1] = get_latch1; + low_offset += 4; + length--; + } + + if( length & 1 ) + { + length -= 1; + EGA_plane23[low_offset + (length << 1)] = get_latch0; + } + + fill_both_bytes( get_latch1 | get_latch0 << 8, + (USHORT *)&EGA_plane23[low_offset], length >> 1 ); + break; + } /* end of switch on plane23 enabled */ +} + +VOID +ega_mode1_chn_b_fill IFN3(ULONG, value, ULONG, offset, ULONG, count ) +{ + UNUSED(value); + + note_entrance0("ega_mode1_chn_b_fill"); + + ega_mode1_chn_fill( offset, count ); + update_alg.mark_fill( offset, offset + count - 1 ); +} + +VOID +ega_mode1_chn_w_fill IFN3(ULONG, value, ULONG, offset, ULONG, count ) +{ + UNUSED(value); + + note_entrance0("ega_mode1_chn_w_fill"); + + ega_mode1_chn_fill( offset, count ); + update_alg.mark_fill( offset, offset + count - 1 ); +} + +LOCAL VOID +ega_mode1_chn_move_vid_src IFN5(ULONG, ead, ULONG, eas, ULONG, count, + UTINY *, EGA_plane, ULONG, plane ) +{ + ULONG end, lsbd, lsbs, dst, src; + + lsbs = eas & 1; + eas = (eas >> 1) << 2; + eas |= lsbs; + + end = ead + count - 1; + lsbd = end & 1; + end = (end >> 1) << 2; + end |= lsbd; + + lsbd = ead & 1; + ead = (ead >> 1) << 2; + ead |= lsbd; + + if( lsbd != ( plane & 1 )) + { + dst = lsbd ? ead + 3 : ead + 1; + src = lsbs ? eas + 3 : eas + 1; + } + else + { + dst = ead; + src = eas; + } + + copy_alternate_bytes( &EGA_plane[dst], &EGA_plane[end], &EGA_plane[src] ); +} + +GLOBAL VOID +ega_mode1_chn_b_move IFN4(ULONG, ead, ULONG, eas, ULONG, count, ULONG, src_flag ) +{ + note_entrance0("ega_mode1_chn_b_move"); + + if( src_flag ) + { + if( getDF() ) + { + eas -= count - 1; + ead -= count - 1; + } + + if( getVideoplane_enable() & 1 ) + ega_mode1_chn_move_vid_src( ead, eas, count, EGA_plane01, 0 ); + + if( getVideoplane_enable() & 2 ) + ega_mode1_chn_move_vid_src( ead, eas, count, EGA_plane01, 1 ); + + if( getVideoplane_enable() & 4 ) + ega_mode1_chn_move_vid_src( ead, eas, count, EGA_plane23, 2 ); + + if( getVideoplane_enable() & 8 ) + ega_mode1_chn_move_vid_src( ead, eas, count, EGA_plane23, 3 ); + } + else /* source is not in ega memory, it becomes a fill */ + { + if( getDF() ) + ead -= count - 1; + + ega_mode1_chn_fill( ead, count ); + } + + update_alg.mark_string( ead, ead + count - 1 ); +} + +VOID +ega_mode1_chn_w_move IFN4(ULONG, ead, ULONG, eas, ULONG, count, ULONG, src_flag) +{ + note_entrance0("ega_mode1_chn_w_move"); + + count <<= 1; + + if( src_flag ) + { + if( getDF() ) + { + eas -= count - 2; + ead -= count - 2; + } + + if( getVideoplane_enable() & 1 ) + ega_mode1_chn_move_vid_src( ead, eas, count, EGA_plane01, 0 ); + + if( getVideoplane_enable() & 2 ) + ega_mode1_chn_move_vid_src( ead, eas, count, EGA_plane01, 1 ); + + if( getVideoplane_enable() & 4 ) + ega_mode1_chn_move_vid_src( ead, eas, count, EGA_plane23, 2 ); + + if( getVideoplane_enable() & 8 ) + ega_mode1_chn_move_vid_src( ead, eas, count, EGA_plane23, 3 ); + } + else /* source is not in ega memory, it becomes a fill */ + { + if( getDF() ) + ead -= count - 2; + + ega_mode1_chn_fill( ead, count ); + } + + update_alg.mark_string( ead, ead + count - 1 ); +} + +VOID +ega_mode2_chn_b_write IFN2(ULONG, value, ULONG, offset ) +{ + ULONG value1; + ULONG lsb; + + note_entrance0("ega_mode2_chn_b_write"); + + lsb = offset & 1; + offset = (offset >> 1) << 2; + + if( EGA_CPU.fun_or_protection ) + { + if( lsb ) /* odd address, applies to planes 1 and 3 */ + { + if( getVideoplane_enable() & 2 ) + { + value1 = value & 2 ? 0xff : 0; + EGA_plane01[offset + 1] = do_logicals( value1, get_latch1 ); + } + + if( getVideoplane_enable() & 8 ) + { + value1 = value & 8 ? 0xff : 0; + EGA_plane23[offset + 1] = do_logicals( value1, get_latch3 ); + } + } + else /* even address, applies to planes 0 and 2 */ + { + if( getVideoplane_enable() & 1 ) + { + value1 = value & 1 ? 0xff : 0; + EGA_plane01[offset] = do_logicals( value1, get_latch0 ); + } + + if( getVideoplane_enable() & 4 ) + { + value1 = value & 4 ? 0xff : 0; + EGA_plane23[offset] = do_logicals( value1, get_latch2 ); + } + } + } + else /* no difficult function or protection stuff */ + { + if( lsb ) /* odd address, applies to planes 1 and 3 */ + { + if( getVideoplane_enable() & 2 ) + EGA_plane01[offset + 1] = value & 2 ? 0xff : 0; + + if( getVideoplane_enable() & 8 ) + EGA_plane23[offset + 1] = value & 8 ? 0xff : 0; + } + else /* even address, applies to planes 0 and 2 */ + { + if( getVideoplane_enable() & 1 ) + EGA_plane01[offset] = value & 1 ? 0xff : 0; + + if( getVideoplane_enable() & 8 ) + EGA_plane23[offset] = value & 4 ? 0xff : 0; + } + } + + update_alg.mark_byte( offset ); +} + +VOID +ega_mode2_chn_w_write IFN2(ULONG, value, ULONG, offset ) +{ + ULONG value2; + ULONG lsb; + ULONG low, high; + + low = value & 0xff; + high = value >> 8; + + note_entrance0("ega_mode2_chn_w_write"); + + lsb = offset & 1; + offset = (offset >> 1) << 2; + + if( EGA_CPU.fun_or_protection ) + { + if( lsb ) /* odd address, low byte in planes 1 and 3 */ + { + if( getVideoplane_enable() & 2 ) + { + value2 = low & 2 ? 0xff : 0; + EGA_plane01[offset + 1] = do_logicals( value2, get_latch1 ); + } + + if( getVideoplane_enable() & 1 ) + { + value2 = high & 1 ? 0xff : 0; + EGA_plane01[offset + 4] = do_logicals( value2, get_latch0 ); + } + + if( getVideoplane_enable() & 8 ) + { + value2 = low & 8 ? 0xff : 0; + EGA_plane23[offset + 1] = do_logicals( value2, get_latch3 ); + } + + if( getVideoplane_enable() & 4 ) + { + value2 = high & 4 ? 0xff : 0; + EGA_plane23[offset + 4] = do_logicals( value2, get_latch2 ); + } + } + else /* even address, low byte in planes 0 and 2 */ + { + if( getVideoplane_enable() & 1 ) + { + value2 = low & 1 ? 0xff : 0; + EGA_plane01[offset] = do_logicals( value2, get_latch0 ); + } + + if( getVideoplane_enable() & 2 ) + { + value2 = high & 2 ? 0xff : 0; + EGA_plane01[offset + 1] = do_logicals( value2, get_latch1 ); + } + + if( getVideoplane_enable() & 4 ) + { + value2 = low & 4 ? 0xff : 0; + EGA_plane23[offset] = do_logicals( value2, get_latch2 ); + } + + if( getVideoplane_enable() & 8 ) + { + value2 = high & 8 ? 0xff : 0; + EGA_plane23[offset + 1] = do_logicals( value2, get_latch3 ); + } + } + } + else /* easy no function or bit prot case */ + { + if( lsb ) /* odd address, low byte in planes 1 and 3 */ + { + if( getVideoplane_enable() & 2 ) + EGA_plane01[offset + 1] = low & 2 ? 0xff : 0; + + if( getVideoplane_enable() & 1 ) + EGA_plane01[offset + 4] = high & 1 ? 0xff : 0; + + if( getVideoplane_enable() & 8 ) + EGA_plane23[offset + 1] = low & 8 ? 0xff : 0; + + if( getVideoplane_enable() & 4 ) + EGA_plane23[offset + 4] = high & 4 ? 0xff : 0; + } + else /* even address, low byte in planes 0 and 2 */ + { + if( getVideoplane_enable() & 1 ) + EGA_plane01[offset] = low & 1 ? 0xff : 0; + + if( getVideoplane_enable() & 2 ) + EGA_plane01[offset + 1] = high & 2 ? 0xff : 0; + + if( getVideoplane_enable() & 4 ) + EGA_plane23[offset] = low & 4 ? 0xff : 0; + + if( getVideoplane_enable() & 8 ) + EGA_plane23[offset + 1] = high & 8 ? 0xff : 0; + } + } + + update_alg.mark_word( offset ); +} + +VOID +ega_mode2_chn_b_fill IFN3(ULONG, value, ULONG, offset, ULONG, count ) +{ + ULONG low_offset; /* distance into regen buffer of write start and end */ + ULONG high_offset; /* distance into regen buffer of write start and end */ + ULONG new_value; + + note_entrance0("ega_mode2_chn_b_fill"); + + /* + * Complicated by possibility that only one of a chained pair of + * planes is write enabled, needing alternate bytes to be written. + */ + + /* starting on odd address makes it difficult, go to next one */ + + if(( (ULONG) offset & 1 ) && count ) + { + ega_mode2_chn_b_write(value, offset++ ); + count--; + } + + /* ending on even address makes it difficult, retreat to previous one */ + + if(( (ULONG)( offset + count - 1 ) & 1 ) == 0 && count ) + { + ega_mode2_chn_b_write(value, offset + count - 1 ); + count--; + } + + low_offset = (offset >> 1) << 2; /* start of write */ + high_offset = ((offset + count - 1) >> 1) << 2; /* end of write */ + + switch( getVideoplane_enable() & 3 ) + { + case 1: /* just plane 0, ie even addresses to be written */ + value = value & 1 ? 0xff : 0; + + if( EGA_CPU.fun_or_protection ) + value = do_logicals( value, get_latch0 ); + + fill_alternate_bytes( &EGA_plane01[low_offset], + &EGA_plane01[high_offset], value ); + break; + + case 2: /* just plane 1, ie odd addresses to be written */ + value = value & 2 ? 0xff : 0; + + if( EGA_CPU.fun_or_protection ) + value = do_logicals( value, get_latch1 ); + + fill_alternate_bytes( &EGA_plane01[low_offset + 1], + &EGA_plane01[high_offset], value ); + break; + + case 3: /* sensible case is to have both chained planes write enabled */ + new_value = ( value & 1 ? 0xff : 0) | (value & 2 ? 0xff00: 0); + + if( EGA_CPU.fun_or_protection ) + new_value = do_logicals( new_value, get_latch01); + + fill_both_bytes( new_value, (USHORT *)&EGA_plane01[low_offset], count >> 1 ); + break; + + } /* end of switch on plane01 enabled */ + + switch( getVideoplane_enable() & 0xc ) /* isolate 2 bits for planes2 and 3 */ + { + case 4: /* just plane 2, ie even addresses to be written */ + value = value & 4 ? 0xff : 0; + + if( EGA_CPU.fun_or_protection ) + value = do_logicals( value, get_latch2 ); + + fill_alternate_bytes( &EGA_plane23[low_offset], + &EGA_plane23[high_offset], value ); + break; + + case 8: /* just plane 3, ie odd addresses to be written */ + value = value & 8 ? 0xff : 0; + + if( EGA_CPU.fun_or_protection ) + value = do_logicals( value, get_latch3 ); + + fill_alternate_bytes( &EGA_plane23[low_offset + 1], + &EGA_plane23[high_offset], value ); + break; + + case 12: /* sensible case is to have both chained planes write enabled */ + new_value = ( value & 4 ? 0xff : 0) | (value & 8 ? 0xff00: 0); + + if( EGA_CPU.fun_or_protection ) + new_value = do_logicals( new_value, get_latch23); + + fill_both_bytes( new_value, (USHORT *)&EGA_plane23[low_offset], count >> 1 ); + break; + } /* end of switch on plane23 enabled */ + + update_alg.mark_fill( offset, offset + count - 1 ); +} + +VOID +ega_mode2_chn_w_fill IFN3(ULONG, value, ULONG, offset, ULONG, count ) +{ + ULONG low_offset; /* distance into regen buffer of write start and end */ + ULONG high_offset; /* distance into regen buffer of write start and end */ + ULONG value1; + + note_entrance0("ega_mode2_chn_w_fill"); + + /* + * Complicated by possibility that only one of a chained pair of + * planes is write enabled, needing alternate bytes to be written. + */ + + /* starting on odd address makes it difficult, go to next one */ + + if(( (ULONG) offset & 1 ) && count ) + { + ega_mode2_chn_b_write( value, offset++); + count--; + + if( count ) + { + ega_mode2_chn_b_write( value >> 8, offset + count - 1 ); + count--; + } + + value = ( value << 8 ) | ( value >> 8 ); + } + + low_offset = (offset >> 1) << 2; /* start of write */ + high_offset = ((offset + count - 1) >> 1) << 2; /* end of write */ + + switch( getVideoplane_enable() & 3 ) + { + case 1: /* just plane 0, ie even addresses to be written */ + value1 = value & 1 ? 0xff : 0; + + if( EGA_CPU.fun_or_protection ) + value1 = do_logicals( value1, get_latch0 ); + + fill_alternate_bytes( &EGA_plane01[low_offset], + &EGA_plane01[high_offset], value1 ); + break; + + case 2: /* just plane 1, ie odd addresses to be written */ + value1 = ( value >> 8 ) & 2 ? 0xff : 0; + + if( EGA_CPU.fun_or_protection ) + value1 = do_logicals( value1, get_latch1 ); + + fill_alternate_bytes( &EGA_plane01[low_offset + 1], + &EGA_plane01[high_offset], value1 ); + break; + + case 3: /* sensible case is to have both chained planes write enabled */ + /* get a word pattern for filling */ + value1 = ( value & 1 ? 0xff : 0 ) | (( value >> 8 ) & 2 ? 0xff00: 0 ); + + if( EGA_CPU.fun_or_protection ) + value1 = do_logicals( value1, get_latch01 ); + + fill_both_bytes( value1, (USHORT *)&EGA_plane01[low_offset], count >> 1 ); + break; + } /* end of switch on plane01 enabled */ + + switch( getVideoplane_enable() & 0xc ) /* isolate 2 bits for planes 2 and 3 */ + { + case 4: /* just plane 2, ie even addresses to be written */ + value1 = value & 4 ? 0xff : 0; + + if( EGA_CPU.fun_or_protection ) + value1 = do_logicals( value1, get_latch2 ); + + fill_alternate_bytes( &EGA_plane23[low_offset], + &EGA_plane23[high_offset], value1 ); + break; + + case 8: /* just plane 3, ie odd addresses to be written */ + value1 = ( value >> 8 ) & 8 ? 0xff : 0; + + if( EGA_CPU.fun_or_protection ) + value1 = do_logicals( value1, get_latch3 ); + + fill_alternate_bytes( &EGA_plane23[low_offset + 1], + &EGA_plane23[high_offset], value1 ); + break; + + case 12: /* sensible case is to have both chained planes write enabled */ + /* get a word pattern for filling */ + value1 = ( value & 4 ? 0xff : 0 ) | (( value >> 8 ) & 8 ? 0xff00: 0 ); + + if( EGA_CPU.fun_or_protection ) + value1 = do_logicals( value1, get_latch23); + + fill_both_bytes( value1, (USHORT *)&EGA_plane23[low_offset], count >> 1 ); + break; + } /* end of switch on plane23 enabled */ + + /* the 3rd parameter is needed by GORE. */ + update_alg.mark_wfill( offset, offset + count - 1, 0 ); +} + +LOCAL VOID +ega_mode2_chn_move_guts IFN8(UTINY *, eas, UTINY *, ead, LONG, count, + UTINY *, EGA_plane, ULONG, scratch, ULONG, plane, ULONG, w, + ULONG, src_flag ) +{ + ULONG src, dst; + UTINY *source; + USHORT value; + ULONG lsb; + + src = (ULONG) eas; + + dst = (ULONG) ead; + + /* + * even planes cannot start with odd addresses + * odd planes cannot start with even addresses + */ + + if(( dst & 1 ) != ( plane & 1 )) + { +#ifdef BACK_M + src--; + scratch--; +#else + src++; + scratch++; +#endif + dst++; + count--; + } + + lsb = dst & 1; + dst = (dst >> 1) << 2; + dst |= lsb; + + if( src_flag ) + { + lsb = src & 1; + src = (src >> 1) << 2; + src |= lsb; + + if( plane & 1 ) + { + + /* + * This causes latches to be read from 2 bytes above the word + * that was read if it was on an odd address, ie it only applies + * to planes 1 and 3 in chained mode word operations. + */ + + source = w ? &EGA_plane[src] + 2 : &EGA_plane[src]; + } + else + { + source = &EGA_plane[src]; + } + + src = scratch; + } + + if( EGA_CPU.fun_or_protection ) + { + while( count > 0 ) + { + count -= 2; + + value = *(UTINY *) src & (1 << plane) ? 0xff : 0; +#ifdef BACK_M + src -= 2; +#else + src += 2; +#endif + + if( src_flag ) + { + put_latch( plane, *source ); + source += 4; + } + + EGA_plane[dst] = do_logicals( value, get_latch(plane) ); + dst += 4; + } + } + else + { + while( count > 0 ) + { + count -= 2; + + EGA_plane[dst] = *(UTINY *) src & (1 << plane) ? 0xff : 0; +#ifdef BACK_M + src -= 2; +#else + src += 2; +#endif + dst += 4; + } + } +} + +/* + * Used by ega_mode2_chn_b_move with w == 0 and by + * ega_mode2_gen_w_move with w == 1 + */ + +VOID +ega_mode2_chn_move IFN5(UTINY, w, UTINY *, ead, UTINY *, eas, ULONG, count, + ULONG, src_flag ) +{ + UTINY *scr; + + IMPORT VOID (*string_read_ptr)(); + + count <<= w; + + if( src_flag ) + { + /* + * Source is in EGA, latches will change with each byte moved. We + * restore CPU's view of source in regen, and use it to update planes + * with the aid of the SAS scratch area. + */ + +#ifdef BACK_M + scr = getVideoscratch() + 0x10000 - 1; +#else + scr = getVideoscratch(); +#endif + + if( getDF() ) + { + eas = eas - count + 1 + w; + ead = ead - count + 1 + w; + } + + (*string_read_ptr)( scr, eas, count ); + } + else + { + if( getDF() ) + { +#ifdef BACK_M + eas = eas + count - 1 - w; +#else + eas = eas - count + 1 + w; +#endif + ead = ead - count + 1 + w; + } + } + + if( getVideoplane_enable() & 1 ) /* plane 0, even addresses, enabled */ + ega_mode2_chn_move_guts( eas, ead, count, EGA_plane01, (ULONG) scr, 0, w, src_flag ); + + if( getVideoplane_enable() & 2 ) /* plane 1, odd addresses, enabled */ + ega_mode2_chn_move_guts( eas, ead, count, EGA_plane01, (ULONG) scr, 1, w, src_flag ); + + if( getVideoplane_enable() & 4 ) /* plane 2, even addresses, enabled */ + ega_mode2_chn_move_guts( eas, ead, count, EGA_plane23, (ULONG) scr, 2, w, src_flag ); + + if( getVideoplane_enable() & 8 ) /* plane 3, odd addresses, enabled */ + ega_mode2_chn_move_guts( eas, ead, count, EGA_plane23, (ULONG) scr, 3, w, src_flag ); + + update_alg.mark_string( (int) ead, (int) ead + count - 1 ); +} + +VOID +ega_mode2_chn_b_move IFN4(ULONG, ead, ULONG, eas, ULONG, count, + ULONG, src_flag) +{ + note_entrance0("ega_mode2_chn_b_move"); + + /* general function, 0 means byte write */ + + ega_mode2_chn_move(0, (UTINY *) ead, (UTINY *) eas, count, src_flag); +} + +VOID +ega_mode2_chn_w_move IFN4(ULONG, ead, ULONG, eas, ULONG, count, + ULONG, src_flag) +{ + note_entrance0("ega_mode2_chn_w_move"); + + /* general function, 1 means word write */ + + ega_mode2_chn_move(1, (UTINY *)ead, (UTINY *)eas, count, src_flag); +} + +#endif + +#endif /* !NTVDM | (NTVDM & !X86GFX) */ diff --git a/private/mvdm/softpc.new/base/video/ga_glue.c b/private/mvdm/softpc.new/base/video/ga_glue.c new file mode 100644 index 000000000..99d91ae4b --- /dev/null +++ b/private/mvdm/softpc.new/base/video/ga_glue.c @@ -0,0 +1,349 @@ +#include "insignia.h" +#include "host_def.h" + +/* + * SoftPC Revision 3.0 + * + * Title : ga_glue.c + * + * Description : Glue to fit an a2cpu to 3.0 GA graphics + * Also used for later C CPUs which use the 2.0 + * video interface. + * + * Author : John Shanly + * + * Notes : + * + */ + +/* + * static char SccsID[] = "@(#)ga_glue.c 1.14 12/17/93 Copyright Insignia Solutions Ltd."; + */ + +#ifdef C_VID + +#include "xt.h" +#include CpuH +#include "sas.h" +#include "gvi.h" +#include "gmi.h" +#include "egacpu.h" +#include "cpu_vid.h" +#include "ga_defs.h" + +#include +#include "trace.h" +#include "debug.h" + +#define INTEL_SRC 0 +#define HOST_SRC 1 + +IMPORT READ_POINTERS C_vid_reads; +IMPORT WRT_POINTERS C_vid_writes; + +GLOBAL VOID +glue_b_write( addr, val ) + +UTINY *addr; +ULONG val; + +{ + sub_note_trace2( GLUE_VERBOSE, + "glue_b_write: addr=%x, pe = %x", addr, VGLOBS->plane_enable ); + +#ifdef CCPU + EasVal = val; + Ead = (ULONG) addr - gvi_pc_low_regen; +#else + UNUSED(val); + + EasVal = *addr; + Ead = (ULONG) addr - (ULONG) get_byte_addr(gvi_pc_low_regen); +#endif /* CCPU */ + + (*C_vid_writes.b_write)( EasVal, Ead ); +} + +GLOBAL VOID +glue_w_write( addr, val ) + +UTINY *addr; +ULONG val; + +{ + sub_note_trace2( GLUE_VERBOSE, + "glue_w_write: addr=%x, pe = %x", addr, VGLOBS->plane_enable ); + +#ifdef CCPU + EasVal = val; + Ead = (ULONG) addr - gvi_pc_low_regen; +#else + UNUSED(val); + + EasVal = *addr | ( *(addr+1) << 8 ); + Ead = (ULONG) addr - (ULONG) get_byte_addr(gvi_pc_low_regen); +#endif /* CCPU */ + + (*C_vid_writes.w_write)( EasVal, Ead ); +} + + +#ifndef NO_STRING_OPERATIONS + +GLOBAL VOID +glue_b_fill( laddr, haddr, val ) + +UTINY *laddr, *haddr; +ULONG val; + +{ + sub_note_trace3( GLUE_VERBOSE, + "glue_b_fill: laddr=%x, haddr=%x, pe = %x", laddr, haddr, VGLOBS->plane_enable ); + + Count = haddr - laddr + 1; + +#ifdef CCPU + Ead = (ULONG) laddr - gvi_pc_low_regen; + EasVal = val; +#else + UNUSED(val); + + Ead = (ULONG) laddr - (ULONG) get_byte_addr(gvi_pc_low_regen); + EasVal = *laddr; +#endif /* CCPU */ + + (*C_vid_writes.b_fill)( EasVal, Ead, Count ); +} + +GLOBAL VOID +glue_w_fill( laddr, haddr, val ) + +UTINY *laddr, *haddr; +ULONG val; + +{ + sub_note_trace3( GLUE_VERBOSE, + "glue_w_fill: laddr=%x, haddr=%x, pe = %x", laddr, haddr, VGLOBS->plane_enable ); + + Count = haddr - laddr + 1; + +#ifdef CCPU + Ead = (ULONG) laddr - gvi_pc_low_regen; + EasVal = val; +#else + UNUSED(val); + + Ead = (ULONG) laddr - (ULONG) get_byte_addr(gvi_pc_low_regen); + EasVal = *laddr | ( *(laddr+1) << 8 ); +#endif /* CCPU */ + + (*C_vid_writes.w_fill)( EasVal, Ead, Count ); +} + +GLOBAL VOID +glue_b_move( laddr, haddr, src, src_type ) + +UTINY *laddr, *haddr, *src, src_type; + +{ + sub_note_trace3( GLUE_VERBOSE, + "glue_b_move: laddr=%x, haddr=%x, pe = %x", laddr, haddr, VGLOBS->plane_enable ); + + Count = haddr - laddr + 1; + +#ifdef CCPU + Ead = (ULONG) laddr - gvi_pc_low_regen; + EasVal = (ULONG) src; +#else + UNUSED(src); + UNUSED(src_type); + + Ead = (ULONG) laddr - (ULONG) get_byte_addr(gvi_pc_low_regen); + EasVal = (ULONG) haddr_of_src_string - Count + 1; +#endif /* CCPU */ + +#ifdef CCPU + if(( src_type == HOST_SRC ) + || ( EasVal < (ULONG) gvi_pc_low_regen ) || ((ULONG) gvi_pc_high_regen < EasVal )) +#else + if(( EasVal < (ULONG) get_byte_addr(gvi_pc_low_regen) ) || ((ULONG) get_byte_addr(gvi_pc_high_regen) < EasVal )) +#endif /* CCPU */ + { + /* Ram source */ + + V1 = 0; +#ifdef CCPU + /* + * This looks like a deliberate hack to pass an intel address + * in a host pointer. Hence I've added a cast to the + * get_byte_addr call to remove an ANSI warning. (Mike). + */ + + if( src_type == INTEL_SRC ) + EasVal = (ULONG) get_byte_addr((PHY_ADDR)src); /* Staging post eliminated */ +#else + EasVal = (ULONG) laddr; /* Staging post hack */ +#endif /* CCPU */ + } + else + { + /* VGA source */ + + V1 = 1; +#ifdef CCPU + EasVal -= (ULONG) gvi_pc_low_regen; +#else + EasVal -= (ULONG) get_byte_addr(gvi_pc_low_regen); +#endif /* CCPU */ + } + + if( getDF() ) + { + Ead += Count - 1; + EasVal += Count - 1; + (*C_vid_writes.b_bwd_move)( Ead, EasVal, Count, V1 ); + } + else + (*C_vid_writes.b_fwd_move)( Ead, EasVal, Count, V1 ); +} + +GLOBAL VOID +glue_w_move( laddr, haddr, src ) + +UTINY *laddr, *haddr, *src; + +{ + sub_note_trace3( GLUE_VERBOSE, + "glue_w_move: laddr=%x, haddr=%x, pe = %x", laddr, haddr, VGLOBS->plane_enable ); + + Count = ( haddr - laddr + 1 ) >> 1; + +#ifdef CCPU + Ead = (ULONG) laddr; + EasVal = (ULONG) src; +#else + UNUSED(src); + + Ead = (ULONG) laddr - (ULONG) get_byte_addr(gvi_pc_low_regen); + EasVal = (ULONG) haddr_of_src_string - ( Count << 1 ) + 1; +#endif /* CCPU */ + + +#ifdef CCPU + if(( EasVal < (ULONG) gvi_pc_low_regen ) || ((ULONG) gvi_pc_high_regen < EasVal )) +#else + if(( EasVal < (ULONG) get_byte_addr(gvi_pc_low_regen) ) || ((ULONG) get_byte_addr(gvi_pc_high_regen) < EasVal )) +#endif /* CCPU */ + { + /* Ram source */ + + V1 = 0; +#ifdef CCPU + EasVal = (ULONG ) get_byte_addr((PHY_ADDR)laddr); /* Staging post hack */ +#else + EasVal = (ULONG) laddr; /* Staging post hack */ +#endif /* CCPU */ + } + else + { + /* VGA source */ + + V1 = 1; +#ifdef CCPU + EasVal -= (ULONG) gvi_pc_low_regen; +#else + EasVal -= (ULONG) get_byte_addr(gvi_pc_low_regen); +#endif /* CCPU */ + } + + if( getDF() ) + { + Ead += ( Count << 1 ) - 2; + EasVal += ( Count << 1 ) - 2; + (*C_vid_writes.w_bwd_move)( Ead, EasVal, Count, V1 ); + } + else + (*C_vid_writes.w_fwd_move)( Ead, EasVal, Count, V1 ); +} + + +#endif /* NO_STRING_OPERATIONS */ + + +/**/ + + +GLOBAL ULONG +glue_b_read( addr ) + +UTINY *addr; + +{ + sub_note_trace2( GLUE_VERBOSE, + "glue_b_read: addr=%x, shift = %d", addr, VGLOBS->read_shift_count ); + +#ifdef CCPU + EasVal = (ULONG) addr - (ULONG) gvi_pc_low_regen; +#else + EasVal = (ULONG) addr - (ULONG) get_byte_addr(gvi_pc_low_regen); +#endif /* CCPU */ + + (*C_vid_reads.b_read)( EasVal ); + +#ifdef CCPU + return( EasVal ); +#else + *addr = EasVal; + return( 0 ); +#endif /* CCPU */ +} + +GLOBAL ULONG +glue_w_read( addr ) + +UTINY *addr; + +{ + sub_note_trace2( GLUE_VERBOSE, + "glue_w_read: addr=%x, shift = %d", addr, VGLOBS->read_shift_count ); + +#ifdef CCPU + EasVal = (ULONG) addr - (ULONG) gvi_pc_low_regen; +#else + EasVal = (ULONG) addr - (ULONG) get_byte_addr(gvi_pc_low_regen); +#endif /* CCPU */ + + (*C_vid_reads.w_read)( EasVal ); + +#ifdef CCPU + return( EasVal ); +#else + *(addr+1) = EasVal >> 8; + *addr = EasVal; + return( 0 ); +#endif /* CCPU */ +} + + +GLOBAL VOID +glue_str_read( laddr, haddr ) + +UTINY *laddr, *haddr; + +{ + sub_note_trace3( GLUE_VERBOSE, + "glue_str_read: laddr=%x, haddr=%x, shift = %d", + laddr, haddr, VGLOBS->read_shift_count ); + + Count = haddr - laddr + 1; +#ifdef CCPU + EasVal = (ULONG) laddr - (ULONG) gvi_pc_low_regen; +#else + EasVal = (ULONG) laddr - (ULONG) get_byte_addr(gvi_pc_low_regen); +#endif /* CCPU */ + Ead = (ULONG ) laddr; + + (*C_vid_reads.str_read)( (UTINY *)Ead, EasVal, Count ); +} + +#endif /* C_VID */ diff --git a/private/mvdm/softpc.new/base/video/gfx_updt.c b/private/mvdm/softpc.new/base/video/gfx_updt.c new file mode 100644 index 000000000..26533b4e0 --- /dev/null +++ b/private/mvdm/softpc.new/base/video/gfx_updt.c @@ -0,0 +1,4845 @@ +/* INSIGNIA (SUB)MODULE SPECIFICATION + ----------------------------- + + + THIS PROGRAM SOURCE FILE IS SUPPLIED IN CONFIDENCE TO THE + CUSTOMER, THE CONTENTS OR DETAILS OF ITS OPERATION MUST + NOT BE DISCLOSED TO ANY OTHER PARTIES WITHOUT THE EXPRESS + AUTHORISATION FROM THE DIRECTORS OF INSIGNIA SOLUTIONS LTD. + +DOCUMENT : Display Update Algorithms + +DESIGNER : William Gulland + +REVISION HISTORY : +First version : date, who + +SccsID[]="@(#)gfx_update.c 1.82 06/30/95 Copyright Insignia Solutions Ltd."; + +*/ + +/* +PURPOSE : Keep the host screen up to date. +[1.INTERMODULE INTERFACE SPECIFICATION] + +[1.1 INTERMODULE EXPORTS] + + DATA : give type and name + struct _UPDATE_ALG update_alg + +------------------------------------------------------------------------- +[1.2 DATATYPES FOR [1.1] (if not basic C types)] + + STRUCTURES/TYPEDEFS/ENUMS: + +------------------------------------------------------------------------- +[1.3 INTERMODULE IMPORTS] +None +------------------------------------------------------------------------- + +[1.4 DESCRIPTION OF INTERMODULE INTERFACE] + +[1.4.1 IMPORTED OBJECTS] +None. +[1.4.2 EXPORTED OBJECTS] +========================================================================= +GLOBALS : describe what exported data objects are + accessed and how. Likewise for imported + data objects. + update_alg - pointers to update functions contained + here or elsewhere - eg. host specific update stuff. + + text_update() - routine to do a text update, by comparing + the adaptor regen area with video_copy. + + cga_graph_update() - routine to do a graphics update, by comparing + the adaptor regen area with video_copy. + + text_scroll_up/down() - scroll portion of the screen in text mode. + cga_graph_scroll_up/down() - scroll portion of the screen in cga graphics mode. +========================================================================= +[3.INTERMODULE INTERFACE DECLARATIONS] +========================================================================= + +[3.1 INTERMODULE IMPORTS] */ + +#include "insignia.h" +#include "host_def.h" + +#include +#include StringH +#include "xt.h" +#include "sas.h" +#include "ios.h" +#include CpuH +#include "gmi.h" +#include "gvi.h" +#include "cga.h" +#include "error.h" +#include "config.h" /* to get defn of MDA! */ +#include "trace.h" +#include "debug.h" +#include "gfx_upd.h" +#include "host_gfx.h" +#include "video.h" + +#ifdef EGG +#include "egacpu.h" +#include "egagraph.h" +#include "vgaports.h" +#include "egaports.h" +#endif /* EGG */ + +#ifdef GORE +#include "gore.h" +#endif /* GORE */ + +#include "ga_mark.h" +#include "ga_defs.h" + +/*[3.2 INTERMODULE EXPORTS] */ + +/* + * Terminal type. This is initialised to a set default which is determined + * in host_graph.h. + */ + +int terminal_type = TERMINAL_TYPE_DEFAULT; + +/* +5.MODULE INTERNALS : (not visible externally, global internally)] + +[5.1 LOCAL DECLARATIONS] */ + +/* [5.1.1 #DEFINES] */ +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_GRAPHICS.seg" +#endif + +#if defined(PROD) || (!defined(EGG)) +#define init_dirty_recs() dirty_next = 0 +#else +#define init_dirty_recs() { dirty_next = 0 ; if (io_verbose & EGA_DISPLAY_VERBOSE) \ + trace("--- start collecting update records ---\n",0); } +#endif + +#define get_dirty_rec_total() (dirty_next) +#ifdef VGG +#if defined(PROD) || (!defined(EGG)) +#define add_dirty_rec(line,st,len,off,fr) { dirty[dirty_next].line_no = (line); \ + dirty[dirty_next].start = (st); \ + dirty[dirty_next].end = (st) + (len); \ + dirty[dirty_next].video_copy_offset = (off); \ + dirty[dirty_next].v7frig = (fr); \ + dirty_next++; \ + } +#else +#define add_dirty_rec(line,st,len,off,fr) { if (io_verbose & EGA_DISPLAY_VERBOSE) {\ + char trace_string[80]; \ + sprintf(trace_string,"dirty[%d]line_no %d, start %d end %d", \ + dirty_next,(line),(st),(st)+(len));\ + trace(trace_string,0); \ + } \ + dirty[dirty_next].line_no = (line); \ + dirty[dirty_next].start = (st); \ + dirty[dirty_next].end = (st) + (len); \ + dirty[dirty_next].video_copy_offset = (off); \ + dirty[dirty_next].v7frig = (fr); \ + dirty_next++; \ + } +#endif +#else /* VGG */ +#if defined(PROD) || (!defined(EGG)) +#define add_dirty_rec(line,st,len,off) { dirty[dirty_next].line_no = (line); \ + dirty[dirty_next].start = (st); \ + dirty[dirty_next].end = (st) + (len); \ + dirty[dirty_next].video_copy_offset = (off); \ + dirty_next++; \ + } +#else +#define add_dirty_rec(line,st,len,off) { if (io_verbose & EGA_DISPLAY_VERBOSE) {\ + char trace_string[80]; \ + sprintf(trace_string,"dirty[%d]line_no %d, start %d end %d", \ + dirty_next,(line),(st),(st)+(len));\ + trace(trace_string,0); \ + } \ + dirty[dirty_next].line_no = (line); \ + dirty[dirty_next].start = (st); \ + dirty[dirty_next].end = (st) + (len); \ + dirty[dirty_next].video_copy_offset = (off); \ + dirty_next++; \ + } +#endif +#endif /* VGG */ + +#define get_dirty_line(ind) (dirty[(ind)].line_no) +#define get_dirty_start(ind) (dirty[(ind)].start) +#define get_dirty_end(ind) (dirty[(ind)].end) +#define get_dirty_offset(ind) (dirty[(ind)].video_copy_offset) +#define clear_dirty() {setVideodirty_total(0);setVideodirty_low(0x80001);setVideodirty_high(-1);} + +#ifdef NO_STRING_OPERATIONS +#define SET_VGLOBS_MARK_STRING(func) /*nothing*/ +#else +#define SET_VGLOBS_MARK_STRING(func) setVideomark_string(func); +#endif /* NO_STRING_OPERATIONS */ + + +/* Parts of update and paint routines assume start of screen memory is on +a 4-byte boundary. This macro makes this true and reports if it wasn't. */ +#ifdef PROD +#define ALIGN_SCREEN_START(start) (start &= ~3L) +#else +#define ALIGN_SCREEN_START(start) if (start & 3L) \ + { file_id; printf("Start of screen not 4-byte aligned"); newline; \ + start &= ~3L; } +#endif /* PROD */ + +GLOBAL LONG dirty_curs_offs = -1; /* GLOBAL for JOKER */ +GLOBAL LONG dirty_curs_x; +GLOBAL LONG dirty_curs_y; + +#ifndef REAL_VGA + +/* [5.1.2 TYPEDEF, STRUCTURE, ENUM DECLARATIONS] */ + +/* [5.1.3 PROCEDURE() DECLARATIONS] */ + + LOCAL boolean simple_update IPT0(); + boolean dummy_scroll IPT6(int,dummy1,int,dummy2,int,dummy3, + int,dummy4,int,dummy5,int,dummy6); +#if defined(NTVDM) && defined(MONITOR) + boolean mon_text_scroll_up IPT6(sys_addr, start, int, width, int, height, int, attr, int, lines, int, colour); + boolean mon_text_scroll_down IPT6(sys_addr, start, int, width, int, height, int, attr, int, lines, int, colour); +#endif /* NTVDM & MONITOR */ + + LOCAL VOID save_gfx_update_routines IPT0(); + LOCAL VOID inhibit_gfx_update_routines IPT0(); + + /* Imports from v7_ports.c */ + +#ifdef V7VGA + IMPORT VOID draw_v7ptr IPT0(); + IMPORT VOID remove_v7ptr IPT0(); + IMPORT BOOL v7ptr_between_lines IPT2(int,start_line,int,end_line); +#endif /* V7VGA */ + + +#ifdef HOST_SCREEN_UPDATES + +IMPORT BOOL HostUpdatedVGA IPT0(); /* Called from vga_graph_update() */ +IMPORT BOOL HostUpdatedEGA IPT0(); /* ega_graph_update() */ + +#else /* HOST_SCREEN_UPDATES */ + +#define HostUpdatedVGA() FALSE +#define HostUpdatedEGA() FALSE + +#endif /* HOST_SCREEN_UPDATES */ + + +/* ----------------------------------------------------------------------- +[5.2 LOCAL DEFINITIONS] + + [5.2.1 INTERNAL DATA DEFINITIONS */ + +byte *video_copy; /* video_copy is now allocated in host_init_screen()'s */ + +#ifndef macintosh +#ifdef VGG +#ifdef V7VGA +static DIRTY_PARTS dirty[768]; +#else +static DIRTY_PARTS dirty[480]; +#endif /* V7VGA */ +#else +static DIRTY_PARTS dirty[350]; +#endif +#else +DIRTY_PARTS *dirty; /* NB. Allocated as 350*4*sizeof(int) in applInit(). */ +#endif + +IMPORT half_word bg_col_mask; +static int dirty_next=0; + +/* [5.2.2 INTERNAL PROCEDURE DEFINITIONS] */ + +static int search_video_copy IFN3(int, start_line, + int, end_line, int, start_offset) +{ + register byte *ptr,*k; + register int j; + register int quarter_opl = get_offset_per_line()>>2; + byte *vcopy = &video_copy[start_offset]; + byte save,*end_ptr; + + ptr = vcopy; + end_ptr = ptr + quarter_opl*(end_line-start_line); + save = *end_ptr; + *end_ptr = 1; /* End marker */ + while(ptr < end_ptr) + { + if(!*ptr) + do {; } while (!(*++ptr)); + if(ptr >= end_ptr)break; + /* Work out where in line we've reached */ + j = (int)((ptr - vcopy)%quarter_opl); + /* + * Have found a dirty line. Find width + */ + for ( k= ptr+quarter_opl-j-1; *k == 0 ; k-- ) ; /* We know *ptr != 0, so k will stop at ptr */ +#ifdef VGG + add_dirty_rec((int)((ptr-vcopy)/quarter_opl)+start_line, + j<<2, (int)(k-ptr+1)<<2, ptr-video_copy-j,0); +#else + add_dirty_rec((int)((ptr-vcopy)/quarter_opl)+start_line, + j<<2, (int)(k-ptr+1)<<2, ptr-video_copy-j); +#endif /* VGG */ + + ptr += quarter_opl - j; + /* + * Don't clear out the marked area in case the plane wraps + */ + } + *end_ptr = save; + return( get_dirty_rec_total() ); +} + +#ifdef VGG + +/* + * Special version of search_video_copy() for the Video 7 Extended Modes 60h & 61h + * and 'undocumented' VGA mode which have chars_per_line of 90 & 94 which don't seem + * to be multiples of 4. Interestingly, Zany Golf ( EGA, Mode 14 ) also ends up + * calling this code. + */ + +static int v7_search_video_copy IFN3(int, start_line, + int, end_line, int, start_offset) +{ + register byte *ptr,*k; + register int j; + register int half_opl = get_offset_per_line()>>1; + register int quarter_opl = get_offset_per_line()>>2; + byte *vcopy = &video_copy[start_offset]; + byte save,*end_ptr; + long length; + int bodge = 0; + + if (start_line & 1) + bodge = 2; + ptr = vcopy; + + /* + * This calculation sets end_ptr slightly too high to + * ensure that all the dirty areas get found. + */ + + end_ptr = ptr + (half_opl*(end_line-start_line+1))/2; + + save = *end_ptr; + *end_ptr = 1; /* End marker */ + while(ptr < end_ptr) + { + if(!*ptr) + { + while (!(*++ptr)); + } + if(ptr >= end_ptr)break; + /* Work out where in line we've reached */ + j = (int)((ptr - vcopy)%half_opl); + /* + * Have found a dirty line. Find width + */ + for ( k= ptr+half_opl-j-1; *k == 0 ; k-- ) ; /* We know *ptr != 0, so k will stop at ptr */ + + length = k-ptr+1; + if (j <= quarter_opl) + { + if (length > quarter_opl-j) + { + add_dirty_rec((int)(2*(ptr-vcopy)/half_opl)+start_line, + j<<2, (int)(half_opl-2*j)<<1, ptr-video_copy-j,bodge); + add_dirty_rec((int)(2*(ptr-vcopy)/half_opl)+start_line+1, + 0, ((int)(j+length-quarter_opl)<<2)-2, ptr-video_copy-j+quarter_opl,2+bodge); + } + else + { + add_dirty_rec((int)(2*(ptr-vcopy)/half_opl)+start_line, + j<<2, (int)(length)<<2, ptr-video_copy-j,bodge); + } + } + else + { + add_dirty_rec((int)(2*(ptr-vcopy)/half_opl)+start_line, + (j-quarter_opl-1)<<2, (int)((length)<<2), ptr-video_copy-j+quarter_opl,2+bodge); + } + + ptr += half_opl - j; + /* + * Don't clear out the marked area in case the plane wraps + */ + } + *end_ptr = save; + return( get_dirty_rec_total() ); +} +#endif /* VGG */ + +static int search_video_copy_aligned IFN3(int, start_line, + int, end_line, int, start_offset) +{ + register unsigned int *ptr4; + register byte *ptr,*k; + register int j; + register int quarter_opl = get_offset_per_line()>>2; + byte *vcopy = &video_copy[start_offset]; + byte save,*end_ptr; + + ptr = vcopy; + end_ptr = ptr + quarter_opl*(end_line-start_line); + save = *end_ptr; + *end_ptr = 1; /* End marker */ + while(ptr < end_ptr) + { + ptr4 = (unsigned int *)(ptr-4); + do {; } while (!(*++ptr4)); + ptr = (byte *)ptr4; + if(!*ptr) + do {; } while (!(*++ptr)); + if(ptr >= end_ptr)break; + /* Work out where in line we've reached */ + j = (int)((ptr - vcopy)%quarter_opl); + /* + * Have found a dirty line. Find width + */ + for ( k= ptr+quarter_opl-j-1; *k == 0 ; k-- ) ; /* We know *ptr != 0, so k will stop at ptr */ +#ifdef VGG + add_dirty_rec((int)((ptr-vcopy)/quarter_opl)+start_line, + j<<2, (int)(k-ptr+1)<<2, ptr-video_copy-j,0); +#else + add_dirty_rec((int)((ptr-vcopy)/quarter_opl)+start_line, + j<<2, (int)(k-ptr+1)<<2, ptr-video_copy-j); +#endif /* VGG */ + ptr += quarter_opl - j; + /* + * Don't clear out the marked area in case the plane wraps + */ + } + *end_ptr = save; + return( get_dirty_rec_total() ); +} + +static void paint_records IFN2(int, start_rec, int, end_rec) +{ + register DIRTY_PARTS *i,*end_ptr; +#ifdef VGG + int dirty_frig; +#endif /* VGG */ + + i= &dirty[start_rec]; + end_ptr = &dirty[end_rec]; + while (iline_no; + last_line = first_line; + cur_start = i->start; + cur_end = i->end; + max_width = (cur_end-cur_start) << 1; /* To split up diagonal lines */ + + /* + * offset in bytes into video_copy, which is quarter offset into plane at start of this rectangle + */ + + dirty_vc_offset = i->video_copy_offset; +#ifdef VGG + dirty_frig = i->v7frig; /* for the V7 modes with chars_per_line not a multiple of 4 */ +#endif /* VGG */ + i++; + while (i < end_ptr) { + if ( i->line_no - last_line < 3 ) { + /* + * This entry can be included into the same paint + * as long as it doesn't make the rectangle too wide + */ + + if ( i->end > cur_end ){ + if(i->end - cur_start > max_width)break; + cur_end = i->end; + } + if ( i->start < cur_start ){ + if(cur_end - i->start > max_width)break; + cur_start = i->start; + } + last_line = i->line_no; + i++; + } + else + break; + } + /* + * paint the rectangle found + */ + + /* do not paint beyond the right hand side of the screen; + these checks were put in to cope with the special + case of the brain-scan display in 'EGAWOW' */ + if (cur_end > get_bytes_per_line()) + cur_end = get_bytes_per_line(); +#ifdef VGG + if (cur_end > cur_start) + (*paint_screen)((dirty_vc_offset<<2) + dirty_frig + cur_start, + cur_start<<3, first_line, cur_end-cur_start, + last_line-first_line+1); +#else + if (cur_end > cur_start) + (*paint_screen)((dirty_vc_offset<<2) + cur_start, + cur_start<<3, first_line, cur_end-cur_start, + last_line-first_line+1); +#endif /* VGG */ + } + /* Clear out video copy */ + for(i = &dirty[start_rec];ivideo_copy_offset+(i->end>>2)]; +#ifdef VGG + j = &video_copy[ i->video_copy_offset+(i->start>>2)+i->v7frig]; +#else + j = &video_copy[ i->video_copy_offset+(i->start>>2)]; +#endif /* VGG */ + do *j++ = 0; while(j> 16) +#else +#define get_char_attr(unsigned_long_ptr) (((*(unsigned_long_ptr)) & 0xffff)) +#endif + +#ifdef EGG + +#ifdef SEGMENTATION /* See note with first use of this flag */ +#include "SOFTPC_EGA.seg" +#endif + +static int ega_text_find_dirty_lines IFN5(byte *, vcopy, byte *, planes, + int, start_line, int, end_line, int, screen_start) +{ + register int i,j,k; + register unsigned short shorts_per_line=get_chars_per_line(); + register int offset,cur_y; + register int char_height=get_host_char_height(); + register int opl=get_offset_per_line(); + register IU32 *from; + register USHORT *to; + + for(i=start_line,offset=0,cur_y=start_line*char_height; i>1; + register int i; + register int length; + register USHORT *to,*from; + + for (i=start_rec;i>1)*char_wid,get_dirty_line(i), length, 1); + + length >>= 1; + to = (USHORT *) &video_copy[(get_dirty_offset(i)+ + get_dirty_start (i))>>1]; + + from = (USHORT *)get_screen_ptr(get_dirty_offset(i)+get_dirty_start(i)); + + while ( length-- > 0 ) + { + *to++ = *from; /* char and attribute bytes */ + from += 2; /* skip over the planes 2,3 */ + } + } +} + +#endif /* EGG */ + +#ifdef SEGMENTATION /* See note with first use of this flag */ +#include "SOFTPC_GRAPHICS.seg" +#endif + +#endif /* REAL_VGA */ + +VOID remove_old_cursor IFN0() +{ + if( dirty_curs_offs >= 0 ) + { + sub_note_trace2( ALL_ADAPT_VERBOSE, + "remove_old_cursor x=%d, y=%d", dirty_curs_x, dirty_curs_y ); + + (*paint_screen)( dirty_curs_offs, dirty_curs_x * get_pix_char_width(), + dirty_curs_y * get_host_char_height(), 2 ); + + dirty_curs_offs = -1; + } +} + + +GLOBAL VOID +simple_handler IFN0() +{ + setVideodirty_total(getVideodirty_total() + 1); +} + +LOCAL boolean simple_update IFN0() +{ + setVideodirty_total(getVideodirty_total() + 1); + return( FALSE ); +} + +LOCAL VOID simple_update_b_move IFN4(UTINY *, laddr, UTINY *, haddr, + UTINY *, src, UTINY, src_type) +{ + UNUSED(laddr); + UNUSED(haddr); + UNUSED(src); + UNUSED(src_type); + + setVideodirty_total(getVideodirty_total() + 1); +} + +MEM_HANDLERS vid_handlers = +{ + simple_handler, + simple_handler, + simple_handler, + simple_handler, + simple_update_b_move, + simple_handler +}; + +GLOBAL void dummy_calc IFN0() +{ +} + +/* +[7.1 INTERMODULE DATA DEFINITIONS] */ + +UPDATE_ALG update_alg = +{ + (T_mark_byte)simple_update, + (T_mark_word)simple_update, + (T_mark_fill)simple_update, + (T_mark_wfill)simple_update, + (T_mark_string)simple_update, + dummy_calc, + dummy_scroll, + dummy_scroll, +}; + +#ifndef REAL_VGA + +/* +[7.2 INTERMODULE PROCEDURE DEFINITIONS] */ + + +/* +========================================================================== +FUNCTION : flag_mode_change_required() +PURPOSE : Flag that a mode change is imminent and set the + scrolling routines to dummies to avoid scrolling + using routines for the wrong mode. +EXTERNAL OBJECTS: +RETURN VALUE : None +INPUT PARAMS : None +RETURN PARAMS : None +========================================================================== +*/ + +void flag_mode_change_required IFN0() +{ + set_mode_change_required(YES); + + update_alg.mark_byte = (T_mark_byte)simple_update; + update_alg.mark_word = (T_mark_word)simple_update; + update_alg.mark_fill = (T_mark_fill)simple_update; + update_alg.mark_wfill = (T_mark_wfill)simple_update; + update_alg.mark_string = (T_mark_string)simple_update; + + update_alg.scroll_up = dummy_scroll; + update_alg.scroll_down = dummy_scroll; +} + + +/* +========================================================================== +FUNCTION : reset_paint_routines() +PURPOSE : Reset paint routines to dummies to ensure + there are no problems painting the screen + using incorrect routines during reboot. +EXTERNAL OBJECTS: +RETURN VALUE : None +INPUT PARAMS : None +RETURN PARAMS : None +========================================================================== +*/ + +void reset_paint_routines IFN0() +{ + set_mode_change_required(YES); + + update_alg.calc_update = dummy_calc; + update_alg.scroll_up = dummy_scroll; + update_alg.scroll_down = dummy_scroll; +} + +/* + * Update the window to look like the regen buffer says it should + */ +#ifdef EGG + +#ifdef SEGMENTATION /* See note with first use of this flag */ +#include "SOFTPC_EGA.seg" +#endif + +void ega_wrap_split_text_update IFN0() +{ + register int i; /* Loop counter */ + register USHORT *from,*to; + register int cur_ypos; + int lines_per_screen; + int offset; + int screen_start; + int split_line; + + if (getVideodirty_total() == 0 || get_display_disabled() ) + return; + + host_start_update(); + + screen_start=get_screen_start() << 2; + + ALIGN_SCREEN_START(screen_start); + + lines_per_screen = get_screen_length()/get_offset_per_line(); + split_line = (get_screen_split()+(get_char_height()>>1))/get_char_height(); + + if (split_line>lines_per_screen) + split_line=lines_per_screen; + + to = (USHORT *) &video_copy[screen_start >> 1]; + from = (USHORT *) get_screen_ptr(screen_start); + + if( getVideodirty_total() > 1500 ) /* paint the whole lot */ + { + int no_of_split_lines = lines_per_screen - split_line; + int limit; + + cur_ypos = 0; + + if( screen_start + (get_screen_length() << 1) > 4 * EGA_PLANE_DISP_SIZE ) + { + note_display_state0("Split screen and wrapping !!"); + + limit = (4 * EGA_PLANE_DISP_SIZE - screen_start) >> 2; + + for( i = 0; i < limit; i++ ) + { + *to++ = *from; + from += 2; + } + + to = (USHORT *) &video_copy[0]; + from = (USHORT * ) get_screen_ptr(0); + limit = (screen_start + ((get_screen_length() - 2 * EGA_PLANE_DISP_SIZE) << 1)) >> 2; + + for( i = 0; i < limit; i++ ) + { + *to++ = *from; + from += 2; + } + limit = 4 * EGA_PLANE_DISP_SIZE; + for( i = 0, offset = screen_start; offset < limit; + i++, offset += (get_offset_per_line() << 1 )) + { + (*paint_screen)(offset,0,cur_ypos,get_bytes_per_line(), 1); + cur_ypos += get_host_char_height(); + } + + for( i = 0, offset = 0; i < split_line; + i++, offset += (get_offset_per_line() << 1 )) + { + (*paint_screen)(offset,0,cur_ypos,get_bytes_per_line(), 1); + cur_ypos += get_host_char_height(); + } + } + else + { + to = (USHORT *) &video_copy[screen_start >> 1]; + from = (USHORT * ) get_screen_ptr(screen_start); + limit = (split_line * get_offset_per_line()) >> 1; + + for( i = 0; i < limit; i++ ) + { + *to++ = *from; + from += 2; + } + + for( i = 0, offset = screen_start; i < split_line; + i++, offset += (get_offset_per_line() << 1 )) + { + (*paint_screen)(offset,0,cur_ypos,get_bytes_per_line(), 1); + cur_ypos += get_host_char_height(); + } + } + + if( no_of_split_lines > 0 ) + { + to = (USHORT *) &video_copy[0]; + from = (USHORT * ) get_screen_ptr(0); + limit = (no_of_split_lines * get_offset_per_line()) >> 1; + + for( i = 0; i < limit; i++ ) + { + *to++ = *from; + from += 2; + } + + for( i = split_line, offset = 0; i < lines_per_screen; + i++, offset += (get_offset_per_line() << 1 )) + { + (*paint_screen)(offset,0,cur_ypos,get_bytes_per_line(), 1); + cur_ypos += get_host_char_height(); + } + } + } + else + { + if( screen_start + (get_screen_length() << 1) > 4 * EGA_PLANE_DISP_SIZE ) + { + register int wrap_line = + (4 * EGA_PLANE_DISP_SIZE - screen_start) / (get_offset_per_line() << 1); + int next,next1,next2; + + note_display_state0("Its a text wrap!"); + + init_dirty_recs(); + + next = ega_text_find_dirty_lines(&video_copy[screen_start >> 1], + get_screen_ptr(screen_start), 0, + wrap_line, screen_start ); + + next1 = ega_text_find_dirty_lines(&video_copy[0], + get_screen_ptr(0), wrap_line, split_line, 0 ); + + next2 = ega_text_find_dirty_lines(&video_copy[0], + get_screen_ptr(0), split_line, lines_per_screen, 0 ); + + ega_text_paint_dirty_recs(0,next); + ega_text_paint_dirty_recs(next,next1); + ega_text_paint_dirty_recs(next1,next2); + } + else + { + int next,next1; + + init_dirty_recs(); + next = ega_text_find_dirty_lines( &video_copy[screen_start >> 1], + get_screen_ptr(screen_start), 0, split_line, screen_start ); + + next1 = ega_text_find_dirty_lines( &video_copy[0], get_screen_ptr(0), + split_line, lines_per_screen, 0 ); + + ega_text_paint_dirty_recs(0,next); + ega_text_paint_dirty_recs(next,next1); + } + } + + host_end_update(); + + setVideodirty_total(0); +} + +void ega_split_text_update IFN0() +{ + register int i; /* Loop counter */ + register USHORT *from,*to; + register int cur_ypos; + int lines_per_screen; + int offset; + int screen_start; + int split_line; + + if (getVideodirty_total() == 0 || get_display_disabled() ) + return; + + host_start_update(); + + screen_start = get_screen_start() << 2; + + ALIGN_SCREEN_START(screen_start); + + lines_per_screen = get_screen_length()/get_offset_per_line(); + + split_line = (get_screen_split()+(get_char_height()>>1))/get_char_height(); + + if( split_line > lines_per_screen ) + split_line = lines_per_screen; + + to = (USHORT *) &video_copy[screen_start >> 1]; + from = (USHORT *) get_screen_ptr(screen_start); + + if( getVideodirty_total() > 1500 ) /* paint the whole lot */ + { + int no_of_split_lines = lines_per_screen - split_line; + + sub_note_trace2( EGA_DISPLAY_VERBOSE, + "split line %d (lines_per_screen %d)", split_line, lines_per_screen); + sub_note_trace1( EGA_DISPLAY_VERBOSE, "screen split %d", get_screen_split() ); + + cur_ypos = 0; + + for( i = 0; i < (split_line * get_offset_per_line()) >> 1; i++ ) + { + *to++ = *from; + from += 2; + } + + for( i = 0, offset = screen_start; i < split_line; + i++, offset += ( get_offset_per_line() << 1 )) + { + (*paint_screen)( offset, 0, cur_ypos, get_bytes_per_line(), 1 ); + cur_ypos += get_host_char_height(); + } + + if( no_of_split_lines > 0 ) + { + to = (USHORT *) &video_copy[0]; + from = (USHORT *) get_screen_ptr(0); + + for( i = 0; i < (no_of_split_lines * get_offset_per_line()) >> 1; i++ ) + { + *to++ = *from; + from += 2; + } + + for( i = split_line, offset = 0; i < lines_per_screen; + i++, offset += ( get_offset_per_line() << 1 )) + { + (*paint_screen)( offset, 0, cur_ypos, get_bytes_per_line(), 1); + cur_ypos += get_host_char_height(); + } + } + } + else + { + int next,next1; + + assert0( FALSE, "ega_split_text - partial update" ); + + init_dirty_recs(); + + next = ega_text_find_dirty_lines( &video_copy[screen_start >> 1], + get_screen_ptr(screen_start) , 0, split_line, screen_start ); + + next1 = ega_text_find_dirty_lines( &video_copy[0], get_screen_ptr(0), + split_line, lines_per_screen, 0 ); + + ega_text_paint_dirty_recs(0,next); + ega_text_paint_dirty_recs(next,next1); + } + + host_end_update(); + + setVideodirty_total(0); +} + +void ega_wrap_text_update IFN0() +{ + register int i; /* Loop counter */ + register USHORT *from,*to; + register int cur_ypos; + int lines_per_screen; + int offset; + int screen_start; + + if (getVideodirty_total() == 0 || get_display_disabled() ) + return; + + host_start_update(); + + screen_start=get_screen_start() << 2; + + ALIGN_SCREEN_START(screen_start); + + lines_per_screen = get_screen_length()/get_offset_per_line(); + + if( getVideodirty_total() > 1500 ) /* paint the whole lot */ + { + to = (USHORT *) &video_copy[screen_start >> 1]; + from = (USHORT *) get_screen_ptr(screen_start); + + for( i = get_screen_length() >> 1; i > 0; i-- ) + { + *to++ = *from; + from += 2; + } + + cur_ypos = 0; + + if( screen_start + (get_screen_length() << 1) > 4 * EGA_PLANE_DISP_SIZE ) + { + register int leftover; + int limit; + + note_display_state0("Wrapping text"); + + limit = 4 * EGA_PLANE_DISP_SIZE; + for( offset = screen_start; offset < limit; + offset+=(get_offset_per_line() << 1) ) + { + (*paint_screen)(offset,0,cur_ypos,get_bytes_per_line(), 1); + cur_ypos += get_host_char_height(); + } + + leftover = screen_start + + ((get_screen_length() - 2 * EGA_PLANE_DISP_SIZE) << 1); + + for( offset = 0; offset < leftover; + offset += ( get_offset_per_line() << 1 )) + { + (*paint_screen)(offset,0,cur_ypos,get_bytes_per_line(), 1); + cur_ypos += get_host_char_height(); + } + } + else + { + for( offset = screen_start; + offset < screen_start + (get_screen_length() << 1); + offset += ( get_offset_per_line() << 1 )) + { + (*paint_screen)( offset, 0, cur_ypos, get_bytes_per_line(), 1 ); + cur_ypos += get_host_char_height(); + } + } + } + else + { + if( screen_start + (get_screen_length() << 1) > 4 * EGA_PLANE_DISP_SIZE ) + { + int next,next1; + int lines_left = (screen_start + + ((get_screen_length() - 2 * EGA_PLANE_DISP_SIZE) << 1)) / + (get_offset_per_line() << 1); + + note_display_state0("Wrapping text"); + + init_dirty_recs(); + next = ega_text_find_dirty_lines( &video_copy[screen_start >> 1], + get_screen_ptr(screen_start), 0, + lines_per_screen - lines_left, screen_start); + + next1 = ega_text_find_dirty_lines( video_copy, get_screen_ptr(0), + lines_per_screen - lines_left, lines_per_screen, 0 ); + + ega_text_paint_dirty_recs(0,next); + ega_text_paint_dirty_recs(next,next1); + } + else + { + register int next; + + init_dirty_recs(); + next = ega_text_find_dirty_lines( &video_copy[screen_start >> 1], + get_screen_ptr(screen_start), 0, + lines_per_screen, screen_start); + + ega_text_paint_dirty_recs(0,next); + } + } + + host_end_update(); + + setVideodirty_total(0); +} + +void ega_text_update IFN0() +{ + register int i; /* Loop counter */ + register USHORT *from,*to; + register int cur_ypos; + int lines_per_screen; + int offset; + int screen_start; + + if (getVideodirty_total() == 0 || get_display_disabled() ) + return; + + host_start_update(); + + screen_start=get_screen_start()<<2; + + ALIGN_SCREEN_START(screen_start); + + lines_per_screen = get_screen_length()/get_offset_per_line(); + + if(getVideodirty_total()>1500) /* paint the whole lot */ + { + to = (USHORT *)&video_copy[screen_start>>1]; + from = (USHORT *) get_screen_ptr(screen_start); + + for(i=get_screen_length()>>1;i>0;i--) + { + *to++ = *from; /* char and attribute bytes */ + from += 2; /* planes 2,3 interleaved */ + } + + cur_ypos = 0; + for(offset=screen_start;offset>1], + get_screen_ptr(screen_start), 0, lines_per_screen, screen_start); + + ega_text_paint_dirty_recs(0,next); + + remove_old_cursor(); + } + + setVideodirty_total(0); + + if (is_cursor_visible()) + { + half_word attr; + + dirty_curs_x = get_cur_x(); + dirty_curs_y = get_cur_y(); + + dirty_curs_offs = screen_start+dirty_curs_y * (get_offset_per_line()<<1) + (dirty_curs_x<<2); + attr = *(get_screen_ptr(dirty_curs_offs + 1)); + + host_paint_cursor( dirty_curs_x, dirty_curs_y, attr ); + } + + host_end_update(); +} +#endif /* EGG */ + +#ifdef SEGMENTATION /* See note with first use of this flag */ +#include "SOFTPC_GRAPHICS.seg" +#endif + +/* + * Update the window to look like the regen buffer says it should + */ + +void text_update IFN0() +{ + + register int i; /* Loop counters */ + register int j,k; + register IU32 *from,*to; + register int ints_per_line = get_bytes_per_line()>>2; + register int cur_ypos; + int lines_per_screen; + int offset,len,x,screen_start; + USHORT *wfrom; + USHORT *wto; + + if (getVideodirty_total() == 0 || get_display_disabled() ) + return; + + lines_per_screen = get_screen_length()/get_bytes_per_line(); + + host_start_update(); + screen_start=get_screen_start()<<1; + ALIGN_SCREEN_START(screen_start); + to = (IU32 *)&video_copy[screen_start]; + from = (IU32 *) get_screen_ptr(screen_start); + + if(getVideodirty_total()>1500) /* paint the whole lot */ + { + for(i=get_screen_length()>>2;i>0;i--)*to++ = *from++; + cur_ypos = 0; + for(offset=0;offset1500) */ + + setVideodirty_total(0); + + if (is_cursor_visible()) + { + half_word attr; + + dirty_curs_x = get_cur_x(); + dirty_curs_y = get_cur_y(); + + dirty_curs_offs = screen_start+dirty_curs_y * get_offset_per_line() + (dirty_curs_x<<1); + attr = *(get_screen_ptr(dirty_curs_offs + 1)); + + host_paint_cursor( dirty_curs_x, dirty_curs_y, attr ); + } + + host_end_update(); +} + +/* + * Update the physical screen to reflect the CGA regen buffer + */ + +LOCAL VOID +cga_graph_update_unchained IFN0() +{ + LONG i, j, k, l; /* Loop counters */ + IU32 *from,*to; + LONG cur_ypos; + LONG offs; + + if (getVideodirty_total() == 0 || get_display_disabled() ) return; + + host_start_update(); + + /* + * Graphics mode + */ + + to = (IU32 *)&video_copy[0]; + from = (IU32 *) get_screen_ptr(0); + + if (getVideodirty_total() > 5000) + { + /* + * Refresh the whole screen from the regen buffer + */ + + for(i=4096;i>0;i--) + { + *to++ = *from++; + } + + for (cur_ypos = 0,offs=0; cur_ypos < 400; offs += SCAN_LINE_LENGTH, cur_ypos += 4) + { + (*paint_screen)(offs,0,cur_ypos,SCAN_LINE_LENGTH,1); + (*paint_screen)((offs+ODD_OFFSET),0,cur_ypos+2,SCAN_LINE_LENGTH,1); + } + } + else + { + /* + * Draw the dirtied blocks + */ + + /* do even lines */ + + for (i = 0; i < 100; i++ ) + { + for(j=20;j>0;j--) + { + if(*to != *from) + { + for(k=j-1;*(to+k)== *(from+k);k--) + ; + + /* + * i is pc scanline no/2, + * so offset=(i*SCAN_LINE_LENGTH + bytes_into_line)*inc_count + * host_x = bytes_into_line*8 -- 8 pixels per byte + * host_y = i*2*2 -- to convert pc scanlines to host ones + * length = k -- plus one to counteract k-- in loop + */ + + (*paint_screen) + (((i*SCAN_LINE_LENGTH+((20-j)<<2))), + (20-j)<<5,i<<2,(k<<2)+4,1); + + for(l=k+1;l>0;l--) + { + *to++ = *from++; + } + + l = j - k - 1; + to += l; + from += l; + + break; /* onto next line */ + } + + to++; + from++; + } + } + + /* do odd lines */ + + from = (IU32 *) get_screen_ptr(ODD_OFFSET); + to = (IU32 *)&video_copy[ODD_OFFSET]; + + for (i = 0; i < 100; i++ ) + { + for(j=20;j>0;j--) + { + if(*to != *from) + { + for(k=j-1;*(to+k)== *(from+k);k--) + ; + /* + * i=line_no/2 + * j=bytes_from_end => (80-j)=bytes from start of line + * k=no of bytes less 1 different => length in bytes=k+1 + * offset=(i*SCAN_LINE_LENGTH+OFFSET_TO_ODD_BANK+ + * (80-j))*inc_count + */ + + (*paint_screen)( + ((i*SCAN_LINE_LENGTH+ODD_OFFSET+((20-j)<<2))), + (20-j)<<5,(i<<2)+2,(k<<2)+4,1); + + for(l=k+1;l>0;l--) + { + *to++ = *from++; + } + + l = j - k - 1; + to += l; + from += l; + + break; /* onto next line */ + } + + to++; + from++; + } + } + } + + host_end_update(); + + setVideodirty_total(0); +} + +#ifdef EGG +LOCAL VOID +cga_graph_update_chain2 IFN0() +{ + LONG i, j, k, l; /* Loop counters */ + USHORT *from,*to; + LONG cur_ypos; + LONG offs; + SHORT start_line, end_line; + + if (getVideodirty_total() == 0 || get_display_disabled() ) + return; + + host_start_update(); + + /* + * Graphics mode + */ + + to = (USHORT *)&video_copy[0]; + from = (USHORT *) get_screen_ptr(0); + + if (getVideodirty_total() > 5000) + { + /* + * Refresh the whole screen from the regen buffer + */ + + for(i=4096*2;i>0;i--) + { + *to++ = *from; + from += 2; + } + + for (cur_ypos = 0,offs=0; cur_ypos < 400; + offs += SCAN_LINE_LENGTH, cur_ypos += 4) + { + (*paint_screen)(offs<<1,0,cur_ypos,SCAN_LINE_LENGTH,1); + (*paint_screen)((offs+ODD_OFFSET)<<1,0,cur_ypos+2, + SCAN_LINE_LENGTH,1); + } + } + else + { + /* + * Draw the dirtied blocks + */ + + /* + * Start and end line represent the lines within the 8 K video + * memory blocks, NOT the lines as they appear on screen. + */ + start_line = (getVideodirty_low() / SCAN_LINE_LENGTH); + end_line = (getVideodirty_high() / SCAN_LINE_LENGTH) + 1; + + /* AJO 6/1/92 + * Can get start/end lines past end of screen since video bank + * is larger than actally required for these modes; just ignore + * lines after end of screen. Not doing this check can cause + * incorrect screen update for programs that deliberately write + * into the memory between the end of that used for the screen + * display and the end of the bank (e.g. PCLABS). + */ + if (start_line <= 100) + { + if (end_line > 100) + end_line = 100; + + to = (USHORT *)&video_copy[start_line * SCAN_LINE_LENGTH]; + from = (USHORT *)get_screen_ptr((start_line * + SCAN_LINE_LENGTH) << 1); + + /* do even lines */ + + for (i = start_line; i < end_line; i++ ) + { + for(j=40;j>0;j--) + { + if(*to != *from) + { + for(k=j-1;*(to+k)== *(from+(k<<1));k--) + ; + + +/* + * i is pc scanline no/2, + * so offset=(i*SCAN_LINE_LENGTH + bytes_into_line)*inc_count + * host_x = bytes_into_line*8 -- 8 pixels per byte + * host_y = i*2*2 -- to convert pc scanlines to host ones + * length = k -- plus one to counteract k-- in loop + */ + + (*paint_screen)( + ((i*SCAN_LINE_LENGTH+((40-j)<<1))<<1), + (40-j)<<4,i<<2,(k<<1)+2,1); + + for(l=k+1;l>0;l--) + { + *to++ = *from; + from += 2; + } + + l = j - k - 1; + to += l; + from += l << 1; + + break; /* onto next line */ + } + + to++; + from += 2; + } + } + + /* do odd lines */ + + from = (USHORT *) get_screen_ptr((start_line * SCAN_LINE_LENGTH + ODD_OFFSET) << 1); + to = (USHORT *)&video_copy[start_line * SCAN_LINE_LENGTH + ODD_OFFSET]; + + for (i = start_line; i < end_line; i++ ) + { + for(j=40;j>0;j--) + { + if(*to != *from) + { + for(k=j-1;*(to+k)== *(from+(k<<1));k--) + ; + +/* + * i=line_no/2 + * j=bytes_from_end => (80-j)=bytes from start of line + * k=no of bytes less 1 different => length in bytes=k+1 + * offset=(i*SCAN_LINE_LENGTH+OFFSET_TO_ODD_BANK+(80-j))*inc_count + */ + + (*paint_screen)( + ((i*SCAN_LINE_LENGTH+ODD_OFFSET+((40-j)<<1))<<1), + (40-j)<<4,(i<<2)+2,(k<<1)+2,1); + + for(l=k+1;l>0;l--) + { + *to++ = *from; + from += 2; + } + + l = j - k - 1; + to += l; + from += l << 1; + + break; /* onto next line */ + } + + to++; + from += 2; + } + } + } + } + + clear_dirty(); + + host_end_update(); +} + +LOCAL VOID +cga_graph_update_chain4 IFN0() +{ + LONG i, j, k, l; /* Loop counters */ + UTINY *from,*to; + LONG cur_ypos; + LONG offs; + SHORT start_line, end_line; + + if (getVideodirty_total() == 0 || get_display_disabled() ) + return; + + host_start_update(); + + /* + * Graphics mode + */ + + to = (UTINY *)&video_copy[0]; + from = (UTINY *) get_screen_ptr(0); + + if (getVideodirty_total() > 5000) + { + /* + * Refresh the whole screen from the regen buffer + */ + + for(i=4096*4;i>0;i--) + { + *to++ = *from; + from += 4; + } + + for (cur_ypos = 0,offs=0; cur_ypos < 400; + offs += SCAN_LINE_LENGTH, cur_ypos += 4) + { + (*paint_screen)(offs<<2,0,cur_ypos,SCAN_LINE_LENGTH,1); + (*paint_screen)((offs+ODD_OFFSET)<<2,0,cur_ypos+2, + SCAN_LINE_LENGTH,1); + } + } + else + { + /* + * Draw the dirtied blocks + */ + + /* + * start and end line represent the lines within the 8 K video + * memory blocks, NOT the lines as they appear on screen. + */ + start_line = (getVideodirty_low() / SCAN_LINE_LENGTH); + end_line = (getVideodirty_high() / SCAN_LINE_LENGTH) + 1; + + /* AJO 6/1/92 + * Can get start/end lines past end of screen since video bank + * is larger than actally required for these modes; just ignore + * lines after end of screen. Not doing this check can cause + * incorrect screen update for programs that deliberately write + * into the memory between the end of that used for the screen + * display and the end of the bank (e.g. PCLABS). + */ + if (start_line <= 100) + { + if (end_line > 100) + end_line = 100; + + to = (UTINY *)&video_copy[start_line * SCAN_LINE_LENGTH]; + from = (UTINY *) get_screen_ptr((start_line * + SCAN_LINE_LENGTH) << 2); + + /* do even lines */ + + for (i = start_line; i < end_line; i++ ) + { + for(j=80;j>0;j--) + { + if(*to != *from) + { + for(k=j-1;*(to+k)== *(from+(k<<2));k--) + ; + +/* + * i is pc scanline no/2, so offset=(i*SCAN_LINE_LENGTH + + * bytes_into_line)*inc_count + * host_x = bytes_into_line*8 -- 8 pixels per byte + * host_y = i*2*2 -- to convert pc scanlines to host ones + * length = k -- plus one to counteract k-- in loop + */ + + (*paint_screen)( + (i*SCAN_LINE_LENGTH+(80-j))<<2, + (80-j)<<3,i<<2,k+1,1); + + for(l=k+1;l>0;l--) + { + *to++ = *from; + from += 4; + } + + l = j - k - 1; + to += l; + from += l << 2; + + break; /* onto next line */ + } + + to++; + from += 4; + } + } + /* do odd lines */ + + from = (UTINY *) get_screen_ptr(((start_line * SCAN_LINE_LENGTH) + ODD_OFFSET)<<2); + to = (UTINY *)&video_copy[(start_line * SCAN_LINE_LENGTH) + ODD_OFFSET]; + + for (i = start_line; i < end_line; i++ ) + { + for(j=80;j>0;j--) + { + if(*to != *from) + { + for(k=j-1;*(to+k)== *(from+(k<<2));k--) + ; +/* + * i=line_no/2 + * j=bytes_from_end => (80-j)=bytes from start of line + * k=no of bytes less 1 different => length in bytes=k+1 + * offset=(i*SCAN_LINE_LENGTH+OFFSET_TO_ODD_BANK+(80-j))*inc_count + */ + + (*paint_screen)( + (i*SCAN_LINE_LENGTH+(80-j)+ODD_OFFSET)<<2, + (80-j)<<3,(i<<2)+2,k+1,1); + + for(l=k+1;l>0;l--) + { + *to++ = *from; + from += 4; + } + + l = j - k - 1; + to += l; + from += l << 2; + + break; /* onto next line */ + } + + to++; + from += 4; + } + } + } + } + + clear_dirty(); + + host_end_update(); +} +#endif /* EGG */ + +GLOBAL VOID +cga_med_graph_update IFN0() + +{ + + /* + * The med res CGA graphics mode ( mode 4 ) is an EGA CHAIN2 mode !! + * It uses the simple ega copy routines that use an interleaved format + * for the data. + */ + +#ifdef EGG + if( video_adapter != CGA ) + cga_graph_update_chain2( ); + else +#endif + cga_graph_update_unchained( ); +} + +GLOBAL VOID +cga_hi_graph_update IFN0() + +{ + + /* + * The hi res CGA graphics mode ( mode 6 ) is an EGA CHAIN4 mode !! + * It uses the simple ega copy routines that use an interleaved format + * for the data. + */ + +#ifdef EGG + if( video_adapter != CGA ) + cga_graph_update_chain4( ); + else +#endif + cga_graph_update_unchained( ); +} + +#ifdef EGG + +#ifdef SEGMENTATION /* See note with first use of this flag */ +#include "SOFTPC_EGA.seg" +#endif + +void ega_wrap_split_graph_update IFN0() +{ + register int bpl; + register int quarter_opl; + register int screen_split; + + if ( getVideodirty_total() == 0 || get_display_disabled() ) + return; + + screen_split=get_screen_split(); + + /* + * make sure don't fall off end of screen + */ + + if (screen_split>get_screen_height()) + screen_split = get_screen_height(); + + bpl = get_bytes_per_line(); + quarter_opl = get_offset_per_line()>>2; + + host_start_update(); + + if (getVideodirty_total() > 20000 ) { + int split_scanlines = get_screen_height() - screen_split; + + if ( get_screen_start() + screen_split*get_offset_per_line() > EGA_PLANE_DISP_SIZE ) { + assert0(NO,"Panic he wants to do split screens and wrappig!!"); + + /* + * Ignore wrapping for now + */ + + memset(&video_copy[get_screen_start()>>2],0,screen_split*quarter_opl); + (*paint_screen)( get_screen_start(), 0, 0, bpl, screen_split ); + } + else { + memset(&video_copy[get_screen_start()>>2],0,screen_split*quarter_opl); + (*paint_screen)( get_screen_start(), 0, 0, bpl, screen_split ); + } + if (split_scanlines>0) { + memset(&video_copy[0],0,split_scanlines*quarter_opl); + (*paint_screen)( 0, 0, screen_split, bpl, split_scanlines); + } + } + else { + int next,next1; + + init_dirty_recs(); + + if ( get_screen_start() + screen_split*get_offset_per_line() > EGA_PLANE_DISP_SIZE ) { + assert0(NO, "Wrapping and spliting, its too much for my head"); + next = search_video_copy(0,screen_split,get_screen_start()>>2); + } + else { + next = search_video_copy(0,screen_split,get_screen_start()>>2); + } + next1 = search_video_copy(screen_split,get_screen_height(),0); + + paint_records(0,next); + paint_records(next,next1); + } + + clear_dirty(); + + host_end_update(); +} + +void ega_split_graph_update IFN0() +{ + register int bpl; + register int quarter_opl; + register int screen_split; + register int screen_height; + + if ( getVideodirty_total() == 0 || get_display_disabled() ) + return; + + screen_split = get_screen_split()/get_pc_pix_height(); + screen_height = get_screen_height()/get_pc_pix_height(); + + /* + * make sure don't fall off end of screen + */ + + if (screen_split > screen_height) + screen_split = screen_height; + + bpl = get_bytes_per_line(); + quarter_opl = get_offset_per_line()>>2; + + host_start_update(); + + if (getVideodirty_total() > 20000 ) { + int split_scanlines = screen_height - screen_split; + + memset(&video_copy[get_screen_start()>>2],0,screen_split*quarter_opl); + (*paint_screen)( get_screen_start(), 0, 0, bpl, screen_split ); + if (split_scanlines>0) { + memset(&video_copy[0],0,split_scanlines*quarter_opl); + (*paint_screen)( 0, 0, screen_split, bpl, split_scanlines); + } + } + else { + int next,next1; + + init_dirty_recs(); + + next = search_video_copy(0,screen_split,get_screen_start()>>2); + next1 = search_video_copy(screen_split,screen_height,0); + + paint_records(0,next); + paint_records(next,next1); + } + + clear_dirty(); + + host_end_update(); +} + +#ifdef VGG +/* again v similar to ega version but works on 1 large plane instead of 4 */ +static void vga_paint_records IFN2(int, start_rec, int, end_rec) +{ + register DIRTY_PARTS *i,*end_ptr; + int dirty_frig; + + i= &dirty[start_rec]; + end_ptr = &dirty[end_rec]; + while (iline_no; + last_line = first_line; + cur_start = i->start; + cur_end = i->end; + max_width = (cur_end-cur_start) << 1; /* To split up diagonal lines */ + + /* + * offset in bytes into video_copy, which is equivalent to off + * into 'large' vga plane + */ + + dirty_vc_offset = i->video_copy_offset; + dirty_frig = i->v7frig; + i++; + while (i < end_ptr) { + if ( i->line_no - last_line < 3 ) { + /* + * This entry can be included into the same paint + * as long as it doesn't make the rectangle too wide + */ + if ( i->end > cur_end ){ + if(i->end - cur_start > max_width)break; + cur_end = i->end; + } + if ( i->start < cur_start ){ + if(cur_end - i->start > max_width)break; + cur_start = i->start; + } + last_line = i->line_no; + i++; + } + else + break; + } + /* + * paint the rectangle found + */ + + /* do not paint beyond the right hand side of the screen; + these checks were put in to cope with the special + case of the brain-scan display in 'EGAWOW' */ + if (cur_end > get_bytes_per_line()) + cur_end = get_bytes_per_line(); + if (cur_end > cur_start) + (*paint_screen)((dirty_vc_offset<<2) + dirty_frig + cur_start, + cur_start, first_line, cur_end-cur_start, + last_line-first_line+1); + } + /* Clear out video copy */ + for(i = &dirty[start_rec];ivideo_copy_offset+(i->end>>2)]; + j = &video_copy[ i->video_copy_offset+(i->start>>2) + i->v7frig]; + do *j++ = 0; while(j 20000 ) + { + register byte *vcopy = &video_copy[get_screen_start()>>2]; + + memset(vcopy,0,get_screen_length()>>2); + (*paint_screen)( get_screen_start(), 0, 0, bpl, screen_height ); + +#ifdef V7VGA + draw_v7ptr(); +#endif /* V7VGA */ + } + else + { + register int next; + register int start_line,end_line; + + start_line = ((getVideodirty_low()<<2) - get_screen_start())/opl; + end_line = ((getVideodirty_high()<<2) - get_screen_start())/opl + 1; /* changed from +2, but I'm not happy. WJG 24/5/89 */ + + if(start_line<0)start_line = 0; + if (end_line > screen_height) + end_line = screen_height; + if(start_line < end_line) /* Sanity check - could be drawing to another page */ + { + /* + 6.4.92 MG + We remove the pointer before the update. Hits performance, but + makes the display work correctly. + */ + +#ifdef V7VGA + if (v7ptr_between_lines(start_line,end_line)) + remove_v7ptr(); +#endif /* V7VGA */ + + init_dirty_recs(); + /* see if we can search the video copy by ints instead of bytes - need opl divisible by 16 */ + if(opl & 15) +#ifdef VGG + if (opl & 3) + next = v7_search_video_copy(start_line,end_line,(get_screen_start()+start_line*opl)>>2); + else +#endif /* VGG */ + next = search_video_copy(start_line,end_line,(get_screen_start()+start_line*opl)>>2); + else + next = search_video_copy_aligned(start_line,end_line,(get_screen_start()+start_line*opl)>>2); + vga_paint_records(0,next); + +#ifdef V7VGA + /* + * We might have just blatted over the V7 h/w graphics pointer. + * Hence redraw it. A more intelligent solution would be preferable. + * + * 6/4/92 MG We now have a somewhat more intelligent solution, + * checking if the pointer is in the update region before we + * draw it. + */ + + if (v7ptr_between_lines(start_line,end_line)) + draw_v7ptr(); +#endif /* V7VGA */ + + } + } + } /* Host didn't update screen itself */ + + clear_dirty(); + + host_end_update(); +} + +void vga_split_graph_update IFN0() +{ + register int bpl; + register int quarter_opl; + register int screen_split; + register int screen_height; + + if ( getVideodirty_total() == 0 || get_display_disabled() ) + return; + + screen_split = get_screen_split() / + (get_char_height() * get_pc_pix_height()); + screen_height = get_screen_height() / + (get_char_height() * get_pc_pix_height()); + + /* + * make sure don't fall off end of screen + */ + + if (screen_split>screen_height) + screen_split = screen_height; + + bpl = get_bytes_per_line(); + quarter_opl = get_offset_per_line()>>2; + + host_start_update(); + + if (getVideodirty_total() > 20000 ) { + int split_scanlines = screen_height - screen_split; + + memset(&video_copy[get_screen_start()>>2],0,screen_split*quarter_opl); + (*paint_screen)( get_screen_start(), 0, 0, bpl, screen_split ); + if (split_scanlines>0) { + memset(&video_copy[0],0,split_scanlines*quarter_opl); + (*paint_screen)( 0, 0, screen_split, bpl, split_scanlines); + } + } + else { + int next,next1; + + init_dirty_recs(); + + next = search_video_copy(0,screen_split,get_screen_start()>>2); + next1 = search_video_copy(screen_split,screen_height,0); + + vga_paint_records(0,next); + vga_paint_records(next,next1); + } + + clear_dirty(); + + host_end_update(); +} + +#endif /* VGG */ + +void ega_graph_update IFN0() +{ + register int opl = get_offset_per_line(); + register int bpl = get_bytes_per_line(); + + if ( getVideodirty_total() == 0 || get_display_disabled() ) + return; + + host_start_update(); + + if (!HostUpdatedEGA()) { + if (getVideodirty_total() > 20000) + { + register byte *vcopy = &video_copy[get_screen_start()>>2]; + + memset(vcopy,0,get_screen_length()>>2); + (*paint_screen)( get_screen_start(), 0, 0, bpl, get_screen_height()/get_pc_pix_height()); + } + else + { + register int next; + register int start_line,end_line; + + start_line = ((getVideodirty_low()<<2) - get_screen_start())/opl; + end_line = ((getVideodirty_high()<<2) - get_screen_start())/opl + 1; /* changed from +2, but I'm not happy. WJG 24/5/89 */ + if(start_line<0)start_line = 0; + if(end_line>(get_screen_height()/get_pc_pix_height()))end_line = get_screen_height()/get_pc_pix_height(); + if(start_line < end_line) /* Sanity check - could be drawing to another page */ + { + init_dirty_recs(); + + /* + * See if we can search the video copy by ints instead of bytes + * - we need opl and the screen_start divisible by 16 + */ + + if(( opl & 15 ) || ( get_screen_start() & 15 )) +#ifdef VGG + if (opl & 3) + next = v7_search_video_copy( start_line, + end_line, (get_screen_start()+start_line*opl) >> 2 ); + else +#endif /* VGG */ + next = search_video_copy( start_line, + end_line, (get_screen_start()+start_line*opl) >> 2 ); + else + next = search_video_copy_aligned( start_line, + end_line, (get_screen_start()+start_line*opl) >> 2 ); + + paint_records(0,next); + } + } + } /* Host updated EGA screen */ + + clear_dirty(); + +#ifdef V7VGA + /* + * We might have just blatted over the V7 h/w graphics pointer. + * Hence redraw it. A more intelligent solution would be preferable. + */ + + draw_v7ptr(); +#endif /* V7VGA */ + + host_end_update(); +} + + +void ega_wrap_graph_update IFN0() +{ + register int opl = get_offset_per_line(); + register int bpl = get_bytes_per_line(); + + if ( getVideodirty_total() == 0 || get_display_disabled() ) + return; + + host_start_update(); + + if (getVideodirty_total() > 20000 ) { + register byte *vcopy = &video_copy[get_screen_start()>>2]; + + if (get_screen_start()+get_screen_length()>EGA_PLANE_DISP_SIZE) { + register int offset = (EGA_PLANE_DISP_SIZE - get_screen_start()); + register int left_over = offset % opl; + register int ht1 = offset / opl; + register int ht2 = get_screen_height() - ht1 - 1; + register int quarter_opl = opl>>2; + + memset(vcopy,0,offset>>2); + memset(&video_copy[0],0,(get_screen_length()-offset)>>2); + (*paint_screen)( get_screen_start(), 0, 0, bpl, ht1 ); + + /* + * Deal with line that is split by wrapping + */ + + if ( left_over > bpl ) { + (*paint_screen)( ht1*opl, 0, ht1, bpl, 1); + } + else { + (*paint_screen)( get_screen_start()+ht1*opl, 0, ht1, left_over, 1); + (*paint_screen)( 0, left_over<<3, ht1, bpl-left_over, 1); + } + + (*paint_screen)( opl-left_over, 0, ht1+1, bpl, ht2 ); + } + else { + memset(vcopy,0,get_screen_length()>>2); + (*paint_screen)( get_screen_start(), 0, 0, bpl, get_screen_height() ); + } + } + else { + register int next; + + init_dirty_recs(); + if (get_screen_start()+get_screen_length()>EGA_PLANE_DISP_SIZE) { + + register int offset = (EGA_PLANE_DISP_SIZE - get_screen_start()); + register int left_over = offset % opl; + register int ht1 = offset / opl; + register int next1; + register int wrapped_bytes = opl-left_over; + + + /* + * Search video copy + */ + + next = search_video_copy(0,ht1,get_screen_start()>>2); + next1 = search_video_copy(ht1,get_screen_height(),wrapped_bytes>>2); + + paint_records(0,next); + + /* + * paint middle line anyway 'cos its too hard to work out whats happened + */ + + if (left_over>2); + paint_records(0,next); + } + } + + clear_dirty(); + + host_end_update(); +} + +#endif /* EGG */ + +#ifdef SEGMENTATION /* See note with first use of this flag */ +#include "SOFTPC_GRAPHICS.seg" +#endif + +/*--------------------- Scrolling routines --------------------------*/ + +#define UP 0 +#define DOWN 1 + +LOCAL VOID +adjust_cursor IFN7(ULONG, dirn, ULONG, tlx, ULONG, tly, ULONG, width, + ULONG, height, ULONG, lines, ULONG, bpl ) +{ + + /* + * We must not adjust dirty_curs_offset here if it is -1, as this tells + * us that the cursor is not displayed. If dirty_curs_offs becomes + * positive, we fool remove_old_cursor into trying to replace the cursor + * with spurious data. JJS - 29/6/95. + */ + if (dirty_curs_offs != -1) + if(( dirty_curs_x >= tlx ) && ( dirty_curs_x < ( tlx + width ))) + if(( dirty_curs_y >= tly ) && ( dirty_curs_y < ( tly + height ))) + { + switch( dirn ) + { + case UP: + dirty_curs_y -= lines; + dirty_curs_offs -= lines * bpl * 2; + break; + + case DOWN: + dirty_curs_y += lines; + dirty_curs_offs += lines * bpl * 2; + break; + } + setVideodirty_total(getVideodirty_total() + 1); + } +} + +/*ARGSUSED5*/ +boolean text_scroll_up IFN6(int, start, int, width, int, height, + int, attr, int, lines, int, dummy_arg) +{ + short blank_word, *ptr, *top_left_ptr,*top_right_ptr, *bottom_right_ptr; + unsigned short dummy; + unsigned char *p; + int words_per_line; + int i,tlx,tly,htlx,htly,colour; + int bpl = 2*get_chars_per_line(); + long start_offset; + register half_word *src,*dest; + register word *s_ptr,*d_ptr; + register word data; + register int j; + boolean result; + + UNUSED(dummy_arg); + +#if !defined(NTVDM) || (defined(NTVDM) && !defined(MONITOR)) + if ( getVM() ) + return FALSE; /* Don't optimise in V86 Mode */ +#endif + + if (video_adapter == MDA) + { + /* + * The colour we fill with for MDA is either black or low intensity white, + * depending on whether the attribute byte specifies reverse video. + */ + colour = ((attr & 0x77) == 0x70)? 1 : 0; + } + else + { + /* + * The colour we fill with for colour text displays is controlled by + * bits 4-6 of attr, with bit 7 turning on blinking (which we don't support) + */ + colour = (attr & bg_col_mask) >> 4; + } +/* + * Reduce the width of the rectangle if any right hand area is completely + * blank. + * + * Don't reduce the size of the scrolling region for a dumb terminal. + * Dumb terminal uses line feeds to scroll up, but only if the whole + * screen is to be scrolled. Reducing the scroll region causes + * the whole region to be redrawn. + */ + +#ifdef DUMB_TERMINAL + if (terminal_type != TERMINAL_TYPE_DUMB) + { +#endif /* DUMB_TERMINAL */ + + /* originally dummy was char [2] */ + /* unfortunately doing (short) *dummy */ + /* causes a bus error on M88K */ + p = (unsigned char *) &dummy; + p [0] = ' '; + p [1] = attr; + blank_word = dummy; + + words_per_line = get_chars_per_line(); + top_left_ptr = (short *) get_screen_ptr((start - gvi_pc_low_regen)<<1); + top_right_ptr = top_left_ptr + width - 2; + bottom_right_ptr = top_right_ptr + bpl * (height - 1); + ptr = bottom_right_ptr; + if (width > 2) /* dont want to get a zero rectangle for safetys sake */ + { + while (*ptr == blank_word) + { + if (ptr == top_right_ptr) /* reached top of column? */ + { + top_right_ptr -= 2; /* yes go to bottom of next */ + bottom_right_ptr -= 2; + if (top_right_ptr == top_left_ptr) + break; + ptr = bottom_right_ptr; + } + else + ptr -= bpl; /* skipping interleaved planes */ + } + } + width = (int)(top_right_ptr - top_left_ptr + 2) << 1; +#ifdef DUMB_TERMINAL + } +#endif /* DUMB_TERMINAL */ + + /* Do the host stuff */ + + start_offset = start - sas_w_at_no_check(VID_ADDR) - gvi_pc_low_regen; + + tlx = (int)(start_offset%get_bytes_per_line()); + + htlx = tlx * get_pix_char_width()/2; + + tly = (int)(start_offset/get_bytes_per_line()); + htly = tly * get_host_char_height(); + + result = host_scroll_up(htlx,htly,htlx+width/4*get_pix_char_width()-1, + htly+height*get_host_char_height()-1, lines*get_host_char_height(),colour); + + if(!result) + return FALSE; + + adjust_cursor( UP, tlx >> 1, tly, width >> 2, height, lines, bpl ); + + /* Scroll up the video_copy */ + + dest = video_copy + start - gvi_pc_low_regen; + src = dest + lines * bpl; + + if( width == (2 * bpl)) + { + /* Can do the whole thing in one go */ + + memcpy(dest,src,(width>>1)*(height-lines)); + fwd_word_fill( (' '<<8) | attr, dest+(width>>1)*(height-lines),(width>>1)*lines/2); + } + else + { + /* Not scrolling whole width of screen, so do each line seperately */ + for(i=0;i>1); + dest += bpl; + src += bpl; + } + + /* Fill exposed area of video copy */ + + for(i=0;i>2); + dest += bpl; + } + } + + /* Update video buffer */ + + dest = get_screen_ptr((start - gvi_pc_low_regen)<<1); + src = dest + lines * bpl * 2; + + for(i=0;i> 2; + d_ptr = (word *)dest; + s_ptr = (word *)src; + + while( j-- > 0 ) + { + *d_ptr = *s_ptr; /* CHAR and ATTRIB */ + d_ptr += 2; /* skip FONT and plane 3 */ + s_ptr += 2; + } + + dest += bpl * 2; + src += bpl * 2; + } + + /* Fill exposed area of buffer */ + +#ifdef BIGEND + data = (' ' << 8) | attr; +#else + data = (attr << 8) | ' '; +#endif + + for(i=0;i> 2; + d_ptr = (word *) dest; + + while( j-- > 0 ) + { + *d_ptr = data; + d_ptr += 2; + } + + dest += bpl * 2; + } + + host_scroll_complete(); + + return TRUE; +} + +/*ARGSUSED5*/ +boolean text_scroll_down IFN6(int, start, int, width, int, height, + int, attr, int, lines,int,dummy_arg) +{ + int i,tlx,tly,htlx,htly,colour; + int bpl = 2*get_chars_per_line(); + long start_offset; + register half_word *src,*dest; + register word *d_ptr,*s_ptr; + register word data; + register int j; + boolean result; + + UNUSED(dummy_arg); + +#if !defined(NTVDM) || (defined(NTVDM) && !defined(MONITOR)) + if ( getVM() ) + return FALSE; /* Don't optimise in V86 Mode */ +#endif + + if(video_adapter == MDA) + { + /* + * The colour we fill with for MDA is either black or low intensity white, + * depending on whether the attribute byte specifies reverse video. + */ + colour = ((attr & 0x77) == 0x70)? 1 : 0; + } + else + { + /* + * The colour we fill with for colour text displays is controlled by + * bits 4-6 of attr, with bit 7 turning on blinking (which we don't support) + */ + colour = (attr & bg_col_mask) >>4; + } + + width <<= 1; + + /* Do the host stuff */ + + start_offset = start - get_screen_start() * 2 - gvi_pc_low_regen; + + tlx = (int)(start_offset%get_bytes_per_line()); + htlx = tlx * get_pix_char_width()/2; + + tly = (int)(start_offset/get_bytes_per_line()); + htly = tly * get_host_char_height(); + + result = host_scroll_down(htlx,htly,htlx+width/4*get_pix_char_width()-1, + htly+height*get_host_char_height()-1, lines*get_host_char_height(),colour); + + if(!result) + return FALSE; + + adjust_cursor( DOWN, tlx >> 1, tly, width >> 2, height, lines, bpl ); + + /* Scroll down the video_copy */ + + if( width == (2 * bpl)) + { + /* Can do the whole thing in one go */ + src = video_copy + start - gvi_pc_low_regen; + dest = src + lines * bpl; + memcpy(dest,src,(width>>1)*(height-lines)); + fwd_word_fill( (' '<<8) | attr, src,(width>>1)*lines/2); + } + else + { + /* Not scrolling whole width of screen, so do each line seperatly */ + dest = video_copy + start-gvi_pc_low_regen + (height-1) * bpl; + src = dest - lines * bpl; + for(i=0;i>1); + dest -= bpl; + src -= bpl; + } + + /* Fill exposed area of video copy */ + + for(i=0;i>2); + dest -= bpl; + } + } + + /* Update video buffer */ + + dest = get_screen_ptr((start - gvi_pc_low_regen)<<1) + (height-1) * bpl * 2; + src = dest - lines * bpl * 2; + + for(i=0;i> 2; + d_ptr = (word *) dest; + s_ptr = (word *) src; + + while( j-- > 0 ) + { + *d_ptr = *s_ptr; + d_ptr += 2; + s_ptr += 2; + } + + dest -= bpl * 2; + src -= bpl * 2; + } + + /* Fill exposed area of buffer */ + +#ifdef BIGEND + data = (' ' << 8) | attr; +#else + data = (attr << 8) | ' '; +#endif + + for(i=0;i> 2; + d_ptr = (word *) dest; + + while( j-- > 0 ) + { + *d_ptr = data; + d_ptr += 2; + } + + dest -= bpl * 2; + } + + host_scroll_complete(); + + return TRUE; +} + +/*--------------------- CGA Scrolling routines --------------------------*/ + +/*ARGSUSED5*/ +boolean cga_text_scroll_up IFN6(int, start, int, width, int, height, + int, attr, int, lines,int,dummy_arg) +{ + short blank_word, *ptr, *top_left_ptr,*top_right_ptr, *bottom_right_ptr; + unsigned short dummy; + unsigned char *p; + int words_per_line; + int i,tlx,tly,colour; + int bpl = 2*get_chars_per_line(); + long start_offset; + register half_word *src,*dest; + boolean result; + +#if !defined(NTVDM) || (defined(NTVDM) && !defined(MONITOR)) + if ( getVM() ) + return FALSE; /* Don't optimise in V86 Mode */ +#endif + + UNUSED(dummy_arg); + + if (video_adapter == MDA) + { + /* + * The colour we fill with for MDA is either black or low intensity white, + * depending on whether the attribute byte specifies reverse video. + */ + colour = ((attr & 0x77) == 0x70)? 1 : 0; + } + else + { + /* + * The colour we fill with for colour text displays is controlled by + * bits 4-6 of attr, with bit 7 turning on blinking (which we don't support) + */ + colour = (attr & bg_col_mask) >>4; + } +/* + * Reduce the width of the rectangle if any right hand area is completely + * blank. + * + * Don't reduce the size of the scrolling region for a dumb terminal. + * Dumb terminal uses line feeds to scroll up, but only if the whole + * screen is to be scrolled. Reducing the scroll region causes + * the whole region to be redrawn. + */ + +#ifdef DUMB_TERMINAL + if (terminal_type != TERMINAL_TYPE_DUMB) + { +#endif /* DUMB_TERMINAL */ + + /* originally dummy was char [2] */ + /* unfortunately doing (short) *dummy */ + /* causes a bus error on M88K */ + p = (unsigned char *) &dummy; + p [0] = ' '; + p [1] = attr; + blank_word = dummy; + + words_per_line = get_chars_per_line(); + top_left_ptr = (short *) get_screen_ptr(start - gvi_pc_low_regen); + top_right_ptr = top_left_ptr + (width >> 1) - 1; + bottom_right_ptr = top_right_ptr + words_per_line * (height - 1); + ptr = bottom_right_ptr; + if (width > 2) /* dont want to get a zero rectangle for safetys sake */ + { + while (*ptr == blank_word) + { + if (ptr == top_right_ptr) /* reached top of column? */ + { + top_right_ptr--; /* yes go to bottom of next */ + bottom_right_ptr--; + if (top_right_ptr == top_left_ptr) + break; + ptr = bottom_right_ptr; + } + else + ptr -= words_per_line; + } + } + width = (int)(top_right_ptr - top_left_ptr + 1) << 1; +#ifdef DUMB_TERMINAL + } +#endif /* DUMB_TERMINAL */ + + /* do the host stuff */ + start_offset = start - get_screen_start()*2 - gvi_pc_low_regen; + tlx = (int)(start_offset%get_bytes_per_line())*get_pix_char_width()/2; + tly = (int)(start_offset/get_bytes_per_line())*get_host_char_height(); + result = host_scroll_up(tlx,tly,tlx+width/2*get_pix_char_width()-1, + tly+height*get_host_char_height()-1, lines*get_host_char_height(),colour); + + if(!result) + return FALSE; + + /* Adjust cursor */ + + if(( dirty_curs_offs != -1 ) && ( dirty_curs_x < ( width >> 1 ))) + { + dirty_curs_y -= lines; + dirty_curs_offs -= lines * bpl; + setVideodirty_total(getVideodirty_total() + 1); + } + + /* Scroll up the video_copy */ + dest = video_copy + start-gvi_pc_low_regen; + src = dest + lines * bpl; + + if(width == bpl) + { + /* Can do the whole thing in one go */ + memcpy(dest,src,width*(height-lines)); + fwd_word_fill( (' '<<8) | attr, dest+width*(height-lines),width*lines/2); + } + else + { + /* Not scrolling whole width of screen, so do each line seperatly */ + for(i=0;i>4; + } + + /* do the host stuff */ + start_offset = start - get_screen_start() * 2 - gvi_pc_low_regen; + tlx = (int)(start_offset%get_bytes_per_line())*get_pix_char_width()/2; + tly = (int)(start_offset/get_bytes_per_line())*get_host_char_height(); + result = host_scroll_down(tlx,tly,tlx+width/2*get_pix_char_width()-1, + tly+height*get_host_char_height()-1, lines*get_host_char_height(),colour); + + if(!result) + return FALSE; + + /* Adjust cursor */ + + if(( dirty_curs_offs != -1 ) && ( dirty_curs_x < ( width >> 1 ))) + { + dirty_curs_y += lines; + dirty_curs_offs += lines * bpl; + setVideodirty_total(getVideodirty_total() + 1); + } + + /* Scroll down the video_copy */ + + if(width == bpl) + { + /* Can do the whole thing in one go */ + src = video_copy + start - gvi_pc_low_regen; + dest = src + lines * bpl; + memcpy(dest,src,width*(height-lines)); + fwd_word_fill( (' '<<8) | attr, src,width*lines/2); + } + else + { + /* Not scrolling whole width of screen, so do each line seperatly */ + dest = video_copy + start-gvi_pc_low_regen + (height-1) * bpl; + src = dest - lines * bpl; + for(i=0;i> 2) + (v7_write_bank << 16)] = gd.gd_b_wrt.mark_type; +#endif /* GORE_PIG */ + + (*gu_handler.b_wrt)(( Ead >> 2 ) + ( v7_write_bank << 16 )); +} + +LOCAL VOID +gore_mark_word_nch IFN0() +{ +#ifdef GORE_PIG + gore_copy[(Ead >> 2 ) + 1 + (v7_write_bank << 16)] = + gore_copy[(Ead >> 2) + (v7_write_bank << 16)] = gd.gd_w_wrt.mark_type; +#endif /* GORE_PIG */ + + (*gu_handler.w_wrt)(( Ead >> 2 ) + ( v7_write_bank << 16 )); +} + +LOCAL VOID +gore_mark_string_nch IFN0() +{ + ULONG temp = ( Ead >> 2 ) + ( v7_write_bank << 16 ); + +#ifdef GORE_PIG + memfill( gd.gd_b_str.mark_type, &gore_copy[temp], &gore_copy[temp+V3-1] ); +#endif /* GORE_PIG */ + + (*gu_handler.b_str)( temp, temp + V3 - 1, V3 ); +} + +LOCAL VOID +gore_mark_byte_ch4 IFN0() +{ + ULONG temp = Ead + ( v7_write_bank << 16 ); + +#ifdef GORE_PIG + if( temp < gd.dirty_low ) + gd.dirty_low = temp; + + if( temp > gd.dirty_high ) + gd.dirty_high = temp; + + gore_copy[temp] = gd.gd_b_wrt.mark_type; +#endif /* GORE_PIG */ + + (*gu_handler.b_wrt)( temp ); +} + +LOCAL VOID +gore_mark_word_ch4 IFN0() +{ + ULONG temp = Ead + ( v7_write_bank << 16 ); + +#ifdef GORE_PIG + if( temp < gd.dirty_low ) + gd.dirty_low = temp; + + if(( temp + 1 ) > gd.dirty_high ) + gd.dirty_high = temp + 1; + + gore_copy[temp + 1] = gore_copy[temp] = gd.gd_w_wrt.mark_type; +#endif /* GORE_PIG */ + + (*gu_handler.w_wrt)( Ead + ( v7_write_bank << 16 )); +} + +LOCAL VOID +gore_mark_string_ch4 IFN0() +{ + ULONG temp = Ead + ( v7_write_bank << 16 ); + ULONG temp2 = temp + V3 - 1; + +#ifdef GORE_PIG + if( temp < gd.dirty_low ) + gd.dirty_low = temp; + + if( temp2 > gd.dirty_high ) + gd.dirty_high = temp2; + + memfill( gd.gd_b_str.mark_type, &gore_copy[temp], &gore_copy[temp2] ); +#endif /* GORE_PIG */ + + (*gu_handler.b_str)( temp, temp2, V3 ); +} +#endif /* GORE */ + +#ifdef EGG +/* + * Given an offset into CGA memory return the offset + * within an 8K bank of video memory. + */ +#define BANK_OFFSET(off) (off & 0xDFFF) + +GLOBAL VOID cga_mark_byte IFN1(int, addr) +{ + register int offset = BANK_OFFSET(addr); + + if(offset < getVideodirty_low()) + setVideodirty_low(offset); + + if(offset > getVideodirty_high()) + setVideodirty_high(offset); + + setVideodirty_total(getVideodirty_total() + 1); +} + +GLOBAL VOID cga_mark_word IFN1(int, addr) +{ + register int offset1 = BANK_OFFSET(addr); + register int offset2 = offset1 + 1; + + if(offset1 < getVideodirty_low()) + setVideodirty_low(offset1); + + if(offset2 > getVideodirty_high()) + setVideodirty_high(offset2); + + setVideodirty_total(getVideodirty_total() + 2); +} + +GLOBAL VOID cga_mark_string IFN2(int, laddr, int, haddr) +{ + register int offset1 = BANK_OFFSET(laddr); + register int offset2 = BANK_OFFSET(haddr); + + if(offset1 < getVideodirty_low()) + setVideodirty_low(offset1); + + if(offset2 > getVideodirty_high()) + setVideodirty_high(offset2); + + setVideodirty_total(getVideodirty_total() + offset2-offset1+1); +} + +#ifdef SEGMENTATION /* See note with first use of this flag */ +#include "SOFTPC_EGA.seg" +#endif + +GLOBAL VOID ega_mark_byte IFN1(int, off_in) +{ +#ifdef GORE + (*gu_handler.b_wrt)( off_in ); +#else + register int offset = off_in>>2; + + video_copy[offset] = 1; + + if(offset < getVideodirty_low()) + setVideodirty_low(offset); + + if(offset > getVideodirty_high()) + setVideodirty_high(offset); + + setVideodirty_total(getVideodirty_total() + 1); +#endif /* GORE */ +} + +GLOBAL VOID ega_mark_word IFN1(int, addr) +{ +#ifdef GORE + (*gu_handler.w_wrt)( addr ); +#else + + register int offset1 = addr >> 2; + register int offset2 = (addr+1) >> 2; + + video_copy[offset1] = 1; + video_copy[offset2] = 1; + + if(offset1 < getVideodirty_low()) + setVideodirty_low(offset1); + + if(offset2 > getVideodirty_high()) + setVideodirty_high(offset2); + + setVideodirty_total(getVideodirty_total() + 2); +#endif /* GORE */ +} + +GLOBAL VOID ega_mark_wfill IFN3(int, laddr, int, haddr, int, col) +{ +#ifdef GORE + (*gu_handler.w_fill)( laddr, haddr, haddr - laddr + 1, col ); +#else + + register int offset1 = laddr >> 2; + register int offset2 = haddr >> 2; + + UNUSED(col); + + memfill(1,&video_copy[offset1],&video_copy[offset2]); + + if(offset1 < getVideodirty_low()) + setVideodirty_low(offset1); + + if(offset2 > getVideodirty_high()) + setVideodirty_high(offset2); + + setVideodirty_total(getVideodirty_total() + offset2-offset1+1); +#endif /* GORE */ +} + +GLOBAL VOID ega_mark_string IFN2(int, laddr, int, haddr) +{ +#ifdef GORE + (*gu_handler.b_str)( laddr, haddr, haddr - laddr + 1 ); +#else + register int offset1 = laddr >> 2; + register int offset2 = haddr >> 2; + + memfill(1,&video_copy[offset1],&video_copy[offset2]); + + if(offset1 < getVideodirty_low()) + setVideodirty_low(offset1); + + if(offset2 > getVideodirty_high()) + setVideodirty_high(offset2); + + setVideodirty_total(getVideodirty_total() + offset2-offset1+1); +#endif /* GORE */ +} + +#endif /* EGG */ + +#ifdef SEGMENTATION /* See note with first use of this flag */ +#include "SOFTPC_GRAPHICS.seg" +#endif + +GLOBAL VOID screen_refresh_required IFN0() +{ + +#ifdef GORE + (*gu_handler.b_str)( 0, get_screen_length(), get_screen_length() ); +#endif /* GORE */ + +#ifndef CPU_40_STYLE + /* + * This is to stop the VGA globals pointer being + * dereferenced before it is set up in main.c. + */ + + if (VGLOBS) + VGLOBS->dirty_flag = 1000000L; +#else + setVideodirty_total(1000000L); +#endif /* CPU_40_STYLE */ +} + +#ifdef EGG + +#ifdef SEGMENTATION /* See note with first use of this flag */ +#include "SOFTPC_EGA.seg" +#endif + +LOCAL MARKING_TYPE curr_mark_type; + +#if !defined(NTVDM) || (defined(NTVDM) && !defined(X86GFX) ) /* remove uneeded code */ + +GLOBAL VOID +set_mark_funcs IFN0() +{ + switch (curr_mark_type) + { + case SIMPLE_MARKING: + update_alg.mark_byte = (T_mark_byte)simple_update; + update_alg.mark_word = (T_mark_word)simple_update; + update_alg.mark_fill = (T_mark_fill)simple_update; + update_alg.mark_wfill = (T_mark_wfill)simple_update; + update_alg.mark_string = (T_mark_string)simple_update; + +#ifndef CPU_40_STYLE /* EVID */ + setVideomark_byte(FAST_FUNC_ADDR(_simple_mark_sml)); + setVideomark_word(FAST_FUNC_ADDR(_simple_mark_sml)); + + SET_VGLOBS_MARK_STRING(_simple_mark_lge); +#else /* CPU_40_STYLE - EVID */ + SetMarkPointers(0); +#endif /* CPU_40_STYLE - EVID */ + break; + + case CGA_GRAPHICS_MARKING: + update_alg.mark_byte = (boolean(*)())cga_mark_byte; + update_alg.mark_word = (boolean(*)())cga_mark_word; + update_alg.mark_fill = (boolean(*)())cga_mark_string; + update_alg.mark_wfill = (boolean(*)())cga_mark_string; + update_alg.mark_string = (boolean(*)())cga_mark_string; + +#ifndef CPU_40_STYLE /* EVID */ + setVideomark_byte(FAST_FUNC_ADDR(_cga_mark_byte)); + setVideomark_word(FAST_FUNC_ADDR(_cga_mark_word)); + + SET_VGLOBS_MARK_STRING(_cga_mark_string); +#else /* CPU_40_STYLE - EVID */ + SetMarkPointers(1); +#endif /* CPU_40_STYLE - EVID */ + + break; + + case EGA_GRAPHICS_MARKING: +#ifdef GORE + reset_gore_ptrs(); + gd.curr_line_diff = get_bytes_per_line(); + gd.max_vis_addr = get_screen_length() - 1 + ( v7_write_bank << 16 ); +#ifdef VGG + gd.shift_count = get_256_colour_mode() ? 0 : 3; +#else + gd.shift_count = 3; +#endif /* VGG */ +#endif /* GORE */ + + update_alg.mark_byte = (boolean(*)())ega_mark_byte; + update_alg.mark_word = (boolean(*)())ega_mark_word; + update_alg.mark_fill = (boolean(*)())ega_mark_string; + update_alg.mark_wfill = (boolean(*)())ega_mark_wfill; + update_alg.mark_string = (boolean(*)())ega_mark_string; + + switch( EGA_CPU.chain ) + { + case UNCHAINED: +#ifdef GORE + setVideomark_byte(gore_mark_byte_nch); + setVideomark_word(gore_mark_word_nch); + + SET_VGLOBS_MARK_STRING(gore_mark_string_nch); +#else +#ifndef CPU_40_STYLE /* EVID */ + setVideomark_byte(FAST_FUNC_ADDR(_mark_byte_nch)); + setVideomark_word(FAST_FUNC_ADDR(_mark_word_nch)); + + SET_VGLOBS_MARK_STRING(_mark_string_nch); +#else /* CPU_40_STYLE - EVID */ + SetMarkPointers(2); +#endif /* CPU_40_STYLE - EVID */ +#endif /* GORE */ + break; + + case CHAIN2: + assert0( NO, "CHAIN2 in graphics mode !!" ); + + break; + +#ifdef VGG + case CHAIN4: +#ifdef GORE + setVideomark_byte(gore_mark_byte_ch4); + setVideomark_word(gore_mark_word_ch4); + + SET_VGLOBS_MARK_STRING(gore_mark_string_ch4); +#else +#ifndef CPU_40_STYLE /* EVID */ + setVideomark_byte(FAST_FUNC_ADDR(_mark_byte_ch4)); + setVideomark_word(FAST_FUNC_ADDR(_mark_word_ch4)); + + SET_VGLOBS_MARK_STRING(_mark_string_ch4); +#else /* CPU_40_STYLE - EVID */ + SetMarkPointers(3); +#endif /* CPU_40_STYLE - EVID */ +#endif /* GORE */ + break; +#endif /* VGG */ + } + + break; + + default: + assert1(NO,"Unknown marking type %d", (int) curr_mark_type); + break; + } +} +#endif /* !NTVDM | (NTVDM & !X86GFX) */ + +#ifdef SEGMENTATION /* See note with first use of this flag */ +#include "SOFTPC_GRAPHICS.seg" +#endif + +GLOBAL void set_gfx_update_routines IFN3(T_calc_update, update_routine, + MARKING_TYPE, marking_type, SCROLL_TYPE, scroll_type) +{ + enable_gfx_update_routines(); + update_alg.calc_update = update_routine; + switch (scroll_type) { + case NO_SCROLL: + update_alg.scroll_up = dummy_scroll; + update_alg.scroll_down = dummy_scroll; + break; + case TEXT_SCROLL: +#if defined(NTVDM) && defined(MONITOR) + update_alg.scroll_up = mon_text_scroll_up; + update_alg.scroll_down = mon_text_scroll_down; +#else + update_alg.scroll_up = text_scroll_up; + update_alg.scroll_down = text_scroll_down; +#endif /* NTVDM & MONITOR */ + break; +#if !defined(NTVDM) || (defined(NTVDM) && !defined(X86GFX) ) /* remove unneeded code */ + case CGA_GRAPH_SCROLL: + update_alg.scroll_up = cga_graph_scroll_up; + update_alg.scroll_down = cga_graph_scroll_down; + break; + case EGA_GRAPH_SCROLL: + update_alg.scroll_up = ega_graph_scroll_up; + update_alg.scroll_down = ega_graph_scroll_down; + break; +#ifdef VGG + case VGA_GRAPH_SCROLL: + update_alg.scroll_up = vga_graph_scroll_up; + update_alg.scroll_down = vga_graph_scroll_down; + break; +#ifdef V7VGA + case V7VGA_GRAPH_SCROLL: + update_alg.scroll_up = v7vga_graph_scroll_up; + update_alg.scroll_down = v7vga_graph_scroll_down; + break; +#endif /* V7VGA */ +#endif /* VGG */ +#endif /* !NTVDM | (NTVDM & !X86GFX) */ + } + + curr_mark_type = marking_type; + + set_mark_funcs(); + + /* + * The newly setup update routines will not be needed yet if the + * display is disabled, but must be saved in any case so that + * redundant enables (as in dosshell) restore the correct ones. + * If the display is disabled we must also then install the dummy + * update routines as the current ones. + * + * AJO 23/4/93 + * DON'T use disable_gfx_update_routines() here cos' it's a NOP + * if the display is already disabled which causes bizarre problems + * if a mode change is performed while disabled. + */ + save_gfx_update_routines(); + if (get_display_disabled()) + inhibit_gfx_update_routines(); +} +#endif /* EGG */ + +#endif /* REAL_VGA */ + +#ifndef cursor_changed +void cursor_changed IFN2(int, x, int, y) +{ +#ifndef REAL_VGA + UNUSED(x); + UNUSED(y); + + setVideodirty_total(getVideodirty_total() + 1); +#else + IU32 offset; + + offset = (y * 2 * get_chars_per_line()) + (x << 1); + offset += get_screen_start()<<1; /* Because screen start is in WORDS */ + vga_card_place_cursor((word)offset); +#endif +} +#endif + +void host_cga_cursor_has_moved IFN2(int, x, int, y) +{ + cursor_changed(x,y); +} + +/* Called when the start & end of the cursor are changed. */ + +void base_cursor_shape_changed IFN0() +{ + cursor_changed(get_cur_x(),get_cur_y()); +} + +#ifndef REAL_VGA +#ifdef HERC + +#define DIRTY ((unsigned char)-1) + +void herc_update_screen IFN0() +{ + register int i, j, k, offs, y; + register USHORT *from, *to; + int lines_per_screen = get_screen_length() / get_bytes_per_line(); + /* lines of text on screen */ + half_word begin[349], end[348]; + + if(( getVideodirty_total() == 0 ) || get_display_disabled()) + return; + + host_start_update(); + + if (get_cga_mode() == TEXT) + { + /* + * arbitrary limit over which we just repaint the whole screen in one operation, assuming + * this is more efficient than working out large minimum rectangles. This value should be + * tuned at some future point. + */ + to = (USHORT *) &video_copy[get_screen_start()]; + from = (USHORT *) get_screen_ptr((get_screen_start() << 1)); + + if (getVideodirty_total() > 1500) + { + for (i = get_screen_length() >> 1; i > 0; i--) + *to++ = *from++; + + offs = 0; + y = 0; + + for( i = 0; i < lines_per_screen; i++ ) + { + (*paint_screen) (offs, 0, y, get_bytes_per_line() ); + offs += get_bytes_per_line(); + y += get_host_char_height(); + } + } + else + { + /* + * step through row/cols looking for a dirty bit then look for the last clear dirty bit, + * and draw the line of text + */ + register int ints_per_line = get_bytes_per_line() >> 1; + + for (i = 0, offs = 0; i < lines_per_screen; i++, offs += get_bytes_per_line()) + { + for (j = 0; j < ints_per_line; j++) + { + if (*to++ != *from++) + { + to--; + from--; + for (k = ints_per_line - 1 - j; *(to + k) == *(from + k); k--) + ; + + (*paint_screen) (offs + (j << 1), j * get_pix_char_width(), + i * get_host_char_height() , (k << 1) + 2 ); + + for (k = j; k < ints_per_line; k++) + *to++ = *from++; + break; /* onto next line */ + } + } + } + } /* end else getVideodirty_total() > 1500 */ + + remove_old_cursor(); + + if (is_cursor_visible()) + { + half_word attr; + + dirty_curs_x = get_cur_x(); + dirty_curs_y = get_cur_y(); + + dirty_curs_offs = dirty_curs_y * get_bytes_per_line() + (dirty_curs_x << 1); + attr = *(get_screen_ptr(dirty_curs_offs + 1)); + + host_paint_cursor( dirty_curs_x, dirty_curs_y, attr ); + } + } + else /* GRAPHICS MODE */ + { + + to = (USHORT *) &video_copy[0]; + from = (USHORT *) get_screen_ptr(get_screen_start()); + + /* + * arbitrary limit over which we just repaint the whole screen in one operation, assuming + * this is more efficient than working out large minimum rectangles. This value should be + * tuned at some future point. + */ + + if (getVideodirty_total() > 8000) + { + for (i = 16384; i > 0; i--) + *to++ = *from++; + (*paint_screen) (0, 0, 90, 348); + } + else + { + for (i = 0; i < 348; i += 4) /* bank 0 */ + { + begin[i] = DIRTY; + for (j = 0; j < 45; j++) + { + if (*to++ != *from++) + { + to--; + from--; + for (k = 44 - j; *(to + k) == *(from + k); k--) + ; + begin[i] = j; + end[i] = j + k; + for (k = j; k < 45; k++) + *to++ = *from++; + break; /* onto next scan line */ + } + } + } + + to += 181; + from += 181; /* skip over the gap */ + + for (i = 1; i < 349; i += 4) /* bank 1 */ + { + begin[i] = DIRTY; + for (j = 0; j < 45; j++) + { + if (*to++ != *from++) + { + to--; + from--; + for (k = 44 - j; *(to + k) == *(from + k); k--) + ; + begin[i] = j; + end[i] = j + k; + for (k = j; k < 45; k++) + *to++ = *from++; + break; /* onto next scan line */ + } + } + } + + to += 181; + from += 181; /* skip over the gap */ + + for (i = 2; i < 348; i += 4) /* bank 2 */ + { + begin[i] = DIRTY; + for (j = 0; j < 45; j++) + { + if (*to++ != *from++) + { + to--; + from--; + for (k = 44 - j; *(to + k) == *(from + k); k--) + ; + begin[i] = j; + end[i] = j + k; + for (k = j; k < 45; k++) + *to++ = *from++; + break; /* onto next scan line */ + } + } + } + + to += 181; + from += 181; /* skip over the gap */ + + for (i = 3; i < 349; i += 4) /* bank 3 */ + { + begin[i] = DIRTY; + for (j = 0; j < 45; j++) + { + if (*to++ != *from++) + { + to--; + from--; + for (k = 44 - j; *(to + k) == *(from + k); k--) + ; + begin[i] = j; + end[i] = j + k; + for (k = j; k < 45; k++) + *to++ = *from++; + break; /* onto next scan line */ + } + } + } + + begin[348] = DIRTY; /* end marker */ + for (i = 0; i < 348; i++) + { + register int beginx, endx, beginy; + if (begin[i] != DIRTY) /* a dirty scan line */ + { + beginy = i; + beginx = begin[i]; + endx = end[i]; + while (begin[++i] != DIRTY) + { + if (begin[i] < beginx) + beginx = begin[i]; + if (end[i] > endx) + endx = end[i]; + } + (*paint_screen) (beginy, 2 * beginx, 2 * (endx - beginx + 1), i - beginy); + } + } + } /* end else (getVideodirty_total() > 8000) */ + } + + setVideodirty_total(0); + + host_end_update(); +} +#endif + +#if defined(VGG) || defined(EGG) + +#ifdef SEGMENTATION /* See note with first use of this flag */ +#include "SOFTPC_EGA.seg" +#endif + +/* ============================================================================ + * The following routines enable and disable the GFX update routines + * by saving/restoring the current routines and replacing them with + * dummy routines that do nothing while update is disabled. + * + * AJO 23/4/93 + * Any sequence of enable/disable/mode change should now work as expected. + * ============================================================================ + */ + +LOCAL UPDATE_ALG save_update_alg; +LOCAL IBOOL gfx_update_routines_inhibited = FALSE; + +LOCAL VOID save_gfx_update_routines IFN0() +{ + /* + * Save all current update functions so we can restore them later + */ + save_update_alg.mark_byte = update_alg.mark_byte; + save_update_alg.mark_word = update_alg.mark_word; + save_update_alg.mark_fill = update_alg.mark_fill; + save_update_alg.mark_wfill = update_alg.mark_wfill; + save_update_alg.mark_string = update_alg.mark_string; + save_update_alg.calc_update = update_alg.calc_update; + save_update_alg.scroll_up = update_alg.scroll_up; + save_update_alg.scroll_down = update_alg.scroll_down; +} + +LOCAL VOID inhibit_gfx_update_routines IFN0() +{ + /* + * Set all current update routines to dummy ones that do nothing. + */ + gfx_update_routines_inhibited = TRUE; + + update_alg.mark_byte = (T_mark_byte)simple_update; + update_alg.mark_word = (T_mark_word)simple_update; + update_alg.mark_fill = (T_mark_fill)simple_update; + update_alg.mark_wfill = (T_mark_wfill)simple_update; + update_alg.mark_string = (T_mark_string)simple_update; + update_alg.calc_update = dummy_calc; + update_alg.scroll_up = dummy_scroll; + update_alg.scroll_down = dummy_scroll; +} + +GLOBAL void disable_gfx_update_routines IFN0() +{ + /* + * Disable GFX update routines; do nothing if update already disabled, + * otherwise save the current routines and install dummy ones in their + * place. + */ + note_entrance0("disable gfx update routines"); + + if (gfx_update_routines_inhibited) + return; + + save_gfx_update_routines(); + inhibit_gfx_update_routines(); +} + +GLOBAL void enable_gfx_update_routines IFN0() +{ + /* + * Reenable GFX update routines; copy the saved routines back to be + * the current ones. + */ + note_entrance0("enable gfx update routines"); + + gfx_update_routines_inhibited = FALSE; + + update_alg.mark_byte = save_update_alg.mark_byte; + update_alg.mark_word = save_update_alg.mark_word; + update_alg.mark_fill = save_update_alg.mark_fill; + update_alg.mark_wfill = save_update_alg.mark_wfill; + update_alg.mark_string = save_update_alg.mark_string; + update_alg.calc_update = save_update_alg.calc_update; + update_alg.scroll_up = save_update_alg.scroll_up; + update_alg.scroll_down = save_update_alg.scroll_down; +} + +#endif /* VGG */ +#ifdef SEGMENTATION /* See note with first use of this flag */ +#include "SOFTPC_GRAPHICS.seg" +#endif + +#ifdef NTVDM + +void init_text_rect(); +void add_to_rect(int screen_start,register int x, register int y, int len); +void paint_text_rect(int screen_start); + +int RectDefined; +int RectTop, RectBottom, RectLeft, RectRight; + +#ifdef MONITOR +/* + * Update the window to look like the regen buffer says it should + * and with no help from dirty_total. + */ + +static int now_cur_x = -1, now_cur_y = -1; +/* + * Reset the static cursor variables: + */ +GLOBAL void resetNowCur() +{ + now_cur_x = -1; + now_cur_y = -1; +} + +void mon_text_update() +{ + + register int i; /* Loop counters */ + register int j,k; + register unsigned long *from,*to; + register int ints_per_line = get_offset_per_line()>>2; + int lines_per_screen; + int len,x,screen_start; + unsigned short *wfrom; + unsigned short *wto; + int dwords_to_compare; + + /*::::::::::::::::::::::::::::::::::::::::::::::: Is the display disable */ + + if(get_display_disabled()) return; + + /*::::::::::::::::::::::::::::::::: get screen size and location details */ + + screen_start=get_screen_start()<<1; + ALIGN_SCREEN_START(screen_start); + + to = (unsigned long *)&video_copy[screen_start]; + from = (unsigned long *) get_screen_ptr(screen_start); + + /*::::::::::::::::::::::::::::::::::::::::::: Check for buffer overflows */ + +#ifndef PROD + if(((int)to) & 3) printf("Video copy not aligned on DWORD\n"); + if(get_screen_length() & 3) printf("Screen size incorrect\n"); +#endif + + /*::::::::::::::::::::::::::::::::::::::::::::::: Has the screen changed */ + +#ifndef CPU_40_STYLE +#if defined(NTVDM) + if( VGLOBS && VGLOBS->dirty_flag >= 1000000L ){ +#else + if( VGLOBS && VGLOBS->dirtyTotal >= 1000000L ){ +#endif + +#else + if(getVideodirty_total() >= 1000000L ){ +#endif + + /* + ** screen_refresh_required() has requested a complete screen + ** repaint by setting the dirtyTotal. + ** + ** When switching between display pages video copy and display + ** memory could be the same so our normal partial update algorithm + ** gets confused. + ** This scheme updates video copy and then forces a complete + ** repaint. + ** Another option would have been to splat video copy and then go + ** through the partial update code below, but this is quicker. + ** + ** Tim Jan 93. + */ + setVideodirty_total(0); + + /* + ** Copy the screen data to our video copy. + */ + dwords_to_compare = get_screen_length() / 4; + _asm + { + push esi //Save orginal values of registers used by the + push edi //complier + push ecx + + mov edi,to //Ptr to video copy + mov esi,from //Ptr to intel video memory + + mov ecx,dwords_to_compare + rep movsd //Move screen data to video copy. + + pop ecx + pop edi + pop esi + } + + /* + ** Re-paint the whole screen. + ** Set up rectangle dimension globals here for paint_text_rect(), + ** instead of calling add_to_rect(). + */ + if (get_offset_per_line() == 0) /* showing up in stress */ + lines_per_screen = 25; + else + lines_per_screen = get_screen_length()/get_offset_per_line(); + RectTop = 0; + RectLeft = 0; + RectBottom = lines_per_screen - 1; + RectRight = (ints_per_line<<1) - 1; + RectDefined = TRUE; + host_start_update(); + paint_text_rect(screen_start); + host_end_update(); + + }else{ + + /* + ** Normal partial screen update. + */ + + dwords_to_compare = get_screen_length() / 4; + + _asm + { + push esi //Save orginal values of registers used by the + push edi //complier + push ecx + + mov esi,to //Ptr to screen copy + mov edi,from //Ptr to intel video memory + + mov ecx,dwords_to_compare + repe cmpsd //Compare screen buffers + + mov dwords_to_compare,ecx +// mov to,esi +// mov from,edi + + pop ecx + pop edi + pop esi + } + + /*::::::::::::::::::::::: Repaint parts of the screen that have changed */ + + + if (get_offset_per_line() == 0) /* showing up in stress */ + lines_per_screen = 25; + else + lines_per_screen = get_screen_length()/get_offset_per_line(); + + if(dwords_to_compare) + { + host_start_update(); + /* Screen changed, calculate position of first variation */ + + init_text_rect(); + + for(i=0;i>4) & 7; + +/* + * Reduce the width of the rectangle if any right hand area is completely + * blank. + * + * Don't reduce the size of the scrolling region for a dumb terminal. + * Dumb terminal uses line feeds to scroll up, but only if the whole + * screen is to be scrolled. Reducing the scroll region causes + * the whole region to be redrawn. + */ + + /* originally dummy was char [2] */ + /* unfortunately doing (short) *dummy */ + /* causes a bus error on M88K */ + p = (unsigned char *) &dummy; + p [0] = ' '; + p [1] = attr; + blank_word = dummy; + + words_per_line = get_chars_per_line(); + top_left_ptr = (short *) get_screen_ptr(start - gvi_pc_low_regen); + top_right_ptr = top_left_ptr + (width >> 1) - 1; + bottom_right_ptr = top_right_ptr + words_per_line * (height - 1); + ptr = bottom_right_ptr; + if (width > 2) /* dont want to get a zero rectangle for safetys sake */ + { + while (*ptr == blank_word) + { + if (ptr == top_right_ptr) /* reached top of column? */ + { + top_right_ptr--; /* yes go to bottom of next */ + bottom_right_ptr--; + if (top_right_ptr == top_left_ptr) + break; + ptr = bottom_right_ptr; + } + else + ptr -= words_per_line; + } + } + width = (int)(top_right_ptr - top_left_ptr + 1) << 1; + + /* do the host stuff */ + start_offset = start - get_screen_start()*2 - gvi_pc_low_regen; + tlx = (int)(start_offset%get_bytes_per_line())*get_pix_char_width()/2; + tly = (int)(start_offset/get_bytes_per_line())*get_host_char_height(); + result = host_scroll_up(tlx,tly,tlx+width/2*get_pix_char_width()-1, + tly+height*get_host_char_height()-1, lines*get_host_char_height(),colour); + + if(!result) + return FALSE; + + + adjust_cursor( UP, tlx, tly, width >> 1, height, lines, bpl ); + + /* Scroll up the video_copy */ + dest = video_copy + start-gvi_pc_low_regen; + src = dest + lines * bpl; + + if(width == bpl) + { + /* Can do the whole thing in one go */ + memcpy(dest,src,width*(height-lines)); + fwd_word_fill( (' '<<8) | (half_word)attr, dest+width*(height-lines),width*lines/2); + } + else + { + /* Not scrolling whole width of screen, so do each line seperatly */ + for(i=0;i>4) & 7; + + + /* do the host stuff */ + start_offset = start - get_screen_start() * 2 - gvi_pc_low_regen; + tlx = (int)(start_offset%get_bytes_per_line())*get_pix_char_width()/2; + tly = (int)(start_offset/get_bytes_per_line())*get_host_char_height(); + result = host_scroll_down(tlx,tly,tlx+width/2*get_pix_char_width()-1, + tly+height*get_host_char_height()-1, lines*get_host_char_height(),colour); + + if(!result) + return FALSE; + + adjust_cursor( DOWN, tlx, tly, width >> 1, height, lines, bpl ); + + /* Scroll down the video_copy */ + + if(width == bpl) + { + /* Can do the whole thing in one go */ + src = video_copy + start - gvi_pc_low_regen; + dest = src + lines * bpl; + memcpy(dest,src,width*(height-lines)); + fwd_word_fill( (' '<<8) | (half_word)attr, src,width*lines/2); + } + else + { + /* Not scrolling whole width of screen, so do each line seperatly */ + dest = video_copy + start-gvi_pc_low_regen + (height-1) * bpl; + src = dest - lines * bpl; + for(i=0;i (b) ? (a) : (b)) +#define MIN(a,b) ((a) < (b) ? (a) : (b)) + +int ExpandCount; +int BaseL, BaseR; + +/* Init text rect variables */ + +void init_text_rect() +{ + RectDefined = FALSE; /* No rectangle defined yet */ + ExpandCount = 0; +} + +/* Add coordinates to rectangle */ + +void add_to_rect(int screen_start, register int x, register int y, int len) +{ + int endx = x + len - 1; + + /* printf("add rect - (%d,%d) len %d\n", x, y, len); */ + + + /* Is there an existing rectangle */ + if(RectDefined) + { + /* Validate X variation and Y coord */ + + if(abs(BaseL - x) <= MAX_LEFT_VARIATION && + abs(BaseR - endx) <= MAX_RIGHT_VARIATION && + RectBottom+1 >= y) + { + /* Expand rectangle */ + ExpandCount++; + /* printf("Expanding rect\n"); */ + + RectLeft = MIN(RectLeft,x); + RectRight = MAX(RectRight,endx); + RectBottom = y; + return; + } + else + { + paint_text_rect(screen_start); + } + } + + /* New rectangle */ + + /* printf("Defining new rect\n"); */ + + RectDefined = TRUE; /* Rectangle defined */ + + BaseL = x; /* Base Left/Right */ + BaseR = endx; + + RectTop = y; /* Define rectangle */ + RectLeft = x; + + RectBottom = y; + RectRight = endx; +} + + +/* Paint rectangle */ + +void paint_text_rect(int screen_start) +{ +#ifdef MONITOR + int offset = RectTop * get_offset_per_line() + (RectLeft<<1); +#else + int offset = (RectTop * (get_offset_per_line()<<1)) + (RectLeft<<2); +#endif + + /* Is there a rectangled defined */ + if(!RectDefined) return; + + /* Paint rectangle */ + + /* printf("Paint rect (%d,%d) (%d,%d) \t[%d]\n",RectLeft,RectTop,RectRight,RectBottom,ExpandCount); */ + + (*paint_screen)(offset + screen_start, /* Start Offset */ +#ifdef MONITOR + RectLeft, RectTop, /* Screen X,Y */ +#else + RectLeft*get_pix_char_width(),RectTop*get_host_char_height(), +#endif + (RectRight - RectLeft +1)*2, /* Len */ + RectBottom - RectTop +1); /* Height */ + + RectDefined = FALSE; /* Rectangle painted */ + ExpandCount = 0; +} + +#ifndef MONITOR +void jazz_text_update() +{ + + register int i; /* Loop counters */ + register int j,k; + register unsigned short *from,*to; + register int chars_per_line = get_offset_per_line()>>1; + int lines_per_screen; + int offset,len,x,screen_start; + unsigned short *wfrom; + unsigned short *wto; + + if (getVideodirty_total() == 0 || get_display_disabled() ) + return; + + lines_per_screen = get_screen_length()/get_offset_per_line(); + + host_start_update(); + + screen_start=get_screen_start()<<2; + ALIGN_SCREEN_START(screen_start); + + to = (unsigned short *)&video_copy[get_screen_start()<<1]; + from = (unsigned short *) get_screen_ptr(screen_start); + + if(getVideodirty_total() >1500) /* paint the whole lot */ + { + for(i=get_screen_length()>>1;i>0;i--) + { + *to++ = *from; /* char and attribute bytes */ + from += 2; /* planes 2,3 interleaved */ + } + + (*paint_screen)(screen_start, 0, 0, get_bytes_per_line(), + lines_per_screen); + } + else + { + init_text_rect(); + + for(i=0;i +#include TypesH + +/* + * SoftPC include files + */ + +#include "xt.h" +#include "bios.h" +#include "sas.h" +#include "error.h" +#include "config.h" +#include "gvi.h" +#include "gmi.h" +#include "cga.h" +#ifdef HERC +#include "herc.h" +#endif +#include "debug.h" +#include "gfx_upd.h" +#ifdef EGG +#include "egagraph.h" +#include "egacpu.h" +#endif /* EGG */ +#include "host_gfx.h" + +/* + * External variables + */ + +extern int soft_reset; /* Defined in reset.c */ + +/* + * Global variables reflecting the state of the currently selected adapter + * These should be integrated with the new EGA stuff + */ + +DISPLAY_GLOBS PCDisplay; +int text_blk_size; /* In TEXT mode the size of a dirty block */ + +/* + * Other globals + */ + +/* + * These 4 variables are used by the BIOS & host stuff to indicate where the active + * adaptor is. NB. The EGA can move!! + */ + +host_addr gvi_host_low_regen; +host_addr gvi_host_high_regen; +sys_addr gvi_pc_low_regen; +sys_addr gvi_pc_high_regen; + +half_word video_adapter = NO_ADAPTOR; /* No adaptor initially */ + + +/* + * Global routines + */ + +void recalc_screen_params IFN0() +{ +#ifdef VGG + if (get_doubleword_mode()) + set_bytes_per_line(get_chars_per_line()<<3); + else +#endif + if (get_word_addressing()) + set_bytes_per_line(get_chars_per_line()<<1); + else +#ifdef V7VGA + if (get_seq_chain4_mode()) + set_bytes_per_line(get_chars_per_line()<<3); + else +/* + * The V7VGA proprietary text modes fall through here, because the V7 card + * uses so-called byte-mode for them. This does not affect the PC's + * view of things, therefore assure that for text modes + * bytes_per_line = 2 * chars_per_line + * always holds. + */ + if ( is_it_text() ) + set_bytes_per_line(get_chars_per_line()<<1); + else +#endif /* V7VGA */ +#ifdef VGG + /* Caters for the 'undocumented' VGA modes */ + if (get_256_colour_mode()) + set_bytes_per_line(get_chars_per_line()<<1); + else +#endif /* VGG */ + set_bytes_per_line(get_chars_per_line()); + /* + * This is pretty tacky, but... + */ + if (video_adapter==EGA || video_adapter == VGA) + set_screen_length(get_offset_per_line()*get_screen_height()/get_char_height()); + else + set_screen_length(get_bytes_per_line()*get_screen_height()/get_char_height()); + set_char_width(8); +} + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_INIT.seg" +#endif + +void gvi_init IFN1(half_word, v_adapter) +{ + int screen_height; + + /* + * If this is second or subsequent reset, switch off old video adapter + * ports before initialising new one. + */ + + if (soft_reset) + switch (video_adapter) { +#ifdef DUMB_TERMINAL + case MDA: + mda_term(); + break; +#endif /* DUMB_TERMINAL */ + case CGA: +#ifdef CGAMONO + case CGA_MONO: +#endif + cga_term(); + break; +#ifdef EGG + case EGA: + ega_term(); + break; +#endif +#ifdef VGG + case VGA: + vga_term(); + break; +#endif +#ifdef HERC + case HERCULES: + herc_term(); + break; +#endif + default: +#ifndef PROD + fprintf(trace_file, "gvi_term: invalid video adaptor: %d\n", + video_adapter); +#endif + break; + } + + /* + * Set up GVI variables, depending on v_adapter. + */ + + switch (v_adapter) { + case MDA: + case CGA: +#ifdef CGAMONO + case CGA_MONO: +#endif + screen_height = CGA_HEIGHT; + video_adapter = v_adapter; + break; +#ifdef HERC + case HERCULES: + screen_height = HERC_HEIGHT; + video_adapter = v_adapter; + break; +#endif +#ifdef EGG + case EGA: + screen_height = EGA_HEIGHT; + video_adapter = v_adapter; + break; +#endif +#ifdef VGG + case VGA: + screen_height = VGA_HEIGHT; + video_adapter = v_adapter; + break; +#endif + default: + screen_height = CGA_HEIGHT; + video_adapter = CGA; /* Default video adapter */ + } + +#ifdef GORE + /* + * GORE variables must be set up before doing any other + * graphics. + */ + + init_gore_update(); +#endif /* GORE */ + +/* Setting all these variables should be done in the appropriate xxx_init() */ + switch (video_adapter) { +#ifdef DUMB_TERMINAL + case MDA: + mda_init(); + break; +#endif /* DUMB_TERMINAL */ + case CGA: +#ifdef CGAMONO + case CGA_MONO: +#endif + cga_init(); + break; +#ifdef HERC + case HERCULES: + herc_init(); + break; +#endif +#ifdef EGG + case EGA: + ega_init(); + break; +#endif +#ifdef VGG + case VGA: + vga_init(); + break; +#endif + default: + break; + } + +#if !defined(NTVDM) || (defined(NTVDM) && !defined(X86GFX) ) + host_init_adaptor(video_adapter,screen_height); + host_clear_screen(); +#endif /* !NTVDM | (NTVDM & !X86GFX) */ + +#ifdef EGA_DUMP + dump_init(host_getenv( "EGA_DUMP_FILE" ), video_adapter); +#endif +} + + +void gvi_term IFN0() +{ + switch (video_adapter) { +#ifdef DUMB_TERMINAL + case MDA: + mda_term(); + break; +#endif /* DUMB_TERMINAL */ + case CGA: +#ifdef CGAMONO + case CGA_MONO: +#endif + cga_term(); + break; +#ifdef HERC + case HERCULES: + herc_term(); + break; +#endif +#ifdef EGG + case EGA: + ega_term(); + break; +#endif +#ifdef VGG + case VGA: + vga_term(); + break; +#endif + case NO_ADAPTOR: /* Do nothing if video_adaptor not initialised */ + break; + default: +#ifndef PROD + fprintf(trace_file, "gvi_term: invalid video adaptor: %d\n", + video_adapter); +#endif + break; + } + +#ifdef GORE + term_gore_update(); +#endif /* GORE */ +} diff --git a/private/mvdm/softpc.new/base/video/makefile b/private/mvdm/softpc.new/base/video/makefile new file mode 100644 index 000000000..6ee4f43fa --- /dev/null +++ b/private/mvdm/softpc.new/base/video/makefile @@ -0,0 +1,6 @@ +# +# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source +# file to this component. This file merely indirects to the real make file +# that is shared by all the components of NT OS/2 +# +!INCLUDE $(NTMAKEENV)\makefile.def diff --git a/private/mvdm/softpc.new/base/video/sources b/private/mvdm/softpc.new/base/video/sources new file mode 100644 index 000000000..016b7ed0d --- /dev/null +++ b/private/mvdm/softpc.new/base/video/sources @@ -0,0 +1,77 @@ +!IF 0 + +Copyright (c) 1989 Microsoft Corporation + +Module Name: + + sources. + +Abstract: + + This file specifies the target component being built and the list of + sources files needed to build that component. Also specifies optional + compiler switches and libraries that are unique for the component being + built. + + +Author: + + Steve Wood (stevewo) 12-Apr-1990 + +NOTE: Commented description of this file is in \nt\bak\bin\sources.tpl + +!ENDIF + + +MAJORCOMP=spcbase +MINORCOMP=video + +TARGETNAME=video + +TARGETPATH=obj + + +NTPROFILEINPUT=yes + +# Pick one of the following and delete the others +TARGETTYPE=LIBRARY + + +TARGETLIBS= + +SOFTPC_TREE=$(BASEDIR)\private\mvdm\softpc.new + +INCLUDES=$(SOFTPC_TREE)\host\inc;$(SOFTPC_TREE)\base\inc;$(BASEDIR)\private\inc + +!IF $(ALPHA) +GPSIZE=0 +!ELSE +GPSIZE=0 +!ENDIF + + + +SOURCES= ega_mode.c \ + ega_prts.c \ + ega_vide.c \ + gfx_updt.c \ + video.c \ + gvi.c \ + video_io.c \ + v7_ports.c \ + v7_video.c \ + vga_mode.c \ + vga_prts.c \ + vga_vide.c \ + ega_read.c \ + ega_writ.c \ + ega_dmmy.c \ + ega_trcr.c \ + egawrtm0.c \ + egwrtm12.c \ + cga.c +# ga_glue.c \ + +!INCLUDE $(SOFTPC_TREE)\obj.vdm\CDEFINE.INC + +UMTYPE=console diff --git a/private/mvdm/softpc.new/base/video/v7_ports.c b/private/mvdm/softpc.new/base/video/v7_ports.c new file mode 100644 index 000000000..9548b1291 --- /dev/null +++ b/private/mvdm/softpc.new/base/video/v7_ports.c @@ -0,0 +1,771 @@ +#include "insignia.h" +#include "host_def.h" +/*[ +====================================================================== + + SoftPC Revision 3.0 + + Title: + v7_ports.c + + Description: + Code for the extended registers of the Video 7 VGA. + Based on the V7 VGA Technical Reference Manual. + + Author: + Phil Taylor + + Date: + 26 September 1990 + + SccsID "@(#)v7_ports.c 1.19 01/13/95 Copyright Insignia Solutions Ltd." + +====================================================================== +]*/ + + +#ifdef V7VGA + +#include "xt.h" +#include "gvi.h" +#include "gmi.h" +#include "ios.h" +#include "gfx_upd.h" +#include "debug.h" +#include "egacpu.h" +#include "egaports.h" +#include "egagraph.h" +#include "egaread.h" +#include "vgaports.h" + + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_VGA.seg" +#endif + + +IMPORT byte crtc_0_7_protect; +IMPORT byte crtc_0_8_protect; +IMPORT byte crtc_9_b_protect; +IMPORT byte crtc_c_protect; + +FORWARD void draw_v7ptr(); + +GLOBAL ULONG fg_latches; +GLOBAL UTINY fg_bg_control; + +GLOBAL void remove_v7ptr IPT0(); + +SAVED word curr_v7ptr_x; +SAVED word curr_v7ptr_y; + +/*( +---------------------------------------------------------------------- + +Function: + vga_seq_extn_control( io_addr port, half_word value ) + +Purpose: + To emulate writing to the Extensions Control Register. + +Input: + port - the V7VGA I/O port (should always be 0x3c5) + value - the value to be written to the register + +Output: + The Extensions Control Register is set to the correct value. + +---------------------------------------------------------------------- +)*/ + +GLOBAL VOID +vga_seq_extn_control(port, value) +io_addr port; +half_word value; + +{ + NON_PROD(if(io_verbose & EGA_PORTS_VERBOSE)fprintf(trace_file,"seq(6,%#x)\n",value);) + note_entrance2("vga_seq_extn_control(%x,%x)", port, value); + + if (value == 0xea) + sequencer.extensions_control.as_bfld.extension_enable = 1; + else if (value == 0xae) + sequencer.extensions_control.as_bfld.extension_enable = 0; +} + +GLOBAL VOID +v7_get_banks( rd_bank, wrt_bank ) + +UTINY *rd_bank; +UTINY *wrt_bank; + +{ + if( get_seq_chain4_mode() && get_chain4_mode() ) { + set_v7_bank_for_seq_chain4( rd_bank, wrt_bank ); + } + else { + + /* + 1.4.92 MG + Note that we and off the top bit of the bank selects. This means + that accesses to the top 512k (which we don't have) get mapped into + the bottom 512k, rather than being thrown away. This prevents SEGVs + and saves complications in the write routines, but causes other + problems. + + Further explanation is in draw_v7ptr() at the end of this file. + */ + + *rd_bank=(extensions_controller.ram_bank_select.as_bfld.cpu_read_bank_select&1); + *wrt_bank=(extensions_controller.ram_bank_select.as_bfld.cpu_write_bank_select&1); + } +} + +/*( +---------------------------------------------------------------------- + +Function: + vga_extn_outb( io_addr port, half_word value ) + +Purpose: + To emulate writing to the V7VGA Extension Registers + +Input: + port - the V7VGA I/O port (should always be 0x3c5) + value - the value to be written to the register + +Output: + The Extension Registers are set to the correct value, and + any other required actions are emulated. + +---------------------------------------------------------------------- +)*/ + +GLOBAL VOID +vga_extn_outb(port, value) +io_addr port; +half_word value; + +{ + half_word old_value; + + note_entrance2("vga_extn_outb(%x,%x)", port, value); + NON_PROD(if(io_verbose & EGA_PORTS_VERBOSE)fprintf(trace_file,"seq ext (%#x,%#x)\n", + sequencer.address.as.abyte,value);) + + switch (sequencer.address.as.abyte) { + + case 0x83: + note_entrance0("attribute controller index"); + attribute_controller.address.as.abyte = value; + break; + case 0x94: + note_entrance0("pointer pattern"); + extensions_controller.pointer_pattern = value; + host_start_update (); + (*clear_v7ptr)(curr_v7ptr_x, curr_v7ptr_y); + draw_v7ptr(); + host_end_update (); + break; + case 0x9c: + note_entrance0("pointer horiz position hi"); + extensions_controller.ptr_horiz_posn_hi.as.abyte = value; + break; + case 0x9d: + note_entrance0("pointer horiz position lo"); + extensions_controller.ptr_horiz_posn_lo = value; + break; + case 0x9e: + note_entrance0("pointer vert position hi"); + extensions_controller.ptr_vert_posn_hi.as.abyte = value; + break; + case 0x9f: + note_entrance0("pointer vert position lo"); + extensions_controller.ptr_vert_posn_lo = value; + host_start_update (); + (*clear_v7ptr)(curr_v7ptr_x, curr_v7ptr_y); + draw_v7ptr(); + host_end_update (); + break; + case 0xa0: + note_entrance0("graphics controller mem latch 0"); + /* Direct access to memory data latch 0 */ + put_latch0(value); + break; + case 0xa1: + note_entrance0("graphics controller mem latch 1"); + /* Direct access to memory data latch 1 */ + put_latch1(value); + break; + case 0xa2: + note_entrance0("graphics controller mem latch 2"); + /* Direct access to memory data latch 2 */ + put_latch2(value); + break; + case 0xa3: + note_entrance0("graphics controller mem latch 3"); + /* Direct access to memory data latch 3 */ + put_latch3(value); + break; + case 0xa4: + note_entrance0("clock select"); + extensions_controller.clock_select.as.abyte = value; + /* Typically set to 0x10 for extended hi-res modes */ + break; + case 0xa5: + note_entrance0("cursor attributes"); + old_value=extensions_controller.cursor_attrs.as.abyte; + extensions_controller.cursor_attrs.as.abyte = value; + + /* + 8.6.92 MG + We need to check that the pointer was disabled + before we redraw it when it is enabled. Otherwise + we can get old pointers left on the screen in + Windows. + */ + + /* Not doing cursor mode stuff (whatever that means) */ + + if (value&0x80!=old_value&0x80) { + host_start_update (); + if (value & 0x80) { + /* Enable hardware graphics pointer */ + draw_v7ptr(); + } + else { + /* Disable hardware graphics pointer */ + (*clear_v7ptr)(curr_v7ptr_x, curr_v7ptr_y); + } + host_end_update (); + } + break; + + /* + 31.3.92 MG Register c1 is an undocumented DAC control + register, bit 0 switches between 6 and 8 bit data in + the DAC. + */ + + case 0xc1: + extensions_controller.dac_control.as.abyte=value; + if (extensions_controller.dac_control.as_bfld.dac_8_bits) { + DAC_data_bits=8; + DAC_data_mask=0xff; + } + else { + DAC_data_bits=6; + DAC_data_mask=0x3f; + } + break; + case 0xea: + note_entrance0("switch strobe"); + /* loads up switch readback with some CPU data lines */ + extensions_controller.switch_readback = 0xff; + /* This is hard coded for the jumper/switch settings, and might not be right */ + break; + case 0xeb: + note_entrance0("emulation_control"); + extensions_controller.emulation_control.as.abyte = value; + if (extensions_controller.emulation_control.as_bfld.write_prot_2) + crtc_0_8_protect = TRUE; + else + crtc_0_8_protect = FALSE; + if (extensions_controller.emulation_control.as_bfld.write_prot_1) + crtc_9_b_protect = TRUE; + else + crtc_9_b_protect = FALSE; + if (extensions_controller.emulation_control.as_bfld.write_prot_0) + crtc_c_protect = TRUE; + else + crtc_c_protect = FALSE; + break; + case 0xec: + note_entrance0("foreground latch 0"); + extensions_controller.foreground_latch_0 = value; + SET_FG_LATCH( 0, value ); + break; + case 0xed: + note_entrance0("foreground latch 1"); + extensions_controller.foreground_latch_1 = value; + SET_FG_LATCH( 1, value ); + break; + case 0xee: + note_entrance0("foreground latch 2"); + extensions_controller.foreground_latch_2 = value; + SET_FG_LATCH( 2, value ); + break; + case 0xef: + note_entrance0("foreground latch 3"); + extensions_controller.foreground_latch_3 = value; + SET_FG_LATCH( 3, value ); + break; + case 0xf0: + note_entrance0("fast foreground latch load"); + switch (extensions_controller.fast_latch_load_state.as_bfld.fg_latch_load_state) + { + case 0: + extensions_controller.foreground_latch_0 = value; + extensions_controller.fast_latch_load_state.as_bfld.fg_latch_load_state = 1; + SET_FG_LATCH( 0, value ); + break; + case 1: + extensions_controller.foreground_latch_1 = value; + extensions_controller.fast_latch_load_state.as_bfld.fg_latch_load_state = 2; + SET_FG_LATCH( 1, value ); + break; + case 2: + extensions_controller.foreground_latch_2 = value; + extensions_controller.fast_latch_load_state.as_bfld.fg_latch_load_state = 3; + SET_FG_LATCH( 2, value ); + break; + case 3: + extensions_controller.foreground_latch_3 = value; + extensions_controller.fast_latch_load_state.as_bfld.fg_latch_load_state = 0; + SET_FG_LATCH( 3, value ); + break; + } + break; + case 0xf1: + note_entrance0("fast latch load state"); + extensions_controller.fast_latch_load_state.as.abyte = value; + break; + case 0xf2: + note_entrance0("fast background latch load"); + switch (extensions_controller.fast_latch_load_state.as_bfld.bg_latch_load_state) + { + case 0: + put_latch0(value); + extensions_controller.fast_latch_load_state.as_bfld.bg_latch_load_state = 1; + break; + case 1: + put_latch1(value); + extensions_controller.fast_latch_load_state.as_bfld.bg_latch_load_state = 2; + break; + case 2: + put_latch2(value); + extensions_controller.fast_latch_load_state.as_bfld.bg_latch_load_state = 3; + break; + case 3: + put_latch3(value); + extensions_controller.fast_latch_load_state.as_bfld.bg_latch_load_state = 0; + break; + } + break; + case 0xf3: + note_entrance0("masked write control"); + extensions_controller.masked_write_control.as.abyte = value; + break; + case 0xf4: + note_entrance0("masked write mask"); + extensions_controller.masked_write_mask = value; + break; + case 0xf5: + note_entrance0("foreground/background pattern"); + extensions_controller.fg_bg_pattern = value; + break; + case 0xf6: + note_entrance0("1Mb RAM bank select"); + extensions_controller.ram_bank_select.as.abyte = value; + update_banking(); + break; + case 0xf7: + note_entrance0("switch readback"); + extensions_controller.switch_readback = value; + break; + case 0xf8: + note_entrance0("clock control"); + extensions_controller.clock_control.as.abyte = value; + /* Hope we don't have to do anything here */ + break; + case 0xf9: + note_entrance0("page select"); + extensions_controller.page_select.as.abyte = value; + update_banking(); + break; + case 0xfa: + note_entrance0("foreground color"); + extensions_controller.foreground_color.as.abyte = value; + break; + case 0xfb: + note_entrance0("background color"); + extensions_controller.background_color.as.abyte = value; + break; + case 0xfc: + note_entrance0("compatibility control"); + { + BOOL now_seqchain4; + BOOL now_seqchain; + + now_seqchain4 = get_seq_chain4_mode(); + now_seqchain = get_seq_chain_mode(); + extensions_controller.compatibility_control.as.abyte = value; + set_seq_chain4_mode(extensions_controller.compatibility_control.as_bfld.sequential_chain4); + set_seq_chain_mode(extensions_controller.compatibility_control.as_bfld.sequential_chain); + if (get_chain4_mode() && (now_seqchain4 != get_seq_chain4_mode())) + { + /* do we need to change the read/write routines here?? */ + ega_read_routines_update(); + ega_write_routines_update( CHAINED ); + } + } + break; + case 0xfd: + note_entrance0("timing select"); + extensions_controller.timing_select.as.abyte = value; + /* Used to select timing states for V-RAM hi-res modes */ + /* Hope we don't have to do anything here */ + break; + case 0xfe: + note_entrance0("foreground/background control"); + extensions_controller.fg_bg_control.as.abyte = value; + fg_bg_control = value; + ega_read_routines_update(); + ega_write_routines_update( WRITE_MODE ); + + /*** + set_fg_bg_mode(); + ***/ + break; + case 0xff: + note_entrance0("16-bit interface control"); + extensions_controller.interface_control.as.abyte = value; + + /*** + sort_out_memory_stuff(); + sort_out_interface_stuff(); + ***/ + break; + default: + NON_PROD(if(io_verbose & EGA_PORTS_VERBOSE) + fprintf(trace_file,"Bad extensions index %x\n", + sequencer.address.as.abyte);) + break; + } +} + +/*( +---------------------------------------------------------------------- + +Function: + vga_extn_inb( io_addr port, half_word *value ) + +Purpose: + To emulate reading from the V7VGA Extension Registers + +Input: + port - the V7VGA I/O port (should always be 0x3c5) + +Output: + value - the value read from the register + Any other required actions are emulated. + +---------------------------------------------------------------------- +)*/ + +GLOBAL VOID +vga_extn_inb(port, value) +io_addr port; +half_word *value; +{ + note_entrance1("vga_extn_inb(%x)", port); + + switch (sequencer.address.as.abyte) { + + case 0x83: + *value = attribute_controller.address.as.abyte; + break; + case 0x8e: + case 0x8f: + /* chip revision 3 */ + *value = 0x70; + break; + case 0x94: + *value = extensions_controller.pointer_pattern; + break; + case 0x9c: + *value = extensions_controller.ptr_horiz_posn_hi.as.abyte; + break; + case 0x9d: + *value = extensions_controller.ptr_horiz_posn_lo; + break; + case 0x9e: + *value = extensions_controller.ptr_vert_posn_hi.as.abyte; + break; + case 0x9f: + *value = extensions_controller.ptr_vert_posn_lo; + break; + case 0xa0: + /* Direct access to memory data latch 0 */ + *value = get_latch0; + break; + case 0xa1: + /* Direct access to memory data latch 1 */ + *value = get_latch1; + break; + case 0xa2: + /* Direct access to memory data latch 2 */ + *value = get_latch2; + break; + case 0xa3: + /* Direct access to memory data latch 3 */ + *value = get_latch3; + break; + case 0xa4: + *value = extensions_controller.clock_select.as.abyte; + break; + case 0xa5: + *value = extensions_controller.cursor_attrs.as.abyte & 0x89; + break; + + /* + 31.3.92 MG Register C1 controls 6/8 bit data in the DAC. + */ + + case 0xc1: + *value=extensions_controller.dac_control.as.abyte; + break; + case 0xeb: + *value = extensions_controller.emulation_control.as.abyte; + break; + case 0xec: + *value = extensions_controller.foreground_latch_0; + break; + case 0xed: + *value = extensions_controller.foreground_latch_1; + break; + case 0xee: + *value = extensions_controller.foreground_latch_2; + break; + case 0xef: + *value = extensions_controller.foreground_latch_3; + break; + case 0xf0: + switch (extensions_controller.fast_latch_load_state.as_bfld.fg_latch_load_state) + { + case 0: + *value = extensions_controller.foreground_latch_0; + break; + case 1: + *value = extensions_controller.foreground_latch_1; + break; + case 2: + *value = extensions_controller.foreground_latch_2; + break; + case 3: + *value = extensions_controller.foreground_latch_3; + break; + } + extensions_controller.fast_latch_load_state.as_bfld.fg_latch_load_state = 0; + break; + case 0xf1: + *value = extensions_controller.fast_latch_load_state.as.abyte; + break; + case 0xf2: + switch (extensions_controller.fast_latch_load_state.as_bfld.bg_latch_load_state) + { + case 0: + *value = get_latch0; + break; + case 1: + *value = get_latch1; + break; + case 2: + *value = get_latch2; + break; + case 3: + *value = get_latch3; + break; + } + extensions_controller.fast_latch_load_state.as_bfld.bg_latch_load_state = 0; + break; + case 0xf3: + *value = extensions_controller.masked_write_control.as.abyte & 3; + break; + case 0xf4: + *value = extensions_controller.masked_write_mask; + break; + case 0xf5: + *value = extensions_controller.fg_bg_pattern; + break; + case 0xf6: + *value = extensions_controller.ram_bank_select.as.abyte; + break; + case 0xf7: + *value = extensions_controller.switch_readback; + break; + case 0xf8: + *value = extensions_controller.clock_control.as.abyte; + break; + case 0xf9: + *value = extensions_controller.page_select.as_bfld.extended_page_select; + break; + case 0xfa: + *value = extensions_controller.foreground_color.as.abyte; + break; + case 0xfb: + *value = extensions_controller.background_color.as.abyte; + break; + case 0xfc: + *value = extensions_controller.compatibility_control.as.abyte; + break; + case 0xfd: + *value = extensions_controller.timing_select.as.abyte; + break; + case 0xfe: + *value = extensions_controller.fg_bg_control.as.abyte & 0xe; + break; + case 0xff: + *value = extensions_controller.interface_control.as.abyte; + break; + default: + NON_PROD(if(io_verbose & EGA_PORTS_VERBOSE) + fprintf(trace_file,"Bad extensions index %x\n", + sequencer.address.as.abyte);) + + /* 31.3.92 MG This used to return 0xFF, but a real card + returns zero. */ + + *value = 0; + break; + + } + note_entrance1("returning %x",*value); +} + +/*( +---------------------------------------------------------------------- + +Function: + draw_v7ptr() + +Purpose: + To emulate the V7 hardware pointer on the screen. + +Input: + None. + +Output: + The pointer is displayed on the screen. + +---------------------------------------------------------------------- +)*/ + +GLOBAL VOID +draw_v7ptr() +{ + sys_addr pattern; + + if (extensions_controller.cursor_attrs.as_bfld.pointer_enable) + { + curr_v7ptr_x = extensions_controller.ptr_horiz_posn_lo + + (extensions_controller.ptr_horiz_posn_hi.as_bfld.ptr_horiz_position << 8); + + + if (get_seq_chain4_mode() && get_chain4_mode()) + { + /* + * In the extended 256 col modes we seem to need to halve + * the x coordinate to get the pointer in the right place. + */ + curr_v7ptr_x >>= 1; + } + + curr_v7ptr_y = extensions_controller.ptr_vert_posn_lo + + (extensions_controller.ptr_vert_posn_hi.as_bfld.ptr_vert_position << 8); + + /* + * I have never seen the pointer bank select bits used, so + * this is a guess as to their meaning. + */ + + /* + 1.4.92 MG + Sadly, this guess isn't correct - the pointer_bank_select bits are + used to select which 256k bank the pointer data is read from. Now + we have a problem, as if a program writes the data to the third + bank then it actually ends up in the first because the bank + selection routines for memory access and off the top bit. + + As a result, we also need to lose the top bit here. The correct + way to do this would be to either support nonexistent VGA memory + correctly, or to add another 512k to the memory we already use. + + This fix is mainly to make Windows 3.1 work with its video-7 + driver. It stuffs bytes into the last few k of the 1Mb space on + the video-7 to see if the memory exists. As we just map this + access to 512k lower, it thinks we have 1Mb of RAM rather than + 512k, so puts the pointer at the top of the 1Mb. + + Programs which call the VGA BIOS to determine the memory size + will not have this problem. + */ + + pattern = (((extensions_controller.interface_control.as_bfld.pointer_bank_select&1) << 16) + + (0xc000 + (extensions_controller.pointer_pattern << 6))) << 2; + + (*paint_v7ptr)(pattern, curr_v7ptr_x, curr_v7ptr_y); + } +} + +GLOBAL VOID remove_v7ptr IFN0() + +{ + (*clear_v7ptr)(curr_v7ptr_x, curr_v7ptr_y); +} + +GLOBAL BOOL v7ptr_between_lines IFN2(int, start_line, int, end_line) + +{ + if (curr_v7ptr_y+32end_line) + return FALSE; + return TRUE; +} + +#ifdef CPU_40_STYLE +/* + * 4.0 video support moves v7 fg latch value from variable 'fg_latches' + * int CPU variable accessed by interface fn to get/set all 4 bytes of + * latches. Take byte index and value and update v7 latch via interface + */ +GLOBAL void set_v7_fg_latch_byte IFN2(IU8, index, IU8, value) +{ + IU32 v7latch; + + /* get current value */ + v7latch = getVideov7_fg_latches(); + + /* change byte 'index' to 'value */ + switch(index) + { + case 0: + v7latch = (v7latch & 0xffffff00) | value; + break; + + case 1: + v7latch = (v7latch & 0xffff00ff) | (value << 8); + break; + + case 2: + v7latch = (v7latch & 0xff00ffff) | (value << 16); + break; + + case 3: + v7latch = (v7latch & 0x00ffffff) | (value << 24); + break; + + default: + always_trace1("set_v7_fg_latch_byte: index > 3 (%d)", index); + } + + /* update v7 latches */ + setVideov7_fg_latches(v7latch); +} +#endif /* CPU_40_STYLE */ + +#endif /* V7VGA */ diff --git a/private/mvdm/softpc.new/base/video/v7_video.c b/private/mvdm/softpc.new/base/video/v7_video.c new file mode 100644 index 000000000..81359287c --- /dev/null +++ b/private/mvdm/softpc.new/base/video/v7_video.c @@ -0,0 +1,524 @@ +#include "insignia.h" +#include "host_def.h" +/*[ +====================================================================== + + SoftPC Revision 3.0 + + Title: + v7_video.c + + Description: + Code for the BIOS extended functions of the Video 7 VGA. + + Author: + Phil Taylor + + Date: + 12 October 1990 + + SccsID "@(#)v7_video.c 1.21 07/04/95 Copyright Insignia Solutions Ltd." + +====================================================================== +]*/ + + +#ifdef VGG +#ifdef V7VGA + +#include "xt.h" +#include "gvi.h" +#include "gmi.h" +#include "gfx_upd.h" +#include "error.h" +#include "config.h" +#include "ios.h" +#include "bios.h" +#include "debug.h" +#include "egagraph.h" +#include "video.h" +#include "egavideo.h" +#include "egacpu.h" +#include "egaports.h" +#include "vgaports.h" +#include CpuH +#include "sas.h" + + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "VIDEO_BIOS_VGA.seg" +#endif + + +IMPORT struct sequencer sequencer; +IMPORT struct crt_controller crt_controller; +IMPORT struct graphics_controller graphics_controller; +IMPORT struct attribute_controller attribute_controller; +IMPORT IU8 Currently_emulated_video_mode; + +IMPORT void low_set_mode(); +IMPORT void load_font(); +IMPORT void recalc_text(); + +FORWARD void v7vga_inquire(); +FORWARD void v7vga_get_info(); +FORWARD void v7_not_imp(); +FORWARD void v7vga_get_mode_and_screen_res(); +FORWARD void v7vga_extended_set_mode(); +FORWARD void v7vga_select_autoswitch_mode(); +FORWARD void v7vga_get_memory_configuration(); + +GLOBAL void (*v7vga_video_func[]) () = +{ + v7vga_inquire, + v7vga_get_info, + v7_not_imp, + v7_not_imp, + v7vga_get_mode_and_screen_res, + v7vga_extended_set_mode, + v7vga_select_autoswitch_mode, + v7vga_get_memory_configuration +}; + +/*( +---------------------------------------------------------------------- + +Function: + v7vga_func_6f() + +Purpose: + Perform the int 10 extended BIOS function 6F + +Input: + None + +Output: + If invalid subfunction, AH = 2 + +---------------------------------------------------------------------- +)*/ + +GLOBAL VOID +v7vga_func_6f() +{ + byte al; + + note_entrance0("v7vga_func_6f"); + al = getAL(); + if (al >= 0 && al < 8) + (*v7vga_video_func[al])(); + else + setAH(2); + /* setCF(1) ?? */ +} + +/*( +---------------------------------------------------------------------- + +Function: + v7vga_inquire() + +Purpose: + Perform the int 10 extended BIOS function 6F - Subfunction 0 + +Input: + None + +Output: + BX is set to 'V7' (indicates extensions are present) + +---------------------------------------------------------------------- +)*/ + +GLOBAL VOID +v7vga_inquire() +{ + note_entrance0("v7vga_inquire"); + + setAX(0x6f6f); + setBX(0x5637); +} + +/*( +---------------------------------------------------------------------- + +Function: + v7vga_get_info() + +Purpose: + Perform the int 10 extended BIOS function 6F - Subfunction 1 + +Input: + None + +Output: + AL = reserved + AH = status register information + +---------------------------------------------------------------------- +)*/ + +GLOBAL VOID +v7vga_get_info() +{ + note_entrance0("v7vga_get_info"); + + /* Reserved */ + setAL(0x10); /* This is what our V7VGA puts there */ + /* Status register information */ + setAH(0x04); /* Bit 5 = 0 -> colour. Bit 4 = 0 -> hi-res. Bit 0 = 0 -> display enabled. */ +} + +/*( +---------------------------------------------------------------------- + +Function: + v7_not_imp() + +Purpose: + Emulate the unimplemented int 10 extended BIOS functions 6F - Subfunctions 2 & 3 + +Input: + None + +Output: + None + +---------------------------------------------------------------------- +)*/ + +GLOBAL VOID +v7_not_imp() +{ + note_entrance0("v7_not_imp"); +} + +/*( +---------------------------------------------------------------------- + +Function: + v7vga_get_mode_and_screen_res() + +Purpose: + Perform the int 10 extended BIOS function 6F - Subfunction 4 + +Input: + None + +Output: + AL = current video mode + BX = horizontal columns/pixels (text/graphics) + CX = vertical rows/pixels (text/graphics) + +---------------------------------------------------------------------- +)*/ + +GLOBAL VOID +v7vga_get_mode_and_screen_res() +{ + half_word video_mode; + + note_entrance0("v7vga_get_mode_and_screen_res"); + + video_mode = sas_hw_at_no_check(vd_video_mode); + if ((video_mode == 1) && extensions_controller.foreground_latch_1) + video_mode = extensions_controller.foreground_latch_1; + else if (video_mode > 0x13) + video_mode += 0x4c; + + setAL(video_mode); + + if (alpha_num_mode()) + { + setBX(sas_w_at_no_check(VID_COLS)); + setCX(sas_w_at_no_check(vd_rows_on_screen)+1); + } + else + { + setBX(get_chars_per_line()*get_char_width()); + if (sas_hw_at_no_check(vd_video_mode) > 0x10) + setCX(get_screen_height()/get_pc_pix_height()/get_char_height()); + else + setCX(get_screen_height()/get_pc_pix_height()); + } +} + +/*( +---------------------------------------------------------------------- + +Function: + v7vga_extended_set_mode() + +Purpose: + Perform the int 10 extended BIOS function 6F - Subfunction 5 + +Input: + BL = mode value + +Output: + None + +---------------------------------------------------------------------- +)*/ + +GLOBAL VOID +v7vga_extended_set_mode() +{ + UTINY pag; + sys_addr save_addr,font_addr; + half_word temp_word; + byte mode_byte; + byte video_mode; + ULONG font_offset; + word clr_char; +#ifndef PROD + trace("setting video mode", DUMP_REG); +#endif + set_host_pix_height(1); + set_banking( 0, 0 ); + + if (is_bad_vid_mode(getBL()) && !is_v7vga_mode(getBL())) + return; + + video_mode = getBL() & 0x7F; /* get rid of top bit - indicates clear or not */ + + /* + * The method of storing an extended video mode according to a real BIOS is + * if it is an text mode then put 1 in the BIOS mode variable and store + * the video mode in the extensions foreground latch register 1 (Index EC). + * If it is a graphics mode then store (mode - 4C) in the mode variable. + */ + + if (video_mode < 0x40) + { + sas_store_no_check(vd_video_mode, video_mode); + extensions_controller.foreground_latch_1 = 0; + } + else if (video_mode < 0x46) + { + sas_store_no_check(vd_video_mode, 1); + extensions_controller.foreground_latch_1 = video_mode; + } + else + { + sas_store_no_check(vd_video_mode, video_mode - 0x4c); + } + + Currently_emulated_video_mode = video_mode; + + sas_store_no_check(ega_info, (sas_hw_at_no_check(ega_info) & 0x7F ) | (getBL() & 0x80)); /* update screen clear flag in ega_info */ + + save_addr = follow_ptr(EGA_SAVEPTR); + if(alpha_num_mode()) + { + /* load_font will do the mode change for us */ + if (video_adapter == VGA) + { + switch (get_VGA_lines()) + { + case S350: + load_font(EGA_CGMN,256,0,0,14); + break; + case S400: + switch (video_mode) + { + case 0x42: + case 0x40: + case 0x43: + case 0x44: + case 0x46: + load_font(EGA_CGDDOT,256,0,0,8); + if (video_mode == 0x42) + set_host_pix_height(2); + break; + case 0x41: + case 0x45: + load_font(EGA_CGMN,256,0,0,14); + set_host_pix_height(2); + break; + default: + load_font(EGA_HIFONT,256,0,0,16); + } + break; + default: + load_font(EGA_CGDDOT,256,0,0,8); + } + } + else + { + if(get_EGA_switches() & 1) + load_font(EGA_CGMN,256,0,0,14); + else + load_font(EGA_CGDDOT,256,0,0,8); + } + /* Now see if we have a nasty font to load */ + font_addr = follow_ptr(save_addr+ALPHA_FONT_OFFSET); + if(font_addr != 0) + { + /* See if it applies to us */ + font_offset = 11; + do + { + mode_byte = sas_hw_at_no_check(font_addr+font_offset); + if (mode_byte == video_mode) + { + load_font(follow_ptr(font_addr+6),sas_w_at_no_check(font_addr+2), + sas_w_at_no_check(font_addr+4), sas_hw_at_no_check(font_addr+1), + sas_hw_at_no_check(font_addr)); + recalc_text(sas_hw_at_no_check(font_addr)); + if(sas_hw_at_no_check(font_addr+10) != 0xff) + sas_store_no_check(vd_rows_on_screen, sas_hw_at_no_check(font_addr+10)-1); + break; + } + font_offset++; + } while (mode_byte != 0xff); + } + } + else + { + /* graphics mode. No font load, so do mode change ourselves */ + low_set_mode(video_mode); + /* Set up default graphics font */ + sas_storew_no_check(EGA_FONT_INT*4+2,EGA_SEG); + if(video_mode == 16) + sas_storew_no_check(EGA_FONT_INT*4,EGA_CGMN_OFF); + else + if (video_mode == 17 || video_mode == 18 || video_mode == 0x66 || video_mode == 0x67) + sas_storew_no_check(EGA_FONT_INT*4,EGA_HIFONT_OFF); + else + sas_storew_no_check(EGA_FONT_INT*4,EGA_CGDDOT_OFF); + /* Now see if we have a nasty font to load */ + font_addr = follow_ptr(save_addr+GRAPH_FONT_OFFSET); + if(font_addr != 0) + { + /* See if it applies to us */ + font_offset = 7; + do + { + mode_byte = sas_hw_at_no_check(font_addr+font_offset); + if (mode_byte == video_mode) + { + sas_store_no_check(vd_rows_on_screen, sas_hw_at_no_check(font_addr)-1); + sas_store_no_check(ega_char_height, sas_hw_at_no_check(font_addr)+1); + sas_move_bytes_forward(font_addr+3, 4*EGA_FONT_INT,4); + break; + } + font_offset++; + } while (mode_byte != 0xff); + } + } + + sas_store_no_check(vd_current_page, 0); + sas_storew_no_check((sys_addr)VID_ADDR, 0); + sas_storew_no_check((sys_addr)VID_INDEX, EGA_CRTC_INDEX); +/* + * CGA bios fills this entry in 'vd_mode_table' with 'this is a bad mode' + * value, so make one up for VGA - used in VGA bios disp_func + */ + if(video_mode < 8) + sas_store_no_check(vd_crt_mode, vd_mode_table[video_mode].mode_control_val); + else + if(video_mode < 0x10) + sas_store_no_check(vd_crt_mode, 0x29); + else + sas_store_no_check(vd_crt_mode, 0x1e); + if(video_mode == 6) + sas_store_no_check(vd_crt_palette, 0x3f); + else + sas_store_no_check(vd_crt_palette, 0x30); + + for(pag=0; pag<8; pag++) + sas_storew_no_check(VID_CURPOS + 2*pag, 0); +/* Clear screen */ + if(!get_EGA_no_clear()) + { + if (video_mode >= 0x60) + clr_char = vd_ext_graph_table[video_mode-0x60].clear_char; + else if (video_mode >= 0x40) + clr_char = vd_ext_text_table[video_mode-0x40].clear_char; + else + clr_char = vd_mode_table[video_mode].clear_char; +#ifdef REAL_VGA + sas_fillsw_16(video_pc_low_regen, clr_char, + (video_pc_high_regen - video_pc_low_regen)/ 2 + 1); +#else + sas_fillsw(video_pc_low_regen, clr_char, + (video_pc_high_regen - video_pc_low_regen)/ 2 + 1); +#endif + } + inb(EGA_IPSTAT1_REG,&temp_word); + outb(EGA_AC_INDEX_DATA, EGA_PALETTE_ENABLE); /* re-enable video */ +#ifndef PROD + trace("end of video set mode", DUMP_NONE); +#endif +} + +/*( +---------------------------------------------------------------------- + +Function: + v7vga_select_autoswitch_mode() + +Purpose: + Perform the int 10 extended BIOS function 6F - Subfunction 6 + +Input: + BL = autoswitch mode select + BH = enable/disable + +Output: + None + +---------------------------------------------------------------------- +)*/ + +GLOBAL VOID +v7vga_select_autoswitch_mode() +{ + note_entrance0("v7vga_select_autoswitch_mode"); + +/*** + I reckon we shouldn't support this +***/ + setAH(0x2); +} + +/*( +---------------------------------------------------------------------- + +Function: + v7vga_get_memory_configuration() + +Purpose: + Perform the int 10 extended BIOS function 6F - Subfunction 7 + +Input: + None + +Output: + AL = 6Fh + AH = 82h - 2 x 256K blocks of V-RAM video memory + BH = 70h - chip revision 3 + BL = 70h - chip revision 3 + CX = 0 + +---------------------------------------------------------------------- +)*/ + +GLOBAL VOID +v7vga_get_memory_configuration() +{ + note_entrance0("v7vga_get_memory_configuration"); + + setAX(0x826f); + setBX(0x7070); + setCX(0x0); +} + +#endif /* V7VGA */ +#endif /* VGG */ diff --git a/private/mvdm/softpc.new/base/video/vga_mode.c b/private/mvdm/softpc.new/base/video/vga_mode.c new file mode 100644 index 000000000..0120c29fe --- /dev/null +++ b/private/mvdm/softpc.new/base/video/vga_mode.c @@ -0,0 +1,575 @@ +#include "insignia.h" +#include "host_def.h" +/* INSIGNIA (SUB)MODULE SPECIFICATION + ----------------------------- + + + THIS PROGRAM SOURCE FILE IS SUPPLIED IN CONFIDENCE TO THE + CUSTOMER, THE CONTENTS OR DETAILS OF ITS OPERATION MUST + NOT BE DISCLOSED TO ANY OTHER PARTIES WITHOUT THE EXPRESS + AUTHORISATION FROM THE DIRECTORS OF INSIGNIA SOLUTIONS LTD. + +DESIGNER : S.Frost + +REVISION HISTORY : +First version : Feb/Mar 1990. Simon Frost + +SOURCE FILE NAME : vga_mode.c + +PURPOSE : To decide which mode the VGA is in according to + variables set via vga_ports.c and to choose the + appropriate update and paint routines accordingly. + Borrows heavily from ega_mode.c... + +static char SccsID[]="@(#)vga_mode.c 1.35 06/01/95 Copyright Insignia Solutions Ltd."; + + + + +[1.INTERMODULE INTERFACE SPECIFICATION] + +[1.0 INCLUDE FILE NEEDED TO ACCESS THIS INTERFACE FROM OTHER SUBMODULES] + + INCLUDE FILE : ega_mode.gi + +[1.1 INTERMODULE EXPORTS] + + PROCEDURES() : choose_vga_display_mode + + DATA : uses EGA_GRAPH.display_state which is set via vga_ports.c, to + determine what memory organisation the display side is in, and + hence what sort of update and paint routines to use. + +------------------------------------------------------------------------- +[1.2 DATATYPES FOR [1.1] (if not basic C types)] + + STRUCTURES/TYPEDEFS/ENUMS: + +uses enum DISPLAY_STATE which is declared in ega_graph.pi. + +uses EGA_GRAPH structure for global variables set by the ports and + used by the display. + +------------------------------------------------------------------------- +[1.3 INTERMODULE IMPORTS] + (not o/s objects or standard libs) + + PROCEDURES() : vote_vga_mode() + host_set_paint_routine(DISPLAY_MODE) + + DATA : EGA_GRAPH struct. + +------------------------------------------------------------------------- + +[1.4 DESCRIPTION OF INTERMODULE INTERFACE] + +[1.4.1 IMPORTED OBJECTS] + +[1.4.2 EXPORTED OBJECTS] + +========================================================================= +PROCEDURE : choose_vga_display_mode + +PURPOSE : To decide which memory organisation is being used by + the vga, and to pick the best update and paint routines + accordingly. The paint routines are host specific, + and so the memory organisation is indicated by an enum + (called DISPLAY_MODE), describing each sort of memory + organisation. + +PARAMETERS : none + +GLOBALS : uses EGA_GRAPH struct, specially display_state to + decide which mode is being used. + +========================================================================= + + +/*======================================================================= +[3.INTERMODULE INTERFACE DECLARATIONS] +========================================================================= + +[3.1 INTERMODULE IMPORTS] */ + + +#ifndef REAL_VGA +#ifdef VGG + +/* [3.1.1 #INCLUDES] */ + +#include "xt.h" +#include "error.h" +#include "config.h" +#include "gvi.h" +#include "gmi.h" +#include "gfx_upd.h" +#include "egagraph.h" +#include "vgaports.h" +#include "egacpu.h" +#include "egaports.h" +#include "debug.h" +#include "host_gfx.h" + +#ifdef GORE +#include "gore.h" +#endif /* GORE */ + +/* [3.1.2 DECLARATIONS] */ + +/* [3.2 INTERMODULE EXPORTS] */ + +#include "egamode.h" + +#ifdef GISP_SVGA +#include HostHwVgaH +#include "hwvga.h" +#endif /* GISP_SVGA */ + +/* +5.MODULE INTERNALS : (not visible externally, global internally)] + +[5.1 LOCAL DECLARATIONS] */ + +/* [5.1.1 #DEFINES] */ +#ifdef SEGMENTATION +/* + * The following #define specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_VGA.seg" +#endif + +/* [5.1.2 TYPEDEF, STRUCTURE, ENUM DECLARATIONS] */ + +/* [5.1.3 PROCEDURE() DECLARATIONS] */ + +/* +========================================================================= +PROCEDURE : set_up_screen_ptr() + +PURPOSE : Decide which plane the information must come from for displaying + +PARAMETERS : none + +GLOBALS : uses EGA_GRAPH struct, plane_mask to decide which planes are enabled + +========================================================================= +*/ + +LOCAL VOID +set_up_screen_ptr() +{ + if( get_chain4_mode() ) + { + if (all_planes_enabled()) + set_screen_ptr(EGA_plane0123); + else + assert0(NO,"No planes enabled for chain-4 mode\n"); + } + else + if( get_memory_chained() ) + { + if( plane01_enabled() ) + set_screen_ptr(EGA_plane01); + else + if( plane23_enabled() ) + set_screen_ptr(EGA_plane23); + else + assert0(NO,"No planes enabled for chain mode"); + } + else + set_screen_ptr(EGA_planes); +} + +/* ----------------------------------------------------------------------- +[5.2 LOCAL DEFINITIONS] + + [5.2.1 INTERNAL DATA DEFINITIONS */ + +IMPORT DISPLAY_MODE choose_mode[]; + +/* [5.2.2 INTERNAL PROCEDURE DEFINITIONS] */ + +#ifdef GISP_SVGA + extern void mon_text_update(); +#endif /* GISP_SVGA */ + +static void set_update_routine(mode) +DISPLAY_MODE mode; +{ + static int last_height = 200; + + if (last_height != get_screen_height()) { + last_height = get_screen_height(); + } + note_display_state1("VGA set_update_routine(%s)", get_mode_string(mode) ); + +#if defined(NTVDM) && defined(MONITOR) + { + extern void mon_text_update(void); + + switch (mode) + { + case EGA_TEXT_40_SP_WR: + case EGA_TEXT_80_SP_WR: + case CGA_TEXT_40_SP_WR: + case CGA_TEXT_80_SP_WR: + case EGA_TEXT_40_SP: + case EGA_TEXT_80_SP: + case CGA_TEXT_40_SP: + case CGA_TEXT_80_SP: + case EGA_TEXT_40_WR: + case EGA_TEXT_80_WR: + case EGA_TEXT_40: + case EGA_TEXT_80: + case CGA_TEXT_40_WR: + case CGA_TEXT_80_WR: + case CGA_TEXT_40: + case CGA_TEXT_80: + case TEXT_40_FUN: + case TEXT_80_FUN: + set_gfx_update_routines(mon_text_update, SIMPLE_MARKING, + TEXT_SCROLL); + return; + default: + break; + } + + } + +#endif /* MONITOR */ +/* NTVDM monitor: All text monitor cases dealt with. For frozen graphics */ +/* now fall through to do decode to correct paint routines per mode */ + + switch (mode) { + case EGA_TEXT_40_SP_WR: + case EGA_TEXT_80_SP_WR: + case CGA_TEXT_40_SP_WR: + case CGA_TEXT_80_SP_WR: + assert0( is_it_text(), "In text memory mode, but not in alpha mode !!" ); +#ifdef GISP_SVGA + videoInfo.modeType = TEXT; + set_gfx_update_routines( mon_text_update, SIMPLE_MARKING, NO_SCROLL ); +#else /* GISP_SVGA */ + set_gfx_update_routines( ega_wrap_split_text_update, SIMPLE_MARKING, NO_SCROLL ); +#endif /* GISP_SVGA */ + host_update_fonts(); + break; + case EGA_TEXT_40_SP: + case EGA_TEXT_80_SP: + case CGA_TEXT_40_SP: + case CGA_TEXT_80_SP: + assert0( is_it_text(), "In text memory mode, but not in alpha mode !!" ); +#ifdef GISP_SVGA + videoInfo.modeType = TEXT; + set_gfx_update_routines( mon_text_update, SIMPLE_MARKING, NO_SCROLL ); +#else /* GISP_SVGA */ + set_gfx_update_routines( ega_split_text_update, SIMPLE_MARKING, NO_SCROLL ); +#endif /* GISP_SVGA */ + host_update_fonts(); + break; + case EGA_TEXT_40_WR: + case EGA_TEXT_80_WR: + assert0( is_it_text(), "In text memory mode, but not in alpha mode !!" ); +#ifdef GISP_SVGA + videoInfo.modeType = TEXT; + set_gfx_update_routines( mon_text_update, SIMPLE_MARKING, NO_SCROLL ); +#else /* GISP_SVGA */ + set_gfx_update_routines( ega_wrap_text_update, SIMPLE_MARKING, NO_SCROLL ); +#endif /* GISP_SVGA */ + host_update_fonts(); + break; + case EGA_TEXT_40: + case EGA_TEXT_80: + assert0( is_it_text(), "In text memory mode, but not in alpha mode !!" ); +#if defined(NTVDM) && !defined(MONITOR) /* Only get here for NTVDM Riscs */ + { + extern void jazz_text_update(); + set_gfx_update_routines( jazz_text_update, SIMPLE_MARKING, TEXT_SCROLL ); + } +#else +#ifdef GISP_SVGA + videoInfo.modeType = TEXT; + set_gfx_update_routines( mon_text_update, SIMPLE_MARKING, TEXT_SCROLL ); +#else /* GISP_SVGA */ + set_gfx_update_routines( ega_text_update, SIMPLE_MARKING, TEXT_SCROLL ); +#endif /* GISP_SVGA */ + host_update_fonts(); +#endif /* NTVDM */ + break; + case CGA_TEXT_40_WR: + case CGA_TEXT_80_WR: + assert0( is_it_text(), "In text memory mode, but not in alpha mode !!" ); +#ifdef GISP_SVGA + videoInfo.modeType = TEXT; +#endif /* GISP_SVGA */ + set_gfx_update_routines( ega_wrap_text_update, SIMPLE_MARKING, NO_SCROLL ); + host_update_fonts(); + break; + case CGA_TEXT_40: + case CGA_TEXT_80: + assert0( is_it_text(), "In text memory mode, but not in alpha mode !!" ); +#ifdef GISP_SVGA + videoInfo.modeType = TEXT; +#endif /* GISP_SVGA */ + assert1( get_screen_height() == 200, "screen height %d for text mode", get_screen_height() ); + set_gfx_update_routines( text_update, SIMPLE_MARKING, TEXT_SCROLL ); + host_update_fonts(); + break; + case CGA_MED: + assert0( !is_it_text(), "In graphics memory mode, but not in graphics mode !!" ); +#ifdef GISP_SVGA + videoInfo.modeType = GRAPH; + videoInfo.numPlanes = 2; +#endif /* GISP_SVGA */ + set_gfx_update_routines( cga_med_graph_update, CGA_GRAPHICS_MARKING, CGA_GRAPH_SCROLL ); + break; + case CGA_HI: + assert0( !is_it_text(), "In graphics memory mode, but not in graphics mode !!" ); +#ifdef GISP_SVGA + videoInfo.modeType = GRAPH; + videoInfo.numPlanes = 4; +#endif /* GISP_SVGA */ + set_gfx_update_routines( cga_hi_graph_update, CGA_GRAPHICS_MARKING, CGA_GRAPH_SCROLL ); + break; + case EGA_HI_WR: + case EGA_MED_WR: + case EGA_LO_WR: + assert0( !is_it_text(), "In graphics memory mode, but not in graphics mode !!" ); +#ifdef GISP_SVGA + videoInfo.modeType = GRAPH; + videoInfo.numPlanes = 4; +#endif /* GISP_SVGA */ + set_gfx_update_routines( ega_wrap_graph_update, EGA_GRAPHICS_MARKING, NO_SCROLL ); + break; + case EGA_HI: + case EGA_MED: + case EGA_LO: + assert0( !is_it_text(), "In graphics memory mode, but not in graphics mode !!" ); +#ifdef GISP_SVGA + videoInfo.modeType = GRAPH; + videoInfo.numPlanes = 4; +#endif /* GISP_SVGA */ +#ifdef GORE + if (get_256_colour_mode()) + set_gfx_update_routines( process_object_list, EGA_GRAPHICS_MARKING, VGA_GRAPH_SCROLL ); + else + set_gfx_update_routines( process_object_list, EGA_GRAPHICS_MARKING, EGA_GRAPH_SCROLL ); +#else + if (get_256_colour_mode()) + set_gfx_update_routines( vga_graph_update, EGA_GRAPHICS_MARKING, VGA_GRAPH_SCROLL ); + else + set_gfx_update_routines( ega_graph_update, EGA_GRAPHICS_MARKING, EGA_GRAPH_SCROLL ); +#endif /* GORE */ + break; + case EGA_HI_SP_WR: + case EGA_MED_SP_WR: + case EGA_LO_SP_WR: + assert0( !is_it_text(), "In graphics memory mode, but not in graphics mode !!" ); +#ifdef GISP_SVGA + videoInfo.modeType = GRAPH; + videoInfo.numPlanes = 4; +#endif /* GISP_SVGA */ + set_gfx_update_routines( ega_wrap_split_graph_update, EGA_GRAPHICS_MARKING, NO_SCROLL ); + break; + + case EGA_HI_SP: + case EGA_MED_SP: + case EGA_LO_SP: + assert0( !is_it_text(), "In graphics memory mode, but not in graphics mode !!" ); +#ifdef GISP_SVGA + videoInfo.modeType = GRAPH; +#endif /* GISP_SVGA */ + if (get_256_colour_mode()) + set_gfx_update_routines(vga_split_graph_update, + EGA_GRAPHICS_MARKING, NO_SCROLL); + else + set_gfx_update_routines(ega_split_graph_update, + EGA_GRAPHICS_MARKING, NO_SCROLL); + break; + + case TEXT_40_FUN: + case TEXT_80_FUN: + assert1(NO,"Funny memory organisation selected %s", get_mode_string(mode) ); +#ifdef GISP_SVGA + videoInfo.modeType = TEXT; +#endif /* GISP_SVGA */ + do_display_trace("dumping EGA_GRAPH struct ...", dump_EGA_GRAPH()); + set_gfx_update_routines( text_update, SIMPLE_MARKING, NO_SCROLL ); + host_update_fonts(); + break; + case CGA_HI_FUN: + assert1(NO,"Funny memory organisation selected %s", get_mode_string(mode) ); +#ifdef GISP_SVGA + videoInfo.modeType = GRAPH; +#endif /* GISP_SVGA */ + do_display_trace("dumping EGA_GRAPH struct ...", dump_EGA_GRAPH()); + set_gfx_update_routines( cga_hi_graph_update, CGA_GRAPHICS_MARKING, NO_SCROLL ); + break; + case CGA_MED_FUN: + assert1(NO,"Funny memory organisation selected %s", get_mode_string(mode) ); +#ifdef GISP_SVGA + videoInfo.modeType = GRAPH; + videoInfo.numPlanes = 4; +#endif /* GISP_SVGA */ + do_display_trace("dumping EGA_GRAPH struct ...", dump_EGA_GRAPH()); + set_gfx_update_routines( cga_med_graph_update, CGA_GRAPHICS_MARKING, NO_SCROLL ); + break; + case EGA_HI_FUN: + case EGA_MED_FUN: + case EGA_LO_FUN: + assert1(NO,"Funny memory organisation selected %s", get_mode_string(mode) ); +#ifdef GISP_SVGA + videoInfo.modeType = GRAPH; + videoInfo.numPlanes = 4; +#endif /* GISP_SVGA */ + do_display_trace("dumping EGA_GRAPH struct ...", dump_EGA_GRAPH()); +#ifdef GORE + set_gfx_update_routines( process_object_list, EGA_GRAPHICS_MARKING, NO_SCROLL ); +#else + set_gfx_update_routines( ega_graph_update, EGA_GRAPHICS_MARKING, NO_SCROLL ); +#endif /* GORE */ + break; + case DUMMY_FUN: + assert0(NO,"Using the dummy mode!!"); +#ifdef GISP_SVGA + videoInfo.modeType = UNIMP; +#endif /* GISP_SVGA */ + set_gfx_update_routines( dummy_calc, SIMPLE_MARKING, NO_SCROLL ); + break; + default: + assert1(NO,"Bad display mode %d", (int) mode ); +#ifdef GISP_SVGA + videoInfo.modeType = UNIMP; +#endif /* GISP_SVGA */ + break; + } +} + + +/* +7.INTERMODULE INTERFACE IMPLEMENTATION : + +[7.1 INTERMODULE DATA DEFINITIONS] */ + +/* +[7.2 INTERMODULE PROCEDURE DEFINITIONS] */ + + + +boolean choose_vga_display_mode() +{ + DISPLAY_MODE mode; + + note_entrance0("choose vga display mode"); + + /* + * offset_per_line depends upon whether chained addressing is being + * used. This is because we interleave the planes, rather than + * anything the EGA does. + */ + + if( get_chain4_mode() ) + { + set_offset_per_line_recal(get_actual_offset_per_line() << 2); + } + else + if( get_memory_chained() ) + { + set_offset_per_line_recal(get_actual_offset_per_line() << 1); + } + else + { + set_offset_per_line_recal(get_actual_offset_per_line()); + } + + /* + * It is possible that the display hardware will wrap the plane addressing. This occurs + * when the screen_start plus the screen_length are longer than the plane length. + * When in chained mode there is two planes length before wrapping occurs. + * When in chain 4 mode there is 4 planes length before wrapping occurs. + * + * V7VGA: No wrapping can occur with either of the sequential chain variants. + */ + +#ifdef V7VGA + if( !( get_seq_chain4_mode() || get_seq_chain_mode() )) +#endif /* V7VGA */ + if (get_chain4_mode() ) + { + set_screen_can_wrap( (get_screen_start()<<2) + + get_screen_length() > 4*EGA_PLANE_DISP_SIZE ); + } + else + if ( get_memory_chained() ) + { + set_screen_can_wrap( (get_screen_start()<<1) + + get_screen_length() > 2*EGA_PLANE_DISP_SIZE ); + } + else + { + set_screen_can_wrap( get_screen_start() + + get_screen_length() > EGA_PLANE_DISP_SIZE ); + } + + /* + * split screen comes into operation when screen_split is less than screen height + * split screen used is used as part of munge_index. + */ + + set_split_screen_used( get_screen_split() < get_screen_height() ); + + /* + * For the purposes of choosing a mode set up boolean values for chars per line (to help + * select the correct text mode), and screen height (to select EGA resolution). + */ + + set_200_scan_lines( (get_screen_height()/get_pc_pix_height()) == 200 ); + + /* + * Set up the appropriate update routine according to the memory organisation selected + * and return an indication of whether more than 1 plane can be used by the display. + * + * Note that in chained mode plane01 is considered to be one plane. Similarly for plane23 + * + * We have to be careful that a nasty program, such as EGA-PICS, hasn't set up a ridiculously big + * screen size for the CGA modes (presumably caused by us being unlucky when the timer tick goes off). + */ + if(is_it_cga() && get_screen_length() > 0x4000) +#ifdef V7VGA + /* For the 2 & 4 colour modes 63h & 64h */ + mode = EGA_HI; +#else + mode = DUMMY_FUN; +#endif /* V7VGA */ + else + mode = choose_mode[get_munged_index()]; + + /* + * Now set up screen pointers appropriately. + */ + + set_up_screen_ptr(); + + set_update_routine(mode); + + /* + * set up the paint routine to correspond with the memory organisation and the update routine + * (this bit is host specific) + */ + + host_set_paint_routine(mode,get_screen_height()); + + /* + * The screen needs refreshing, because the update and paint routines have changed. + * Indicate to the update routines that the next time they are called, they must update + * the whole screen + */ + + screen_refresh_required(); + return TRUE; +} + +#endif /* EGG */ +#endif /* REAL_VGA */ diff --git a/private/mvdm/softpc.new/base/video/vga_prts.c b/private/mvdm/softpc.new/base/video/vga_prts.c new file mode 100644 index 000000000..29c86e4e1 --- /dev/null +++ b/private/mvdm/softpc.new/base/video/vga_prts.c @@ -0,0 +1,3315 @@ +#include "insignia.h" +#include "host_def.h" +/* INSIGNIA (SUB)MODULE SPECIFICATION + ----------------------------- + + + THIS PROGRAM SOURCE FILE IS SUPPLIED IN CONFIDENCE TO THE + CUSTOMER, THE CONTENTS OR DETAILS OF ITS OPERATION MUST + NOT BE DISCLOSED TO ANY OTHER PARTIES WITHOUT THE EXPRESS + AUTHORISATION FROM THE DIRECTORS OF INSIGNIA SOLUTIONS LTD. + +DOCUMENT : name and number + +RELATED DOCS : include all relevant references + +DESIGNER : + +REVISION HISTORY : +First version : February 1990, S. Frost + +SUBMODULE NAME : vga + +SOURCE FILE NAME : vga_ports.c + +PURPOSE : emulation of VGA registers (ports). + Calls lower levels of the VGA emulation (or EGA + emulation) to do the real work. + +SccsID[]="@(#)vga_ports.c 1.67 07/18/94 Copyright Insignia Solutions Ltd."; + + +[1.INTERMODULE INTERFACE SPECIFICATION] + +[1.0 INCLUDE FILE NEEDED TO ACCESS THIS INTERFACE FROM OTHER SUBMODULES] + + INCLUDE FILE : + +[1.1 INTERMODULE EXPORTS] + + PROCEDURES() : + VOID vga_init() + VOID vga_term() + VOID vga_seq_inb() + VOID vga_crtc_outb() + VOID vga_crtc_inb() + VOID vga_gc_outb() + VOID vga_gc_inb() + VOID vga_ac_outb() + VOID vga_ac_inb() + VOID vga_misc_outb() + VOID vga_misc_inb() + VOID vga_feat_outb() + VOID vga_feat_inb() + VOID vga_ipstat0_inb() + VOID vga_dac_outb() + VOID vga_dac_inb() + LONG vga_get_line_compare() (* hunter only *) + LONG vga_get_max_scan_lines() (* hunter only *) + DATA : + +------------------------------------------------------------------------- +[1.2 DATATYPES FOR [1.1] (if not basic C types)] +------------------------------------------------------------------------- +[1.3 INTERMODULE IMPORTS] + (not o/s objects or standard libs) + + PROCEDURES() : + io_define_inb + io_define_outb + io_redefine_inb + io_redefine_outb + io_connect_port + io_disconnect_port + flag_mode_change_required() + set_index_state() + in_index_state() + + DATA : give name, and source module name + +------------------------------------------------------------------------- + +[1.4 DESCRIPTION OF INTERMODULE INTERFACE] + +[1.4.1 IMPORTED OBJECTS] + +DATA OBJECTS : specify in following procedure descriptions + how these are accessed (read/modified) + +FILES ACCESSED : NONE + +DEVICES ACCESSED : NONE + +SIGNALS CAUGHT : NONE + +SIGNALS ISSUED : NONE + + +[1.4.2 EXPORTED OBJECTS] +========================================================================= +PROCEDURE : vga_init + +PURPOSE : initialize VGA. + +PARAMETERS : none + +GLOBALS : none + +DESCRIPTION : establish vga ports. + initialize vga code to sensible state. + +ERROR INDICATIONS : none. + +ERROR RECOVERY : none. +========================================================================= + +========================================================================= +PROCEDURE : vga_term + +PURPOSE : terminate VGA. + +PARAMETERS : none + +GLOBALS : none + +DESCRIPTION : remove vga ports. + free up allocated memory etc. + +ERROR INDICATIONS : none. + +ERROR RECOVERY : none. +========================================================================= + +========================================================================= +PROCEDURE : vga_seq_inb((io_addr) port, (half_word) *value) + +PURPOSE : deal with an attempt to read a byte from one of the + sequencers's register ports, and gets info from + appropriate vga sub-modules. + +PARAMETERS + port : port address written to. + value : pointer to memory byte where value read from port should go. + +GLOBALS : none +DESCRIPTION : +ERROR INDICATIONS : none. +ERROR RECOVERY : none. +========================================================================= + +========================================================================= +PROCEDURE : vga_crtc_outb((io_addr) port, (half_word) value) + +PURPOSE : deal with bytes written to the sequencer chip's ports, and pass + appropriate info to vga sub-modules. + +PARAMETERS + port : port address written to. + value : the byte written to the port. + +GLOBALS : none + +DESCRIPTION : + +ERROR INDICATIONS : none. + +ERROR RECOVERY : none. +========================================================================= + +========================================================================= +PROCEDURE : vga_crtc_inb((io_addr) port, (half_word) *value) + +PURPOSE : deal with an attempt to read a byte from one of the crtc's register ports, + and gets info from appropriate vga sub-modules. + +PARAMETERS + port : port address written to. + value : pointer to memory byte where value read from port should go. + +GLOBALS : none + +DESCRIPTION : + +ERROR INDICATIONS : none. + +ERROR RECOVERY : none. +========================================================================= + +========================================================================= +PROCEDURE : vga_gc_outb((io_addr) port, (half_word) value) + +PURPOSE : deal with bytes written to the graphics controller chip's ports, + and pass appropriate info to ega sub-modules. + +PARAMETERS + port : port address written to. + value : the byte written to the port. + +GLOBALS : none + +DESCRIPTION : + +ERROR INDICATIONS : none. + +ERROR RECOVERY : none. +========================================================================= + +========================================================================= +PROCEDURE : vga_gc_inb((io_addr) port, (half_word) *value) + +PURPOSE : deal with an attempt to read a byte from one of the + graphics controller's register ports, and gets info from + appropriate vga sub-modules. + +PARAMETERS + port : port address written to. + value : pointer to memory byte where value read from port should go. + +GLOBALS : none +DESCRIPTION : +ERROR INDICATIONS : none. +ERROR RECOVERY : none. +========================================================================= + +========================================================================= +PROCEDURE : vga_ac_outb((io_addr) port, (half_word) value) + +PURPOSE : deal with bytes written to the attribute controller chip's ports, and pass + appropriate info to vga sub-modules. + +PARAMETERS + port : port address written to. + value : the byte written to the port. + +GLOBALS : none + +DESCRIPTION : + +ERROR INDICATIONS : none. + +ERROR RECOVERY : none. +========================================================================= + +========================================================================= +PROCEDURE : vga_ac_inb((io_addr) port, (half_word) *value) + +PURPOSE : deal with an attempt to read a byte from one of the + attribute controller's register ports, and gets info + from appropriate vga sub-modules. + +PARAMETERS + port : port address written to. + value : pointer to memory byte where value read from port should go. + +GLOBALS : none +DESCRIPTION : +ERROR INDICATIONS : none. +ERROR RECOVERY : none. +========================================================================= +========================================================================= +PROCEDURE : vga_misc_outb((io_addr) port, (half_word) value) + +PURPOSE : deal with bytes written to the miscellaneous register's port, and pass + appropriate info to ega sub-modules. + +PARAMETERS + port : port address written to. + value : the byte written to the port. + +GLOBALS : none + +DESCRIPTION : + +ERROR INDICATIONS : none. + +ERROR RECOVERY : none. +========================================================================= + +========================================================================= +PROCEDURE : vga_ipstat0_inb((io_addr) port, (half_word) *value) + +PURPOSE : deal with an attempt to read a byte from the input status register 0 port, + and gets info from appropriate ega sub-modules. + +PARAMETERS + port : port address written to. + value : pointer to memory byte where value read from port should go. + +GLOBALS : none + +DESCRIPTION : + +ERROR INDICATIONS : none. + +ERROR RECOVERY : none. +========================================================================= + +========================================================================= +PROCEDURE : vga_dac_inb((io_addr) port, (half_word) *value) + +PURPOSE : deal with an attempt to read a byte from one of the + DAC's register ports, and gets info from appropriate + vga sub-modules. + +PARAMETERS + port : port address written to. + value : pointer to memory byte where value read from port should go. + +GLOBALS : none +DESCRIPTION : +ERROR INDICATIONS : none. +ERROR RECOVERY : none. +========================================================================= +========================================================================= +PROCEDURE : vga_dac_outb((io_addr) port, (half_word) value) + +PURPOSE : deal with bytes written to one of the DAC register + ports, and pass appropriate info to ega sub-modules. + +PARAMETERS + port : port address written to. + value : the byte written to the port. + +GLOBALS : none +DESCRIPTION : +ERROR INDICATIONS : none. +ERROR RECOVERY : none. +========================================================================= + + +/*======================================================================= +[3.INTERMODULE INTERFACE DECLARATIONS] +========================================================================= + +[3.1 INTERMODULE IMPORTS] */ + +/* [3.1.1 #INCLUDES] */ + +#ifndef REAL_VGA /* ega port handling moved to host for REAL_VGA */ +#ifdef VGG + +#include "xt.h" +#include CpuH +#include "debug.h" +#include "timer.h" +/* both timer.h & gvi.h define HIGH & LOW - ensure we get gvi definitions */ +#undef HIGH +#undef LOW +#include "sas.h" +#include "gmi.h" +#include "gvi.h" +#include "ios.h" +#include "ica.h" +#include "gfx_upd.h" +#include "egacpu.h" +#include "egagraph.h" +#include "video.h" +#include "egaread.h" +#include "egamode.h" +#include "vgaports.h" +#include "error.h" +#include "config.h" + +#include "host_gfx.h" + +/* [3.1.2 DECLARATIONS] */ + +/* [3.2 INTERMODULE EXPORTS] */ + +#include "egaports.h" + +#ifdef GISP_SVGA +#include "hwvgaio.h" +#endif /* GISP_SVGA */ + +/* +5.MODULE INTERNALS : (not visible externally, global internally)] + +[5.1 LOCAL DECLARATIONS] */ + +VOID vote_vga_mode IPT0(); + +/* [5.1.1 #DEFINES] */ +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_VGA.seg" +#endif + + +/* [5.1.2 TYPEDEF, STRUCTURE, ENUM DECLARATIONS] */ +#ifdef V7VGA +GLOBAL struct extensions_controller extensions_controller; +#endif /* V7VGA */ +GLOBAL struct crt_controller crt_controller; +GLOBAL struct sequencer sequencer; +GLOBAL struct attribute_controller attribute_controller; +GLOBAL struct graphics_controller graphics_controller; + +/* Registers not contained in an LSI device */ + +GLOBAL MISC_OUTPUT_REG miscellaneous_output_register; + +GLOBAL FEAT_CONT_REG feature_control_register; + +GLOBAL INPUT_STAT_REG0 input_status_register_zero; + +GLOBAL INPUT_STAT_REG1 input_status_register_one; + +typedef enum { DAC_RED, DAC_GREEN, DAC_BLUE } RGB; +LOCAL RGB DAC_rgb_state = DAC_RED; +LOCAL byte DAC_wr_addr; +LOCAL byte DAC_rd_addr; +LOCAL byte DAC_state; + +/* 31.3.92 MG For windows 3.1 we must emulate the DAC correctly, storing + 6 or 8 bit data depending on the value in the video-7 C1 extension + register. */ + +GLOBAL byte DAC_data_mask=0x3f; +#ifdef V7VGA +GLOBAL int DAC_data_bits=6; +#endif + +byte crtc_0_7_protect = FALSE; +#ifdef V7VGA +byte crtc_0_8_protect = FALSE; +byte crtc_9_b_protect = FALSE; +byte crtc_c_protect = FALSE; +#endif /* V7VGA */ + +IMPORT half_word bg_col_mask; /* Used to work out the background colour */ + +VOID vga_ipstat1_inb IPT2(io_addr,port,half_word *,value); + +/* Declarations for new sequencer code */ +VOID vga_seq_outb_index IPT2(io_addr,port,half_word,value); +VOID vga_seq_clock IPT2(io_addr,port,half_word,value); +VOID vga_seq_char_map IPT2(io_addr,port,half_word,value); +VOID vga_seq_mem_mode IPT2(io_addr,port,half_word,value); +#ifdef V7VGA +IMPORT VOID vga_seq_extn_control IPT2(io_addr,port,half_word,value); +IMPORT VOID vga_extn_outb IPT2(io_addr,port,half_word,value); +IMPORT VOID vga_extn_inb IPT2(io_addr,port,half_word *,value); +#endif /* V7VGA */ +VOID vga_seq_inb IPT2(io_addr,port,half_word *,value); +/* Same as EGA */ +VOID vga_seq_map_mask IPT2(io_addr,port,half_word,value); + +IMPORT VOID (*ega_seq_regs[]) IPT2(io_addr, port, half_word, value); +IMPORT VOID ega_seq_reset IPT2(io_addr,port,half_word,value); +IMPORT VOID ega_seq_clock IPT2(io_addr,port,half_word,value); +IMPORT VOID ega_seq_map_mask IPT2(io_addr,port,half_word,value); +IMPORT VOID ega_seq_char_map IPT2(io_addr,port,half_word,value); +IMPORT VOID ega_seq_mem_mode IPT2(io_addr,port,half_word,value); + +/* Declarations for VGA graphics controller code */ +/* VGA differing versions */ +VOID vga_gc_mode IPT2(io_addr,port,half_word,value); +VOID vga_gc_inb IPT2(io_addr,port,half_word *,value); +VOID vga_gc_outb IPT2(io_addr,port,half_word,value); +/* Same as EGA but needed as static struct has changed - shame */ +VOID vga_gc_outb_index IPT2(io_addr,port,half_word,value); +VOID vga_gc_outw IPT2(io_addr,port,word,value); +VOID vga_gc_set_reset IPT2(io_addr,port,half_word,value); +VOID vga_gc_enable_set IPT2(io_addr,port,half_word,value); +VOID vga_gc_compare IPT2(io_addr,port,half_word,value); +VOID vga_gc_rotate IPT2(io_addr,port,half_word,value); +VOID vga_gc_read_map IPT2(io_addr,port,half_word,value); +VOID vga_gc_misc IPT2(io_addr,port,half_word,value); +VOID vga_gc_dont_care IPT2(io_addr,port,half_word,value); +VOID vga_gc_mask IPT2(io_addr,port,half_word,value); +VOID vga_gc_mask_ff IPT2(io_addr,port,half_word,value); + + +/* extern decls to put redirection array back */ +IMPORT VOID (*ega_gc_regs[]) IPT2(io_addr,port,half_word,value); +#ifndef A2CPU +IMPORT VOID (*ega_gc_regs_cpu[]) IPT2(io_addr,port,half_word,value); +#endif +IMPORT VOID ega_gc_set_reset IPT2(io_addr,port,half_word,value); +IMPORT VOID ega_gc_enable_set IPT2(io_addr,port,half_word,value); +IMPORT VOID ega_gc_compare IPT2(io_addr,port,half_word,value); +IMPORT VOID ega_gc_rotate IPT2(io_addr,port,half_word,value); +IMPORT VOID ega_gc_read_map IPT2(io_addr,port,half_word,value); +IMPORT VOID ega_gc_mode IPT2(io_addr,port,half_word,value); +IMPORT VOID ega_gc_misc IPT2(io_addr,port,half_word,value); +IMPORT VOID ega_gc_set_reset IPT2(io_addr,port,half_word,value); +IMPORT VOID ega_gc_dont_care IPT2(io_addr,port,half_word,value); +IMPORT VOID ega_gc_mask_ff IPT2(io_addr,port,half_word,value); + +IMPORT VOID _vga_gc_outb_index IPT2(io_addr,port,half_word,value); +IMPORT VOID _ega_gc_outb_mask IPT2(io_addr,port,half_word,value); +IMPORT VOID _ega_gc_outb_mask_ff IPT2(io_addr,port,half_word,value); + +/* Declarations for VGA DAC code */ +VOID vga_dac_inb IPT2(io_addr,port,half_word *,value); +VOID vga_dac_outb IPT2(io_addr,port,half_word,value); +VOID vga_dac_data_outb IPT2(io_addr,port,half_word,value); +VOID vga_dac_data_inb IPT2(io_addr,port,half_word *,value); + +VOID vga_ac_inb IPT2(io_addr,port,half_word *,value); +VOID vga_ac_outb IPT2(io_addr,port,half_word,value); +VOID vga_crtc_inb IPT2(io_addr,port,half_word *,value); +VOID vga_crtc_outb IPT2(io_addr,port,half_word,value); +VOID vga_misc_outb IPT2(io_addr,port,half_word,value); +VOID vga_misc_inb IPT2(io_addr,port,half_word *,value); +VOID vga_feat_outb IPT2(io_addr,port,half_word,value); +VOID vga_feat_inb IPT2(io_addr,port,half_word *,value); +VOID vga_ipstat0_inb IPT2(io_addr,port,half_word *,value); +/* [5.2.2 INTERNAL PROCEDURE DEFINITIONS] */ + +/* copy of ega routines needed to access correct copy of structs */ +LOCAL VOID do_chain_majority_decision IFN0() +{ + SAVED SHORT current_votes=0; + SHORT new_votes; + + new_votes = sequencer.memory_mode.as_bfld.not_odd_or_even ? 0 : 1 ; /* 0 - chained */ + new_votes += graphics_controller.mode.as_bfld.odd_or_even ; /* 1 - chained */ + new_votes += graphics_controller.miscellaneous.as_bfld.odd_or_even ; /* 1 - chained */ + + if(( new_votes == 1 ) && ( current_votes > 1 ) && ( EGA_CPU.chain != CHAIN4 )) + { + /* + * Transition from chained to unchained + */ + + EGA_CPU.chain = UNCHAINED; + setVideochain(EGA_CPU.chain); + ega_read_routines_update(); + ega_write_routines_update(CHAINED); + set_memory_chained(NO); + flag_mode_change_required(); + } + else + { + if(( new_votes > 1 ) && ( current_votes == 1 )) + { + /* + * Transition from unchained to chained + */ + + EGA_CPU.chain = CHAIN2; + setVideochain(EGA_CPU.chain); + ega_read_routines_update(); + ega_write_routines_update(CHAINED); + set_memory_chained(YES); + flag_mode_change_required(); + } + } + + current_votes = new_votes; +} + +#ifdef NTVDM +/* + * NTVDM uses do_new_cursor() to sync the emulation. + */ +GLOBAL VOID do_new_cursor IFN0() +#else +LOCAL VOID do_new_cursor IFN0() +#endif +{ + + note_entrance0("do_new_cursor()"); + + if (crt_controller.cursor_start.as_bfld.cursor_start >= get_char_height() ) { + note_entrance0("No cursor"); + set_cursor_visible(FALSE); + host_cursor_size_changed(crt_controller.cursor_start.as_bfld.cursor_start | 0x20, + crt_controller.cursor_end.as_bfld.cursor_end); + } + else if (crt_controller.cursor_end.as_bfld.cursor_end == 0) { + note_entrance0("cursor from start to bum"); + set_cursor_start1(0); + set_cursor_height1(0); + set_cursor_start(crt_controller.cursor_start.as_bfld.cursor_start); + set_cursor_height(get_char_height() - get_cursor_start()); + set_cursor_visible(TRUE); + host_cursor_size_changed(crt_controller.cursor_start.as_bfld.cursor_start, + crt_controller.cursor_end.as_bfld.cursor_end); + } + else if (crt_controller.cursor_end.as_bfld.cursor_end < crt_controller.cursor_start.as_bfld.cursor_start) { + note_entrance0("2 cursors"); + set_cursor_start1(0); + set_cursor_height1(crt_controller.cursor_end.as_bfld.cursor_end); + set_cursor_start(crt_controller.cursor_start.as_bfld.cursor_start); + set_cursor_height(get_char_height() - get_cursor_start()); + set_cursor_visible(TRUE); + host_cursor_size_changed(crt_controller.cursor_start.as_bfld.cursor_start, + crt_controller.cursor_end.as_bfld.cursor_end); + } + else if (crt_controller.cursor_end.as_bfld.cursor_end == crt_controller.cursor_start.as_bfld.cursor_start) { + note_entrance0("One line cursor"); + set_cursor_start(crt_controller.cursor_start.as_bfld.cursor_start); + set_cursor_height(1); + set_cursor_start1(0); + set_cursor_height1(0); + set_cursor_visible(TRUE); + host_cursor_size_changed(crt_controller.cursor_start.as_bfld.cursor_start, + crt_controller.cursor_end.as_bfld.cursor_end); + } + else if (crt_controller.cursor_end.as_bfld.cursor_end - 1 >= get_char_height()) { + note_entrance0("block cursor"); + set_cursor_start(0); + set_cursor_height(get_char_height()); + set_cursor_start1(0); + set_cursor_height1(0); + set_cursor_visible(TRUE); + host_cursor_size_changed(crt_controller.cursor_start.as_bfld.cursor_start, + crt_controller.cursor_end.as_bfld.cursor_end); + } + else { + assert2(((crt_controller.cursor_end.as_bfld.cursor_end - 1) >= crt_controller.cursor_start.as_bfld.cursor_start), + "cursor values do not match default set Start %d, End %d", + crt_controller.cursor_end.as_bfld.cursor_end, + crt_controller.cursor_start.as_bfld.cursor_start); + note_entrance0("normal cursor"); + set_cursor_start(crt_controller.cursor_start.as_bfld.cursor_start); + set_cursor_height(crt_controller.cursor_end.as_bfld.cursor_end - crt_controller.cursor_start.as_bfld.cursor_start); + set_cursor_start1(0); + set_cursor_height1(0); + set_cursor_visible(TRUE); + host_cursor_size_changed(crt_controller.cursor_start.as_bfld.cursor_start, + crt_controller.cursor_end.as_bfld.cursor_end); + } + + if(( get_cur_y() < 0 ) || + ((( get_cur_y() + 1 ) * get_char_height()) > get_screen_height() )) + { + set_cursor_visible( FALSE ); + } + + base_cursor_shape_changed(); +} +/* +7.INTERMODULE INTERFACE IMPLEMENTATION : + +/* +[7.1 INTERMODULE DATA DEFINITIONS] */ + +PC_palette *DAC; + +/* +[7.2 INTERMODULE PROCEDURE DEFINITIONS] */ + +GLOBAL UTINY *vga_gc_outb_index_addr; + +GLOBAL VOID vga_init IFN0() +{ + note_entrance0("vga_init"); + /* + * Define sequencer's ports + */ + + ega_seq_regs[1] = FAST_FUNC_ADDR(vga_seq_clock); + ega_seq_regs[2] = FAST_FUNC_ADDR(vga_seq_map_mask); + ega_seq_regs[3] = FAST_FUNC_ADDR(vga_seq_char_map); + ega_seq_regs[4] = FAST_FUNC_ADDR(vga_seq_mem_mode); +#ifdef V7VGA + ega_seq_regs[6] = vga_seq_extn_control; +#endif /* V7VGA */ + + io_define_outb(EGA_SEQ_ADAP_INDEX,vga_seq_outb_index); + io_define_outb(EGA_SEQ_ADAP_DATA,ega_seq_reset); + io_define_inb(EGA_SEQ_ADAP_INDEX,vga_seq_inb); + io_define_inb(EGA_SEQ_ADAP_DATA,vga_seq_inb); + io_connect_port(EGA_SEQ_INDEX,EGA_SEQ_ADAP_INDEX,IO_READ_WRITE); + io_connect_port(EGA_SEQ_DATA,EGA_SEQ_ADAP_DATA,IO_READ_WRITE); + + /* + * Define CRTC's ports + */ + + io_define_outb(EGA_CRTC_ADAPTOR,vga_crtc_outb); + io_define_inb(EGA_CRTC_ADAPTOR,vga_crtc_inb); + io_connect_port(EGA_CRTC_INDEX,EGA_CRTC_ADAPTOR,IO_READ_WRITE); + io_connect_port(EGA_CRTC_DATA,EGA_CRTC_ADAPTOR,IO_READ_WRITE); + + /* + * Define Graphics Controller's ports + */ + + ega_gc_regs[0] = FAST_FUNC_ADDR(vga_gc_set_reset); + ega_gc_regs[1] = FAST_FUNC_ADDR(vga_gc_enable_set); + ega_gc_regs[2] = FAST_FUNC_ADDR(vga_gc_compare); + ega_gc_regs[3] = FAST_FUNC_ADDR(vga_gc_rotate); + ega_gc_regs[4] = FAST_FUNC_ADDR(vga_gc_read_map); + ega_gc_regs[5] = FAST_FUNC_ADDR(vga_gc_mode); + ega_gc_regs[6] = FAST_FUNC_ADDR(vga_gc_misc); + ega_gc_regs[7] = FAST_FUNC_ADDR(vga_gc_dont_care); + ega_gc_regs[8] = FAST_FUNC_ADDR(vga_gc_mask_ff); + + vga_gc_outb_index_addr = (UTINY *) &graphics_controller.address; + + io_define_out_routines(EGA_GC_ADAP_INDEX, vga_gc_outb_index, vga_gc_outw, NULL, NULL); + +#ifndef CPU_40_STYLE /* TEMPORARY */ + Cpu_define_outb(EGA_GC_ADAP_INDEX,_vga_gc_outb_index); +#endif + + io_define_outb(EGA_GC_ADAP_DATA,ega_gc_set_reset); + Cpu_define_outb(EGA_GC_ADAP_DATA,NULL); +#ifndef A2CPU + ega_gc_regs_cpu[8] = NULL; +#endif + + io_define_inb(EGA_GC_ADAP_INDEX,vga_gc_inb); + io_define_inb(EGA_GC_ADAP_DATA,vga_gc_inb); + + io_connect_port(EGA_GC_INDEX,EGA_GC_ADAP_INDEX,IO_READ_WRITE); + io_connect_port(EGA_GC_DATA,EGA_GC_ADAP_DATA,IO_READ_WRITE); + + /* + * Define Attribute controller's ports + */ + + io_define_outb(EGA_AC_ADAPTOR,vga_ac_outb); + io_define_inb(EGA_AC_ADAPTOR,vga_ac_inb); + io_connect_port(EGA_AC_INDEX_DATA,EGA_AC_ADAPTOR,IO_READ_WRITE); + io_connect_port(EGA_AC_SECRET,EGA_AC_ADAPTOR,IO_READ); + + /* + * Define Miscellaneous register's port + */ + + io_define_outb(EGA_MISC_ADAPTOR,vga_misc_outb); + io_define_inb(EGA_MISC_ADAPTOR,vga_misc_inb); + io_connect_port(EGA_MISC_REG,EGA_MISC_ADAPTOR,IO_WRITE); + io_connect_port(VGA_MISC_READ_REG,EGA_MISC_ADAPTOR,IO_READ); + + /* + * Define Feature controller's port + */ + + io_define_outb(EGA_FEAT_ADAPTOR,vga_feat_outb); + io_define_inb(EGA_FEAT_ADAPTOR,vga_feat_inb); + io_connect_port(EGA_FEAT_REG,EGA_FEAT_ADAPTOR,IO_WRITE); + io_connect_port(VGA_FEAT_READ_REG,EGA_FEAT_ADAPTOR,IO_READ); + + /* + * Define Input Status Register 0 port + */ + + io_define_inb(EGA_IPSTAT0_ADAPTOR,vga_ipstat0_inb); + io_connect_port(EGA_IPSTAT0_REG,EGA_IPSTAT0_ADAPTOR,IO_READ); + + /* + * Define Input Status Register 1 port + */ + + io_define_inb(EGA_IPSTAT1_ADAPTOR,vga_ipstat1_inb); + io_connect_port(EGA_IPSTAT1_REG,EGA_IPSTAT1_ADAPTOR,IO_READ); + + /* + * Define VGA DAC register port + */ + io_define_inb(VGA_DAC_INDEX_PORT,vga_dac_inb); + io_define_outb(VGA_DAC_INDEX_PORT,vga_dac_outb); + io_connect_port(VGA_DAC_MASK,VGA_DAC_INDEX_PORT,IO_READ_WRITE); + io_connect_port(VGA_DAC_RADDR,VGA_DAC_INDEX_PORT,IO_READ_WRITE); + io_connect_port(VGA_DAC_WADDR,VGA_DAC_INDEX_PORT,IO_READ_WRITE); + io_define_inb(VGA_DAC_DATA_PORT,vga_dac_data_inb); + io_define_outb(VGA_DAC_DATA_PORT,vga_dac_data_outb); + io_connect_port(VGA_DAC_DATA,VGA_DAC_DATA_PORT,IO_READ_WRITE); + + /* + * Initialise internals of VGA + * +++++++++++++++++++++++++++ + */ + + choose_display_mode = choose_vga_display_mode; + + miscellaneous_output_register.as.abyte = 0; + + set_pc_pix_height(1); /* set by bit 7 of the crtc max scanline reg */ + set_host_pix_height(1); + + /* Initialize address map */ + + graphics_controller.miscellaneous.as.abyte = 0; + graphics_controller.read_map_select.as_bfld.map_select = 0; + + /* Looking for bright white */ + + graphics_controller.color_compare.as_bfld.color_compare = 0xf; + + /* All planes significant */ + + graphics_controller.color_dont_care.as_bfld.color_dont_care = 0xf; + + /* Initialise palette source */ + + attribute_controller.address.as_bfld.palette_address_source = 1; + + /* Initialise crtc screen height fields and set screen height to be consistent */ + + crt_controller.vertical_display_enable_end = 0; + crt_controller.crtc_overflow.as_bfld.vertical_display_enab_end_bit_8 = 0; + crt_controller.crtc_overflow.as_bfld.vertical_display_enab_end_bit_9 = 0; + /* JOKER: Avoid video BIOS dividing by zero.. */ + crt_controller.horizontal_display_end = 400; + set_screen_height(0); + + init_vga_globals(); + EGA_CPU.fun_or_protection = 1; /* assume complicated until we know it's easy */ + + setVideobit_prot_mask(0xffffffff); + +#ifdef V7VGA + /* Initialise V7VGA Extensions Registers */ + extensions_controller.pointer_pattern = 0xff; + extensions_controller.clock_select.as.abyte = 0; + extensions_controller.cursor_attrs.as.abyte = 0; + extensions_controller.emulation_control.as.abyte = 0; + extensions_controller.masked_write_control.as_bfld.masked_write_enable = 0; + extensions_controller.ram_bank_select.as.abyte = 0; + extensions_controller.clock_control.as.abyte &= 0xe4; + extensions_controller.page_select.as.abyte = 0; + extensions_controller.compatibility_control.as.abyte &= 0x2; + extensions_controller.timing_select.as.abyte = 0; + extensions_controller.fg_bg_control.as.abyte &= 0xf3; + extensions_controller.interface_control.as.abyte &= 0xe0; + extensions_controller.foreground_latch_1 = 0; + + /* 31.3.92 MG Default to six-bit palette */ + + extensions_controller.dac_control.as.abyte=0; + DAC_data_bits=6; +#endif /* V7VGA */ + DAC_data_mask=0x3f; + + ega_write_init(); + ega_read_init(); + ega_mode_init(); + + /* + * Some parts of input status register always return 1, so set fields accordingly + */ + input_status_register_zero.as.abyte = 0x70 ; + + /* + * set up some variables to get us going (They may have to be changed in the fullness of time) + */ + + gvi_pc_low_regen = CGA_REGEN_START; + gvi_pc_high_regen = CGA_REGEN_END; + + set_pix_width(1); + set_pix_char_width(8); + set_display_disabled(FALSE); + + set_char_height(8); +#ifdef V7VGA + set_screen_limit(0x20000); +#else + set_screen_limit(0x8000); +#endif /* V7VGA */ + set_screen_start(0); + set_word_addressing(YES); + set_actual_offset_per_line(80); + set_offset_per_line(160); /* chained */ + set_horiz_total(80); /* calc screen params from this and prev 3 */ +#ifdef NTVDM + set_screen_split(0x3FF); /* 10 bits for VGA line compare register */ +#else + set_screen_split(511); /* make sure there is no split screen to start with ! */ +#endif + + set_prim_font_index(0); + set_sec_font_index(0); + + set_regen_ptr(0,EGA_planes); + + /* prevent copyright message mysteriously disappearing */ + timer_video_enabled = TRUE; + +} + +GLOBAL VOID vga_term IFN0() +{ +SHORT index; + + note_entrance0("vga_term"); + + /* + * Disconnect sequencer's ports + */ + + ega_seq_regs[1] = FAST_FUNC_ADDR(ega_seq_clock); + ega_seq_regs[2] = FAST_FUNC_ADDR(ega_seq_map_mask); + ega_seq_regs[3] = FAST_FUNC_ADDR(ega_seq_char_map); + ega_seq_regs[4] = FAST_FUNC_ADDR(ega_seq_mem_mode); + io_disconnect_port(EGA_SEQ_INDEX,EGA_SEQ_ADAP_INDEX); + io_disconnect_port(EGA_SEQ_DATA,EGA_SEQ_ADAP_DATA); + + /* + * Disconnect CRTC's ports + */ + + io_disconnect_port(EGA_CRTC_INDEX,EGA_CRTC_ADAPTOR); + io_disconnect_port(EGA_CRTC_DATA,EGA_CRTC_ADAPTOR); + + /* + * Disconnect Graphics Controller's ports + */ + + ega_gc_regs[0] = FAST_FUNC_ADDR(ega_gc_set_reset); + ega_gc_regs[1] = FAST_FUNC_ADDR(ega_gc_enable_set); + ega_gc_regs[2] = FAST_FUNC_ADDR(ega_gc_compare); + ega_gc_regs[3] = FAST_FUNC_ADDR(ega_gc_rotate); + ega_gc_regs[4] = FAST_FUNC_ADDR(ega_gc_read_map); + ega_gc_regs[5] = FAST_FUNC_ADDR(ega_gc_mode); + ega_gc_regs[6] = FAST_FUNC_ADDR(ega_gc_misc); + ega_gc_regs[7] = FAST_FUNC_ADDR(ega_gc_dont_care); + ega_gc_regs[8] = FAST_FUNC_ADDR(ega_gc_mask_ff); + io_disconnect_port(EGA_GC_INDEX,EGA_GC_ADAP_INDEX); + io_disconnect_port(EGA_GC_DATA,EGA_GC_ADAP_DATA); + + /* + * Disconnect Attribute controller's ports + */ + + io_disconnect_port(EGA_AC_INDEX_DATA,EGA_AC_ADAPTOR); + io_disconnect_port(EGA_AC_SECRET,EGA_AC_ADAPTOR); + + /* + * Disconnect Miscellaneous register's port + */ + + io_disconnect_port(EGA_MISC_REG,EGA_MISC_ADAPTOR); + io_disconnect_port(VGA_MISC_READ_REG,EGA_MISC_ADAPTOR); + + /* + * Disconnect Feature controller port + */ + + io_disconnect_port(EGA_FEAT_REG,EGA_MISC_ADAPTOR); + io_disconnect_port(VGA_FEAT_READ_REG,EGA_MISC_ADAPTOR); + + /* + * Disconnect Input Status Register 0 port + */ + + io_disconnect_port(EGA_IPSTAT0_REG,EGA_IPSTAT0_ADAPTOR); + + /* + * Disconnect Input Status Register 1 port + */ + + io_disconnect_port(EGA_IPSTAT1_REG,EGA_IPSTAT1_ADAPTOR); + + /* + * Disconnect DAC ports + */ + + io_disconnect_port(VGA_DAC_MASK,VGA_DAC_INDEX_PORT); + io_disconnect_port(VGA_DAC_RADDR,VGA_DAC_INDEX_PORT); + io_disconnect_port(VGA_DAC_WADDR,VGA_DAC_INDEX_PORT); + io_disconnect_port(VGA_DAC_DATA,VGA_DAC_DATA_PORT); + + /* + * Free internals of VGA + */ + + /* free the font files */ + for (index = 0; index < MAX_NUM_FONTS; index++) + host_free_font(index); + + EGA_CPU.chain = UNCHAINED; + setVideochain(EGA_CPU.chain); + set_chain4_mode(NO); + EGA_CPU.doubleword = FALSE; + set_doubleword_mode(NO); + set_graph_shift_reg(NO); + set_256_colour_mode(NO); + + /* Disable CPU read processing */ + ega_read_term(); + ega_write_term(); +} + +GLOBAL VOID vga_seq_dummy_outb IFN2(io_addr,port,half_word,value) +{ + UNUSED(port); +#ifdef PROD + UNUSED(value); +#endif + + assert2(NO,"Output to bad seq reg %#x with data %#x\n",sequencer.address.as.abyte,value); +} + +GLOBAL VOID vga_seq_outb_index IFN2(io_addr,port,half_word,value) +{ +#ifdef PROD + UNUSED(port); +#endif + note_entrance2("vga_seq_outb_index(%x,%x)", port, value); +#ifdef V7VGA + if (sequencer.extensions_control.as_bfld.extension_enable && (value & 0x80)) + { + sequencer.address.as.abyte = value; + io_redefine_inb(EGA_SEQ_ADAP_DATA, vga_extn_inb); + io_redefine_outb(EGA_SEQ_ADAP_DATA, vga_extn_outb); + return; + } + io_redefine_inb(EGA_SEQ_ADAP_DATA, vga_seq_inb); +#endif /* V7VGA */ + + sequencer.address.as.abyte = ( value & 0x07 ); + +#ifndef V7VGA + if (value > 4) + { + /* a bad port index value, so ignore any data sent to it */ + io_redefine_outb(EGA_SEQ_ADAP_DATA,vga_seq_dummy_outb); + return; + } +#endif /* !V7VGA */ + io_redefine_outb(EGA_SEQ_ADAP_DATA,ega_seq_regs[value & 0x07]); +} + + +GLOBAL VOID vga_seq_clock IFN2(io_addr,port,half_word,value) +{ + FAST TINY dot_clock; + TINY screen_off; + +#ifdef PROD + UNUSED(port); +#endif + NON_PROD(if(io_verbose & EGA_PORTS_VERBOSE)fprintf(trace_file,"seq(1,%x)\n",value);) + note_entrance2("vga_seq_clock(%x,%x)", port, value); + /* clock mode register */ + dot_clock = sequencer.clocking_mode.as_bfld.dot_clock; + screen_off = sequencer.clocking_mode.as_bfld.screen_off; + sequencer.clocking_mode.as.abyte = value; + if (sequencer.clocking_mode.as_bfld.dot_clock != dot_clock) { + /* + ** Switch to/from double width pixels + */ + if (sequencer.clocking_mode.as_bfld.dot_clock==1) { + set_pix_width(2); + set_double_pix_wid(YES); + set_pix_char_width(16); + } else { + set_pix_width(1); + set_double_pix_wid(NO); + set_pix_char_width(8); + } + flag_mode_change_required(); + } + if (sequencer.clocking_mode.as_bfld.screen_off != screen_off) { + if (sequencer.clocking_mode.as_bfld.screen_off) { + set_display_disabled(TRUE); + timer_video_enabled = 0; + disable_gfx_update_routines(); + } + else { + set_display_disabled(FALSE); + timer_video_enabled = 1; + enable_gfx_update_routines(); + screen_refresh_required(); + } + } +} + +/* the vga supports 4 fonts maps to the ega's 4 */ +GLOBAL VOID vga_seq_char_map IFN2(io_addr,port,half_word,value) +{ +FAST TINY map_selects, select_a, select_b; + +#ifdef PROD + UNUSED(port); +#endif + NON_PROD(if(io_verbose & EGA_PORTS_VERBOSE)fprintf(trace_file,"seq(3,%#x)\n",value);) + note_entrance2("vga_seq_char_map(%x,%x)", port, value); + /* char map select reg */ + map_selects = sequencer.character_map_select.character.map_selects; + sequencer.character_map_select.as.abyte = value; + if (sequencer.character_map_select.character.map_selects != map_selects) + { + /* + ** character mapping attributes have changed. + ** + ** If fonts selected are different bit 3 of attribute byte in alpha mode + ** selects which of the two fonts to use (giving 512 chars). + */ + + + select_a = sequencer.character_map_select.as_bfld.character_map_select_a | (sequencer.character_map_select.as_bfld.ch_map_select_a_hi << 2); + select_b = sequencer.character_map_select.as_bfld.character_map_select_b | (sequencer.character_map_select.as_bfld.ch_map_select_b_hi << 2); + EGA_GRAPH.attrib_font_select = (select_a != select_b); + set_prim_font_index(select_a); + set_sec_font_index(select_b); + + host_select_fonts(get_prim_font_index(), get_sec_font_index()); + flag_mode_change_required(); + } +} + +GLOBAL VOID vga_seq_mem_mode IFN2(io_addr,port,half_word,value) +{ + TINY now_chain4; + +#ifdef PROD + UNUSED(port); +#endif + NON_PROD(if(io_verbose & EGA_PORTS_VERBOSE)fprintf(trace_file,"seq(4,%#x)\n",value);) + note_entrance2("vga_seq_mem_mode(%x,%x)", port, value); + + now_chain4 = sequencer.memory_mode.as_bfld.chain4; + /* mem mode register */ + sequencer.memory_mode.as.abyte = value ; + + if( now_chain4 != sequencer.memory_mode.as_bfld.chain4 ) + { + if( sequencer.memory_mode.as_bfld.chain4 == 0 ) + { + EGA_CPU.chain = UNCHAINED; + setVideochain(EGA_CPU.chain); + set_chain4_mode(NO); + do_chain_majority_decision(); + if (EGA_CPU.chain != CHAIN2) + { + ega_read_routines_update(); + ega_write_routines_update(CHAINED); + flag_mode_change_required(); + } + } + else + { + EGA_CPU.chain = CHAIN4; + setVideochain(EGA_CPU.chain); + set_chain4_mode(YES); + set_memory_chained(NO); + ega_read_routines_update(); + ega_write_routines_update(CHAINED); + flag_mode_change_required(); + } + + } + else + { + do_chain_majority_decision(); + } + + assert1(sequencer.memory_mode.as_bfld.extended_memory == 1, + "Someone is trying to set extended memory to 0 (reg=%x)",value); +} + +GLOBAL VOID vga_seq_inb IFN2(io_addr,port,half_word *,value) +{ + note_entrance1("vga_seq_inb(%x)", port); + if (port == EGA_SEQ_INDEX) { + *value = sequencer.address.as.abyte; + note_entrance1("returning %x",*value); + return; + } + if (port == EGA_SEQ_DATA) { + switch(sequencer.address.as.abyte) { + + case 0: + *value = 3; + break; + case 1: + *value = sequencer.clocking_mode.as.abyte; + break; + case 2: + *value = getVideoplane_enable(); + break; + case 3: + *value = sequencer.character_map_select.as.abyte; + break; + case 4: + *value = sequencer.memory_mode.as.abyte; + break; +#ifdef V7VGA + case 6: + *value = sequencer.extensions_control.as.abyte; + break; +#endif /* V7VGA */ + default: + assert1(NO,"Bad sequencer index %d\n",sequencer.address.as.abyte); + *value = IO_EMPTY_PORT_BYTE_VALUE; + } + note_entrance1("returning %x",*value); + } + else { + assert1(NO,"Bad seq port %d",port); + *value = IO_EMPTY_PORT_BYTE_VALUE; + } +} + +GLOBAL VOID vga_crtc_outb IFN2(io_addr,port,half_word,value) +{ + SHORT offset; + struct + { /* aVOID alignment problems with casts */ + unsigned value : 8; + } new; + + + note_entrance2("vga_crtc_outb(%x,%x)", port, value); + switch (port) { + case 0x3d4: + note_entrance1("New crtc index %d",value); + crt_controller.address.as.abyte = value; + break; + case 0x3d5: + note_entrance1( "Index %d", crt_controller.address.as_bfld.index ); + NON_PROD(if(io_verbose & EGA_PORTS_VERBOSE) if (crt_controller.address.as_bfld.index != 0xe && crt_controller.address.as_bfld.index != 0xf)fprintf(trace_file,"crtc(%#x,%#x)\n",crt_controller.address.as_bfld.index,value);) + /* + * We have to save all values in the VGA, even if we + * dont support the reg, as all values are read/write. + */ + switch (crt_controller.address.as_bfld.index) { + case 0: + note_entrance0("horiz total"); +#ifdef V7VGA + if (crtc_0_8_protect == FALSE && crtc_0_7_protect == FALSE) +#else + if (crtc_0_7_protect == FALSE) +#endif /* V7VGA */ + crt_controller.horizontal_total = value; + break; + case 1: + note_entrance0("horiz display end"); +#ifdef V7VGA + if (crtc_0_8_protect == FALSE && crtc_0_7_protect == FALSE) +#else + if (crtc_0_7_protect == FALSE) +#endif /* V7VGA */ + { + crt_controller.horizontal_display_end = value+1; + if (get_256_colour_mode()) + { + set_horiz_total(crt_controller.horizontal_display_end>>1); + } + else + { + set_horiz_total(crt_controller.horizontal_display_end); + } + } + break; + case 2: + note_entrance0("start horiz blank"); +#ifdef V7VGA + if (crtc_0_8_protect == FALSE && crtc_0_7_protect == FALSE) +#else + if (crtc_0_7_protect == FALSE) +#endif /* V7VGA */ + crt_controller.start_horizontal_blanking = value; + break; + case 3: + note_entrance0("end horiz blank"); +#ifdef V7VGA + if (crtc_0_8_protect == FALSE && crtc_0_7_protect == FALSE) +#else + if (crtc_0_7_protect == FALSE) +#endif /* V7VGA */ + crt_controller.end_horizontal_blanking.as.abyte = value; + break; + case 4: + note_entrance0("start horiz retrace"); +#ifdef V7VGA + if (crtc_0_8_protect == FALSE && crtc_0_7_protect == FALSE) +#else + if (crtc_0_7_protect == FALSE) +#endif /* V7VGA */ + crt_controller.start_horizontal_retrace = value; + break; + case 5: + note_entrance0("end horiz retrace"); +#ifdef V7VGA + if (crtc_0_8_protect == FALSE && crtc_0_7_protect == FALSE) +#else + if (crtc_0_7_protect == FALSE) +#endif /* V7VGA */ + crt_controller.end_horizontal_retrace.as.abyte = value; + break; + case 6: + note_entrance0("vert tot"); +#ifdef V7VGA + if (crtc_0_8_protect == FALSE && crtc_0_7_protect == FALSE) +#else + if (crtc_0_7_protect == FALSE) +#endif /* V7VGA */ + crt_controller.vertical_total = value; + break; + case 7: + note_entrance0("overflow"); +#ifdef V7VGA + if (crtc_0_8_protect == FALSE) + { +#endif /* V7VGA */ + new.value = value; + if (crtc_0_7_protect) { + byte temp_line_cmp; + temp_line_cmp = ((CRTC_OVERFLOW*)&new)->as_bfld.line_compare_bit_8; + ((CRTC_OVERFLOW*)&new)->as.abyte = crt_controller.crtc_overflow.as.abyte; + ((CRTC_OVERFLOW*)&new)->as_bfld.line_compare_bit_8 = temp_line_cmp; + } + if (crt_controller.crtc_overflow.as_bfld.vertical_display_enab_end_bit_8 != + ((CRTC_OVERFLOW*)&new)->as_bfld.vertical_display_enab_end_bit_8) + { + /* + * Screen height changed + */ + + set_screen_height_med_recal( + ((CRTC_OVERFLOW*)&new)->as_bfld.vertical_display_enab_end_bit_8 ); + + flag_mode_change_required(); + } + if (crt_controller.crtc_overflow.as_bfld.line_compare_bit_8 != + ((CRTC_OVERFLOW*)&new)->as_bfld.line_compare_bit_8) + { + /* + * split screen height changed + */ + + EGA_GRAPH.screen_split.as_bfld.med_bit = + ((CRTC_OVERFLOW*)&new)->as_bfld.line_compare_bit_8; + + if( !get_split_screen_used() ) + flag_mode_change_required(); + + screen_refresh_required(); + } + if (crt_controller.crtc_overflow.as_bfld.vertical_display_enab_end_bit_9 != + ((CRTC_OVERFLOW*)&new)->as_bfld.vertical_display_enab_end_bit_9) + { + /* + * split screen height changed + */ + set_screen_height_hi_recal(((CRTC_OVERFLOW*)&new)->as_bfld.vertical_display_enab_end_bit_9); + flag_mode_change_required(); + } +#ifdef NTVDM + crt_controller.crtc_overflow.as.abyte = new.value; +#else + crt_controller.crtc_overflow.as.abyte = value; +#endif +#ifdef V7VGA + } +#endif /* V7VGA */ + break; + case 8: + note_entrance0("preset row scan"); +#ifdef V7VGA + if (crtc_0_8_protect == FALSE) +#endif /* V7VGA */ + crt_controller.preset_row_scan.as.abyte = value; + break; + case 9: + note_entrance0("max scan line"); +#ifdef V7VGA + if (crtc_9_b_protect == FALSE) + { +#endif /* V7VGA */ + new.value = value; + if (crt_controller.maximum_scan_line.as_bfld.maximum_scan_line + != ((MAX_SCAN_LINE*)&new)->as_bfld.maximum_scan_line) + { + set_char_height_recal( + (((MAX_SCAN_LINE*)&new)->as_bfld.maximum_scan_line)+1); + do_new_cursor(); + flag_mode_change_required(); + } + + if( crt_controller.maximum_scan_line.as_bfld.double_scanning + != ((MAX_SCAN_LINE*)&new)->as_bfld.double_scanning) + { + set_pc_pix_height(1 << + ((MAX_SCAN_LINE*)&new)->as_bfld.double_scanning); + + flag_mode_change_required(); + } + + if (crt_controller.maximum_scan_line.as_bfld.line_compare_bit_9 + != ((MAX_SCAN_LINE*)&new)->as_bfld.line_compare_bit_9) + { + /* + * split screen height changed + */ + + EGA_GRAPH.screen_split.as_bfld.top_bit = + ((MAX_SCAN_LINE*)&new)->as_bfld.line_compare_bit_9; + + if( !get_split_screen_used() ) + flag_mode_change_required(); + + screen_refresh_required(); + } + crt_controller.maximum_scan_line.as.abyte = value; +#ifdef V7VGA + } +#endif /* V7VGA */ + break; + case 0xa: + note_entrance0("cursor start"); +#ifdef V7VGA + if (crtc_9_b_protect == FALSE) + { +#endif /* V7VGA */ + new.value = value; + if (crt_controller.cursor_start.as_bfld.cursor_off) + set_cursor_visible(FALSE); + else + set_cursor_visible(TRUE); + + if (crt_controller.cursor_start.as_bfld.cursor_start != + ((CURSOR_START*)&new)->as_bfld.cursor_start) + { + crt_controller.cursor_start.as.abyte = value; + } + + do_new_cursor(); +#ifdef V7VGA + } +#endif /* V7VGA */ + break; + case 0xb: + note_entrance0("cursor end"); +#ifdef V7VGA + if (crtc_9_b_protect == FALSE) + { +#endif /* V7VGA */ + new.value = value; + if (crt_controller.cursor_end.as_bfld.cursor_end != + ((CURSOR_END*)&new)->as_bfld.cursor_end) + { + crt_controller.cursor_end.as.abyte = value; + assert0(crt_controller.cursor_end.as_bfld.cursor_skew_control == 0, + "Someone is trying to use cursor skew"); + do_new_cursor(); + } +#ifdef V7VGA + } +#endif /* V7VGA */ + break; + case 0xc: + note_entrance0("start address high"); +#ifdef V7VGA + if (crtc_c_protect == FALSE) + { +#endif /* V7VGA */ + if (crt_controller.start_address_high != value) + { + set_screen_start((value << 8) + crt_controller.start_address_low); + host_screen_address_changed(value, crt_controller.start_address_low); + /* check if it wraps now */ +#ifdef V7VGA + if( !( get_seq_chain4_mode() || get_seq_chain_mode() )) +#endif /* V7VGA */ + if (get_chain4_mode() ) + { + if( (get_screen_start()<<2) + + get_screen_length() > 4*EGA_PLANE_DISP_SIZE ) + choose_vga_display_mode(); + } + else + if ( get_memory_chained() ) + { + if( (get_screen_start()<<1) + + get_screen_length() > 2*EGA_PLANE_DISP_SIZE ) + choose_vga_display_mode(); + } + else + { + if( get_screen_start() + + get_screen_length() > EGA_PLANE_DISP_SIZE ) + choose_vga_display_mode(); + } + screen_refresh_required(); + } + crt_controller.start_address_high = value; +#ifdef V7VGA + } +#endif /* V7VGA */ + break; + case 0xd: + note_entrance0("start address low"); + if (crt_controller.start_address_low != value) + { + set_screen_start((crt_controller.start_address_high << 8) + value); + host_screen_address_changed(crt_controller.start_address_high, value); + /* check if it wraps now */ +#ifdef V7VGA + if( !( get_seq_chain4_mode() || get_seq_chain_mode() )) +#endif /* V7VGA */ + if (get_chain4_mode() ) + { + if( (get_screen_start()<<2) + + get_screen_length() > 4*EGA_PLANE_DISP_SIZE ) + choose_vga_display_mode(); + } + else + if ( get_memory_chained() ) + { + if( (get_screen_start()<<1) + + get_screen_length() > 2*EGA_PLANE_DISP_SIZE ) + choose_vga_display_mode(); + } + else + { + if( get_screen_start() + + get_screen_length() > EGA_PLANE_DISP_SIZE ) + choose_vga_display_mode(); + } + screen_refresh_required(); + } + crt_controller.start_address_low = value; + break; + case 0xe: + note_entrance0("cursor loc high"); + if (crt_controller.cursor_location_high != value) + { + crt_controller.cursor_location_high = value; + + offset = (value<<8) | crt_controller.cursor_location_low; + offset -= get_screen_start(); + + set_cur_x(offset % crt_controller.horizontal_display_end); + set_cur_y(offset / crt_controller.horizontal_display_end); + + do_new_cursor(); + + if(!get_mode_change_required() && is_it_text()) + cursor_changed(get_cur_x(), get_cur_y()); + } + break; + case 0xf: + note_entrance0("cursor loc lo"); + if (crt_controller.cursor_location_low != value) + { + crt_controller.cursor_location_low = value; + + offset = value | (crt_controller.cursor_location_high<<8); + offset -= get_screen_start(); + + set_cur_x(offset % crt_controller.horizontal_display_end); + set_cur_y(offset / crt_controller.horizontal_display_end); + + do_new_cursor(); + + if(!get_mode_change_required() && is_it_text()) + cursor_changed(get_cur_x(), get_cur_y()); + } + break; + case 0x10: + note_entrance0("vert retrace start"); + crt_controller.vertical_retrace_start = value; + break; + case 0x11: + note_entrance0("vert retrace end"); + crt_controller.vertical_retrace_end.as.abyte = value; + if ((value & 32) == 32) + ega_int_enable = 0; + else + { + ega_int_enable = 1; + input_status_register_zero.as_bfld.crt_interrupt = 1; /* = !VS */ + } + if ((value & 16) != 16) + { + ica_clear_int(AT_EGA_VTRACE_ADAPTER,AT_EGA_VTRACE_INT); + /* + * clear status latch + */ + input_status_register_zero.as_bfld.crt_interrupt = 0; /* = !VS */ + } + /* ??? */ + if (crt_controller.vertical_retrace_end.as_bfld.crtc_protect) + crtc_0_7_protect = TRUE; + else + crtc_0_7_protect = FALSE; + break; + case 0x12: + note_entrance0("vert disp enable end"); + if (crt_controller.vertical_display_enable_end != value) + { + crt_controller.vertical_display_enable_end = value; + set_screen_height_lo_recal(value); + flag_mode_change_required(); + } + break; + case 0x13: + note_entrance0("offset"); + if (crt_controller.offset != value) + { + crt_controller.offset = value; + set_actual_offset_per_line(value<<1); /* actual offset into plane in bytes */ + flag_mode_change_required(); + } + break; + case 0x14: + note_entrance0("underline loc"); + crt_controller.underline_location.as.abyte = value; + set_underline_start(crt_controller.underline_location.as_bfld.underline_location); + if (crt_controller.underline_location.as_bfld.doubleword_mode) { + assert0(crt_controller.underline_location.as_bfld.count_by_4 == 1,"count by 4 not set in doubleword mode"); + EGA_CPU.doubleword = TRUE; + set_doubleword_mode(YES); + } + else { + assert0(crt_controller.underline_location.as_bfld.count_by_4 == 0,"count by 4 set when doubleword clear"); + EGA_CPU.doubleword = FALSE; + set_doubleword_mode(NO); + } + break; + case 0x15: + note_entrance0("start vert blank"); + crt_controller.start_vertical_blanking = value; + break; + case 0x16: + note_entrance0("end vert blank"); + crt_controller.end_vertical_blanking = value; + break; + case 0x17: + note_entrance0("mode control"); + new.value = value; + if (crt_controller.mode_control.as_bfld.compatibility_mode_support != + ((MODE_CONTROL*)&new)->as_bfld.compatibility_mode_support) + { + if ( (((MODE_CONTROL*)&new)->as_bfld.compatibility_mode_support) == 0) + set_cga_mem_bank(YES); + else set_cga_mem_bank(NO); + flag_mode_change_required(); + } + if (crt_controller.mode_control.as_bfld.word_or_byte_mode != + ((MODE_CONTROL*)&new)->as_bfld.word_or_byte_mode) + { + set_word_addressing_recal( + (((MODE_CONTROL*)&new)->as_bfld.word_or_byte_mode) == 0 ); + } +#ifdef V7VGA + if (crt_controller.mode_control.as_bfld.horizontal_retrace_select != + ((MODE_CONTROL*)&new)->as_bfld.horizontal_retrace_select) + { + EGA_GRAPH.multiply_vert_by_two = ((MODE_CONTROL*)&new)->as_bfld.horizontal_retrace_select; + flag_mode_change_required(); + screen_refresh_required(); + + } +#endif + crt_controller.mode_control.as.abyte = value; + assert0(crt_controller.mode_control.as_bfld.select_row_scan_counter == 1,"Row scan 0"); + assert0(crt_controller.mode_control.as_bfld.horizontal_retrace_select == 0, + "retrace select 1"); + assert0(crt_controller.mode_control.as_bfld.hardware_reset == 1,"hardware reset cleared"); + break; + case 0x18: + note_entrance0("line compare reg"); + if (crt_controller.line_compare != value) + { + crt_controller.line_compare = value; + EGA_GRAPH.screen_split.as_bfld.low_byte = value; + + if( !get_split_screen_used() ) + flag_mode_change_required(); + + screen_refresh_required(); + } + break; + default: + assert1(NO,"Bad crtc index %d",crt_controller.address.as_bfld.index); + break; + } + break; + default: + assert1(NO,"Bad port passed %x", port ); + break; + } +} + +GLOBAL VOID vga_crtc_inb IFN2(io_addr,port,half_word *,value) +{ +#ifdef PROD + UNUSED(port); +#endif + note_entrance3("ega_crtc_inb(%x,%x) index %d", port, value, crt_controller.address.as_bfld.index); + switch(crt_controller.address.as_bfld.index) { + case 0: + *value = crt_controller.horizontal_total; + break; + case 1: + *value = crt_controller.horizontal_display_end - 1; + break; + case 2: + *value = crt_controller.start_horizontal_blanking; + break; + case 3: + *value =crt_controller.end_horizontal_blanking.as.abyte; + break; + case 4: + *value = crt_controller.start_horizontal_retrace; + break; + case 5: + *value = crt_controller.end_horizontal_retrace.as.abyte; + break; + case 6: + *value = crt_controller.vertical_total; + break; + case 7: + *value = crt_controller.crtc_overflow.as.abyte; + break; + case 8: + *value = crt_controller.preset_row_scan.as.abyte; + break; + case 9: + *value = crt_controller.maximum_scan_line.as.abyte; + break; + case 0xa: + *value = crt_controller.cursor_start.as.abyte ; + note_entrance1("cursor start %d",*value); + break; + case 0xb: + *value = crt_controller.cursor_end.as.abyte ; + note_entrance1("cursor end %d",*value); + break; + case 0xc: + *value = crt_controller.start_address_high ; + note_entrance1("start address high %x",*value); + break; + case 0xd: + *value = crt_controller.start_address_low ; + note_entrance1("start address low %x",*value); + break; + case 0xe: + *value = crt_controller.cursor_location_high ; + note_entrance1("cursor location high %x",*value); + break; + case 0xf: + *value = crt_controller.cursor_location_low ; + note_entrance1("cursor location low %x",*value); + break; + case 0x10: + *value = crt_controller.vertical_retrace_start; + break; + case 0x11: + *value = crt_controller.vertical_retrace_end.as.abyte & ~0x20; + break; + case 0x12: + *value = crt_controller.vertical_display_enable_end; + break; + case 0x13: + *value = crt_controller.offset; + break; + case 0x14: + *value = crt_controller.underline_location.as.abyte; + break; + case 0x15: + *value = crt_controller.start_vertical_blanking; + break; + case 0x16: + *value = crt_controller.end_vertical_blanking; + break; + case 0x17: + *value = crt_controller.mode_control.as.abyte; + break; + case 0x18: + *value = crt_controller.line_compare; + break; +#ifdef V7VGA + case 0x1f: + *value = crt_controller.start_address_high ^ 0xea; + break; + case 0x22: + switch(graphics_controller.read_map_select.as_bfld.map_select) + { + case 0: + *value = get_latch0; + break; + case 1: + *value = get_latch1; + break; + case 2: + *value = get_latch2; + break; + case 3: + *value = get_latch3; + break; + } + break; + case 0x24: + *value = attribute_controller.address.as.abyte; + break; +#endif /* V7VGA */ + default: + assert1(crt_controller.address.as_bfld.index>24,"inb from bad crtc index %d",crt_controller.address.as_bfld.index); + *value = IO_EMPTY_PORT_BYTE_VALUE; + break; + } + NON_PROD(if(io_verbose & EGA_PORTS_VERBOSE)fprintf(trace_file,"RD crtc %#x = %#x\n",crt_controller.address.as_bfld.index,*value);) +} + + +GLOBAL VOID vga_gc_mode IFN2(io_addr,port,half_word,value) +{ +MODE new_mode; + +#ifdef PROD + UNUSED(port); +#endif + NON_PROD(if(io_verbose & EGA_PORTS_VERBOSE)fprintf(trace_file,"gc(5,%#x)\n",value);) + note_entrance2("vga_gc_mode(%x,%x)", port, value); + new_mode.as.abyte = value; + if (graphics_controller.mode.as_bfld.write_mode != new_mode.as_bfld.write_mode) + { + /* + * write mode change + */ + + EGA_CPU.write_mode = new_mode.as_bfld.write_mode; + setVideowrmode(EGA_CPU.write_mode); + ega_write_routines_update(WRITE_MODE); + } + + if (graphics_controller.mode.as_bfld.read_mode != new_mode.as_bfld.read_mode) + { + /* + * read mode change + */ + read_state.mode = new_mode.as_bfld.read_mode; + ega_read_routines_update(); + } + + if (graphics_controller.mode.as_bfld.shift_register_mode != new_mode.as_bfld.shift_register_mode) + { + + switch(new_mode.as_bfld.shift_register_mode) { + + case 0: /* EGA mode */ + set_graph_shift_reg(NO); + set_256_colour_mode(NO); + set_horiz_total(crt_controller.horizontal_display_end); + break; + case 1: /* CGA med res mode */ + set_graph_shift_reg(YES); + set_256_colour_mode(NO); + set_horiz_total(crt_controller.horizontal_display_end); + break; + case 2: /* VGA 256 colour mode */ + case 3: /* Bottom bit ignored, if top bit set */ + set_graph_shift_reg(NO); + set_256_colour_mode(YES); + /* Need to halve horiz display end for 256 cols */ + set_horiz_total(crt_controller.horizontal_display_end>>1); + flag_palette_change_required(); + break; + } + flag_mode_change_required(); + } + + graphics_controller.mode.as.abyte = new_mode.as.abyte; + + /* + * Check for any change to chained mode rule by having an election + * (Note: EGA registers must be updated before calling election) + */ + + do_chain_majority_decision(); +} + +/* + * note: identical to ega routines, but needed in this module to ensure + * correct struct set + */ + +GLOBAL VOID vga_gc_outb_index IFN2(io_addr,port,half_word,value) +{ +#ifdef PROD + UNUSED(port); +#endif + note_entrance2("vga_gc_outb_index(%x,%x)", port, value); + value &= 0xf; + graphics_controller.address.as.abyte = value; + assert2(value<9,"Bad gc index %#x port %#x",value,port); + + io_redefine_outb(EGA_GC_ADAP_DATA,ega_gc_regs[value]); + Cpu_define_outb(EGA_GC_ADAP_DATA,ega_gc_regs_cpu[value]); +} + + +/*( vga_gc_outw +** Most PC programs do an "OUT DX, AX" which sets up the GC index +** register with the AL and the GC data register with AH. +** Avoid going through generic_outw() by doing it all here! +** See also: ega_gc_outw() in "ega_ports.c" +)*/ +GLOBAL VOID vga_gc_outw IFN2(io_addr, port, word, outval) +{ + reg temp; + INT value; + + temp.X = outval; + + value = temp.byte.low & 0xf; + graphics_controller.address.as.abyte = value; + + assert2(value<9,"Bad gc index %#x port %#x",value,port); + + io_redefine_outb(EGA_GC_ADAP_DATA,ega_gc_regs[value]); + + Cpu_define_outb(EGA_GC_ADAP_DATA,ega_gc_regs_cpu[value]); + + (*(ega_gc_regs[value]))(port+1, temp.byte.high); +} + + +GLOBAL VOID vga_gc_set_reset IFN2(io_addr,port,half_word,value) +{ +FAST TINY set_reset; + +#ifdef PROD + UNUSED(port); +#endif + NON_PROD(if(io_verbose & EGA_PORTS_VERBOSE)fprintf(trace_file,"gc(0,%x)\n",value);) + note_entrance2("vga_gc_set_reset(%x,%x)", port, value); + set_reset = graphics_controller.set_or_reset.as_bfld.set_or_reset; + graphics_controller.set_or_reset.as.abyte = value; + if (graphics_controller.set_or_reset.as_bfld.set_or_reset != set_reset) + { + EGA_CPU.set_reset = graphics_controller.set_or_reset.as_bfld.set_or_reset; + ega_write_routines_update(SET_RESET); + } +} + +GLOBAL VOID vga_gc_enable_set IFN2(io_addr,port,half_word,value) +{ +FAST TINY en_set_reset; + +#ifdef PROD + UNUSED(port); +#endif + NON_PROD(if(io_verbose & EGA_PORTS_VERBOSE)fprintf(trace_file,"gc(1,%x)\n",value);) + note_entrance2("vga_gc_enable_set(%x,%x)", port, value); + en_set_reset = graphics_controller.enable_set_or_reset.as_bfld.enable_set_or_reset; + graphics_controller.enable_set_or_reset.as.abyte = value; + if (graphics_controller.enable_set_or_reset.as_bfld.enable_set_or_reset != en_set_reset) + { + EGA_CPU.sr_enable = graphics_controller.enable_set_or_reset.as_bfld.enable_set_or_reset; + write_state.sr = graphics_controller.enable_set_or_reset.as_bfld.enable_set_or_reset==0?0:1; + setVideowrstate(EGA_CPU.ega_state.mode_0.lookup); + ega_write_routines_update(ENABLE_SET_RESET); + } +} + +GLOBAL VOID vga_gc_compare IFN2(io_addr,port,half_word,value) +{ +FAST TINY colour_compare; + +#ifdef PROD + UNUSED(port); +#endif + NON_PROD(if(io_verbose & EGA_PORTS_VERBOSE)fprintf(trace_file,"gc(2,%x)\n",value);) + note_entrance2("vga_gc_compare(%x,%x)", port, value); + colour_compare = graphics_controller.color_compare.as_bfld.color_compare; + graphics_controller.color_compare.as.abyte = value; + if (graphics_controller.color_compare.as_bfld.color_compare != colour_compare) + { + read_state.colour_compare = graphics_controller.color_compare.as_bfld.color_compare; + if (read_state.mode == 1) ega_read_routines_update(); + } +} + +GLOBAL VOID vga_gc_rotate IFN2(io_addr,port,half_word,value) +{ + struct { + unsigned value : 8; + } new; + + UNUSED(port); + + NON_PROD(if(io_verbose & EGA_PORTS_VERBOSE)fprintf(trace_file,"gc(3,%x)\n",value);) + new.value = value; + if (graphics_controller.data_rotate.as_bfld.rotate_count != ((DATA_ROTATE*)&new)->as_bfld.rotate_count ) + { + setVideorotate(((DATA_ROTATE*)&new)->as_bfld.rotate_count); + ega_write_routines_update(ROTATION); + } + if (graphics_controller.data_rotate.as_bfld.function_select != ((DATA_ROTATE*)&new)->as_bfld.function_select) + { + write_state.func = ((DATA_ROTATE*)&new)->as_bfld.function_select; + setVideowrstate(EGA_CPU.ega_state.mode_0.lookup); + ega_write_routines_update(FUNCTION); + } + EGA_CPU.fun_or_protection = (value != 0) || write_state.bp; + graphics_controller.data_rotate.as.abyte = value; +} + +GLOBAL VOID vga_gc_read_map IFN2(io_addr,port,half_word,value) +{ +#ifdef PROD + UNUSED(port); +#endif + NON_PROD(if(io_verbose & EGA_PORTS_VERBOSE)fprintf(trace_file,"gc(4,%x)\n",value);) + + note_entrance2("vga_gc_read_map(%x,%x)", port, value); + + setVideoread_mapped_plane(value & 3); + + update_shift_count(); +} + +GLOBAL VOID vga_gc_misc IFN2(io_addr,port,half_word,value) +{ +FAST TINY memory_map; + +#ifdef PROD + UNUSED(port); +#endif + NON_PROD(if(io_verbose & EGA_PORTS_VERBOSE)fprintf(trace_file,"gc(6,%x)\n",value);) + note_entrance2("vga_gc_misc(%x,%x)", port, value); + memory_map = graphics_controller.miscellaneous.as_bfld.memory_map; + graphics_controller.miscellaneous.as.abyte = value; + if (graphics_controller.miscellaneous.as_bfld.memory_map != memory_map) + { + /* + * Where EGA appears in PC memory space changed. + */ + +#ifndef GISP_SVGA + if (miscellaneous_output_register.as_bfld.enable_ram) + sas_disconnect_memory(gvi_pc_low_regen,gvi_pc_high_regen); +#endif /* GISP_SVGA */ + + switch (graphics_controller.miscellaneous.as_bfld.memory_map) + { + case 0: + gvi_pc_low_regen = 0xA0000; + gvi_pc_high_regen = 0xBFFFF; + break; + case 1: + gvi_pc_low_regen = 0xA0000; + gvi_pc_high_regen = 0xAFFFF; + break; + case 2: + gvi_pc_low_regen = 0xB0000; + gvi_pc_high_regen = 0xB7FFF; + break; + case 3: + gvi_pc_low_regen = 0xB8000; + gvi_pc_high_regen = 0xBFFFF; + break; + } + + if (miscellaneous_output_register.as_bfld.enable_ram) + sas_connect_memory(gvi_pc_low_regen,gvi_pc_high_regen,(half_word)SAS_VIDEO); + + /* + * Tell cpu associated modules that regen area has moved + */ + + ega_read_routines_update(); + ega_write_routines_update(RAM_MOVED); + } + + /* Decide alpha/graphics mode by voting. */ + vote_vga_mode(); + + /* + * Check for any change to chained mode rule by having an election + * (Note: EGA registers must be updated before calling election) + */ + + do_chain_majority_decision(); +} + +GLOBAL VOID vga_gc_dont_care IFN2(io_addr,port,half_word,value) +{ +FAST TINY colour_dont_care; + +#ifdef PROD + UNUSED(port); +#endif + NON_PROD(if(io_verbose & EGA_PORTS_VERBOSE)fprintf(trace_file,"gc(7,%x)\n",value);) + note_entrance2("vga_gc_dont_care(%x,%x)", port, value); + colour_dont_care = graphics_controller.color_dont_care.as_bfld.color_dont_care; + graphics_controller.color_dont_care.as.abyte = value; + if (graphics_controller.color_dont_care.as_bfld.color_dont_care != colour_dont_care) + { + read_state.colour_dont_care = graphics_controller.color_dont_care.as_bfld.color_dont_care; + if (read_state.mode == 1) ega_read_routines_update(); + } +} + + + + +/* + * The EGA mask register is written to more times than all other ports added together! + * To help make this register fast, we have two different routines to handle it: + * ega_gc_mask for when the register's current value is not 0xFF, ie. masking is active + * ega_gc_mask_ff for when the mask register = 0xFF, so masking is disabled. + */ + + +/*( +** vga_mask_register_changed +** This gets called whenever the mask register gets changed, and +** updates the internals appropriately. Since the mask registers +** are hit more than any other registers, this should do the job! +** +** Rather than calling the monster ega_write_routines_update() (in "ega_write.c"), +** we do as little as we possibly can here! +** In particular, all we do is set the video write pointer handlers +** to the appropriate one and update the internal EGA_CPU state... +** +** We DON'T do anything about altering the marking funcs, etc. +** +** See also "ega_mask_register_changed" in "ega_ports.c". +** +** NB: GLOBAL for JOKER. +)*/ +#include "cpu_vid.h" + +GLOBAL VOID vga_mask_register_changed IFN1(BOOL, gotBitProtection) +{ + ULONG state; + SAVED IU8 masks[] = {0x1f, 0x01, 0x0f, 0x0f}; + IMPORT WRT_POINTERS *mode_chain_handler_table[]; +#ifdef V7VGA + IMPORT UTINY Last_v7_fg_bg, fg_bg_control; +#endif + + + write_state.bp = gotBitProtection; + setVideowrstate(EGA_CPU.ega_state.mode_0.lookup); + EGA_CPU.fun_or_protection = (gotBitProtection || (graphics_controller.data_rotate.as.abyte != 0)); + + /* Check that we're not trying to handle any pathological cases here... + ** This means we chicken out for Chain2 and V7VGA dithering. + */ + + if ((EGA_CPU.chain == CHAIN2) +#ifdef V7VGA + || ( Last_v7_fg_bg != fg_bg_control) +#endif /* V7VGA */ + ) + { + ega_write_routines_update(BIT_PROT); + + return; + } + + /* the "mode_0" union variant has the largest "lookup" field (5 bits.) */ + + state = EGA_CPU.ega_state.mode_0.lookup & masks[EGA_CPU.write_mode]; + +#ifdef A3CPU +#ifdef C_VID + Glue_set_vid_wrt_ptrs(&mode_chain_handler_table[EGA_CPU.saved_mode_chain][state]); +#else + Cpu_set_vid_wrt_ptrs(&mode_chain_handler_table[EGA_CPU.saved_mode_chain][state]); +#endif /* C_VID */ +#else +#if !(defined(NTVDM) && defined(X86GFX)) + Glue_set_vid_wrt_ptrs(&mode_chain_handler_table[EGA_CPU.saved_mode_chain][state]); +#endif /* !(NTVDM && X86GFX) */ +#endif /* A3CPU */ + + EGA_CPU.saved_state = state; +} + + +/* this is the one that is usually called */ +GLOBAL VOID vga_gc_mask IFN2(USHORT,port,FAST UTINY,value) +{ + FAST ULONG mask; + +#ifdef PROD + UNUSED(port); +#endif + NON_PROD(if(io_verbose & EGA_PORTS_VERBOSE)fprintf(trace_file,"gc(8,%x)\n",value);) + note_entrance2("vga_gc_mask(%x,%x)", port, value); + + /* + * Update video routine according to new bit protection + */ + + mask = value | (value << 8); + mask |= (mask << 16); /* replicate the mask into 4 bytes */ + setVideobit_prot_mask(mask); + setVideodata_xor_mask(~(EGA_CPU.calc_data_xor & mask)); + setVideolatch_xor_mask(EGA_CPU.calc_latch_xor & mask); + + if(value == 0xff) + { +#ifndef USE_OLD_MASK_CODE + vga_mask_register_changed(/*bit protection :=*/0); +#else + write_state.bp = 0; + setVideowrstate(EGA_CPU.ega_state.mode_0.lookup); + EGA_CPU.fun_or_protection = (graphics_controller.data_rotate.as.abyte != 0); + ega_write_routines_update(BIT_PROT); +#endif /* USE_OLD_MASK_CODE */ + + /* Alter the function table used by ega_gc_index */ + ega_gc_regs[8] = FAST_FUNC_ADDR(vga_gc_mask_ff); + +#ifndef CPU_40_STYLE /* TEMPORARY */ +#ifndef A2CPU + /* Alter the function table used by assembler ega_gc_index */ + ega_gc_regs_cpu[8] = FAST_FUNC_ADDR(_ega_gc_outb_mask_ff); +#endif +#endif + + io_redefine_outb(EGA_GC_ADAP_DATA,vga_gc_mask_ff); + +#ifndef CPU_40_STYLE /* TEMPORARY */ + Cpu_define_outb(EGA_GC_ADAP_DATA,_ega_gc_outb_mask_ff); +#endif + } +} + +/* This version isn't called so often */ +GLOBAL VOID vga_gc_mask_ff IFN2(USHORT,port,FAST UTINY,value) +{ + FAST ULONG mask; + +#ifdef PROD + UNUSED(port); +#endif + NON_PROD(if(io_verbose & EGA_PORTS_VERBOSE)fprintf(trace_file,"gc(8,%x)\n",value);) + note_entrance2("vga_gc_mask(%x,%x)", port, value); + + /* + * Update video routine according to new bit protection + */ + + if(value != 0xff) + { + mask = value | (value << 8); + mask |= (mask << 16); /* replicate the mask into 4 bytes */ + setVideobit_prot_mask(mask); + setVideodata_xor_mask(~(EGA_CPU.calc_data_xor & mask)); + setVideolatch_xor_mask(EGA_CPU.calc_latch_xor & mask); + +#ifndef USE_OLD_MASK_CODE + vga_mask_register_changed(/*bit protection :=*/1); +#else + write_state.bp = 1; + setVideowrstate(EGA_CPU.ega_state.mode_0.lookup); + EGA_CPU.fun_or_protection = TRUE; + ega_write_routines_update(BIT_PROT); +#endif /* USE_OLD_MASK_CODE*/ + + /* Alter the function table used by ega_gc_index */ + ega_gc_regs[8] = FAST_FUNC_ADDR(vga_gc_mask); + +#ifndef CPU_40_STYLE /* TEMPORARY */ +#ifndef A2CPU + /* Alter the function table used by assembler ega_gc_index */ + ega_gc_regs_cpu[8] = FAST_FUNC_ADDR(_ega_gc_outb_mask); +#endif +#endif + + io_redefine_outb(EGA_GC_ADAP_DATA,vga_gc_mask); + +#ifndef CPU_40_STYLE /* TEMPORARY */ + Cpu_define_outb(EGA_GC_ADAP_DATA,_ega_gc_outb_mask); +#endif + } +} +/* end of 'same as EGA' gc routines */ + +/* + * copy of ega routine to place in correct module to update static struct. + */ +GLOBAL VOID vga_seq_map_mask IFN2(io_addr,port,half_word,value) +{ +#ifdef PROD + UNUSED(port); +#endif + NON_PROD(if(io_verbose & EGA_PORTS_VERBOSE)fprintf(trace_file,"seq(2,%x)\n",value);) + note_entrance2("vga_seq_map_mask(%x,%x)", port, value); + + /* map mask register */ + /* + * Different display plane(s) have been enabled. Update the video + * routines to deal with this + */ + + value &= 0xf; /* 4 planes ==> lower 4 bits valid */ + + setVideoplane_enable(value); + setVideoplane_enable_mask(sr_lookup[value]); + write_state.pe = (value == 0xf); /* 1 or 0 */ + setVideowrstate(EGA_CPU.ega_state.mode_0.lookup); + ega_write_routines_update(PLANES_ENABLED); +} +/* end of 'same as EGA' seq routines */ + +/* + * copy of ega routine to place in correct module to update static struct. + */ + +SAVED TINY vga_ip0_state = 0; /* current ega status state */ +SAVED TINY vga_ip0_state_count = 1; /* position in that state */ + +GLOBAL VOID v_ret_intr_status IFN0() +{ + vga_ip0_state = 3; + vga_ip0_state_count = 6; +} + + +/* + The following routine should not return a value with top bit set + until we emulate a Rev4 Video7 card. +*/ + +/* + * Some programs synchronise with the display by waiting for the + * next vertical retrace. + * + * We attempt to follow the following waveform: + * _____ _____ + * VS _____| |_____________________________________________| |___ + * ____________ _ _ _ _ _____________ + * DE __| |___| |___| |_ ....... _| |___| |___| |_ + * + * State | 3 | 0 | 1 | 2 | + * + */ + +#if defined(NTVDM) || defined(host_get_time_ms) || defined(host_get_count_ms) + + /* + * end of periods for each state + * Units are 100 usec (0.1 ms) to match GetPerfCounter() resolution + * Total period is based on 70 Hz for NTVDM and 50Hz otherwise + */ +#ifdef NTVDM +#define IPSTAT1_STATE_0 (25) +#define IPSTAT1_STATE_1 (IPSTAT1_STATE_0 + 75) +#define IPSTAT1_STATE_2 (IPSTAT1_STATE_1 + 25) +#define IPSTAT1_STATE_3 (IPSTAT1_STATE_2 + 10) +#define IPSTAT1_CYCLE_TIME IPSTAT1_STATE_3 +#else /* NTVDM */ +#define IPSTAT1_STATE_0 (4) /* End of state 0, ms */ +#define IPSTAT1_STATE_1 (IPSTAT1_STATE_0 + 9) /* End of state 1, ms */ +#define IPSTAT1_STATE_2 (IPSTAT1_STATE_1 + 4) /* End of state 2, ms */ +#define IPSTAT1_STATE_3 (IPSTAT1_STATE_2 + 3) /* End of state 3, ms */ +#define IPSTAT1_CYCLE_TIME IPSTAT1_STATE_3 /* Cycle time, ms */ +#endif /* NTVDM */ + +GLOBAL VOID vga_ipstat1_inb IFN2(io_addr,port,half_word *,value) +{ + IMPORT ULONG GetPerfCounter(void); + SAVED ULONG RefreshStartTime=0; + ULONG cycles; + ULONG CurrTime; + + +#if defined(X86GFX) +/* Silly programs (especially editors) that are concerned that they might + * be running on CGA's will read this port like crazy before each screen + * access. This frig catches the common case: + * in + * test al,80 + * j{e,ne} back to the in + * and moves IP to beyond the test. So far this hasn't broken anything(!!) + * but has made good speedups in a variety of apps. + */ + sys_addr off; + word cs, ip; + ULONG dwat; + IMPORT word getCS(), getIP(); +#endif + +#ifdef PROD + UNUSED(port); +#endif + +#ifdef X86GFX + cs = getCS(); + ip = getIP(); + off = (cs << 4) + ip; + dwat = sas_dw_at(off); + if (dwat == 0xfb7401a8 || dwat == 0xfb7501a8) + { + ip += 4; + setIP(ip); + *value = 5; /* anything really */ + return; + } +#endif + + note_entrance2("vga_ipstat1_inb(%x,%x)", port, value); + +#ifdef V7VGA + attribute_controller.address.as_bfld.index_state = 0; +#else + set_index_state(); /* Initialize the Attribute register flip-flop (EGA tech ref, p 56) */ +#endif /* V7VGA */ + +#if defined(NTVDM) || defined(host_get_count_ms) + +#ifdef NTVDM + CurrTime = GetPerfCounter(); +#else + CurrTime = host_get_count_ms(); +#endif + + cycles = CurrTime >= RefreshStartTime + ? CurrTime - RefreshStartTime + : 0xFFFFFFFF - RefreshStartTime + CurrTime; + + /* If app hasn't checked the status for a long time (for at least + * one Display Refresh Cycle). start the app at end of state 0. + */ + if (cycles > IPSTAT1_CYCLE_TIME) { + RefreshStartTime = CurrTime; + cycles = 0; + } + +#else /* host_get_time_ms */ + + cycles = host_get_time_ms() % IPSTAT1_CYCLE_TIME; + +#endif /* host_get_time_ms */ + + if (cycles < IPSTAT1_STATE_0) + { + *value = 0x05; + input_status_register_zero.as_bfld.crt_interrupt = 0; /* = !VS */ + } + else if (cycles < IPSTAT1_STATE_1) + { + *value = 0x04; + if (((cycles - IPSTAT1_STATE_0) % 3) == 0) + *value |= 0x01; + input_status_register_zero.as_bfld.crt_interrupt = 0; /* = !VS */ + } + else if (cycles < IPSTAT1_STATE_2) + { + *value = 0x05; + input_status_register_zero.as_bfld.crt_interrupt = 0; /* = !VS */ + } + else /* IPSTAT1_STATE_3 */ + { + *value = 0x0d; + input_status_register_zero.as_bfld.crt_interrupt = 1; /* = VS */ + } +} + +#else /* !(NTVDM || host_get_time_ms || host_get_count_ms) */ + +GLOBAL VOID vga_ipstat1_inb IFN2(io_addr,port,half_word *,value) +{ + + /* + * The whole of this routine has been nicked from the cga without modification + * The s_lengths array should probably be altered for the ega timings, and somewhere + * an interrupt should be fired off. + */ + + SAVED TINY sub_state = 0; /* sub state for ega state 2 */ + + SAVED ULONG gmfudge = 17; /* Random number seed for pseudo-random + bitstream generator to give the state + lengths below that 'genuine' feel to + progs that require it! */ + FAST ULONG h; + + /* + * relative 'lengths' of each state. State 2 is *3 as it has 3 sub states + */ + + SAVED TINY s_lengths[] = { 8, 18, 8, 6 }; + + +#ifdef PROD + UNUSED(port); +#endif + note_entrance2("vga_ipstat1_inb(%x,%x)", port, value); + +#ifdef V7VGA + attribute_controller.address.as_bfld.index_state = 0; +#else + set_index_state(); /* Initialize the Attribute register flip-flop (EGA tech ref, p 56) */ +#endif /* V7VGA */ + + vga_ip0_state_count --; /* attempt relative 'timings' */ + switch (vga_ip0_state) { + + case 0: + if (vga_ip0_state_count == 0) { /* change to next state ? */ + h = gmfudge << 1; + gmfudge = (h&0x80000000) ^ (gmfudge & 0x80000000)? h|1 : h; + vga_ip0_state_count = s_lengths[1] + (gmfudge & 3); + vga_ip0_state = 1; + } + input_status_register_zero.as_bfld.crt_interrupt = 0; /* = !VS */ + *value = 0x05; + break; + + case 1: + if (vga_ip0_state_count == 0) { /* change to next state ? */ + h = gmfudge << 1; + gmfudge = (h&0x80000000) ^ (gmfudge & 0x80000000)? h|1 : h; + vga_ip0_state_count = s_lengths[2] + (gmfudge & 3); + vga_ip0_state = 2; + sub_state = 2; + } + switch (sub_state) { /* cycle through 0,0,1 sequence */ + case 0: /* to represent DE toggling */ + *value = 0x04; + sub_state = 1; + break; + case 1: + *value = 0x04; + sub_state = 2; + break; + case 2: + *value = 0x05; + sub_state = 0; + break; + } + input_status_register_zero.as_bfld.crt_interrupt = 0; /* = !VS */ + break; + + case 2: + if (vga_ip0_state_count == 0) { /* change to next state ? */ + h = gmfudge << 1; + gmfudge = (h&0x80000000) ^ (gmfudge & 0x80000000)? h|1 : h; + vga_ip0_state_count = s_lengths[3] + (gmfudge & 3); + vga_ip0_state = 3; + } + *value = 0x05; + input_status_register_zero.as_bfld.crt_interrupt = 0; /* = !VS */ + break; + + case 3: + if (vga_ip0_state_count == 0) { /* wrap back to first state */ + h = gmfudge << 1; + gmfudge = (h&0x80000000) ^ (gmfudge & 0x80000000)? h|1 : h; + vga_ip0_state_count = s_lengths[0] + (gmfudge & 3); + vga_ip0_state = 0; + } + input_status_register_zero.as_bfld.crt_interrupt = 1; /* = !VS */ + *value = 0x0d; + break; + } + note_entrance1("returning %x",*value); +} + +#endif /* !(NTVDM || host_get_time_ms || host_get_count_ms) */ + +GLOBAL VOID vga_gc_inb IFN2(io_addr,port,half_word *, value) +{ + note_entrance1("vga_gc_inb(%x)", port); + if (port == EGA_GC_INDEX) { + *value = graphics_controller.address.as.abyte; + note_entrance1("returning %x",*value); + return; + } + if (port == EGA_GC_DATA) { + switch(graphics_controller.address.as.abyte) { + + case 0: + *value = graphics_controller.set_or_reset.as.abyte; + break; + case 1: + *value = graphics_controller.enable_set_or_reset.as.abyte; + break; + case 2: + *value = graphics_controller.color_compare.as.abyte; + break; + case 3: + *value = graphics_controller.data_rotate.as.abyte; + break; + case 4: + *value = getVideoread_mapped_plane(); + break; + case 5: + *value = graphics_controller.mode.as.abyte; + break; + case 6: + *value = graphics_controller.miscellaneous.as.abyte; + break; + case 7: + *value = graphics_controller.color_dont_care.as.abyte; + break; + case 8: + *value = getVideobit_prot_mask() & 0xff; + break; + default: + assert1(NO,"Bad gc index %d",graphics_controller.address.as.abyte); + *value = IO_EMPTY_PORT_BYTE_VALUE; + } + note_entrance1("returning %x",*value); + } + else { + assert1(NO,"Bad gc port %d",port); + *value = IO_EMPTY_PORT_BYTE_VALUE; + } +} + +GLOBAL VOID vga_ac_outb IFN2(io_addr,port,half_word,value) +{ + struct { + unsigned value : 8; + } new; + +#ifdef PROD + UNUSED(port); +#endif + + note_entrance2("vga_ac_outb(%x,%x)", port, value); + assert1( port == EGA_AC_INDEX_DATA, "Bad port %x", port); + new.value = value; +#ifdef V7VGA + attribute_controller.address.as_bfld.index_state = !attribute_controller.address.as_bfld.index_state; + if (attribute_controller.address.as_bfld.index_state) { +#else + if ( in_index_state() ) { +#endif /* V7VGA */ + note_entrance1("Setting index to %d", value); + if (((value & 0x20) >> 5) != attribute_controller.address.as_bfld.palette_address_source) + { + if (value & 0x20) + { + set_display_disabled(FALSE); + timer_video_enabled = 1; + enable_gfx_update_routines(); + screen_refresh_required(); + } + else + { + /* + * not strictly accurate, since we are meant to fill the screen with + * the current overscan colour. However that is normally black so this + * will do. + */ + set_display_disabled(TRUE); + timer_video_enabled = 0; + disable_gfx_update_routines(); + } + } +#ifdef V7VGA + attribute_controller.address.as.abyte = (attribute_controller.address.as_bfld.index_state << 7) | (value & 0x3f); +#else + attribute_controller.address.as.abyte = value; +#endif /* V7VGA */ + } else { + NON_PROD(if(io_verbose & EGA_PORTS_VERBOSE)fprintf(trace_file,"attr(%#x,%#x)\n",attribute_controller.address.as_bfld.index,value);) + switch (attribute_controller.address.as_bfld.index) { + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 0xa: + case 0xb: + case 0xc: + case 0xd: + case 0xe: + case 0xf: + note_entrance1("Change palette %d",attribute_controller.address.as_bfld.index); + attribute_controller.palette[attribute_controller.address.as_bfld.index].as.abyte = value; + set_palette_val(attribute_controller.address.as_bfld.index, value); + + flag_palette_change_required(); + break; + case 0x10: + note_entrance0("mode control reg"); + if (attribute_controller.mode_control.as_bfld.background_intensity_or_blink != + ((AC_MODE_CONTROL*)&new)->as_bfld.background_intensity_or_blink) + { + set_intensity( ((AC_MODE_CONTROL*)&new)->as_bfld.background_intensity_or_blink ); + } + if (attribute_controller.mode_control.as_bfld.select_video_bits != + ((AC_MODE_CONTROL*)&new)->as_bfld.select_video_bits) + { + set_colour_select(((AC_MODE_CONTROL*)&new)->as_bfld.select_video_bits); + flag_palette_change_required(); + } + attribute_controller.mode_control.as.abyte = value; + + if (attribute_controller.mode_control.as_bfld.background_intensity_or_blink) + /* blinking - not supported */ + bg_col_mask = 0x70; + else + /* using blink bit to provide 16 background colours */ + bg_col_mask = 0xf0; + + /* Vote on alpha/graphics mode */ + vote_vga_mode(); + assert0(attribute_controller.mode_control.as_bfld.display_type == 0, "Mono display selected"); + assert0(attribute_controller.mode_control.as_bfld.enable_line_graphics_char_codes == 0, + "line graphics enabled"); + break; + case 0x11: + note_entrance0("set border"); + attribute_controller.overscan_color.as.abyte = value; + EGA_GRAPH.border[RED] = get_border_color(red_border,secondary_red_border); + EGA_GRAPH.border[GREEN] = get_border_color(green_border,secondary_green_border); + EGA_GRAPH.border[BLUE] = get_border_color(blue_border,secondary_blue_border); + host_set_border_colour(value); + break; + case 0x12: + note_entrance1("color plane enable %x",value); + if ( attribute_controller.color_plane_enable.as_bfld.color_plane_enable != + ((COLOR_PLANE_ENABLE*)&new)->as_bfld.color_plane_enable ) { + set_plane_mask(((COLOR_PLANE_ENABLE*)&new)->as_bfld.color_plane_enable); + host_change_plane_mask(get_plane_mask()); /* Update Host palette */ + } + attribute_controller.color_plane_enable.as.abyte = value; + break; + case 0x13: + note_entrance0("horiz pel panning"); + attribute_controller.horizontal_pel_panning.as.abyte = value; + break; + case 0x14: + note_entrance0("pixel padding register"); + if (attribute_controller.pixel_padding.as_bfld.color_top_bits != + ((PIXEL_PAD*)&new)->as_bfld.color_top_bits) + { + set_top_pixel_pad(((PIXEL_PAD*)&new)->as_bfld.color_top_bits); + flag_palette_change_required(); + } + if (attribute_controller.pixel_padding.as_bfld.color_mid_bits != + ((PIXEL_PAD*)&new)->as_bfld.color_mid_bits) + { + set_mid_pixel_pad(((PIXEL_PAD*)&new)->as_bfld.color_mid_bits); + flag_palette_change_required(); + } + attribute_controller.pixel_padding.as.abyte = value; + break; + default: + assert1(NO,"Bad ac index %d", attribute_controller.address.as_bfld.index); + break; + } + } +} + +GLOBAL VOID vga_ac_inb IFN2(io_addr,port,half_word *, value) +{ + note_entrance1("vga_ac_inb(%x)", port); + if (port == EGA_AC_INDEX_DATA) { /* 3c0 */ + *value = attribute_controller.address.as.abyte; + note_entrance1("returning %x",*value); + return; + } + if (port == EGA_AC_SECRET) { /* 3c1 */ + switch (attribute_controller.address.as_bfld.index) { + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 0xa: + case 0xb: + case 0xc: + case 0xd: + case 0xe: + case 0xf: + *value = attribute_controller.palette[attribute_controller.address.as_bfld.index].as.abyte; + break; + case 0x10: + *value = attribute_controller.mode_control.as.abyte; + break; + case 0x11: + *value = attribute_controller.overscan_color.as.abyte; + break; + case 0x12: + *value = attribute_controller.color_plane_enable.as.abyte; + break; + case 0x13: + *value = attribute_controller.horizontal_pel_panning.as.abyte; + break; + case 0x14: + *value = attribute_controller.pixel_padding.as.abyte; + break; + } + note_entrance1("returning %x",*value); + } + else { + assert1(NO,"Bad ac port %d",port); + *value = IO_EMPTY_PORT_BYTE_VALUE; + } +} + +GLOBAL VOID vga_misc_outb IFN2(io_addr,port,half_word,value) +{ +MISC_OUTPUT_REG new; + +#ifdef PROD + UNUSED(port); +#endif + + NON_PROD(if(io_verbose & EGA_PORTS_VERBOSE)fprintf(trace_file,"misc %#x\n",value);) + + note_entrance2("vga_misc_outb(%x,%x)", port, value); + + assert1(port==EGA_MISC_REG,"Bad port %x",port); + new.as.abyte = value; + + if (miscellaneous_output_register.as_bfld.enable_ram != new.as_bfld.enable_ram) + { + /* + * writes to plane memory en/disabled + */ + + note_entrance0("Ram enabled"); + +#ifndef GISP_SVGA + if(new.as_bfld.enable_ram) + sas_connect_memory(gvi_pc_low_regen,gvi_pc_high_regen,(half_word)SAS_VIDEO); + else + sas_disconnect_memory(gvi_pc_low_regen,gvi_pc_high_regen); +#endif /* GISP_SVGA */ + EGA_CPU.ram_enabled = new.as_bfld.enable_ram; + ega_read_routines_update(); + ega_write_routines_update(RAM_ENABLED); + } + + miscellaneous_output_register.as.abyte = new.as.abyte; + + update_banking(); +} + +GLOBAL VOID vga_misc_inb IFN2(io_addr,port,half_word *, value) +{ +#ifdef PROD + UNUSED(port); +#endif + assert1(port==VGA_MISC_READ_REG,"Bad port %x",port); + *value = miscellaneous_output_register.as.abyte; +} + +GLOBAL VOID vga_ipstat0_inb IFN2(io_addr,port,half_word *, value) +{ +#ifdef PROD + UNUSED(port); +#endif + note_entrance1("vga_ipstat0_inb(%x)", port); + *value = input_status_register_zero.as.abyte; + note_entrance1("returning %x",*value); +} + +GLOBAL VOID vga_feat_outb IFN2(io_addr,port,half_word,value) +{ +#ifdef PROD + UNUSED(port); +#endif + note_entrance2("ega_feat_outb(%x,%x)", port, value); + feature_control_register.as.abyte = value; +} + +GLOBAL VOID vga_feat_inb IFN2(io_addr,port,half_word *, value) +{ + UNUSED(port); + *value = feature_control_register.as.abyte; +} + +GLOBAL VOID vga_dac_outb IFN2(io_addr,port,half_word,value) +{ + note_entrance1("vga_dac_outb %#x",port); + switch(port) { + + case VGA_DAC_MASK: + if (get_DAC_mask() != value) { + set_DAC_mask(value); + flag_palette_change_required(); + } + break; + + case VGA_DAC_RADDR: + DAC_rd_addr = value; + DAC_state = 3; /* show 3c7 status read in read mode */ + assert0(DAC_rgb_state == DAC_RED, "DAC rd addr change when state not RED"); + DAC_rgb_state = DAC_RED; + break; + + case VGA_DAC_WADDR: + DAC_wr_addr = value; + DAC_state = 0; /* show 3c7 status read in write mode */ + assert0(DAC_rgb_state == DAC_RED, "DAC wr addr change when state not RED"); + DAC_rgb_state = DAC_RED; + break; + + default: + assert1(NO,"Bad DAC port %d",port); + } +} + +/* + * as this poor little port is hammered, we split it off from it's DAC siblings + * for (hoped) efficiency. + */ +GLOBAL VOID vga_dac_data_outb IFN2(io_addr,port,half_word,value) +{ +#ifdef PROD + UNUSED(port); +#endif + + note_entrance1("vga_dac_data_outb %#x",port); + switch(DAC_rgb_state) { + + case DAC_RED: + DAC[DAC_wr_addr].red = value & DAC_data_mask; + DAC_rgb_state = DAC_GREEN; + break; + + case DAC_GREEN: + DAC[DAC_wr_addr].green = value & DAC_data_mask; + DAC_rgb_state = DAC_BLUE; + break; + + case DAC_BLUE: + DAC[DAC_wr_addr].blue = value & DAC_data_mask; + DAC_rgb_state = DAC_RED; + /* + * very important side affect - many progs dont touch the DAC + * index reg after setting it to the start of a group. + */ + DAC_wr_addr++; + break; + + default: + assert1(NO,"unknown DAC state %d",DAC_rgb_state); + } + + flag_palette_change_required(); +} + +GLOBAL VOID vga_dac_inb IFN2(io_addr,port,half_word *,value) +{ + note_entrance1("vga_dac_inb %#x",port); + switch(port) { + + case VGA_DAC_MASK: + *value = get_DAC_mask(); + break; + + case VGA_DAC_RADDR: + *value= DAC_state; /* either 0 - write mode or 3 - read mode */ + break; + + case VGA_DAC_WADDR: + *value = DAC_wr_addr; + break; + + default: + assert1(NO,"Bad DAC port read %d",port); + } + note_entrance1("returning %#x",*value); +} + +GLOBAL VOID vga_dac_data_inb IFN2(io_addr,port,half_word *,value) +{ +#ifdef PROD + UNUSED(port); +#endif + note_entrance1("vga_dac_data_inb %#x",port); + switch(DAC_rgb_state) { + + case DAC_RED: + *value = DAC[DAC_rd_addr].red; + DAC_rgb_state = DAC_GREEN; + break; + + case DAC_GREEN: + *value = DAC[DAC_rd_addr].green; + DAC_rgb_state = DAC_BLUE; + break; + + case DAC_BLUE: + *value = DAC[DAC_rd_addr].blue; + DAC_rgb_state = DAC_RED; + /* NB important side affect of 3rd read */ + DAC_rd_addr++; + break; + + default: + assert1(NO,"bad DAC state %d",DAC_rgb_state); + } + note_entrance1("returning %#x",*value); +} + +#if defined(NTVDM) && defined(X86GFX) +/* + * There is no way of obtaining the DAC read address via a port access + * (that we know of). Thus save/restore stuff etc needs this interface. + */ +half_word get_vga_DAC_rd_addr() +{ + return DAC_rd_addr; +} +#endif /* NTVDM & X86GFX */ + +VOID vote_vga_mode IFN0() +{ + int votes; + + votes = graphics_controller.miscellaneous.as_bfld.graphics_mode; + votes += attribute_controller.mode_control.as_bfld.graphics_mode; + switch(votes) { + case 0: + if (!is_it_text()) + { + /* switch to text mode */ + set_text_mode(YES); + flag_mode_change_required(); + } + break; + + case 2: + if (is_it_text()) + { + /* switch to graphics mode */ + set_text_mode(NO); + flag_mode_change_required(); + } + break; + + case 1: + if (graphics_controller.miscellaneous.as_bfld.graphics_mode) + { + if (is_it_text()) + { + assert0(NO,"Forcing mode to be graphics cos graphics controller sez so"); + set_text_mode(NO); + flag_mode_change_required(); + } + } + else + { + if (!is_it_text()) + { + assert0(NO,"Forcing mode to be alpha cos graphics controller sez so"); + set_text_mode(YES); + flag_mode_change_required(); + } + } + break; + + default: + assert1(NO,"Wierd vote result %d in vote_vga_mode",votes); + } +} /* vote_vga_mode */ + +#ifdef GISP_SVGA +/*( + * function : mapRealIOPorts( ) + * + * purpose : mapping of real io functions for HW + * vga on ccpu + * + * inputs : none + * outputs : none + * returns : void + * globals : none + * + * +)*/ + +void +mapRealIOPorts IFN0( ) +{ + always_trace0("mapping vga ports to _real_ IN/OUT"); + /* + * Define sequencer's ports + */ + + io_define_outb(EGA_SEQ_ADAP_INDEX, hostRealOUTB ); + io_define_outb(EGA_SEQ_ADAP_DATA, hostRealOUTB ); + io_define_inb(EGA_SEQ_ADAP_INDEX, hostRealINB ); + io_define_inb(EGA_SEQ_ADAP_DATA, hostRealINB ); + + /* + * Define CRTC's ports + */ + + io_define_outb(EGA_CRTC_ADAPTOR, hostRealOUTB ); + io_define_inb(EGA_CRTC_ADAPTOR, hostRealINB ); + + /* + * Define Graphics Controller's ports + */ + + io_define_outb(EGA_GC_ADAP_INDEX, hostRealOUTB ); + Cpu_define_outb(EGA_GC_ADAP_INDEX, NULL ); + + io_define_outb(EGA_GC_ADAP_DATA, hostRealOUTB ); + Cpu_define_outb(EGA_GC_ADAP_DATA,NULL); + + io_define_inb(EGA_GC_ADAP_INDEX, hostRealINB ); + io_define_inb(EGA_GC_ADAP_DATA, hostRealINB ); + + /* + * Define Attribute controller's ports + */ + + io_define_outb(EGA_AC_ADAPTOR, hostRealOUTB ); + io_define_inb(EGA_AC_ADAPTOR, hostRealINB ); + + /* + * Define Miscellaneous register's port + */ + + io_define_outb(EGA_MISC_ADAPTOR, hostRealOUTB ); + io_define_inb(EGA_MISC_ADAPTOR, hostRealINB ); + + /* + * Define Feature controller's port + */ + + io_define_outb(EGA_FEAT_ADAPTOR, hostRealOUTB ); + io_define_inb(EGA_FEAT_ADAPTOR, hostRealINB ); + + /* + * Define Input Status Register 0 port + */ + + io_define_inb(EGA_IPSTAT0_ADAPTOR, hostRealINB ); + + /* + * Define Input Status Register 1 port + */ + + io_define_inb(EGA_IPSTAT1_ADAPTOR, hostRealINB ); + + /* + * Define VGA DAC register port + */ + io_define_inb(VGA_DAC_INDEX_PORT, hostRealINB ); + io_define_outb(VGA_DAC_INDEX_PORT, hostRealOUTB ); + io_define_inb(VGA_DAC_DATA_PORT, hostRealINB ); + io_define_outb(VGA_DAC_DATA_PORT, hostRealOUTB ); + +} + + +/*( + * function : mapEmulatedIOPorts( ) + * + * purpose : mapping of emulated io functions for HW + * vga on ccpu + * + * inputs : none + * outputs : none + * returns : void + * globals : none + * + * +)*/ + +void +mapEmulatedIOPorts IFN0( ) +{ + always_trace0( "Mapping vga ports to Emulation" ); + + /* + * Define sequencer's ports + */ + + io_define_outb(EGA_SEQ_ADAP_INDEX,vga_seq_outb_index); + io_define_outb(EGA_SEQ_ADAP_DATA,ega_seq_reset); + io_define_inb(EGA_SEQ_ADAP_INDEX,vga_seq_inb); + io_define_inb(EGA_SEQ_ADAP_DATA,vga_seq_inb); + io_connect_port(EGA_SEQ_INDEX,EGA_SEQ_ADAP_INDEX,IO_READ_WRITE); + io_connect_port(EGA_SEQ_DATA,EGA_SEQ_ADAP_DATA,IO_READ_WRITE); + + /* + * Define CRTC's ports + */ + + io_define_outb(EGA_CRTC_ADAPTOR,vga_crtc_outb); + io_define_inb(EGA_CRTC_ADAPTOR,vga_crtc_inb); + io_connect_port(EGA_CRTC_INDEX,EGA_CRTC_ADAPTOR,IO_READ_WRITE); + io_connect_port(EGA_CRTC_DATA,EGA_CRTC_ADAPTOR,IO_READ_WRITE); + + /* + * Define Graphics Controller's ports + */ + + vga_gc_outb_index_addr = (UTINY *) &graphics_controller.address; + + io_define_outb(EGA_GC_ADAP_INDEX,vga_gc_outb_index); + Cpu_define_outb(EGA_GC_ADAP_INDEX,_vga_gc_outb_index); + + io_define_outb(EGA_GC_ADAP_DATA,ega_gc_set_reset); + Cpu_define_outb(EGA_GC_ADAP_DATA,NULL); + + io_define_inb(EGA_GC_ADAP_INDEX,vga_gc_inb); + io_define_inb(EGA_GC_ADAP_DATA,vga_gc_inb); + + io_connect_port(EGA_GC_INDEX,EGA_GC_ADAP_INDEX,IO_READ_WRITE); + io_connect_port(EGA_GC_DATA,EGA_GC_ADAP_DATA,IO_READ_WRITE); + + /* + * Define Attribute controller's ports + */ + + io_define_outb(EGA_AC_ADAPTOR,vga_ac_outb); + io_define_inb(EGA_AC_ADAPTOR,vga_ac_inb); + io_connect_port(EGA_AC_INDEX_DATA,EGA_AC_ADAPTOR,IO_READ_WRITE); + io_connect_port(EGA_AC_SECRET,EGA_AC_ADAPTOR,IO_READ); + + /* + * Define Miscellaneous register's port + */ + + io_define_outb(EGA_MISC_ADAPTOR,vga_misc_outb); + io_define_inb(EGA_MISC_ADAPTOR,vga_misc_inb); + io_connect_port(EGA_MISC_REG,EGA_MISC_ADAPTOR,IO_WRITE); + io_connect_port(VGA_MISC_READ_REG,EGA_MISC_ADAPTOR,IO_READ); + + /* + * Define Feature controller's port + */ + + io_define_outb(EGA_FEAT_ADAPTOR,vga_feat_outb); + io_define_inb(EGA_FEAT_ADAPTOR,vga_feat_inb); + io_connect_port(EGA_FEAT_REG,EGA_FEAT_ADAPTOR,IO_WRITE); + io_connect_port(VGA_FEAT_READ_REG,EGA_FEAT_ADAPTOR,IO_READ); + + /* + * Define Input Status Register 0 port + */ + + io_define_inb(EGA_IPSTAT0_ADAPTOR,vga_ipstat0_inb); + io_connect_port(EGA_IPSTAT0_REG,EGA_IPSTAT0_ADAPTOR,IO_READ); + + /* + * Define Input Status Register 1 port + */ + + io_define_inb(EGA_IPSTAT1_ADAPTOR,vga_ipstat1_inb); + io_connect_port(EGA_IPSTAT1_REG,EGA_IPSTAT1_ADAPTOR,IO_READ); + + /* + * Define VGA DAC register port + */ + io_define_inb(VGA_DAC_INDEX_PORT,vga_dac_inb); + io_define_outb(VGA_DAC_INDEX_PORT,vga_dac_outb); + io_connect_port(VGA_DAC_MASK,VGA_DAC_INDEX_PORT,IO_READ_WRITE); + io_connect_port(VGA_DAC_RADDR,VGA_DAC_INDEX_PORT,IO_READ_WRITE); + io_connect_port(VGA_DAC_WADDR,VGA_DAC_INDEX_PORT,IO_READ_WRITE); + io_define_inb(VGA_DAC_DATA_PORT,vga_dac_data_inb); + io_define_outb(VGA_DAC_DATA_PORT,vga_dac_data_outb); + io_connect_port(VGA_DAC_DATA,VGA_DAC_DATA_PORT,IO_READ_WRITE); + +} + +#endif /* GISP_SVGA */ + + +#ifdef HUNTER + +/* Get line compare value */ + +LONG vga_get_line_compare IFN0() + + { + LONG return_value; + + return_value = crt_controller.line_compare; + if (crt_controller.crtc_overflow.as_bfld.line_compare_bit_8 != 0) + return_value += 0x100; + return (return_value); + } /* ega_get_line_compare */ + +/* Get maximum scan lines value */ + +LONG vga_get_max_scan_lines IFN0() + + { + return (crt_controller.maximum_scan_line.as_bfld.maximum_scan_line); + } /* ega_get_max_scan_lines */ + +/* Set line compare value */ + +VOID vga_set_line_compare IFN1(LONG,lcomp_val) + +/* lcomp_val ----> new value for line compare */ + + { + CRTC_OVERFLOW new_overflow; + + new_overflow.as.abyte = crt_controller.crtc_overflow.as.abyte; + if (lcomp_val >= 0x100) + new_overflow.as_bfld.line_compare_bit_8 = 1; + else + new_overflow.as_bfld.line_compare_bit_8 = 0; + + outb(EGA_CRTC_INDEX, 7); + outb(EGA_CRTC_DATA, new_overflow.as.abyte); + outb(EGA_CRTC_INDEX, 24); + outb(EGA_CRTC_DATA, lcomp_val & 0xff); + } + +#endif /* HUNTER */ +#endif /* VGG */ +#endif /* REAL_VGA */ diff --git a/private/mvdm/softpc.new/base/video/vga_vide.c b/private/mvdm/softpc.new/base/video/vga_vide.c new file mode 100644 index 000000000..766a1b5f2 --- /dev/null +++ b/private/mvdm/softpc.new/base/video/vga_vide.c @@ -0,0 +1,1021 @@ +#include "insignia.h" +#include "host_def.h" +/* + * SoftPC Revision 3.0 + * + * Title : vga_video.c + * + * Description : BIOS video internal routines. + * + * Author : William Gulland + * + * Notes : The following functions are defined in this module: + * + * + * + */ + +/* + * static char SccsID[]="@(#)vga_video.c 1.37 06/26/95 Copyright Insignia Solutions Ltd."; + */ + + +#ifdef VGG + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "VIDEO_BIOS_VGA.seg" +#endif + +/* + * O/S include files. + */ +#include +#include TypesH +#include FCntlH + +/* + * SoftPC include files + */ +#include "xt.h" +#include CpuH +#include "error.h" +#include "config.h" +#include "bios.h" +#include "ios.h" +#include "gmi.h" +#include "sas.h" +#include "gvi.h" +#include "timer.h" +#include "gfx_upd.h" +#include "host.h" +#include "egacpu.h" +#include "egaports.h" +#include "egagraph.h" +#include "egaread.h" +#include "video.h" +#include "egavideo.h" +#include "equip.h" +#include "vga_dac.h" +#include "vgaports.h" +#include "debug.h" + +#ifndef PROD +#include "trace.h" +#endif + +#include "host_gfx.h" + +/* + * ============================================================================ + * Global data + * ============================================================================ + */ + + +/* + * ============================================================================ + * Local static data and defines + * ============================================================================ + */ + +#define DISABLE_REFRESH 0x20 +/* the bit in the vga seq clock register that disables screen refresh */ + +#define VGA_COLOUR 8 /* Display Code */ +typedef struct _rgb +{ + byte red; + byte green; + byte blue; +} rgb_struct; + +/* internal function declarations */ + +/* To convert to grey, set all components to 30% r, 59% g and 11% b. */ +static void greyify(rgb) +rgb_struct *rgb; +{ + unsigned int grey; + + grey = (30*rgb->red+59*rgb->green+11*rgb->blue)/100; + rgb->red = rgb->green = rgb->blue = grey; +} + +static void set_dac(dac,rgb) +half_word dac; +rgb_struct *rgb; +{ + if(is_GREY())greyify(rgb); + outb(VGA_DAC_WADDR,dac); + outb(VGA_DAC_DATA,rgb->red); + outb(VGA_DAC_DATA,rgb->green); + outb(VGA_DAC_DATA,rgb->blue); +} + +static void get_dac(dac,rgb) +half_word dac; +rgb_struct *rgb; +{ + outb(VGA_DAC_RADDR,dac); + inb(VGA_DAC_DATA,&(rgb->red)); + inb(VGA_DAC_DATA,&(rgb->green)); + inb(VGA_DAC_DATA,&(rgb->blue)); +} + + +/* + * ============================================================================ + * External functions + * ============================================================================ + */ + + +void init_vga_dac(table) +int table; /* Which table to use */ +{ + int loop; + byte *dac; + rgb_struct rgb; + +#ifdef macintosh + + /* load the required DAC in */ + dac = host_load_vga_dac (table); + + /* check it worked */ + if (!dac) + return; + +#else /* macintosh */ + + switch (table) + { + case 0: + dac = vga_dac; + break; + case 1: + dac = vga_low_dac; + break; + case 2: + dac = vga_256_dac; + break; + default: + assert1(FALSE,"Bad VGA DAC table %d",table); + } + +#endif /* macintosh */ + + for(loop = 0; loop < 0x100; loop++) + { + rgb.red = *dac; rgb.green = dac[1]; rgb.blue = dac[2]; + set_dac(loop,&rgb); + dac+=3; + } + +#ifdef macintosh + + /* and dump the DAC back into the heap */ + host_dump_vga_dac (); + +#endif /* macintosh */ +} + +/***** Routines to handle VGA 256 colour modes, called from video.c **********/ +GLOBAL VOID vga_graphics_write_char + IFN6( LONG, col, LONG, row, LONG, ch, IU8, colour, LONG, page, LONG, nchs) +{ + register sys_addr char_addr; + register long screen_offset; + register int i,j,k,char_height,len; + register int scan_length = 8*sas_w_at_no_check(VID_COLS); + register byte mask, val, bank; + + UNUSED(page); + + char_height = sas_hw_at_no_check(ega_char_height); + char_addr = follow_ptr(EGA_FONT_INT*4)+char_height*ch; + +/* VGA 256 colour mode has only one page, so ignore 'page' */ + + /* + * Set read/write banks to zero to optimise the update_alg call + */ + + set_banking( 0, 0 ); + + screen_offset = row*scan_length*char_height+8*col; + len = ( nchs << 3 ) - 1; + + for(i=0;i> 1; + } + } + + screen_offset += scan_length - ( nchs << 3 ); + } + + /* + * Set read/write banks to last value in case someone relies on this side-effect + */ + + bank = ( screen_offset - ( scan_length - ( nchs << 3 ))) >> 16; + set_banking( bank, bank ); +} + +GLOBAL VOID vga_write_dot + IFN4(LONG, colour, LONG, page, LONG, pixcol, LONG, row) +{ +#ifdef REAL_VGA + register sys_addr screen_offset; + + screen_offset = video_pc_low_regen+8*row*sas_w_at_no_check(VID_COLS)+pixcol; + sas_store(screen_offset, colour); /* WOW - that's easy!! */ +#else + long screen_offset; + UTINY bank; + + UNUSED(page); + + screen_offset = (8*row*sas_w_at_no_check(VID_COLS)+pixcol); + + bank = screen_offset >> 16; + set_banking( bank, bank ); + + EGA_plane0123[screen_offset] = colour; + (*update_alg.mark_byte)(screen_offset); +#endif /* REAL_VGA */ +} + +GLOBAL VOID vga_sensible_graph_scroll_up + IFN6( LONG, row, LONG, col, LONG, rowsdiff, LONG, colsdiff, LONG, lines, LONG, attr) +{ + register int col_incr = 8*sas_w_at_no_check(VID_COLS); + register int i; + register long source,dest; + register byte char_height; + boolean screen_updated; + + col *= 8; colsdiff *= 8; /* 8 bytes per character */ + char_height = sas_hw_at_no_check(ega_char_height); + rowsdiff *= char_height; + lines *= char_height; +#ifdef REAL_VGA + /* Not done for back M */ + dest = video_pc_low_regen+sas_loadw(VID_ADDR)+ + row*col_incr*char_height+col; + source = dest+lines*col_incr; + for(i=0;i> 1; + } + screen += scan_length - 8; + } + search_font((char *)the_char,(int)char_height); +} + +GLOBAL VOID vga_read_dot IFN3(LONG, page, LONG, pixcol, LONG, row) +{ + register host_addr screen; + + UNUSED(page); + +/*printf("vga_read_dot(%d,%d,%d)\n",page,col,row);*/ +#ifdef REAL_VGA + screen = video_pc_low_regen+8*row*sas_w_at_no_check(VID_COLS)+pixcol; +#else + screen = &EGA_plane0123[8*row*sas_w_at_no_check(VID_COLS)+pixcol]; +#endif /* REAL_VGA */ + setAL(*screen) ; /* WOW - that's easy!! */ +} + +/****** Routines to handle BIOS functions new to VGA *******/ +void vga_set_palette() +{ + /* + * Called via INT 10 AH=10, AL='not understood by ega_set_palette()' + * Sets/reads VGA DACs. + */ + int i,dac; + byte temp; /* For inb()s. */ + byte mode_reg; + rgb_struct rgb_dac; + sys_addr ptr; + switch(getAL()) + { + case 7: /* Read attribute register */ + outb(EGA_AC_INDEX_DATA,getBL()); /* set index */ + inb(EGA_AC_SECRET,&temp); + setBH(temp); + inb(EGA_IPSTAT1_REG,&temp); + outb(EGA_AC_INDEX_DATA, EGA_PALETTE_ENABLE); + break; + case 8: /* Read overscan register */ + outb(EGA_AC_INDEX_DATA,17); /* overscan index */ + inb(EGA_AC_SECRET,&temp); + setBH(temp); + inb(EGA_IPSTAT1_REG,&temp); + outb(EGA_AC_INDEX_DATA, EGA_PALETTE_ENABLE); + break; + case 9: /* Read all palette regs. + overscan */ + ptr = effective_addr(getES(),getDX()); + for(i=0;i<16;i++) + { + outb(EGA_AC_INDEX_DATA,i); /* set index */ + inb(EGA_AC_SECRET,&temp); + sas_store(ptr, temp); + inb(EGA_IPSTAT1_REG,&temp); + ptr++; + } + outb(EGA_AC_INDEX_DATA,17); /* overscan index */ + inb(EGA_AC_SECRET,&temp); + sas_store(ptr, temp); + inb(EGA_IPSTAT1_REG,&temp); + outb(EGA_AC_INDEX_DATA, EGA_PALETTE_ENABLE); + break; + case 0x10: /* Set one DAC */ + rgb_dac.red = getDH(); + rgb_dac.green = getCH(); + rgb_dac.blue = getCL(); + set_dac(getBX(),&rgb_dac); + break; + case 0x12: /* Set block of DACs */ + ptr = effective_addr(getES(),getDX()); + dac = getBX(); + for(i=0;i 0x13) + video_mode += 0x4c; +#endif /* V7VGA */ + +/* + * Store VGA capability table pointer. Usually lives in Insignia ROM, on NT + * x86 it has to live in ntio.sys. + */ +#if defined(NTVDM) && defined(X86GFX) + sas_storew(buf, vga1b_off); + sas_storew(buf+2, vga1b_seg); +#else + sas_storew(buf,INT10_1B_DATA); + sas_storew(buf+2,EGA_SEG); +#endif /* NTVDM & X86GFX */ + + sas_store(buf+0x4, video_mode); /* Current video mode */ + sas_storew(buf+5,sas_w_at_no_check(VID_COLS)); /* Cols on screen */ + sas_storew(buf+7,sas_w_at_no_check(VID_LEN)); /* Size of screen */ + sas_storew(buf+9,sas_w_at_no_check(VID_ADDR)); /* Address of screen */ + sas_move_bytes_forward(VID_CURPOS,buf+0xB,16); /* Cursor positions */ + sas_storew(buf+0x1b,sas_w_at_no_check(VID_CURMOD)); /* Cursor type */ + sas_store(buf+0x1D, sas_hw_at_no_check(vd_current_page)); + sas_storew(buf+0x1E,sas_w_at_no_check(VID_INDEX)); + sas_store(buf+0x20, sas_hw_at_no_check(vd_crt_mode)); + sas_store(buf+0x21, sas_hw_at_no_check(vd_crt_palette)); + sas_store(buf+0x22, sas_hw_at_no_check(vd_rows_on_screen)+1); + sas_storew(buf+0x23,sas_w_at_no_check(ega_char_height)); + sas_store(buf+0x25, VGA_COLOUR); /* Active display */ + sas_store(buf+0x26, 0); /* Inactive display (none) */ +#ifdef V7VGA + if (video_mode >= 0x60) + { + sas_storew(buf+0x27,vd_ext_graph_table[video_mode-0x60].ncols); + sas_store(buf+0x29, vd_ext_graph_table[video_mode-0x60].npages); + } + else if (video_mode >= 0x40) + { + sas_storew(buf+0x27,vd_ext_text_table[video_mode-0x40].ncols); + sas_store(buf+0x29, vd_ext_text_table[video_mode-0x40].npages); + } + else + { + sas_storew(buf+0x27,vd_mode_table[video_mode].ncols); + sas_store(buf+0x29, vd_mode_table[video_mode].npages); + } +#else + sas_storew(buf+0x27,vd_mode_table[video_mode].ncols); + sas_store(buf+0x29, vd_mode_table[video_mode].npages); +#endif /* V7VGA */ + sas_store(buf+0x2A, get_scanlines()); + + outb(EGA_SEQ_INDEX,3); + inb(EGA_SEQ_DATA,&temp); /* Character Font select reg. */ + sas_store(buf+0x2B, (temp & 3)|((temp & 0x10)>>2)); + /* extract bits 410 - font B */ + sas_store(buf+0x2C, ((temp & 0xC)>>2)|((temp & 0x20)>>3)); + /* extract bits 532 - font A */ + + temp = 1; /* All modes on all displays active */ + if(is_GREY())temp |= 2; + if(is_MONO())temp |= 4; + if(is_PAL_load_off())temp |=8; + if(get_EGA_cursor_no_emulate())temp |= 0x10; + inb(EGA_IPSTAT1_REG,&mode_reg); /* Clear Attribute flip-flop */ + outb(EGA_AC_INDEX_DATA,16); /* mode control index */ + inb(EGA_AC_SECRET,&mode_reg); + if(mode_reg & 8)temp |= 0x20; + inb(EGA_IPSTAT1_REG,&mode_reg); /* Clear Attribute flip-flop */ + outb(EGA_AC_INDEX_DATA, EGA_PALETTE_ENABLE); + sas_store(buf+0x2D, temp); + sas_store(buf+0x31, 3); /* 256KB video memory */ + setAX(0x1B); /* We did it! */ +#ifdef HERC + } /* if VGA */ + if( video_adapter == HERCULES) + { + video_mode = sas_hw_at(vd_video_mode); + sas_storew(buf,INT10_1B_DATA); + sas_storew(buf+2,EGA_SEG); + sas_store(buf+0x4, video_mode); /* Current video mode */ + sas_storew(buf+5,sas_w_at(VID_COLS)); /* Cols on screen */ + sas_storew(buf+7,sas_w_at(VID_LEN)); /* Size of screen */ + sas_storew(buf+9,sas_w_at(VID_ADDR)); /* Address of screen */ + sas_move_bytes_forward(VID_CURPOS,buf+0xB,16); /* Cursor positions */ + sas_store(buf+0x1b, HERC_CURS_START+HERC_CURS_HEIGHT); /* Cursor end line */ + sas_store(buf+0x1c, HERC_CURS_START); /* Cursor start line */ + sas_store(buf+0x1D, sas_hw_at(vd_current_page)); + sas_storew(buf+0x1E,sas_w_at(VID_INDEX)); + sas_store(buf+0x20, sas_hw_at(vd_crt_mode)); + sas_store(buf+0x21, sas_hw_at(vd_crt_palette)); + sas_store(buf+0x22, sas_hw_at(vd_rows_on_screen)+1); + sas_storew(buf+0x23, 14); /* char height is 14 */ + sas_store(buf+0x25,0x01 ); /* 01=MDA with monochrome display as Active display */ + sas_store(buf+0x26, 0); /* Inactive display (none) */ + + vd_mode_table[video_mode].ncols= 2; /* Black & White 2 colors */ + sas_storew(buf+0x27,vd_mode_table[video_mode].ncols); + vd_mode_table[video_mode].npages= 2; /* support 2 pages */ + sas_store(buf+0x29, vd_mode_table[video_mode].npages); + + sas_store(buf+0x2A, get_scanlines()); + + sas_store(buf+0x2B,0x00); /* Primary Font select always 0 */ + sas_store(buf+0x2C,0x00); /* Secondary Font select always 0 */ + + + sas_store(buf+0x2D, 0x30); /* MDA with Monochrome Display */ + sas_store(buf+0x31, 0); /* 64KB video memory */ + setAX(0x1B); /* We did it! */ + } /* if HERCULES */ +#endif /* HERC */ +} + +void vga_int_1C() +{ +sys_addr buff = effective_addr(getES(),getBX()); +int i; +word states; +half_word temp; +rgb_struct rgb_dac; +static word buff_sizes[] = { 0,2,2,3,0x0d,0x0e,0x0e,0x0f }; +static byte const1[] = { 2,0x18,6,0x20 }; +static byte const2[] = { 0xd4,3,0x20,7,0,0 }; +static byte const3[] = { 0x20 }; +static byte const4[] = { 0x68,0x15,0x20,0x0a,0x85,0,0,0xc0,0,0x0c,0,0xc0,0,8,0,0xc0 }; +static byte const5[] = { 1,0,0xff }; + + /* check that we really are a VGA */ + if (video_adapter != VGA) + { + /* we are not -so this function is not implemented */ + not_imp(); + return; + } + states = getCX() & 7; + switch (getAL()) + { + case 00: /* buffer sizes into bx */ + setBX(buff_sizes[states]); + setAL(0x1c); + break; + + case 01: /* Save video states to es:bx */ + if( states&1 ) /* Video hardware state */ + sas_storew(buff, 0x0064); /* ID words. DODGY! */ + if( states&2 ) /* Video BIOS state */ + sas_storew(buff+2, 0x0064); + if( states&4 ) /* Video DAC state */ + sas_storew(buff+4, 0x0064); + buff += 0x20; + + if( states&1 ) /* Video hardware state */ + { + for(i=0;i +#include +#include StringH +#include TypesH +#include FCntlH + +/* + * SoftPC include files + */ +#include "xt.h" +#include "sas.h" +#include CpuH +#include "error.h" +#include "config.h" +#include "bios.h" +#include "ios.h" +#include "gmi.h" +#include "gvi.h" +#include "gfx_upd.h" +#include "host.h" +#include "video.h" +#include "cga.h" +#ifdef EGG +#include "egacpu.h" +#include "egaports.h" +#endif /* EGG */ +#include "equip.h" +#include "debug.h" +#include "timer.h" +#ifndef PROD +#include "trace.h" +#endif +#include "egavideo.h" +#include "host_gfx.h" +#include "cpu_vid.h" +#include "ga_defs.h" + +#ifdef EGG +#define VD_ROWS_ON_SCREEN sas_hw_at_no_check(vd_rows_on_screen) +#else +#define VD_ROWS_ON_SCREEN vd_rows_on_screen +#endif /* EGG */ + + +#ifdef NTVDM +short stream_io_dirty_count_32 = 0; +half_word * stream_io_buffer = NULL; +boolean stream_io_enabled = FALSE; +word stream_io_buffer_size = 0; +word * stream_io_dirty_count_ptr = NULL; +#ifdef MONITOR +sys_addr stream_io_bios_busy_sysaddr; +#endif + +#endif + + + +/* + * ============================================================================ + * Global data + * ============================================================================ + * + * These variables are basically the same as the corresponding gvi_.. variables, + * but reflect where the BIOS thinks the screen is, rather than where it really is. + * This was done to fix "dots on screen" problem with EGA-PICS, which changes screen + * mode behind the BIOS's back. + */ +GLOBAL sys_addr video_pc_low_regen,video_pc_high_regen; + + +/* + * ============================================================================ + * Local static data and defines + * ============================================================================ + */ + +/* internal function declarations */ +LOCAL sys_addr extend_addr IPT1(sys_addr,addr); +LOCAL half_word fgcolmask IPT1(word, rawchar); +LOCAL word expand_byte IPT1(word, lobyte); +GLOBAL void graphics_write_char IPT5(half_word, x, half_word, y, half_word, wchar, half_word, attr, word, how_many); +LOCAL void M6845_reg_init IPT2(half_word, mode, word, base); +LOCAL void vd_dummy IPT0(); + +#ifdef HERC +GLOBAL void herc_alt_sel IPT0(); +GLOBAL void herc_char_gen IPT0(); +GLOBAL void herc_video_init IPT0(); +#endif /* HERC */ + +void (*video_func[]) () = { + vd_set_mode, + vd_set_cursor_mode, + vd_set_cursor_position, + vd_get_cursor_position, + vd_get_light_pen, + vd_set_active_page, + vd_scroll_up, + vd_scroll_down, + vd_read_attrib_char, + vd_write_char_attrib, + vd_write_char, + vd_set_colour_palette, + vd_write_dot, + vd_read_dot, + vd_write_teletype, + vd_get_mode, + vd_dummy, +#ifdef HERC + herc_char_gen, + herc_alt_sel, +#else /* !HERC */ + vd_dummy, + vd_dummy, +#endif /* HERC */ + vd_write_string, + vd_dummy, + vd_dummy, + vd_dummy, + vd_dummy, + vd_dummy, + vd_dummy, + vd_dummy, +#ifdef VGG + vga_disp_func, +#else /* !VGG */ + vd_dummy, +#endif /* VGG */ + vd_dummy, + }; + +unsigned char valid_modes[] = + { + ALL_MODES, /* Mode 0. */ + ALL_MODES, /* Mode 1. */ + ALL_MODES, /* Mode 2. */ + ALL_MODES, /* Mode 3. */ + ALL_MODES, /* Mode 4. */ + ALL_MODES, /* Mode 5. */ + ALL_MODES, /* Mode 6. */ + ALL_MODES, /* Mode 7. */ + NO_MODES, /* Mode 8. */ + NO_MODES, /* Mode 9. */ + NO_MODES, /* Mode 10. */ + EGA_MODE | VGA_MODE, /* Mode 11. */ + EGA_MODE | VGA_MODE, /* Mode 12. */ + EGA_MODE | VGA_MODE, /* Mode 13. */ + EGA_MODE | VGA_MODE, /* Mode 14. */ + EGA_MODE | VGA_MODE, /* Mode 15. */ + EGA_MODE | VGA_MODE, /* Mode 16. */ + VGA_MODE, /* Mode 17. */ + VGA_MODE, /* Mode 18. */ + VGA_MODE, /* Mode 19. */ + }; + +MODE_ENTRY vd_mode_table[] = { + 0xB8000L, 0xBFFFFL, VD_CLEAR_TEXT, 0x2C,40,16,8,/*Blink|BW*/ + 0xB8000L, 0xBFFFFL, VD_CLEAR_TEXT, 0x28,40,16,8,/*Blink*/ + 0xB8000L, 0xBFFFFL, VD_CLEAR_TEXT, 0x2D,80,16,8,/*Blink|BW|80x25*/ + 0xB8000L, 0xBFFFFL, VD_CLEAR_TEXT, 0x29,80,16,8,/*Blink|80x25*/ + 0xB8000L, 0xBFFFFL, VD_CLEAR_GRAPHICS,0x2A,40,4,1,/*Blink|graph*/ + 0xB8000L, 0xBFFFFL, VD_CLEAR_GRAPHICS,0x2E,40,4,1,/*Blink|graph|BW*/ + 0xB8000L, 0xBFFFFL, VD_CLEAR_GRAPHICS,0x1E,80,2,1,/*640x200|graph|BW*/ + 0xB0000L, 0xB7FFFL, VD_CLEAR_TEXT, 0x29,80,0,8,/*MDA:Blink|80x25*/ + 0L, 0L, 0, VD_BAD_MODE, 0,0,0, /* Never a valid mode */ + 0L, 0L ,0, VD_BAD_MODE, 0,0,0, /* Never a valid mode */ + 0,0,0, VD_BAD_MODE, 0,0,0, /* Never a valid mode */ + 0xA0000L, 0xAFFFFL, 0,VD_BAD_MODE,0,0,0,/* Mode B - EGA colour font load */ + 0xA0000L, 0xAFFFFL, 0,VD_BAD_MODE,0,0,0,/* Mode C - EGA monochrome font load */ + 0xA0000L, 0xAFFFFL, VD_CLEAR_GRAPHICS,VD_BAD_MODE,40,16,8,/* 320x200 EGA graphics */ + 0xA0000L, 0xAFFFFL, VD_CLEAR_GRAPHICS,VD_BAD_MODE,80,16,4,/* 640x200 EGA graphics */ + 0xA0000L, 0xAFFFFL, VD_CLEAR_GRAPHICS,VD_BAD_MODE,80,2,2,/* 640x350 EGA 'mono' */ + 0xA0000L, 0xAFFFFL, VD_CLEAR_GRAPHICS,VD_BAD_MODE,80,16,2,/* 640x350 EGA 16 colour */ +#ifdef VGG + 0xA0000L, 0xAFFFFL, VD_CLEAR_GRAPHICS,VD_BAD_MODE,80,2,1,/* 640x480 EGA++ 2 colour */ + 0xA0000L, 0xAFFFFL, VD_CLEAR_GRAPHICS,VD_BAD_MODE,80,16,1,/* 640x480 EGA++ 16 colour */ + 0xA0000L, 0xAFFFFL, VD_CLEAR_GRAPHICS,VD_BAD_MODE,40,256,1,/* 320x200 VGA 256 colour */ +#endif + }; + +#ifdef V7VGA +MODE_ENTRY vd_ext_text_table[] = { + 0xB8000L, 0xBFFFFL, VD_CLEAR_TEXT,VD_BAD_MODE,80,16,8,/* 80x43 V7VGA 16 colour */ + 0xB8000L, 0xBFFFFL, VD_CLEAR_TEXT,VD_BAD_MODE,132,16,8,/* 132x25 V7VGA 16 colour */ + 0xB8000L, 0xBFFFFL, VD_CLEAR_TEXT,VD_BAD_MODE,132,16,8,/* 132x43 V7VGA 16 colour */ + 0xB8000L, 0xBFFFFL, VD_CLEAR_TEXT,VD_BAD_MODE,80,16,8,/* 80x60 V7VGA 16 colour */ + 0xB8000L, 0xBFFFFL, VD_CLEAR_TEXT,VD_BAD_MODE,100,16,8,/* 100x60 V7VGA 16 colour */ + 0xB8000L, 0xBFFFFL, VD_CLEAR_TEXT,VD_BAD_MODE,132,16,8,/* 132x28 V7VGA 16 colour */ + }; + +MODE_ENTRY vd_ext_graph_table[] = { + 0xA0000L, 0xAFFFFL, VD_CLEAR_GRAPHICS,VD_BAD_MODE,94,16,2,/* 752x410 V7VGA 16 colour */ + 0xA0000L, 0xAFFFFL, VD_CLEAR_GRAPHICS,VD_BAD_MODE,90,16,2,/* 720x540 V7VGA 16 colour */ + 0xA0000L, 0xAFFFFL, VD_CLEAR_GRAPHICS,VD_BAD_MODE,100,16,2,/* 800x600 V7VGA 16 colour */ + 0xA0000L, 0xAFFFFL, VD_CLEAR_GRAPHICS,VD_BAD_MODE,128,2,2,/* 1024x768 V7VGA 2 colour */ + 0xA0000L, 0xAFFFFL, VD_CLEAR_GRAPHICS,VD_BAD_MODE,128,4,2,/* 1024x768 V7VGA 4 colour */ + 0xA0000L, 0xAFFFFL, VD_CLEAR_GRAPHICS,VD_BAD_MODE,128,16,2,/* 1024x768 V7VGA 16 colour */ + 0xA0000L, 0xAFFFFL, VD_CLEAR_GRAPHICS,VD_BAD_MODE,80,256,1,/* 640x400 V7VGA 256 colour */ + 0xA0000L, 0xAFFFFL, VD_CLEAR_GRAPHICS,VD_BAD_MODE,80,256,1,/* 640x480 V7VGA 256 colour */ + 0xA0000L, 0xAFFFFL, VD_CLEAR_GRAPHICS,VD_BAD_MODE,90,256,1,/* 720x540 V7VGA 256 colour */ + 0xA0000L, 0xAFFFFL, VD_CLEAR_GRAPHICS,VD_BAD_MODE,100,256,1,/* 800x600 V7VGA 256 colour */ + }; +#endif /* V7VGA */ + +/* + * Macros to calculate the offset from the start of the screen buffer + * and start of page for a given row and column. + */ + +#define vd_page_offset(col, row) ( ((row) * vd_cols_on_screen + (col))<<1) + +#define vd_regen_offset(page, col, row) \ + ((page) * sas_w_at_no_check(VID_LEN) + vd_page_offset((col), (row)) ) + +#define vd_high_offset(col, row) (((row) * ONELINEOFF)+(col)) + +#define vd_medium_offset(col, row) (((row) * ONELINEOFF)+(col<<1)) + +#define vd_cursor_offset(page) \ + ( vd_regen_offset(page, sas_hw_at_no_check(VID_CURPOS+2*page), sas_hw_at_no_check(VID_CURPOS+2*page+1)) ) + +#define GET_CURSOR_POS 3 +#define SET_CURSOR_POS 2 +#define WRITE_A_CHAR 10 + +/* + * Static function declarations. + */ + +LOCAL void sensible_text_scroll_down IPT6(int, t_row, int, l_col, int, rowsdiff, int, colsdiff, int, lines, int, attr); +LOCAL void sensible_text_scroll_up IPT6(int, t_row, int, l_col, int, rowsdiff, int, colsdiff, int, lines, int, attr); +LOCAL void sensible_graph_scroll_up IPT6(int, t_row, int, l_col, int, rowsdiff, int, colsdiff, int, lines, int, attr); +LOCAL void sensible_graph_scroll_down IPT6(int, t_row, int, l_col, int, rowsdiff, int, colsdiff, int, lines, int, attr); +LOCAL void kinky_scroll_up IPT7(int, t_row, int, l_col, int, rowsdiff, int, colsdiff, int, lines, int, attr, int, vd_cols_on_screen); +LOCAL void kinky_scroll_down IPT7(int, t_row, int, l_col, int, rowsdiff, int, colsdiff, int, lines, int, attr, int, vd_cols_on_screen); + +/* + * ============================================================================ + * External functions + * ============================================================================ + */ + +GLOBAL VOID +simple_bios_byte_wrt IFN2(ULONG, ch, ULONG, ch_addr) +{ + *(IU8 *)(getVideoscreen_ptr() + ch_addr) = (UTINY)ch; +#if !defined(EGG) && !defined(C_VID) && !defined(A_VID) + setVideodirty_total(getVideodirty_total() + 1); +#endif /* not EGG or C_VID or A_VID */ +} + +GLOBAL VOID +simple_bios_word_wrt IFN2(ULONG, ch_attr, ULONG, ch_addr) +{ + *(IU8 *)(getVideoscreen_ptr() + ch_addr) = (UTINY)ch_attr; + *(IU8 *)(getVideoscreen_ptr() + ch_addr + 1) = (UTINY)(ch_attr >> 8); +#if !defined(EGG) && !defined(C_VID) && !defined(A_VID) + setVideodirty_total(getVideodirty_total() + 1); +#endif /* not EGG or C_VID or A_VID */ +} + +/* + * It is possible for the Hercules to attempt text in graphics mode, + * relying on our int 10 handler to call itself recursively so a user + * handler can intercept the write character function. + */ + +GLOBAL void vd_set_mode IFN0() +{ + half_word card_mode = 0; + half_word pag; + EQUIPMENT_WORD equip_flag; + word page_size,vd_addr_6845,vd_cols_on_screen; + SHORT current_video_mode = getAL(); + + if (is_bad_vid_mode(current_video_mode)) + { + always_trace1("Bad video mode - %d.\n", current_video_mode); + return; + } + + /* + * Set the Video mode to the value in AL + */ + equip_flag.all = sas_w_at_no_check(EQUIP_FLAG); + if ((half_word)current_video_mode > VD_MAX_MODE || + vd_mode_table[current_video_mode].mode_control_val == VD_BAD_MODE) { +#ifndef PROD + trace(EBAD_VIDEO_MODE, DUMP_REG); +#endif + return; + } + if (equip_flag.bits.video_mode == VIDEO_MODE_80X25_BW) { + vd_addr_6845 = 0x3B4; /* Index register for B/W M6845 chip */ + sas_store_no_check (vd_video_mode , 7); /* Force B/W mode */ + card_mode++; + } + else { + vd_addr_6845 = 0x3D4; + if (current_video_mode == 7) { + /* + * Someone has tried to set the monochrome mode without + * the monochrome card installed - this can be generated by + * a 'mode 80' from medium res graphics mode. + * Take 'I am very confused' type actions by clearing the + * screen and then disabling video - this is v. similar to + * the action taken by the PC but with less snow! + */ + + /* + * Clear the video area + */ +#ifdef REAL_VGA + sas_fillsw_16(video_pc_low_regen, + vd_mode_table[sas_hw_at_no_check(vd_video_mode)].clear_char, + (video_pc_high_regen - video_pc_low_regen)/ 2 + 1); +#else + sas_fillsw(video_pc_low_regen, + vd_mode_table[sas_hw_at_no_check(vd_video_mode)].clear_char, + (video_pc_high_regen - video_pc_low_regen)/ 2 + 1); +#endif + + /* + * Force a redraw + */ + outb(M6845_MODE_REG, card_mode); + outb(M6845_MODE_REG, + vd_mode_table[sas_hw_at_no_check(vd_video_mode)].mode_control_val | VIDEO_ENABLE); + /* + * Turn off the video until another mode command is given + */ + outb(M6845_MODE_REG, + vd_mode_table[sas_hw_at_no_check(vd_video_mode)].mode_control_val & ~VIDEO_ENABLE); + return; + } + sas_store_no_check (vd_video_mode , current_video_mode); + } + +#ifdef EGG + sas_store_no_check(vd_rows_on_screen, 24); +#endif + sas_store_no_check (vd_current_page , 0); + + /* + * Initialise the Control Register + */ + + outb(M6845_MODE_REG, card_mode); + + /* + * Set up M6845 registers for this mode + */ + + M6845_reg_init(sas_hw_at_no_check(vd_video_mode), vd_addr_6845); + + /* + * ... now overwrite the dynamic registers, eg cursor position + */ + + outb(vd_addr_6845, R14_CURS_ADDRH); + outb(vd_addr_6845+1, 0); + outb(vd_addr_6845, R15_CURS_ADDRL); + outb(vd_addr_6845+1, 0); + /* + * Clear the video area + */ +#ifdef REAL_VGA + sas_fillsw_16(video_pc_low_regen, vd_mode_table[sas_hw_at_no_check(vd_video_mode)].clear_char, + (video_pc_high_regen - video_pc_low_regen)/ 2 + 1); +#else + sas_fillsw(video_pc_low_regen, vd_mode_table[sas_hw_at_no_check(vd_video_mode)].clear_char, + (video_pc_high_regen - video_pc_low_regen)/ 2 + 1); +#endif + + /* + * re-enable video for this mode + */ + outb(M6845_MODE_REG, vd_mode_table[sas_hw_at_no_check(vd_video_mode)].mode_control_val); + + if (sas_hw_at_no_check(vd_video_mode) != 7) { + if (sas_hw_at_no_check(vd_video_mode) != 6) + sas_store_no_check (vd_crt_palette , 0x30); + else + sas_store_no_check (vd_crt_palette , 0x3F); + outb(CGA_COLOUR_REG, sas_hw_at_no_check(vd_crt_palette)); + } + + vd_cols_on_screen = vd_mode_table[sas_hw_at_no_check(vd_video_mode)].mode_screen_cols; + + + /* + * Update BIOS data variables + */ + + sas_storew_no_check((sys_addr)VID_COLS, vd_cols_on_screen); + sas_storew_no_check((sys_addr)VID_ADDR, 0); + sas_storew_no_check((sys_addr)VID_INDEX, vd_addr_6845); + sas_store_no_check (vd_crt_mode , vd_mode_table[sas_hw_at_no_check(vd_video_mode)].mode_control_val); + for(pag=0; pag<8; pag++) + sas_storew_no_check(VID_CURPOS + 2*pag, 0); + if(sas_hw_at_no_check(vd_video_mode) == 7) + page_size = 4096; + else + page_size = sas_w_at_no_check(VID_LENS+(sas_hw_at_no_check(vd_video_mode) & 0xE)); /* sneakily divide mode by 2 and use as word address! */ + sas_storew_no_check(VID_LEN,page_size); +} + + +GLOBAL void vd_set_cursor_mode IFN0() +{ + /* + * Set cursor mode + * Parameters: + * CX - cursor value (CH - start scanline, CL - stop scanline) + */ + io_addr vd_addr_6845; + + vd_addr_6845 = sas_w_at_no_check(VID_INDEX); + outb(vd_addr_6845, R10_CURS_START); + outb(vd_addr_6845+1, getCH()); + outb(vd_addr_6845, R11_CURS_END); + outb(vd_addr_6845+1, getCL()); + + /* + * Update BIOS data variables + */ + sure_sub_note_trace2(CURSOR_VERBOSE,"setting bios cursor vbl to start=%d, end=%d",getCH(),getCL()); + + sas_storew_no_check((sys_addr)VID_CURMOD, getCX()); + setAH(0); +} + + +GLOBAL void vd_set_cursor_position IFN0() +{ + /* + * Set cursor variables to new values and update the display + * adaptor registers. + * The parameters are held in the following registers: + * + * DX - row/column of new cursor position + * BH - page number + * + */ + + word cur_pos,vd_addr_6845,vd_cols_on_screen; + + /* Load internal variables with the values stored in BIOS + * data area. + */ + + vd_addr_6845 = sas_w_at_no_check(VID_INDEX); + vd_cols_on_screen = sas_w_at_no_check(VID_COLS); + + sas_storew_no_check(VID_CURPOS+(getBH()*2), getDX()); + + if (sas_hw_at_no_check(vd_current_page) == getBH()) { /* display if this page */ + + /* + * Calculate position in regen buffer, ignoring attribute bytes + */ + + cur_pos = vd_regen_offset(getBH(), getDL(), getDH()); + cur_pos /= 2; /* not interested in attributes */ + + /* + * tell the 6845 all about the change + */ + outb(vd_addr_6845, R14_CURS_ADDRH); + outb(vd_addr_6845+1, cur_pos >> 8); + outb(vd_addr_6845, R15_CURS_ADDRL); + outb(vd_addr_6845+1, cur_pos & 0xff); + } +} + + +GLOBAL void vd_get_cursor_position IFN0() +{ + /* Load internal variables with the values stored in BIOS + * data area. + */ + word vd_cursor_mode; + half_word vd_cursor_col, vd_cursor_row; + + vd_cursor_mode = sas_w_at_no_check(VID_CURMOD); + vd_cursor_col = sas_hw_at_no_check(VID_CURPOS + getBH()*2); + vd_cursor_row = sas_hw_at_no_check(VID_CURPOS + getBH()*2 + 1); + + /* + * Return the cursor coordinates and mode + */ + sure_sub_note_trace4(CURSOR_VERBOSE,"returning bios cursor info; start=%d, end=%d, row=%#x, col=%#x",(vd_cursor_mode>>8) & 0xff,vd_cursor_mode & 0xff, vd_cursor_row, vd_cursor_col); + + setDH(vd_cursor_row); + setDL(vd_cursor_col); + setCX(vd_cursor_mode); + setAH(0); +} + + +GLOBAL void vd_get_light_pen IFN0() +{ + /* + * Read the current position of the light pen. Tests light pen switch + * & trigger & returns AH == 0 if not triggered. (This should always be + * true in this version) If set (AH == 1) then returns: + * DH, DL - row, column of char lp posn. + * CH - raster line (0-199) + * BX - pixel column (0-319,639) + */ + + half_word status; + + if (sas_hw_at_no_check(vd_video_mode) == 7) { + setAX(0x00F0); /* Returned by real MDA */ + return; /* MDA doesn't support a light pen */ + } + + inb(CGA_STATUS_REG, &status); + if ((status & 0x6) == 0) { /* Switch & trigger */ + setAH(0); /* fail */ + return; + } + else { /* not supported */ +#ifndef PROD + trace("call to light pen - trigger | switch was on!", DUMP_REG); +#endif + } +} + + +GLOBAL void vd_set_active_page IFN0() +{ + /* + * Set active display page from the 8 (4) available from the adaptor. + * Parameters: + * AL - New active page # + */ + + word cur_pos,vd_addr_6845,vd_crt_start,vd_cols_on_screen; + half_word vd_cursor_col, vd_cursor_row; +#ifdef V7VGA + UTINY bank; +#endif + + /* Load internal variables with the values stored in BIOS + * data area. + */ + + vd_cols_on_screen = sas_w_at_no_check(VID_COLS); + vd_addr_6845 = sas_w_at_no_check(VID_INDEX); + + /* redundancy check against BIOS page number variable removed as it + was redundant (more checks in the outbs) and caused a bug in + "image.exe", a 3D drawing package for EGA which itself sets the + BIOS variable before using this routine to set the active page */ + + if (sas_hw_at_no_check(vd_video_mode) >3 && sas_hw_at_no_check(vd_video_mode)<8)return; /* Only one page for MDA * CGA graphics */ + sas_store_no_check (vd_current_page , getAL()); + +#ifdef V7VGA + /* + * This function is used by the Video 7 to set the bank for the + * hi-res V7 graphics modes. + * For this case, the setting of vd_crt_start etc. seems to be + * inappropriate. + */ + + if (sas_hw_at_no_check(vd_video_mode) >= 0x14) + { + bank = sas_hw_at_no_check(vd_current_page); + set_banking( bank, bank ); + + return; + } +#endif /* V7VGA */ + + /* start of screen */ + vd_crt_start = sas_w_at_no_check(VID_LEN) * sas_hw_at_no_check(vd_current_page); + /* + * Update BIOS data variables + */ + sas_storew_no_check((sys_addr)VID_ADDR, vd_crt_start); + + if(alpha_num_mode())vd_crt_start /= 2; /* WORD address for text modes */ + + /* + * set the start address into the colour adaptor + */ + + outb(CGA_INDEX_REG, CGA_R12_START_ADDRH); + outb(CGA_DATA_REG, vd_crt_start >> 8); + outb(CGA_INDEX_REG, CGA_R13_START_ADDRL); + outb(CGA_DATA_REG, vd_crt_start & 0xff); + + /* + * Swap to cursor for this page + */ + + vd_cursor_col = sas_hw_at_no_check(VID_CURPOS + sas_hw_at_no_check(vd_current_page)*2); + vd_cursor_row = sas_hw_at_no_check(VID_CURPOS + sas_hw_at_no_check(vd_current_page)*2 + 1); + + /* + * Calculate position in regen buffer, ignoring attribute bytes + */ + + cur_pos = (sas_w_at_no_check(VID_ADDR)+vd_page_offset( vd_cursor_col, vd_cursor_row)) / 2; + + outb(vd_addr_6845, R14_CURS_ADDRH); + outb(vd_addr_6845+1, cur_pos >> 8); + outb(vd_addr_6845, R15_CURS_ADDRL); + outb(vd_addr_6845+1, cur_pos & 0xff); + +} + +GLOBAL void vd_scroll_up IFN0() +{ + /* + * Scroll up a block of text. The parameters are held in the following + * registers: + * + * AL - Number of rows to scroll. NB. if AL == 0 then the whole region + * is cleared. + * CX - Row/col of upper left corner + * DX - row/col of lower right corner + * BH - attribute to be used on blanked line(s) + * + * IMPORTANT MESSAGE TO ALL VIDEO HACKERS: + * vd_scroll_up() and vd_scroll_down() are functionally identical + * except for the sense of the scroll - if you find and fix a bug + * in one, then please do the same for the other + */ + word vd_cols_on_screen; + int t_row,b_row,l_col,r_col,lines,attr; + int rowsdiff,colsdiff; + + /* Load internal variables with the values stored in BIOS + * data area. + */ + vd_cols_on_screen = sas_w_at_no_check(VID_COLS); + + t_row = getCH(); + b_row = getDH(); + l_col = getCL(); + r_col = getDL(); + lines = getAL(); + attr = getBH(); + + if(b_row > VD_ROWS_ON_SCREEN) + b_row = VD_ROWS_ON_SCREEN; /* trim to screen size */ + + if(t_row > VD_ROWS_ON_SCREEN) + t_row = VD_ROWS_ON_SCREEN; /* trim to screen size */ + + if (r_col < l_col) /* some dipstick has got their left & right mixed up */ + { + colsdiff = l_col; /* use colsdiff as temp */ + l_col = r_col; + r_col = colsdiff; + } + + if ( r_col >= vd_cols_on_screen ) + r_col = vd_cols_on_screen-1; + + colsdiff = r_col-l_col+1; + rowsdiff = b_row-t_row+1; + + if (lines == 0) /* clear region */ + { + lines = rowsdiff; + } + if(r_col == vd_cols_on_screen-1) + { +#ifdef EGG + if(ega_mode()) + ega_sensible_graph_scroll_up(t_row,l_col,rowsdiff,colsdiff,lines,attr); +# ifdef VGG + else if(vga_256_mode()) + vga_sensible_graph_scroll_up(t_row,l_col,rowsdiff,colsdiff,lines,attr); +# endif + else +#endif + kinky_scroll_up(t_row,l_col,rowsdiff,colsdiff,lines,attr,vd_cols_on_screen); + } + else + { + if(alpha_num_mode()) + sensible_text_scroll_up(t_row,l_col,rowsdiff,colsdiff,lines,attr); +#ifdef EGG +# ifdef VGG + else if(vga_256_mode()) + vga_sensible_graph_scroll_up(t_row,l_col,rowsdiff,colsdiff,lines,attr); +# endif + else if(ega_mode()) + ega_sensible_graph_scroll_up(t_row,l_col,rowsdiff,colsdiff,lines,attr); +#endif + else + sensible_graph_scroll_up(t_row,l_col,rowsdiff,colsdiff,lines,attr); +#ifdef EGA_DUMP + dump_scroll(sas_hw_at_no_check(vd_video_mode),0,video_pc_low_regen,sas_w_at_no_check(VID_ADDR),sas_w_at_no_check(VID_COLS), + t_row,l_col,rowsdiff,colsdiff,lines,attr); +#endif + /* + * re-enable video for this mode, if on a CGA adaptor (fixes ROUND42 bug). + */ + if(video_adapter == CGA) + outb(CGA_CONTROL_REG, vd_mode_table[sas_hw_at_no_check(vd_video_mode)].mode_control_val); + } +} + +/* + * Functions to scroll sensible areas of the screen. This routine will try to use + * host scrolling and clearing. + */ +LOCAL void sensible_text_scroll_up IFN6(int, t_row, int, l_col, int, rowsdiff, int, colsdiff, int, lines, int, attr) +{ + register sys_addr source, dest; + register int col_incr,i; + boolean screen_updated = FALSE; + int vd_cols_on_screen = sas_w_at_no_check(VID_COLS); + + + /* Set origin of data movement for calculating screen refresh */ + + source = sas_w_at_no_check(VID_ADDR) + vd_page_offset(l_col, t_row) + video_pc_low_regen; + col_incr = sas_w_at_no_check(VID_COLS) * 2; /* offset to next line */ + + /* Try to scroll the adaptor memory & host screen. */ + + if( source >= get_screen_base() ) + { + screen_updated = (*update_alg.scroll_up)(source,2*colsdiff,rowsdiff,attr,lines,0); + } + + dest = source; +/* + * We dont need to move data which would be scrolled off the + * window. So point source at the first line which needs to + * be retained. + * + * NB if we are just doing a clear, the scroll for loop will + * terminate immediately. + */ + source += lines*col_incr; + for(i = 0; i < rowsdiff-lines; i++) + { +#ifdef REAL_VGA + VcopyStr(&M[dest],&M[source], colsdiff*2); +#else + if( !screen_updated ) + sas_move_bytes_forward (source, dest, colsdiff*2); +#endif + + /* next line */ + source += col_incr; + dest += col_incr; + } + +/* moved all the data we were going to move - blank the cleared region */ + + while(lines--) + { +#ifdef REAL_VGA + sas_fillsw_16(dest, (attr << 8)|' ', colsdiff); +#else + if( !screen_updated ) + sas_fillsw(dest, (attr << 8)|' ', colsdiff); +#endif + dest += col_incr; + } +} + +LOCAL void sensible_graph_scroll_up IFN6(int, t_row, int, l_col, int, rowsdiff, int, colsdiff, int, lines, int, attr) +{ + sys_addr source, dest; + int i,colour; + boolean screen_updated; + + rowsdiff *= 4; /* 8 scans per char - 4 per bank */ + lines *= 4; /* scan lines */ + + /* Set origin of data movement for calculating screen refresh */ + + if( sas_hw_at_no_check(vd_video_mode) != 6) + { + colour = attr & 0x3; + colsdiff *= 2; /* 4 pixels/byte */ + + source = vd_medium_offset(l_col, t_row) + video_pc_low_regen; + } + else + { + colour = attr & 0x1; + source = vd_high_offset(l_col, t_row) + video_pc_low_regen; + } + + /* Try to scroll the adaptor memory & host screen */ + + screen_updated = (*update_alg.scroll_up)(source,colsdiff,rowsdiff,attr,lines,colour); + + if( screen_updated && (video_adapter != CGA )) + return; + + dest = source; + + /* + * We dont need to move data which would be scrolled off the + * window. So point source at the first line which needs to + * be retained. + * + * NB if we are just doing a clear, the scroll for loop will + * terminate immediately. + */ + + source += lines*SCAN_LINE_LENGTH; + + for(i = 0; i < rowsdiff-lines; i++) + { +#ifdef REAL_VGA + VcopyStr(&M[dest],&M[source], colsdiff); +#else + sas_move_bytes_forward (source,dest, colsdiff); +#endif + /* + * graphics mode has to cope with odd bank as well + */ +#ifdef REAL_VGA + VcopyStr(&M[dest+ODD_OFF],&M[source+ODD_OFF], colsdiff); +#else + sas_move_bytes_forward (source+ODD_OFF,dest+ODD_OFF, colsdiff); +#endif + source += SCAN_LINE_LENGTH; + dest += SCAN_LINE_LENGTH; + } + + /* Moved all the data we were going to move - blank the cleared region */ + + while( lines-- ) + { +#ifdef REAL_VGA + sas_fills_16(dest, attr, colsdiff); + sas_fills_16(dest+ODD_OFF, attr, colsdiff); +#else + sas_fills(dest, attr, colsdiff); + sas_fills(dest+ODD_OFF, attr, colsdiff); +#endif + dest += SCAN_LINE_LENGTH; + } +} + +/* + * Handle silly case where the wally programmer is scrolling a daft window. + * We must be careful not to scribble off the end of the video page, to avoid + * nasty things like dead MacIIs. + */ +LOCAL void kinky_scroll_up IFN7(int, t_row, int, l_col, int, rowsdiff, int, colsdiff, int, lines, int, attr, int, vd_cols_on_screen) +{ + register sys_addr source, dest; + register int col_incr; + register int i; + half_word is_alpha; + + switch (sas_hw_at_no_check(vd_video_mode)) { + + case 0: case 1: case 2: /* text */ + case 3: case 7: + is_alpha = TRUE; + /* set origin of data movement for calculating screen refresh */ + source = sas_w_at_no_check(VID_ADDR)+vd_page_offset(l_col, t_row) + video_pc_low_regen; + col_incr = vd_cols_on_screen * 2; /* offset to next line */ + break; + + case 6: case 4: case 5: + is_alpha = FALSE; + rowsdiff *= 4; /* 8 scans per char - 4 per bank */ + lines *= 4; /* scan lines */ + + if (sas_hw_at_no_check(vd_video_mode) != 6) { + colsdiff *= 2; /* 4 pixels/byte */ + /* set origin of data movement for calculating screen refresh */ + source = vd_medium_offset(l_col, t_row) + video_pc_low_regen; + } + else + source = vd_high_offset(l_col, t_row) + video_pc_low_regen; + + break; + + default: +#ifndef PROD + trace("bad video mode\n",DUMP_REG); +#endif + ; + } + + dest = source; +/* + * We dont need to move data which would be scrolled off the + * window. So point source at the first line which needs to + * be retained. AL lines ( = lines ) are to be scrolled so + * add lines* to source pointer - apg + * + * NB if we are just doing a clear, the scroll for loop will + * terminate immediately. + */ + source += lines*col_incr; + if (is_alpha) { + for(i = 0; i < rowsdiff-lines; i++) { +#ifdef REAL_VGA + VcopyStr(&M[dest],&M[source], colsdiff*2); +#else + sas_move_bytes_forward (source,dest, colsdiff*2); +#endif + /* next line */ + source += col_incr; + dest += col_incr; + } + } + else { + for(i = 0; i < rowsdiff-lines; i++) { +#ifdef REAL_VGA + VcopyStr(&M[dest],&M[source], colsdiff); +#else + sas_move_bytes_forward (source,dest, colsdiff); +#endif + /* + * graphics mode has to cope with odd bank as well + */ +#ifdef REAL_VGA + VcopyStr(&M[dest+ODD_OFF],&M[source+ODD_OFF], colsdiff); +#else + sas_move_bytes_forward (source+ODD_OFF,dest+ODD_OFF, colsdiff); +#endif + source += SCAN_LINE_LENGTH; + dest += SCAN_LINE_LENGTH; + } + } + /* moved all the data we were going to move - blank the cleared region */ + if (is_alpha) { + + while(lines--) { + if((dest + 2*colsdiff) > video_pc_high_regen+1) + { + colsdiff = (int)((video_pc_high_regen+1-dest)/2); + lines = 0; /* force termination */ + } +#ifdef REAL_VGA + sas_fillsw_16(dest, (attr << 8)|' ', colsdiff); +#else + sas_fillsw(dest, (attr << 8)|' ', colsdiff); +#endif + dest += col_incr; + } + } + else { + + while( lines-- ) { +#ifdef REAL_VGA + sas_fills_16(dest, attr, colsdiff); + sas_fills_16(dest+ODD_OFF, attr, colsdiff); +#else + sas_fills(dest, attr, colsdiff); + sas_fills(dest+ODD_OFF, attr, colsdiff); +#endif + dest += SCAN_LINE_LENGTH; + } + } + +} + + +GLOBAL void vd_scroll_down IFN0() +{ + /* + * Scroll down a block of text. The parameters are held in the following + * registers: + * + * AL - Number of rows to scroll. NB. if AL == 0 then the whole region + * is cleared. + * CX - Row/col of upper left corner + * DX - row/col of lower right corner + * BH - attribute to be used on blanked line(s) + * + * IMPORTANT MESSAGE TO ALL VIDEO HACKERS: + * vd_scroll_up() and vd_scroll_down() are functionally identical + * except for the sense of the scroll - if you find and fix a bug + * in one, then please do the same for the other + */ + word vd_cols_on_screen; + int t_row,b_row,l_col,r_col,lines,attr; + int rowsdiff,colsdiff; + + /* Load internal variables with the values stored in BIOS + * data area. + */ + vd_cols_on_screen = sas_w_at_no_check(VID_COLS); + + t_row = getCH(); + b_row = getDH(); + l_col = getCL(); + r_col = getDL(); + lines = getAL(); + attr = getBH(); + + if(b_row > VD_ROWS_ON_SCREEN) + b_row = VD_ROWS_ON_SCREEN; /* trim to screen size */ + + if(t_row > VD_ROWS_ON_SCREEN) + t_row = VD_ROWS_ON_SCREEN; /* trim to screen size */ + + if (r_col < l_col) /* some dipstick has got their left & right mixed up */ + { + colsdiff = l_col; /* use colsdiff as temp */ + l_col = r_col; + r_col = colsdiff; + } + + if ( r_col >= vd_cols_on_screen ) + r_col = vd_cols_on_screen-1; + + colsdiff = r_col-l_col+1; + rowsdiff = b_row-t_row+1; + + if (lines == 0) /* clear region */ + { + lines = rowsdiff; + } + if(r_col == vd_cols_on_screen-1) +#ifdef EGG + if(ega_mode()) + ega_sensible_graph_scroll_down(t_row,l_col,rowsdiff,colsdiff,lines,attr); +# ifdef VGG + else if(vga_256_mode()) + vga_sensible_graph_scroll_down(t_row,l_col,rowsdiff,colsdiff,lines,attr); +# endif + else +#endif + kinky_scroll_down(t_row,l_col,rowsdiff,colsdiff,lines,attr,vd_cols_on_screen); + else + { + if(alpha_num_mode()) + sensible_text_scroll_down(t_row,l_col,rowsdiff,colsdiff,lines,attr); +#ifdef EGG + else if(ega_mode()) + ega_sensible_graph_scroll_down(t_row,l_col,rowsdiff,colsdiff,lines,attr); +# ifdef VGG + else if(vga_256_mode()) + vga_sensible_graph_scroll_down(t_row,l_col,rowsdiff,colsdiff,lines,attr); +# endif +#endif + else + sensible_graph_scroll_down(t_row,l_col,rowsdiff,colsdiff,lines,attr); +#ifdef EGA_DUMP + dump_scroll(sas_hw_at_no_check(vd_video_mode),1,video_pc_low_regen,sas_w_at_no_check(VID_ADDR),sas_w_at_no_check(VID_COLS), + t_row,l_col,rowsdiff,colsdiff,lines,attr); +#endif + /* + * re-enable video for this mode, if on a CGA adaptor (fixes ROUND42 bug). + */ + if(video_adapter == CGA) + outb(CGA_CONTROL_REG, vd_mode_table[sas_hw_at_no_check(vd_video_mode)].mode_control_val); + } +} + +LOCAL void sensible_text_scroll_down IFN6(int, t_row, int, l_col, int, rowsdiff, int, colsdiff, int, lines, int, attr) +{ + register sys_addr source, dest; + register int col_incr; + register int i; + boolean screen_updated; + int vd_cols_on_screen = sas_w_at_no_check(VID_COLS); + + source = sas_w_at_no_check(VID_ADDR) + vd_page_offset(l_col, t_row) + video_pc_low_regen; + col_incr = sas_w_at_no_check(VID_COLS) * 2; + + /* Try to scroll the adaptor memory & host screen. */ + + if( source >= get_screen_base() ) + { + screen_updated = (*update_alg.scroll_down)(source,2*colsdiff,rowsdiff,attr,lines,0); + } + + dest = source + (rowsdiff-1)*col_incr; + source = dest - lines*col_incr; +/* + * NB if we are just doing a clear area, the scrolling 'for' loop will terminate immediately + */ + + for(i = 0; i < rowsdiff-lines; i++) + { +#ifdef REAL_VGA + VcopyStr(&M[dest],&M[source], colsdiff*2); +#else + if( !screen_updated ) + sas_move_bytes_forward (source, dest, colsdiff*2); +#endif + source -= col_incr; + dest -= col_incr; + } + + /* moved all the data we were going to move - blank the cleared region */ + + while(lines--) + { +#ifdef REAL_VGA + sas_fillsw_16(dest, (attr << 8)|' ', colsdiff); +#else + if( !screen_updated ) + sas_fillsw(dest, (attr << 8)|' ', colsdiff); +#endif + dest -= col_incr; + } +} + +LOCAL void sensible_graph_scroll_down IFN6(int, t_row, int, l_col, int, rowsdiff, int, colsdiff, int, lines, int, attr) +{ + sys_addr source, dest; + int i,colour; + boolean screen_updated; + + rowsdiff *= 4; /* 8 scans per char, 4 per bank */ + lines *= 4; + + if( sas_hw_at_no_check(vd_video_mode) != 6 ) + { + colour = attr & 0x3; + colsdiff *= 2; /* 4 pixels/byte */ + + source = vd_medium_offset(l_col, t_row)+video_pc_low_regen; + } + else + { + colour = attr & 0x1; + source = vd_high_offset(l_col, t_row)+video_pc_low_regen; + } + + /* Try to scroll the host screen */ + + screen_updated = (*update_alg.scroll_down)(source,colsdiff,rowsdiff,attr,lines,colour); + + if( screen_updated && ( video_adapter != CGA )) + return; + + dest = source + (rowsdiff-1)*SCAN_LINE_LENGTH; + source = dest - lines*SCAN_LINE_LENGTH; + + /* + * NB if we are just doing a clear area, the scrolling 'for' loop + * will terminate immediately + */ + + for( i = 0; i < rowsdiff-lines; i++ ) + { + /* + * graphics mode has to do odd & even banks + */ + +#ifdef REAL_VGA + VcopyStr(&M[dest],&M[source], colsdiff); + VcopyStr(&M[dest+ODD_OFF],&M[source+ODD_OFF], colsdiff); +#else + sas_move_bytes_forward (source, dest, colsdiff); + sas_move_bytes_forward (source+ODD_OFF, dest+ODD_OFF, colsdiff); +#endif + source -= SCAN_LINE_LENGTH; + dest -= SCAN_LINE_LENGTH; + } + + /* moved all the data we were going to move - blank the cleared region */ + + while( lines-- ) + { +#ifdef REAL_VGA + sas_fills_16(dest, attr, colsdiff); + sas_fills_16(dest+ODD_OFF, attr, colsdiff); +#else + sas_fills(dest, attr, colsdiff); + sas_fills(dest+ODD_OFF, attr, colsdiff); +#endif + dest -= SCAN_LINE_LENGTH; + } +} + +LOCAL void kinky_scroll_down IFN7(int, t_row, int, l_col, int, rowsdiff, int, colsdiff, int, lines, int, attr, int, vd_cols_on_screen) +{ + register sys_addr source, dest; + register int col_incr; + register int i; + half_word is_alpha; + + switch (sas_hw_at_no_check(vd_video_mode)) { + + case 0: case 1: case 2: + case 3: case 7: + is_alpha = TRUE; + col_incr = vd_cols_on_screen * 2; + source = sas_w_at_no_check(VID_ADDR)+vd_page_offset(l_col, t_row)+video_pc_low_regen; /* top left */ + break; + + case 4: case 5: case 6: + is_alpha = FALSE; + rowsdiff *= 4; /* 8 scans per char, 4 per bank */ + lines *= 4; + col_incr = SCAN_LINE_LENGTH; + if(sas_hw_at_no_check(vd_video_mode) != 6) { + colsdiff *= 2; /* 4 pixels/byte */ + source = vd_medium_offset(l_col, t_row)+video_pc_low_regen; + } + else + source = vd_high_offset(l_col, t_row)+video_pc_low_regen; + break; + + default: +#ifndef PROD + trace("bad video mode\n",DUMP_REG); +#endif + ; + } + + /* set origin of data movement for calculating screen refresh */ + dest = source + (rowsdiff-1)*col_incr; + source = dest -lines*col_incr; + + /* + * NB if we are just doing a clear area, the scrolling 'for' loop + * will terminate immediately + */ + + if (is_alpha) { + for(i = 0; i < rowsdiff-lines; i++) { +#ifdef REAL_VGA + VcopyStr(&M[dest],&M[source], colsdiff*2); +#else + sas_move_bytes_forward (source, dest, colsdiff*2); +#endif + source -= col_incr; + dest -= col_incr; + } + } + else { + for(i = 0; i < rowsdiff-lines; i++) { +#ifdef REAL_VGA + VcopyStr(&M[dest],&M[source], colsdiff); +#else + sas_move_bytes_forward (source, dest, colsdiff); +#endif + /* + * graphics mode has to do odd & even banks + */ +#ifdef REAL_VGA + VcopyStr(&M[dest+ODD_OFF],&M[source+ODD_OFF], colsdiff); +#else + sas_move_bytes_forward (source+ODD_OFF, dest+ODD_OFF, colsdiff); +#endif + source -= col_incr; + dest -= col_incr; + } + } + + /* moved all the data we were going to move - blank the cleared region */ + + if (is_alpha) { /* alpha blank */ + while(lines--) { +#ifdef REAL_VGA + sas_fillsw_16(dest, (attr << 8)|' ', colsdiff); +#else + sas_fillsw(dest, (attr << 8)|' ', colsdiff); +#endif + dest -= col_incr; + } + } + else { /* graphics blank */ + + while(lines--) { +#ifdef REAL_VGA + sas_fills_16(dest, attr, colsdiff); + sas_fills_16(dest+ODD_OFF, attr, colsdiff); +#else + sas_fills(dest, attr, colsdiff); + sas_fills(dest+ODD_OFF, attr, colsdiff); +#endif + dest -= col_incr; + } + } +} + + +GLOBAL void vd_read_attrib_char IFN0() +{ + /* + * Routine to read character and attribute from the current cursor + * position. + * Parameters: + * AH - current video mode + * BH - display page (alpha modes) + * Returns: + * AL - character read + * AH - attribute read + */ + + register sys_addr cpos, cgen; + register half_word i, ext_no; + word chattr; /* unfortunately want to take addr */ + word vd_cols_on_screen; + half_word match[CHAR_MAP_SIZE], tmp[CHAR_MAP_SIZE]; + half_word vd_cursor_col, vd_cursor_row; + + /* Load internal variables with the values stored in BIOS + * data area. + */ + + vd_cols_on_screen = sas_w_at_no_check(VID_COLS); + vd_cursor_col = sas_hw_at_no_check(VID_CURPOS + getBH()*2); + vd_cursor_row = sas_hw_at_no_check(VID_CURPOS + getBH()*2 + 1); + + if (alpha_num_mode()) { /* alpha */ + cpos = video_pc_low_regen + vd_cursor_offset(getBH()); +#ifdef A2CPU + (*read_pointers.w_read)( (ULONG)get_byte_addr(cpos) ); + chattr = (*get_byte_addr (cpos)); + chattr |= (*get_byte_addr (cpos+1)) << 8; +#else + sas_loadw(cpos,&chattr); +#endif /* A2CPU */ + setAX(chattr); /* hmm that was easy */ + } +#ifdef EGG + else if(ega_mode()) + ega_read_attrib_char(vd_cursor_col,vd_cursor_row,getBH()); +# ifdef VGG + else if(vga_256_mode()) + vga_read_attrib_char(vd_cursor_col,vd_cursor_row,getBH()); +# endif +#endif + else { + /* + * graphics not so easy - have to build 8 byte string with all + * colour attributes masked out then match that in the character + * generator table (and extended character set if necessary) + */ + if (sas_hw_at_no_check(vd_video_mode) != 6) + cpos = video_pc_low_regen + + 2 * (((vd_cursor_row * vd_cols_on_screen) << 2) + vd_cursor_col); + else + cpos = video_pc_low_regen + + vd_high_offset(vd_cursor_col,vd_cursor_row); + if (sas_hw_at_no_check(vd_video_mode) == 6) { /* high res */ + for(i = 0; i < 4; i++) { /* build 8 byte char string */ + sas_load(cpos, &match[i*2]); + sas_load(cpos+ODD_OFF, &match[i*2+1]); + cpos += 80; + } + } + else { /* med res */ + /* + * Note that in the following, the attribute byte must end + * up in the LOW byte. That's why the bytes are swapped after the + * sas_loadw(). + */ + for(i = 0; i < 4; i++) { /* to build char string, must */ + sas_loadw(cpos,&chattr); + chattr = ((chattr>>8) | (chattr<<8)) & 0xffff; + + /* mask out foreground colour */ + match[i*2] = fgcolmask(chattr); + + sas_loadw(cpos+ODD_OFF,&chattr); + chattr = ((chattr>>8) | (chattr<<8)) & 0xffff; + + /* mask out foreground colour */ + match[i*2+1] = fgcolmask(chattr); + cpos += 80; + } + } +#ifdef EGG + if(video_adapter == EGA || video_adapter == VGA) + cgen = extend_addr(EGA_FONT_INT*4); + else + cgen = CHAR_GEN_ADDR; /* match in char generator */ +#else + cgen = CHAR_GEN_ADDR; /* match in char generator */ +#endif + if (cgen != 0) + for(i = 0; i < CHARS_IN_GEN; i++) { + sas_loads (cgen, tmp, sizeof(tmp)); + if (memcmp(tmp, match, sizeof(match)) == 0) /* matched */ + break; + cgen += CHAR_MAP_SIZE; /* next char string */ + } + else + i = CHARS_IN_GEN; + + if (i < CHARS_IN_GEN) /* char found */ + setAL(i); + else { + /* + * look for char in extended character set + */ + if ((cgen = extend_addr(BIOS_EXTEND_CHAR*4)) != 0) + for(ext_no = 0; ext_no < CHARS_IN_GEN; ext_no++) { + sas_loads (cgen, tmp, sizeof(tmp)); + if (memcmp(tmp, match, sizeof(match)) == 0) /* matched */ + break; + cgen += CHAR_MAP_SIZE; /* still valid char len */ + } + else + ext_no = CHARS_IN_GEN; + + if (ext_no < CHARS_IN_GEN) /* match found... */ + setAL(ext_no + CHARS_IN_GEN); + else + setAL(0); /* no match, return 0 */ + } + } +} + + +GLOBAL void vd_write_char_attrib IFN0() +{ +/* +* Routine to write character and attribute from the current cursor +* position. +* Parameters: +* AH - current video mode +* BH - display page (alpha & EGA modes) +* CX - # of characters to write +* AL - Character to write +* BL - attribute of character to write. If in graphics mode then +* attribute is foreground colour. In that case if bit 7 of BL +* is set then char is XOR'ed into buffer. +*/ + + register word i, cpos; + word vd_cols_on_screen; + half_word vd_cursor_col, vd_cursor_row; + + /* Load internal variables with the values stored in BIOS + * data area. + */ + vd_cols_on_screen = sas_w_at_no_check(VID_COLS); + vd_cursor_col = sas_hw_at_no_check(VID_CURPOS + getBH()*2); + vd_cursor_row = sas_hw_at_no_check(VID_CURPOS + getBH()*2 + 1); + + if (alpha_num_mode()) + { + cpos = vd_cursor_offset(getBH()); + + /* place in memory */ + +#ifdef REAL_VGA + sas_fillsw_16(video_pc_low_regen + cpos, (getBL() << 8) | getAL(), getCX()); +#else + for(i = 0; i < getCX(); i++) + { +#if ( defined(NTVDM) && defined(MONITOR) ) || defined(GISP_SVGA)/* No Ega planes... */ + *((unsigned short *)( video_pc_low_regen + cpos)) = (getBL() << 8) | getAL(); +#else +#ifdef EGG + if ( ( (video_adapter != CGA) && (EGA_CPU.chain != CHAIN2) ) +#ifdef CPU_40_STYLE + || (getVM()) /* if we are in V86 mode, the memory may be mapped... */ +#endif + ) + sas_storew(video_pc_low_regen + cpos, (getBL() << 8) | getAL()); + else +#endif /* EGG */ + (*bios_ch2_word_wrt_fn)( (getBL() << 8) | getAL(), cpos ); +#endif /* NTVDM & MONITOR */ + cpos += 2; + } +#endif + } +#ifdef EGG + else if(ega_mode()) + ega_graphics_write_char(vd_cursor_col,vd_cursor_row,getAL(),getBL(),getBH(),getCX()); +# ifdef VGG + else if(vga_256_mode()) + vga_graphics_write_char(vd_cursor_col,vd_cursor_row,getAL(),getBL(),getBH(),getCX()); +# endif +#endif + else + /* rather more long winded - call common routine as vd_write_char() */ + graphics_write_char(vd_cursor_col, vd_cursor_row, getAL(), getBL(), getCX()); +} + + +GLOBAL void vd_write_char IFN0() +{ + /* + * Write a character a number of times starting from the current cursor + * position. Parameters are held in the following registers. + * + * AH - Crt Mode + * AL - Character to write + * CX - Number of characters + * BH - display page + * + */ + + register word i, cpos; + word vd_cols_on_screen; + half_word vd_cursor_col, vd_cursor_row; + + /* Load internal variables with the values stored in BIOS + * data area. + */ + vd_cols_on_screen = sas_w_at_no_check(VID_COLS); + vd_cursor_col = sas_hw_at_no_check(VID_CURPOS + getBH()*2); + vd_cursor_row = sas_hw_at_no_check(VID_CURPOS + getBH()*2 + 1); + + /* + * handle alphanumeric here: + */ + + if (alpha_num_mode()) + { + cpos = vd_cursor_offset(getBH()); + + /* store in memory, skipping attribute bytes */ + + for(i = 0; i < getCX(); i++) + { +#if ( defined(NTVDM) && defined(MONITOR) ) || defined( GISP_SVGA ) + *((unsigned char *)( video_pc_low_regen + cpos)) = getAL(); +#else +#ifdef EGG + if ( ( (video_adapter != CGA) && (EGA_CPU.chain != CHAIN2) ) +#ifdef CPU_40_STYLE + || (getVM()) /* if we are in V86 mode, the memory may be mapped... */ +#endif + ) + sas_store(video_pc_low_regen + cpos, getAL()); + else +#endif /* EGG */ + (*bios_ch2_byte_wrt_fn)( getAL(), cpos ); +#endif /* NTVDM & MONITOR */ + cpos += 2; + } + } + + /* + * handle graphics seperately - I know what you're thinking - why pass + * BL as the attribute when this routine is meant to leave the attribute + * well alone. Well this is the way it's done in the bios! If it causes + * problems then we'll need to do a vd_read_char_attr here and then pass the + * attribute gleaned from that. + */ +#ifdef EGG + else if(ega_mode()) + ega_graphics_write_char(vd_cursor_col,vd_cursor_row,getAL(),getBL(),getBH(),getCX()); +# ifdef VGG + else if(vga_256_mode()) + vga_graphics_write_char(vd_cursor_col,vd_cursor_row,getAL(),getBL(),getBH(),getCX()); +# endif +#endif + else + graphics_write_char(vd_cursor_col, vd_cursor_row, getAL(), getBL(), getCX()); +} + + +GLOBAL void vd_set_colour_palette IFN0() +{ + /* + * Set Colo[u]r Palette. Established background, foreground & overscan + * colours. + * Parameters: + * BH - Colour Id + * BL - Colour to set + * if BH == 0 background colour set from low bits of BL + * if BH == 1 selection made based on low bit of BL + */ + + /* Load internal variables with the values stored in BIOS + * data area. + */ + + if (getBH() == 1) { /* use low bit of BL */ + sas_store_no_check (vd_crt_palette, sas_hw_at_no_check(vd_crt_palette) & 0xDF); + if (getBL() & 1) + sas_store_no_check (vd_crt_palette ,sas_hw_at_no_check(vd_crt_palette) | 0x20); + } + else + sas_store_no_check (vd_crt_palette, (sas_hw_at_no_check(vd_crt_palette) & 0xE0) | (getBL() & 0x1F)); + + /* now tell the 6845 */ + outb(CGA_COLOUR_REG, sas_hw_at_no_check(vd_crt_palette)); + +} + + +GLOBAL void vd_write_dot IFN0() +{ + /* + * Write dot + * Parameters: + * DX - row (0-349) + * CX - column (0-639) + * BH - page + * AL - dot value; right justified 1,2 or 4 bits mode dependant + * if bit 7 of AL == 1 then XOR the value into mem. + */ + + half_word dotval, data; + int dotpos, lsb; /* dot posn in memory */ + half_word right_just, bitmask; + +#ifdef EGG + if(ega_mode()) + { + ega_write_dot(getAL(),getBH(),getCX(),getDX()); + return; + } +# ifdef VGG + else if(vga_256_mode()) + { + vga_write_dot(getAL(),getBH(),getCX(),getDX()); + return; + } +# endif +#endif + dotpos = getDL(); /* row */ + + if (dotpos & 1) /* set up for odd or even banks */ + dotpos = ODD_OFF-40 + 40 * dotpos; + else + dotpos *= 40; + + /* + * different pixel memory sizes for different graphics modes. Mode 6 + * is high res, mode 4,5 medium res + */ + + dotval = getAL(); + + if (sas_hw_at_no_check(vd_video_mode) < 6) + { + /* + * Modes 4 & 5 (medium res) + */ + dotpos += getCX() >> 2; /* column offset */ + right_just = (getCL() & 3) << 1;/* displacement in byte */ + dotval = (dotval & 3) << (6-right_just); + bitmask = (0xC0 >> right_just); /* bits of interest */ + +#ifdef EGG + /* + * EGA & VGA can be told which byte has changed, CGA is + * only told that screen has changed. + */ + if ( video_adapter != CGA ) + (*update_alg.mark_byte) ( dotpos ); + else +#endif + setVideodirty_total(getVideodirty_total() + 2); + + /* + * if the top bit of the value to write is set then value is xor'ed + * onto the screen, otherwise it is or'ed on. + */ + + if( getAL() & 0x80 ) + { +#ifdef EGG + if( video_adapter != CGA ) + { + lsb = dotpos & 1; + dotpos = (dotpos >> 1) << 2; + dotpos |= lsb; + + data = EGA_planes[dotpos]; + EGA_planes[dotpos] = data ^ dotval; + } + else +#endif /* EGG */ + { + data = *(UTINY *) get_screen_ptr( dotpos ); + *(UTINY *) get_screen_ptr( dotpos ) = + data ^ dotval; + } + } + else + { +#ifdef EGG + if( video_adapter != CGA ) + { + lsb = dotpos & 1; + dotpos = (dotpos >> 1) << 2; + dotpos |= lsb; + + data = EGA_planes[dotpos]; + EGA_planes[dotpos] = (data & ~bitmask) | + dotval; + } + else +#endif /* EGG */ + { + data = *(UTINY *) get_screen_ptr( dotpos ); + *(UTINY *) get_screen_ptr( dotpos ) = + (data & ~bitmask) | dotval; + } + } + } + else + { + /* + * Mode 6 (hi res) + */ + dotpos += getCX() >> 3; + right_just = getCL() & 7; + dotval = (dotval & 1) << (7-right_just); + bitmask = (0x80 >> right_just); + +#ifdef EGG + /* + * EGA & VGA can be told which byte has changed, CGA is + * only told that screen has changed. + */ + if ( video_adapter != CGA ) + (*update_alg.mark_byte) ( dotpos ); + else +#endif + setVideodirty_total(getVideodirty_total() + 2); + + /* + * if the top bit of the value to write is set then value is xor'ed + * onto the screen, otherwise it is or'ed on. + */ + + if( getAL() & 0x80 ) + { +#ifdef EGG + if( video_adapter != CGA ) + { + data = EGA_planes[dotpos << 2]; + EGA_planes[dotpos << 2] = data ^ dotval; + } + else +#endif /* EGG */ + { + data = *(UTINY *) get_screen_ptr( dotpos ); + *(UTINY *) get_screen_ptr( dotpos ) = + data ^ dotval; + } + } + else + { +#ifdef EGG + if( video_adapter != CGA ) + { + data = EGA_planes[dotpos << 2]; + EGA_planes[dotpos << 2] = (data & ~bitmask) | + dotval; + } + else +#endif /* EGG */ + { + data = *(UTINY *) get_screen_ptr( dotpos ); + *(UTINY *) get_screen_ptr( dotpos ) = + (data & ~bitmask) | dotval; + } + } + } +} + + + +GLOBAL void vd_read_dot IFN0() +{ + /* + * Read dot + * Parameters: + * DX - row (0-349) + * CX - column (0-639) + * Returns + * AL - dot value read, right justified, read only + */ + + int dotpos; /* dot posn in memory */ + half_word right_just, bitmask, data; + +#ifdef EGG + if(ega_mode()) + { + ega_read_dot(getBH(),getCX(),getDX()); + return; + } +# ifdef VGG + else if(vga_256_mode()) + { + vga_read_dot(getBH(),getCX(),getDX()); + return; + } +# endif +#endif + dotpos = getDL(); /* row */ + if (dotpos & 1) /* set up for odd or even banks */ + dotpos = ODD_OFF-40 + 40 * dotpos; + else + dotpos *= 40; + /* + * different pixel memory sizes for different graphics modes. Mode 6 + * is high res, mode 4,5 medium res + */ + + if (sas_hw_at_no_check(vd_video_mode) < 6) { + dotpos += getCX() >> 2; /* column offset */ + right_just = (3 - (getCL() & 3)) << 1;/* displacement in byte */ + bitmask = 3; /* bits of interest */ + } + else { + dotpos += getCX() >> 3; + right_just = 7 - (getCL() & 7); + bitmask = 1; + } + /* + * get value of memory at that position, shifted down to bottom of byte + * Result returned in AL. + */ + + sas_load(video_pc_low_regen+dotpos, &data); + setAL(( data >> right_just) & bitmask); +} + + +#ifdef CPU_40_STYLE + +/* Optimisations are not possible, IO virtualisation may be active. */ +#define OUTB(port, val) outb(port, val) + +#else + +#ifdef NTVDM +#define OUTB( port, val ) { hack=get_outb_ptr(port); \ + (**hack)(port,val); } +#else +#define OUTB( port, val ) (**get_outb_ptr( port ))( port, val ) +#endif /* NTVDM */ + +#endif /* CPU_40_STYLE */ + +GLOBAL void vd_write_teletype IFN0() +{ + /* + * Provide a teletype interface. Put a character to the screen + * allowing for scrolling etc. The parameters are + * + * AL - Character to write + * BL - Foreground colour in graphics mode + */ + + register char ch; + register sys_addr ch_addr; + int cur_pos; + word vd_addr_6845 = sas_w_at_no_check(VID_INDEX); + half_word scroll_required = FALSE; + half_word attrib; + register half_word vd_cursor_row,vd_cursor_col; + word vd_cols_on_screen; +#ifdef ANSI + IMPORT VOID (**get_outb_ptr(io_addr))(io_addr address, half_word value); +#else + IMPORT VOID (**get_outb_ptr())(); +#endif +#ifdef NTVDM + void (** hack)(io_addr address, half_word value); +#endif + + unsigned short savedAX, savedBX, savedCX, savedIP, savedCS, savedDX; + unsigned short re_entrant = FALSE; + + /* Load internal variables with the values stored in BIOS + * data area. + */ + ch = getAL(); + if (stream_io_enabled) { + if (*stream_io_dirty_count_ptr >= stream_io_buffer_size) + stream_io_update(); + stream_io_buffer[(*stream_io_dirty_count_ptr)++] = ch; + return; + } + + vd_cols_on_screen = sas_w_at_no_check(VID_COLS); + +#if defined(NTVDM) && defined(MONITOR) + /* + ** Tim August 92, Microsoft. Need to change this test, cos INT 10 + ** vector now points into the NTIO.SYS driver on X86. + */ + { + extern word int10_seg; + + re_entrant = (sas_w_at_no_check(0x42) != int10_seg); + } +#else + re_entrant = (sas_w_at_no_check(0x42) < 0xa000); +#endif + + vd_cursor_col = sas_hw_at_no_check(current_cursor_col); + vd_cursor_row = sas_hw_at_no_check(current_cursor_row); + + /* + * First check to see if it is a control character and if so action + * it here rather than call the write char function. + */ + + switch (ch) + { + case VD_BS: /* Backspace */ + if (vd_cursor_col != 0) { + vd_cursor_col--; + } + break; + + case VD_CR: /* Return */ + vd_cursor_col = 0; + break; + + case VD_LF: /* Line feed */ + /* Row only should be checked for == (25-1), so in principle + * it ignores LF off the top of the screen. + */ + if (vd_cursor_row == VD_ROWS_ON_SCREEN) + scroll_required = TRUE; + else + vd_cursor_row++; + break; + + case VD_BEL: /* Bell */ + host_ring_bell(BEEP_LENGTH); + return; /* after all, shouldn't cause a scroll */ + + default: + /* + * It's a real character, place it in the regen buffer. + */ + if(alpha_num_mode()) + { + if(re_entrant) + { + savedAX = getAX(); + savedBX = getBX(); + savedCX = getCX(); + savedIP = getIP(); + savedCS = getCS(); + + setAH(WRITE_A_CHAR); + setBH(sas_hw_at_no_check(vd_current_page)); + setCX(1); + +#if defined(NTVDM) && defined(X86GFX) + /* + ** Tim August 92 Microsoft. INT 10 caller code is now + ** in NTIO.SYS + */ + { + extern word int10_seg, int10_caller; + + exec_sw_interrupt( int10_seg, int10_caller ); + } +#else + setCS(VIDEO_IO_SEGMENT); + setIP(VIDEO_IO_RE_ENTRY); + host_simulate(); + +#endif /* NTVDM & MONITOR */ + + /* + * Note: Always make sure CS comes before IP + */ + setCS(savedCS); + setIP(savedIP); + setCX(savedCX); + setBX(savedBX); + setAX(savedAX); + } + else + { + ch_addr = sas_w_at_no_check(VID_ADDR) + + vd_page_offset(vd_cursor_col,vd_cursor_row); + + /* + * Call the C code to do the biz rather than brothel + * around in SAS. + */ + +#if ( defined(NTVDM) && defined(MONITOR) ) || defined( GISP_SVGA ) + *((unsigned char *)( video_pc_low_regen + ch_addr)) = ch; +#else +#ifdef EGG + if ( ( (video_adapter != CGA) && (EGA_CPU.chain != CHAIN2) ) +#ifdef CPU_40_STYLE + || (getVM()) /* if we are in V86 mode, the memory may be mapped... */ +#endif + ) + sas_store(video_pc_low_regen + ch_addr, ch); + else +#endif /* EGG */ + (*bios_ch2_byte_wrt_fn)( ch, ch_addr ); +#endif /* ( NTVDM & MONITOR ) | GISP_SVGA */ + } + } +#ifdef EGG + else if(ega_mode()) + ega_graphics_write_char(vd_cursor_col, vd_cursor_row, ch, getBL(),sas_hw_at_no_check(vd_current_page), 1); +# ifdef VGG + else if(vga_256_mode()) + vga_graphics_write_char(vd_cursor_col, vd_cursor_row, ch, getBL(),sas_hw_at_no_check(vd_current_page), 1); +# endif +#endif + else + graphics_write_char(vd_cursor_col, vd_cursor_row, ch, getBL(), 1); + + vd_cursor_col++; + /* + * Now see if we have gone off the edge of the screen + */ + + if (vd_cursor_col == vd_cols_on_screen) + { + vd_cursor_col = 0; + + /* Row only should be checked for == (25-1) and + * only if there was a line wrap. + */ + if (vd_cursor_row == VD_ROWS_ON_SCREEN) + scroll_required = TRUE; + else + vd_cursor_row++; + } + + /* cursor_row validity actually never checked unless processing a + * Line Feed or a wrapping at the end of line. + * + * The BYTE "text" benchmark program contains an off-by-one error + * which causes it to set the cursor position off the end of the + * screen: SoftPC was incorrectly deciding to scroll, with consequent + * horrendous time penalties... + */ + } + + /* + * By this point we have calculated the new cursor position + * so output the cursor position and the character + */ + + if(alpha_num_mode()) + { +#ifdef REAL_VGA + /* + * tell the 6845 all about the change + */ + cur_pos = (sas_w_at_no_check(VID_ADDR)+vd_page_offset(vd_cursor_col, + vd_cursor_row))>>1; /* Word address, not byte */ + outb(vd_addr_6845, R14_CURS_ADDRH); + outb(vd_addr_6845+1, cur_pos >> 8); + outb(vd_addr_6845, R15_CURS_ADDRL); + outb(vd_addr_6845+1, cur_pos & 0xff); + /* + * save the current cursor position in the bios + */ + sas_store_no_check(current_cursor_col, vd_cursor_col); + sas_store_no_check(current_cursor_row , vd_cursor_row); +#else + if(re_entrant) + { + savedAX = getAX(); + savedBX = getBX(); + savedDX = getDX(); + savedIP = getIP(); + savedCS = getCS(); + + setAH(SET_CURSOR_POS); + setBH(sas_hw_at_no_check(vd_current_page)); + setDH(vd_cursor_row); + setDL(vd_cursor_col); + +#if defined(NTVDM) && defined(X86GFX) + /* + ** Tim August 92 Microsoft. INT 10 caller code is now + ** in NTIO.SYS + */ + { + extern word int10_seg, int10_caller; + + exec_sw_interrupt( int10_seg, int10_caller ); + } +#else + setCS(VIDEO_IO_SEGMENT); + setIP(VIDEO_IO_RE_ENTRY); + host_simulate(); + +#endif /* NTVDM & MONITOR */ + + /* + * Note: Always make sure CS comes before IP + */ + + setCS(savedCS); + setIP(savedIP); + setDX(savedDX); + setBX(savedBX); + setAX(savedAX); + } + else + { + /* + ** tell the 6845 all about the change + */ + + /* Set the current position - word address, not byte */ + cur_pos = (sas_w_at_no_check(VID_ADDR) + + vd_page_offset(vd_cursor_col, vd_cursor_row)) >> 1; + + OUTB(vd_addr_6845, R14_CURS_ADDRH); + OUTB(vd_addr_6845+1, cur_pos >> 8); + OUTB(vd_addr_6845, R15_CURS_ADDRL); + OUTB(vd_addr_6845+1, cur_pos & 0xff); + + /* + * store the new cursor position in the + * bios vars (this should be done by the re-entrant + * code called above) + */ + sas_store_no_check (current_cursor_col , vd_cursor_col); + sas_store_no_check (current_cursor_row , vd_cursor_row); + + } +#endif + } + else { + /* + * store the new cursor position in the + * bios vars for graphics mode + */ + sas_store_no_check (current_cursor_col , vd_cursor_col); + sas_store_no_check (current_cursor_row , vd_cursor_row); + } + + if (scroll_required) + { + /* + * Update the memory to be scrolled + */ + if (alpha_num_mode()) { +#ifdef A2CPU + ch_addr = video_pc_low_regen + sas_w_at_no_check(VID_ADDR)+vd_page_offset(vd_cursor_col,vd_cursor_row) + 1; + (*read_pointers.b_read)( (ULONG)get_byte_addr(ch_addr) ); + attrib = (*get_byte_addr (ch_addr)); +#else + sas_load( video_pc_low_regen + sas_w_at_no_check(VID_ADDR)+vd_page_offset(vd_cursor_col,vd_cursor_row) + 1, &attrib); +#endif /* A2CPU */ + + sensible_text_scroll_up(0,0, VD_ROWS_ON_SCREEN+1,vd_cols_on_screen,1,attrib); + + } +#ifdef EGG + else if(ega_mode()) + ega_sensible_graph_scroll_up(0,0, VD_ROWS_ON_SCREEN+1,vd_cols_on_screen,1,0); +# ifdef VGG + else if(vga_256_mode()) + vga_sensible_graph_scroll_up(0,0, VD_ROWS_ON_SCREEN+1,vd_cols_on_screen,1,0); +# endif +#endif + else /* graphics mode */ + + sensible_graph_scroll_up(0,0, VD_ROWS_ON_SCREEN+1,vd_cols_on_screen,1,0); + +#ifdef EGA_DUMP + if(!alpha_num_mode())attrib=0; + dump_scroll(sas_hw_at_no_check(vd_video_mode),0,video_pc_low_regen,sas_w_at_no_check(VID_ADDR),sas_w_at_no_check(VID_COLS), + 0,0,vd_rows_on_screen+1,vd_cols_on_screen,1,attrib); +#endif + + } +} + +GLOBAL void vd_write_string IFN0() +{ + /* + * AL = write mode (0-3) + * Specical for NT: if AL = 0xff then write character string + * with existing attributes. + * BH = page + * BL = attribute (if AL=0 or 1) + * CX = length + * DH = Y coord + * DL = x coord + * ES:BP = pointer to string. + * + * NB. This routine behaves very strangely wrt line feeds etc - + * These ALWAYS affect the current page!!!!! + */ + int i,op,col,row,len; + int save_col,save_row; + sys_addr ptr; + boolean ctl; +#ifdef NTVDM + word count, avail; +#endif + + op = getAL(); + +#ifdef NTVDM + if (op == 0xff) /* Special for MS */ + { + + if (stream_io_enabled){ + count = getCX(); + avail = stream_io_buffer_size - *stream_io_dirty_count_ptr; + ptr = effective_addr(getES(), getDI()); + if (count <= avail) { + sas_loads(ptr, stream_io_buffer + *stream_io_dirty_count_ptr, count); + *stream_io_dirty_count_ptr += count; + } + else { /* buffer overflow */ + if (*stream_io_dirty_count_ptr) { + stream_io_update(); + } + while (count) { + if (count >= stream_io_buffer_size) { + sas_loads(ptr, stream_io_buffer, stream_io_buffer_size); + *stream_io_dirty_count_ptr = stream_io_buffer_size; + stream_io_update(); + count -= stream_io_buffer_size; + ptr += stream_io_buffer_size; + } + else { + sas_loads(ptr, stream_io_buffer, count); + *stream_io_dirty_count_ptr = count; + break; + } + } + } + + setAL(1); + return; + } + + if (sas_hw_at_no_check(vd_video_mode) < 4) /* text mode */ + { + ptr = effective_addr(getES(), getDI()); + /* sudeepb 28-Sep-1992 taken out for int10h/13ff fix */ + /* vd_set_cursor_position(); */ /* set to start from DX */ + for(i = getCX(); i > 0; i--) + { + setAL(sas_hw_at_no_check(ptr)); + vd_write_teletype(); + ptr++; + } + setAL(1); /* success - string printed */ + } + else + { + setAL(0); /* failure */ + } + return; + } + +#ifdef X86GFX + else if (op == 0xfe) { + disable_stream_io(); + return; + } +#endif + +#endif /* NTVDM */ + + ptr = effective_addr(getES(),getBP()) ; + col = getDL(); + row = getDH(); + len = getCX(); + vd_get_cursor_position(); + save_col = getDL(); save_row = getDH(); + setCX(1); + setDL(col); setDH(row); + vd_set_cursor_position(); + for(i=len;i>0;i--) + { + ctl = sas_hw_at_no_check(ptr) == 7 || sas_hw_at_no_check(ptr) == 8 || sas_hw_at_no_check(ptr) == 0xa || sas_hw_at_no_check(ptr) == 0xd; + setAL(sas_hw_at_no_check(ptr++)); + if(op > 1)setBL(sas_hw_at_no_check(ptr++)); + if(ctl) + { + vd_write_teletype(); + vd_get_cursor_position(); + col = getDL(); row = getDH(); + setCX(1); + } + else + { + vd_write_char_attrib(); + if(++col >= sas_w_at_no_check(VID_COLS)) + { + + if(++row > VD_ROWS_ON_SCREEN) + { + setAL(0xa); + vd_write_teletype(); + row--; + } + col = 0; + } + setDL(col); setDH(row); + } + vd_set_cursor_position(); + } + if(op==0 || op==2) + { + setDL(save_col); setDH(save_row); + vd_set_cursor_position(); + } +} + + +GLOBAL void vd_get_mode IFN0() +{ + /* + * Returns the current video mode. Registers are set up viz: + * + * AL - Video mode + * AH - Number of columns on screen + * BH - Current display page + */ + + word vd_cols_on_screen; + half_word video_mode; + + /* Load internal variables with the values stored in BIOS + * data area. + */ + vd_cols_on_screen = sas_w_at_no_check(VID_COLS); + video_mode = sas_hw_at_no_check(vd_video_mode); + + setAL(video_mode); + setAH(vd_cols_on_screen); + setBH(sas_hw_at_no_check(vd_current_page)); +} + + +/* + * ============================================================================ + * Internal functions + * ============================================================================ + */ + +/* + * function to return the (host) address stored at Intel address 'addr' + * or 0 if not present + */ +LOCAL sys_addr extend_addr IFN1(sys_addr,addr) +{ + word ext_seg, ext_off; /* for segment & offset addrs */ + + /* get vector */ + ext_off = sas_w_at_no_check(addr); + ext_seg = sas_w_at_no_check(addr+2); + /* if still defaults then no extended chars */ + if (ext_seg == EXTEND_CHAR_SEGMENT && ext_off == EXTEND_CHAR_OFFSET) + return(0); /* no user set char gen table */ + else + return( effective_addr( ext_seg , ext_off ) ); +} + + +/* +* routine to establish the foreground colour mask for the appropriate +* medium res. word forming part (1/8th) of the char. +* See vd_read_attrib_char() above. +*/ +LOCAL half_word fgcolmask IFN1(word, rawchar) +{ + register word mask, onoff = 0; + + mask = 0xC000; /* compare with foreground colour */ + onoff = 0; + do { + if ((rawchar & mask) == 0) /* not this bit, shift */ + onoff <<= 1; + else + onoff = (onoff << 1) | 1; /* set this bit */ + mask >>= 2; + } while(mask); /* 8 times thru loop */ + return(onoff); +} + + +/* +* double all bits in lower byte of 'lobyte' into word. +* Have tried to speed this up using ffs() to only look at set bits but +* add overhead while calculating result shifts +*/ +LOCAL word expand_byte IFN1(word, lobyte) +{ + register word mask = 1, res = 0; + + while(mask) { + res |= lobyte & mask; /* set res bit if masked bit in lobyte set*/ + lobyte <<= 1; + mask <<= 1; + res |= lobyte & mask; /* and duplicate */ + mask <<= 1; /* next bit */ + } + return(res); +} + + +/* +* Routine to do 'how_many' char writes of 'wchar' with attribute 'attr' from +* position (x,y) in graphics mode +*/ +GLOBAL void graphics_write_char IFN5(half_word, x, half_word, y, half_word, wchar, half_word, attr, word, how_many) +{ + register sys_addr gpos; /* gpos holds character address &...*/ + register sys_addr cpos; /*cpos steps through scanlines for char*/ + register word j, colword, colmask; + register sys_addr iopos, char_addr; + register half_word i, xor; + half_word current; + + /* + * if the high bit of the attribute byte is set then xor the char + * onto the display + */ + xor = (attr & 0x80) ? 1 : 0; + if (wchar >= 128) + { /* must be in user installed extended char set */ + if ( (char_addr = extend_addr(4*BIOS_EXTEND_CHAR)) == 0) + { +#ifndef PROD + trace("want extended char but no ex char gen set \n",DUMP_REG); +#endif + return; + } + else + char_addr += (wchar - 128) * CHAR_MAP_SIZE; + } +#ifdef EGG + else if(video_adapter == EGA || video_adapter == VGA) + char_addr = extend_addr(EGA_FONT_INT*4)+ CHAR_MAP_SIZE *wchar; +#endif + else + char_addr = CHAR_GEN_ADDR+ CHAR_MAP_SIZE *wchar; /* point to entry in std set */ + + if (sas_hw_at_no_check(vd_video_mode) == 6) { /* high res */ + + gpos = vd_high_offset(x, y); /* sys & host memory offsets */ + gpos += video_pc_low_regen; + + for(j = 0; j < how_many; j++) { /* number of chars to store */ + cpos = gpos++; /* start of this character */ + for(i = 0; i < 4; i++) { /* 8 bytes per char */ + if (xor) { /* XOR in char */ + sas_load(cpos, ¤t); /* even bank */ + sas_store(cpos, current ^ sas_hw_at_no_check(char_addr + i*2)); + sas_load(cpos+ODD_OFF, ¤t); + current ^= sas_hw_at_no_check(char_addr + i*2+1); + } + else { /* just store new char */ + sas_store(cpos, sas_hw_at_no_check(char_addr + i*2)); + current = sas_hw_at_no_check(char_addr + i*2+1); + } + sas_store(cpos+ODD_OFF, current); /* odd bank */ + cpos += SCAN_LINE_LENGTH; /* next scan line */ + } + } + } + + else { /* medium res */ + + gpos = vd_medium_offset(x, y); /* sys & host memory offsets */ + gpos += video_pc_low_regen; + + /* build colour mask from attribute byte */ + attr &= 3; /* only interested in low bits */ + colmask = attr; /* replicate low bits across word */ + for(i = 0; i < 3; i++) + colmask = (colmask << 2) | attr; + colmask = (colmask << 8) | colmask; + + for(j = 0; j < how_many; j++) { + cpos = gpos; + gpos += 2; + for(i = 0; i < 8; i++) { /* 16 bytes per char */ + + if ((i & 1) == 0) /* setup for odd/even bank */ + iopos = cpos; + else { + iopos = cpos+ODD_OFF; + cpos += SCAN_LINE_LENGTH; /* next scan line */ + } + + colword = expand_byte(sas_hw_at_no_check(char_addr + i)); /*char in fg colour*/ + colword &= colmask; + if (xor) { /* XOR in char */ + sas_load(iopos, ¤t); + sas_store(iopos++, current ^ (colword >> 8)); + sas_load(iopos, ¤t); + sas_store(iopos, current ^ (colword & 0xFF)); + } + else { /* just store char */ + sas_store(iopos++, (colword >> 8)); + sas_store(iopos, (colword & 0xFF)); + } + } + } + how_many *= 2; + } +} + + +/* + * Initialise the M6845 registers for the given mode. + */ + +LOCAL void M6845_reg_init IFN2(half_word, mode, word, base) +{ + word i, table_index; + + switch(mode) + { + case 0: + case 1: table_index = 0; + break; + case 2: + case 3: table_index = NO_OF_M6845_REGISTERS; + break; + case 4: + case 5: + case 6: table_index = NO_OF_M6845_REGISTERS * 2; + break; + default: table_index = NO_OF_M6845_REGISTERS * 3; + break; + } + + for (i = 0; i < NO_OF_M6845_REGISTERS; i++) + { + /* + * Select the register in question via the index register (== base) + * and then output the actual value. + */ + + outb(base, i); + outb(base + 1, sas_hw_at_no_check(VID_PARMS+table_index + i)); + } +} + +LOCAL void vd_dummy IFN0() +{ +} + +#ifdef REAL_VGA +/* STF */ +GLOBAL sas_fillsw_16 IFN3(sys_addr, address, word, value, sys_addr, length) +{ + register word *to; + + to = (word *)&M[address]; + while(length--) + *to++ = value; +} + +GLOBAL sas_fills_16 IFN3(sys_addr, address, half_word, value, sys_addr, length) +{ + register half_word *to; + + to = (half_word *)&M[address]; + while(length--) + *to++ = value; +} +/* STF */ + +GLOBAL VcopyStr IFN3(half_word *, to, half_word *, from, int, len) +{ + while(len--) + *to++ = *from++; +} +#endif + +#ifdef SEGMENTATION +/* + * The following #include specifies the code segment into which this + * module will by placed by the MPW C compiler on the Mac II running + * MultiFinder. + */ +#include "SOFTPC_INIT.seg" +#endif + +GLOBAL void video_init IFN0() +{ + int mode; + word vd_addr_6845; + word curmod; +#ifdef HERC + EQUIPMENT_WORD equip_flag; +#endif /* HERC */ + + + /* + * Initialise BIOS data area variables + */ + + curmod = 0x607; /* default cursor is scans 6-7 */ + + switch (video_adapter) + { + case MDA: + mode = 0x7; + vd_addr_6845 = 0x3B4; + video_pc_low_regen = MDA_REGEN_START; + video_pc_high_regen = MDA_REGEN_END; + break; +#ifdef HERC + case HERCULES: + /* put the BW card in the equipment list */ + equip_flag.all = sas_w_at_no_check(EQUIP_FLAG); + equip_flag.bits.video_mode = VIDEO_MODE_80X25_BW; + sas_storew_no_check(EQUIP_FLAG, equip_flag.all); + mode = 0x7; + vd_addr_6845 = 0x3B4; + video_pc_low_regen = HERC_REGEN_START; + video_pc_high_regen = HERC_REGEN_END; + herc_video_init(); + curmod = 0xb0c; /* cursor is scans 11-12 */ + break; +#endif /* HERC */ +#ifdef EGG + case EGA: + case VGA: + mode = 0x3; + vd_addr_6845 = 0x3D4; + sas_storew_no_check(VID_INDEX, vd_addr_6845); + sure_sub_note_trace0(CURSOR_VERBOSE,"setting bios vbls start=6, end=7"); + sas_storew_no_check(VID_CURMOD, 0x607); + setAL(mode); + ega_video_init(); + return; + break; +#endif + default: /* Presumably CGA */ + video_pc_low_regen = CGA_REGEN_START; + video_pc_high_regen = CGA_REGEN_END; + mode = 0x3; + vd_addr_6845 = 0x3D4; + } + + sas_storew_no_check(VID_INDEX, vd_addr_6845); + sure_sub_note_trace2(CURSOR_VERBOSE,"setting bios vbls start=%d, end=%d", + (curmod>>8)&0xff, curmod&0xff); + sas_storew_no_check(VID_CURMOD, curmod); + + /* Call vd_set_mode() to set up 6845 chip */ + setAL(mode); + (video_func[SET_MODE])(); +} + +#ifdef HERC +GLOBAL void herc_video_init IFN0() +{ + +/* Initialize the INTs */ + sas_storew(BIOS_EXTEND_CHAR*4, EGA_INT1F_OFF); + sas_storew(BIOS_EXTEND_CHAR*4+2, EGA_SEG); + sas_move_bytes_forward(BIOS_VIDEO_IO*4, 0x42*4, 4); /* save old INT 10 as INT 42 */ +#ifdef GISP_SVGA + if((ULONG) config_inquire(C_GFX_ADAPTER, NULL) == CGA ) + sas_storew(int_addr(0x10), CGA_VIDEO_IO_OFFSET); + else +#endif /* GISP_SVGA */ + sas_storew(BIOS_VIDEO_IO*4, VIDEO_IO_OFFSET); + sas_storew(BIOS_VIDEO_IO*4+2, VIDEO_IO_SEGMENT); + + +/* Now set up the EGA BIOS variables */ + sas_storew(EGA_SAVEPTR,VGA_PARMS_OFFSET); + sas_storew(EGA_SAVEPTR+2,EGA_SEG); + sas_store(ega_info, 0x00); /* Clear on mode change, 64K, EGA active, emulate cursor */ + sas_store(ega_info3, 0xf9); /* feature bits = 0xF, EGA installed, use 8*14 font */ + set_VGA_flags(S350 | VGA_ACTIVE | VGA_MONO); + host_memset(EGA_planes, 0, 4*EGA_PLANE_SIZE); + host_mark_screen_refresh(); + init_herc_globals(); + load_herc_font(EGA_CGMN,256,0,0,14); /* To initialize font */ +} + + +GLOBAL void herc_char_gen IFN0() +{ + switch (getAL()) + { + case 3: + break; + case 0: + case 0x10: + load_herc_font(effective_addr(getES(),getBP()),getCX(),getDX(),getBL(),getBH()); + if(getAL()==0x10) + recalc_text(getBH()); + break; + case 1: + case 0x11: + load_herc_font(EGA_CGMN,256,0,getBL(),14); + if(getAL()==0x11) + recalc_text(14); + break; + + case 0x30: + setCX(sas_hw_at(ega_char_height)); + setDL(VD_ROWS_ON_SCREEN); + switch (getBH()) + { + case 0: + setBP(sas_w_at(BIOS_EXTEND_CHAR*4)); + setES(sas_w_at(BIOS_EXTEND_CHAR*4+2)); + break; + case 1: + setBP(sas_w_at(EGA_FONT_INT*4)); + setES(sas_w_at(EGA_FONT_INT*4+2)); + break; + case 2: + setBP(EGA_CGMN_OFF); + setES(EGA_SEG); + break; + + default: + assert2(FALSE,"Illegal char_gen subfunction %#x %#x",getAL(),getBH()); + } + break; + default: + assert1(FALSE,"Illegal char_gen %#x",getAL()); + } +} + +GLOBAL load_herc_font IFN5(sys_addr, table, int, count, int, char_off, int, font_no, int, nbytes) +{ + register int i, j; + register host_addr font_addr; + register sys_addr data_addr; + SAVED word font_off[] = { 0, 0x4000, 0x8000, 0xc000, 0x2000, 0x6000, 0xa000, 0xe000 }; + + /* + * Work out where to put the font. We know where + * it's going to end up in the planes so ... + */ + + font_addr = &EGA_planes[FONT_BASE_ADDR] + + (font_off[font_no] << 2) + (FONT_MAX_HEIGHT*char_off << 2); + data_addr = table; + + assert2( FALSE, "Font No. = %4d, No. of Bytes/char. def. = %4d", font_no, nbytes ); + + for(i=0; i +#include TypesH + +/* + * SoftPC include files + */ +#include "xt.h" +#include CpuH +#include "bios.h" +#include "video.h" + +#include "debug.h" +#include "idetect.h" + +#define check_video_func(AH) (AH < EGA_FUNC_SIZE) + +void video_io() +{ + + +#if defined(NTVDM) && !defined(X86GFX) + if (stream_io_enabled && getAH()!= 0x0E && getAX() != 0x13FF) + disable_stream_io(); +#endif + + + /* + * The type of operation is coded into the AH register. Some PC code + * calls AH functions that are for other more advanced cards - so we + * ignore these. + */ + + assert1(check_video_func(getAH()),"Illegal VIO:%#x",getAH()); + if (check_video_func(getAH())) + { + IDLE_video(); + (*video_func[getAH()])(); + } +} -- cgit v1.2.3